Merge "Camera: Avoid removing valid repeating requests"
diff --git a/Android.bp b/Android.bp
index 7850377..6b2883c 100644
--- a/Android.bp
+++ b/Android.bp
@@ -222,7 +222,6 @@
         ":framework-mca-effect-sources",
         ":framework-mca-filterfw-sources",
         ":framework-mca-filterpacks-sources",
-        ":framework-mime-sources",
         ":framework-mms-sources",
         ":framework-opengl-sources",
         ":framework-rs-sources",
@@ -264,10 +263,19 @@
 }
 
 filegroup {
+    name: "framework-updatable-sources",
+    srcs: [
+        ":framework-sdkext-sources",
+        ":updatable-media-srcs",
+    ]
+}
+
+filegroup {
     name: "framework-all-sources",
     srcs: [
+        ":framework-mime-sources",
         ":framework-non-updatable-sources",
-        ":updatable-media-srcs",
+        ":framework-updatable-sources",
     ],
 }
 
@@ -365,7 +373,6 @@
 
     static_libs: [
         "framework-internal-utils",
-        "mimemap",
     ],
 
     required: [
@@ -418,6 +425,7 @@
     name: "framework-minus-apex",
     defaults: ["framework-defaults"],
     srcs: [":framework-non-updatable-sources"],
+    libs: ["app-compat-annotations"],
     installable: true,
     javac_shard_size: 150,
     required: [
@@ -425,6 +433,11 @@
         "libcore-platform-compat-config",
         "services-platform-compat-config",
     ],
+    static_libs: [
+        // If MimeMap ever becomes its own APEX, then this dependency would need to be removed
+        // in favor of an API stubs dependency in java_library "framework" below.
+        "mimemap",
+    ],
     // For backwards compatibility.
     stem: "framework",
 }
@@ -454,12 +467,14 @@
     defaults: ["framework-defaults"],
     srcs: [":framework-all-sources"],
     installable: false,
+    libs: ["app-compat-annotations"],
 }
 
 java_library {
     name: "framework-annotation-proc",
     defaults: ["framework-defaults"],
     srcs: [":framework-all-sources"],
+    libs: ["app-compat-annotations"],
     installable: false,
     plugins: [
         "unsupportedappusage-annotation-processor",
@@ -500,6 +515,7 @@
 java_library {
     name: "framework-atb-backward-compatibility",
     installable: true,
+    libs: ["app-compat-annotations"],
     srcs: [
         "core/java/android/content/pm/AndroidTestBaseUpdater.java",
     ],
@@ -516,24 +532,22 @@
     name: "framework-javastream-protos",
     depfile: true,
 
-    tool_files: ["tools/genprotos.sh"],
     tools: [
         "aprotoc",
         "protoc-gen-javastream",
         "soong_zip",
     ],
 
-    // TODO This should not be needed. If you set a custom OUT_DIR or OUT_DIR_COMMON_BASE you can
-    // end up with a command that is extremely long, potentially going passed MAX_ARG_STRLEN due to
-    // the way sbox rewrites the command. See b/70221552.
-    cmd: "$(location tools/genprotos.sh) " +
-        " $(location aprotoc) " +
-        " $(location protoc-gen-javastream) " +
-        " $(location soong_zip) " +
-        " $(genDir) " +
-        " $(depfile) " +
-        " $(in) " +
-        " $(out)",
+    cmd: "mkdir -p $(genDir)/$(in) " +
+        "&& $(location aprotoc) " +
+        "  --plugin=$(location protoc-gen-javastream) " +
+        "  --dependency_out=$(depfile) " +
+        "  --javastream_out=$(genDir)/$(in) " +
+        "  -Iexternal/protobuf/src " +
+        "  -I . " +
+        "  $(in) " +
+        "&& $(location soong_zip) -jar -o $(out) -C $(genDir)/$(in) -D $(genDir)/$(in)",
+
     srcs: [
         "core/proto/**/*.proto",
         "libs/incident/**/*.proto",
@@ -554,6 +568,12 @@
     ],
 }
 
+java_library {
+    name: "framework-annotations-lib",
+    srcs: [ ":framework-annotations" ],
+    sdk_version: "current",
+}
+
 filegroup {
     name: "framework-networkstack-shared-srcs",
     srcs: [
@@ -814,11 +834,13 @@
     srcs: [
         "core/java/android/os/HidlSupport.java",
         "core/java/android/annotation/IntDef.java",
+        "core/java/android/annotation/IntRange.java",
         "core/java/android/annotation/NonNull.java",
         "core/java/android/annotation/Nullable.java",
         "core/java/android/annotation/SystemApi.java",
         "core/java/android/annotation/TestApi.java",
         "core/java/android/annotation/UnsupportedAppUsage.java",
+        "core/java/android/os/HidlMemory.java",
         "core/java/android/os/HwBinder.java",
         "core/java/android/os/HwBlob.java",
         "core/java/android/os/HwParcel.java",
@@ -861,28 +883,6 @@
     ],
 }
 
-// TODO: Don't rely on this list by switching package.html into package-info.java
-frameworks_base_subdirs = [
-    "core/java",
-    "graphics/java",
-    "location/java",
-    "media/java",
-    "media/mca/effect/java",
-    "media/mca/filterfw/java",
-    "media/mca/filterpacks/java",
-    "drm/java",
-    "mms/java",
-    "opengl/java",
-    "sax/java",
-    "telecomm/java",
-    "telephony/common",
-    "telephony/java",
-    "wifi/java",
-    "lowpan/java",
-    "keystore/java",
-    "rs/java",
-]
-
 // Make the api/current.txt file available for use by modules in other
 // directories.
 filegroup {
@@ -915,7 +915,10 @@
     "-overview $(location core/java/overview.html) " +
     // Federate Support Library references against local API file.
     "-federate SupportLib https://developer.android.com " +
-    "-federationapi SupportLib $(location :current-support-api) "
+    "-federationapi SupportLib $(location :current-support-api) " +
+    // Federate Support Library references against local API file.
+    "-federate AndroidX https://developer.android.com " +
+    "-federationapi AndroidX $(location :current-androidx-api) "
 
 framework_docs_only_libs = [
     "voip-common",
@@ -958,28 +961,14 @@
 
 metalava_framework_docs_args = "--manifest $(location core/res/AndroidManifest.xml) " +
     "--ignore-classes-on-classpath " +
-    "--hide-package com.android.okhttp " +
-    "--hide-package com.android.org.conscrypt --hide-package com.android.server " +
+    "--hide-package com.android.server " +
     "--error UnhiddenSystemApi " +
     "--hide RequiresPermission " +
+    "--hide CallbackInterface " +
     "--hide MissingPermission --hide BroadcastBehavior " +
     "--hide HiddenSuperclass --hide DeprecationMismatch --hide UnavailableSymbol " +
-    "--hide SdkConstant --hide HiddenTypeParameter --hide Todo --hide Typo "
-
-// http://b/129765390 Rewrite links to "platform" or "technotes" folders
-// which are siblings (and thus outside of) {@docRoot}.
-//
-// We have to escape \ as \\ and $ as $$ here because they get resolved by
-// different layers of the build tooling. The arguments are wrapped in '' so
-// that the shell doesn't add yet another level of escaping.
-metalava_framework_docs_args += " --replace-documentation " +
-    // packages whose descendants to apply replacement to (all packages from
-    // libcore/ojluni/src/main/java that contribute to documentation).
-    "com.sun:java:javax:jdk.net:sun " +
-    // regex of the string to replace
-    "'(<a\\s+href\\s?=[\\*\\s]*\")(?:(?:\\{@docRoot\\}/\\.\\./)|(?:(?:\\.\\./)+))((?:platform|technotes).+)\">' " +
-    // replacement (with $1, $2 backreferences to the regex groups)
-    "'$$1https://docs.oracle.com/javase/8/docs/$$2\">' "
+    "--hide SdkConstant --hide HiddenTypeParameter --hide Todo --hide Typo " +
+    "--force-convert-to-warning-nullability-annotations +*:-android.*:+android.icu.*:-dalvik.*"
 
 packages_to_document = [
     "android",
@@ -997,19 +986,19 @@
 stubs_defaults {
     name: "framework-doc-stubs-default",
     srcs: [
+        ":framework-mime-sources",
         ":framework-non-updatable-sources",
+        ":framework-updatable-sources",
         "core/java/**/*.logtags",
         "test-base/src/**/*.java",
         ":opt-telephony-srcs",
         ":opt-net-voip-srcs",
         ":core-current-stubs-source",
         ":core_public_api_files",
-        ":updatable-media-srcs",
         "test-mock/src/**/*.java",
         "test-runner/src/**/*.java",
     ],
     libs: framework_docs_only_libs,
-    local_sourcepaths: frameworks_base_subdirs,
     create_doc_stubs: true,
     annotations_enabled: true,
     api_levels_annotations_enabled: true,
@@ -1020,7 +1009,6 @@
     previous_api: ":last-released-public-api",
     merge_annotations_dirs: [
         "metalava-manual",
-        "ojluni-annotated-sdk-stubs",
     ],
 }
 
@@ -1050,6 +1038,7 @@
         "core/res/AndroidManifest.xml",
         "core/java/overview.html",
         ":current-support-api",
+        ":current-androidx-api",
     ],
     create_stubs: false,
 }
@@ -1063,21 +1052,20 @@
     name: "metalava-api-stubs-default",
     srcs: [
         ":framework-non-updatable-sources",
+        ":framework-updatable-sources",
         "core/java/**/*.logtags",
         ":opt-telephony-srcs",
         ":opt-net-voip-srcs",
         ":core-current-stubs-source",
         ":core_public_api_files",
-        ":updatable-media-srcs",
+        ":ike-api-srcs",
     ],
     libs: ["framework-internal-utils"],
-    local_sourcepaths: frameworks_base_subdirs,
     installable: false,
     annotations_enabled: true,
     previous_api: ":last-released-public-api",
     merge_annotations_dirs: [
         "metalava-manual",
-        "ojluni-annotated-sdk-stubs",
     ],
     api_levels_annotations_enabled: true,
     api_levels_annotations_dirs: [
@@ -1393,8 +1381,10 @@
     srcs: [
         "core/java/android/os/HidlSupport.java",
         "core/java/android/annotation/IntDef.java",
+        "core/java/android/annotation/IntRange.java",
         "core/java/android/annotation/NonNull.java",
         "core/java/android/annotation/SystemApi.java",
+        "core/java/android/os/HidlMemory.java",
         "core/java/android/os/HwBinder.java",
         "core/java/android/os/HwBlob.java",
         "core/java/android/os/HwParcel.java",
@@ -1412,7 +1402,6 @@
     previous_api: ":last-released-public-api",
     merge_annotations_dirs: [
         "metalava-manual",
-        "ojluni-annotated-sdk-stubs",
     ],
     args: " --show-annotation android.annotation.SystemApi",
 }
diff --git a/PREUPLOAD.cfg b/PREUPLOAD.cfg
index e731138..6831117 100644
--- a/PREUPLOAD.cfg
+++ b/PREUPLOAD.cfg
@@ -1,8 +1,6 @@
 [Hook Scripts]
 checkstyle_hook = ${REPO_ROOT}/prebuilts/checkstyle/checkstyle.py --sha ${PREUPLOAD_COMMIT}
 
-api_lint_hook = ${REPO_ROOT}/frameworks/base/tools/apilint/apilint_sha.sh ${PREUPLOAD_COMMIT}
-
 strings_lint_hook = ${REPO_ROOT}/frameworks/base/tools/stringslint/stringslint_sha.sh ${PREUPLOAD_COMMIT}
 
 hidden_api_txt_checksorted_hook = ${REPO_ROOT}/frameworks/base/tools/hiddenapi/checksorted_sha.sh ${PREUPLOAD_COMMIT} ${REPO_ROOT}
diff --git a/apex/sdkext/Android.bp b/apex/sdkext/Android.bp
new file mode 100644
index 0000000..b8dcb90
--- /dev/null
+++ b/apex/sdkext/Android.bp
@@ -0,0 +1,32 @@
+// Copyright (C) 2019 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.
+
+apex {
+    name: "com.android.sdkext",
+    manifest: "manifest.json",
+    java_libs: [ "framework-sdkext" ],
+    key: "com.android.sdkext.key",
+    certificate: ":com.android.sdkext.certificate",
+}
+
+apex_key {
+    name: "com.android.sdkext.key",
+    public_key: "com.android.sdkext.avbpubkey",
+    private_key: "com.android.sdkext.pem",
+}
+
+android_app_certificate {
+    name: "com.android.sdkext.certificate",
+    certificate: "com.android.sdkext",
+}
diff --git a/apex/sdkext/OWNERS b/apex/sdkext/OWNERS
new file mode 100644
index 0000000..feb2742
--- /dev/null
+++ b/apex/sdkext/OWNERS
@@ -0,0 +1 @@
+hansson@google.com
diff --git a/apex/sdkext/com.android.sdkext.avbpubkey b/apex/sdkext/com.android.sdkext.avbpubkey
new file mode 100644
index 0000000..8f47741
--- /dev/null
+++ b/apex/sdkext/com.android.sdkext.avbpubkey
Binary files differ
diff --git a/apex/sdkext/com.android.sdkext.pem b/apex/sdkext/com.android.sdkext.pem
new file mode 100644
index 0000000..8164601
--- /dev/null
+++ b/apex/sdkext/com.android.sdkext.pem
@@ -0,0 +1,51 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIJKQIBAAKCAgEAr72pTSavrziDP54AtQZlRclDxJf9HXRZwFRbYx9hWZ4z7ZtO
+pNBDPvPJCiAOVUsILgCQhBUolz2dyLob25Fd0PVp0n9ibIPEQYjTfHjOK40qb57N
+LhEp2ceGiAfsywPSi0TH1PQ6JgbCe/RM4TefI/sj3gYJPka3ksMvylhMIgUVLgME
+kYizhzwHqlLMspB858SioREZdGwcdZrMMIajGFU69Q9ZRDBzhPvxyKhYoObcOtk1
+uVaiE/fNoi3wKGJz2l2vhUuNrQW7MWlVMag+Qes4YACUTk9LZrOVFEJFjWc8xGUi
+ABtfKGs5JgNr/sWnhvifLn8lJuf0/BJmjD+L5QwXYs2cS7gcZJtTM12J94r0Twgw
+wF2lNmIxAE9sYqj5Rh3dIlTPE5vMUECmQEGjIBB/hzT65VxVqSjU/IlS506JTg3p
+IOQtZ15cUzTBpda4jrvqcq6RNVvgBCu2bV5D8Z4z9FUlPyvD+Zq/6lcoJfLtznAs
+G2463hyPAHTGBIcZ5p5bTuGxoAb6ivyqo4b9Qi4yYA6je9HJmuy8T3Mn5JROoeu9
+BH1K54r/mpT4TQPwuKUvRRtBAV2OPHjo+zp0Gd4Y6rxDYxEIdfEae7pQr/QExSPB
+q/QCr9RhixR1mO373LHuja+MxdAxIxugb2HTS61PQo+PbYrhJMcVuxTwJOECAwEA
+AQKCAgAH7ToRrMkH0ji5SdsmTx+KQkW4PFLCXVke/68PjX7KmAQnl3W4oVwnHr/W
+oROEbVn1GTlre7jU+YaAY0SWZrwgjLE1OWGrG1ZizlUbrCdAd6GOX09J4KROml1L
+DXB0x7tbZMLOrCVjSbLD/ITrM6MN8Gnxvbv0/yOQjxU8vzbP4gLOjHxMRCo001RV
+Ll7lPvcjTQ84zJilU6sE8vJ6zdfVZSK/ou2X0cekG+kP7+fvefo8/UcbEPlGhUrV
+IdVPPQGUu90K2hmN0FBdLi8Vik0klAN68Qu/bHwuKbNzsnmIoztucFFUR+fG3u84
+87aPS0L/J3+mjT2Tv6qhJANUGBmrK/h7MkelpKXlRTCITJLX9xP7hfSbJ4f6aLVq
+ZYPPciGxSBbUDgAwvPtOlMDzccg7YsYyiBBO28wh8MN97rePmc0z6nGmjeXhcbCC
+QktG50VYFCyqp5muKgqQmRfRjHFHLWs8GEqgxMeEL3U3HjYfCYr+6E8Sr5OnOBeH
+3buCi1+zgnNYCvbamgY/OJmW7f9h5O31hxmTplc2E1ZuxUGQZthabt1rN3bmNkyf
+KUmPwnIYkDkWBSV5lzyQExfS3/EVvj0EnHhx8faamimNrGo8xCcfnLT3c0WEFVmo
+yIyVRX3EpXJFM2JkeJ21/IEZXTzHSoNxk12CBG8i8lLSflWSMQKCAQEA2ZqVnOuV
+SZfLCUYUUh8Hvhc5zONstfq7ma1Zsttsdaj9t68nLRiBDvLOGnMjDkYZzoSd4fyl
+oy+YqWGBqcqa5kg1NOCH0I46p9d8RcWAfDnB4sqbLgWh70qsvni6igRijmsMDvkA
+U9HeEdPaLCjQ4UXw7GQvN5rRxuRt+OSqV3tV/Pk9JYyYjz7faC8dmbKDrWHHuOvm
+/9y6Xy+L5IgftykNlUeddSCIoMOAadM7BiRjsrHnOYBQ8xBcn0OYafpIswItrgVi
+IrsPJaBFidx8QYK4MVibyka6U0cm28OocDSPtSk/4jrnCEEhLjFUnWwuMXuBGlrd
+W7wP/muoJqb1VwKCAQEAzsAT90kkOCvAcrfGRE3KkUjwWAsQyP8u2+27JIQPqrpW
+GfWAzJXFt80TSp0Zf/Lrq3/SQ9n4AaL4K9dcMoreedoQN9C9JI7zPtZAWNrJVUcV
+dq2gZjBQ78+oK7uQgvFNWxga5D+Nh+Y+9Tp537fc5HIh0Y13PgsxxPk2OnZJTvLX
+HM5H7Aua9ssmqChsrKihuUsDSPozfBz+H7FNHEdKMqVLqJJSK6m0uMxuLovdVfka
+5S7iBMjEGZc46Iz3ckE0pdOiQLooNqfEQqFe5Uou/KZxxKI1NW25rEEBTVyQWt+2
+BNUCfKP7noZ45u5sUY3eJrgI7BrPEDbNS81WYaLchwKCAQA8Q4mHyd6wYO+EA/qA
+u8NDK9+AFMP4qhXme5HJ7Obetwx9IG7zGEQ1xZy6yoQ84cEn5qZq/bNJvFbFIhHs
+2gWIHRtPJ5e1dI5eCVmLYSUyQjSmAIJ1fm3YfY/VuE3BB3HcC11tkBw9GnQr78YO
+UMd4fAw7C4vgFGpgcMbcFUfvrmKkCsqaaZOeqETq75F9DWlWTSwo1HxHA/RBhENz
+6RcPfLkcTJcY5wevrjUUGcHQ86cAyDBHRngkuLVODkRZpU0Y9lN8TFVfVPre6sIX
+ag6nffJRCD8tB+V2RtBGMKunV4ctHt1oY/Oz34W260aJynoIjjG1ANEpJK4xQdNx
+0O9FAoIBAQCz2AGGKemHswdEwveEkuaSWpA3Bekj7lYkmTchHH9EU7JyAkx3qhDD
+QXB2hxGXawf1tsqAmypQwiJ+gGeCz6mW9UkGRF1DX9XX4yc2I5rew2a4RXAxc/Xz
+pP70i8O5I43Wn7FEusOyY2aAis1Y/eb4EQ+56QTAw5wXa3DwidRbCIJ2XDnT6oRy
+CWUnAYMG7ek/9TB2Wq5OWCn2B5S79IdmZsLZb+5qbMT3u1xcwO1Xy8jJc27IGpv6
+ZsDqCTV1/aJ+XQnWpBg28tiV3Sle6pjUzTRJh5AhWcEZRbKMSOiJI/CBY4k2Qq6t
+xuuEdgFjL7T+mTepqehUglcyiPuLEtAhAoIBAQDDQ5pTFOlunfYzm+CIvvImAgy7
+vrEabJYABATytAbXRMMbrKoEdU2ApEDyEW7PgysDnYLAZ+icObnJlBTYvNdlWFly
+XiviGVfpjFWDT9U/gUwFQu2lfEjoiivoGS92USHUy4UMVHiiznnm20VLLkgd3xna
+HUNSDdHIEgzOTmDsKJwMfA9zGckx23JJimPR5ekv6vr6QllYtECs4lTC1gVQAp2f
+5daxHRbkmO6gw1RgQADLkAnYz3aI1jNuHm5VyAZGt/d3JCtZ3Wwwejll8uJ4J09G
+oEtqyY9RVeHK50bLO4lyAXFiE+J6qqXjsGC20cpxeZYW5llMY/dhA6WV4YXV
+-----END RSA PRIVATE KEY-----
diff --git a/apex/sdkext/com.android.sdkext.pk8 b/apex/sdkext/com.android.sdkext.pk8
new file mode 100644
index 0000000..ccc0bf4
--- /dev/null
+++ b/apex/sdkext/com.android.sdkext.pk8
Binary files differ
diff --git a/apex/sdkext/com.android.sdkext.x509.pem b/apex/sdkext/com.android.sdkext.x509.pem
new file mode 100644
index 0000000..45d2ade
--- /dev/null
+++ b/apex/sdkext/com.android.sdkext.x509.pem
@@ -0,0 +1,35 @@
+-----BEGIN CERTIFICATE-----
+MIIGIzCCBAugAwIBAgIUXuDL7QvzQh7S6rihWz2KRvCFVT0wDQYJKoZIhvcNAQEL
+BQAwgZ8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQH
+DA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdBbmRyb2lkMRAwDgYDVQQLDAdBbmRy
+b2lkMRswGQYDVQQDDBJjb20uYW5kcm9pZC5zZGtleHQxIjAgBgkqhkiG9w0BCQEW
+E2FuZHJvaWRAYW5kcm9pZC5jb20wIBcNMTkxMjAyMTQyNDM0WhgPNDc1NzEwMjgx
+NDI0MzRaMIGfMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQG
+A1UEBwwNTW91bnRhaW4gVmlldzEQMA4GA1UECgwHQW5kcm9pZDEQMA4GA1UECwwH
+QW5kcm9pZDEbMBkGA1UEAwwSY29tLmFuZHJvaWQuc2RrZXh0MSIwIAYJKoZIhvcN
+AQkBFhNhbmRyb2lkQGFuZHJvaWQuY29tMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEAxFvZZ6ES1oqAu1K74/ZxnC3SOhHnLISLBgJEe7DqtdpuNFAwvdVO
+RL/HULhDbjYlOhpU2x3SavDIZZ2lRfiS9Q+M25WftxTRHVjBcpgwbV77TVxPKlAa
+tVN2lUVOY+s4QAVMNIXjC4kCKK/pCQtacH715EtdV47fWdg/Nx4iP/Aord8k3KGI
+9iI2ZOUjaugTRxu5lKRNDrv0bw5rEzyYmDyMud+kR/iS3/5oog57wPE0ffAkZXWE
+p3L2Cejre3ekCizsvVh6EmH6ForKLtL6f0z5Zir1f4R9+YcENspTlJR3pDhg7y3I
+uTQT/iDCtV0l+g2PjGZPEeAQHND3+kDQR7Sno/WC1Nhws6vcu1MdrC+kIh1ewx4y
+8moy/yqb5M98PJDzTSi/AOTB/OiqLXo/T8rjLBmirs9y3fTT6gJ6qXxOWgt8dle9
+7TBfa84Xi8uVY61c+A+YI0nLal7QDPsP3RPv5sJSQ9x9YnweVfD9Q0EOi52sSNu+
+QuN/kcUrMgPgha20VhfH/CkkPDyIp6aZyHHM69MIl+cYEm8vPa5uy3dosuRomT0f
+I4HOBjULDIuj+rIi+Rg3qHvmpuejwZXI/FBNWIhLEUG3ytgksjMaBoYAYflGdrcj
+BQexuF3EO+j4uo7JGjNcaT7wRoCH9gt29VHckDg2qz6VWXrlpmME4UkCAwEAAaNT
+MFEwHQYDVR0OBBYEFISN2nmUHllgPZMZ62U7mU3ZxzlXMB8GA1UdIwQYMBaAFISN
+2nmUHllgPZMZ62U7mU3ZxzlXMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL
+BQADggIBAFHIwyBNIVyHXUsDUdcjxfojXQsF/BCL9ehE3pgdkvDfQanaIREWn0nc
+oCFDFkYMRqaXOGC5TKq4OCjXOLsdfODt8HQ3F9J1B0ghQ5tfOdw7xDugNAszqP/Q
+h7kpvqLTycjrqOeZ5KjxEEYtP/KlUmALgOKcTcSH+XhWyxhjF4j24T9F2yJRr3/A
+r1NGU/djH953bHKC8OpJ2teUpDLA4TxVp/EhslH2eVigF80c/w74QPLEWkD9zv/4
+YeRg/R5N83zHs99NtlWMIeHfK6fUbzMyaSZtvm+jK20tkByQb/OQRed+drk25MtL
+68IRvxqri367qRScdpTZbu0ByLO4X8gFdubRUWr+tcO4pZX+DJRVriExbOkU2xhS
+Vtslq23V/hwTuUNm1CXjR70mPS13BTmHrIQDqLoIw/WTQlGh+vxnlAFRIHM3KB2c
+OdzUBu+NcB4aZEd0KKtct600A0DKPr1MQPb5jDq9wEtPSQYwMF0nRFNnXltbrXMd
+4hhwnhKr74fVMUmb+7eQP56XE/Nk4D+npMO54vv1pav+DI2/nxCND9BOLBweY38p
+Tvd2RjesMok0zXuVXiCIu4GEpwo7WkSnv25xrb0Ey2M8QWnGNnCcX7Kv6ip3RdWy
+HiN0G8RJrs/yNEVSDRx8ZhtwTpXVPQxbARbmhNF4/fnolElkmrMP
+-----END CERTIFICATE-----
diff --git a/apex/sdkext/framework/Android.bp b/apex/sdkext/framework/Android.bp
new file mode 100644
index 0000000..b17f0f8
--- /dev/null
+++ b/apex/sdkext/framework/Android.bp
@@ -0,0 +1,30 @@
+// Copyright (C) 2019 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.
+
+filegroup {
+    name: "framework-sdkext-sources",
+    srcs: [
+        "java/**/*.java",
+    ],
+    path: "java",
+}
+
+java_library {
+    name: "framework-sdkext",
+    srcs: [ ":framework-sdkext-sources" ],
+    sdk_version: "system_current",
+    libs: [ "framework-annotations-lib" ],
+    permitted_packages: [ "android.os.ext" ],
+    installable: true,
+}
diff --git a/apex/sdkext/framework/java/android/os/ext/SdkExtensions.java b/apex/sdkext/framework/java/android/os/ext/SdkExtensions.java
new file mode 100644
index 0000000..c039a82
--- /dev/null
+++ b/apex/sdkext/framework/java/android/os/ext/SdkExtensions.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package android.os.ext;
+
+import android.annotation.IntDef;
+import android.os.Build.VERSION_CODES;
+import android.os.SystemProperties;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/** @hide */
+public class SdkExtensions {
+
+    private static final int R_EXTENSION_INT;
+    static {
+        R_EXTENSION_INT = SystemProperties.getInt("persist.com.android.sdkext.sdk_info", 0);
+    }
+
+    /** Values suitable as parameters for {@link #getExtensionVersion(int)}. */
+    @IntDef(value = { VERSION_CODES.R })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface SdkVersion {}
+
+    /**
+     * Return the version of the extension to the given SDK.
+     *
+     * @param sdk the SDK version to get the extension version of.
+     * @see SdkVersion
+     * @throws IllegalArgumentException if sdk is not an sdk version with extensions
+     */
+    public static int getExtensionVersion(@SdkVersion int sdk) {
+        if (sdk < VERSION_CODES.R) {
+            throw new IllegalArgumentException();
+        }
+        return R_EXTENSION_INT;
+    }
+
+}
diff --git a/apex/sdkext/framework/java/android/os/ext/package.html b/apex/sdkext/framework/java/android/os/ext/package.html
new file mode 100644
index 0000000..34c1697
--- /dev/null
+++ b/apex/sdkext/framework/java/android/os/ext/package.html
@@ -0,0 +1,5 @@
+<HTML>
+<BODY>
+Provides APIs to interface with the SDK extensions.
+</BODY>
+</HTML>
diff --git a/apex/sdkext/framework/tests/Android.bp b/apex/sdkext/framework/tests/Android.bp
new file mode 100644
index 0000000..3d5dbb3
--- /dev/null
+++ b/apex/sdkext/framework/tests/Android.bp
@@ -0,0 +1,10 @@
+android_test {
+    name: "framework-sdkext-tests",
+    srcs: ["src/**/*.java"],
+    libs: [
+        "android.test.base",
+        "android.test.runner",
+    ],
+    static_libs: [ "framework-sdkext" ],
+    platform_apis: true,
+}
diff --git a/tests/RollbackTest/TestApp/res_v1/values/values.xml b/apex/sdkext/framework/tests/AndroidManifest.xml
similarity index 64%
rename from tests/RollbackTest/TestApp/res_v1/values/values.xml
rename to apex/sdkext/framework/tests/AndroidManifest.xml
index 0447c74..831f132 100644
--- a/tests/RollbackTest/TestApp/res_v1/values/values.xml
+++ b/apex/sdkext/framework/tests/AndroidManifest.xml
@@ -14,7 +14,14 @@
      limitations under the License.
 -->
 
-<resources>
-    <integer name="app_version">1</integer>
-    <integer name="split_version">0</integer>
-</resources>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="com.android.sdkext.tests">
+
+    <application>
+        <uses-library android:name="android.test.runner" />
+    </application>
+
+    <instrumentation android:name="android.test.InstrumentationTestRunner"
+            android:targetPackage="com.android.sdkext.tests" />
+
+</manifest>
diff --git a/apex/sdkext/framework/tests/src/android/os/ext/SdkExtensionsTest.java b/apex/sdkext/framework/tests/src/android/os/ext/SdkExtensionsTest.java
new file mode 100644
index 0000000..6885110
--- /dev/null
+++ b/apex/sdkext/framework/tests/src/android/os/ext/SdkExtensionsTest.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package android.os.ext;
+
+import android.os.Build;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import junit.framework.TestCase;
+
+public class SdkExtensionsTest extends TestCase {
+
+    @SmallTest
+    public void testBadArgument() throws Exception {
+        try {
+            SdkExtensions.getExtensionVersion(Build.VERSION_CODES.Q);
+            fail("expected IllegalArgumentException");
+        } catch (IllegalArgumentException expected) { }
+
+        try {
+            SdkExtensions.getExtensionVersion(999999);
+            fail("expected IllegalArgumentException");
+        } catch (IllegalArgumentException expected) { }
+    }
+
+    @SmallTest
+    public void testDefault() throws Exception {
+        int r = SdkExtensions.getExtensionVersion(Build.VERSION_CODES.R);
+        assertTrue(r >= 0);
+    }
+
+}
diff --git a/apex/sdkext/manifest.json b/apex/sdkext/manifest.json
new file mode 100644
index 0000000..048f5c4
--- /dev/null
+++ b/apex/sdkext/manifest.json
@@ -0,0 +1,4 @@
+{
+  "name": "com.android.sdkext",
+  "version": 1
+}
diff --git a/api/current.txt b/api/current.txt
index ccb01ea..de008f7 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -2023,7 +2023,7 @@
     field public static final int fingerprint_icon_content_description = 17039384; // 0x1040018
     field public static final int httpErrorBadUrl = 17039367; // 0x1040007
     field public static final int httpErrorUnsupportedScheme = 17039368; // 0x1040008
-    field public static final int no = 17039369; // 0x1040009
+    field @Deprecated public static final int no = 17039369; // 0x1040009
     field public static final int ok = 17039370; // 0x104000a
     field public static final int paste = 17039371; // 0x104000b
     field public static final int paste_as_plain_text = 17039385; // 0x1040019
@@ -2033,7 +2033,7 @@
     field public static final int status_bar_notification_info_overflow = 17039383; // 0x1040017
     field public static final int unknownName = 17039374; // 0x104000e
     field public static final int untitled = 17039375; // 0x104000f
-    field public static final int yes = 17039379; // 0x1040013
+    field @Deprecated public static final int yes = 17039379; // 0x1040013
   }
 
   public static final class R.style {
@@ -3021,9 +3021,9 @@
     field public final String type;
   }
 
-  public class AccountAuthenticatorActivity extends android.app.Activity {
-    ctor public AccountAuthenticatorActivity();
-    method public final void setAccountAuthenticatorResult(android.os.Bundle);
+  @Deprecated public class AccountAuthenticatorActivity extends android.app.Activity {
+    ctor @Deprecated public AccountAuthenticatorActivity();
+    method @Deprecated public final void setAccountAuthenticatorResult(android.os.Bundle);
   }
 
   public class AccountAuthenticatorResponse implements android.os.Parcelable {
@@ -4244,8 +4244,8 @@
     method public android.app.AlertDialog show();
   }
 
-  public class AliasActivity extends android.app.Activity {
-    ctor public AliasActivity();
+  @Deprecated public class AliasActivity extends android.app.Activity {
+    ctor @Deprecated public AliasActivity();
   }
 
   public class AppComponentFactory {
@@ -4698,18 +4698,18 @@
     field public static final int VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION = 3; // 0x3
   }
 
-  public class ExpandableListActivity extends android.app.Activity implements android.widget.ExpandableListView.OnChildClickListener android.widget.ExpandableListView.OnGroupCollapseListener android.widget.ExpandableListView.OnGroupExpandListener android.view.View.OnCreateContextMenuListener {
-    ctor public ExpandableListActivity();
-    method public android.widget.ExpandableListAdapter getExpandableListAdapter();
-    method public android.widget.ExpandableListView getExpandableListView();
-    method public long getSelectedId();
-    method public long getSelectedPosition();
-    method public boolean onChildClick(android.widget.ExpandableListView, android.view.View, int, int, long);
-    method public void onGroupCollapse(int);
-    method public void onGroupExpand(int);
-    method public void setListAdapter(android.widget.ExpandableListAdapter);
-    method public boolean setSelectedChild(int, int, boolean);
-    method public void setSelectedGroup(int);
+  @Deprecated public class ExpandableListActivity extends android.app.Activity implements android.widget.ExpandableListView.OnChildClickListener android.widget.ExpandableListView.OnGroupCollapseListener android.widget.ExpandableListView.OnGroupExpandListener android.view.View.OnCreateContextMenuListener {
+    ctor @Deprecated public ExpandableListActivity();
+    method @Deprecated public android.widget.ExpandableListAdapter getExpandableListAdapter();
+    method @Deprecated public android.widget.ExpandableListView getExpandableListView();
+    method @Deprecated public long getSelectedId();
+    method @Deprecated public long getSelectedPosition();
+    method @Deprecated public boolean onChildClick(android.widget.ExpandableListView, android.view.View, int, int, long);
+    method @Deprecated public void onGroupCollapse(int);
+    method @Deprecated public void onGroupExpand(int);
+    method @Deprecated public void setListAdapter(android.widget.ExpandableListAdapter);
+    method @Deprecated public boolean setSelectedChild(int, int, boolean);
+    method @Deprecated public void setSelectedGroup(int);
   }
 
   @Deprecated public class Fragment implements android.content.ComponentCallbacks2 android.view.View.OnCreateContextMenuListener {
@@ -5151,40 +5151,40 @@
     method @Deprecated public void onKeyguardExitResult(boolean);
   }
 
-  public abstract class LauncherActivity extends android.app.ListActivity {
-    ctor public LauncherActivity();
-    method protected android.content.Intent getTargetIntent();
-    method protected android.content.Intent intentForPosition(int);
-    method protected android.app.LauncherActivity.ListItem itemForPosition(int);
-    method public java.util.List<android.app.LauncherActivity.ListItem> makeListItems();
-    method protected java.util.List<android.content.pm.ResolveInfo> onQueryPackageManager(android.content.Intent);
-    method protected void onSetContentView();
+  @Deprecated public abstract class LauncherActivity extends android.app.ListActivity {
+    ctor @Deprecated public LauncherActivity();
+    method @Deprecated protected android.content.Intent getTargetIntent();
+    method @Deprecated protected android.content.Intent intentForPosition(int);
+    method @Deprecated protected android.app.LauncherActivity.ListItem itemForPosition(int);
+    method @Deprecated public java.util.List<android.app.LauncherActivity.ListItem> makeListItems();
+    method @Deprecated protected java.util.List<android.content.pm.ResolveInfo> onQueryPackageManager(android.content.Intent);
+    method @Deprecated protected void onSetContentView();
   }
 
-  public class LauncherActivity.IconResizer {
-    ctor public LauncherActivity.IconResizer();
-    method public android.graphics.drawable.Drawable createIconThumbnail(android.graphics.drawable.Drawable);
+  @Deprecated public class LauncherActivity.IconResizer {
+    ctor @Deprecated public LauncherActivity.IconResizer();
+    method @Deprecated public android.graphics.drawable.Drawable createIconThumbnail(android.graphics.drawable.Drawable);
   }
 
-  public static class LauncherActivity.ListItem {
-    ctor public LauncherActivity.ListItem();
-    field public String className;
-    field public android.os.Bundle extras;
-    field public android.graphics.drawable.Drawable icon;
-    field public CharSequence label;
-    field public String packageName;
-    field public android.content.pm.ResolveInfo resolveInfo;
+  @Deprecated public static class LauncherActivity.ListItem {
+    ctor @Deprecated public LauncherActivity.ListItem();
+    field @Deprecated public String className;
+    field @Deprecated public android.os.Bundle extras;
+    field @Deprecated public android.graphics.drawable.Drawable icon;
+    field @Deprecated public CharSequence label;
+    field @Deprecated public String packageName;
+    field @Deprecated public android.content.pm.ResolveInfo resolveInfo;
   }
 
-  public class ListActivity extends android.app.Activity {
-    ctor public ListActivity();
-    method public android.widget.ListAdapter getListAdapter();
-    method public android.widget.ListView getListView();
-    method public long getSelectedItemId();
-    method public int getSelectedItemPosition();
-    method protected void onListItemClick(android.widget.ListView, android.view.View, int, long);
-    method public void setListAdapter(android.widget.ListAdapter);
-    method public void setSelection(int);
+  @Deprecated public class ListActivity extends android.app.Activity {
+    ctor @Deprecated public ListActivity();
+    method @Deprecated public android.widget.ListAdapter getListAdapter();
+    method @Deprecated public android.widget.ListView getListView();
+    method @Deprecated public long getSelectedItemId();
+    method @Deprecated public int getSelectedItemPosition();
+    method @Deprecated protected void onListItemClick(android.widget.ListView, android.view.View, int, long);
+    method @Deprecated public void setListAdapter(android.widget.ListAdapter);
+    method @Deprecated public void setSelection(int);
   }
 
   @Deprecated public class ListFragment extends android.app.Fragment {
@@ -5552,6 +5552,7 @@
     method @Deprecated public android.app.Notification.Builder setDefaults(int);
     method @NonNull public android.app.Notification.Builder setDeleteIntent(android.app.PendingIntent);
     method @NonNull public android.app.Notification.Builder setExtras(android.os.Bundle);
+    method @NonNull public android.app.Notification.Builder setFlag(int, boolean);
     method @NonNull public android.app.Notification.Builder setFullScreenIntent(android.app.PendingIntent, boolean);
     method @NonNull public android.app.Notification.Builder setGroup(String);
     method @NonNull public android.app.Notification.Builder setGroupAlertBehavior(int);
@@ -8357,6 +8358,7 @@
     method public int describeContents();
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean fetchUuidsWithSdp();
     method public String getAddress();
+    method @Nullable @RequiresPermission(android.Manifest.permission.BLUETOOTH) public String getAlias();
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public android.bluetooth.BluetoothClass getBluetoothClass();
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public int getBondState();
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public String getName();
@@ -8368,6 +8370,7 @@
     field public static final String ACTION_ACL_CONNECTED = "android.bluetooth.device.action.ACL_CONNECTED";
     field public static final String ACTION_ACL_DISCONNECTED = "android.bluetooth.device.action.ACL_DISCONNECTED";
     field public static final String ACTION_ACL_DISCONNECT_REQUESTED = "android.bluetooth.device.action.ACL_DISCONNECT_REQUESTED";
+    field public static final String ACTION_ALIAS_CHANGED = "android.bluetooth.action.ALIAS_CHANGED";
     field public static final String ACTION_BOND_STATE_CHANGED = "android.bluetooth.device.action.BOND_STATE_CHANGED";
     field public static final String ACTION_CLASS_CHANGED = "android.bluetooth.device.action.CLASS_CHANGED";
     field public static final String ACTION_FOUND = "android.bluetooth.device.action.FOUND";
@@ -9769,7 +9772,8 @@
     method @RequiresPermission("android.permission.INTERACT_ACROSS_USERS") public abstract void sendBroadcastAsUser(@RequiresPermission android.content.Intent, android.os.UserHandle, @Nullable String);
     method public abstract void sendOrderedBroadcast(@RequiresPermission android.content.Intent, @Nullable String);
     method public abstract void sendOrderedBroadcast(@NonNull @RequiresPermission android.content.Intent, @Nullable String, @Nullable android.content.BroadcastReceiver, @Nullable android.os.Handler, int, @Nullable String, @Nullable android.os.Bundle);
-    method public void sendOrderedBroadcast(@NonNull @RequiresPermission android.content.Intent, @Nullable String, @Nullable String, @Nullable android.content.BroadcastReceiver, @Nullable android.os.Handler, int, @Nullable String, @Nullable android.os.Bundle);
+    method public void sendOrderedBroadcast(@NonNull android.content.Intent, @Nullable String, @Nullable String, @Nullable android.content.BroadcastReceiver, @Nullable android.os.Handler, int, @Nullable String, @Nullable android.os.Bundle);
+    method public void sendOrderedBroadcast(@NonNull @RequiresPermission android.content.Intent, @Nullable String, @Nullable String, @Nullable android.os.Bundle, @Nullable android.content.BroadcastReceiver, @Nullable android.os.Handler, int, @Nullable String, @Nullable android.os.Bundle);
     method @RequiresPermission("android.permission.INTERACT_ACROSS_USERS") public abstract void sendOrderedBroadcastAsUser(@RequiresPermission android.content.Intent, android.os.UserHandle, @Nullable String, android.content.BroadcastReceiver, @Nullable android.os.Handler, int, @Nullable String, @Nullable android.os.Bundle);
     method @Deprecated @RequiresPermission(android.Manifest.permission.BROADCAST_STICKY) public abstract void sendStickyBroadcast(@RequiresPermission android.content.Intent);
     method @Deprecated @RequiresPermission(allOf={"android.permission.INTERACT_ACROSS_USERS", android.Manifest.permission.BROADCAST_STICKY}) public abstract void sendStickyBroadcastAsUser(@RequiresPermission android.content.Intent, android.os.UserHandle);
@@ -28693,6 +28697,7 @@
     method @Nullable public String getInterfaceName();
     method @NonNull public java.util.List<android.net.LinkAddress> getLinkAddresses();
     method public int getMtu();
+    method @Nullable public android.net.IpPrefix getNat64Prefix();
     method @Nullable public String getPrivateDnsServerName();
     method @NonNull public java.util.List<android.net.RouteInfo> getRoutes();
     method public boolean isPrivateDnsActive();
@@ -28703,6 +28708,7 @@
     method public void setInterfaceName(@Nullable String);
     method public void setLinkAddresses(@NonNull java.util.Collection<android.net.LinkAddress>);
     method public void setMtu(int);
+    method public void setNat64Prefix(@Nullable android.net.IpPrefix);
     method public void writeToParcel(android.os.Parcel, int);
     field @NonNull public static final android.os.Parcelable.Creator<android.net.LinkProperties> CREATOR;
   }
@@ -28933,14 +28939,17 @@
   }
 
   public class ProxyInfo implements android.os.Parcelable {
+    ctor public ProxyInfo(@Nullable android.net.ProxyInfo);
     method public static android.net.ProxyInfo buildDirectProxy(String, int);
     method public static android.net.ProxyInfo buildDirectProxy(String, int, java.util.List<java.lang.String>);
     method public static android.net.ProxyInfo buildPacProxy(android.net.Uri);
+    method @NonNull public static android.net.ProxyInfo buildPacProxy(@NonNull android.net.Uri, int);
     method public int describeContents();
     method public String[] getExclusionList();
     method public String getHost();
     method public android.net.Uri getPacFileUrl();
     method public int getPort();
+    method public boolean isValid();
     method public void writeToParcel(android.os.Parcel, int);
     field @NonNull public static final android.os.Parcelable.Creator<android.net.ProxyInfo> CREATOR;
   }
@@ -29889,6 +29898,7 @@
     field public static final int STATUS_NETWORK_SUGGESTIONS_SUCCESS = 0; // 0x0
     field @Deprecated public static final String SUPPLICANT_CONNECTION_CHANGE_ACTION = "android.net.wifi.supplicant.CONNECTION_CHANGE";
     field @Deprecated public static final String SUPPLICANT_STATE_CHANGED_ACTION = "android.net.wifi.supplicant.STATE_CHANGE";
+    field public static final String UNKNOWN_SSID = "<unknown ssid>";
     field @Deprecated public static final int WIFI_MODE_FULL = 1; // 0x1
     field public static final int WIFI_MODE_FULL_HIGH_PERF = 3; // 0x3
     field public static final int WIFI_MODE_FULL_LOW_LATENCY = 4; // 0x4
@@ -33984,31 +33994,31 @@
 
 package android.os {
 
-  public abstract class AsyncTask<Params, Progress, Result> {
-    ctor public AsyncTask();
-    method public final boolean cancel(boolean);
-    method @WorkerThread protected abstract Result doInBackground(Params...);
-    method @MainThread public final android.os.AsyncTask<Params,Progress,Result> execute(Params...);
-    method @MainThread public static void execute(Runnable);
-    method @MainThread public final android.os.AsyncTask<Params,Progress,Result> executeOnExecutor(java.util.concurrent.Executor, Params...);
-    method public final Result get() throws java.util.concurrent.ExecutionException, java.lang.InterruptedException;
-    method public final Result get(long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException;
-    method public final android.os.AsyncTask.Status getStatus();
-    method public final boolean isCancelled();
-    method @MainThread protected void onCancelled(Result);
-    method @MainThread protected void onCancelled();
-    method @MainThread protected void onPostExecute(Result);
-    method @MainThread protected void onPreExecute();
-    method @MainThread protected void onProgressUpdate(Progress...);
-    method @WorkerThread protected final void publishProgress(Progress...);
-    field public static final java.util.concurrent.Executor SERIAL_EXECUTOR;
-    field public static final java.util.concurrent.Executor THREAD_POOL_EXECUTOR;
+  @Deprecated public abstract class AsyncTask<Params, Progress, Result> {
+    ctor @Deprecated public AsyncTask();
+    method @Deprecated public final boolean cancel(boolean);
+    method @Deprecated @WorkerThread protected abstract Result doInBackground(Params...);
+    method @Deprecated @MainThread public final android.os.AsyncTask<Params,Progress,Result> execute(Params...);
+    method @Deprecated @MainThread public static void execute(Runnable);
+    method @Deprecated @MainThread public final android.os.AsyncTask<Params,Progress,Result> executeOnExecutor(java.util.concurrent.Executor, Params...);
+    method @Deprecated public final Result get() throws java.util.concurrent.ExecutionException, java.lang.InterruptedException;
+    method @Deprecated public final Result get(long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException;
+    method @Deprecated public final android.os.AsyncTask.Status getStatus();
+    method @Deprecated public final boolean isCancelled();
+    method @Deprecated @MainThread protected void onCancelled(Result);
+    method @Deprecated @MainThread protected void onCancelled();
+    method @Deprecated @MainThread protected void onPostExecute(Result);
+    method @Deprecated @MainThread protected void onPreExecute();
+    method @Deprecated @MainThread protected void onProgressUpdate(Progress...);
+    method @Deprecated @WorkerThread protected final void publishProgress(Progress...);
+    field @Deprecated public static final java.util.concurrent.Executor SERIAL_EXECUTOR;
+    field @Deprecated public static final java.util.concurrent.Executor THREAD_POOL_EXECUTOR;
   }
 
-  public enum AsyncTask.Status {
-    enum_constant public static final android.os.AsyncTask.Status FINISHED;
-    enum_constant public static final android.os.AsyncTask.Status PENDING;
-    enum_constant public static final android.os.AsyncTask.Status RUNNING;
+  @Deprecated public enum AsyncTask.Status {
+    enum_constant @Deprecated public static final android.os.AsyncTask.Status FINISHED;
+    enum_constant @Deprecated public static final android.os.AsyncTask.Status PENDING;
+    enum_constant @Deprecated public static final android.os.AsyncTask.Status RUNNING;
   }
 
   public class BadParcelableException extends android.util.AndroidRuntimeException {
@@ -34204,6 +34214,7 @@
     field public static final int O_MR1 = 27; // 0x1b
     field public static final int P = 28; // 0x1c
     field public static final int Q = 29; // 0x1d
+    field public static final int R = 10000; // 0x2710
   }
 
   public final class Bundle extends android.os.BaseBundle implements java.lang.Cloneable android.os.Parcelable {
@@ -34533,8 +34544,8 @@
   }
 
   public final class FileUtils {
-    method public static void closeQuietly(@Nullable AutoCloseable);
-    method public static void closeQuietly(@Nullable java.io.FileDescriptor);
+    method @Deprecated public static void closeQuietly(@Nullable AutoCloseable);
+    method @Deprecated public static void closeQuietly(@Nullable java.io.FileDescriptor);
     method public static long copy(@NonNull java.io.InputStream, @NonNull java.io.OutputStream) throws java.io.IOException;
     method public static long copy(@NonNull java.io.InputStream, @NonNull java.io.OutputStream, @Nullable android.os.CancellationSignal, @Nullable java.util.concurrent.Executor, @Nullable android.os.FileUtils.ProgressListener) throws java.io.IOException;
     method public static long copy(@NonNull java.io.FileDescriptor, @NonNull java.io.FileDescriptor) throws java.io.IOException;
@@ -34546,8 +34557,8 @@
   }
 
   public class Handler {
-    ctor public Handler();
-    ctor public Handler(@Nullable android.os.Handler.Callback);
+    ctor @Deprecated public Handler();
+    ctor @Deprecated public Handler(@Nullable android.os.Handler.Callback);
     ctor public Handler(@NonNull android.os.Looper);
     ctor public Handler(@NonNull android.os.Looper, @Nullable android.os.Handler.Callback);
     method @NonNull public static android.os.Handler createAsync(@NonNull android.os.Looper);
@@ -34671,7 +34682,7 @@
     method @Nullable public static android.os.Looper myLooper();
     method @NonNull public static android.os.MessageQueue myQueue();
     method public static void prepare();
-    method public static void prepareMainLooper();
+    method @Deprecated public static void prepareMainLooper();
     method public void quit();
     method public void quitSafely();
     method public void setMessageLogging(@Nullable android.util.Printer);
@@ -36911,6 +36922,7 @@
     field public static final String DURATION = "duration";
     field public static final String EXTRA_CALL_TYPE_FILTER = "android.provider.extra.CALL_TYPE_FILTER";
     field public static final String FEATURES = "features";
+    field public static final int FEATURES_ASSISTED_DIALING_USED = 16; // 0x10
     field public static final int FEATURES_HD_CALL = 4; // 0x4
     field public static final int FEATURES_PULLED_EXTERNALLY = 2; // 0x2
     field public static final int FEATURES_RTT = 32; // 0x20
@@ -42668,6 +42680,7 @@
     field public static final int IP_MULTICAST_TTL;
     field public static final int IP_TOS;
     field public static final int IP_TTL;
+    field public static final int MAP_ANONYMOUS;
     field public static final int MAP_FIXED;
     field public static final int MAP_PRIVATE;
     field public static final int MAP_SHARED;
@@ -43135,6 +43148,7 @@
     field public static final int DIRECTION_INCOMING = 0; // 0x0
     field public static final int DIRECTION_OUTGOING = 1; // 0x1
     field public static final int DIRECTION_UNKNOWN = -1; // 0xffffffff
+    field public static final int PROPERTY_ASSISTED_DIALING_USED = 512; // 0x200
     field public static final int PROPERTY_CONFERENCE = 1; // 0x1
     field public static final int PROPERTY_EMERGENCY_CALLBACK_MODE = 4; // 0x4
     field public static final int PROPERTY_ENTERPRISE_CALL = 32; // 0x20
@@ -43248,6 +43262,7 @@
     method public final void removeConnection(android.telecom.Connection);
     method public final void removeExtras(java.util.List<java.lang.String>);
     method public final void removeExtras(java.lang.String...);
+    method public void sendConferenceEvent(@NonNull String, @Nullable android.os.Bundle);
     method public final void setActive();
     method public final void setConferenceableConnections(java.util.List<android.telecom.Connection>);
     method public final void setConnectionCapabilities(int);
@@ -43387,6 +43402,7 @@
     field public static final String EXTRA_IS_RTT_AUDIO_PRESENT = "android.telecom.extra.IS_RTT_AUDIO_PRESENT";
     field public static final String EXTRA_LAST_FORWARDED_NUMBER = "android.telecom.extra.LAST_FORWARDED_NUMBER";
     field public static final String EXTRA_SIP_INVITE = "android.telecom.extra.SIP_INVITE";
+    field public static final int PROPERTY_ASSISTED_DIALING_USED = 512; // 0x200
     field public static final int PROPERTY_HAS_CDMA_VOICE_PRIVACY = 32; // 0x20
     field public static final int PROPERTY_HIGH_DEF_AUDIO = 4; // 0x4
     field public static final int PROPERTY_IS_EXTERNAL_CALL = 16; // 0x10
@@ -43513,6 +43529,7 @@
     field public static final int LOCAL = 2; // 0x2
     field public static final int MISSED = 5; // 0x5
     field public static final int OTHER = 9; // 0x9
+    field public static final String REASON_EMERGENCY_CALL_PLACED = "REASON_EMERGENCY_CALL_PLACED";
     field public static final int REJECTED = 6; // 0x6
     field public static final int REMOTE = 3; // 0x3
     field public static final int RESTRICTED = 8; // 0x8
@@ -43801,6 +43818,7 @@
     method public android.telecom.PhoneAccount getPhoneAccount(android.telecom.PhoneAccountHandle);
     method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public java.util.List<android.telecom.PhoneAccountHandle> getSelfManagedPhoneAccounts();
     method public android.telecom.PhoneAccountHandle getSimCallManager();
+    method @Nullable public android.telecom.PhoneAccountHandle getSimCallManagerForSubscription(int);
     method @Nullable public String getSystemDialerPackage();
     method @Nullable @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public android.telecom.PhoneAccountHandle getUserSelectedOutgoingPhoneAccount();
     method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getVoiceMailNumber(android.telecom.PhoneAccountHandle);
@@ -43849,6 +43867,7 @@
     field public static final String EXTRA_START_CALL_WITH_RTT = "android.telecom.extra.START_CALL_WITH_RTT";
     field public static final String EXTRA_START_CALL_WITH_SPEAKERPHONE = "android.telecom.extra.START_CALL_WITH_SPEAKERPHONE";
     field public static final String EXTRA_START_CALL_WITH_VIDEO_STATE = "android.telecom.extra.START_CALL_WITH_VIDEO_STATE";
+    field public static final String EXTRA_USE_ASSISTED_DIALING = "android.telecom.extra.USE_ASSISTED_DIALING";
     field public static final String GATEWAY_ORIGINAL_ADDRESS = "android.telecom.extra.GATEWAY_ORIGINAL_ADDRESS";
     field public static final String GATEWAY_PROVIDER_PACKAGE = "android.telecom.extra.GATEWAY_PROVIDER_PACKAGE";
     field public static final String METADATA_INCLUDE_EXTERNAL_CALLS = "android.telecom.INCLUDE_EXTERNAL_CALLS";
@@ -44031,11 +44050,15 @@
     field public static final int DATA_CYCLE_THRESHOLD_DISABLED = -2; // 0xfffffffe
     field public static final String EXTRA_SLOT_INDEX = "android.telephony.extra.SLOT_INDEX";
     field public static final String EXTRA_SUBSCRIPTION_INDEX = "android.telephony.extra.SUBSCRIPTION_INDEX";
+    field public static final String KEY_5G_NR_SSRSRP_THRESHOLDS_INT_ARRAY = "5g_nr_ssrsrp_thresholds_int_array";
+    field public static final String KEY_5G_NR_SSRSRQ_THRESHOLDS_INT_ARRAY = "5g_nr_ssrsrq_thresholds_int_array";
+    field public static final String KEY_5G_NR_SSSINR_THRESHOLDS_INT_ARRAY = "5g_nr_sssinr_thresholds_int_array";
     field public static final String KEY_ADDITIONAL_CALL_SETTING_BOOL = "additional_call_setting_bool";
     field public static final String KEY_ALLOW_ADDING_APNS_BOOL = "allow_adding_apns_bool";
     field public static final String KEY_ALLOW_ADD_CALL_DURING_VIDEO_CALL_BOOL = "allow_add_call_during_video_call";
     field public static final String KEY_ALLOW_EMERGENCY_NUMBERS_IN_CALL_LOG_BOOL = "allow_emergency_numbers_in_call_log_bool";
     field public static final String KEY_ALLOW_EMERGENCY_VIDEO_CALLS_BOOL = "allow_emergency_video_calls_bool";
+    field public static final String KEY_ALLOW_HOLD_CALL_DURING_EMERGENCY_BOOL = "allow_hold_call_during_emergency_bool";
     field public static final String KEY_ALLOW_LOCAL_DTMF_TONES_BOOL = "allow_local_dtmf_tones_bool";
     field public static final String KEY_ALLOW_MERGE_WIFI_CALLS_WHEN_VOWIFI_OFF_BOOL = "allow_merge_wifi_calls_when_vowifi_off_bool";
     field public static final String KEY_ALLOW_NON_EMERGENCY_CALLS_IN_ECM_BOOL = "allow_non_emergency_calls_in_ecm_bool";
@@ -44047,12 +44070,13 @@
     field public static final String KEY_CALL_BARRING_VISIBILITY_BOOL = "call_barring_visibility_bool";
     field public static final String KEY_CALL_FORWARDING_BLOCKS_WHILE_ROAMING_STRING_ARRAY = "call_forwarding_blocks_while_roaming_string_array";
     field public static final String KEY_CARRIER_ALLOW_TURNOFF_IMS_BOOL = "carrier_allow_turnoff_ims_bool";
+    field public static final String KEY_CARRIER_APP_REQUIRED_DURING_SIM_SETUP_BOOL = "carrier_app_required_during_setup_bool";
     field public static final String KEY_CARRIER_CALL_SCREENING_APP_STRING = "call_screening_app";
     field public static final String KEY_CARRIER_CONFIG_VERSION_STRING = "carrier_config_version_string";
     field public static final String KEY_CARRIER_DATA_CALL_PERMANENT_FAILURE_STRINGS = "carrier_data_call_permanent_failure_strings";
     field public static final String KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT = "carrier_default_wfc_ims_mode_int";
     field public static final String KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_MODE_INT = "carrier_default_wfc_ims_roaming_mode_int";
-    field public static final String KEY_CARRIER_FORCE_DISABLE_ETWS_CMAS_TEST_BOOL = "carrier_force_disable_etws_cmas_test_bool";
+    field @Deprecated public static final String KEY_CARRIER_FORCE_DISABLE_ETWS_CMAS_TEST_BOOL = "carrier_force_disable_etws_cmas_test_bool";
     field public static final String KEY_CARRIER_IMS_GBA_REQUIRED_BOOL = "carrier_ims_gba_required_bool";
     field public static final String KEY_CARRIER_INSTANT_LETTERING_AVAILABLE_BOOL = "carrier_instant_lettering_available_bool";
     field public static final String KEY_CARRIER_INSTANT_LETTERING_ENCODING_STRING = "carrier_instant_lettering_encoding_string";
@@ -44162,6 +44186,7 @@
     field public static final String KEY_OPPORTUNISTIC_NETWORK_ENTRY_THRESHOLD_RSSNR_INT = "opportunistic_network_entry_threshold_rssnr_int";
     field public static final String KEY_OPPORTUNISTIC_NETWORK_EXIT_THRESHOLD_RSRP_INT = "opportunistic_network_exit_threshold_rsrp_int";
     field public static final String KEY_OPPORTUNISTIC_NETWORK_EXIT_THRESHOLD_RSSNR_INT = "opportunistic_network_exit_threshold_rssnr_int";
+    field public static final String KEY_PARAMETERS_USE_FOR_5G_NR_SIGNAL_BAR_INT = "parameters_use_for_5g_nr_signal_bar_int";
     field public static final String KEY_PREFER_2G_BOOL = "prefer_2g_bool";
     field public static final String KEY_PREVENT_CLIR_ACTIVATION_AND_DEACTIVATION_CODE_BOOL = "prevent_clir_activation_and_deactivation_code_bool";
     field public static final String KEY_RADIO_RESTART_FAILURE_CAUSES_INT_ARRAY = "radio_restart_failure_causes_int_array";
@@ -44781,13 +44806,60 @@
     field public static final int MMS_ERROR_RETRY = 6; // 0x6
     field public static final int MMS_ERROR_UNABLE_CONNECT_MMS = 3; // 0x3
     field public static final int MMS_ERROR_UNSPECIFIED = 1; // 0x1
+    field public static final int RESULT_BLUETOOTH_DISCONNECTED = 27; // 0x1b
+    field public static final int RESULT_CANCELLED = 23; // 0x17
+    field public static final int RESULT_ENCODING_ERROR = 18; // 0x12
+    field public static final int RESULT_ERROR_FDN_CHECK_FAILURE = 6; // 0x6
     field public static final int RESULT_ERROR_GENERIC_FAILURE = 1; // 0x1
     field public static final int RESULT_ERROR_LIMIT_EXCEEDED = 5; // 0x5
+    field public static final int RESULT_ERROR_NONE = 0; // 0x0
     field public static final int RESULT_ERROR_NO_SERVICE = 4; // 0x4
     field public static final int RESULT_ERROR_NULL_PDU = 3; // 0x3
     field public static final int RESULT_ERROR_RADIO_OFF = 2; // 0x2
     field public static final int RESULT_ERROR_SHORT_CODE_NEVER_ALLOWED = 8; // 0x8
     field public static final int RESULT_ERROR_SHORT_CODE_NOT_ALLOWED = 7; // 0x7
+    field public static final int RESULT_INTERNAL_ERROR = 21; // 0x15
+    field public static final int RESULT_INVALID_ARGUMENTS = 11; // 0xb
+    field public static final int RESULT_INVALID_BLUETOOTH_ADDRESS = 26; // 0x1a
+    field public static final int RESULT_INVALID_SMSC_ADDRESS = 19; // 0x13
+    field public static final int RESULT_INVALID_SMS_FORMAT = 14; // 0xe
+    field public static final int RESULT_INVALID_STATE = 12; // 0xc
+    field public static final int RESULT_MODEM_ERROR = 16; // 0x10
+    field public static final int RESULT_NETWORK_ERROR = 17; // 0x11
+    field public static final int RESULT_NETWORK_REJECT = 10; // 0xa
+    field public static final int RESULT_NO_BLUETOOTH_SERVICE = 25; // 0x19
+    field public static final int RESULT_NO_DEFAULT_SMS_APP = 32; // 0x20
+    field public static final int RESULT_NO_MEMORY = 13; // 0xd
+    field public static final int RESULT_NO_RESOURCES = 22; // 0x16
+    field public static final int RESULT_OPERATION_NOT_ALLOWED = 20; // 0x14
+    field public static final int RESULT_RADIO_NOT_AVAILABLE = 9; // 0x9
+    field public static final int RESULT_REMOTE_EXCEPTION = 31; // 0x1f
+    field public static final int RESULT_REQUEST_NOT_SUPPORTED = 24; // 0x18
+    field public static final int RESULT_RIL_CANCELLED = 119; // 0x77
+    field public static final int RESULT_RIL_ENCODING_ERR = 109; // 0x6d
+    field public static final int RESULT_RIL_INTERNAL_ERR = 113; // 0x71
+    field public static final int RESULT_RIL_INVALID_ARGUMENTS = 104; // 0x68
+    field public static final int RESULT_RIL_INVALID_MODEM_STATE = 115; // 0x73
+    field public static final int RESULT_RIL_INVALID_SMSC_ADDRESS = 110; // 0x6e
+    field public static final int RESULT_RIL_INVALID_SMS_FORMAT = 107; // 0x6b
+    field public static final int RESULT_RIL_INVALID_STATE = 103; // 0x67
+    field public static final int RESULT_RIL_MODEM_ERR = 111; // 0x6f
+    field public static final int RESULT_RIL_NETWORK_ERR = 112; // 0x70
+    field public static final int RESULT_RIL_NETWORK_NOT_READY = 116; // 0x74
+    field public static final int RESULT_RIL_NETWORK_REJECT = 102; // 0x66
+    field public static final int RESULT_RIL_NO_MEMORY = 105; // 0x69
+    field public static final int RESULT_RIL_NO_RESOURCES = 118; // 0x76
+    field public static final int RESULT_RIL_OPERATION_NOT_ALLOWED = 117; // 0x75
+    field public static final int RESULT_RIL_RADIO_NOT_AVAILABLE = 100; // 0x64
+    field public static final int RESULT_RIL_REQUEST_NOT_SUPPORTED = 114; // 0x72
+    field public static final int RESULT_RIL_REQUEST_RATE_LIMITED = 106; // 0x6a
+    field public static final int RESULT_RIL_SIM_ABSENT = 120; // 0x78
+    field public static final int RESULT_RIL_SMS_SEND_FAIL_RETRY = 101; // 0x65
+    field public static final int RESULT_RIL_SYSTEM_ERR = 108; // 0x6c
+    field public static final int RESULT_SMS_BLOCKED_DURING_EMERGENCY = 29; // 0x1d
+    field public static final int RESULT_SMS_SEND_RETRY_FAILED = 30; // 0x1e
+    field public static final int RESULT_SYSTEM_ERROR = 15; // 0xf
+    field public static final int RESULT_UNEXPECTED_EVENT_STOP_SENDING = 28; // 0x1c
     field public static final int STATUS_ON_ICC_FREE = 0; // 0x0
     field public static final int STATUS_ON_ICC_READ = 1; // 0x1
     field public static final int STATUS_ON_ICC_SENT = 5; // 0x5
@@ -44893,6 +44965,7 @@
     method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public android.os.ParcelUuid createSubscriptionGroup(@NonNull java.util.List<java.lang.Integer>);
     method @Deprecated public static android.telephony.SubscriptionManager from(android.content.Context);
     method public java.util.List<android.telephony.SubscriptionInfo> getAccessibleSubscriptionInfoList();
+    method public static int getActiveDataSubscriptionId();
     method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public android.telephony.SubscriptionInfo getActiveSubscriptionInfo(int);
     method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public int getActiveSubscriptionInfoCount();
     method public int getActiveSubscriptionInfoCountMax();
@@ -44991,7 +45064,7 @@
     method public int getDataState();
     method @Deprecated @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getDeviceId();
     method @Deprecated @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getDeviceId(int);
-    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getDeviceSoftwareVersion();
+    method @Nullable @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getDeviceSoftwareVersion();
     method @NonNull @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public java.util.Map<java.lang.Integer,java.util.List<android.telephony.emergency.EmergencyNumber>> getEmergencyNumberList();
     method @NonNull @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public java.util.Map<java.lang.Integer,java.util.List<android.telephony.emergency.EmergencyNumber>> getEmergencyNumberList(int);
     method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String[] getForbiddenPlmns();
@@ -45027,8 +45100,8 @@
     method @Nullable public CharSequence getSimSpecificCarrierIdName();
     method public int getSimState();
     method public int getSimState(int);
-    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public int getSubIdForPhoneAccountHandle(@NonNull android.telecom.PhoneAccountHandle);
     method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getSubscriberId();
+    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public int getSubscriptionId(@NonNull android.telecom.PhoneAccountHandle);
     method public int getSupportedModemCount();
     method @Nullable public String getTypeAllocationCode();
     method @Nullable public String getTypeAllocationCode(int);
@@ -45441,11 +45514,13 @@
     method @RequiresPermission("android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS") public void updateSubscriptionNickname(int, @Nullable String, @NonNull android.app.PendingIntent);
     field public static final String ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS = "android.telephony.euicc.action.MANAGE_EMBEDDED_SUBSCRIPTIONS";
     field public static final String ACTION_NOTIFY_CARRIER_SETUP_INCOMPLETE = "android.telephony.euicc.action.NOTIFY_CARRIER_SETUP_INCOMPLETE";
+    field public static final String ACTION_START_EUICC_ACTIVATION = "android.telephony.euicc.action.START_EUICC_ACTIVATION";
     field public static final int EMBEDDED_SUBSCRIPTION_RESULT_ERROR = 2; // 0x2
     field public static final int EMBEDDED_SUBSCRIPTION_RESULT_OK = 0; // 0x0
     field public static final int EMBEDDED_SUBSCRIPTION_RESULT_RESOLVABLE_ERROR = 1; // 0x1
     field public static final String EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE = "android.telephony.euicc.extra.EMBEDDED_SUBSCRIPTION_DETAILED_CODE";
     field public static final String EXTRA_EMBEDDED_SUBSCRIPTION_DOWNLOADABLE_SUBSCRIPTION = "android.telephony.euicc.extra.EMBEDDED_SUBSCRIPTION_DOWNLOADABLE_SUBSCRIPTION";
+    field public static final String EXTRA_USE_QR_SCANNER = "android.telephony.euicc.extra.USE_QR_SCANNER";
     field public static final String META_DATA_CARRIER_ICON = "android.telephony.euicc.carriericon";
   }
 
@@ -48460,12 +48535,12 @@
     method @Nullable public static java.util.List<java.lang.String> getTimeZoneIdsForCountryCode(@NonNull String);
   }
 
-  public class TimingLogger {
-    ctor public TimingLogger(String, String);
-    method public void addSplit(String);
-    method public void dumpToLog();
-    method public void reset(String, String);
-    method public void reset();
+  @Deprecated public class TimingLogger {
+    ctor @Deprecated public TimingLogger(String, String);
+    method @Deprecated public void addSplit(String);
+    method @Deprecated public void dumpToLog();
+    method @Deprecated public void reset(String, String);
+    method @Deprecated public void reset();
   }
 
   public class TypedValue {
diff --git a/api/removed.txt b/api/removed.txt
index b947918..a4ccfb6 100644
--- a/api/removed.txt
+++ b/api/removed.txt
@@ -595,10 +595,6 @@
     field public static final String VOLUME_VOICE = "volume_voice";
   }
 
-  public static final class Telephony.Sms.Intents {
-    field public static final String SMS_EMERGENCY_CB_RECEIVED_ACTION = "android.provider.Telephony.SMS_EMERGENCY_CB_RECEIVED";
-  }
-
 }
 
 package android.speech.tts {
diff --git a/api/system-current.txt b/api/system-current.txt
index a261ee6..994bdd0 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -66,6 +66,7 @@
     field public static final String CRYPT_KEEPER = "android.permission.CRYPT_KEEPER";
     field public static final String DEVICE_POWER = "android.permission.DEVICE_POWER";
     field public static final String DISPATCH_PROVISIONING_MESSAGE = "android.permission.DISPATCH_PROVISIONING_MESSAGE";
+    field public static final String ENTER_CAR_MODE_PRIORITIZED = "android.permission.ENTER_CAR_MODE_PRIORITIZED";
     field public static final String FORCE_BACK = "android.permission.FORCE_BACK";
     field public static final String FORCE_STOP_PACKAGES = "android.permission.FORCE_STOP_PACKAGES";
     field public static final String GET_APP_OPS_STATS = "android.permission.GET_APP_OPS_STATS";
@@ -74,6 +75,7 @@
     field public static final String GET_TOP_ACTIVITY_INFO = "android.permission.GET_TOP_ACTIVITY_INFO";
     field public static final String GRANT_PROFILE_OWNER_DEVICE_IDS_ACCESS = "android.permission.GRANT_PROFILE_OWNER_DEVICE_IDS_ACCESS";
     field public static final String GRANT_RUNTIME_PERMISSIONS = "android.permission.GRANT_RUNTIME_PERMISSIONS";
+    field public static final String HANDLE_CAR_MODE_CHANGES = "android.permission.HANDLE_CAR_MODE_CHANGES";
     field public static final String HARDWARE_TEST = "android.permission.HARDWARE_TEST";
     field public static final String HDMI_CEC = "android.permission.HDMI_CEC";
     field public static final String HIDE_NON_SYSTEM_OVERLAY_WINDOWS = "android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS";
@@ -602,6 +604,15 @@
     method public boolean isStatusBarExpansionDisabled();
   }
 
+  public class UiModeManager {
+    method @RequiresPermission(android.Manifest.permission.ENTER_CAR_MODE_PRIORITIZED) public void enableCarMode(@IntRange(from=0) int, int);
+    field public static final String ACTION_ENTER_CAR_MODE_PRIORITIZED = "android.app.action.ENTER_CAR_MODE_PRIORITIZED";
+    field public static final String ACTION_EXIT_CAR_MODE_PRIORITIZED = "android.app.action.EXIT_CAR_MODE_PRIORITIZED";
+    field public static final int DEFAULT_PRIORITY = 0; // 0x0
+    field public static final String EXTRA_CALLING_PACKAGE = "android.app.extra.CALLING_PACKAGE";
+    field public static final String EXTRA_PRIORITY = "android.app.extra.PRIORITY";
+  }
+
   public final class Vr2dDisplayProperties implements android.os.Parcelable {
     ctor public Vr2dDisplayProperties(int, int, int);
     method public int describeContents();
@@ -1239,12 +1250,18 @@
 
   public final class BluetoothAdapter {
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean addOnMetadataChangedListener(@NonNull android.bluetooth.BluetoothDevice, @NonNull java.util.concurrent.Executor, @NonNull android.bluetooth.BluetoothAdapter.OnMetadataChangedListener);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean connectAllEnabledProfiles(@NonNull android.bluetooth.BluetoothDevice);
     method public boolean disableBLE();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean disconnectAllEnabledProfiles(@NonNull android.bluetooth.BluetoothDevice);
     method public boolean enableBLE();
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean enableNoAutoConnect();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean factoryReset();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public long getDiscoveryEndMillis();
     method public boolean isBleScanAlwaysAvailable();
     method public boolean isLeEnabled();
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean removeOnMetadataChangedListener(@NonNull android.bluetooth.BluetoothDevice, @NonNull android.bluetooth.BluetoothAdapter.OnMetadataChangedListener);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean setScanMode(int, int);
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean setScanMode(int);
     field public static final String ACTION_BLE_STATE_CHANGED = "android.bluetooth.adapter.action.BLE_STATE_CHANGED";
     field public static final String ACTION_REQUEST_BLE_SCAN_ALWAYS_AVAILABLE = "android.bluetooth.adapter.action.REQUEST_BLE_SCAN_ALWAYS_AVAILABLE";
   }
@@ -1260,6 +1277,7 @@
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean isEncrypted();
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean isInSilenceMode();
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean removeBond();
+    method @RequiresPermission(android.Manifest.permission.BLUETOOTH) public boolean setAlias(@NonNull String);
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setMetadata(int, @NonNull byte[]);
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setPhonebookAccessPermission(int);
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED) public boolean setSilenceMode(boolean);
@@ -1293,7 +1311,23 @@
     method @RequiresPermission(android.Manifest.permission.BLUETOOTH_ADMIN) public boolean setPriority(android.bluetooth.BluetoothDevice, int);
   }
 
+  public final class BluetoothPan implements android.bluetooth.BluetoothProfile {
+    method protected void finalize();
+    method @NonNull public java.util.List<android.bluetooth.BluetoothDevice> getConnectedDevices();
+    method public int getConnectionState(@Nullable android.bluetooth.BluetoothDevice);
+    method public boolean isTetheringOn();
+    method public void setBluetoothTethering(boolean);
+    field public static final String ACTION_CONNECTION_STATE_CHANGED = "android.bluetooth.pan.profile.action.CONNECTION_STATE_CHANGED";
+    field public static final String EXTRA_LOCAL_ROLE = "android.bluetooth.pan.extra.LOCAL_ROLE";
+    field public static final int LOCAL_NAP_ROLE = 1; // 0x1
+    field public static final int LOCAL_PANU_ROLE = 2; // 0x2
+    field public static final int PAN_ROLE_NONE = 0; // 0x0
+    field public static final int REMOTE_NAP_ROLE = 1; // 0x1
+    field public static final int REMOTE_PANU_ROLE = 2; // 0x2
+  }
+
   public interface BluetoothProfile {
+    field public static final int PAN = 5; // 0x5
     field public static final int PRIORITY_OFF = 0; // 0x0
     field public static final int PRIORITY_ON = 100; // 0x64
   }
@@ -1337,6 +1371,10 @@
 
 package android.content {
 
+  public abstract class BroadcastReceiver {
+    method @NonNull public final android.os.UserHandle getSendingUser();
+  }
+
   public class ContentProviderClient implements java.lang.AutoCloseable {
     method @RequiresPermission(android.Manifest.permission.REMOVE_TASKS) public void setDetectNotResponding(long);
   }
@@ -1348,10 +1386,12 @@
 
   public abstract class Context {
     method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public boolean bindServiceAsUser(@RequiresPermission android.content.Intent, android.content.ServiceConnection, int, android.os.UserHandle);
+    method @NonNull public android.content.Context createContextAsUser(@NonNull android.os.UserHandle, int);
     method public abstract android.content.Context createCredentialProtectedStorageContext();
-    method public android.content.Context createPackageContextAsUser(String, int, android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @NonNull public android.content.Context createPackageContextAsUser(@NonNull String, int, @NonNull android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException;
     method @Nullable public abstract java.io.File getPreloadsFileCache();
     method public abstract boolean isCredentialProtectedStorage();
+    method @Nullable @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public android.content.Intent registerReceiverForAllUsers(@Nullable android.content.BroadcastReceiver, @NonNull android.content.IntentFilter, @Nullable String, @Nullable android.os.Handler);
     method public abstract void sendBroadcast(android.content.Intent, @Nullable String, @Nullable android.os.Bundle);
     method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public abstract void sendBroadcastAsUser(@RequiresPermission android.content.Intent, android.os.UserHandle, @Nullable String, @Nullable android.os.Bundle);
     method public abstract void sendOrderedBroadcast(@NonNull android.content.Intent, @Nullable String, @Nullable android.os.Bundle, @Nullable android.content.BroadcastReceiver, @Nullable android.os.Handler, int, @Nullable String, @Nullable android.os.Bundle);
@@ -1741,6 +1781,7 @@
     field public static final int PROTECTION_FLAG_INCIDENT_REPORT_APPROVER = 1048576; // 0x100000
     field public static final int PROTECTION_FLAG_OEM = 16384; // 0x4000
     field public static final int PROTECTION_FLAG_SYSTEM_TEXT_CLASSIFIER = 65536; // 0x10000
+    field public static final int PROTECTION_FLAG_TELEPHONY = 4194304; // 0x400000
     field public static final int PROTECTION_FLAG_WELLBEING = 131072; // 0x20000
     field @Nullable public final String backgroundPermission;
     field @StringRes public int requestRes;
@@ -4044,6 +4085,35 @@
     method public void onUpstreamChanged(@Nullable android.net.Network);
   }
 
+  public final class IpConfiguration implements android.os.Parcelable {
+    ctor public IpConfiguration();
+    ctor public IpConfiguration(@NonNull android.net.IpConfiguration);
+    method public int describeContents();
+    method @Nullable public android.net.ProxyInfo getHttpProxy();
+    method @NonNull public android.net.IpConfiguration.IpAssignment getIpAssignment();
+    method @NonNull public android.net.IpConfiguration.ProxySettings getProxySettings();
+    method @Nullable public android.net.StaticIpConfiguration getStaticIpConfiguration();
+    method public void setHttpProxy(@Nullable android.net.ProxyInfo);
+    method public void setIpAssignment(@NonNull android.net.IpConfiguration.IpAssignment);
+    method public void setProxySettings(@NonNull android.net.IpConfiguration.ProxySettings);
+    method public void setStaticIpConfiguration(@Nullable android.net.StaticIpConfiguration);
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
+    field @NonNull public static final android.os.Parcelable.Creator<android.net.IpConfiguration> CREATOR;
+  }
+
+  public enum IpConfiguration.IpAssignment {
+    enum_constant public static final android.net.IpConfiguration.IpAssignment DHCP;
+    enum_constant public static final android.net.IpConfiguration.IpAssignment STATIC;
+    enum_constant public static final android.net.IpConfiguration.IpAssignment UNASSIGNED;
+  }
+
+  public enum IpConfiguration.ProxySettings {
+    enum_constant public static final android.net.IpConfiguration.ProxySettings NONE;
+    enum_constant public static final android.net.IpConfiguration.ProxySettings PAC;
+    enum_constant public static final android.net.IpConfiguration.ProxySettings STATIC;
+    enum_constant public static final android.net.IpConfiguration.ProxySettings UNASSIGNED;
+  }
+
   public final class IpPrefix implements android.os.Parcelable {
     ctor public IpPrefix(@NonNull java.net.InetAddress, @IntRange(from=0, to=128) int);
     ctor public IpPrefix(@NonNull String);
@@ -4080,7 +4150,6 @@
     ctor public LinkProperties(@Nullable android.net.LinkProperties);
     method public boolean addDnsServer(@NonNull java.net.InetAddress);
     method public boolean addLinkAddress(@NonNull android.net.LinkAddress);
-    method @Nullable public android.net.IpPrefix getNat64Prefix();
     method @NonNull public java.util.List<java.net.InetAddress> getPcscfServers();
     method @Nullable public String getTcpBufferSizes();
     method @NonNull public java.util.List<java.net.InetAddress> getValidatedPrivateDnsServers();
@@ -4094,7 +4163,6 @@
     method public boolean removeDnsServer(@NonNull java.net.InetAddress);
     method public boolean removeLinkAddress(@NonNull android.net.LinkAddress);
     method public boolean removeRoute(@NonNull android.net.RouteInfo);
-    method public void setNat64Prefix(@Nullable android.net.IpPrefix);
     method public void setPcscfServers(@NonNull java.util.Collection<java.net.InetAddress>);
     method public void setPrivateDnsServerName(@Nullable String);
     method public void setTcpBufferSizes(@Nullable String);
@@ -4116,6 +4184,7 @@
 
   public class NetworkKey implements android.os.Parcelable {
     ctor public NetworkKey(android.net.WifiKey);
+    method @Nullable public static android.net.NetworkKey createFromScanResult(@Nullable android.net.wifi.ScanResult);
     method public int describeContents();
     method public void writeToParcel(android.os.Parcel, int);
     field @NonNull public static final android.os.Parcelable.Creator<android.net.NetworkKey> CREATOR;
@@ -4138,16 +4207,23 @@
     method @RequiresPermission(anyOf={android.Manifest.permission.SCORE_NETWORKS, "android.permission.REQUEST_NETWORK_SCORES"}) public boolean clearScores() throws java.lang.SecurityException;
     method @RequiresPermission(anyOf={android.Manifest.permission.SCORE_NETWORKS, "android.permission.REQUEST_NETWORK_SCORES"}) public void disableScoring() throws java.lang.SecurityException;
     method @RequiresPermission(anyOf={android.Manifest.permission.SCORE_NETWORKS, "android.permission.REQUEST_NETWORK_SCORES"}) public String getActiveScorerPackage();
+    method @RequiresPermission("android.permission.REQUEST_NETWORK_SCORES") public void registerNetworkScoreCallback(int, int, @NonNull java.util.concurrent.Executor, @NonNull android.net.NetworkScoreManager.NetworkScoreCallback) throws java.lang.SecurityException;
+    method @RequiresPermission("android.permission.REQUEST_NETWORK_SCORES") public boolean requestScores(@NonNull android.net.NetworkKey[]) throws java.lang.SecurityException;
     method @RequiresPermission(anyOf={android.Manifest.permission.SCORE_NETWORKS, "android.permission.REQUEST_NETWORK_SCORES"}) public boolean setActiveScorer(String) throws java.lang.SecurityException;
-    method @RequiresPermission(android.Manifest.permission.SCORE_NETWORKS) public boolean updateScores(android.net.ScoredNetwork[]) throws java.lang.SecurityException;
-    field public static final String ACTION_CHANGE_ACTIVE = "android.net.scoring.CHANGE_ACTIVE";
+    method @RequiresPermission(android.Manifest.permission.SCORE_NETWORKS) public boolean updateScores(@NonNull android.net.ScoredNetwork[]) throws java.lang.SecurityException;
+    field @Deprecated public static final String ACTION_CHANGE_ACTIVE = "android.net.scoring.CHANGE_ACTIVE";
     field public static final String ACTION_CUSTOM_ENABLE = "android.net.scoring.CUSTOM_ENABLE";
     field public static final String ACTION_RECOMMEND_NETWORKS = "android.net.action.RECOMMEND_NETWORKS";
     field public static final String ACTION_SCORER_CHANGED = "android.net.scoring.SCORER_CHANGED";
-    field public static final String ACTION_SCORE_NETWORKS = "android.net.scoring.SCORE_NETWORKS";
-    field public static final String EXTRA_NETWORKS_TO_SCORE = "networksToScore";
+    field @Deprecated public static final String ACTION_SCORE_NETWORKS = "android.net.scoring.SCORE_NETWORKS";
+    field @Deprecated public static final String EXTRA_NETWORKS_TO_SCORE = "networksToScore";
     field public static final String EXTRA_NEW_SCORER = "newScorer";
-    field public static final String EXTRA_PACKAGE_NAME = "packageName";
+    field @Deprecated public static final String EXTRA_PACKAGE_NAME = "packageName";
+  }
+
+  public static interface NetworkScoreManager.NetworkScoreCallback {
+    method public void clearScores();
+    method public void updateScores(@NonNull java.util.List<android.net.ScoredNetwork>);
   }
 
   public class NetworkStack {
@@ -4269,6 +4345,258 @@
 
 }
 
+package android.net.eap {
+
+  public final class EapSessionConfig {
+  }
+
+  public static final class EapSessionConfig.Builder {
+    ctor public EapSessionConfig.Builder();
+    method @NonNull public android.net.eap.EapSessionConfig build();
+    method @NonNull public android.net.eap.EapSessionConfig.Builder setEapAkaConfig(int, int);
+    method @NonNull public android.net.eap.EapSessionConfig.Builder setEapAkaPrimeConfig(int, int, @NonNull String, boolean);
+    method @NonNull public android.net.eap.EapSessionConfig.Builder setEapIdentity(@NonNull byte[]);
+    method @NonNull public android.net.eap.EapSessionConfig.Builder setEapMsChapV2Config(@NonNull String, @NonNull String);
+    method @NonNull public android.net.eap.EapSessionConfig.Builder setEapSimConfig(int, int);
+  }
+
+  public static class EapSessionConfig.EapAkaConfig extends android.net.eap.EapSessionConfig.EapUiccConfig {
+  }
+
+  public static class EapSessionConfig.EapAkaPrimeConfig extends android.net.eap.EapSessionConfig.EapAkaConfig {
+    method public boolean allowsMismatchedNetworkNames();
+    method @NonNull public String getNetworkName();
+  }
+
+  public abstract static class EapSessionConfig.EapMethodConfig {
+    method public int getMethodType();
+  }
+
+  public static class EapSessionConfig.EapMsChapV2Config extends android.net.eap.EapSessionConfig.EapMethodConfig {
+    method @NonNull public String getPassword();
+    method @NonNull public String getUsername();
+  }
+
+  public static class EapSessionConfig.EapSimConfig extends android.net.eap.EapSessionConfig.EapUiccConfig {
+  }
+
+  public abstract static class EapSessionConfig.EapUiccConfig extends android.net.eap.EapSessionConfig.EapMethodConfig {
+    method public int getAppType();
+    method public int getSubId();
+  }
+
+}
+
+package android.net.ipsec.ike {
+
+  public final class ChildSaProposal extends android.net.ipsec.ike.SaProposal {
+  }
+
+  public static final class ChildSaProposal.Builder {
+    ctor public ChildSaProposal.Builder();
+    method @NonNull public android.net.ipsec.ike.ChildSaProposal.Builder addDhGroup(int);
+    method @NonNull public android.net.ipsec.ike.ChildSaProposal.Builder addEncryptionAlgorithm(int, int);
+    method @NonNull public android.net.ipsec.ike.ChildSaProposal.Builder addIntegrityAlgorithm(int);
+    method @NonNull public android.net.ipsec.ike.ChildSaProposal build();
+  }
+
+  public interface ChildSessionCallback {
+    method public void onClosed();
+    method public void onClosedExceptionally(@NonNull android.net.ipsec.ike.exceptions.IkeException);
+    method public void onIpSecTransformCreated(@NonNull android.net.IpSecTransform, int);
+    method public void onIpSecTransformDeleted(@NonNull android.net.IpSecTransform, int);
+    method public void onOpened(@NonNull android.net.ipsec.ike.ChildSessionConfiguration);
+  }
+
+  public final class ChildSessionConfiguration {
+    method @NonNull public java.util.List<android.net.ipsec.ike.IkeTrafficSelector> getInboundTrafficSelectors();
+    method @NonNull public java.util.List<android.net.LinkAddress> getInternalAddresses();
+    method @NonNull public java.util.List<java.net.InetAddress> getInternalDhcpServers();
+    method @NonNull public java.util.List<java.net.InetAddress> getInternalDnsServers();
+    method @NonNull public java.util.List<android.net.LinkAddress> getInternalSubnets();
+    method @NonNull public java.util.List<android.net.ipsec.ike.IkeTrafficSelector> getOutboundTrafficSelectors();
+  }
+
+  public abstract class ChildSessionOptions {
+  }
+
+  public class IkeFqdnIdentification extends android.net.ipsec.ike.IkeIdentification {
+    ctor public IkeFqdnIdentification(@NonNull String);
+    field @NonNull public final String fqdn;
+  }
+
+  public abstract class IkeIdentification {
+  }
+
+  public final class IkeIpv4AddrIdentification extends android.net.ipsec.ike.IkeIdentification {
+    ctor public IkeIpv4AddrIdentification(@NonNull java.net.Inet4Address);
+    field @NonNull public final java.net.Inet4Address ipv4Address;
+  }
+
+  public class IkeIpv6AddrIdentification extends android.net.ipsec.ike.IkeIdentification {
+    ctor public IkeIpv6AddrIdentification(@NonNull java.net.Inet6Address);
+    field @NonNull public final java.net.Inet6Address ipv6Address;
+  }
+
+  public final class IkeKeyIdIdentification extends android.net.ipsec.ike.IkeIdentification {
+    ctor public IkeKeyIdIdentification(@NonNull byte[]);
+    field @NonNull public final byte[] keyId;
+  }
+
+  public final class IkeRfc822AddrIdentification extends android.net.ipsec.ike.IkeIdentification {
+    ctor public IkeRfc822AddrIdentification(@NonNull String);
+    field @NonNull public final String rfc822Name;
+  }
+
+  public final class IkeSaProposal extends android.net.ipsec.ike.SaProposal {
+    method @NonNull public java.util.List<java.lang.Integer> getPseudorandomFunctions();
+  }
+
+  public static final class IkeSaProposal.Builder {
+    ctor public IkeSaProposal.Builder();
+    method @NonNull public android.net.ipsec.ike.IkeSaProposal.Builder addDhGroup(int);
+    method @NonNull public android.net.ipsec.ike.IkeSaProposal.Builder addEncryptionAlgorithm(int, int);
+    method @NonNull public android.net.ipsec.ike.IkeSaProposal.Builder addIntegrityAlgorithm(int);
+    method @NonNull public android.net.ipsec.ike.IkeSaProposal.Builder addPseudorandomFunction(int);
+    method @NonNull public android.net.ipsec.ike.IkeSaProposal build();
+  }
+
+  public final class IkeSession implements java.lang.AutoCloseable {
+    ctor public IkeSession(@NonNull android.content.Context, @NonNull android.net.ipsec.ike.IkeSessionOptions, @NonNull android.net.ipsec.ike.ChildSessionOptions, @NonNull java.util.concurrent.Executor, @NonNull android.net.ipsec.ike.IkeSessionCallback, @NonNull android.net.ipsec.ike.ChildSessionCallback);
+    method public void close();
+    method public void closeChildSession(@NonNull android.net.ipsec.ike.ChildSessionCallback);
+    method public void kill();
+    method public void openChildSession(@NonNull android.net.ipsec.ike.ChildSessionOptions, @NonNull android.net.ipsec.ike.ChildSessionCallback);
+  }
+
+  public interface IkeSessionCallback {
+    method public void onClosed();
+    method public void onClosedExceptionally(@NonNull android.net.ipsec.ike.exceptions.IkeException);
+    method public void onError(@NonNull android.net.ipsec.ike.exceptions.IkeProtocolException);
+    method public void onOpened(@NonNull android.net.ipsec.ike.IkeSessionConfiguration);
+  }
+
+  public final class IkeSessionConfiguration {
+    ctor public IkeSessionConfiguration();
+    method @NonNull public String getRemoteApplicationVersion();
+    method public boolean isIkeExtensionEnabled(int);
+    field public static final int EXTENSION_TYPE_FRAGMENTATION = 1; // 0x1
+    field public static final int EXTENSION_TYPE_MOBIKE = 2; // 0x2
+  }
+
+  public final class IkeSessionOptions {
+  }
+
+  public static final class IkeSessionOptions.Builder {
+    ctor public IkeSessionOptions.Builder();
+    method @NonNull public android.net.ipsec.ike.IkeSessionOptions.Builder addSaProposal(@NonNull android.net.ipsec.ike.IkeSaProposal);
+    method @NonNull public android.net.ipsec.ike.IkeSessionOptions build();
+    method @NonNull public android.net.ipsec.ike.IkeSessionOptions.Builder setAuthDigitalSignature(@NonNull java.security.cert.X509Certificate, @NonNull java.security.cert.X509Certificate, @NonNull java.security.PrivateKey);
+    method @NonNull public android.net.ipsec.ike.IkeSessionOptions.Builder setAuthDigitalSignature(@NonNull java.security.cert.X509Certificate, @NonNull java.security.cert.X509Certificate, @NonNull java.util.List<java.security.cert.X509Certificate>, @NonNull java.security.PrivateKey);
+    method @NonNull public android.net.ipsec.ike.IkeSessionOptions.Builder setAuthEap(@NonNull java.security.cert.X509Certificate, @NonNull android.net.eap.EapSessionConfig);
+    method @NonNull public android.net.ipsec.ike.IkeSessionOptions.Builder setAuthPsk(@NonNull byte[]);
+    method @NonNull public android.net.ipsec.ike.IkeSessionOptions.Builder setLocalIdentification(@NonNull android.net.ipsec.ike.IkeIdentification);
+    method @NonNull public android.net.ipsec.ike.IkeSessionOptions.Builder setRemoteIdentification(@NonNull android.net.ipsec.ike.IkeIdentification);
+    method @NonNull public android.net.ipsec.ike.IkeSessionOptions.Builder setServerAddress(@NonNull java.net.InetAddress);
+    method @NonNull public android.net.ipsec.ike.IkeSessionOptions.Builder setUdpEncapsulationSocket(@NonNull android.net.IpSecManager.UdpEncapsulationSocket);
+  }
+
+  public final class IkeTrafficSelector {
+    ctor public IkeTrafficSelector(int, int, @NonNull java.net.InetAddress, @NonNull java.net.InetAddress);
+    field public final int endPort;
+    field @NonNull public final java.net.InetAddress endingAddress;
+    field public final int startPort;
+    field @NonNull public final java.net.InetAddress startingAddress;
+  }
+
+  public abstract class SaProposal {
+    method @NonNull public java.util.List<java.lang.Integer> getDhGroups();
+    method @NonNull public java.util.List<android.util.Pair<java.lang.Integer,java.lang.Integer>> getEncryptionAlgorithms();
+    method @NonNull public java.util.List<java.lang.Integer> getIntegrityAlgorithms();
+    field public static final int DH_GROUP_1024_BIT_MODP = 2; // 0x2
+    field public static final int DH_GROUP_2048_BIT_MODP = 14; // 0xe
+    field public static final int DH_GROUP_NONE = 0; // 0x0
+    field public static final int ENCRYPTION_ALGORITHM_3DES = 3; // 0x3
+    field public static final int ENCRYPTION_ALGORITHM_AES_CBC = 12; // 0xc
+    field public static final int ENCRYPTION_ALGORITHM_AES_GCM_12 = 19; // 0x13
+    field public static final int ENCRYPTION_ALGORITHM_AES_GCM_16 = 20; // 0x14
+    field public static final int ENCRYPTION_ALGORITHM_AES_GCM_8 = 18; // 0x12
+    field public static final int INTEGRITY_ALGORITHM_AES_XCBC_96 = 5; // 0x5
+    field public static final int INTEGRITY_ALGORITHM_HMAC_SHA1_96 = 2; // 0x2
+    field public static final int INTEGRITY_ALGORITHM_HMAC_SHA2_256_128 = 12; // 0xc
+    field public static final int INTEGRITY_ALGORITHM_HMAC_SHA2_384_192 = 13; // 0xd
+    field public static final int INTEGRITY_ALGORITHM_HMAC_SHA2_512_256 = 14; // 0xe
+    field public static final int INTEGRITY_ALGORITHM_NONE = 0; // 0x0
+    field public static final int KEY_LEN_AES_128 = 128; // 0x80
+    field public static final int KEY_LEN_AES_192 = 192; // 0xc0
+    field public static final int KEY_LEN_AES_256 = 256; // 0x100
+    field public static final int KEY_LEN_UNUSED = 0; // 0x0
+    field public static final int PSEUDORANDOM_FUNCTION_AES128_XCBC = 4; // 0x4
+    field public static final int PSEUDORANDOM_FUNCTION_HMAC_SHA1 = 2; // 0x2
+  }
+
+  public final class TransportModeChildSessionOptions extends android.net.ipsec.ike.ChildSessionOptions {
+  }
+
+  public static final class TransportModeChildSessionOptions.Builder {
+    ctor public TransportModeChildSessionOptions.Builder();
+    method @NonNull public android.net.ipsec.ike.TransportModeChildSessionOptions.Builder addInboundTrafficSelectors(@NonNull android.net.ipsec.ike.IkeTrafficSelector);
+    method @NonNull public android.net.ipsec.ike.TransportModeChildSessionOptions.Builder addOutboundTrafficSelectors(@NonNull android.net.ipsec.ike.IkeTrafficSelector);
+    method @NonNull public android.net.ipsec.ike.TransportModeChildSessionOptions.Builder addSaProposal(@NonNull android.net.ipsec.ike.ChildSaProposal);
+    method @NonNull public android.net.ipsec.ike.TransportModeChildSessionOptions build();
+  }
+
+  public final class TunnelModeChildSessionOptions extends android.net.ipsec.ike.ChildSessionOptions {
+  }
+
+  public static final class TunnelModeChildSessionOptions.Builder {
+    ctor public TunnelModeChildSessionOptions.Builder();
+    method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionOptions.Builder addInboundTrafficSelectors(@NonNull android.net.ipsec.ike.IkeTrafficSelector);
+    method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionOptions.Builder addInternalAddressRequest(int);
+    method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionOptions.Builder addInternalAddressRequest(@NonNull java.net.InetAddress, int);
+    method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionOptions.Builder addInternalDhcpServerRequest(int);
+    method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionOptions.Builder addInternalDhcpServerRequest(@NonNull java.net.InetAddress);
+    method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionOptions.Builder addInternalDnsServerRequest(int);
+    method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionOptions.Builder addInternalDnsServerRequest(@NonNull java.net.InetAddress);
+    method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionOptions.Builder addInternalSubnetRequest(int);
+    method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionOptions.Builder addOutboundTrafficSelectors(@NonNull android.net.ipsec.ike.IkeTrafficSelector);
+    method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionOptions.Builder addSaProposal(@NonNull android.net.ipsec.ike.ChildSaProposal);
+    method @NonNull public android.net.ipsec.ike.TunnelModeChildSessionOptions build();
+  }
+
+}
+
+package android.net.ipsec.ike.exceptions {
+
+  public abstract class IkeException extends java.lang.Exception {
+  }
+
+  public final class IkeInternalException extends android.net.ipsec.ike.exceptions.IkeException {
+  }
+
+  public abstract class IkeProtocolException extends android.net.ipsec.ike.exceptions.IkeException {
+    method @Nullable public byte[] getErrorData();
+    method public int getErrorType();
+    field public static final int ERROR_TYPE_AUTHENTICATION_FAILED = 24; // 0x18
+    field public static final int ERROR_TYPE_CHILD_SA_NOT_FOUND = 44; // 0x2c
+    field public static final int ERROR_TYPE_FAILED_CP_REQUIRED = 37; // 0x25
+    field public static final int ERROR_TYPE_INTERNAL_ADDRESS_FAILURE = 36; // 0x24
+    field public static final int ERROR_TYPE_INVALID_IKE_SPI = 4; // 0x4
+    field public static final int ERROR_TYPE_INVALID_KE_PAYLOAD = 17; // 0x11
+    field public static final int ERROR_TYPE_INVALID_MAJOR_VERSION = 5; // 0x5
+    field public static final int ERROR_TYPE_INVALID_MESSAGE_ID = 9; // 0x9
+    field public static final int ERROR_TYPE_INVALID_SELECTORS = 39; // 0x27
+    field public static final int ERROR_TYPE_INVALID_SYNTAX = 7; // 0x7
+    field public static final int ERROR_TYPE_NO_ADDITIONAL_SAS = 35; // 0x23
+    field public static final int ERROR_TYPE_NO_PROPOSAL_CHOSEN = 14; // 0xe
+    field public static final int ERROR_TYPE_SINGLE_PAIR_REQUIRED = 34; // 0x22
+    field public static final int ERROR_TYPE_TEMPORARY_FAILURE = 43; // 0x2b
+    field public static final int ERROR_TYPE_TS_UNACCEPTABLE = 38; // 0x26
+    field public static final int ERROR_TYPE_UNSUPPORTED_CRITICAL_PAYLOAD = 1; // 0x1
+  }
+
+}
+
 package android.net.metrics {
 
   public final class ApfProgramEvent implements android.net.metrics.IpConnectivityLog.Event {
@@ -4653,6 +4981,13 @@
     field @Deprecated public byte id;
   }
 
+  public final class WifiClient implements android.os.Parcelable {
+    method public int describeContents();
+    method @NonNull public android.net.MacAddress getMacAddress();
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
+    field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.WifiClient> CREATOR;
+  }
+
   @Deprecated public class WifiConfiguration implements android.os.Parcelable {
     method @Deprecated public boolean hasNoInternetAccess();
     method @Deprecated public boolean isEphemeral();
@@ -4693,6 +5028,7 @@
     method public boolean isPortableHotspotSupported();
     method @RequiresPermission(android.Manifest.permission.ACCESS_WIFI_STATE) public boolean isWifiApEnabled();
     method public boolean isWifiScannerSupported();
+    method @RequiresPermission("android.permission.NETWORK_SETTINGS") public void registerSoftApCallback(@Nullable java.util.concurrent.Executor, @NonNull android.net.wifi.WifiManager.SoftApCallback);
     method @RequiresPermission("android.permission.WIFI_UPDATE_USABILITY_STATS_SCORE") public void removeOnWifiUsabilityStatsListener(@NonNull android.net.wifi.WifiManager.OnWifiUsabilityStatsListener);
     method @RequiresPermission(anyOf={"android.permission.NETWORK_SETTINGS", android.Manifest.permission.NETWORK_SETUP_WIZARD, "android.permission.NETWORK_STACK"}) public void save(@NonNull android.net.wifi.WifiConfiguration, @Nullable android.net.wifi.WifiManager.ActionListener);
     method @RequiresPermission("android.permission.WIFI_SET_DEVICE_MOBILITY_STATE") public void setDeviceMobilityState(int);
@@ -4751,6 +5087,11 @@
     method public void onWifiUsabilityStats(int, boolean, @NonNull android.net.wifi.WifiUsabilityStatsEntry);
   }
 
+  public static interface WifiManager.SoftApCallback {
+    method public void onConnectedClientsChanged(@NonNull java.util.List<android.net.wifi.WifiClient>);
+    method public void onStateChanged(int, int);
+  }
+
   public class WifiNetworkConnectionStatistics implements android.os.Parcelable {
     ctor public WifiNetworkConnectionStatistics(int, int);
     ctor public WifiNetworkConnectionStatistics();
@@ -5186,6 +5527,17 @@
     method @NonNull public static java.io.File getVendorDirectory();
   }
 
+  public class HidlMemory implements java.io.Closeable {
+    ctor public HidlMemory(@NonNull String, @IntRange(from=0) long, @Nullable android.os.NativeHandle);
+    method public void close() throws java.io.IOException;
+    method @NonNull public android.os.HidlMemory dup() throws java.io.IOException;
+    method protected void finalize();
+    method @Nullable public android.os.NativeHandle getHandle();
+    method @NonNull public String getName();
+    method public long getSize();
+    method @NonNull public android.os.NativeHandle releaseHandle();
+  }
+
   public class HidlSupport {
     method public static boolean deepEquals(Object, Object);
     method public static int deepHashCode(Object);
@@ -5216,6 +5568,7 @@
     method public final void copyToInt8Array(long, byte[], int);
     method public final boolean getBool(long);
     method public final double getDouble(long);
+    method public final long getFieldHandle(long);
     method public final float getFloat(long);
     method public final short getInt16(long);
     method public final int getInt32(long);
@@ -5230,6 +5583,7 @@
     method public final void putDoubleArray(long, double[]);
     method public final void putFloat(long, float);
     method public final void putFloatArray(long, float[]);
+    method public final void putHidlMemory(long, @NonNull android.os.HidlMemory);
     method public final void putInt16(long, short);
     method public final void putInt16Array(long, short[]);
     method public final void putInt32(long, int);
@@ -5258,9 +5612,11 @@
     method public final double readDouble();
     method public final java.util.ArrayList<java.lang.Double> readDoubleVector();
     method public final android.os.HwBlob readEmbeddedBuffer(long, long, long, boolean);
+    method @NonNull @Nullable public final android.os.HidlMemory readEmbeddedHidlMemory(long, long, long);
     method @Nullable public final android.os.NativeHandle readEmbeddedNativeHandle(long, long);
     method public final float readFloat();
     method public final java.util.ArrayList<java.lang.Float> readFloatVector();
+    method @NonNull public final android.os.HidlMemory readHidlMemory();
     method public final short readInt16();
     method public final java.util.ArrayList<java.lang.Short> readInt16Vector();
     method public final int readInt32();
@@ -5285,6 +5641,7 @@
     method public final void writeDoubleVector(java.util.ArrayList<java.lang.Double>);
     method public final void writeFloat(float);
     method public final void writeFloatVector(java.util.ArrayList<java.lang.Float>);
+    method public final void writeHidlMemory(@NonNull android.os.HidlMemory);
     method public final void writeInt16(short);
     method public final void writeInt16Vector(java.util.ArrayList<java.lang.Short>);
     method public final void writeInt32(int);
@@ -5650,14 +6007,6 @@
 
 }
 
-package android.os.telephony {
-
-  public class TelephonyRegistryManager {
-    method public void notifyCarrierNetworkChange(boolean);
-  }
-
-}
-
 package android.permission {
 
   public final class PermissionControllerManager {
@@ -6079,6 +6428,32 @@
     field public static final int VOLUME_HUSH_VIBRATE = 1; // 0x1
   }
 
+  public static interface Telephony.CarrierColumns extends android.provider.BaseColumns {
+    field @NonNull public static final android.net.Uri CONTENT_URI;
+    field public static final String EXPIRATION_TIME = "expiration_time";
+    field public static final String KEY_IDENTIFIER = "key_identifier";
+    field public static final String KEY_TYPE = "key_type";
+    field public static final String LAST_MODIFIED = "last_modified";
+    field public static final String MCC = "mcc";
+    field public static final String MNC = "mnc";
+    field public static final String MVNO_MATCH_DATA = "mvno_match_data";
+    field public static final String MVNO_TYPE = "mvno_type";
+    field public static final String PUBLIC_KEY = "public_key";
+  }
+
+  public static final class Telephony.CarrierId.All implements android.provider.BaseColumns {
+    field public static final String APN = "apn";
+    field @NonNull public static final android.net.Uri CONTENT_URI;
+    field public static final String GID1 = "gid1";
+    field public static final String GID2 = "gid2";
+    field public static final String ICCID_PREFIX = "iccid_prefix";
+    field public static final String IMSI_PREFIX_XPATTERN = "imsi_prefix_xpattern";
+    field public static final String MCCMNC = "mccmnc";
+    field public static final String PLMN = "plmn";
+    field public static final String PRIVILEGE_ACCESS_RULE = "privilege_access_rule";
+    field public static final String SPN = "spn";
+  }
+
   public static final class Telephony.Carriers implements android.provider.BaseColumns {
     field public static final String APN_SET_ID = "apn_set_id";
     field public static final int CARRIER_EDITED = 4; // 0x4
@@ -6109,15 +6484,25 @@
     field public static final String DELIVERY_TIME = "date";
     field public static final String ETWS_WARNING_TYPE = "etws_warning_type";
     field public static final String GEOGRAPHICAL_SCOPE = "geo_scope";
+    field public static final String GEOMETRIES = "geometries";
     field public static final String LAC = "lac";
     field public static final String LANGUAGE_CODE = "language";
+    field public static final String MAXIMUM_WAIT_TIME = "maximum_wait_time";
     field public static final String MESSAGE_BODY = "body";
+    field public static final String MESSAGE_BROADCASTED = "message_broadcasted";
     field public static final String MESSAGE_FORMAT = "format";
+    field @NonNull @RequiresPermission(android.Manifest.permission.READ_CELL_BROADCASTS) public static final android.net.Uri MESSAGE_HISTORY_URI;
     field public static final String MESSAGE_PRIORITY = "priority";
     field public static final String MESSAGE_READ = "read";
     field public static final String PLMN = "plmn";
+    field public static final String RECEIVED_TIME = "received_time";
     field public static final String SERIAL_NUMBER = "serial_number";
     field public static final String SERVICE_CATEGORY = "service_category";
+    field public static final String SLOT_INDEX = "slot_index";
+  }
+
+  public static final class Telephony.Sms.Intents {
+    field public static final String ACTION_SMS_EMERGENCY_CB_RECEIVED = "android.provider.action.SMS_EMERGENCY_CB_RECEIVED";
   }
 
   public final class TimeZoneRulesDataContract {
@@ -6392,6 +6777,28 @@
     method @NonNull @WorkerThread public abstract java.util.List<android.content.ContentValues> onRestoreApns(int);
   }
 
+  public abstract class CarrierMessagingServiceWrapper {
+    ctor public CarrierMessagingServiceWrapper();
+    method public boolean bindToCarrierMessagingService(@NonNull android.content.Context, @NonNull String);
+    method public void disposeConnection(@NonNull android.content.Context);
+    method public void downloadMms(@NonNull android.net.Uri, int, @NonNull android.net.Uri, @NonNull android.service.carrier.CarrierMessagingServiceWrapper.CarrierMessagingCallbackWrapper);
+    method public void filterSms(@NonNull android.service.carrier.MessagePdu, @NonNull String, int, int, @NonNull android.service.carrier.CarrierMessagingServiceWrapper.CarrierMessagingCallbackWrapper);
+    method public abstract void onServiceReady();
+    method public void sendDataSms(@NonNull byte[], int, @NonNull String, int, int, @NonNull android.service.carrier.CarrierMessagingServiceWrapper.CarrierMessagingCallbackWrapper);
+    method public void sendMms(@NonNull android.net.Uri, int, @NonNull android.net.Uri, @NonNull android.service.carrier.CarrierMessagingServiceWrapper.CarrierMessagingCallbackWrapper);
+    method public void sendMultipartTextSms(@NonNull java.util.List<java.lang.String>, int, @NonNull String, int, @NonNull android.service.carrier.CarrierMessagingServiceWrapper.CarrierMessagingCallbackWrapper);
+    method public void sendTextSms(@NonNull String, int, @NonNull String, int, @NonNull android.service.carrier.CarrierMessagingServiceWrapper.CarrierMessagingCallbackWrapper);
+  }
+
+  public abstract static class CarrierMessagingServiceWrapper.CarrierMessagingCallbackWrapper {
+    ctor public CarrierMessagingServiceWrapper.CarrierMessagingCallbackWrapper();
+    method public void onDownloadMmsComplete(int);
+    method public void onFilterComplete(int);
+    method public void onSendMmsComplete(int, @Nullable byte[]);
+    method public void onSendMultipartSmsComplete(int, @Nullable int[]);
+    method public void onSendSmsComplete(int, int);
+  }
+
 }
 
 package android.service.contentcapture {
@@ -6517,7 +6924,7 @@
     method public android.service.euicc.DownloadSubscriptionResult onDownloadSubscription(int, @NonNull android.telephony.euicc.DownloadableSubscription, boolean, boolean, @Nullable android.os.Bundle);
     method @Deprecated public int onDownloadSubscription(int, @NonNull android.telephony.euicc.DownloadableSubscription, boolean, boolean);
     method @Deprecated public abstract int onEraseSubscriptions(int);
-    method public int onEraseSubscriptionsWithOptions(int, @android.telephony.euicc.EuiccCardManager.ResetOption int);
+    method public int onEraseSubscriptions(int, @android.telephony.euicc.EuiccCardManager.ResetOption int);
     method public abstract android.service.euicc.GetDefaultDownloadableSubscriptionListResult onGetDefaultDownloadableSubscriptionList(int, boolean);
     method public abstract android.service.euicc.GetDownloadableSubscriptionMetadataResult onGetDownloadableSubscriptionMetadata(int, android.telephony.euicc.DownloadableSubscription, boolean);
     method public abstract String onGetEid(int);
@@ -6537,6 +6944,8 @@
     field public static final String ACTION_RESOLVE_DEACTIVATE_SIM = "android.service.euicc.action.RESOLVE_DEACTIVATE_SIM";
     field public static final String ACTION_RESOLVE_NO_PRIVILEGES = "android.service.euicc.action.RESOLVE_NO_PRIVILEGES";
     field public static final String ACTION_RESOLVE_RESOLVABLE_ERRORS = "android.service.euicc.action.RESOLVE_RESOLVABLE_ERRORS";
+    field public static final String ACTION_START_CARRIER_ACTIVATION = "android.service.euicc.action.START_CARRIER_ACTIVATION";
+    field public static final String ACTION_START_EUICC_ACTIVATION = "android.service.euicc.action.START_EUICC_ACTIVATION";
     field public static final String ACTION_TOGGLE_SUBSCRIPTION_PRIVILEGED = "android.service.euicc.action.TOGGLE_SUBSCRIPTION_PRIVILEGED";
     field public static final String CATEGORY_EUICC_UI = "android.service.euicc.category.EUICC_UI";
     field public static final String EUICC_SERVICE_INTERFACE = "android.service.euicc.EuiccService";
@@ -6932,14 +7341,18 @@
   public abstract class Conference extends android.telecom.Conferenceable {
     method @Deprecated public final android.telecom.AudioState getAudioState();
     method @Deprecated public final long getConnectTimeMillis();
+    method public final long getConnectionStartElapsedRealTime();
     method public android.telecom.Connection getPrimaryConnection();
+    method @NonNull public final String getTelecomCallId();
     method @Deprecated public void onAudioStateChanged(android.telecom.AudioState);
+    method public final void setAddress(@NonNull android.net.Uri, int);
+    method public final void setCallerDisplayName(@NonNull String, int);
+    method public void setConferenceState(boolean);
     method @Deprecated public final void setConnectTimeMillis(long);
   }
 
   public abstract class Connection extends android.telecom.Conferenceable {
     method @Deprecated public final android.telecom.AudioState getAudioState();
-    method public final int getCallRadioTech();
     method public final long getConnectElapsedTimeMillis();
     method public final long getConnectTimeMillis();
     method @Nullable public android.telecom.PhoneAccountHandle getPhoneAccountHandle();
@@ -6947,7 +7360,6 @@
     method @Deprecated public void onAudioStateChanged(android.telecom.AudioState);
     method public final void resetConnectionTime();
     method public void setCallDirection(int);
-    method public final void setCallRadioTech(int);
     method public final void setConnectTimeMillis(long);
     method public final void setConnectionStartElapsedRealTime(long);
     method public void setPhoneAccountHandle(@NonNull android.telecom.PhoneAccountHandle);
@@ -6961,6 +7373,14 @@
     field public static final int PROPERTY_REMOTELY_HOSTED = 2048; // 0x800
   }
 
+  public final class ConnectionRequest implements android.os.Parcelable {
+    method @Nullable public String getTelecomCallId();
+  }
+
+  public abstract class ConnectionService extends android.app.Service {
+    method public final void addExistingConnection(@NonNull android.telecom.PhoneAccountHandle, @NonNull android.telecom.Connection, @NonNull android.telecom.Conference);
+  }
+
   public abstract class InCallService extends android.app.Service {
     method @Deprecated public android.telecom.Phone getPhone();
     method @Deprecated public void onPhoneCreated(android.telecom.Phone);
@@ -7092,6 +7512,10 @@
     field public static final int CAPABILITY_MULTI_USER = 32; // 0x20
   }
 
+  public static class PhoneAccount.Builder {
+    method @NonNull public android.telecom.PhoneAccount.Builder setGroupId(@NonNull String);
+  }
+
   public class PhoneAccountSuggestionService extends android.app.Service {
     ctor public PhoneAccountSuggestionService();
     method public void onAccountSuggestionRequest(@NonNull String);
@@ -7159,9 +7583,11 @@
     method public java.util.List<android.telecom.PhoneAccountHandle> getAllPhoneAccountHandles();
     method public java.util.List<android.telecom.PhoneAccount> getAllPhoneAccounts();
     method public int getAllPhoneAccountsCount();
+    method @NonNull @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public java.util.List<android.telecom.PhoneAccountHandle> getCallCapablePhoneAccounts(boolean);
     method public int getCallState();
     method public android.telecom.PhoneAccountHandle getConnectionManager();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getCurrentTtyMode();
+    method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getDefaultDialerPackage(int);
     method @Deprecated public android.content.ComponentName getDefaultPhoneApp();
     method public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsForPackage();
     method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsSupportingScheme(String);
@@ -7222,13 +7648,6 @@
     field @NonNull public static final android.os.Parcelable.Creator<android.telephony.CallQuality> CREATOR;
   }
 
-  public class CallerInfo {
-    method @Nullable public android.net.Uri getContactDisplayPhotoUri();
-    method public long getContactId();
-    method @Nullable public String getName();
-    method @Nullable public String getPhoneNumber();
-  }
-
   public class CarrierConfigManager {
     method @NonNull public static android.os.PersistableBundle getDefaultConfig();
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void overrideConfig(int, @Nullable android.os.PersistableBundle);
@@ -7262,10 +7681,26 @@
     method @NonNull public android.telephony.CarrierRestrictionRules.Builder setMultiSimPolicy(int);
   }
 
+  public class CbGeoUtils {
+  }
+
+  public static interface CbGeoUtils.Geometry {
+    method public boolean contains(@NonNull android.telephony.CbGeoUtils.LatLng);
+  }
+
+  public static class CbGeoUtils.LatLng {
+    ctor public CbGeoUtils.LatLng(double, double);
+    method public double distance(@NonNull android.telephony.CbGeoUtils.LatLng);
+    method @NonNull public android.telephony.CbGeoUtils.LatLng subtract(@NonNull android.telephony.CbGeoUtils.LatLng);
+    field public final double lat;
+    field public final double lng;
+  }
+
   public abstract class CellBroadcastService extends android.app.Service {
     ctor public CellBroadcastService();
     method @CallSuper @NonNull public android.os.IBinder onBind(@Nullable android.content.Intent);
     method public abstract void onCdmaCellBroadcastSms(int, @NonNull byte[], int);
+    method public abstract void onCdmaScpMessage(int, @NonNull java.util.List<android.telephony.cdma.CdmaSmsCbProgramData>, @NonNull String, @NonNull java.util.function.Consumer<android.os.Bundle>);
     method public abstract void onGsmCellBroadcastSms(int, @NonNull byte[]);
     field public static final String CELL_BROADCAST_SERVICE_INTERFACE = "android.telephony.CellBroadcastService";
   }
@@ -7616,6 +8051,7 @@
   public final class DataSpecificRegistrationInfo implements android.os.Parcelable {
     method public int describeContents();
     method @NonNull public android.telephony.LteVopsSupportInfo getLteVopsSupportInfo();
+    method public boolean isUsingCarrierAggregation();
     method public void writeToParcel(android.os.Parcel, int);
     field @NonNull public static final android.os.Parcelable.Creator<android.telephony.DataSpecificRegistrationInfo> CREATOR;
   }
@@ -7683,6 +8119,7 @@
     field public static final int NUMBER_UNREACHABLE = 8; // 0x8
     field public static final int OTASP_PROVISIONING_IN_PROCESS = 76; // 0x4c
     field public static final int OUTGOING_CANCELED = 44; // 0x2c
+    field public static final int OUTGOING_EMERGENCY_CALL_PLACED = 80; // 0x50
     field public static final int OUTGOING_FAILURE = 43; // 0x2b
     field public static final int OUT_OF_NETWORK = 11; // 0xb
     field public static final int OUT_OF_SERVICE = 18; // 0x12
@@ -7697,6 +8134,14 @@
     field public static final int WIFI_LOST = 59; // 0x3b
   }
 
+  public final class ImsiEncryptionInfo implements android.os.Parcelable {
+    method public int describeContents();
+    method @Nullable public String getKeyIdentifier();
+    method @Nullable public java.security.PublicKey getPublicKey();
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
+    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ImsiEncryptionInfo> CREATOR;
+  }
+
   public final class LteVopsSupportInfo implements android.os.Parcelable {
     ctor public LteVopsSupportInfo(int, int);
     method public int describeContents();
@@ -7728,6 +8173,7 @@
     method @Nullable public android.telephony.CellIdentity getCellIdentity();
     method @Nullable public android.telephony.DataSpecificRegistrationInfo getDataSpecificInfo();
     method public int getDomain();
+    method public int getNrState();
     method public int getRegistrationState();
     method public int getRejectCause();
     method public int getRoamingType();
@@ -7810,6 +8256,12 @@
     field @NonNull public static final android.os.Parcelable.Creator<android.telephony.PhoneNumberRange> CREATOR;
   }
 
+  public class PhoneNumberUtils {
+    method @NonNull public static String getUsernameFromUriNumber(@NonNull String);
+    method public static boolean isUriNumber(@Nullable String);
+    method public static boolean isVoiceMailNumber(@NonNull android.content.Context, int, @Nullable String);
+  }
+
   public class PhoneStateListener {
     method public void onCallAttributesChanged(@NonNull android.telephony.CallAttributes);
     method @RequiresPermission("android.permission.READ_PRECISE_PHONE_STATE") public void onCallDisconnectCauseChanged(int, int);
@@ -7964,6 +8416,9 @@
     method @NonNull public java.util.List<android.telephony.NetworkRegistrationInfo> getNetworkRegistrationInfoList();
     method @NonNull public java.util.List<android.telephony.NetworkRegistrationInfo> getNetworkRegistrationInfoListForDomain(int);
     method @NonNull public java.util.List<android.telephony.NetworkRegistrationInfo> getNetworkRegistrationInfoListForTransportType(int);
+    method public int getNrFrequencyRange();
+    method @Nullable public String getOperatorAlphaLongRaw();
+    method @Nullable public String getOperatorAlphaShortRaw();
     field public static final int ROAMING_TYPE_DOMESTIC = 2; // 0x2
     field public static final int ROAMING_TYPE_INTERNATIONAL = 3; // 0x3
     field public static final int ROAMING_TYPE_NOT_ROAMING = 0; // 0x0
@@ -8042,6 +8497,7 @@
   }
 
   public final class SmsCbLocation implements android.os.Parcelable {
+    ctor public SmsCbLocation(@NonNull String, int, int);
     method public int describeContents();
     method public int getCid();
     method public int getLac();
@@ -8053,7 +8509,7 @@
   }
 
   public final class SmsCbMessage implements android.os.Parcelable {
-    ctor public SmsCbMessage(int, int, int, @NonNull android.telephony.SmsCbLocation, int, @Nullable String, @Nullable String, int, @Nullable android.telephony.SmsCbEtwsInfo, @Nullable android.telephony.SmsCbCmasInfo, int);
+    ctor public SmsCbMessage(int, int, int, @NonNull android.telephony.SmsCbLocation, int, @Nullable String, @Nullable String, int, @Nullable android.telephony.SmsCbEtwsInfo, @Nullable android.telephony.SmsCbCmasInfo, int, @Nullable java.util.List<android.telephony.CbGeoUtils.Geometry>, long, int);
     method @NonNull public static android.telephony.SmsCbMessage createFromCursor(@NonNull android.database.Cursor);
     method public int describeContents();
     method @Nullable public android.telephony.SmsCbCmasInfo getCmasWarningInfo();
@@ -8062,6 +8518,7 @@
     method public int getGeographicalScope();
     method @Nullable public String getLanguageCode();
     method @NonNull public android.telephony.SmsCbLocation getLocation();
+    method public int getMaximumWaitingDuration();
     method @Nullable public String getMessageBody();
     method public int getMessageFormat();
     method public int getMessagePriority();
@@ -8079,6 +8536,7 @@
     field public static final int GEOGRAPHICAL_SCOPE_CELL_WIDE_IMMEDIATE = 0; // 0x0
     field public static final int GEOGRAPHICAL_SCOPE_LOCATION_AREA_WIDE = 2; // 0x2
     field public static final int GEOGRAPHICAL_SCOPE_PLMN_WIDE = 1; // 0x1
+    field public static final int MAXIMUM_WAIT_TIME_NOT_SET = 255; // 0xff
     field public static final int MESSAGE_FORMAT_3GPP = 1; // 0x1
     field public static final int MESSAGE_FORMAT_3GPP2 = 2; // 0x2
     field public static final int MESSAGE_PRIORITY_EMERGENCY = 3; // 0x3
@@ -8090,25 +8548,8 @@
   public final class SmsManager {
     method public boolean disableCellBroadcastRange(int, int, int);
     method public boolean enableCellBroadcastRange(int, int, int);
+    method public void sendMultipartTextMessage(@NonNull String, @NonNull String, @NonNull java.util.List<java.lang.String>, @Nullable java.util.List<android.app.PendingIntent>, @Nullable java.util.List<android.app.PendingIntent>, @NonNull String);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void sendMultipartTextMessageWithoutPersisting(String, String, java.util.List<java.lang.String>, java.util.List<android.app.PendingIntent>, java.util.List<android.app.PendingIntent>);
-    field public static final int RESULT_CANCELLED = 23; // 0x17
-    field public static final int RESULT_ENCODING_ERROR = 18; // 0x12
-    field public static final int RESULT_ERROR_FDN_CHECK_FAILURE = 6; // 0x6
-    field public static final int RESULT_ERROR_NONE = 0; // 0x0
-    field public static final int RESULT_INTERNAL_ERROR = 21; // 0x15
-    field public static final int RESULT_INVALID_ARGUMENTS = 11; // 0xb
-    field public static final int RESULT_INVALID_SMSC_ADDRESS = 19; // 0x13
-    field public static final int RESULT_INVALID_SMS_FORMAT = 14; // 0xe
-    field public static final int RESULT_INVALID_STATE = 12; // 0xc
-    field public static final int RESULT_MODEM_ERROR = 16; // 0x10
-    field public static final int RESULT_NETWORK_ERROR = 17; // 0x11
-    field public static final int RESULT_NETWORK_REJECT = 10; // 0xa
-    field public static final int RESULT_NO_MEMORY = 13; // 0xd
-    field public static final int RESULT_NO_RESOURCES = 22; // 0x16
-    field public static final int RESULT_OPERATION_NOT_ALLOWED = 20; // 0x14
-    field public static final int RESULT_RADIO_NOT_AVAILABLE = 9; // 0x9
-    field public static final int RESULT_REQUEST_NOT_SUPPORTED = 24; // 0x18
-    field public static final int RESULT_SYSTEM_ERROR = 15; // 0xf
   }
 
   public class SubscriptionInfo implements android.os.Parcelable {
@@ -8125,6 +8566,7 @@
     method public void requestEmbeddedSubscriptionInfoListRefresh(int);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDefaultDataSubId(int);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDefaultSmsSubId(int);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDefaultVoiceSubscriptionId(int);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setPreferredDataSubscriptionId(int, boolean, @Nullable java.util.concurrent.Executor, @Nullable java.util.function.Consumer<java.lang.Integer>);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setSubscriptionEnabled(int, boolean);
     field @NonNull public static final android.net.Uri ADVANCED_CALLING_ENABLED_CONTENT_URI;
@@ -8178,9 +8620,9 @@
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean enableDataConnectivity();
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean enableModemForSlot(int, boolean);
     method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void enableVideoCalling(boolean);
-    method @RequiresPermission(android.Manifest.permission.CONNECTIVITY_INTERNAL) public void factoryReset(int);
     method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getAidForAppType(int);
     method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public java.util.List<android.service.carrier.CarrierIdentifier> getAllowedCarriers(int);
+    method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public android.telephony.ImsiEncryptionInfo getCarrierInfoForImsiEncryption(int);
     method public java.util.List<java.lang.String> getCarrierPackageNamesForIntent(android.content.Intent);
     method public java.util.List<java.lang.String> getCarrierPackageNamesForIntentAndPhone(android.content.Intent, int);
     method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public android.telephony.CarrierRestrictionRules getCarrierRestrictionRules();
@@ -8194,10 +8636,14 @@
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getDataActivationState();
     method @Deprecated public boolean getDataEnabled();
     method @Deprecated public boolean getDataEnabled(int);
+    method @Nullable public static android.content.ComponentName getDefaultRespondViaMessageApplication(@NonNull android.content.Context, boolean);
+    method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getDeviceSoftwareVersion(int);
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean getEmergencyCallbackMode();
+    method public int getEmergencyNumberDbVersion();
     method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getIsimDomain();
     method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getIsimIst();
     method @NonNull @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public java.util.Map<java.lang.Integer,java.lang.Integer> getLogicalToPhysicalSlotMapping();
+    method public int getMaxNumberOfSimultaneouslyActiveSims();
     method public static long getMaxNumberVerificationTimeoutMillis();
     method @NonNull public String getNetworkCountryIso(int);
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public long getPreferredNetworkTypeBitmask();
@@ -8223,17 +8669,22 @@
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isDataEnabledForApn(int);
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isEmergencyAssistanceEnabled();
     method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isIdle();
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isInEmergencySmsMode();
     method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isOffhook();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isPotentialEmergencyNumber(@NonNull String);
     method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isRadioOn();
     method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isRinging();
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isTetheringApnRequired();
     method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isVideoCallingEnabled();
     method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public boolean isVisualVoicemailEnabled(android.telecom.PhoneAccountHandle);
     method public boolean needsOtaServiceProvisioning();
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void notifyOtaEmergencyNumberDbInstalled();
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean rebootRadio();
     method @RequiresPermission(allOf={android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.MODIFY_PHONE_STATE}) public void requestCellInfoUpdate(@NonNull android.os.WorkSource, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.TelephonyManager.CellInfoCallback);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void requestNumberVerification(@NonNull android.telephony.PhoneNumberRange, long, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.NumberVerificationCallback);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void resetCarrierKeysForImsiEncryption();
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean resetRadioConfig();
+    method @RequiresPermission(android.Manifest.permission.CONNECTIVITY_INTERNAL) public void resetSettings();
     method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setAllowedCarriers(int, java.util.List<android.service.carrier.CarrierIdentifier>);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setCarrierDataEnabled(boolean);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setCarrierRestrictionRules(@NonNull android.telephony.CarrierRestrictionRules);
@@ -8255,8 +8706,8 @@
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean switchSlots(int[]);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void toggleRadioOnOff();
     method public void updateServiceLocation();
+    method @RequiresPermission(android.Manifest.permission.READ_ACTIVE_EMERGENCY_SESSION) public void updateTestOtaEmergencyNumberDbFilePath(@NonNull String);
     field @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public static final String ACTION_ANOMALY_REPORTED = "android.telephony.action.ANOMALY_REPORTED";
-    field @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public static final String ACTION_OTA_EMERGENCY_NUMBER_DB_INSTALLED = "android.telephony.action.OTA_EMERGENCY_NUMBER_DB_INSTALLED";
     field public static final String ACTION_SIM_APPLICATION_STATE_CHANGED = "android.telephony.action.SIM_APPLICATION_STATE_CHANGED";
     field public static final String ACTION_SIM_CARD_STATE_CHANGED = "android.telephony.action.SIM_CARD_STATE_CHANGED";
     field public static final String ACTION_SIM_SLOT_STATUS_CHANGED = "android.telephony.action.SIM_SLOT_STATUS_CHANGED";
@@ -8269,6 +8720,9 @@
     field public static final String EXTRA_SIM_STATE = "android.telephony.extra.SIM_STATE";
     field public static final String EXTRA_VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL = "android.telephony.extra.VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL";
     field public static final String EXTRA_VOICEMAIL_SCRAMBLED_PIN_STRING = "android.telephony.extra.VOICEMAIL_SCRAMBLED_PIN_STRING";
+    field public static final int INVALID_EMERGENCY_NUMBER_DB_VERSION = -1; // 0xffffffff
+    field public static final int KEY_TYPE_EPDG = 1; // 0x1
+    field public static final int KEY_TYPE_WLAN = 2; // 0x2
     field public static final long NETWORK_TYPE_BITMASK_1xRTT = 64L; // 0x40L
     field public static final long NETWORK_TYPE_BITMASK_CDMA = 8L; // 0x8L
     field public static final long NETWORK_TYPE_BITMASK_EDGE = 2L; // 0x2L
@@ -8309,6 +8763,15 @@
     field public static final int SRVCC_STATE_HANDOVER_STARTED = 0; // 0x0
   }
 
+  public class TelephonyRegistryManager {
+    method public void addOnOpportunisticSubscriptionsChangedListener(@NonNull android.telephony.SubscriptionManager.OnOpportunisticSubscriptionsChangedListener, @NonNull java.util.concurrent.Executor);
+    method public void addOnSubscriptionsChangedListener(@NonNull android.telephony.SubscriptionManager.OnSubscriptionsChangedListener, @NonNull java.util.concurrent.Executor);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void notifyCallStateChangedForAllSubscriptions(int, @Nullable String);
+    method public void notifyCarrierNetworkChange(boolean);
+    method public void removeOnOpportunisticSubscriptionsChangedListener(@NonNull android.telephony.SubscriptionManager.OnOpportunisticSubscriptionsChangedListener);
+    method public void removeOnSubscriptionsChangedListener(@NonNull android.telephony.SubscriptionManager.OnSubscriptionsChangedListener);
+  }
+
   public final class UiccAccessRule implements android.os.Parcelable {
     ctor public UiccAccessRule(byte[], @Nullable String, long);
     method public int describeContents();
@@ -8565,7 +9028,7 @@
   public class EuiccManager {
     method @RequiresPermission(android.Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void continueOperation(android.content.Intent, android.os.Bundle);
     method @Deprecated @RequiresPermission(android.Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void eraseSubscriptions(@NonNull android.app.PendingIntent);
-    method @RequiresPermission(android.Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void eraseSubscriptionsWithOptions(@android.telephony.euicc.EuiccCardManager.ResetOption int, @NonNull android.app.PendingIntent);
+    method @RequiresPermission(android.Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void eraseSubscriptions(@android.telephony.euicc.EuiccCardManager.ResetOption int, @NonNull android.app.PendingIntent);
     method @RequiresPermission(android.Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void getDefaultDownloadableSubscriptionList(android.app.PendingIntent);
     method @RequiresPermission(android.Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void getDownloadableSubscriptionMetadata(android.telephony.euicc.DownloadableSubscription, android.app.PendingIntent);
     method @RequiresPermission(android.Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public int getOtaStatus();
@@ -8588,6 +9051,7 @@
     field public static final String EXTRA_ENABLE_SUBSCRIPTION = "android.telephony.euicc.extra.ENABLE_SUBSCRIPTION";
     field public static final String EXTRA_FORCE_PROVISION = "android.telephony.euicc.extra.FORCE_PROVISION";
     field public static final String EXTRA_FROM_SUBSCRIPTION_ID = "android.telephony.euicc.extra.FROM_SUBSCRIPTION_ID";
+    field public static final String EXTRA_PHYSICAL_SLOT_ID = "android.telephony.euicc.extra.PHYSICAL_SLOT_ID";
     field public static final String EXTRA_SUBSCRIPTION_ID = "android.telephony.euicc.extra.SUBSCRIPTION_ID";
     field public static final String EXTRA_SUBSCRIPTION_NICKNAME = "android.telephony.euicc.extra.SUBSCRIPTION_NICKNAME";
   }
@@ -8674,6 +9138,7 @@
     method public android.os.Bundle getCallExtras();
     method public int getCallType();
     method public static int getCallTypeFromVideoState(int);
+    method public int getCallerNumberVerificationStatus();
     method public int getEmergencyCallRouting();
     method public int getEmergencyServiceCategories();
     method @NonNull public java.util.List<java.lang.String> getEmergencyUrns();
@@ -8691,6 +9156,7 @@
     method public void setCallExtraBoolean(String, boolean);
     method public void setCallExtraInt(String, int);
     method public void setCallRestrictCause(int);
+    method public void setCallerNumberVerificationStatus(int);
     method public void setEmergencyCallRouting(int);
     method public void setEmergencyCallTesting(boolean);
     method public void setEmergencyServiceCategories(int);
@@ -8741,6 +9207,9 @@
     field public static final int SERVICE_TYPE_EMERGENCY = 2; // 0x2
     field public static final int SERVICE_TYPE_NONE = 0; // 0x0
     field public static final int SERVICE_TYPE_NORMAL = 1; // 0x1
+    field public static final int VERIFICATION_STATUS_FAILED = 2; // 0x2
+    field public static final int VERIFICATION_STATUS_NOT_VERIFIED = 0; // 0x0
+    field public static final int VERIFICATION_STATUS_PASSED = 1; // 0x1
   }
 
   public class ImsCallSessionListener {
@@ -8835,21 +9304,21 @@
 
   public class ImsMmTelManager implements android.telephony.ims.RegistrationManager {
     method @NonNull public static android.telephony.ims.ImsMmTelManager createForSubscriptionId(int);
-    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getFeatureState(@NonNull java.util.function.Consumer<java.lang.Integer>, @NonNull java.util.concurrent.Executor) throws android.telephony.ims.ImsException;
-    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getRegistrationState(@NonNull java.util.function.Consumer<java.lang.Integer>, @NonNull java.util.concurrent.Executor);
-    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getRegistrationTransportType(@NonNull java.util.function.Consumer<java.lang.Integer>, @NonNull java.util.concurrent.Executor);
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getFeatureState(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>) throws android.telephony.ims.ImsException;
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getRegistrationState(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getRegistrationTransportType(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getVoWiFiModeSetting();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getVoWiFiRoamingModeSetting();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isAdvancedCallingSettingEnabled();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isAvailable(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int);
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isCapable(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int);
-    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void isSupported(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int, @NonNull java.util.function.Consumer<java.lang.Boolean>, @NonNull java.util.concurrent.Executor) throws android.telephony.ims.ImsException;
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void isSupported(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>) throws android.telephony.ims.ImsException;
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isTtyOverVolteEnabled();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isVoWiFiRoamingSettingEnabled();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isVoWiFiSettingEnabled();
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isVtSettingEnabled();
     method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerImsRegistrationCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ImsMmTelManager.RegistrationCallback) throws android.telephony.ims.ImsException;
-    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerImsRegistrationCallback(@NonNull android.telephony.ims.RegistrationManager.RegistrationCallback, @NonNull java.util.concurrent.Executor) throws android.telephony.ims.ImsException;
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerImsRegistrationCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.RegistrationManager.RegistrationCallback) throws android.telephony.ims.ImsException;
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerMmTelCapabilityCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ImsMmTelManager.CapabilityCallback) throws android.telephony.ims.ImsException;
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setAdvancedCallingSettingEnabled(boolean);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setRttCapabilitySetting(boolean);
@@ -9309,9 +9778,9 @@
   }
 
   public interface RegistrationManager {
-    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getRegistrationState(@NonNull java.util.function.Consumer<java.lang.Integer>, @NonNull java.util.concurrent.Executor);
-    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getRegistrationTransportType(@NonNull java.util.function.Consumer<java.lang.Integer>, @NonNull java.util.concurrent.Executor);
-    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerImsRegistrationCallback(@NonNull android.telephony.ims.RegistrationManager.RegistrationCallback, @NonNull java.util.concurrent.Executor) throws android.telephony.ims.ImsException;
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getRegistrationState(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getRegistrationTransportType(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
+    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerImsRegistrationCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.RegistrationManager.RegistrationCallback) throws android.telephony.ims.ImsException;
     method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void unregisterImsRegistrationCallback(@NonNull android.telephony.ims.RegistrationManager.RegistrationCallback);
     field public static final int REGISTRATION_STATE_NOT_REGISTERED = 0; // 0x0
     field public static final int REGISTRATION_STATE_REGISTERED = 2; // 0x2
diff --git a/api/test-current.txt b/api/test-current.txt
index a82ec4e..cbc3b6a 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -376,6 +376,7 @@
   }
 
   public class UiModeManager {
+    method @RequiresPermission("android.permission.ENTER_CAR_MODE_PRIORITIZED") public void enableCarMode(@IntRange(from=0) int, int);
     method public boolean isNightModeLocked();
     method public boolean isUiModeLocked();
   }
@@ -639,7 +640,8 @@
   }
 
   public abstract class Context {
-    method public android.content.Context createPackageContextAsUser(String, int, android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException;
+    method @NonNull public android.content.Context createContextAsUser(@NonNull android.os.UserHandle, int);
+    method @NonNull public android.content.Context createPackageContextAsUser(@NonNull String, int, @NonNull android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException;
     method public abstract android.view.Display getDisplay();
     method public abstract int getDisplayId();
     method public android.os.UserHandle getUser();
@@ -692,6 +694,7 @@
     method public void setEnableRollback(boolean);
     method @RequiresPermission("android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS") public void setGrantedRuntimePermissions(String[]);
     method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setInstallAsApex();
+    method public void setRequestDowngrade(boolean);
     method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public void setStaged();
   }
 
@@ -707,6 +710,7 @@
     method @RequiresPermission(anyOf={"android.permission.GRANT_RUNTIME_PERMISSIONS", "android.permission.REVOKE_RUNTIME_PERMISSIONS", "android.permission.GET_RUNTIME_PERMISSIONS"}) public abstract int getPermissionFlags(@NonNull String, @NonNull String, @NonNull android.os.UserHandle);
     method @NonNull public abstract String getServicesSystemSharedLibraryPackageName();
     method @NonNull public abstract String getSharedSystemSharedLibraryPackageName();
+    method @Nullable public String[] getTelephonyPackageNames();
     method @Nullable public String getWellbeingPackageName();
     method @RequiresPermission("android.permission.GRANT_RUNTIME_PERMISSIONS") public abstract void grantRuntimePermission(@NonNull String, @NonNull String, @NonNull android.os.UserHandle);
     method @RequiresPermission("android.permission.REVOKE_RUNTIME_PERMISSIONS") public abstract void revokeRuntimePermission(@NonNull String, @NonNull String, @NonNull android.os.UserHandle);
@@ -739,6 +743,7 @@
     field public static final int PROTECTION_FLAG_INCIDENT_REPORT_APPROVER = 1048576; // 0x100000
     field public static final int PROTECTION_FLAG_OEM = 16384; // 0x4000
     field public static final int PROTECTION_FLAG_SYSTEM_TEXT_CLASSIFIER = 65536; // 0x10000
+    field public static final int PROTECTION_FLAG_TELEPHONY = 4194304; // 0x400000
     field public static final int PROTECTION_FLAG_VENDOR_PRIVILEGED = 32768; // 0x8000
     field public static final int PROTECTION_FLAG_WELLBEING = 131072; // 0x20000
     field @Nullable public final String backgroundPermission;
@@ -791,6 +796,7 @@
   }
 
   public final class RollbackManager {
+    method @RequiresPermission(android.Manifest.permission.TEST_MANAGE_ROLLBACKS) public void blockRollbackManager(long);
     method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_ROLLBACKS, android.Manifest.permission.TEST_MANAGE_ROLLBACKS}) public void commitRollback(int, @NonNull java.util.List<android.content.pm.VersionedPackage>, @NonNull android.content.IntentSender);
     method @RequiresPermission(android.Manifest.permission.TEST_MANAGE_ROLLBACKS) public void expireRollbackForPackage(@NonNull String);
     method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_ROLLBACKS, android.Manifest.permission.TEST_MANAGE_ROLLBACKS}) public java.util.List<android.content.rollback.RollbackInfo> getAvailableRollbacks();
@@ -1378,7 +1384,6 @@
     ctor public LinkProperties(@Nullable android.net.LinkProperties);
     method public boolean addDnsServer(@NonNull java.net.InetAddress);
     method public boolean addLinkAddress(@NonNull android.net.LinkAddress);
-    method @Nullable public android.net.IpPrefix getNat64Prefix();
     method @NonNull public java.util.List<java.net.InetAddress> getPcscfServers();
     method @Nullable public String getTcpBufferSizes();
     method @NonNull public java.util.List<java.net.InetAddress> getValidatedPrivateDnsServers();
@@ -1392,7 +1397,6 @@
     method public boolean removeDnsServer(@NonNull java.net.InetAddress);
     method public boolean removeLinkAddress(@NonNull android.net.LinkAddress);
     method public boolean removeRoute(@NonNull android.net.RouteInfo);
-    method public void setNat64Prefix(@Nullable android.net.IpPrefix);
     method public void setPcscfServers(@NonNull java.util.Collection<java.net.InetAddress>);
     method public void setPrivateDnsServerName(@Nullable String);
     method public void setTcpBufferSizes(@Nullable String);
@@ -1720,6 +1724,17 @@
     method public static boolean contains(java.io.File, java.io.File);
   }
 
+  public class HidlMemory implements java.io.Closeable {
+    ctor public HidlMemory(@NonNull String, @IntRange(from=0) long, @Nullable android.os.NativeHandle);
+    method public void close() throws java.io.IOException;
+    method @NonNull public android.os.HidlMemory dup() throws java.io.IOException;
+    method protected void finalize();
+    method @Nullable public android.os.NativeHandle getHandle();
+    method @NonNull public String getName();
+    method public long getSize();
+    method @NonNull public android.os.NativeHandle releaseHandle();
+  }
+
   public abstract class HwBinder implements android.os.IHwBinder {
     ctor public HwBinder();
     method public static final void configureRpcThreadpool(long, boolean);
@@ -1743,6 +1758,7 @@
     method public final void copyToInt8Array(long, byte[], int);
     method public final boolean getBool(long);
     method public final double getDouble(long);
+    method public final long getFieldHandle(long);
     method public final float getFloat(long);
     method public final short getInt16(long);
     method public final int getInt32(long);
@@ -1757,6 +1773,7 @@
     method public final void putDoubleArray(long, double[]);
     method public final void putFloat(long, float);
     method public final void putFloatArray(long, float[]);
+    method public final void putHidlMemory(long, @NonNull android.os.HidlMemory);
     method public final void putInt16(long, short);
     method public final void putInt16Array(long, short[]);
     method public final void putInt32(long, int);
@@ -1785,9 +1802,11 @@
     method public final double readDouble();
     method public final java.util.ArrayList<java.lang.Double> readDoubleVector();
     method public final android.os.HwBlob readEmbeddedBuffer(long, long, long, boolean);
+    method @NonNull @Nullable public final android.os.HidlMemory readEmbeddedHidlMemory(long, long, long);
     method @Nullable public final android.os.NativeHandle readEmbeddedNativeHandle(long, long);
     method public final float readFloat();
     method public final java.util.ArrayList<java.lang.Float> readFloatVector();
+    method @NonNull public final android.os.HidlMemory readHidlMemory();
     method public final short readInt16();
     method public final java.util.ArrayList<java.lang.Short> readInt16Vector();
     method public final int readInt32();
@@ -1812,6 +1831,7 @@
     method public final void writeDoubleVector(java.util.ArrayList<java.lang.Double>);
     method public final void writeFloat(float);
     method public final void writeFloatVector(java.util.ArrayList<java.lang.Float>);
+    method public final void writeHidlMemory(@NonNull android.os.HidlMemory);
     method public final void writeInt16(short);
     method public final void writeInt16Vector(java.util.ArrayList<java.lang.Short>);
     method public final void writeInt32(int);
@@ -2377,6 +2397,36 @@
     field public static final String VOICE_INTERACTION_SERVICE = "voice_interaction_service";
   }
 
+  public static final class Telephony.CellBroadcasts implements android.provider.BaseColumns {
+    field public static final String CID = "cid";
+    field public static final String CMAS_CATEGORY = "cmas_category";
+    field public static final String CMAS_CERTAINTY = "cmas_certainty";
+    field public static final String CMAS_MESSAGE_CLASS = "cmas_message_class";
+    field public static final String CMAS_RESPONSE_TYPE = "cmas_response_type";
+    field public static final String CMAS_SEVERITY = "cmas_severity";
+    field public static final String CMAS_URGENCY = "cmas_urgency";
+    field @NonNull public static final android.net.Uri CONTENT_URI;
+    field public static final String DEFAULT_SORT_ORDER = "date DESC";
+    field public static final String DELIVERY_TIME = "date";
+    field public static final String ETWS_WARNING_TYPE = "etws_warning_type";
+    field public static final String GEOGRAPHICAL_SCOPE = "geo_scope";
+    field public static final String GEOMETRIES = "geometries";
+    field public static final String LAC = "lac";
+    field public static final String LANGUAGE_CODE = "language";
+    field public static final String MAXIMUM_WAIT_TIME = "maximum_wait_time";
+    field public static final String MESSAGE_BODY = "body";
+    field public static final String MESSAGE_BROADCASTED = "message_broadcasted";
+    field public static final String MESSAGE_FORMAT = "format";
+    field @NonNull @RequiresPermission(android.Manifest.permission.READ_CELL_BROADCASTS) public static final android.net.Uri MESSAGE_HISTORY_URI;
+    field public static final String MESSAGE_PRIORITY = "priority";
+    field public static final String MESSAGE_READ = "read";
+    field public static final String PLMN = "plmn";
+    field public static final String RECEIVED_TIME = "received_time";
+    field public static final String SERIAL_NUMBER = "serial_number";
+    field public static final String SERVICE_CATEGORY = "service_category";
+    field public static final String SLOT_INDEX = "slot_index";
+  }
+
   public static final class Telephony.Sms.Intents {
     field public static final String SMS_CARRIER_PROVISION_ACTION = "android.provider.Telephony.SMS_CARRIER_PROVISION";
   }
@@ -2754,7 +2804,53 @@
   }
 
   public abstract class Conference extends android.telecom.Conferenceable {
+    method public final long getConnectionStartElapsedRealTime();
     method public android.telecom.Connection getPrimaryConnection();
+    method @NonNull public final String getTelecomCallId();
+    method public final void setAddress(@NonNull android.net.Uri, int);
+    method public final void setCallerDisplayName(@NonNull String, int);
+    method public void setConferenceState(boolean);
+  }
+
+  public abstract class Connection extends android.telecom.Conferenceable {
+    method public final long getConnectElapsedTimeMillis();
+    method public final long getConnectTimeMillis();
+    method @Nullable public android.telecom.PhoneAccountHandle getPhoneAccountHandle();
+    method @Nullable public final String getTelecomCallId();
+    method public final void resetConnectionTime();
+    method public void setCallDirection(int);
+    method public final void setConnectTimeMillis(long);
+    method public final void setConnectionStartElapsedRealTime(long);
+    method public void setPhoneAccountHandle(@NonNull android.telecom.PhoneAccountHandle);
+    method public void setTelecomCallId(@NonNull String);
+    field public static final int CAPABILITY_CONFERENCE_HAS_NO_CHILDREN = 2097152; // 0x200000
+    field public static final int CAPABILITY_SPEED_UP_MT_AUDIO = 262144; // 0x40000
+    field public static final String EXTRA_DISABLE_ADD_CALL = "android.telecom.extra.DISABLE_ADD_CALL";
+    field public static final int PROPERTY_EMERGENCY_CALLBACK_MODE = 1; // 0x1
+    field public static final int PROPERTY_GENERIC_CONFERENCE = 2; // 0x2
+    field public static final int PROPERTY_IS_DOWNGRADED_CONFERENCE = 64; // 0x40
+    field public static final int PROPERTY_REMOTELY_HOSTED = 2048; // 0x800
+  }
+
+  public final class ConnectionRequest implements android.os.Parcelable {
+    method @Nullable public String getTelecomCallId();
+  }
+
+  public static final class ConnectionRequest.Builder {
+    ctor public ConnectionRequest.Builder();
+    method @NonNull public android.telecom.ConnectionRequest build();
+    method @NonNull public android.telecom.ConnectionRequest.Builder setAccountHandle(@NonNull android.telecom.PhoneAccountHandle);
+    method @NonNull public android.telecom.ConnectionRequest.Builder setAddress(@NonNull android.net.Uri);
+    method @NonNull public android.telecom.ConnectionRequest.Builder setExtras(@NonNull android.os.Bundle);
+    method @NonNull public android.telecom.ConnectionRequest.Builder setRttPipeFromInCall(@NonNull android.os.ParcelFileDescriptor);
+    method @NonNull public android.telecom.ConnectionRequest.Builder setRttPipeToInCall(@NonNull android.os.ParcelFileDescriptor);
+    method @NonNull public android.telecom.ConnectionRequest.Builder setShouldShowIncomingCallUi(boolean);
+    method @NonNull public android.telecom.ConnectionRequest.Builder setTelecomCallId(@NonNull String);
+    method @NonNull public android.telecom.ConnectionRequest.Builder setVideoState(int);
+  }
+
+  public static class PhoneAccount.Builder {
+    method @NonNull public android.telecom.PhoneAccount.Builder setGroupId(@NonNull String);
   }
 
   public class PhoneAccountSuggestionService extends android.app.Service {
@@ -2766,7 +2862,9 @@
   }
 
   public class TelecomManager {
+    method @NonNull @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public java.util.List<android.telecom.PhoneAccountHandle> getCallCapablePhoneAccounts(boolean);
     method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public int getCurrentTtyMode();
+    method @Nullable @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getDefaultDialerPackage(int);
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean isInEmergencyCall();
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUserSelectedOutgoingPhoneAccount(@Nullable android.telecom.PhoneAccountHandle);
     field public static final int TTY_MODE_FULL = 1; // 0x1
@@ -2780,10 +2878,35 @@
 package android.telephony {
 
   public final class AccessNetworkConstants {
+    field public static final int TRANSPORT_TYPE_INVALID = -1; // 0xffffffff
     field public static final int TRANSPORT_TYPE_WLAN = 2; // 0x2
     field public static final int TRANSPORT_TYPE_WWAN = 1; // 0x1
   }
 
+  public final class CallQuality implements android.os.Parcelable {
+    ctor public CallQuality(int, int, int, int, int, int, int, int, int, int, int);
+    method public int describeContents();
+    method public int getAverageRelativeJitter();
+    method public int getAverageRoundTripTime();
+    method public int getCallDuration();
+    method public int getCodecType();
+    method public int getDownlinkCallQualityLevel();
+    method public int getMaxRelativeJitter();
+    method public int getNumRtpPacketsNotReceived();
+    method public int getNumRtpPacketsReceived();
+    method public int getNumRtpPacketsTransmitted();
+    method public int getNumRtpPacketsTransmittedLost();
+    method public int getUplinkCallQualityLevel();
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final int CALL_QUALITY_BAD = 4; // 0x4
+    field public static final int CALL_QUALITY_EXCELLENT = 0; // 0x0
+    field public static final int CALL_QUALITY_FAIR = 2; // 0x2
+    field public static final int CALL_QUALITY_GOOD = 1; // 0x1
+    field public static final int CALL_QUALITY_NOT_AVAILABLE = 5; // 0x5
+    field public static final int CALL_QUALITY_POOR = 3; // 0x3
+    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.CallQuality> CREATOR;
+  }
+
   public class CarrierConfigManager {
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void overrideConfig(int, @Nullable android.os.PersistableBundle);
   }
@@ -2865,6 +2988,9 @@
 
   public class PhoneNumberUtils {
     method public static int getMinMatchForTest();
+    method @NonNull public static String getUsernameFromUriNumber(@NonNull String);
+    method public static boolean isUriNumber(@Nullable String);
+    method public static boolean isVoiceMailNumber(@NonNull android.content.Context, int, @Nullable String);
     method public static void setMinMatchForTest(int);
   }
 
@@ -2888,6 +3014,7 @@
 
   public final class SmsManager {
     method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public int checkSmsShortCodeDestination(String, String);
+    method public void sendMultipartTextMessage(@NonNull String, @NonNull String, @NonNull java.util.List<java.lang.String>, @Nullable java.util.List<android.app.PendingIntent>, @Nullable java.util.List<android.app.PendingIntent>, @NonNull String);
     field public static final int SMS_CATEGORY_FREE_SHORT_CODE = 1; // 0x1
     field public static final int SMS_CATEGORY_NOT_SHORT_CODE = 0; // 0x0
     field public static final int SMS_CATEGORY_POSSIBLE_PREMIUM_SHORT_CODE = 3; // 0x3
@@ -2895,19 +3022,34 @@
     field public static final int SMS_CATEGORY_STANDARD_SHORT_CODE = 2; // 0x2
   }
 
+  public class SubscriptionManager {
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDefaultVoiceSubscriptionId(int);
+    field @NonNull public static final android.net.Uri ADVANCED_CALLING_ENABLED_CONTENT_URI;
+    field @NonNull public static final android.net.Uri VT_ENABLED_CONTENT_URI;
+    field @NonNull public static final android.net.Uri WFC_ENABLED_CONTENT_URI;
+    field @NonNull public static final android.net.Uri WFC_MODE_CONTENT_URI;
+    field @NonNull public static final android.net.Uri WFC_ROAMING_ENABLED_CONTENT_URI;
+    field @NonNull public static final android.net.Uri WFC_ROAMING_MODE_CONTENT_URI;
+  }
+
   public class TelephonyManager {
     method public int checkCarrierPrivilegesForPackage(String);
     method public int getCarrierIdListVersion();
+    method public java.util.List<java.lang.String> getCarrierPackageNamesForIntent(android.content.Intent);
+    method @Nullable public static android.content.ComponentName getDefaultRespondViaMessageApplication(@NonNull android.content.Context, boolean);
+    method public int getEmergencyNumberDbVersion();
     method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getLine1AlphaTag();
     method @NonNull public String getNetworkCountryIso(int);
     method public android.util.Pair<java.lang.Integer,java.lang.Integer> getRadioHalVersion();
     method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void refreshUiccProfile();
     method @Deprecated public void setCarrierTestOverride(String, String, String, String, String, String, String);
     method public void setCarrierTestOverride(String, String, String, String, String, String, String, String, String);
+    method @RequiresPermission("android.permission.READ_ACTIVE_EMERGENCY_SESSION") public void updateTestOtaEmergencyNumberDbFilePath(@NonNull String);
     field public static final int CARRIER_PRIVILEGE_STATUS_ERROR_LOADING_RULES = -2; // 0xfffffffe
     field public static final int CARRIER_PRIVILEGE_STATUS_HAS_ACCESS = 1; // 0x1
     field public static final int CARRIER_PRIVILEGE_STATUS_NO_ACCESS = 0; // 0x0
     field public static final int CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED = -1; // 0xffffffff
+    field public static final int INVALID_EMERGENCY_NUMBER_DB_VERSION = -1; // 0xffffffff
     field public static final int UNKNOWN_CARRIER_ID_LIST_VERSION = -1; // 0xffffffff
   }
 
@@ -2921,6 +3063,963 @@
 
 }
 
+package android.telephony.ims {
+
+  public final class ImsCallForwardInfo implements android.os.Parcelable {
+    ctor public ImsCallForwardInfo(int, int, int, int, @NonNull String, int);
+    method public int describeContents();
+    method public int getCondition();
+    method public String getNumber();
+    method public int getServiceClass();
+    method public int getStatus();
+    method public int getTimeSeconds();
+    method public int getToA();
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final int CDIV_CF_REASON_ALL = 4; // 0x4
+    field public static final int CDIV_CF_REASON_ALL_CONDITIONAL = 5; // 0x5
+    field public static final int CDIV_CF_REASON_BUSY = 1; // 0x1
+    field public static final int CDIV_CF_REASON_NOT_LOGGED_IN = 6; // 0x6
+    field public static final int CDIV_CF_REASON_NOT_REACHABLE = 3; // 0x3
+    field public static final int CDIV_CF_REASON_NO_REPLY = 2; // 0x2
+    field public static final int CDIV_CF_REASON_UNCONDITIONAL = 0; // 0x0
+    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.ImsCallForwardInfo> CREATOR;
+    field public static final int STATUS_ACTIVE = 1; // 0x1
+    field public static final int STATUS_NOT_ACTIVE = 0; // 0x0
+    field public static final int TYPE_OF_ADDRESS_INTERNATIONAL = 145; // 0x91
+    field public static final int TYPE_OF_ADDRESS_UNKNOWN = 129; // 0x81
+  }
+
+  public final class ImsCallProfile implements android.os.Parcelable {
+    ctor public ImsCallProfile();
+    ctor public ImsCallProfile(int, int);
+    ctor public ImsCallProfile(int, int, android.os.Bundle, android.telephony.ims.ImsStreamMediaProfile);
+    method public int describeContents();
+    method public String getCallExtra(String);
+    method public String getCallExtra(String, String);
+    method public boolean getCallExtraBoolean(String);
+    method public boolean getCallExtraBoolean(String, boolean);
+    method public int getCallExtraInt(String);
+    method public int getCallExtraInt(String, int);
+    method public android.os.Bundle getCallExtras();
+    method public int getCallType();
+    method public static int getCallTypeFromVideoState(int);
+    method public int getCallerNumberVerificationStatus();
+    method public int getEmergencyCallRouting();
+    method public int getEmergencyServiceCategories();
+    method @NonNull public java.util.List<java.lang.String> getEmergencyUrns();
+    method public android.telephony.ims.ImsStreamMediaProfile getMediaProfile();
+    method public int getRestrictCause();
+    method public int getServiceType();
+    method public static int getVideoStateFromCallType(int);
+    method public static int getVideoStateFromImsCallProfile(android.telephony.ims.ImsCallProfile);
+    method public boolean hasKnownUserIntentEmergency();
+    method public boolean isEmergencyCallTesting();
+    method public boolean isVideoCall();
+    method public boolean isVideoPaused();
+    method public static int presentationToOir(int);
+    method public void setCallExtra(String, String);
+    method public void setCallExtraBoolean(String, boolean);
+    method public void setCallExtraInt(String, int);
+    method public void setCallRestrictCause(int);
+    method public void setCallerNumberVerificationStatus(int);
+    method public void setEmergencyCallRouting(int);
+    method public void setEmergencyCallTesting(boolean);
+    method public void setEmergencyServiceCategories(int);
+    method public void setEmergencyUrns(@NonNull java.util.List<java.lang.String>);
+    method public void setHasKnownUserIntentEmergency(boolean);
+    method public void updateCallExtras(android.telephony.ims.ImsCallProfile);
+    method public void updateCallType(android.telephony.ims.ImsCallProfile);
+    method public void updateMediaProfile(android.telephony.ims.ImsCallProfile);
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final int CALL_RESTRICT_CAUSE_DISABLED = 2; // 0x2
+    field public static final int CALL_RESTRICT_CAUSE_HD = 3; // 0x3
+    field public static final int CALL_RESTRICT_CAUSE_NONE = 0; // 0x0
+    field public static final int CALL_RESTRICT_CAUSE_RAT = 1; // 0x1
+    field public static final int CALL_TYPE_VIDEO_N_VOICE = 3; // 0x3
+    field public static final int CALL_TYPE_VOICE = 2; // 0x2
+    field public static final int CALL_TYPE_VOICE_N_VIDEO = 1; // 0x1
+    field public static final int CALL_TYPE_VS = 8; // 0x8
+    field public static final int CALL_TYPE_VS_RX = 10; // 0xa
+    field public static final int CALL_TYPE_VS_TX = 9; // 0x9
+    field public static final int CALL_TYPE_VT = 4; // 0x4
+    field public static final int CALL_TYPE_VT_NODIR = 7; // 0x7
+    field public static final int CALL_TYPE_VT_RX = 6; // 0x6
+    field public static final int CALL_TYPE_VT_TX = 5; // 0x5
+    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.ImsCallProfile> CREATOR;
+    field public static final int DIALSTRING_NORMAL = 0; // 0x0
+    field public static final int DIALSTRING_SS_CONF = 1; // 0x1
+    field public static final int DIALSTRING_USSD = 2; // 0x2
+    field public static final String EXTRA_ADDITIONAL_CALL_INFO = "AdditionalCallInfo";
+    field public static final String EXTRA_ADDITIONAL_SIP_INVITE_FIELDS = "android.telephony.ims.extra.ADDITIONAL_SIP_INVITE_FIELDS";
+    field public static final String EXTRA_CALL_RAT_TYPE = "CallRadioTech";
+    field public static final String EXTRA_CHILD_NUMBER = "ChildNum";
+    field public static final String EXTRA_CNA = "cna";
+    field public static final String EXTRA_CNAP = "cnap";
+    field public static final String EXTRA_CODEC = "Codec";
+    field public static final String EXTRA_DIALSTRING = "dialstring";
+    field public static final String EXTRA_DISPLAY_TEXT = "DisplayText";
+    field public static final String EXTRA_EMERGENCY_CALL = "e_call";
+    field public static final String EXTRA_IS_CALL_PULL = "CallPull";
+    field public static final String EXTRA_OI = "oi";
+    field public static final String EXTRA_OIR = "oir";
+    field public static final String EXTRA_REMOTE_URI = "remote_uri";
+    field public static final String EXTRA_USSD = "ussd";
+    field public static final int OIR_DEFAULT = 0; // 0x0
+    field public static final int OIR_PRESENTATION_NOT_RESTRICTED = 2; // 0x2
+    field public static final int OIR_PRESENTATION_PAYPHONE = 4; // 0x4
+    field public static final int OIR_PRESENTATION_RESTRICTED = 1; // 0x1
+    field public static final int OIR_PRESENTATION_UNKNOWN = 3; // 0x3
+    field public static final int SERVICE_TYPE_EMERGENCY = 2; // 0x2
+    field public static final int SERVICE_TYPE_NONE = 0; // 0x0
+    field public static final int SERVICE_TYPE_NORMAL = 1; // 0x1
+    field public static final int VERIFICATION_STATUS_FAILED = 2; // 0x2
+    field public static final int VERIFICATION_STATUS_NOT_VERIFIED = 0; // 0x0
+    field public static final int VERIFICATION_STATUS_PASSED = 1; // 0x1
+  }
+
+  public class ImsCallSessionListener {
+    method public void callQualityChanged(@NonNull android.telephony.CallQuality);
+    method public void callSessionConferenceExtendFailed(android.telephony.ims.ImsReasonInfo);
+    method public void callSessionConferenceExtendReceived(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile);
+    method public void callSessionConferenceExtended(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile);
+    method public void callSessionConferenceStateUpdated(android.telephony.ims.ImsConferenceState);
+    method public void callSessionHandover(int, int, android.telephony.ims.ImsReasonInfo);
+    method public void callSessionHandoverFailed(int, int, android.telephony.ims.ImsReasonInfo);
+    method public void callSessionHeld(android.telephony.ims.ImsCallProfile);
+    method public void callSessionHoldFailed(android.telephony.ims.ImsReasonInfo);
+    method public void callSessionHoldReceived(android.telephony.ims.ImsCallProfile);
+    method public void callSessionInitiated(android.telephony.ims.ImsCallProfile);
+    method public void callSessionInitiatedFailed(android.telephony.ims.ImsReasonInfo);
+    method public void callSessionInviteParticipantsRequestDelivered();
+    method public void callSessionInviteParticipantsRequestFailed(android.telephony.ims.ImsReasonInfo);
+    method public void callSessionMayHandover(int, int);
+    method public void callSessionMergeComplete(android.telephony.ims.stub.ImsCallSessionImplBase);
+    method public void callSessionMergeFailed(android.telephony.ims.ImsReasonInfo);
+    method public void callSessionMergeStarted(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile);
+    method public void callSessionMultipartyStateChanged(boolean);
+    method public void callSessionProgressing(android.telephony.ims.ImsStreamMediaProfile);
+    method public void callSessionRemoveParticipantsRequestDelivered();
+    method public void callSessionRemoveParticipantsRequestFailed(android.telephony.ims.ImsReasonInfo);
+    method public void callSessionResumeFailed(android.telephony.ims.ImsReasonInfo);
+    method public void callSessionResumeReceived(android.telephony.ims.ImsCallProfile);
+    method public void callSessionResumed(android.telephony.ims.ImsCallProfile);
+    method public void callSessionRttAudioIndicatorChanged(@NonNull android.telephony.ims.ImsStreamMediaProfile);
+    method public void callSessionRttMessageReceived(String);
+    method public void callSessionRttModifyRequestReceived(android.telephony.ims.ImsCallProfile);
+    method public void callSessionRttModifyResponseReceived(int);
+    method public void callSessionSuppServiceReceived(android.telephony.ims.ImsSuppServiceNotification);
+    method public void callSessionTerminated(android.telephony.ims.ImsReasonInfo);
+    method public void callSessionTtyModeReceived(int);
+    method public void callSessionUpdateFailed(android.telephony.ims.ImsReasonInfo);
+    method public void callSessionUpdateReceived(android.telephony.ims.ImsCallProfile);
+    method public void callSessionUpdated(android.telephony.ims.ImsCallProfile);
+    method public void callSessionUssdMessageReceived(int, String);
+  }
+
+  public final class ImsConferenceState implements android.os.Parcelable {
+    method public int describeContents();
+    method public static int getConnectionStateForStatus(String);
+    method public void writeToParcel(android.os.Parcel, int);
+    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.ImsConferenceState> CREATOR;
+    field public static final String DISPLAY_TEXT = "display-text";
+    field public static final String ENDPOINT = "endpoint";
+    field public static final String SIP_STATUS_CODE = "sipstatuscode";
+    field public static final String STATUS = "status";
+    field public static final String STATUS_ALERTING = "alerting";
+    field public static final String STATUS_CONNECTED = "connected";
+    field public static final String STATUS_CONNECT_FAIL = "connect-fail";
+    field public static final String STATUS_DIALING_IN = "dialing-in";
+    field public static final String STATUS_DIALING_OUT = "dialing-out";
+    field public static final String STATUS_DISCONNECTED = "disconnected";
+    field public static final String STATUS_DISCONNECTING = "disconnecting";
+    field public static final String STATUS_MUTED_VIA_FOCUS = "muted-via-focus";
+    field public static final String STATUS_ON_HOLD = "on-hold";
+    field public static final String STATUS_PENDING = "pending";
+    field public static final String STATUS_SEND_ONLY = "sendonly";
+    field public static final String STATUS_SEND_RECV = "sendrecv";
+    field public static final String USER = "user";
+    field public final java.util.HashMap<java.lang.String,android.os.Bundle> mParticipants;
+  }
+
+  public final class ImsException extends java.lang.Exception {
+    ctor public ImsException(@Nullable String);
+    ctor public ImsException(@Nullable String, int);
+    ctor public ImsException(@Nullable String, int, @Nullable Throwable);
+    method public int getCode();
+    field public static final int CODE_ERROR_SERVICE_UNAVAILABLE = 1; // 0x1
+    field public static final int CODE_ERROR_UNSPECIFIED = 0; // 0x0
+    field public static final int CODE_ERROR_UNSUPPORTED_OPERATION = 2; // 0x2
+  }
+
+  public final class ImsExternalCallState implements android.os.Parcelable {
+    ctor public ImsExternalCallState(@NonNull String, @NonNull android.net.Uri, @Nullable android.net.Uri, boolean, int, int, boolean);
+    method public int describeContents();
+    method @NonNull public android.net.Uri getAddress();
+    method public int getCallId();
+    method public int getCallState();
+    method public int getCallType();
+    method @Nullable public android.net.Uri getLocalAddress();
+    method public boolean isCallHeld();
+    method public boolean isCallPullable();
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final int CALL_STATE_CONFIRMED = 1; // 0x1
+    field public static final int CALL_STATE_TERMINATED = 2; // 0x2
+    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.ImsExternalCallState> CREATOR;
+  }
+
+  public class ImsMmTelManager implements android.telephony.ims.RegistrationManager {
+    method @NonNull public static android.telephony.ims.ImsMmTelManager createForSubscriptionId(int);
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void getFeatureState(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>) throws android.telephony.ims.ImsException;
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void getRegistrationState(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void getRegistrationTransportType(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public int getVoWiFiModeSetting();
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public int getVoWiFiRoamingModeSetting();
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public boolean isAdvancedCallingSettingEnabled();
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public boolean isAvailable(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int);
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public boolean isCapable(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int);
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void isSupported(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>) throws android.telephony.ims.ImsException;
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public boolean isTtyOverVolteEnabled();
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public boolean isVoWiFiRoamingSettingEnabled();
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public boolean isVoWiFiSettingEnabled();
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public boolean isVtSettingEnabled();
+    method @Deprecated @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void registerImsRegistrationCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ImsMmTelManager.RegistrationCallback) throws android.telephony.ims.ImsException;
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void registerImsRegistrationCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.RegistrationManager.RegistrationCallback) throws android.telephony.ims.ImsException;
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void registerMmTelCapabilityCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ImsMmTelManager.CapabilityCallback) throws android.telephony.ims.ImsException;
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setAdvancedCallingSettingEnabled(boolean);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setRttCapabilitySetting(boolean);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVoWiFiModeSetting(int);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVoWiFiNonPersistent(boolean, int);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVoWiFiRoamingModeSetting(int);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVoWiFiRoamingSettingEnabled(boolean);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVoWiFiSettingEnabled(boolean);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVtSettingEnabled(boolean);
+    method @Deprecated @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void unregisterImsRegistrationCallback(@NonNull android.telephony.ims.ImsMmTelManager.RegistrationCallback);
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void unregisterImsRegistrationCallback(@NonNull android.telephony.ims.RegistrationManager.RegistrationCallback);
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void unregisterMmTelCapabilityCallback(@NonNull android.telephony.ims.ImsMmTelManager.CapabilityCallback);
+    field public static final int WIFI_MODE_CELLULAR_PREFERRED = 1; // 0x1
+    field public static final int WIFI_MODE_WIFI_ONLY = 0; // 0x0
+    field public static final int WIFI_MODE_WIFI_PREFERRED = 2; // 0x2
+  }
+
+  public static class ImsMmTelManager.CapabilityCallback {
+    ctor public ImsMmTelManager.CapabilityCallback();
+    method public void onCapabilitiesStatusChanged(@NonNull android.telephony.ims.feature.MmTelFeature.MmTelCapabilities);
+  }
+
+  @Deprecated public static class ImsMmTelManager.RegistrationCallback extends android.telephony.ims.RegistrationManager.RegistrationCallback {
+    ctor @Deprecated public ImsMmTelManager.RegistrationCallback();
+  }
+
+  public final class ImsReasonInfo implements android.os.Parcelable {
+    ctor public ImsReasonInfo(int, int, String);
+    method public int describeContents();
+    method public int getCode();
+    method public int getExtraCode();
+    method public String getExtraMessage();
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final int CODE_ACCESS_CLASS_BLOCKED = 1512; // 0x5e8
+    field public static final int CODE_ANSWERED_ELSEWHERE = 1014; // 0x3f6
+    field public static final int CODE_BLACKLISTED_CALL_ID = 506; // 0x1fa
+    field public static final int CODE_CALL_BARRED = 240; // 0xf0
+    field public static final int CODE_CALL_DROP_IWLAN_TO_LTE_UNAVAILABLE = 1100; // 0x44c
+    field public static final int CODE_CALL_END_CAUSE_CALL_PULL = 1016; // 0x3f8
+    field public static final int CODE_CALL_PULL_OUT_OF_SYNC = 1015; // 0x3f7
+    field public static final int CODE_DATA_DISABLED = 1406; // 0x57e
+    field public static final int CODE_DATA_LIMIT_REACHED = 1405; // 0x57d
+    field public static final int CODE_DIAL_MODIFIED_TO_DIAL = 246; // 0xf6
+    field public static final int CODE_DIAL_MODIFIED_TO_DIAL_VIDEO = 247; // 0xf7
+    field public static final int CODE_DIAL_MODIFIED_TO_SS = 245; // 0xf5
+    field public static final int CODE_DIAL_MODIFIED_TO_USSD = 244; // 0xf4
+    field public static final int CODE_DIAL_VIDEO_MODIFIED_TO_DIAL = 248; // 0xf8
+    field public static final int CODE_DIAL_VIDEO_MODIFIED_TO_DIAL_VIDEO = 249; // 0xf9
+    field public static final int CODE_DIAL_VIDEO_MODIFIED_TO_SS = 250; // 0xfa
+    field public static final int CODE_DIAL_VIDEO_MODIFIED_TO_USSD = 251; // 0xfb
+    field public static final int CODE_ECBM_NOT_SUPPORTED = 901; // 0x385
+    field public static final int CODE_EMERGENCY_PERM_FAILURE = 364; // 0x16c
+    field public static final int CODE_EMERGENCY_TEMP_FAILURE = 363; // 0x16b
+    field public static final int CODE_EPDG_TUNNEL_ESTABLISH_FAILURE = 1400; // 0x578
+    field public static final int CODE_EPDG_TUNNEL_LOST_CONNECTION = 1402; // 0x57a
+    field public static final int CODE_EPDG_TUNNEL_REKEY_FAILURE = 1401; // 0x579
+    field public static final int CODE_FDN_BLOCKED = 241; // 0xf1
+    field public static final int CODE_IKEV2_AUTH_FAILURE = 1408; // 0x580
+    field public static final int CODE_IMEI_NOT_ACCEPTED = 243; // 0xf3
+    field public static final int CODE_IWLAN_DPD_FAILURE = 1300; // 0x514
+    field public static final int CODE_LOCAL_CALL_BUSY = 142; // 0x8e
+    field public static final int CODE_LOCAL_CALL_CS_RETRY_REQUIRED = 146; // 0x92
+    field public static final int CODE_LOCAL_CALL_DECLINE = 143; // 0x8f
+    field public static final int CODE_LOCAL_CALL_EXCEEDED = 141; // 0x8d
+    field public static final int CODE_LOCAL_CALL_RESOURCE_RESERVATION_FAILED = 145; // 0x91
+    field public static final int CODE_LOCAL_CALL_TERMINATED = 148; // 0x94
+    field public static final int CODE_LOCAL_CALL_VCC_ON_PROGRESSING = 144; // 0x90
+    field public static final int CODE_LOCAL_CALL_VOLTE_RETRY_REQUIRED = 147; // 0x93
+    field public static final int CODE_LOCAL_ENDED_BY_CONFERENCE_MERGE = 108; // 0x6c
+    field public static final int CODE_LOCAL_HO_NOT_FEASIBLE = 149; // 0x95
+    field public static final int CODE_LOCAL_ILLEGAL_ARGUMENT = 101; // 0x65
+    field public static final int CODE_LOCAL_ILLEGAL_STATE = 102; // 0x66
+    field public static final int CODE_LOCAL_IMS_SERVICE_DOWN = 106; // 0x6a
+    field public static final int CODE_LOCAL_INTERNAL_ERROR = 103; // 0x67
+    field public static final int CODE_LOCAL_LOW_BATTERY = 112; // 0x70
+    field public static final int CODE_LOCAL_NETWORK_IP_CHANGED = 124; // 0x7c
+    field public static final int CODE_LOCAL_NETWORK_NO_LTE_COVERAGE = 122; // 0x7a
+    field public static final int CODE_LOCAL_NETWORK_NO_SERVICE = 121; // 0x79
+    field public static final int CODE_LOCAL_NETWORK_ROAMING = 123; // 0x7b
+    field public static final int CODE_LOCAL_NOT_REGISTERED = 132; // 0x84
+    field public static final int CODE_LOCAL_NO_PENDING_CALL = 107; // 0x6b
+    field public static final int CODE_LOCAL_POWER_OFF = 111; // 0x6f
+    field public static final int CODE_LOCAL_SERVICE_UNAVAILABLE = 131; // 0x83
+    field public static final int CODE_LOW_BATTERY = 505; // 0x1f9
+    field public static final int CODE_MAXIMUM_NUMBER_OF_CALLS_REACHED = 1403; // 0x57b
+    field public static final int CODE_MEDIA_INIT_FAILED = 401; // 0x191
+    field public static final int CODE_MEDIA_NOT_ACCEPTABLE = 403; // 0x193
+    field public static final int CODE_MEDIA_NO_DATA = 402; // 0x192
+    field public static final int CODE_MEDIA_UNSPECIFIED = 404; // 0x194
+    field public static final int CODE_MULTIENDPOINT_NOT_SUPPORTED = 902; // 0x386
+    field public static final int CODE_NETWORK_DETACH = 1513; // 0x5e9
+    field public static final int CODE_NETWORK_REJECT = 1504; // 0x5e0
+    field public static final int CODE_NETWORK_RESP_TIMEOUT = 1503; // 0x5df
+    field public static final int CODE_NO_CSFB_IN_CS_ROAM = 1516; // 0x5ec
+    field public static final int CODE_NO_VALID_SIM = 1501; // 0x5dd
+    field public static final int CODE_OEM_CAUSE_1 = 61441; // 0xf001
+    field public static final int CODE_OEM_CAUSE_10 = 61450; // 0xf00a
+    field public static final int CODE_OEM_CAUSE_11 = 61451; // 0xf00b
+    field public static final int CODE_OEM_CAUSE_12 = 61452; // 0xf00c
+    field public static final int CODE_OEM_CAUSE_13 = 61453; // 0xf00d
+    field public static final int CODE_OEM_CAUSE_14 = 61454; // 0xf00e
+    field public static final int CODE_OEM_CAUSE_15 = 61455; // 0xf00f
+    field public static final int CODE_OEM_CAUSE_2 = 61442; // 0xf002
+    field public static final int CODE_OEM_CAUSE_3 = 61443; // 0xf003
+    field public static final int CODE_OEM_CAUSE_4 = 61444; // 0xf004
+    field public static final int CODE_OEM_CAUSE_5 = 61445; // 0xf005
+    field public static final int CODE_OEM_CAUSE_6 = 61446; // 0xf006
+    field public static final int CODE_OEM_CAUSE_7 = 61447; // 0xf007
+    field public static final int CODE_OEM_CAUSE_8 = 61448; // 0xf008
+    field public static final int CODE_OEM_CAUSE_9 = 61449; // 0xf009
+    field public static final int CODE_RADIO_ACCESS_FAILURE = 1505; // 0x5e1
+    field public static final int CODE_RADIO_INTERNAL_ERROR = 1502; // 0x5de
+    field public static final int CODE_RADIO_LINK_FAILURE = 1506; // 0x5e2
+    field public static final int CODE_RADIO_LINK_LOST = 1507; // 0x5e3
+    field public static final int CODE_RADIO_OFF = 1500; // 0x5dc
+    field public static final int CODE_RADIO_RELEASE_ABNORMAL = 1511; // 0x5e7
+    field public static final int CODE_RADIO_RELEASE_NORMAL = 1510; // 0x5e6
+    field public static final int CODE_RADIO_SETUP_FAILURE = 1509; // 0x5e5
+    field public static final int CODE_RADIO_UPLINK_FAILURE = 1508; // 0x5e4
+    field public static final int CODE_REGISTRATION_ERROR = 1000; // 0x3e8
+    field public static final int CODE_REJECTED_ELSEWHERE = 1017; // 0x3f9
+    field public static final int CODE_REJECT_1X_COLLISION = 1603; // 0x643
+    field public static final int CODE_REJECT_CALL_ON_OTHER_SUB = 1602; // 0x642
+    field public static final int CODE_REJECT_CALL_TYPE_NOT_ALLOWED = 1605; // 0x645
+    field public static final int CODE_REJECT_CONFERENCE_TTY_NOT_ALLOWED = 1617; // 0x651
+    field public static final int CODE_REJECT_INTERNAL_ERROR = 1612; // 0x64c
+    field public static final int CODE_REJECT_MAX_CALL_LIMIT_REACHED = 1608; // 0x648
+    field public static final int CODE_REJECT_ONGOING_CALL_SETUP = 1607; // 0x647
+    field public static final int CODE_REJECT_ONGOING_CALL_TRANSFER = 1611; // 0x64b
+    field public static final int CODE_REJECT_ONGOING_CALL_UPGRADE = 1616; // 0x650
+    field public static final int CODE_REJECT_ONGOING_CALL_WAITING_DISABLED = 1601; // 0x641
+    field public static final int CODE_REJECT_ONGOING_CONFERENCE_CALL = 1618; // 0x652
+    field public static final int CODE_REJECT_ONGOING_CS_CALL = 1621; // 0x655
+    field public static final int CODE_REJECT_ONGOING_E911_CALL = 1606; // 0x646
+    field public static final int CODE_REJECT_ONGOING_ENCRYPTED_CALL = 1620; // 0x654
+    field public static final int CODE_REJECT_ONGOING_HANDOVER = 1614; // 0x64e
+    field public static final int CODE_REJECT_QOS_FAILURE = 1613; // 0x64d
+    field public static final int CODE_REJECT_SERVICE_NOT_REGISTERED = 1604; // 0x644
+    field public static final int CODE_REJECT_UNKNOWN = 1600; // 0x640
+    field public static final int CODE_REJECT_UNSUPPORTED_SDP_HEADERS = 1610; // 0x64a
+    field public static final int CODE_REJECT_UNSUPPORTED_SIP_HEADERS = 1609; // 0x649
+    field public static final int CODE_REJECT_VT_AVPF_NOT_ALLOWED = 1619; // 0x653
+    field public static final int CODE_REJECT_VT_TTY_NOT_ALLOWED = 1615; // 0x64f
+    field public static final int CODE_REMOTE_CALL_DECLINE = 1404; // 0x57c
+    field public static final int CODE_SESSION_MODIFICATION_FAILED = 1517; // 0x5ed
+    field public static final int CODE_SIP_ALTERNATE_EMERGENCY_CALL = 1514; // 0x5ea
+    field public static final int CODE_SIP_AMBIGUOUS = 376; // 0x178
+    field public static final int CODE_SIP_BAD_ADDRESS = 337; // 0x151
+    field public static final int CODE_SIP_BAD_REQUEST = 331; // 0x14b
+    field public static final int CODE_SIP_BUSY = 338; // 0x152
+    field public static final int CODE_SIP_CALL_OR_TRANS_DOES_NOT_EXIST = 372; // 0x174
+    field public static final int CODE_SIP_CLIENT_ERROR = 342; // 0x156
+    field public static final int CODE_SIP_EXTENSION_REQUIRED = 370; // 0x172
+    field public static final int CODE_SIP_FORBIDDEN = 332; // 0x14c
+    field public static final int CODE_SIP_GLOBAL_ERROR = 362; // 0x16a
+    field public static final int CODE_SIP_INTERVAL_TOO_BRIEF = 371; // 0x173
+    field public static final int CODE_SIP_LOOP_DETECTED = 373; // 0x175
+    field public static final int CODE_SIP_METHOD_NOT_ALLOWED = 366; // 0x16e
+    field public static final int CODE_SIP_NOT_ACCEPTABLE = 340; // 0x154
+    field public static final int CODE_SIP_NOT_FOUND = 333; // 0x14d
+    field public static final int CODE_SIP_NOT_REACHABLE = 341; // 0x155
+    field public static final int CODE_SIP_NOT_SUPPORTED = 334; // 0x14e
+    field public static final int CODE_SIP_PROXY_AUTHENTICATION_REQUIRED = 367; // 0x16f
+    field public static final int CODE_SIP_REDIRECTED = 321; // 0x141
+    field public static final int CODE_SIP_REQUEST_CANCELLED = 339; // 0x153
+    field public static final int CODE_SIP_REQUEST_ENTITY_TOO_LARGE = 368; // 0x170
+    field public static final int CODE_SIP_REQUEST_PENDING = 377; // 0x179
+    field public static final int CODE_SIP_REQUEST_TIMEOUT = 335; // 0x14f
+    field public static final int CODE_SIP_REQUEST_URI_TOO_LARGE = 369; // 0x171
+    field public static final int CODE_SIP_SERVER_ERROR = 354; // 0x162
+    field public static final int CODE_SIP_SERVER_INTERNAL_ERROR = 351; // 0x15f
+    field public static final int CODE_SIP_SERVER_TIMEOUT = 353; // 0x161
+    field public static final int CODE_SIP_SERVICE_UNAVAILABLE = 352; // 0x160
+    field public static final int CODE_SIP_TEMPRARILY_UNAVAILABLE = 336; // 0x150
+    field public static final int CODE_SIP_TOO_MANY_HOPS = 374; // 0x176
+    field public static final int CODE_SIP_TRANSACTION_DOES_NOT_EXIST = 343; // 0x157
+    field public static final int CODE_SIP_UNDECIPHERABLE = 378; // 0x17a
+    field public static final int CODE_SIP_USER_MARKED_UNWANTED = 365; // 0x16d
+    field public static final int CODE_SIP_USER_REJECTED = 361; // 0x169
+    field public static final int CODE_SUPP_SVC_CANCELLED = 1202; // 0x4b2
+    field public static final int CODE_SUPP_SVC_FAILED = 1201; // 0x4b1
+    field public static final int CODE_SUPP_SVC_REINVITE_COLLISION = 1203; // 0x4b3
+    field public static final int CODE_TIMEOUT_1XX_WAITING = 201; // 0xc9
+    field public static final int CODE_TIMEOUT_NO_ANSWER = 202; // 0xca
+    field public static final int CODE_TIMEOUT_NO_ANSWER_CALL_UPDATE = 203; // 0xcb
+    field public static final int CODE_UNSPECIFIED = 0; // 0x0
+    field public static final int CODE_USER_CANCELLED_SESSION_MODIFICATION = 512; // 0x200
+    field public static final int CODE_USER_DECLINE = 504; // 0x1f8
+    field public static final int CODE_USER_IGNORE = 503; // 0x1f7
+    field public static final int CODE_USER_NOANSWER = 502; // 0x1f6
+    field public static final int CODE_USER_REJECTED_SESSION_MODIFICATION = 511; // 0x1ff
+    field public static final int CODE_USER_TERMINATED = 501; // 0x1f5
+    field public static final int CODE_USER_TERMINATED_BY_REMOTE = 510; // 0x1fe
+    field public static final int CODE_UT_CB_PASSWORD_MISMATCH = 821; // 0x335
+    field public static final int CODE_UT_NETWORK_ERROR = 804; // 0x324
+    field public static final int CODE_UT_NOT_SUPPORTED = 801; // 0x321
+    field public static final int CODE_UT_OPERATION_NOT_ALLOWED = 803; // 0x323
+    field public static final int CODE_UT_SERVICE_UNAVAILABLE = 802; // 0x322
+    field public static final int CODE_UT_SS_MODIFIED_TO_DIAL = 822; // 0x336
+    field public static final int CODE_UT_SS_MODIFIED_TO_DIAL_VIDEO = 825; // 0x339
+    field public static final int CODE_UT_SS_MODIFIED_TO_SS = 824; // 0x338
+    field public static final int CODE_UT_SS_MODIFIED_TO_USSD = 823; // 0x337
+    field public static final int CODE_WIFI_LOST = 1407; // 0x57f
+    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.ImsReasonInfo> CREATOR;
+    field public static final int EXTRA_CODE_CALL_RETRY_BY_SETTINGS = 3; // 0x3
+    field public static final int EXTRA_CODE_CALL_RETRY_NORMAL = 1; // 0x1
+    field public static final int EXTRA_CODE_CALL_RETRY_SILENT_REDIAL = 2; // 0x2
+    field public static final String EXTRA_MSG_SERVICE_NOT_AUTHORIZED = "Forbidden. Not Authorized for Service";
+  }
+
+  public class ImsService extends android.app.Service {
+    ctor public ImsService();
+    method public android.telephony.ims.feature.MmTelFeature createMmTelFeature(int);
+    method public android.telephony.ims.feature.RcsFeature createRcsFeature(int);
+    method public void disableIms(int);
+    method public void enableIms(int);
+    method public android.telephony.ims.stub.ImsConfigImplBase getConfig(int);
+    method public android.telephony.ims.stub.ImsRegistrationImplBase getRegistration(int);
+    method public final void onUpdateSupportedImsFeatures(android.telephony.ims.stub.ImsFeatureConfiguration) throws android.os.RemoteException;
+    method public android.telephony.ims.stub.ImsFeatureConfiguration querySupportedImsFeatures();
+    method public void readyForFeatureCreation();
+  }
+
+  public final class ImsSsData implements android.os.Parcelable {
+    ctor public ImsSsData(int, int, int, int, int);
+    method public int describeContents();
+    method @Nullable public java.util.List<android.telephony.ims.ImsCallForwardInfo> getCallForwardInfo();
+    method public int getRequestType();
+    method public int getResult();
+    method public int getServiceClass();
+    method public int getServiceType();
+    method @NonNull public java.util.List<android.telephony.ims.ImsSsInfo> getSuppServiceInfo();
+    method public int getTeleserviceType();
+    method public boolean isTypeBarring();
+    method public boolean isTypeCf();
+    method public boolean isTypeClip();
+    method public boolean isTypeClir();
+    method public boolean isTypeColp();
+    method public boolean isTypeColr();
+    method public boolean isTypeCw();
+    method public boolean isTypeIcb();
+    method public boolean isTypeInterrogation();
+    method public boolean isTypeUnConditional();
+    method public void writeToParcel(android.os.Parcel, int);
+    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.ImsSsData> CREATOR;
+    field public static final int RESULT_SUCCESS = 0; // 0x0
+    field public static final int SERVICE_CLASS_DATA = 2; // 0x2
+    field public static final int SERVICE_CLASS_DATA_CIRCUIT_ASYNC = 32; // 0x20
+    field public static final int SERVICE_CLASS_DATA_CIRCUIT_SYNC = 16; // 0x10
+    field public static final int SERVICE_CLASS_DATA_PACKET_ACCESS = 64; // 0x40
+    field public static final int SERVICE_CLASS_DATA_PAD = 128; // 0x80
+    field public static final int SERVICE_CLASS_FAX = 4; // 0x4
+    field public static final int SERVICE_CLASS_NONE = 0; // 0x0
+    field public static final int SERVICE_CLASS_SMS = 8; // 0x8
+    field public static final int SERVICE_CLASS_VOICE = 1; // 0x1
+    field public static final int SS_ACTIVATION = 0; // 0x0
+    field public static final int SS_ALL_BARRING = 18; // 0x12
+    field public static final int SS_ALL_DATA_TELESERVICES = 3; // 0x3
+    field public static final int SS_ALL_TELESERVICES_EXCEPT_SMS = 5; // 0x5
+    field public static final int SS_ALL_TELESEVICES = 1; // 0x1
+    field public static final int SS_ALL_TELE_AND_BEARER_SERVICES = 0; // 0x0
+    field public static final int SS_BAIC = 16; // 0x10
+    field public static final int SS_BAIC_ROAMING = 17; // 0x11
+    field public static final int SS_BAOC = 13; // 0xd
+    field public static final int SS_BAOIC = 14; // 0xe
+    field public static final int SS_BAOIC_EXC_HOME = 15; // 0xf
+    field public static final int SS_CFU = 0; // 0x0
+    field public static final int SS_CFUT = 6; // 0x6
+    field public static final int SS_CF_ALL = 4; // 0x4
+    field public static final int SS_CF_ALL_CONDITIONAL = 5; // 0x5
+    field public static final int SS_CF_BUSY = 1; // 0x1
+    field public static final int SS_CF_NOT_REACHABLE = 3; // 0x3
+    field public static final int SS_CF_NO_REPLY = 2; // 0x2
+    field public static final int SS_CLIP = 7; // 0x7
+    field public static final int SS_CLIR = 8; // 0x8
+    field public static final int SS_CNAP = 11; // 0xb
+    field public static final int SS_COLP = 9; // 0x9
+    field public static final int SS_COLR = 10; // 0xa
+    field public static final int SS_DEACTIVATION = 1; // 0x1
+    field public static final int SS_ERASURE = 4; // 0x4
+    field public static final int SS_INCOMING_BARRING = 20; // 0x14
+    field public static final int SS_INCOMING_BARRING_ANONYMOUS = 22; // 0x16
+    field public static final int SS_INCOMING_BARRING_DN = 21; // 0x15
+    field public static final int SS_INTERROGATION = 2; // 0x2
+    field public static final int SS_OUTGOING_BARRING = 19; // 0x13
+    field public static final int SS_REGISTRATION = 3; // 0x3
+    field public static final int SS_SMS_SERVICES = 4; // 0x4
+    field public static final int SS_TELEPHONY = 2; // 0x2
+    field public static final int SS_WAIT = 12; // 0xc
+  }
+
+  public static final class ImsSsData.Builder {
+    ctor public ImsSsData.Builder(int, int, int, int, int);
+    method @NonNull public android.telephony.ims.ImsSsData build();
+    method @NonNull public android.telephony.ims.ImsSsData.Builder setCallForwardingInfo(@NonNull java.util.List<android.telephony.ims.ImsCallForwardInfo>);
+    method @NonNull public android.telephony.ims.ImsSsData.Builder setSuppServiceInfo(@NonNull java.util.List<android.telephony.ims.ImsSsInfo>);
+  }
+
+  public final class ImsSsInfo implements android.os.Parcelable {
+    ctor @Deprecated public ImsSsInfo(int, @Nullable String);
+    method public int describeContents();
+    method public int getClirInterrogationStatus();
+    method public int getClirOutgoingState();
+    method @Deprecated public String getIcbNum();
+    method @Nullable public String getIncomingCommunicationBarringNumber();
+    method public int getProvisionStatus();
+    method public int getStatus();
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final int CLIR_OUTGOING_DEFAULT = 0; // 0x0
+    field public static final int CLIR_OUTGOING_INVOCATION = 1; // 0x1
+    field public static final int CLIR_OUTGOING_SUPPRESSION = 2; // 0x2
+    field public static final int CLIR_STATUS_NOT_PROVISIONED = 0; // 0x0
+    field public static final int CLIR_STATUS_PROVISIONED_PERMANENT = 1; // 0x1
+    field public static final int CLIR_STATUS_TEMPORARILY_ALLOWED = 4; // 0x4
+    field public static final int CLIR_STATUS_TEMPORARILY_RESTRICTED = 3; // 0x3
+    field public static final int CLIR_STATUS_UNKNOWN = 2; // 0x2
+    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.ImsSsInfo> CREATOR;
+    field public static final int DISABLED = 0; // 0x0
+    field public static final int ENABLED = 1; // 0x1
+    field public static final int NOT_REGISTERED = -1; // 0xffffffff
+    field public static final int SERVICE_NOT_PROVISIONED = 0; // 0x0
+    field public static final int SERVICE_PROVISIONED = 1; // 0x1
+    field public static final int SERVICE_PROVISIONING_UNKNOWN = -1; // 0xffffffff
+  }
+
+  public static final class ImsSsInfo.Builder {
+    ctor public ImsSsInfo.Builder(int);
+    method @NonNull public android.telephony.ims.ImsSsInfo build();
+    method @NonNull public android.telephony.ims.ImsSsInfo.Builder setClirInterrogationStatus(int);
+    method @NonNull public android.telephony.ims.ImsSsInfo.Builder setClirOutgoingState(int);
+    method @NonNull public android.telephony.ims.ImsSsInfo.Builder setIncomingCommunicationBarringNumber(@NonNull String);
+    method @NonNull public android.telephony.ims.ImsSsInfo.Builder setProvisionStatus(int);
+  }
+
+  public final class ImsStreamMediaProfile implements android.os.Parcelable {
+    ctor public ImsStreamMediaProfile(int, int, int, int, int);
+    method public void copyFrom(android.telephony.ims.ImsStreamMediaProfile);
+    method public int describeContents();
+    method public int getAudioDirection();
+    method public int getAudioQuality();
+    method public int getRttMode();
+    method public int getVideoDirection();
+    method public int getVideoQuality();
+    method public boolean isReceivingRttAudio();
+    method public boolean isRttCall();
+    method public void setReceivingRttAudio(boolean);
+    method public void setRttMode(int);
+    method public void writeToParcel(android.os.Parcel, int);
+    field public static final int AUDIO_QUALITY_AMR = 1; // 0x1
+    field public static final int AUDIO_QUALITY_AMR_WB = 2; // 0x2
+    field public static final int AUDIO_QUALITY_EVRC = 4; // 0x4
+    field public static final int AUDIO_QUALITY_EVRC_B = 5; // 0x5
+    field public static final int AUDIO_QUALITY_EVRC_NW = 7; // 0x7
+    field public static final int AUDIO_QUALITY_EVRC_WB = 6; // 0x6
+    field public static final int AUDIO_QUALITY_EVS_FB = 20; // 0x14
+    field public static final int AUDIO_QUALITY_EVS_NB = 17; // 0x11
+    field public static final int AUDIO_QUALITY_EVS_SWB = 19; // 0x13
+    field public static final int AUDIO_QUALITY_EVS_WB = 18; // 0x12
+    field public static final int AUDIO_QUALITY_G711A = 13; // 0xd
+    field public static final int AUDIO_QUALITY_G711AB = 15; // 0xf
+    field public static final int AUDIO_QUALITY_G711U = 11; // 0xb
+    field public static final int AUDIO_QUALITY_G722 = 14; // 0xe
+    field public static final int AUDIO_QUALITY_G723 = 12; // 0xc
+    field public static final int AUDIO_QUALITY_G729 = 16; // 0x10
+    field public static final int AUDIO_QUALITY_GSM_EFR = 8; // 0x8
+    field public static final int AUDIO_QUALITY_GSM_FR = 9; // 0x9
+    field public static final int AUDIO_QUALITY_GSM_HR = 10; // 0xa
+    field public static final int AUDIO_QUALITY_NONE = 0; // 0x0
+    field public static final int AUDIO_QUALITY_QCELP13K = 3; // 0x3
+    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.ImsStreamMediaProfile> CREATOR;
+    field public static final int DIRECTION_INACTIVE = 0; // 0x0
+    field public static final int DIRECTION_INVALID = -1; // 0xffffffff
+    field public static final int DIRECTION_RECEIVE = 1; // 0x1
+    field public static final int DIRECTION_SEND = 2; // 0x2
+    field public static final int DIRECTION_SEND_RECEIVE = 3; // 0x3
+    field public static final int RTT_MODE_DISABLED = 0; // 0x0
+    field public static final int RTT_MODE_FULL = 1; // 0x1
+    field public static final int VIDEO_QUALITY_NONE = 0; // 0x0
+    field public static final int VIDEO_QUALITY_QCIF = 1; // 0x1
+    field public static final int VIDEO_QUALITY_QVGA_LANDSCAPE = 2; // 0x2
+    field public static final int VIDEO_QUALITY_QVGA_PORTRAIT = 4; // 0x4
+    field public static final int VIDEO_QUALITY_VGA_LANDSCAPE = 8; // 0x8
+    field public static final int VIDEO_QUALITY_VGA_PORTRAIT = 16; // 0x10
+  }
+
+  public final class ImsSuppServiceNotification implements android.os.Parcelable {
+    ctor public ImsSuppServiceNotification(int, int, int, int, String, String[]);
+    method public int describeContents();
+    method public void writeToParcel(android.os.Parcel, int);
+    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.ImsSuppServiceNotification> CREATOR;
+    field public final int code;
+    field public final String[] history;
+    field public final int index;
+    field public final int notificationType;
+    field public final String number;
+    field public final int type;
+  }
+
+  public class ImsUtListener {
+    method public void onLineIdentificationSupplementaryServiceResponse(int, @NonNull android.telephony.ims.ImsSsInfo);
+    method public void onSupplementaryServiceIndication(android.telephony.ims.ImsSsData);
+    method public void onUtConfigurationCallBarringQueried(int, android.telephony.ims.ImsSsInfo[]);
+    method public void onUtConfigurationCallForwardQueried(int, android.telephony.ims.ImsCallForwardInfo[]);
+    method public void onUtConfigurationCallWaitingQueried(int, android.telephony.ims.ImsSsInfo[]);
+    method @Deprecated public void onUtConfigurationQueried(int, android.os.Bundle);
+    method public void onUtConfigurationQueryFailed(int, android.telephony.ims.ImsReasonInfo);
+    method public void onUtConfigurationUpdateFailed(int, android.telephony.ims.ImsReasonInfo);
+    method public void onUtConfigurationUpdated(int);
+    field @Deprecated public static final String BUNDLE_KEY_CLIR = "queryClir";
+    field @Deprecated public static final String BUNDLE_KEY_SSINFO = "imsSsInfo";
+  }
+
+  public abstract class ImsVideoCallProvider {
+    ctor public ImsVideoCallProvider();
+    method public void changeCallDataUsage(long);
+    method public void changeCameraCapabilities(android.telecom.VideoProfile.CameraCapabilities);
+    method public void changePeerDimensions(int, int);
+    method public void changeVideoQuality(int);
+    method public void handleCallSessionEvent(int);
+    method public abstract void onRequestCallDataUsage();
+    method public abstract void onRequestCameraCapabilities();
+    method public abstract void onSendSessionModifyRequest(android.telecom.VideoProfile, android.telecom.VideoProfile);
+    method public abstract void onSendSessionModifyResponse(android.telecom.VideoProfile);
+    method public abstract void onSetCamera(String);
+    method public void onSetCamera(String, int);
+    method public abstract void onSetDeviceOrientation(int);
+    method public abstract void onSetDisplaySurface(android.view.Surface);
+    method public abstract void onSetPauseImage(android.net.Uri);
+    method public abstract void onSetPreviewSurface(android.view.Surface);
+    method public abstract void onSetZoom(float);
+    method public void receiveSessionModifyRequest(android.telecom.VideoProfile);
+    method public void receiveSessionModifyResponse(int, android.telecom.VideoProfile, android.telecom.VideoProfile);
+  }
+
+  public class ProvisioningManager {
+    method @NonNull public static android.telephony.ims.ProvisioningManager createForSubscriptionId(int);
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") @WorkerThread public int getProvisioningIntValue(int);
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") @WorkerThread public boolean getProvisioningStatusForCapability(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int);
+    method @Nullable @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") @WorkerThread public String getProvisioningStringValue(int);
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void registerProvisioningChangedCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ProvisioningManager.Callback) throws android.telephony.ims.ImsException;
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public int setProvisioningIntValue(int, int);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public void setProvisioningStatusForCapability(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int, boolean);
+    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @WorkerThread public int setProvisioningStringValue(int, @NonNull String);
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void unregisterProvisioningChangedCallback(@NonNull android.telephony.ims.ProvisioningManager.Callback);
+    field public static final int KEY_VOICE_OVER_WIFI_MODE_OVERRIDE = 27; // 0x1b
+    field public static final int KEY_VOICE_OVER_WIFI_ROAMING_ENABLED_OVERRIDE = 26; // 0x1a
+    field public static final int PROVISIONING_VALUE_DISABLED = 0; // 0x0
+    field public static final int PROVISIONING_VALUE_ENABLED = 1; // 0x1
+    field public static final String STRING_QUERY_RESULT_ERROR_GENERIC = "STRING_QUERY_RESULT_ERROR_GENERIC";
+    field public static final String STRING_QUERY_RESULT_ERROR_NOT_READY = "STRING_QUERY_RESULT_ERROR_NOT_READY";
+  }
+
+  public static class ProvisioningManager.Callback {
+    ctor public ProvisioningManager.Callback();
+    method public void onProvisioningIntChanged(int, int);
+    method public void onProvisioningStringChanged(int, @NonNull String);
+  }
+
+  public interface RegistrationManager {
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void getRegistrationState(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void getRegistrationTransportType(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>);
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void registerImsRegistrationCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.RegistrationManager.RegistrationCallback) throws android.telephony.ims.ImsException;
+    method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void unregisterImsRegistrationCallback(@NonNull android.telephony.ims.RegistrationManager.RegistrationCallback);
+    field public static final int REGISTRATION_STATE_NOT_REGISTERED = 0; // 0x0
+    field public static final int REGISTRATION_STATE_REGISTERED = 2; // 0x2
+    field public static final int REGISTRATION_STATE_REGISTERING = 1; // 0x1
+  }
+
+  public static class RegistrationManager.RegistrationCallback {
+    ctor public RegistrationManager.RegistrationCallback();
+    method public void onRegistered(int);
+    method public void onRegistering(int);
+    method public void onTechnologyChangeFailed(int, @Nullable android.telephony.ims.ImsReasonInfo);
+    method public void onUnregistered(@Nullable android.telephony.ims.ImsReasonInfo);
+  }
+
+}
+
+package android.telephony.ims.feature {
+
+  public final class CapabilityChangeRequest implements android.os.Parcelable {
+    method public void addCapabilitiesToDisableForTech(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int);
+    method public void addCapabilitiesToEnableForTech(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int);
+    method public int describeContents();
+    method public java.util.List<android.telephony.ims.feature.CapabilityChangeRequest.CapabilityPair> getCapabilitiesToDisable();
+    method public java.util.List<android.telephony.ims.feature.CapabilityChangeRequest.CapabilityPair> getCapabilitiesToEnable();
+    method public void writeToParcel(android.os.Parcel, int);
+    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.feature.CapabilityChangeRequest> CREATOR;
+  }
+
+  public static class CapabilityChangeRequest.CapabilityPair {
+    ctor public CapabilityChangeRequest.CapabilityPair(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int);
+    method @android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability public int getCapability();
+    method public int getRadioTech();
+  }
+
+  public abstract class ImsFeature {
+    ctor public ImsFeature();
+    method public abstract void changeEnabledCapabilities(android.telephony.ims.feature.CapabilityChangeRequest, android.telephony.ims.feature.ImsFeature.CapabilityCallbackProxy);
+    method public final int getSlotIndex();
+    method public abstract void onFeatureReady();
+    method public abstract void onFeatureRemoved();
+    method public final void setFeatureState(int);
+    field public static final int CAPABILITY_ERROR_GENERIC = -1; // 0xffffffff
+    field public static final int CAPABILITY_SUCCESS = 0; // 0x0
+    field public static final int FEATURE_EMERGENCY_MMTEL = 0; // 0x0
+    field public static final int FEATURE_MMTEL = 1; // 0x1
+    field public static final int FEATURE_RCS = 2; // 0x2
+    field public static final int STATE_INITIALIZING = 1; // 0x1
+    field public static final int STATE_READY = 2; // 0x2
+    field public static final int STATE_UNAVAILABLE = 0; // 0x0
+  }
+
+  @Deprecated public static class ImsFeature.Capabilities {
+    field @Deprecated protected int mCapabilities;
+  }
+
+  protected static class ImsFeature.CapabilityCallbackProxy {
+    method public void onChangeCapabilityConfigurationError(int, int, int);
+  }
+
+  public class MmTelFeature extends android.telephony.ims.feature.ImsFeature {
+    ctor public MmTelFeature();
+    method public void changeEnabledCapabilities(@NonNull android.telephony.ims.feature.CapabilityChangeRequest, @NonNull android.telephony.ims.feature.ImsFeature.CapabilityCallbackProxy);
+    method @Nullable public android.telephony.ims.ImsCallProfile createCallProfile(int, int);
+    method @Nullable public android.telephony.ims.stub.ImsCallSessionImplBase createCallSession(@NonNull android.telephony.ims.ImsCallProfile);
+    method @NonNull public android.telephony.ims.stub.ImsEcbmImplBase getEcbm();
+    method @NonNull public android.telephony.ims.stub.ImsMultiEndpointImplBase getMultiEndpoint();
+    method @NonNull public android.telephony.ims.stub.ImsSmsImplBase getSmsImplementation();
+    method @NonNull public android.telephony.ims.stub.ImsUtImplBase getUt();
+    method public final void notifyCapabilitiesStatusChanged(@NonNull android.telephony.ims.feature.MmTelFeature.MmTelCapabilities);
+    method public final void notifyIncomingCall(@NonNull android.telephony.ims.stub.ImsCallSessionImplBase, @NonNull android.os.Bundle);
+    method public final void notifyRejectedCall(@NonNull android.telephony.ims.ImsCallProfile, @NonNull android.telephony.ims.ImsReasonInfo);
+    method public final void notifyVoiceMessageCountUpdate(int);
+    method public void onFeatureReady();
+    method public void onFeatureRemoved();
+    method public boolean queryCapabilityConfiguration(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int);
+    method public final android.telephony.ims.feature.MmTelFeature.MmTelCapabilities queryCapabilityStatus();
+    method public void setUiTtyMode(int, @Nullable android.os.Message);
+    method @android.telephony.ims.feature.MmTelFeature.ProcessCallResult public int shouldProcessCall(@NonNull String[]);
+    field public static final String EXTRA_IS_UNKNOWN_CALL = "android.telephony.ims.feature.extra.IS_UNKNOWN_CALL";
+    field public static final String EXTRA_IS_USSD = "android.telephony.ims.feature.extra.IS_USSD";
+    field public static final int PROCESS_CALL_CSFB = 1; // 0x1
+    field public static final int PROCESS_CALL_IMS = 0; // 0x0
+  }
+
+  public static class MmTelFeature.MmTelCapabilities extends android.telephony.ims.feature.ImsFeature.Capabilities {
+    ctor public MmTelFeature.MmTelCapabilities();
+    ctor @Deprecated public MmTelFeature.MmTelCapabilities(android.telephony.ims.feature.ImsFeature.Capabilities);
+    ctor public MmTelFeature.MmTelCapabilities(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int);
+    method public final void addCapabilities(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int);
+    method public final boolean isCapable(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int);
+    method public final void removeCapabilities(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int);
+    field public static final int CAPABILITY_TYPE_SMS = 8; // 0x8
+    field public static final int CAPABILITY_TYPE_UT = 4; // 0x4
+    field public static final int CAPABILITY_TYPE_VIDEO = 2; // 0x2
+    field public static final int CAPABILITY_TYPE_VOICE = 1; // 0x1
+  }
+
+  @IntDef(flag=true, value={android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE, android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO, android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_UT, android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_SMS}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface MmTelFeature.MmTelCapabilities.MmTelCapability {
+  }
+
+  @IntDef(flag=true, value={android.telephony.ims.feature.MmTelFeature.PROCESS_CALL_IMS, android.telephony.ims.feature.MmTelFeature.PROCESS_CALL_CSFB}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface MmTelFeature.ProcessCallResult {
+  }
+
+  public class RcsFeature extends android.telephony.ims.feature.ImsFeature {
+    ctor public RcsFeature();
+    method public void changeEnabledCapabilities(android.telephony.ims.feature.CapabilityChangeRequest, android.telephony.ims.feature.ImsFeature.CapabilityCallbackProxy);
+    method public void onFeatureReady();
+    method public void onFeatureRemoved();
+  }
+
+}
+
+package android.telephony.ims.stub {
+
+  public class ImsCallSessionImplBase implements java.lang.AutoCloseable {
+    ctor public ImsCallSessionImplBase();
+    method public void accept(int, android.telephony.ims.ImsStreamMediaProfile);
+    method public void close();
+    method public void deflect(String);
+    method public void extendToConference(String[]);
+    method public String getCallId();
+    method public android.telephony.ims.ImsCallProfile getCallProfile();
+    method public android.telephony.ims.ImsVideoCallProvider getImsVideoCallProvider();
+    method public android.telephony.ims.ImsCallProfile getLocalCallProfile();
+    method public String getProperty(String);
+    method public android.telephony.ims.ImsCallProfile getRemoteCallProfile();
+    method public int getState();
+    method public void hold(android.telephony.ims.ImsStreamMediaProfile);
+    method public void inviteParticipants(String[]);
+    method public boolean isInCall();
+    method public boolean isMultiparty();
+    method public void merge();
+    method public void reject(int);
+    method public void removeParticipants(String[]);
+    method public void resume(android.telephony.ims.ImsStreamMediaProfile);
+    method public void sendDtmf(char, android.os.Message);
+    method public void sendRttMessage(String);
+    method public void sendRttModifyRequest(android.telephony.ims.ImsCallProfile);
+    method public void sendRttModifyResponse(boolean);
+    method public void sendUssd(String);
+    method public void setListener(android.telephony.ims.ImsCallSessionListener);
+    method public void setMute(boolean);
+    method public void start(String, android.telephony.ims.ImsCallProfile);
+    method public void startConference(String[], android.telephony.ims.ImsCallProfile);
+    method public void startDtmf(char);
+    method public void stopDtmf();
+    method public void terminate(int);
+    method public void update(int, android.telephony.ims.ImsStreamMediaProfile);
+    field public static final int USSD_MODE_NOTIFY = 0; // 0x0
+    field public static final int USSD_MODE_REQUEST = 1; // 0x1
+  }
+
+  public static class ImsCallSessionImplBase.State {
+    method public static String toString(int);
+    field public static final int ESTABLISHED = 4; // 0x4
+    field public static final int ESTABLISHING = 3; // 0x3
+    field public static final int IDLE = 0; // 0x0
+    field public static final int INITIATED = 1; // 0x1
+    field public static final int INVALID = -1; // 0xffffffff
+    field public static final int NEGOTIATING = 2; // 0x2
+    field public static final int REESTABLISHING = 6; // 0x6
+    field public static final int RENEGOTIATING = 5; // 0x5
+    field public static final int TERMINATED = 8; // 0x8
+    field public static final int TERMINATING = 7; // 0x7
+  }
+
+  public class ImsConfigImplBase {
+    ctor public ImsConfigImplBase();
+    method public int getConfigInt(int);
+    method public String getConfigString(int);
+    method public final void notifyProvisionedValueChanged(int, int);
+    method public final void notifyProvisionedValueChanged(int, String);
+    method public int setConfig(int, int);
+    method public int setConfig(int, String);
+    field public static final int CONFIG_RESULT_FAILED = 1; // 0x1
+    field public static final int CONFIG_RESULT_SUCCESS = 0; // 0x0
+    field public static final int CONFIG_RESULT_UNKNOWN = -1; // 0xffffffff
+  }
+
+  public class ImsEcbmImplBase {
+    ctor public ImsEcbmImplBase();
+    method public final void enteredEcbm();
+    method public void exitEmergencyCallbackMode();
+    method public final void exitedEcbm();
+  }
+
+  public final class ImsFeatureConfiguration implements android.os.Parcelable {
+    method public int describeContents();
+    method public java.util.Set<android.telephony.ims.stub.ImsFeatureConfiguration.FeatureSlotPair> getServiceFeatures();
+    method public void writeToParcel(android.os.Parcel, int);
+    field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.stub.ImsFeatureConfiguration> CREATOR;
+  }
+
+  public static class ImsFeatureConfiguration.Builder {
+    ctor public ImsFeatureConfiguration.Builder();
+    method public android.telephony.ims.stub.ImsFeatureConfiguration.Builder addFeature(int, int);
+    method public android.telephony.ims.stub.ImsFeatureConfiguration build();
+  }
+
+  public static final class ImsFeatureConfiguration.FeatureSlotPair {
+    ctor public ImsFeatureConfiguration.FeatureSlotPair(int, int);
+    field public final int featureType;
+    field public final int slotId;
+  }
+
+  public class ImsMultiEndpointImplBase {
+    ctor public ImsMultiEndpointImplBase();
+    method public final void onImsExternalCallStateUpdate(java.util.List<android.telephony.ims.ImsExternalCallState>);
+    method public void requestImsExternalCallStateInfo();
+  }
+
+  public class ImsRegistrationImplBase {
+    ctor public ImsRegistrationImplBase();
+    method public final void onDeregistered(android.telephony.ims.ImsReasonInfo);
+    method public final void onRegistered(int);
+    method public final void onRegistering(int);
+    method public final void onSubscriberAssociatedUriChanged(android.net.Uri[]);
+    method public final void onTechnologyChangeFailed(int, android.telephony.ims.ImsReasonInfo);
+    field public static final int REGISTRATION_TECH_IWLAN = 1; // 0x1
+    field public static final int REGISTRATION_TECH_LTE = 0; // 0x0
+    field public static final int REGISTRATION_TECH_NONE = -1; // 0xffffffff
+  }
+
+  public class ImsSmsImplBase {
+    ctor public ImsSmsImplBase();
+    method public void acknowledgeSms(int, @IntRange(from=0, to=65535) int, int);
+    method public void acknowledgeSmsReport(int, @IntRange(from=0, to=65535) int, int);
+    method public String getSmsFormat();
+    method public void onReady();
+    method @Deprecated public final void onSendSmsResult(int, @IntRange(from=0, to=65535) int, int, int) throws java.lang.RuntimeException;
+    method public final void onSendSmsResultError(int, @IntRange(from=0, to=65535) int, int, int, int) throws java.lang.RuntimeException;
+    method public final void onSendSmsResultSuccess(int, @IntRange(from=0, to=65535) int) throws java.lang.RuntimeException;
+    method public final void onSmsReceived(int, String, byte[]) throws java.lang.RuntimeException;
+    method @Deprecated public final void onSmsStatusReportReceived(int, @IntRange(from=0, to=65535) int, String, byte[]) throws java.lang.RuntimeException;
+    method public final void onSmsStatusReportReceived(int, String, byte[]) throws java.lang.RuntimeException;
+    method public void sendSms(int, @IntRange(from=0, to=65535) int, String, String, boolean, byte[]);
+    field public static final int DELIVER_STATUS_ERROR_GENERIC = 2; // 0x2
+    field public static final int DELIVER_STATUS_ERROR_NO_MEMORY = 3; // 0x3
+    field public static final int DELIVER_STATUS_ERROR_REQUEST_NOT_SUPPORTED = 4; // 0x4
+    field public static final int DELIVER_STATUS_OK = 1; // 0x1
+    field public static final int RESULT_NO_NETWORK_ERROR = -1; // 0xffffffff
+    field public static final int SEND_STATUS_ERROR = 2; // 0x2
+    field public static final int SEND_STATUS_ERROR_FALLBACK = 4; // 0x4
+    field public static final int SEND_STATUS_ERROR_RETRY = 3; // 0x3
+    field public static final int SEND_STATUS_OK = 1; // 0x1
+    field public static final int STATUS_REPORT_STATUS_ERROR = 2; // 0x2
+    field public static final int STATUS_REPORT_STATUS_OK = 1; // 0x1
+  }
+
+  public class ImsUtImplBase {
+    ctor public ImsUtImplBase();
+    method public void close();
+    method public int queryCallBarring(int);
+    method public int queryCallBarringForServiceClass(int, int);
+    method public int queryCallForward(int, String);
+    method public int queryCallWaiting();
+    method public int queryClip();
+    method public int queryClir();
+    method public int queryColp();
+    method public int queryColr();
+    method public void setListener(android.telephony.ims.ImsUtListener);
+    method public int transact(android.os.Bundle);
+    method public int updateCallBarring(int, int, String[]);
+    method public int updateCallBarringForServiceClass(int, int, String[], int);
+    method public int updateCallForward(int, int, String, int, int);
+    method public int updateCallWaiting(boolean, int);
+    method public int updateClip(boolean);
+    method public int updateClir(int);
+    method public int updateColp(boolean);
+    method public int updateColr(int);
+  }
+
+}
+
 package android.telephony.mbms {
 
   public static class DownloadRequest.Builder {
diff --git a/api/test-lint-baseline.txt b/api/test-lint-baseline.txt
index 1f85f3f..bf21ce7 100644
--- a/api/test-lint-baseline.txt
+++ b/api/test-lint-baseline.txt
@@ -5,6 +5,36 @@
     
 
 
+ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_ADDITIONAL_CALL_INFO:
+    Inconsistent extra value; expected `android.telephony.ims.extra.ADDITIONAL_CALL_INFO`, was `AdditionalCallInfo`
+ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_CALL_RAT_TYPE:
+    Inconsistent extra value; expected `android.telephony.ims.extra.CALL_RAT_TYPE`, was `CallRadioTech`
+ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_CHILD_NUMBER:
+    Inconsistent extra value; expected `android.telephony.ims.extra.CHILD_NUMBER`, was `ChildNum`
+ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_CNA:
+    Inconsistent extra value; expected `android.telephony.ims.extra.CNA`, was `cna`
+ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_CNAP:
+    Inconsistent extra value; expected `android.telephony.ims.extra.CNAP`, was `cnap`
+ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_CODEC:
+    Inconsistent extra value; expected `android.telephony.ims.extra.CODEC`, was `Codec`
+ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_DIALSTRING:
+    Inconsistent extra value; expected `android.telephony.ims.extra.DIALSTRING`, was `dialstring`
+ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_DISPLAY_TEXT:
+    Inconsistent extra value; expected `android.telephony.ims.extra.DISPLAY_TEXT`, was `DisplayText`
+ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_EMERGENCY_CALL:
+    Inconsistent extra value; expected `android.telephony.ims.extra.EMERGENCY_CALL`, was `e_call`
+ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_IS_CALL_PULL:
+    Inconsistent extra value; expected `android.telephony.ims.extra.IS_CALL_PULL`, was `CallPull`
+ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_OI:
+    Inconsistent extra value; expected `android.telephony.ims.extra.OI`, was `oi`
+ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_OIR:
+    Inconsistent extra value; expected `android.telephony.ims.extra.OIR`, was `oir`
+ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_REMOTE_URI:
+    Inconsistent extra value; expected `android.telephony.ims.extra.REMOTE_URI`, was `remote_uri`
+ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_USSD:
+    Inconsistent extra value; expected `android.telephony.ims.extra.USSD`, was `ussd`
+ActionValue: android.telephony.ims.ImsReasonInfo#EXTRA_MSG_SERVICE_NOT_AUTHORIZED:
+    Inconsistent extra value; expected `android.telephony.ims.extra.MSG_SERVICE_NOT_AUTHORIZED`, was `Forbidden. Not Authorized for Service`
 ActionValue: android.telephony.mbms.vendor.VendorUtils#ACTION_CLEANUP:
     
 ActionValue: android.telephony.mbms.vendor.VendorUtils#ACTION_DOWNLOAD_RESULT_INTERNAL:
@@ -67,6 +97,14 @@
     
 ArrayReturn: android.security.keystore.AttestationUtils#attestDeviceIds(android.content.Context, int[], byte[]):
     
+ArrayReturn: android.telephony.ims.ImsUtListener#onUtConfigurationCallBarringQueried(int, android.telephony.ims.ImsSsInfo[]) parameter #1:
+    Method parameter should be Collection<ImsSsInfo> (or subclass) instead of raw array; was `android.telephony.ims.ImsSsInfo[]`
+ArrayReturn: android.telephony.ims.ImsUtListener#onUtConfigurationCallForwardQueried(int, android.telephony.ims.ImsCallForwardInfo[]) parameter #1:
+    Method parameter should be Collection<ImsCallForwardInfo> (or subclass) instead of raw array; was `android.telephony.ims.ImsCallForwardInfo[]`
+ArrayReturn: android.telephony.ims.ImsUtListener#onUtConfigurationCallWaitingQueried(int, android.telephony.ims.ImsSsInfo[]) parameter #1:
+    Method parameter should be Collection<ImsSsInfo> (or subclass) instead of raw array; was `android.telephony.ims.ImsSsInfo[]`
+ArrayReturn: android.telephony.ims.stub.ImsRegistrationImplBase#onSubscriberAssociatedUriChanged(android.net.Uri[]) parameter #0:
+    Method parameter should be Collection<Uri> (or subclass) instead of raw array; was `android.net.Uri[]`
 ArrayReturn: android.view.FocusFinder#sort(android.view.View[], int, int, android.view.ViewGroup, boolean) parameter #0:
     
 ArrayReturn: android.view.contentcapture.ViewNode#getAutofillOptions():
@@ -231,6 +269,8 @@
     
 ConcreteCollection: android.service.autofill.UserData#getFieldClassificationAlgorithms():
     
+ConcreteCollection: android.telephony.ims.ImsConferenceState#mParticipants:
+    Field type is concrete collection (`java.util.HashMap`); must be higher-level interface
 
 
 ContextFirst: android.os.VibrationEffect#get(android.net.Uri, android.content.Context) parameter #1:
@@ -303,6 +343,10 @@
     
 ExecutorRegistration: android.permission.PermissionControllerManager#getAppPermissions(String, android.permission.PermissionControllerManager.OnGetAppPermissionResultCallback, android.os.Handler):
     
+ExecutorRegistration: android.telephony.ims.stub.ImsCallSessionImplBase#setListener(android.telephony.ims.ImsCallSessionListener):
+    Registration methods should have overload that accepts delivery Executor: `setListener`
+ExecutorRegistration: android.telephony.ims.stub.ImsUtImplBase#setListener(android.telephony.ims.ImsUtListener):
+    Registration methods should have overload that accepts delivery Executor: `setListener`
 ExecutorRegistration: android.telephony.mbms.vendor.MbmsDownloadServiceBase#addProgressListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadProgressListener):
     
 ExecutorRegistration: android.telephony.mbms.vendor.MbmsDownloadServiceBase#addStatusListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadStatusListener):
@@ -415,6 +459,10 @@
     
 
 
+InternalField: android.telephony.ims.ImsConferenceState#mParticipants:
+    Internal field mParticipants must not be exposed
+
+
 KotlinOperator: android.os.WorkSource#get(int):
     
 
@@ -425,6 +473,10 @@
     
 ListenerInterface: android.os.IncidentManager.AuthListener:
     
+ListenerInterface: android.telephony.ims.ImsCallSessionListener:
+    Listeners should be an interface, or otherwise renamed Callback: ImsCallSessionListener
+ListenerInterface: android.telephony.ims.ImsUtListener:
+    Listeners should be an interface, or otherwise renamed Callback: ImsUtListener
 
 
 ListenerLast: android.hardware.camera2.CameraDevice#createCustomCaptureSession(android.hardware.camera2.params.InputConfiguration, java.util.List<android.hardware.camera2.params.OutputConfiguration>, int, android.hardware.camera2.CameraCaptureSession.StateCallback, android.os.Handler) parameter #4:
@@ -443,6 +495,20 @@
     
 
 
+ManagerLookup: android.telephony.ims.ImsMmTelManager#createForSubscriptionId(int):
+    Managers must always be obtained from Context (`createForSubscriptionId`)
+ManagerLookup: android.telephony.ims.ProvisioningManager#createForSubscriptionId(int):
+    Managers must always be obtained from Context (`createForSubscriptionId`)
+
+
+MethodNameTense: android.telephony.ims.feature.CapabilityChangeRequest#getCapabilitiesToEnable():
+    Unexpected tense; probably meant `enabled`, was `getCapabilitiesToEnable`
+
+
+MethodNameUnits: android.telephony.ims.ImsCallForwardInfo#getTimeSeconds():
+    Returned time values must be in milliseconds, was `getTimeSeconds`
+
+
 MinMaxConstant: android.view.autofill.AutofillManager#MAX_TEMP_AUGMENTED_SERVICE_DURATION_MS:
     
 
@@ -1399,6 +1465,8 @@
     
 MissingNullability: android.telecom.PhoneAccountSuggestionService#onBind(android.content.Intent) parameter #0:
     
+MissingNullability: android.telephony.CallQuality#writeToParcel(android.os.Parcel, int) parameter #0:
+    Missing nullability on parameter `dest` in method `writeToParcel`
 MissingNullability: android.telephony.DataSpecificRegistrationInfo#writeToParcel(android.os.Parcel, int) parameter #0:
     
 MissingNullability: android.telephony.LteVopsSupportInfo#writeToParcel(android.os.Parcel, int) parameter #0:
@@ -1415,6 +1483,10 @@
     
 MissingNullability: android.telephony.TelephonyManager#checkCarrierPrivilegesForPackage(String) parameter #0:
     
+MissingNullability: android.telephony.TelephonyManager#getCarrierPackageNamesForIntent(android.content.Intent):
+    Missing nullability on method `getCarrierPackageNamesForIntent` return
+MissingNullability: android.telephony.TelephonyManager#getCarrierPackageNamesForIntent(android.content.Intent) parameter #0:
+    Missing nullability on parameter `intent` in method `getCarrierPackageNamesForIntent`
 MissingNullability: android.telephony.TelephonyManager#getLine1AlphaTag():
     
 MissingNullability: android.telephony.TelephonyManager#getRadioHalVersion():
@@ -1451,6 +1523,316 @@
     
 MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String, String, String) parameter #8:
     
+MissingNullability: android.telephony.ims.ImsCallForwardInfo#getNumber():
+    Missing nullability on method `getNumber` return
+MissingNullability: android.telephony.ims.ImsCallForwardInfo#writeToParcel(android.os.Parcel, int) parameter #0:
+    Missing nullability on parameter `out` in method `writeToParcel`
+MissingNullability: android.telephony.ims.ImsCallProfile#ImsCallProfile(int, int, android.os.Bundle, android.telephony.ims.ImsStreamMediaProfile) parameter #2:
+    Missing nullability on parameter `callExtras` in method `ImsCallProfile`
+MissingNullability: android.telephony.ims.ImsCallProfile#ImsCallProfile(int, int, android.os.Bundle, android.telephony.ims.ImsStreamMediaProfile) parameter #3:
+    Missing nullability on parameter `mediaProfile` in method `ImsCallProfile`
+MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtra(String):
+    Missing nullability on method `getCallExtra` return
+MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtra(String) parameter #0:
+    Missing nullability on parameter `name` in method `getCallExtra`
+MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtra(String, String):
+    Missing nullability on method `getCallExtra` return
+MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtra(String, String) parameter #0:
+    Missing nullability on parameter `name` in method `getCallExtra`
+MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtra(String, String) parameter #1:
+    Missing nullability on parameter `defaultValue` in method `getCallExtra`
+MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtraBoolean(String) parameter #0:
+    Missing nullability on parameter `name` in method `getCallExtraBoolean`
+MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtraBoolean(String, boolean) parameter #0:
+    Missing nullability on parameter `name` in method `getCallExtraBoolean`
+MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtraInt(String) parameter #0:
+    Missing nullability on parameter `name` in method `getCallExtraInt`
+MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtraInt(String, int) parameter #0:
+    Missing nullability on parameter `name` in method `getCallExtraInt`
+MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtras():
+    Missing nullability on method `getCallExtras` return
+MissingNullability: android.telephony.ims.ImsCallProfile#getMediaProfile():
+    Missing nullability on method `getMediaProfile` return
+MissingNullability: android.telephony.ims.ImsCallProfile#getVideoStateFromImsCallProfile(android.telephony.ims.ImsCallProfile) parameter #0:
+    Missing nullability on parameter `callProfile` in method `getVideoStateFromImsCallProfile`
+MissingNullability: android.telephony.ims.ImsCallProfile#setCallExtra(String, String) parameter #0:
+    Missing nullability on parameter `name` in method `setCallExtra`
+MissingNullability: android.telephony.ims.ImsCallProfile#setCallExtra(String, String) parameter #1:
+    Missing nullability on parameter `value` in method `setCallExtra`
+MissingNullability: android.telephony.ims.ImsCallProfile#setCallExtraBoolean(String, boolean) parameter #0:
+    Missing nullability on parameter `name` in method `setCallExtraBoolean`
+MissingNullability: android.telephony.ims.ImsCallProfile#setCallExtraInt(String, int) parameter #0:
+    Missing nullability on parameter `name` in method `setCallExtraInt`
+MissingNullability: android.telephony.ims.ImsCallProfile#updateCallExtras(android.telephony.ims.ImsCallProfile) parameter #0:
+    Missing nullability on parameter `profile` in method `updateCallExtras`
+MissingNullability: android.telephony.ims.ImsCallProfile#updateCallType(android.telephony.ims.ImsCallProfile) parameter #0:
+    Missing nullability on parameter `profile` in method `updateCallType`
+MissingNullability: android.telephony.ims.ImsCallProfile#updateMediaProfile(android.telephony.ims.ImsCallProfile) parameter #0:
+    Missing nullability on parameter `profile` in method `updateMediaProfile`
+MissingNullability: android.telephony.ims.ImsCallProfile#writeToParcel(android.os.Parcel, int) parameter #0:
+    Missing nullability on parameter `out` in method `writeToParcel`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionConferenceExtendFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
+    Missing nullability on parameter `reasonInfo` in method `callSessionConferenceExtendFailed`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionConferenceExtendReceived(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile) parameter #0:
+    Missing nullability on parameter `newSession` in method `callSessionConferenceExtendReceived`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionConferenceExtendReceived(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile) parameter #1:
+    Missing nullability on parameter `profile` in method `callSessionConferenceExtendReceived`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionConferenceExtended(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile) parameter #0:
+    Missing nullability on parameter `newSession` in method `callSessionConferenceExtended`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionConferenceExtended(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile) parameter #1:
+    Missing nullability on parameter `profile` in method `callSessionConferenceExtended`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionConferenceStateUpdated(android.telephony.ims.ImsConferenceState) parameter #0:
+    Missing nullability on parameter `state` in method `callSessionConferenceStateUpdated`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionHandover(int, int, android.telephony.ims.ImsReasonInfo) parameter #2:
+    Missing nullability on parameter `reasonInfo` in method `callSessionHandover`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionHandoverFailed(int, int, android.telephony.ims.ImsReasonInfo) parameter #2:
+    Missing nullability on parameter `reasonInfo` in method `callSessionHandoverFailed`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionHeld(android.telephony.ims.ImsCallProfile) parameter #0:
+    Missing nullability on parameter `profile` in method `callSessionHeld`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionHoldFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
+    Missing nullability on parameter `reasonInfo` in method `callSessionHoldFailed`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionHoldReceived(android.telephony.ims.ImsCallProfile) parameter #0:
+    Missing nullability on parameter `profile` in method `callSessionHoldReceived`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionInitiated(android.telephony.ims.ImsCallProfile) parameter #0:
+    Missing nullability on parameter `profile` in method `callSessionInitiated`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionInitiatedFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
+    Missing nullability on parameter `reasonInfo` in method `callSessionInitiatedFailed`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionInviteParticipantsRequestFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
+    Missing nullability on parameter `reasonInfo` in method `callSessionInviteParticipantsRequestFailed`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionMergeComplete(android.telephony.ims.stub.ImsCallSessionImplBase) parameter #0:
+    Missing nullability on parameter `newSession` in method `callSessionMergeComplete`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionMergeFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
+    Missing nullability on parameter `reasonInfo` in method `callSessionMergeFailed`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionMergeStarted(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile) parameter #0:
+    Missing nullability on parameter `newSession` in method `callSessionMergeStarted`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionMergeStarted(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile) parameter #1:
+    Missing nullability on parameter `profile` in method `callSessionMergeStarted`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionProgressing(android.telephony.ims.ImsStreamMediaProfile) parameter #0:
+    Missing nullability on parameter `profile` in method `callSessionProgressing`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionRemoveParticipantsRequestFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
+    Missing nullability on parameter `reasonInfo` in method `callSessionRemoveParticipantsRequestFailed`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionResumeFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
+    Missing nullability on parameter `reasonInfo` in method `callSessionResumeFailed`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionResumeReceived(android.telephony.ims.ImsCallProfile) parameter #0:
+    Missing nullability on parameter `profile` in method `callSessionResumeReceived`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionResumed(android.telephony.ims.ImsCallProfile) parameter #0:
+    Missing nullability on parameter `profile` in method `callSessionResumed`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionRttMessageReceived(String) parameter #0:
+    Missing nullability on parameter `rttMessage` in method `callSessionRttMessageReceived`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionRttModifyRequestReceived(android.telephony.ims.ImsCallProfile) parameter #0:
+    Missing nullability on parameter `callProfile` in method `callSessionRttModifyRequestReceived`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionSuppServiceReceived(android.telephony.ims.ImsSuppServiceNotification) parameter #0:
+    Missing nullability on parameter `suppSrvNotification` in method `callSessionSuppServiceReceived`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionTerminated(android.telephony.ims.ImsReasonInfo) parameter #0:
+    Missing nullability on parameter `reasonInfo` in method `callSessionTerminated`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionUpdateFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
+    Missing nullability on parameter `reasonInfo` in method `callSessionUpdateFailed`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionUpdateReceived(android.telephony.ims.ImsCallProfile) parameter #0:
+    Missing nullability on parameter `profile` in method `callSessionUpdateReceived`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionUpdated(android.telephony.ims.ImsCallProfile) parameter #0:
+    Missing nullability on parameter `profile` in method `callSessionUpdated`
+MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionUssdMessageReceived(int, String) parameter #1:
+    Missing nullability on parameter `ussdMessage` in method `callSessionUssdMessageReceived`
+MissingNullability: android.telephony.ims.ImsConferenceState#getConnectionStateForStatus(String) parameter #0:
+    Missing nullability on parameter `status` in method `getConnectionStateForStatus`
+MissingNullability: android.telephony.ims.ImsConferenceState#mParticipants:
+    Missing nullability on field `mParticipants` in class `class android.telephony.ims.ImsConferenceState`
+MissingNullability: android.telephony.ims.ImsConferenceState#writeToParcel(android.os.Parcel, int) parameter #0:
+    Missing nullability on parameter `out` in method `writeToParcel`
+MissingNullability: android.telephony.ims.ImsExternalCallState#writeToParcel(android.os.Parcel, int) parameter #0:
+    Missing nullability on parameter `out` in method `writeToParcel`
+MissingNullability: android.telephony.ims.ImsReasonInfo#ImsReasonInfo(int, int, String) parameter #2:
+    Missing nullability on parameter `extraMessage` in method `ImsReasonInfo`
+MissingNullability: android.telephony.ims.ImsReasonInfo#getExtraMessage():
+    Missing nullability on method `getExtraMessage` return
+MissingNullability: android.telephony.ims.ImsReasonInfo#writeToParcel(android.os.Parcel, int) parameter #0:
+    Missing nullability on parameter `out` in method `writeToParcel`
+MissingNullability: android.telephony.ims.ImsService#createMmTelFeature(int):
+    Missing nullability on method `createMmTelFeature` return
+MissingNullability: android.telephony.ims.ImsService#createRcsFeature(int):
+    Missing nullability on method `createRcsFeature` return
+MissingNullability: android.telephony.ims.ImsService#getConfig(int):
+    Missing nullability on method `getConfig` return
+MissingNullability: android.telephony.ims.ImsService#getRegistration(int):
+    Missing nullability on method `getRegistration` return
+MissingNullability: android.telephony.ims.ImsService#onUpdateSupportedImsFeatures(android.telephony.ims.stub.ImsFeatureConfiguration) parameter #0:
+    Missing nullability on parameter `c` in method `onUpdateSupportedImsFeatures`
+MissingNullability: android.telephony.ims.ImsService#querySupportedImsFeatures():
+    Missing nullability on method `querySupportedImsFeatures` return
+MissingNullability: android.telephony.ims.ImsSsData#writeToParcel(android.os.Parcel, int) parameter #0:
+    Missing nullability on parameter `out` in method `writeToParcel`
+MissingNullability: android.telephony.ims.ImsSsInfo#writeToParcel(android.os.Parcel, int) parameter #0:
+    Missing nullability on parameter `out` in method `writeToParcel`
+MissingNullability: android.telephony.ims.ImsStreamMediaProfile#copyFrom(android.telephony.ims.ImsStreamMediaProfile) parameter #0:
+    Missing nullability on parameter `profile` in method `copyFrom`
+MissingNullability: android.telephony.ims.ImsStreamMediaProfile#writeToParcel(android.os.Parcel, int) parameter #0:
+    Missing nullability on parameter `out` in method `writeToParcel`
+MissingNullability: android.telephony.ims.ImsSuppServiceNotification#ImsSuppServiceNotification(int, int, int, int, String, String[]) parameter #4:
+    Missing nullability on parameter `number` in method `ImsSuppServiceNotification`
+MissingNullability: android.telephony.ims.ImsSuppServiceNotification#ImsSuppServiceNotification(int, int, int, int, String, String[]) parameter #5:
+    Missing nullability on parameter `history` in method `ImsSuppServiceNotification`
+MissingNullability: android.telephony.ims.ImsSuppServiceNotification#history:
+    Missing nullability on field `history` in class `class android.telephony.ims.ImsSuppServiceNotification`
+MissingNullability: android.telephony.ims.ImsSuppServiceNotification#number:
+    Missing nullability on field `number` in class `class android.telephony.ims.ImsSuppServiceNotification`
+MissingNullability: android.telephony.ims.ImsSuppServiceNotification#writeToParcel(android.os.Parcel, int) parameter #0:
+    Missing nullability on parameter `out` in method `writeToParcel`
+MissingNullability: android.telephony.ims.ImsUtListener#onSupplementaryServiceIndication(android.telephony.ims.ImsSsData) parameter #0:
+    Missing nullability on parameter `ssData` in method `onSupplementaryServiceIndication`
+MissingNullability: android.telephony.ims.ImsUtListener#onUtConfigurationCallBarringQueried(int, android.telephony.ims.ImsSsInfo[]) parameter #1:
+    Missing nullability on parameter `cbInfo` in method `onUtConfigurationCallBarringQueried`
+MissingNullability: android.telephony.ims.ImsUtListener#onUtConfigurationCallForwardQueried(int, android.telephony.ims.ImsCallForwardInfo[]) parameter #1:
+    Missing nullability on parameter `cfInfo` in method `onUtConfigurationCallForwardQueried`
+MissingNullability: android.telephony.ims.ImsUtListener#onUtConfigurationCallWaitingQueried(int, android.telephony.ims.ImsSsInfo[]) parameter #1:
+    Missing nullability on parameter `cwInfo` in method `onUtConfigurationCallWaitingQueried`
+MissingNullability: android.telephony.ims.ImsUtListener#onUtConfigurationQueried(int, android.os.Bundle) parameter #1:
+    Missing nullability on parameter `configuration` in method `onUtConfigurationQueried`
+MissingNullability: android.telephony.ims.ImsUtListener#onUtConfigurationQueryFailed(int, android.telephony.ims.ImsReasonInfo) parameter #1:
+    Missing nullability on parameter `error` in method `onUtConfigurationQueryFailed`
+MissingNullability: android.telephony.ims.ImsUtListener#onUtConfigurationUpdateFailed(int, android.telephony.ims.ImsReasonInfo) parameter #1:
+    Missing nullability on parameter `error` in method `onUtConfigurationUpdateFailed`
+MissingNullability: android.telephony.ims.ImsVideoCallProvider#changeCameraCapabilities(android.telecom.VideoProfile.CameraCapabilities) parameter #0:
+    Missing nullability on parameter `CameraCapabilities` in method `changeCameraCapabilities`
+MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSendSessionModifyRequest(android.telecom.VideoProfile, android.telecom.VideoProfile) parameter #0:
+    Missing nullability on parameter `fromProfile` in method `onSendSessionModifyRequest`
+MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSendSessionModifyRequest(android.telecom.VideoProfile, android.telecom.VideoProfile) parameter #1:
+    Missing nullability on parameter `toProfile` in method `onSendSessionModifyRequest`
+MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSendSessionModifyResponse(android.telecom.VideoProfile) parameter #0:
+    Missing nullability on parameter `responseProfile` in method `onSendSessionModifyResponse`
+MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSetCamera(String) parameter #0:
+    Missing nullability on parameter `cameraId` in method `onSetCamera`
+MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSetCamera(String, int) parameter #0:
+    Missing nullability on parameter `cameraId` in method `onSetCamera`
+MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSetDisplaySurface(android.view.Surface) parameter #0:
+    Missing nullability on parameter `surface` in method `onSetDisplaySurface`
+MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSetPauseImage(android.net.Uri) parameter #0:
+    Missing nullability on parameter `uri` in method `onSetPauseImage`
+MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSetPreviewSurface(android.view.Surface) parameter #0:
+    Missing nullability on parameter `surface` in method `onSetPreviewSurface`
+MissingNullability: android.telephony.ims.ImsVideoCallProvider#receiveSessionModifyRequest(android.telecom.VideoProfile) parameter #0:
+    Missing nullability on parameter `VideoProfile` in method `receiveSessionModifyRequest`
+MissingNullability: android.telephony.ims.ImsVideoCallProvider#receiveSessionModifyResponse(int, android.telecom.VideoProfile, android.telecom.VideoProfile) parameter #1:
+    Missing nullability on parameter `requestedProfile` in method `receiveSessionModifyResponse`
+MissingNullability: android.telephony.ims.ImsVideoCallProvider#receiveSessionModifyResponse(int, android.telecom.VideoProfile, android.telecom.VideoProfile) parameter #2:
+    Missing nullability on parameter `responseProfile` in method `receiveSessionModifyResponse`
+MissingNullability: android.telephony.ims.feature.CapabilityChangeRequest#getCapabilitiesToDisable():
+    Missing nullability on method `getCapabilitiesToDisable` return
+MissingNullability: android.telephony.ims.feature.CapabilityChangeRequest#getCapabilitiesToEnable():
+    Missing nullability on method `getCapabilitiesToEnable` return
+MissingNullability: android.telephony.ims.feature.CapabilityChangeRequest#writeToParcel(android.os.Parcel, int) parameter #0:
+    Missing nullability on parameter `dest` in method `writeToParcel`
+MissingNullability: android.telephony.ims.feature.ImsFeature#changeEnabledCapabilities(android.telephony.ims.feature.CapabilityChangeRequest, android.telephony.ims.feature.ImsFeature.CapabilityCallbackProxy) parameter #0:
+    Missing nullability on parameter `request` in method `changeEnabledCapabilities`
+MissingNullability: android.telephony.ims.feature.ImsFeature#changeEnabledCapabilities(android.telephony.ims.feature.CapabilityChangeRequest, android.telephony.ims.feature.ImsFeature.CapabilityCallbackProxy) parameter #1:
+    Missing nullability on parameter `c` in method `changeEnabledCapabilities`
+MissingNullability: android.telephony.ims.feature.MmTelFeature#queryCapabilityStatus():
+    Missing nullability on method `queryCapabilityStatus` return
+MissingNullability: android.telephony.ims.feature.MmTelFeature.MmTelCapabilities#MmTelCapabilities(android.telephony.ims.feature.ImsFeature.Capabilities) parameter #0:
+    Missing nullability on parameter `c` in method `MmTelCapabilities`
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#accept(int, android.telephony.ims.ImsStreamMediaProfile) parameter #1:
+    Missing nullability on parameter `profile` in method `accept`
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#deflect(String) parameter #0:
+    Missing nullability on parameter `deflectNumber` in method `deflect`
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#extendToConference(String[]) parameter #0:
+    Missing nullability on parameter `participants` in method `extendToConference`
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#getCallId():
+    Missing nullability on method `getCallId` return
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#getCallProfile():
+    Missing nullability on method `getCallProfile` return
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#getImsVideoCallProvider():
+    Missing nullability on method `getImsVideoCallProvider` return
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#getLocalCallProfile():
+    Missing nullability on method `getLocalCallProfile` return
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#getProperty(String):
+    Missing nullability on method `getProperty` return
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#getProperty(String) parameter #0:
+    Missing nullability on parameter `name` in method `getProperty`
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#getRemoteCallProfile():
+    Missing nullability on method `getRemoteCallProfile` return
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#hold(android.telephony.ims.ImsStreamMediaProfile) parameter #0:
+    Missing nullability on parameter `profile` in method `hold`
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#inviteParticipants(String[]) parameter #0:
+    Missing nullability on parameter `participants` in method `inviteParticipants`
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#removeParticipants(String[]) parameter #0:
+    Missing nullability on parameter `participants` in method `removeParticipants`
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#resume(android.telephony.ims.ImsStreamMediaProfile) parameter #0:
+    Missing nullability on parameter `profile` in method `resume`
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#sendDtmf(char, android.os.Message) parameter #1:
+    Missing nullability on parameter `result` in method `sendDtmf`
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#sendRttMessage(String) parameter #0:
+    Missing nullability on parameter `rttMessage` in method `sendRttMessage`
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#sendRttModifyRequest(android.telephony.ims.ImsCallProfile) parameter #0:
+    Missing nullability on parameter `toProfile` in method `sendRttModifyRequest`
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#sendUssd(String) parameter #0:
+    Missing nullability on parameter `ussdMessage` in method `sendUssd`
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#setListener(android.telephony.ims.ImsCallSessionListener) parameter #0:
+    Missing nullability on parameter `listener` in method `setListener`
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#start(String, android.telephony.ims.ImsCallProfile) parameter #0:
+    Missing nullability on parameter `callee` in method `start`
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#start(String, android.telephony.ims.ImsCallProfile) parameter #1:
+    Missing nullability on parameter `profile` in method `start`
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#startConference(String[], android.telephony.ims.ImsCallProfile) parameter #0:
+    Missing nullability on parameter `participants` in method `startConference`
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#startConference(String[], android.telephony.ims.ImsCallProfile) parameter #1:
+    Missing nullability on parameter `profile` in method `startConference`
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#update(int, android.telephony.ims.ImsStreamMediaProfile) parameter #1:
+    Missing nullability on parameter `profile` in method `update`
+MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase.State#toString(int):
+    Missing nullability on method `toString` return
+MissingNullability: android.telephony.ims.stub.ImsConfigImplBase#getConfigString(int):
+    Missing nullability on method `getConfigString` return
+MissingNullability: android.telephony.ims.stub.ImsConfigImplBase#notifyProvisionedValueChanged(int, String) parameter #1:
+    Missing nullability on parameter `value` in method `notifyProvisionedValueChanged`
+MissingNullability: android.telephony.ims.stub.ImsConfigImplBase#setConfig(int, String) parameter #1:
+    Missing nullability on parameter `value` in method `setConfig`
+MissingNullability: android.telephony.ims.stub.ImsFeatureConfiguration#getServiceFeatures():
+    Missing nullability on method `getServiceFeatures` return
+MissingNullability: android.telephony.ims.stub.ImsFeatureConfiguration#writeToParcel(android.os.Parcel, int) parameter #0:
+    Missing nullability on parameter `dest` in method `writeToParcel`
+MissingNullability: android.telephony.ims.stub.ImsFeatureConfiguration.Builder#addFeature(int, int):
+    Missing nullability on method `addFeature` return
+MissingNullability: android.telephony.ims.stub.ImsFeatureConfiguration.Builder#build():
+    Missing nullability on method `build` return
+MissingNullability: android.telephony.ims.stub.ImsMultiEndpointImplBase#onImsExternalCallStateUpdate(java.util.List<android.telephony.ims.ImsExternalCallState>) parameter #0:
+    Missing nullability on parameter `externalCallDialogs` in method `onImsExternalCallStateUpdate`
+MissingNullability: android.telephony.ims.stub.ImsRegistrationImplBase#onDeregistered(android.telephony.ims.ImsReasonInfo) parameter #0:
+    Missing nullability on parameter `info` in method `onDeregistered`
+MissingNullability: android.telephony.ims.stub.ImsRegistrationImplBase#onSubscriberAssociatedUriChanged(android.net.Uri[]) parameter #0:
+    Missing nullability on parameter `uris` in method `onSubscriberAssociatedUriChanged`
+MissingNullability: android.telephony.ims.stub.ImsRegistrationImplBase#onTechnologyChangeFailed(int, android.telephony.ims.ImsReasonInfo) parameter #1:
+    Missing nullability on parameter `info` in method `onTechnologyChangeFailed`
+MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#getSmsFormat():
+    Missing nullability on method `getSmsFormat` return
+MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#onSmsReceived(int, String, byte[]) parameter #1:
+    Missing nullability on parameter `format` in method `onSmsReceived`
+MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#onSmsReceived(int, String, byte[]) parameter #2:
+    Missing nullability on parameter `pdu` in method `onSmsReceived`
+MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#onSmsStatusReportReceived(int, String, byte[]) parameter #1:
+    Missing nullability on parameter `format` in method `onSmsStatusReportReceived`
+MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#onSmsStatusReportReceived(int, String, byte[]) parameter #2:
+    Missing nullability on parameter `pdu` in method `onSmsStatusReportReceived`
+MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#onSmsStatusReportReceived(int, int, String, byte[]) parameter #2:
+    Missing nullability on parameter `format` in method `onSmsStatusReportReceived`
+MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#onSmsStatusReportReceived(int, int, String, byte[]) parameter #3:
+    Missing nullability on parameter `pdu` in method `onSmsStatusReportReceived`
+MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#sendSms(int, int, String, String, boolean, byte[]) parameter #2:
+    Missing nullability on parameter `format` in method `sendSms`
+MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#sendSms(int, int, String, String, boolean, byte[]) parameter #3:
+    Missing nullability on parameter `smsc` in method `sendSms`
+MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#sendSms(int, int, String, String, boolean, byte[]) parameter #5:
+    Missing nullability on parameter `pdu` in method `sendSms`
+MissingNullability: android.telephony.ims.stub.ImsUtImplBase#queryCallForward(int, String) parameter #1:
+    Missing nullability on parameter `number` in method `queryCallForward`
+MissingNullability: android.telephony.ims.stub.ImsUtImplBase#setListener(android.telephony.ims.ImsUtListener) parameter #0:
+    Missing nullability on parameter `listener` in method `setListener`
+MissingNullability: android.telephony.ims.stub.ImsUtImplBase#transact(android.os.Bundle) parameter #0:
+    Missing nullability on parameter `ssInfo` in method `transact`
+MissingNullability: android.telephony.ims.stub.ImsUtImplBase#updateCallBarring(int, int, String[]) parameter #2:
+    Missing nullability on parameter `barrList` in method `updateCallBarring`
+MissingNullability: android.telephony.ims.stub.ImsUtImplBase#updateCallBarringForServiceClass(int, int, String[], int) parameter #2:
+    Missing nullability on parameter `barrList` in method `updateCallBarringForServiceClass`
+MissingNullability: android.telephony.ims.stub.ImsUtImplBase#updateCallForward(int, int, String, int, int) parameter #2:
+    Missing nullability on parameter `number` in method `updateCallForward`
 MissingNullability: android.telephony.mbms.DownloadRequest.Builder#setServiceId(String):
     
 MissingNullability: android.telephony.mbms.DownloadRequest.Builder#setServiceId(String) parameter #0:
@@ -1915,6 +2297,8 @@
     
 NotCloseable: android.os.HwParcel:
     
+NotCloseable: android.telephony.ims.stub.ImsUtImplBase:
+    Classes that release resources (close()) should implement AutoClosable and CloseGuard: class android.telephony.ims.stub.ImsUtImplBase
 
 
 OnNameExpected: android.service.autofill.augmented.AugmentedAutofillService#dump(java.io.PrintWriter, String[]):
@@ -1927,6 +2311,22 @@
     
 OnNameExpected: android.service.quicksettings.TileService#isQuickSettingsSupported():
     
+OnNameExpected: android.telephony.ims.ImsService#createMmTelFeature(int):
+    If implemented by developer, should follow the on<Something> style; otherwise consider marking final
+OnNameExpected: android.telephony.ims.ImsService#createRcsFeature(int):
+    If implemented by developer, should follow the on<Something> style; otherwise consider marking final
+OnNameExpected: android.telephony.ims.ImsService#disableIms(int):
+    If implemented by developer, should follow the on<Something> style; otherwise consider marking final
+OnNameExpected: android.telephony.ims.ImsService#enableIms(int):
+    If implemented by developer, should follow the on<Something> style; otherwise consider marking final
+OnNameExpected: android.telephony.ims.ImsService#getConfig(int):
+    If implemented by developer, should follow the on<Something> style; otherwise consider marking final
+OnNameExpected: android.telephony.ims.ImsService#getRegistration(int):
+    If implemented by developer, should follow the on<Something> style; otherwise consider marking final
+OnNameExpected: android.telephony.ims.ImsService#querySupportedImsFeatures():
+    If implemented by developer, should follow the on<Something> style; otherwise consider marking final
+OnNameExpected: android.telephony.ims.ImsService#readyForFeatureCreation():
+    If implemented by developer, should follow the on<Something> style; otherwise consider marking final
 OnNameExpected: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#dispose(int):
     
 OnNameExpected: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#initialize(android.telephony.mbms.MbmsGroupCallSessionCallback, int):
@@ -2065,6 +2465,8 @@
     
 RethrowRemoteException: android.os.IHwBinder#transact(int, android.os.HwParcel, android.os.HwParcel, int):
     
+RethrowRemoteException: android.telephony.ims.ImsService#onUpdateSupportedImsFeatures(android.telephony.ims.stub.ImsFeatureConfiguration):
+    Methods calling system APIs should rethrow `RemoteException` as `RuntimeException` (but do not list it in the throws clause)
 RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#addProgressListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadProgressListener):
     
 RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#addStatusListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadStatusListener):
@@ -2143,6 +2545,8 @@
     
 SamShouldBeLast: android.service.autofill.InternalTransformation#batchApply(android.service.autofill.ValueFinder, android.widget.RemoteViews, java.util.ArrayList<android.util.Pair<java.lang.Integer,android.service.autofill.InternalTransformation>>):
     
+SamShouldBeLast: android.telephony.ims.ImsMmTelManager#getFeatureState(java.util.function.Consumer<java.lang.Integer>, java.util.concurrent.Executor):
+    SAM-compatible parameters (such as parameter 1, "callback", in android.telephony.ims.ImsMmTelManager.getFeatureState) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions
 SamShouldBeLast: android.view.Choreographer#postCallback(int, Runnable, Object):
     
 SamShouldBeLast: android.view.Choreographer#postCallbackDelayed(int, Runnable, Object, long):
diff --git a/cmds/am/src/com/android/commands/am/Am.java b/cmds/am/src/com/android/commands/am/Am.java
index 41d546f..22e1d01 100644
--- a/cmds/am/src/com/android/commands/am/Am.java
+++ b/cmds/am/src/com/android/commands/am/Am.java
@@ -174,6 +174,8 @@
                 instrument.noWindowAnimation = true;
             } else if (opt.equals("--no-hidden-api-checks")) {
                 instrument.disableHiddenApiChecks = true;
+            } else if (opt.equals("--no-test-api-checks")) {
+                instrument.disableTestApiChecks = true;
             } else if (opt.equals("--no-isolated-storage")) {
                 instrument.disableIsolatedStorage = true;
             } else if (opt.equals("--user")) {
diff --git a/cmds/am/src/com/android/commands/am/Instrument.java b/cmds/am/src/com/android/commands/am/Instrument.java
index 4d7b5a7..6afd7c4 100644
--- a/cmds/am/src/com/android/commands/am/Instrument.java
+++ b/cmds/am/src/com/android/commands/am/Instrument.java
@@ -17,6 +17,7 @@
 package com.android.commands.am;
 
 import static android.app.ActivityManager.INSTR_FLAG_DISABLE_HIDDEN_API_CHECKS;
+import static android.app.ActivityManager.INSTR_FLAG_DISABLE_TEST_API_CHECKS;
 import static android.app.ActivityManager.INSTR_FLAG_MOUNT_EXTERNAL_STORAGE_FULL;
 
 import android.app.IActivityManager;
@@ -85,6 +86,7 @@
     String logPath = null;
     public boolean noWindowAnimation = false;
     public boolean disableHiddenApiChecks = false;
+    public boolean disableTestApiChecks = false;
     public boolean disableIsolatedStorage = false;
     public String abi = null;
     public int userId = UserHandle.USER_CURRENT;
@@ -506,6 +508,9 @@
             if (disableHiddenApiChecks) {
                 flags |= INSTR_FLAG_DISABLE_HIDDEN_API_CHECKS;
             }
+            if (disableTestApiChecks) {
+                flags |= INSTR_FLAG_DISABLE_TEST_API_CHECKS;
+            }
             if (disableIsolatedStorage) {
                 flags |= INSTR_FLAG_MOUNT_EXTERNAL_STORAGE_FULL;
             }
diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto
index 847c298..8a8df38 100644
--- a/cmds/statsd/src/atoms.proto
+++ b/cmds/statsd/src/atoms.proto
@@ -324,6 +324,8 @@
 
         AppCompatibilityChangeReported app_compatibility_change_reported =
             228 [(allow_from_any_uid) = true];
+        PerfettoUploaded perfetto_uploaded =
+            229 [(log_from_module) = "perfetto"];
     }
 
     // Pulled events will start at field 10000.
@@ -6857,3 +6859,37 @@
     optional Source source = 4;
 
 }
+
+/**
+ * Logged from
+ *     external/perfetto/src/perfetto_cmd/perfetto_cmd.cc
+ */
+message PerfettoUploaded {
+    enum Event {
+        PERFETTO_UNDEFINED = 0;
+        PERFETTO_TRACE_BEGIN = 1;
+        PERFETTO_BACKGROUND_TRACE_BEGIN = 2;
+        PERFETTO_ON_CONNECT = 3;
+        PERFETTO_ON_TRACING_DISABLED = 4;
+        PERFETTO_UPLOAD_DROPBOX_BEGIN = 5;
+        PERFETTO_UPLOAD_DROPBOX_SUCCESS = 6;
+        PERFETTO_UPLOAD_DROPBOX_FAILURE = 7;
+        PERFETTO_UPLOAD_INCIDENT_BEGIN = 8;
+        PERFETTO_UPLOAD_INCIDENT_SUCCESS = 9;
+        PERFETTO_UPLOAD_INCIDENT_FAILURE = 10;
+        PERFETTO_FINALIZE_TRACE_AND_EXIT = 11;
+        PERFETTO_TRIGGER_BEGIN = 12;
+        PERFETTO_TRIGGER_SUCCESS = 13;
+        PERFETTO_TRIGGER_FAILURE = 14;
+        PERFETTO_HIT_GUARDRAILS = 15;
+        PERFETTO_ON_TIMEOUT = 16;
+        PERFETTO_NOT_UPLOADING_EMPTY_TRACE = 17;
+    }
+
+    // Which stage of the pipeline we are reporting from.
+    optional Event event = 1;
+
+    // UUID matching the one set inside the SystemInfo trace packet.
+    optional int64 trace_uuid_lsb = 2;
+    optional int64 trace_uuid_msb = 3;
+}
diff --git a/config/OWNERS b/config/OWNERS
new file mode 100644
index 0000000..53f80e6
--- /dev/null
+++ b/config/OWNERS
@@ -0,0 +1,5 @@
+# compat-team@ for changes to hiddenapi files
+per-file hiddenapi-* = andreionea@google.com, atrost@google.com, mathewi@google.com, satayev@google.com
+
+# Escalations:
+per-file hiddenapi-* = bdc@google.com, narayan@google.com
\ No newline at end of file
diff --git a/config/hiddenapi-greylist-max-o.txt b/config/hiddenapi-greylist-max-o.txt
index d9c1cd0..2889b7c 100644
--- a/config/hiddenapi-greylist-max-o.txt
+++ b/config/hiddenapi-greylist-max-o.txt
@@ -12,7 +12,6 @@
 Landroid/accessibilityservice/AccessibilityButtonController;->mCallbacks:Landroid/util/ArrayMap;
 Landroid/accessibilityservice/AccessibilityButtonController;->mLock:Ljava/lang/Object;
 Landroid/accessibilityservice/AccessibilityButtonController;->mServiceConnection:Landroid/accessibilityservice/IAccessibilityServiceConnection;
-Landroid/accessibilityservice/AccessibilityService$Callbacks;
 Landroid/accessibilityservice/AccessibilityService$Callbacks;->init(ILandroid/os/IBinder;)V
 Landroid/accessibilityservice/AccessibilityService$Callbacks;->onAccessibilityButtonAvailabilityChanged(Z)V
 Landroid/accessibilityservice/AccessibilityService$Callbacks;->onAccessibilityButtonClicked()V
@@ -26,12 +25,10 @@
 Landroid/accessibilityservice/AccessibilityService$Callbacks;->onPerformGestureResult(IZ)V
 Landroid/accessibilityservice/AccessibilityService$Callbacks;->onServiceConnected()V
 Landroid/accessibilityservice/AccessibilityService$Callbacks;->onSoftKeyboardShowModeChanged(I)V
-Landroid/accessibilityservice/AccessibilityService$GestureResultCallbackInfo;
 Landroid/accessibilityservice/AccessibilityService$GestureResultCallbackInfo;-><init>(Landroid/accessibilityservice/GestureDescription;Landroid/accessibilityservice/AccessibilityService$GestureResultCallback;Landroid/os/Handler;)V
 Landroid/accessibilityservice/AccessibilityService$GestureResultCallbackInfo;->callback:Landroid/accessibilityservice/AccessibilityService$GestureResultCallback;
 Landroid/accessibilityservice/AccessibilityService$GestureResultCallbackInfo;->gestureDescription:Landroid/accessibilityservice/GestureDescription;
 Landroid/accessibilityservice/AccessibilityService$GestureResultCallbackInfo;->handler:Landroid/os/Handler;
-Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;
 Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;-><init>(Landroid/content/Context;Landroid/os/Looper;Landroid/accessibilityservice/AccessibilityService$Callbacks;)V
 Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->clearAccessibilityCache()V
 Landroid/accessibilityservice/AccessibilityService$IAccessibilityServiceClientWrapper;->DO_ACCESSIBILITY_BUTTON_AVAILABILITY_CHANGED:I
@@ -77,7 +74,6 @@
 Landroid/accessibilityservice/AccessibilityService$SoftKeyboardController;->mService:Landroid/accessibilityservice/AccessibilityService;
 Landroid/accessibilityservice/AccessibilityService$SoftKeyboardController;->onServiceConnected()V
 Landroid/accessibilityservice/AccessibilityService$SoftKeyboardController;->setSoftKeyboardCallbackEnabled(Z)V
-Landroid/accessibilityservice/AccessibilityService$SoftKeyboardShowMode;
 Landroid/accessibilityservice/AccessibilityService;->dispatchServiceConnected()V
 Landroid/accessibilityservice/AccessibilityService;->LOG_TAG:Ljava/lang/String;
 Landroid/accessibilityservice/AccessibilityService;->mAccessibilityButtonController:Landroid/accessibilityservice/AccessibilityButtonController;
@@ -97,12 +93,10 @@
 Landroid/accessibilityservice/AccessibilityService;->onPerformGestureResult(IZ)V
 Landroid/accessibilityservice/AccessibilityService;->onSoftKeyboardShowModeChanged(I)V
 Landroid/accessibilityservice/AccessibilityService;->sendServiceInfo()V
-Landroid/accessibilityservice/AccessibilityServiceInfo$CapabilityInfo;
 Landroid/accessibilityservice/AccessibilityServiceInfo$CapabilityInfo;-><init>(III)V
 Landroid/accessibilityservice/AccessibilityServiceInfo$CapabilityInfo;->capability:I
 Landroid/accessibilityservice/AccessibilityServiceInfo$CapabilityInfo;->descResId:I
 Landroid/accessibilityservice/AccessibilityServiceInfo$CapabilityInfo;->titleResId:I
-Landroid/accessibilityservice/AccessibilityServiceInfo$FeedbackType;
 Landroid/accessibilityservice/AccessibilityServiceInfo;-><init>(Landroid/content/pm/ResolveInfo;Landroid/content/Context;)V
 Landroid/accessibilityservice/AccessibilityServiceInfo;->appendCapabilities(Ljava/lang/StringBuilder;I)V
 Landroid/accessibilityservice/AccessibilityServiceInfo;->appendEventTypes(Ljava/lang/StringBuilder;I)V
@@ -138,14 +132,12 @@
 Landroid/accessibilityservice/FingerprintGestureController;->onGesture(I)V
 Landroid/accessibilityservice/FingerprintGestureController;->onGestureDetectionActiveChanged(Z)V
 Landroid/accessibilityservice/GestureDescription$Builder;->mStrokes:Ljava/util/List;
-Landroid/accessibilityservice/GestureDescription$GestureStep;
 Landroid/accessibilityservice/GestureDescription$GestureStep;-><init>(JI[Landroid/accessibilityservice/GestureDescription$TouchPoint;)V
 Landroid/accessibilityservice/GestureDescription$GestureStep;-><init>(Landroid/os/Parcel;)V
 Landroid/accessibilityservice/GestureDescription$GestureStep;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/accessibilityservice/GestureDescription$GestureStep;->numTouchPoints:I
 Landroid/accessibilityservice/GestureDescription$GestureStep;->timeSinceGestureStart:J
 Landroid/accessibilityservice/GestureDescription$GestureStep;->touchPoints:[Landroid/accessibilityservice/GestureDescription$TouchPoint;
-Landroid/accessibilityservice/GestureDescription$MotionEventGenerator;
 Landroid/accessibilityservice/GestureDescription$MotionEventGenerator;-><init>()V
 Landroid/accessibilityservice/GestureDescription$MotionEventGenerator;->getCurrentTouchPoints(I)[Landroid/accessibilityservice/GestureDescription$TouchPoint;
 Landroid/accessibilityservice/GestureDescription$MotionEventGenerator;->getGestureStepsFromGestureDescription(Landroid/accessibilityservice/GestureDescription;I)Ljava/util/List;
@@ -166,7 +158,6 @@
 Landroid/accessibilityservice/GestureDescription$StrokeDescription;->mTapLocation:[F
 Landroid/accessibilityservice/GestureDescription$StrokeDescription;->mTimeToLengthConversion:F
 Landroid/accessibilityservice/GestureDescription$StrokeDescription;->sIdCounter:I
-Landroid/accessibilityservice/GestureDescription$TouchPoint;
 Landroid/accessibilityservice/GestureDescription$TouchPoint;-><init>()V
 Landroid/accessibilityservice/GestureDescription$TouchPoint;-><init>(Landroid/accessibilityservice/GestureDescription$TouchPoint;)V
 Landroid/accessibilityservice/GestureDescription$TouchPoint;-><init>(Landroid/os/Parcel;)V
@@ -189,7 +180,6 @@
 Landroid/accessibilityservice/GestureDescription;->MAX_STROKE_COUNT:I
 Landroid/accessibilityservice/GestureDescription;->mStrokes:Ljava/util/List;
 Landroid/accessibilityservice/GestureDescription;->mTempPos:[F
-Landroid/accessibilityservice/IAccessibilityServiceClient$Stub$Proxy;
 Landroid/accessibilityservice/IAccessibilityServiceClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/accessibilityservice/IAccessibilityServiceClient$Stub$Proxy;->clearAccessibilityCache()V
 Landroid/accessibilityservice/IAccessibilityServiceClient$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -206,7 +196,6 @@
 Landroid/accessibilityservice/IAccessibilityServiceClient$Stub$Proxy;->onMagnificationChanged(Landroid/graphics/Region;FFF)V
 Landroid/accessibilityservice/IAccessibilityServiceClient$Stub$Proxy;->onPerformGestureResult(IZ)V
 Landroid/accessibilityservice/IAccessibilityServiceClient$Stub$Proxy;->onSoftKeyboardShowModeChanged(I)V
-Landroid/accessibilityservice/IAccessibilityServiceClient$Stub;
 Landroid/accessibilityservice/IAccessibilityServiceClient$Stub;-><init>()V
 Landroid/accessibilityservice/IAccessibilityServiceClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/accessibilityservice/IAccessibilityServiceClient;
 Landroid/accessibilityservice/IAccessibilityServiceClient$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -223,7 +212,6 @@
 Landroid/accessibilityservice/IAccessibilityServiceClient$Stub;->TRANSACTION_onMagnificationChanged:I
 Landroid/accessibilityservice/IAccessibilityServiceClient$Stub;->TRANSACTION_onPerformGestureResult:I
 Landroid/accessibilityservice/IAccessibilityServiceClient$Stub;->TRANSACTION_onSoftKeyboardShowModeChanged:I
-Landroid/accessibilityservice/IAccessibilityServiceClient;
 Landroid/accessibilityservice/IAccessibilityServiceClient;->clearAccessibilityCache()V
 Landroid/accessibilityservice/IAccessibilityServiceClient;->init(Landroid/accessibilityservice/IAccessibilityServiceConnection;ILandroid/os/IBinder;)V
 Landroid/accessibilityservice/IAccessibilityServiceClient;->onAccessibilityButtonAvailabilityChanged(Z)V
@@ -237,7 +225,6 @@
 Landroid/accessibilityservice/IAccessibilityServiceClient;->onMagnificationChanged(Landroid/graphics/Region;FFF)V
 Landroid/accessibilityservice/IAccessibilityServiceClient;->onPerformGestureResult(IZ)V
 Landroid/accessibilityservice/IAccessibilityServiceClient;->onSoftKeyboardShowModeChanged(I)V
-Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;
 Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->disableSelf()V
 Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->findAccessibilityNodeInfoByAccessibilityId(IJILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IJLandroid/os/Bundle;)[Ljava/lang/String;
@@ -266,7 +253,6 @@
 Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->setServiceInfo(Landroid/accessibilityservice/AccessibilityServiceInfo;)V
 Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->setSoftKeyboardCallbackEnabled(Z)V
 Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub$Proxy;->setSoftKeyboardShowMode(I)Z
-Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;
 Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_disableSelf:I
 Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_findAccessibilityNodeInfoByAccessibilityId:I
@@ -293,7 +279,6 @@
 Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_setServiceInfo:I
 Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_setSoftKeyboardCallbackEnabled:I
 Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->TRANSACTION_setSoftKeyboardShowMode:I
-Landroid/accessibilityservice/IAccessibilityServiceConnection;
 Landroid/accessibilityservice/IAccessibilityServiceConnection;->disableSelf()V
 Landroid/accessibilityservice/IAccessibilityServiceConnection;->findAccessibilityNodeInfoByAccessibilityId(IJILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IJLandroid/os/Bundle;)[Ljava/lang/String;
 Landroid/accessibilityservice/IAccessibilityServiceConnection;->findAccessibilityNodeInfosByText(IJLjava/lang/String;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;J)[Ljava/lang/String;
@@ -319,8 +304,6 @@
 Landroid/accessibilityservice/IAccessibilityServiceConnection;->setServiceInfo(Landroid/accessibilityservice/AccessibilityServiceInfo;)V
 Landroid/accessibilityservice/IAccessibilityServiceConnection;->setSoftKeyboardCallbackEnabled(Z)V
 Landroid/accessibilityservice/IAccessibilityServiceConnection;->setSoftKeyboardShowMode(I)Z
-Landroid/accounts/AbstractAccountAuthenticator$Transport;
-Landroid/accounts/AbstractAccountAuthenticator$Transport;-><init>()V
 Landroid/accounts/AbstractAccountAuthenticator$Transport;->addAccount(Landroid/accounts/IAccountAuthenticatorResponse;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;)V
 Landroid/accounts/AbstractAccountAuthenticator$Transport;->addAccountFromCredentials(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;Landroid/os/Bundle;)V
 Landroid/accounts/AbstractAccountAuthenticator$Transport;->confirmCredentials(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;Landroid/os/Bundle;)V
@@ -348,42 +331,28 @@
 Landroid/accounts/Account;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/accounts/Account;->getAccessId()Ljava/lang/String;
 Landroid/accounts/Account;->sAccessedAccounts:Ljava/util/Set;
-Landroid/accounts/AccountAndUser;
 Landroid/accounts/AccountAuthenticatorActivity;->mAccountAuthenticatorResponse:Landroid/accounts/AccountAuthenticatorResponse;
 Landroid/accounts/AccountAuthenticatorActivity;->mResultBundle:Landroid/os/Bundle;
 Landroid/accounts/AccountAuthenticatorResponse;->mAccountAuthenticatorResponse:Landroid/accounts/IAccountAuthenticatorResponse;
 Landroid/accounts/AccountAuthenticatorResponse;->TAG:Ljava/lang/String;
-Landroid/accounts/AccountManager$AccountVisibility;
-Landroid/accounts/AccountManager$AmsTask$Response;
-Landroid/accounts/AccountManager$AmsTask$Response;-><init>()V
 Landroid/accounts/AccountManager$AmsTask$Response;->onError(ILjava/lang/String;)V
 Landroid/accounts/AccountManager$AmsTask$Response;->onResult(Landroid/os/Bundle;)V
-Landroid/accounts/AccountManager$AmsTask;
-Landroid/accounts/AccountManager$AmsTask;-><init>(Landroid/app/Activity;Landroid/os/Handler;Landroid/accounts/AccountManagerCallback;)V
 Landroid/accounts/AccountManager$AmsTask;->doWork()V
 Landroid/accounts/AccountManager$AmsTask;->internalGetResult(Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;)Landroid/os/Bundle;
 Landroid/accounts/AccountManager$AmsTask;->mCallback:Landroid/accounts/AccountManagerCallback;
 Landroid/accounts/AccountManager$AmsTask;->set(Landroid/os/Bundle;)V
 Landroid/accounts/AccountManager$AmsTask;->start()Landroid/accounts/AccountManagerFuture;
-Landroid/accounts/AccountManager$BaseFutureTask$Response;
-Landroid/accounts/AccountManager$BaseFutureTask$Response;-><init>()V
 Landroid/accounts/AccountManager$BaseFutureTask$Response;->onError(ILjava/lang/String;)V
 Landroid/accounts/AccountManager$BaseFutureTask$Response;->onResult(Landroid/os/Bundle;)V
-Landroid/accounts/AccountManager$BaseFutureTask;
-Landroid/accounts/AccountManager$BaseFutureTask;-><init>(Landroid/os/Handler;)V
 Landroid/accounts/AccountManager$BaseFutureTask;->bundleToResult(Landroid/os/Bundle;)Ljava/lang/Object;
 Landroid/accounts/AccountManager$BaseFutureTask;->doWork()V
 Landroid/accounts/AccountManager$BaseFutureTask;->mHandler:Landroid/os/Handler;
 Landroid/accounts/AccountManager$BaseFutureTask;->mResponse:Landroid/accounts/IAccountManagerResponse;
 Landroid/accounts/AccountManager$BaseFutureTask;->postRunnableToHandler(Ljava/lang/Runnable;)V
 Landroid/accounts/AccountManager$BaseFutureTask;->startTask()V
-Landroid/accounts/AccountManager$Future2Task;
-Landroid/accounts/AccountManager$Future2Task;-><init>(Landroid/os/Handler;Landroid/accounts/AccountManagerCallback;)V
 Landroid/accounts/AccountManager$Future2Task;->internalGetResult(Ljava/lang/Long;Ljava/util/concurrent/TimeUnit;)Ljava/lang/Object;
 Landroid/accounts/AccountManager$Future2Task;->mCallback:Landroid/accounts/AccountManagerCallback;
 Landroid/accounts/AccountManager$Future2Task;->start()Landroid/accounts/AccountManager$Future2Task;
-Landroid/accounts/AccountManager$GetAuthTokenByTypeAndFeaturesTask;
-Landroid/accounts/AccountManager$GetAuthTokenByTypeAndFeaturesTask;-><init>(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/app/Activity;Landroid/os/Bundle;Landroid/os/Bundle;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)V
 Landroid/accounts/AccountManager$GetAuthTokenByTypeAndFeaturesTask;->doWork()V
 Landroid/accounts/AccountManager$GetAuthTokenByTypeAndFeaturesTask;->mAccountType:Ljava/lang/String;
 Landroid/accounts/AccountManager$GetAuthTokenByTypeAndFeaturesTask;->mAddAccountOptions:Landroid/os/Bundle;
@@ -424,39 +393,31 @@
 Landroid/accounts/AccountManager;->someUserHasAccount(Landroid/accounts/Account;)Z
 Landroid/accounts/AccountManager;->TAG:Ljava/lang/String;
 Landroid/accounts/AccountManager;->updateAppPermission(Landroid/accounts/Account;Ljava/lang/String;IZ)V
-Landroid/accounts/AccountManagerInternal$OnAppPermissionChangeListener;
 Landroid/accounts/AccountManagerInternal$OnAppPermissionChangeListener;->onAppPermissionChanged(Landroid/accounts/Account;I)V
-Landroid/accounts/AccountManagerInternal;
 Landroid/accounts/AccountManagerInternal;-><init>()V
 Landroid/accounts/AccountManagerInternal;->addOnAppPermissionChangeListener(Landroid/accounts/AccountManagerInternal$OnAppPermissionChangeListener;)V
 Landroid/accounts/AccountManagerInternal;->backupAccountAccessPermissions(I)[B
 Landroid/accounts/AccountManagerInternal;->hasAccountAccess(Landroid/accounts/Account;I)Z
 Landroid/accounts/AccountManagerInternal;->requestAccountAccess(Landroid/accounts/Account;Ljava/lang/String;ILandroid/os/RemoteCallback;)V
 Landroid/accounts/AccountManagerInternal;->restoreAccountAccessPermissions([BI)V
-Landroid/accounts/AccountManagerResponse;
 Landroid/accounts/AccountManagerResponse;-><init>(Landroid/accounts/IAccountManagerResponse;)V
 Landroid/accounts/AccountManagerResponse;-><init>(Landroid/os/Parcel;)V
 Landroid/accounts/AccountManagerResponse;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/accounts/AccountManagerResponse;->mResponse:Landroid/accounts/IAccountManagerResponse;
 Landroid/accounts/AccountManagerResponse;->onError(ILjava/lang/String;)V
 Landroid/accounts/AccountManagerResponse;->onResult(Landroid/os/Bundle;)V
-Landroid/accounts/CantAddAccountActivity;
 Landroid/accounts/CantAddAccountActivity;-><init>()V
 Landroid/accounts/CantAddAccountActivity;->EXTRA_ERROR_CODE:Ljava/lang/String;
 Landroid/accounts/CantAddAccountActivity;->onCancelButtonClicked(Landroid/view/View;)V
-Landroid/accounts/ChooseAccountActivity$AccountArrayAdapter;
 Landroid/accounts/ChooseAccountActivity$AccountArrayAdapter;-><init>(Landroid/content/Context;I[Landroid/accounts/ChooseAccountActivity$AccountInfo;)V
 Landroid/accounts/ChooseAccountActivity$AccountArrayAdapter;->mInfos:[Landroid/accounts/ChooseAccountActivity$AccountInfo;
 Landroid/accounts/ChooseAccountActivity$AccountArrayAdapter;->mLayoutInflater:Landroid/view/LayoutInflater;
-Landroid/accounts/ChooseAccountActivity$AccountInfo;
 Landroid/accounts/ChooseAccountActivity$AccountInfo;-><init>(Ljava/lang/String;Landroid/graphics/drawable/Drawable;)V
 Landroid/accounts/ChooseAccountActivity$AccountInfo;->drawable:Landroid/graphics/drawable/Drawable;
 Landroid/accounts/ChooseAccountActivity$AccountInfo;->name:Ljava/lang/String;
-Landroid/accounts/ChooseAccountActivity$ViewHolder;
 Landroid/accounts/ChooseAccountActivity$ViewHolder;-><init>()V
 Landroid/accounts/ChooseAccountActivity$ViewHolder;->icon:Landroid/widget/ImageView;
 Landroid/accounts/ChooseAccountActivity$ViewHolder;->text:Landroid/widget/TextView;
-Landroid/accounts/ChooseAccountActivity;
 Landroid/accounts/ChooseAccountActivity;-><init>()V
 Landroid/accounts/ChooseAccountActivity;->getAuthDescriptions()V
 Landroid/accounts/ChooseAccountActivity;->getDrawableForType(Ljava/lang/String;)Landroid/graphics/drawable/Drawable;
@@ -468,27 +429,22 @@
 Landroid/accounts/ChooseAccountActivity;->mTypeToAuthDescription:Ljava/util/HashMap;
 Landroid/accounts/ChooseAccountActivity;->onListItemClick(Landroid/widget/ListView;Landroid/view/View;IJ)V
 Landroid/accounts/ChooseAccountActivity;->TAG:Ljava/lang/String;
-Landroid/accounts/ChooseAccountTypeActivity$AccountArrayAdapter;
 Landroid/accounts/ChooseAccountTypeActivity$AccountArrayAdapter;-><init>(Landroid/content/Context;ILjava/util/ArrayList;)V
 Landroid/accounts/ChooseAccountTypeActivity$AccountArrayAdapter;->mInfos:Ljava/util/ArrayList;
 Landroid/accounts/ChooseAccountTypeActivity$AccountArrayAdapter;->mLayoutInflater:Landroid/view/LayoutInflater;
-Landroid/accounts/ChooseAccountTypeActivity$AuthInfo;
 Landroid/accounts/ChooseAccountTypeActivity$AuthInfo;-><init>(Landroid/accounts/AuthenticatorDescription;Ljava/lang/String;Landroid/graphics/drawable/Drawable;)V
 Landroid/accounts/ChooseAccountTypeActivity$AuthInfo;->desc:Landroid/accounts/AuthenticatorDescription;
 Landroid/accounts/ChooseAccountTypeActivity$AuthInfo;->drawable:Landroid/graphics/drawable/Drawable;
 Landroid/accounts/ChooseAccountTypeActivity$AuthInfo;->name:Ljava/lang/String;
-Landroid/accounts/ChooseAccountTypeActivity$ViewHolder;
 Landroid/accounts/ChooseAccountTypeActivity$ViewHolder;-><init>()V
 Landroid/accounts/ChooseAccountTypeActivity$ViewHolder;->icon:Landroid/widget/ImageView;
 Landroid/accounts/ChooseAccountTypeActivity$ViewHolder;->text:Landroid/widget/TextView;
-Landroid/accounts/ChooseAccountTypeActivity;
 Landroid/accounts/ChooseAccountTypeActivity;-><init>()V
 Landroid/accounts/ChooseAccountTypeActivity;->buildTypeToAuthDescriptionMap()V
 Landroid/accounts/ChooseAccountTypeActivity;->mAuthenticatorInfosToDisplay:Ljava/util/ArrayList;
 Landroid/accounts/ChooseAccountTypeActivity;->mTypeToAuthenticatorInfo:Ljava/util/HashMap;
 Landroid/accounts/ChooseAccountTypeActivity;->setResultAndFinish(Ljava/lang/String;)V
 Landroid/accounts/ChooseAccountTypeActivity;->TAG:Ljava/lang/String;
-Landroid/accounts/ChooseTypeAndAccountActivity;
 Landroid/accounts/ChooseTypeAndAccountActivity;-><init>()V
 Landroid/accounts/ChooseTypeAndAccountActivity;->EXTRA_ADD_ACCOUNT_AUTH_TOKEN_TYPE_STRING:Ljava/lang/String;
 Landroid/accounts/ChooseTypeAndAccountActivity;->EXTRA_ADD_ACCOUNT_OPTIONS_BUNDLE:Ljava/lang/String;
@@ -539,7 +495,6 @@
 Landroid/accounts/ChooseTypeAndAccountActivity;->setResultAndFinish(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/accounts/ChooseTypeAndAccountActivity;->startChooseAccountTypeActivity()V
 Landroid/accounts/ChooseTypeAndAccountActivity;->TAG:Ljava/lang/String;
-Landroid/accounts/GrantCredentialsPermissionActivity;
 Landroid/accounts/GrantCredentialsPermissionActivity;-><init>()V
 Landroid/accounts/GrantCredentialsPermissionActivity;->EXTRAS_ACCOUNT:Ljava/lang/String;
 Landroid/accounts/GrantCredentialsPermissionActivity;->EXTRAS_AUTH_TOKEN_TYPE:Ljava/lang/String;
@@ -553,7 +508,6 @@
 Landroid/accounts/GrantCredentialsPermissionActivity;->mUid:I
 Landroid/accounts/GrantCredentialsPermissionActivity;->newPackageView(Ljava/lang/String;)Landroid/view/View;
 Landroid/accounts/GrantCredentialsPermissionActivity;->setAccountAuthenticatorResult(Landroid/os/Bundle;)V
-Landroid/accounts/IAccountAuthenticator$Stub$Proxy;
 Landroid/accounts/IAccountAuthenticator$Stub$Proxy;->addAccount(Landroid/accounts/IAccountAuthenticatorResponse;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;)V
 Landroid/accounts/IAccountAuthenticator$Stub$Proxy;->addAccountFromCredentials(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;Landroid/os/Bundle;)V
 Landroid/accounts/IAccountAuthenticator$Stub$Proxy;->confirmCredentials(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;Landroid/os/Bundle;)V
@@ -569,7 +523,6 @@
 Landroid/accounts/IAccountAuthenticator$Stub$Proxy;->startAddAccountSession(Landroid/accounts/IAccountAuthenticatorResponse;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;)V
 Landroid/accounts/IAccountAuthenticator$Stub$Proxy;->startUpdateCredentialsSession(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
 Landroid/accounts/IAccountAuthenticator$Stub$Proxy;->updateCredentials(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
-Landroid/accounts/IAccountAuthenticator$Stub;
 Landroid/accounts/IAccountAuthenticator$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/accounts/IAccountAuthenticator$Stub;->TRANSACTION_addAccount:I
 Landroid/accounts/IAccountAuthenticator$Stub;->TRANSACTION_addAccountFromCredentials:I
@@ -585,23 +538,18 @@
 Landroid/accounts/IAccountAuthenticator$Stub;->TRANSACTION_startAddAccountSession:I
 Landroid/accounts/IAccountAuthenticator$Stub;->TRANSACTION_startUpdateCredentialsSession:I
 Landroid/accounts/IAccountAuthenticator$Stub;->TRANSACTION_updateCredentials:I
-Landroid/accounts/IAccountAuthenticator;
 Landroid/accounts/IAccountAuthenticator;->finishSession(Landroid/accounts/IAccountAuthenticatorResponse;Ljava/lang/String;Landroid/os/Bundle;)V
 Landroid/accounts/IAccountAuthenticator;->isCredentialsUpdateSuggested(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;Ljava/lang/String;)V
 Landroid/accounts/IAccountAuthenticator;->startAddAccountSession(Landroid/accounts/IAccountAuthenticatorResponse;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;)V
 Landroid/accounts/IAccountAuthenticator;->startUpdateCredentialsSession(Landroid/accounts/IAccountAuthenticatorResponse;Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V
-Landroid/accounts/IAccountAuthenticatorResponse$Stub$Proxy;
 Landroid/accounts/IAccountAuthenticatorResponse$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/accounts/IAccountAuthenticatorResponse$Stub$Proxy;->onError(ILjava/lang/String;)V
 Landroid/accounts/IAccountAuthenticatorResponse$Stub$Proxy;->onRequestContinued()V
 Landroid/accounts/IAccountAuthenticatorResponse$Stub$Proxy;->onResult(Landroid/os/Bundle;)V
-Landroid/accounts/IAccountAuthenticatorResponse$Stub;
 Landroid/accounts/IAccountAuthenticatorResponse$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/accounts/IAccountAuthenticatorResponse$Stub;->TRANSACTION_onError:I
 Landroid/accounts/IAccountAuthenticatorResponse$Stub;->TRANSACTION_onRequestContinued:I
 Landroid/accounts/IAccountAuthenticatorResponse$Stub;->TRANSACTION_onResult:I
-Landroid/accounts/IAccountAuthenticatorResponse;
-Landroid/accounts/IAccountManager$Stub$Proxy;
 Landroid/accounts/IAccountManager$Stub$Proxy;->accountAuthenticated(Landroid/accounts/Account;)Z
 Landroid/accounts/IAccountManager$Stub$Proxy;->addAccount(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;ZLandroid/os/Bundle;)V
 Landroid/accounts/IAccountManager$Stub$Proxy;->addAccountAsUser(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;ZLandroid/os/Bundle;I)V
@@ -655,7 +603,6 @@
 Landroid/accounts/IAccountManager$Stub$Proxy;->unregisterAccountListener([Ljava/lang/String;Ljava/lang/String;)V
 Landroid/accounts/IAccountManager$Stub$Proxy;->updateAppPermission(Landroid/accounts/Account;Ljava/lang/String;IZ)V
 Landroid/accounts/IAccountManager$Stub$Proxy;->updateCredentials(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;Ljava/lang/String;ZLandroid/os/Bundle;)V
-Landroid/accounts/IAccountManager$Stub;
 Landroid/accounts/IAccountManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/accounts/IAccountManager$Stub;->TRANSACTION_accountAuthenticated:I
 Landroid/accounts/IAccountManager$Stub;->TRANSACTION_addAccount:I
@@ -708,7 +655,6 @@
 Landroid/accounts/IAccountManager$Stub;->TRANSACTION_unregisterAccountListener:I
 Landroid/accounts/IAccountManager$Stub;->TRANSACTION_updateAppPermission:I
 Landroid/accounts/IAccountManager$Stub;->TRANSACTION_updateCredentials:I
-Landroid/accounts/IAccountManager;
 Landroid/accounts/IAccountManager;->accountAuthenticated(Landroid/accounts/Account;)Z
 Landroid/accounts/IAccountManager;->addAccount(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;ZLandroid/os/Bundle;)V
 Landroid/accounts/IAccountManager;->addAccountAsUser(Landroid/accounts/IAccountManagerResponse;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;ZLandroid/os/Bundle;I)V
@@ -760,33 +706,25 @@
 Landroid/accounts/IAccountManager;->unregisterAccountListener([Ljava/lang/String;Ljava/lang/String;)V
 Landroid/accounts/IAccountManager;->updateAppPermission(Landroid/accounts/Account;Ljava/lang/String;IZ)V
 Landroid/accounts/IAccountManager;->updateCredentials(Landroid/accounts/IAccountManagerResponse;Landroid/accounts/Account;Ljava/lang/String;ZLandroid/os/Bundle;)V
-Landroid/accounts/IAccountManagerResponse$Stub$Proxy;
 Landroid/accounts/IAccountManagerResponse$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/accounts/IAccountManagerResponse$Stub$Proxy;->onError(ILjava/lang/String;)V
 Landroid/accounts/IAccountManagerResponse$Stub$Proxy;->onResult(Landroid/os/Bundle;)V
-Landroid/accounts/IAccountManagerResponse$Stub;
 Landroid/accounts/IAccountManagerResponse$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/accounts/IAccountManagerResponse$Stub;->TRANSACTION_onError:I
 Landroid/accounts/IAccountManagerResponse$Stub;->TRANSACTION_onResult:I
-Landroid/accounts/IAccountManagerResponse;
-Landroid/animation/AnimationHandler$AnimationFrameCallback;
 Landroid/animation/AnimationHandler$AnimationFrameCallback;->commitAnimationFrame(J)V
 Landroid/animation/AnimationHandler$AnimationFrameCallback;->doAnimationFrame(J)Z
-Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;
 Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;->getFrameDelay()J
 Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;->getFrameTime()J
 Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;->postCommitCallback(Ljava/lang/Runnable;)V
 Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V
 Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;->setFrameDelay(J)V
-Landroid/animation/AnimationHandler$MyFrameCallbackProvider;
-Landroid/animation/AnimationHandler$MyFrameCallbackProvider;-><init>()V
 Landroid/animation/AnimationHandler$MyFrameCallbackProvider;->getFrameDelay()J
 Landroid/animation/AnimationHandler$MyFrameCallbackProvider;->getFrameTime()J
 Landroid/animation/AnimationHandler$MyFrameCallbackProvider;->mChoreographer:Landroid/view/Choreographer;
 Landroid/animation/AnimationHandler$MyFrameCallbackProvider;->postCommitCallback(Ljava/lang/Runnable;)V
 Landroid/animation/AnimationHandler$MyFrameCallbackProvider;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V
 Landroid/animation/AnimationHandler$MyFrameCallbackProvider;->setFrameDelay(J)V
-Landroid/animation/AnimationHandler;
 Landroid/animation/AnimationHandler;-><init>()V
 Landroid/animation/AnimationHandler;->addAnimationFrameCallback(Landroid/animation/AnimationHandler$AnimationFrameCallback;J)V
 Landroid/animation/AnimationHandler;->addOneShotCommitCallback(Landroid/animation/AnimationHandler$AnimationFrameCallback;)V
@@ -810,7 +748,6 @@
 Landroid/animation/AnimationHandler;->sAnimatorHandler:Ljava/lang/ThreadLocal;
 Landroid/animation/AnimationHandler;->setFrameDelay(J)V
 Landroid/animation/AnimationHandler;->setProvider(Landroid/animation/AnimationHandler$AnimationFrameCallbackProvider;)V
-Landroid/animation/Animator$AnimatorConstantState;
 Landroid/animation/Animator$AnimatorConstantState;-><init>(Landroid/animation/Animator;)V
 Landroid/animation/Animator$AnimatorConstantState;->getChangingConfigurations()I
 Landroid/animation/Animator$AnimatorConstantState;->mAnimator:Landroid/animation/Animator;
@@ -832,7 +769,6 @@
 Landroid/animation/Animator;->setChangingConfigurations(I)V
 Landroid/animation/Animator;->skipToEndValue(Z)V
 Landroid/animation/Animator;->startWithoutPulsing(Z)V
-Landroid/animation/AnimatorInflater$PathDataEvaluator;
 Landroid/animation/AnimatorInflater$PathDataEvaluator;-><init>()V
 Landroid/animation/AnimatorInflater$PathDataEvaluator;->evaluate(FLandroid/util/PathParser$PathData;Landroid/util/PathParser$PathData;)Landroid/util/PathParser$PathData;
 Landroid/animation/AnimatorInflater$PathDataEvaluator;->mPathData:Landroid/util/PathParser$PathData;
@@ -868,7 +804,6 @@
 Landroid/animation/AnimatorInflater;->VALUE_TYPE_INT:I
 Landroid/animation/AnimatorInflater;->VALUE_TYPE_PATH:I
 Landroid/animation/AnimatorInflater;->VALUE_TYPE_UNDEFINED:I
-Landroid/animation/AnimatorSet$AnimationEvent;
 Landroid/animation/AnimatorSet$AnimationEvent;-><init>(Landroid/animation/AnimatorSet$Node;I)V
 Landroid/animation/AnimatorSet$AnimationEvent;->ANIMATION_DELAY_ENDED:I
 Landroid/animation/AnimatorSet$AnimationEvent;->ANIMATION_END:I
@@ -876,9 +811,7 @@
 Landroid/animation/AnimatorSet$AnimationEvent;->getTime()J
 Landroid/animation/AnimatorSet$AnimationEvent;->mEvent:I
 Landroid/animation/AnimatorSet$AnimationEvent;->mNode:Landroid/animation/AnimatorSet$Node;
-Landroid/animation/AnimatorSet$Builder;-><init>(Landroid/animation/Animator;)V
 Landroid/animation/AnimatorSet$Builder;->mCurrentNode:Landroid/animation/AnimatorSet$Node;
-Landroid/animation/AnimatorSet$Node;
 Landroid/animation/AnimatorSet$Node;-><init>(Landroid/animation/Animator;)V
 Landroid/animation/AnimatorSet$Node;->addChild(Landroid/animation/AnimatorSet$Node;)V
 Landroid/animation/AnimatorSet$Node;->addParent(Landroid/animation/AnimatorSet$Node;)V
@@ -894,8 +827,6 @@
 Landroid/animation/AnimatorSet$Node;->mSiblings:Ljava/util/ArrayList;
 Landroid/animation/AnimatorSet$Node;->mStartTime:J
 Landroid/animation/AnimatorSet$Node;->mTotalDuration:J
-Landroid/animation/AnimatorSet$SeekState;
-Landroid/animation/AnimatorSet$SeekState;-><init>()V
 Landroid/animation/AnimatorSet$SeekState;->getPlayTime()J
 Landroid/animation/AnimatorSet$SeekState;->getPlayTimeNormalized()J
 Landroid/animation/AnimatorSet$SeekState;->isActive()Z
@@ -964,7 +895,6 @@
 Landroid/animation/AnimatorSet;->updateAnimatorsDuration()V
 Landroid/animation/AnimatorSet;->updatePlayTime(Landroid/animation/AnimatorSet$Node;Ljava/util/ArrayList;)V
 Landroid/animation/ArgbEvaluator;->sInstance:Landroid/animation/ArgbEvaluator;
-Landroid/animation/BidirectionalTypeConverter$InvertedConverter;
 Landroid/animation/BidirectionalTypeConverter$InvertedConverter;-><init>(Landroid/animation/BidirectionalTypeConverter;)V
 Landroid/animation/BidirectionalTypeConverter$InvertedConverter;->convert(Ljava/lang/Object;)Ljava/lang/Object;
 Landroid/animation/BidirectionalTypeConverter$InvertedConverter;->convertBack(Ljava/lang/Object;)Ljava/lang/Object;
@@ -972,17 +902,14 @@
 Landroid/animation/BidirectionalTypeConverter;->mInvertedConverter:Landroid/animation/BidirectionalTypeConverter;
 Landroid/animation/FloatArrayEvaluator;->mArray:[F
 Landroid/animation/IntArrayEvaluator;->mArray:[I
-Landroid/animation/Keyframe$FloatKeyframe;
 Landroid/animation/Keyframe$FloatKeyframe;-><init>(F)V
 Landroid/animation/Keyframe$FloatKeyframe;-><init>(FF)V
 Landroid/animation/Keyframe$FloatKeyframe;->getFloatValue()F
 Landroid/animation/Keyframe$FloatKeyframe;->mValue:F
-Landroid/animation/Keyframe$IntKeyframe;
 Landroid/animation/Keyframe$IntKeyframe;-><init>(F)V
 Landroid/animation/Keyframe$IntKeyframe;-><init>(FI)V
 Landroid/animation/Keyframe$IntKeyframe;->getIntValue()I
 Landroid/animation/Keyframe$IntKeyframe;->mValue:I
-Landroid/animation/Keyframe$ObjectKeyframe;
 Landroid/animation/Keyframe$ObjectKeyframe;-><init>(FLjava/lang/Object;)V
 Landroid/animation/Keyframe$ObjectKeyframe;->mValue:Ljava/lang/Object;
 Landroid/animation/Keyframe;->mFraction:F
@@ -992,18 +919,13 @@
 Landroid/animation/Keyframe;->mValueWasSetOnStart:Z
 Landroid/animation/Keyframe;->setValueWasSetOnStart(Z)V
 Landroid/animation/Keyframe;->valueWasSetOnStart()Z
-Landroid/animation/Keyframes$FloatKeyframes;
 Landroid/animation/Keyframes$FloatKeyframes;->getFloatValue(F)F
-Landroid/animation/Keyframes$IntKeyframes;
 Landroid/animation/Keyframes$IntKeyframes;->getIntValue(F)I
-Landroid/animation/Keyframes;
 Landroid/animation/Keyframes;->clone()Landroid/animation/Keyframes;
 Landroid/animation/Keyframes;->getKeyframes()Ljava/util/List;
 Landroid/animation/Keyframes;->getType()Ljava/lang/Class;
 Landroid/animation/Keyframes;->getValue(F)Ljava/lang/Object;
 Landroid/animation/Keyframes;->setEvaluator(Landroid/animation/TypeEvaluator;)V
-Landroid/animation/KeyframeSet;
-Landroid/animation/KeyframeSet;-><init>([[Landroid/animation/Keyframe;)V
 Landroid/animation/KeyframeSet;->getKeyframes()Ljava/util/List;
 Landroid/animation/KeyframeSet;->getType()Ljava/lang/Class;
 Landroid/animation/KeyframeSet;->getValue(F)Ljava/lang/Object;
@@ -1013,14 +935,9 @@
 Landroid/animation/KeyframeSet;->mKeyframes:Ljava/util/List;
 Landroid/animation/KeyframeSet;->mLastKeyframe:Landroid/animation/Keyframe;
 Landroid/animation/KeyframeSet;->mNumKeyframes:I
-Landroid/animation/KeyframeSet;->ofFloat([[F)Landroid/animation/KeyframeSet;
-Landroid/animation/KeyframeSet;->ofInt([[I)Landroid/animation/KeyframeSet;
-Landroid/animation/KeyframeSet;->ofKeyframe([[Landroid/animation/Keyframe;)Landroid/animation/KeyframeSet;
-Landroid/animation/KeyframeSet;->ofObject([[Ljava/lang/Object;)Landroid/animation/KeyframeSet;
 Landroid/animation/KeyframeSet;->ofPath(Landroid/graphics/Path;)Landroid/animation/PathKeyframes;
 Landroid/animation/KeyframeSet;->ofPath(Landroid/graphics/Path;F)Landroid/animation/PathKeyframes;
 Landroid/animation/KeyframeSet;->setEvaluator(Landroid/animation/TypeEvaluator;)V
-Landroid/animation/LayoutTransition$CleanupCallback;
 Landroid/animation/LayoutTransition$CleanupCallback;-><init>(Ljava/util/Map;Landroid/view/ViewGroup;)V
 Landroid/animation/LayoutTransition$CleanupCallback;->cleanup()V
 Landroid/animation/LayoutTransition$CleanupCallback;->layoutChangeListenerMap:Ljava/util/Map;
@@ -1099,19 +1016,15 @@
 Landroid/animation/ObjectAnimator;->mPropertyName:Ljava/lang/String;
 Landroid/animation/ObjectAnimator;->mTarget:Ljava/lang/ref/WeakReference;
 Landroid/animation/ObjectAnimator;->shouldAutoCancel(Landroid/animation/AnimationHandler$AnimationFrameCallback;)Z
-Landroid/animation/PathKeyframes$FloatKeyframesBase;
 Landroid/animation/PathKeyframes$FloatKeyframesBase;-><init>()V
 Landroid/animation/PathKeyframes$FloatKeyframesBase;->getType()Ljava/lang/Class;
 Landroid/animation/PathKeyframes$FloatKeyframesBase;->getValue(F)Ljava/lang/Object;
-Landroid/animation/PathKeyframes$IntKeyframesBase;
 Landroid/animation/PathKeyframes$IntKeyframesBase;-><init>()V
 Landroid/animation/PathKeyframes$IntKeyframesBase;->getType()Ljava/lang/Class;
 Landroid/animation/PathKeyframes$IntKeyframesBase;->getValue(F)Ljava/lang/Object;
-Landroid/animation/PathKeyframes$SimpleKeyframes;
 Landroid/animation/PathKeyframes$SimpleKeyframes;-><init>()V
 Landroid/animation/PathKeyframes$SimpleKeyframes;->getKeyframes()Ljava/util/ArrayList;
 Landroid/animation/PathKeyframes$SimpleKeyframes;->setEvaluator(Landroid/animation/TypeEvaluator;)V
-Landroid/animation/PathKeyframes;
 Landroid/animation/PathKeyframes;-><init>(Landroid/graphics/Path;)V
 Landroid/animation/PathKeyframes;-><init>(Landroid/graphics/Path;F)V
 Landroid/animation/PathKeyframes;->createXFloatKeyframes()Landroid/animation/Keyframes$FloatKeyframes;
@@ -1133,11 +1046,8 @@
 Landroid/animation/PathKeyframes;->X_OFFSET:I
 Landroid/animation/PathKeyframes;->Y_OFFSET:I
 Landroid/animation/PointFEvaluator;->mPoint:Landroid/graphics/PointF;
-Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;
 Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;-><init>(Landroid/util/Property;Landroid/animation/Keyframes$FloatKeyframes;)V
-Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;-><init>(Landroid/util/Property;[[F)V
 Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;-><init>(Ljava/lang/String;Landroid/animation/Keyframes$FloatKeyframes;)V
-Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;-><init>(Ljava/lang/String;[[F)V
 Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->calculateValue(F)V
 Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->getAnimatedValue()Ljava/lang/Object;
 Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->mFloatAnimatedValue:F
@@ -1147,11 +1057,8 @@
 Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->setAnimatedValue(Ljava/lang/Object;)V
 Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->setupSetter(Ljava/lang/Class;)V
 Landroid/animation/PropertyValuesHolder$FloatPropertyValuesHolder;->sJNISetterPropertyMap:Ljava/util/HashMap;
-Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;
 Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;-><init>(Landroid/util/Property;Landroid/animation/Keyframes$IntKeyframes;)V
-Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;-><init>(Landroid/util/Property;[[I)V
 Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;-><init>(Ljava/lang/String;Landroid/animation/Keyframes$IntKeyframes;)V
-Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;-><init>(Ljava/lang/String;[[I)V
 Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->calculateValue(F)V
 Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->getAnimatedValue()Ljava/lang/Object;
 Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->mIntAnimatedValue:I
@@ -1161,33 +1068,25 @@
 Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->setAnimatedValue(Ljava/lang/Object;)V
 Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->setupSetter(Ljava/lang/Class;)V
 Landroid/animation/PropertyValuesHolder$IntPropertyValuesHolder;->sJNISetterPropertyMap:Ljava/util/HashMap;
-Landroid/animation/PropertyValuesHolder$MultiFloatValuesHolder;
 Landroid/animation/PropertyValuesHolder$MultiFloatValuesHolder;-><init>(Ljava/lang/String;Landroid/animation/TypeConverter;Landroid/animation/TypeEvaluator;Landroid/animation/Keyframes;)V
-Landroid/animation/PropertyValuesHolder$MultiFloatValuesHolder;-><init>(Ljava/lang/String;Landroid/animation/TypeConverter;Landroid/animation/TypeEvaluator;[[Ljava/lang/Object;)V
 Landroid/animation/PropertyValuesHolder$MultiFloatValuesHolder;->mJniSetter:J
 Landroid/animation/PropertyValuesHolder$MultiFloatValuesHolder;->setAnimatedValue(Ljava/lang/Object;)V
 Landroid/animation/PropertyValuesHolder$MultiFloatValuesHolder;->setupSetter(Ljava/lang/Class;)V
 Landroid/animation/PropertyValuesHolder$MultiFloatValuesHolder;->setupSetterAndGetter(Ljava/lang/Object;)V
 Landroid/animation/PropertyValuesHolder$MultiFloatValuesHolder;->sJNISetterPropertyMap:Ljava/util/HashMap;
-Landroid/animation/PropertyValuesHolder$MultiIntValuesHolder;
 Landroid/animation/PropertyValuesHolder$MultiIntValuesHolder;-><init>(Ljava/lang/String;Landroid/animation/TypeConverter;Landroid/animation/TypeEvaluator;Landroid/animation/Keyframes;)V
-Landroid/animation/PropertyValuesHolder$MultiIntValuesHolder;-><init>(Ljava/lang/String;Landroid/animation/TypeConverter;Landroid/animation/TypeEvaluator;[[Ljava/lang/Object;)V
 Landroid/animation/PropertyValuesHolder$MultiIntValuesHolder;->mJniSetter:J
 Landroid/animation/PropertyValuesHolder$MultiIntValuesHolder;->setAnimatedValue(Ljava/lang/Object;)V
 Landroid/animation/PropertyValuesHolder$MultiIntValuesHolder;->setupSetter(Ljava/lang/Class;)V
 Landroid/animation/PropertyValuesHolder$MultiIntValuesHolder;->setupSetterAndGetter(Ljava/lang/Object;)V
 Landroid/animation/PropertyValuesHolder$MultiIntValuesHolder;->sJNISetterPropertyMap:Ljava/util/HashMap;
-Landroid/animation/PropertyValuesHolder$PointFToFloatArray;
 Landroid/animation/PropertyValuesHolder$PointFToFloatArray;-><init>()V
 Landroid/animation/PropertyValuesHolder$PointFToFloatArray;->convert(Landroid/graphics/PointF;)[F
 Landroid/animation/PropertyValuesHolder$PointFToFloatArray;->mCoordinates:[F
-Landroid/animation/PropertyValuesHolder$PointFToIntArray;
 Landroid/animation/PropertyValuesHolder$PointFToIntArray;-><init>()V
 Landroid/animation/PropertyValuesHolder$PointFToIntArray;->convert(Landroid/graphics/PointF;)[I
 Landroid/animation/PropertyValuesHolder$PointFToIntArray;->mCoordinates:[I
-Landroid/animation/PropertyValuesHolder$PropertyValues$DataSource;
 Landroid/animation/PropertyValuesHolder$PropertyValues$DataSource;->getValueAtFraction(F)Ljava/lang/Object;
-Landroid/animation/PropertyValuesHolder$PropertyValues;
 Landroid/animation/PropertyValuesHolder$PropertyValues;-><init>()V
 Landroid/animation/PropertyValuesHolder$PropertyValues;->dataSource:Landroid/animation/PropertyValuesHolder$PropertyValues$DataSource;
 Landroid/animation/PropertyValuesHolder$PropertyValues;->endValue:Ljava/lang/Object;
@@ -1244,17 +1143,14 @@
 Landroid/animation/PropertyValuesHolder;->sIntEvaluator:Landroid/animation/TypeEvaluator;
 Landroid/animation/PropertyValuesHolder;->sSetterPropertyMap:Ljava/util/HashMap;
 Landroid/animation/RectEvaluator;->mRect:Landroid/graphics/Rect;
-Landroid/animation/RevealAnimator;
 Landroid/animation/RevealAnimator;-><init>(Landroid/view/View;IIFF)V
 Landroid/animation/RevealAnimator;->mClipView:Landroid/view/View;
 Landroid/animation/RevealAnimator;->onFinished()V
-Landroid/animation/StateListAnimator$StateListAnimatorConstantState;
 Landroid/animation/StateListAnimator$StateListAnimatorConstantState;-><init>(Landroid/animation/StateListAnimator;)V
 Landroid/animation/StateListAnimator$StateListAnimatorConstantState;->getChangingConfigurations()I
 Landroid/animation/StateListAnimator$StateListAnimatorConstantState;->mAnimator:Landroid/animation/StateListAnimator;
 Landroid/animation/StateListAnimator$StateListAnimatorConstantState;->mChangingConf:I
 Landroid/animation/StateListAnimator$StateListAnimatorConstantState;->newInstance()Landroid/animation/StateListAnimator;
-Landroid/animation/StateListAnimator$Tuple;
 Landroid/animation/StateListAnimator$Tuple;-><init>([ILandroid/animation/Animator;)V
 Landroid/animation/StateListAnimator$Tuple;->getAnimator()Landroid/animation/Animator;
 Landroid/animation/StateListAnimator$Tuple;->getSpecs()[I
@@ -1289,7 +1185,6 @@
 Landroid/animation/TypeConverter;->getTargetType()Ljava/lang/Class;
 Landroid/animation/TypeConverter;->mFromClass:Ljava/lang/Class;
 Landroid/animation/TypeConverter;->mToClass:Ljava/lang/Class;
-Landroid/animation/ValueAnimator$RepeatMode;
 Landroid/animation/ValueAnimator;->addAnimationCallback(J)V
 Landroid/animation/ValueAnimator;->addOneShotCommitCallback()V
 Landroid/animation/ValueAnimator;->animateBasedOnPlayTime(JJZ)V
@@ -1347,59 +1242,9 @@
 Landroid/animation/ValueAnimator;->startAnimation()V
 Landroid/animation/ValueAnimator;->startWithoutPulsing(Z)V
 Landroid/animation/ValueAnimator;->TAG:Ljava/lang/String;
-Landroid/annotation/AnimatorRes;
-Landroid/annotation/AnimRes;
-Landroid/annotation/AnyRes;
-Landroid/annotation/AnyThread;
-Landroid/annotation/AppIdInt;
-Landroid/annotation/ArrayRes;
-Landroid/annotation/AttrRes;
-Landroid/annotation/BinderThread;
-Landroid/annotation/BoolRes;
-Landroid/annotation/BroadcastBehavior;
-Landroid/annotation/BytesLong;
-Landroid/annotation/CallbackExecutor;
-Landroid/annotation/CallSuper;
-Landroid/annotation/CheckResult;
-Landroid/annotation/ColorInt;
-Landroid/annotation/ColorLong;
-Landroid/annotation/ColorRes;
-Landroid/annotation/Condemned;
-Landroid/annotation/CurrentTimeMillisLong;
-Landroid/annotation/DimenRes;
-Landroid/annotation/Dimension$Unit;
-Landroid/annotation/Dimension;
 Landroid/annotation/Dimension;->DP:I
 Landroid/annotation/Dimension;->PX:I
 Landroid/annotation/Dimension;->SP:I
-Landroid/annotation/DrawableRes;
-Landroid/annotation/DurationMillisLong;
-Landroid/annotation/ElapsedRealtimeLong;
-Landroid/annotation/FloatRange;
-Landroid/annotation/FontRes;
-Landroid/annotation/FractionRes;
-Landroid/annotation/HalfFloat;
-Landroid/annotation/IdRes;
-Landroid/annotation/IntDef;
-Landroid/annotation/IntegerRes;
-Landroid/annotation/InterpolatorRes;
-Landroid/annotation/IntRange;
-Landroid/annotation/LayoutRes;
-Landroid/annotation/LongDef;
-Landroid/annotation/MainThread;
-Landroid/annotation/MenuRes;
-Landroid/annotation/NavigationRes;
-Landroid/annotation/NonNull;
-Landroid/annotation/Nullable;
-Landroid/annotation/PluralsRes;
-Landroid/annotation/Px;
-Landroid/annotation/RawRes;
-Landroid/annotation/RequiresFeature;
-Landroid/annotation/RequiresPermission$Read;
-Landroid/annotation/RequiresPermission$Write;
-Landroid/annotation/RequiresPermission;
-Landroid/annotation/SdkConstant$SdkConstantType;
-Landroid/annotation/SdkConstant$SdkConstantType;-><init>()V
 Landroid/annotation/SdkConstant$SdkConstantType;->ACTIVITY_INTENT_ACTION:Landroid/annotation/SdkConstant$SdkConstantType;
 Landroid/annotation/SdkConstant$SdkConstantType;->BROADCAST_INTENT_ACTION:Landroid/annotation/SdkConstant$SdkConstantType;
 Landroid/annotation/SdkConstant$SdkConstantType;->FEATURE:Landroid/annotation/SdkConstant$SdkConstantType;
@@ -1407,25 +1252,7 @@
 Landroid/annotation/SdkConstant$SdkConstantType;->SERVICE_ACTION:Landroid/annotation/SdkConstant$SdkConstantType;
 Landroid/annotation/SdkConstant$SdkConstantType;->valueOf(Ljava/lang/String;)Landroid/annotation/SdkConstant$SdkConstantType;
 Landroid/annotation/SdkConstant$SdkConstantType;->values()[Landroid/annotation/SdkConstant$SdkConstantType;
-Landroid/annotation/SdkConstant;
-Landroid/annotation/Size;
-Landroid/annotation/StringDef;
-Landroid/annotation/StringRes;
-Landroid/annotation/StyleableRes;
-Landroid/annotation/StyleRes;
-Landroid/annotation/SuppressAutoDoc;
-Landroid/annotation/SystemApi;
-Landroid/annotation/SystemService;
-Landroid/annotation/TestApi;
-Landroid/annotation/TransitionRes;
-Landroid/annotation/UiThread;
-Landroid/annotation/UserIdInt;
-Landroid/annotation/Widget;
-Landroid/annotation/WorkerThread;
-Landroid/annotation/XmlRes;
-Landroid/app/ActionBar$DisplayOptions;
 Landroid/app/ActionBar$LayoutParams;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
-Landroid/app/ActionBar$NavigationMode;
 Landroid/app/ActionBar;->closeOptionsMenu()Z
 Landroid/app/ActionBar;->dispatchMenuVisibilityChanged(Z)V
 Landroid/app/ActionBar;->invalidateOptionsMenu()Z
@@ -1438,20 +1265,14 @@
 Landroid/app/ActionBar;->setDefaultDisplayHomeAsUpEnabled(Z)V
 Landroid/app/ActionBar;->setWindowTitle(Ljava/lang/CharSequence;)V
 Landroid/app/ActionBar;->startActionMode(Landroid/view/ActionMode$Callback;)Landroid/view/ActionMode;
-Landroid/app/Activity$DefaultKeyMode;
-Landroid/app/Activity$HostCallbacks;
-Landroid/app/Activity$HostCallbacks;-><init>()V
 Landroid/app/Activity$HostCallbacks;->onStartActivityAsUserFromFragment(Landroid/app/Fragment;Landroid/content/Intent;ILandroid/os/Bundle;Landroid/os/UserHandle;)V
-Landroid/app/Activity$ManagedCursor;
 Landroid/app/Activity$ManagedCursor;-><init>(Landroid/database/Cursor;)V
 Landroid/app/Activity$ManagedCursor;->mCursor:Landroid/database/Cursor;
 Landroid/app/Activity$ManagedCursor;->mReleased:Z
 Landroid/app/Activity$ManagedCursor;->mUpdated:Z
-Landroid/app/Activity$ManagedDialog;
 Landroid/app/Activity$ManagedDialog;-><init>()V
 Landroid/app/Activity$ManagedDialog;->mArgs:Landroid/os/Bundle;
 Landroid/app/Activity$ManagedDialog;->mDialog:Landroid/app/Dialog;
-Landroid/app/Activity$NonConfigurationInstances;
 Landroid/app/Activity$NonConfigurationInstances;-><init>()V
 Landroid/app/Activity$NonConfigurationInstances;->activity:Ljava/lang/Object;
 Landroid/app/Activity$NonConfigurationInstances;->children:Ljava/util/HashMap;
@@ -1599,14 +1420,11 @@
 Landroid/app/ActivityGroup;->STATES_KEY:Ljava/lang/String;
 Landroid/app/ActivityManager$AppTask;-><init>(Landroid/app/IAppTask;)V
 Landroid/app/ActivityManager$AppTask;->mAppTaskImpl:Landroid/app/IAppTask;
-Landroid/app/ActivityManager$BugreportMode;
 Landroid/app/ActivityManager$MemoryInfo;-><init>(Landroid/os/Parcel;)V
-Landroid/app/ActivityManager$MoveTaskFlags;
 Landroid/app/ActivityManager$ProcessErrorStateInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/app/ActivityManager$RecentTaskInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/app/ActivityManager$RecentTaskInfo;->bounds:Landroid/graphics/Rect;
 Landroid/app/ActivityManager$RecentTaskInfo;->realActivity:Landroid/content/ComponentName;
-Landroid/app/ActivityManager$RunningAppProcessInfo$Importance;
 Landroid/app/ActivityManager$RunningAppProcessInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/app/ActivityManager$RunningAppProcessInfo;->FLAG_CANT_SAVE_STATE:I
 Landroid/app/ActivityManager$RunningAppProcessInfo;->importanceReasonImportance:I
@@ -1622,7 +1440,6 @@
 Landroid/app/ActivityManager$RunningTaskInfo;->stackId:I
 Landroid/app/ActivityManager$RunningTaskInfo;->supportsSplitScreenMultiWindow:Z
 Landroid/app/ActivityManager$StackId;-><init>()V
-Landroid/app/ActivityManager$StackInfo;
 Landroid/app/ActivityManager$StackInfo;-><init>()V
 Landroid/app/ActivityManager$StackInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/app/ActivityManager$StackInfo;->configuration:Landroid/content/res/Configuration;
@@ -1657,7 +1474,6 @@
 Landroid/app/ActivityManager$TaskDescription;->setNavigationBarColor(I)V
 Landroid/app/ActivityManager$TaskDescription;->setPrimaryColor(I)V
 Landroid/app/ActivityManager$TaskDescription;->setStatusBarColor(I)V
-Landroid/app/ActivityManager$TaskSnapshot;
 Landroid/app/ActivityManager$TaskSnapshot;-><init>(Landroid/graphics/GraphicBuffer;ILandroid/graphics/Rect;ZFZIIZ)V
 Landroid/app/ActivityManager$TaskSnapshot;-><init>(Landroid/os/Parcel;)V
 Landroid/app/ActivityManager$TaskSnapshot;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -1673,7 +1489,6 @@
 Landroid/app/ActivityManager$TaskSnapshot;->mSnapshot:Landroid/graphics/GraphicBuffer;
 Landroid/app/ActivityManager$TaskSnapshot;->mSystemUiVisibility:I
 Landroid/app/ActivityManager$TaskSnapshot;->mWindowingMode:I
-Landroid/app/ActivityManager$UidObserver;
 Landroid/app/ActivityManager$UidObserver;-><init>(Landroid/app/ActivityManager$OnUidImportanceListener;Landroid/content/Context;)V
 Landroid/app/ActivityManager$UidObserver;->mContext:Landroid/content/Context;
 Landroid/app/ActivityManager$UidObserver;->mListener:Landroid/app/ActivityManager$OnUidImportanceListener;
@@ -1810,13 +1625,10 @@
 Landroid/app/ActivityManager;->USER_OP_IS_CURRENT:I
 Landroid/app/ActivityManager;->USER_OP_SUCCESS:I
 Landroid/app/ActivityManager;->USER_OP_UNKNOWN_USER:I
-Landroid/app/ActivityManagerInternal$ScreenObserver;
 Landroid/app/ActivityManagerInternal$ScreenObserver;->onAwakeStateChanged(Z)V
 Landroid/app/ActivityManagerInternal$ScreenObserver;->onKeyguardStateChanged(Z)V
-Landroid/app/ActivityManagerInternal$SleepToken;
 Landroid/app/ActivityManagerInternal$SleepToken;-><init>()V
 Landroid/app/ActivityManagerInternal$SleepToken;->release()V
-Landroid/app/ActivityManagerInternal;
 Landroid/app/ActivityManagerInternal;-><init>()V
 Landroid/app/ActivityManagerInternal;->acquireSleepToken(Ljava/lang/String;I)Landroid/app/ActivityManagerInternal$SleepToken;
 Landroid/app/ActivityManagerInternal;->APP_TRANSITION_RECENTS_ANIM:I
@@ -1873,19 +1685,16 @@
 Landroid/app/ActivityManagerInternal;->startIsolatedProcess(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Runnable;)Z
 Landroid/app/ActivityManagerInternal;->updateDeviceIdleTempWhitelist([IIZ)V
 Landroid/app/ActivityManagerInternal;->updatePersistentConfigurationForUser(Landroid/content/res/Configuration;I)V
-Landroid/app/ActivityManagerNative;
 Landroid/app/ActivityManagerNative;->broadcastStickyIntent(Landroid/content/Intent;Ljava/lang/String;II)V
 Landroid/app/ActivityManagerNative;->noteAlarmFinish(Landroid/app/PendingIntent;ILjava/lang/String;)V
 Landroid/app/ActivityManagerNative;->noteAlarmStart(Landroid/app/PendingIntent;ILjava/lang/String;)V
 Landroid/app/ActivityManagerNative;->noteWakeupAlarm(Landroid/app/PendingIntent;ILjava/lang/String;Ljava/lang/String;)V
-Landroid/app/ActivityManagerProto;
 Landroid/app/ActivityManagerProto;-><init>()V
 Landroid/app/ActivityManagerProto;->UID_OBSERVER_FLAG_ACTIVE:I
 Landroid/app/ActivityManagerProto;->UID_OBSERVER_FLAG_CACHED:I
 Landroid/app/ActivityManagerProto;->UID_OBSERVER_FLAG_GONE:I
 Landroid/app/ActivityManagerProto;->UID_OBSERVER_FLAG_IDLE:I
 Landroid/app/ActivityManagerProto;->UID_OBSERVER_FLAG_PROCSTATE:I
-Landroid/app/ActivityOptions$HideWindowListener;
 Landroid/app/ActivityOptions$HideWindowListener;-><init>(Landroid/view/Window;Landroid/app/ExitTransitionCoordinator;)V
 Landroid/app/ActivityOptions$HideWindowListener;->hideSharedElements()V
 Landroid/app/ActivityOptions$HideWindowListener;->hideWhenDone()V
@@ -1895,9 +1704,7 @@
 Landroid/app/ActivityOptions$HideWindowListener;->mTransitionEnded:Z
 Landroid/app/ActivityOptions$HideWindowListener;->mWaitingForTransition:Z
 Landroid/app/ActivityOptions$HideWindowListener;->mWindow:Landroid/view/Window;
-Landroid/app/ActivityOptions$OnAnimationFinishedListener;
 Landroid/app/ActivityOptions$OnAnimationFinishedListener;->onAnimationFinished()V
-Landroid/app/ActivityOptions$OnAnimationStartedListener;
 Landroid/app/ActivityOptions$OnAnimationStartedListener;->onAnimationStarted()V
 Landroid/app/ActivityOptions;-><init>()V
 Landroid/app/ActivityOptions;-><init>(Landroid/os/Bundle;)V
@@ -2038,10 +1845,8 @@
 Landroid/app/ActivityOptions;->setOnAnimationStartedListener(Landroid/os/Handler;Landroid/app/ActivityOptions$OnAnimationStartedListener;)V
 Landroid/app/ActivityOptions;->setRemoteAnimationAdapter(Landroid/view/RemoteAnimationAdapter;)V
 Landroid/app/ActivityOptions;->setRotationAnimationHint(I)V
-Landroid/app/ActivityOptions;->startSharedElementAnimation(Landroid/view/Window;[[Landroid/util/Pair;)Landroid/app/ActivityOptions;
 Landroid/app/ActivityOptions;->stopSharedElementAnimation(Landroid/view/Window;)V
 Landroid/app/ActivityOptions;->TAG:Ljava/lang/String;
-Landroid/app/ActivityThread$ActivityClientRecord;
 Landroid/app/ActivityThread$ActivityClientRecord;-><init>(Landroid/os/IBinder;Landroid/content/Intent;ILandroid/content/pm/ActivityInfo;Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractor;Landroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/util/List;Ljava/util/List;ZLandroid/app/ProfilerInfo;Landroid/app/ClientTransactionHandler;)V
 Landroid/app/ActivityThread$ActivityClientRecord;->configCallback:Landroid/view/ViewRootImpl$ActivityConfigCallback;
 Landroid/app/ActivityThread$ActivityClientRecord;->createdConfig:Landroid/content/res/Configuration;
@@ -2076,7 +1881,6 @@
 Landroid/app/ActivityThread$ActivityClientRecord;->tmpConfig:Landroid/content/res/Configuration;
 Landroid/app/ActivityThread$ActivityClientRecord;->voiceInteractor:Lcom/android/internal/app/IVoiceInteractor;
 Landroid/app/ActivityThread$ActivityClientRecord;->window:Landroid/view/Window;
-Landroid/app/ActivityThread$AppBindData;
 Landroid/app/ActivityThread$AppBindData;->autofillCompatibilityEnabled:Z
 Landroid/app/ActivityThread$AppBindData;->buildSerial:Ljava/lang/String;
 Landroid/app/ActivityThread$AppBindData;->config:Landroid/content/res/Configuration;
@@ -2087,8 +1891,6 @@
 Landroid/app/ActivityThread$AppBindData;->instrumentationUiAutomationConnection:Landroid/app/IUiAutomationConnection;
 Landroid/app/ActivityThread$AppBindData;->instrumentationWatcher:Landroid/app/IInstrumentationWatcher;
 Landroid/app/ActivityThread$AppBindData;->trackAllocation:Z
-Landroid/app/ActivityThread$ApplicationThread;
-Landroid/app/ActivityThread$ApplicationThread;-><init>()V
 Landroid/app/ActivityThread$ApplicationThread;->attachAgent(Ljava/lang/String;)V
 Landroid/app/ActivityThread$ApplicationThread;->bindApplication(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/util/List;Landroid/content/ComponentName;Landroid/app/ProfilerInfo;Landroid/os/Bundle;Landroid/app/IInstrumentationWatcher;Landroid/app/IUiAutomationConnection;IZZZZLandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/util/Map;Landroid/os/Bundle;Ljava/lang/String;Z)V
 Landroid/app/ActivityThread$ApplicationThread;->clearDnsCache()V
@@ -2147,43 +1949,30 @@
 Landroid/app/ActivityThread$ApplicationThread;->updateProcessState(IZ)V
 Landroid/app/ActivityThread$ApplicationThread;->updateTimePrefs(I)V
 Landroid/app/ActivityThread$ApplicationThread;->updateTimeZone()V
-Landroid/app/ActivityThread$BindServiceData;
 Landroid/app/ActivityThread$BindServiceData;-><init>()V
 Landroid/app/ActivityThread$BindServiceData;->rebind:Z
-Landroid/app/ActivityThread$ContextCleanupInfo;
 Landroid/app/ActivityThread$ContextCleanupInfo;-><init>()V
 Landroid/app/ActivityThread$ContextCleanupInfo;->context:Landroid/app/ContextImpl;
 Landroid/app/ActivityThread$ContextCleanupInfo;->what:Ljava/lang/String;
 Landroid/app/ActivityThread$ContextCleanupInfo;->who:Ljava/lang/String;
-Landroid/app/ActivityThread$CreateBackupAgentData;
 Landroid/app/ActivityThread$CreateBackupAgentData;-><init>()V
 Landroid/app/ActivityThread$CreateBackupAgentData;->appInfo:Landroid/content/pm/ApplicationInfo;
 Landroid/app/ActivityThread$CreateBackupAgentData;->backupMode:I
 Landroid/app/ActivityThread$CreateBackupAgentData;->compatInfo:Landroid/content/res/CompatibilityInfo;
-Landroid/app/ActivityThread$CreateServiceData;
-Landroid/app/ActivityThread$DropBoxReporter;
-Landroid/app/ActivityThread$DropBoxReporter;-><init>()V
 Landroid/app/ActivityThread$DropBoxReporter;->dropBox:Landroid/os/DropBoxManager;
 Landroid/app/ActivityThread$DropBoxReporter;->ensureInitialized()V
-Landroid/app/ActivityThread$DumpComponentInfo;
 Landroid/app/ActivityThread$DumpComponentInfo;-><init>()V
 Landroid/app/ActivityThread$DumpComponentInfo;->args:[Ljava/lang/String;
 Landroid/app/ActivityThread$DumpComponentInfo;->fd:Landroid/os/ParcelFileDescriptor;
 Landroid/app/ActivityThread$DumpComponentInfo;->prefix:Ljava/lang/String;
 Landroid/app/ActivityThread$DumpComponentInfo;->token:Landroid/os/IBinder;
-Landroid/app/ActivityThread$DumpHeapData;
 Landroid/app/ActivityThread$DumpHeapData;-><init>()V
 Landroid/app/ActivityThread$DumpHeapData;->fd:Landroid/os/ParcelFileDescriptor;
 Landroid/app/ActivityThread$DumpHeapData;->mallocInfo:Z
 Landroid/app/ActivityThread$DumpHeapData;->managed:Z
 Landroid/app/ActivityThread$DumpHeapData;->path:Ljava/lang/String;
 Landroid/app/ActivityThread$DumpHeapData;->runGc:Z
-Landroid/app/ActivityThread$EventLoggingReporter;
 Landroid/app/ActivityThread$EventLoggingReporter;-><init>()V
-Landroid/app/ActivityThread$GcIdler;
-Landroid/app/ActivityThread$GcIdler;-><init>()V
-Landroid/app/ActivityThread$H;
-Landroid/app/ActivityThread$H;-><init>()V
 Landroid/app/ActivityThread$H;->APPLICATION_INFO_CHANGED:I
 Landroid/app/ActivityThread$H;->ATTACH_AGENT:I
 Landroid/app/ActivityThread$H;->BIND_APPLICATION:I
@@ -2213,9 +2002,6 @@
 Landroid/app/ActivityThread$H;->TRANSLUCENT_CONVERSION_COMPLETE:I
 Landroid/app/ActivityThread$H;->UNSTABLE_PROVIDER_DIED:I
 Landroid/app/ActivityThread$H;->UPDATE_PACKAGE_COMPATIBILITY_INFO:I
-Landroid/app/ActivityThread$Idler;
-Landroid/app/ActivityThread$Idler;-><init>()V
-Landroid/app/ActivityThread$Profiler;
 Landroid/app/ActivityThread$Profiler;-><init>()V
 Landroid/app/ActivityThread$Profiler;->autoStopProfiler:Z
 Landroid/app/ActivityThread$Profiler;->handlingProfiling:Z
@@ -2227,39 +2013,30 @@
 Landroid/app/ActivityThread$Profiler;->startProfiling()V
 Landroid/app/ActivityThread$Profiler;->stopProfiling()V
 Landroid/app/ActivityThread$Profiler;->streamingOutput:Z
-Landroid/app/ActivityThread$ProviderClientRecord;
-Landroid/app/ActivityThread$ProviderClientRecord;-><init>([Ljava/lang/String;Landroid/content/IContentProvider;Landroid/content/ContentProvider;Landroid/app/ContentProviderHolder;)V
 Landroid/app/ActivityThread$ProviderClientRecord;->mNames:[Ljava/lang/String;
-Landroid/app/ActivityThread$ProviderKey;
 Landroid/app/ActivityThread$ProviderKey;-><init>(Ljava/lang/String;I)V
 Landroid/app/ActivityThread$ProviderKey;->authority:Ljava/lang/String;
 Landroid/app/ActivityThread$ProviderKey;->userId:I
-Landroid/app/ActivityThread$ProviderRefCount;
 Landroid/app/ActivityThread$ProviderRefCount;-><init>(Landroid/app/ContentProviderHolder;Landroid/app/ActivityThread$ProviderClientRecord;II)V
 Landroid/app/ActivityThread$ProviderRefCount;->client:Landroid/app/ActivityThread$ProviderClientRecord;
 Landroid/app/ActivityThread$ProviderRefCount;->holder:Landroid/app/ContentProviderHolder;
 Landroid/app/ActivityThread$ProviderRefCount;->removePending:Z
 Landroid/app/ActivityThread$ProviderRefCount;->stableCount:I
 Landroid/app/ActivityThread$ProviderRefCount;->unstableCount:I
-Landroid/app/ActivityThread$ReceiverData;
 Landroid/app/ActivityThread$ReceiverData;-><init>(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZLandroid/os/IBinder;I)V
-Landroid/app/ActivityThread$RequestAssistContextExtras;
 Landroid/app/ActivityThread$RequestAssistContextExtras;-><init>()V
 Landroid/app/ActivityThread$RequestAssistContextExtras;->activityToken:Landroid/os/IBinder;
 Landroid/app/ActivityThread$RequestAssistContextExtras;->flags:I
 Landroid/app/ActivityThread$RequestAssistContextExtras;->requestToken:Landroid/os/IBinder;
 Landroid/app/ActivityThread$RequestAssistContextExtras;->requestType:I
 Landroid/app/ActivityThread$RequestAssistContextExtras;->sessionId:I
-Landroid/app/ActivityThread$ServiceArgsData;
 Landroid/app/ActivityThread$ServiceArgsData;-><init>()V
 Landroid/app/ActivityThread$ServiceArgsData;->flags:I
 Landroid/app/ActivityThread$ServiceArgsData;->startId:I
 Landroid/app/ActivityThread$ServiceArgsData;->taskRemoved:Z
-Landroid/app/ActivityThread$UpdateCompatibilityData;
 Landroid/app/ActivityThread$UpdateCompatibilityData;-><init>()V
 Landroid/app/ActivityThread$UpdateCompatibilityData;->info:Landroid/content/res/CompatibilityInfo;
 Landroid/app/ActivityThread$UpdateCompatibilityData;->pkg:Ljava/lang/String;
-Landroid/app/ActivityThread;
 Landroid/app/ActivityThread;->ACTIVITY_THREAD_CHECKIN_VERSION:I
 Landroid/app/ActivityThread;->applyCompatConfiguration(I)Landroid/content/res/Configuration;
 Landroid/app/ActivityThread;->applyConfigCompatMainThread(ILandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;)Landroid/content/res/Configuration;
@@ -2408,7 +2185,6 @@
 Landroid/app/ActivityThread;->performStopActivityInner(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/app/servertransaction/PendingTransactionActions$StopInfo;ZZZLjava/lang/String;)V
 Landroid/app/ActivityThread;->performUserLeavingActivity(Landroid/app/ActivityThread$ActivityClientRecord;)V
 Landroid/app/ActivityThread;->prepareRelaunchActivity(Landroid/os/IBinder;Ljava/util/List;Ljava/util/List;ILandroid/util/MergedConfiguration;Z)Landroid/app/ActivityThread$ActivityClientRecord;
-Landroid/app/ActivityThread;->printRow(Ljava/io/PrintWriter;Ljava/lang/String;[[Ljava/lang/Object;)V
 Landroid/app/ActivityThread;->PROC_START_SEQ_IDENT:Ljava/lang/String;
 Landroid/app/ActivityThread;->relaunchAllActivities()V
 Landroid/app/ActivityThread;->reportRelaunch(Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
@@ -2440,13 +2216,9 @@
 Landroid/app/ActivityThread;->updatePendingConfiguration(Landroid/content/res/Configuration;)V
 Landroid/app/ActivityThread;->updateProcessState(IZ)V
 Landroid/app/ActivityThread;->updateVisibility(Landroid/app/ActivityThread$ActivityClientRecord;Z)V
-Landroid/app/ActivityTransitionCoordinator$ContinueTransitionListener;
-Landroid/app/ActivityTransitionCoordinator$ContinueTransitionListener;-><init>()V
-Landroid/app/ActivityTransitionCoordinator$FixedEpicenterCallback;
 Landroid/app/ActivityTransitionCoordinator$FixedEpicenterCallback;-><init>()V
 Landroid/app/ActivityTransitionCoordinator$FixedEpicenterCallback;->mEpicenter:Landroid/graphics/Rect;
 Landroid/app/ActivityTransitionCoordinator$FixedEpicenterCallback;->setEpicenter(Landroid/graphics/Rect;)V
-Landroid/app/ActivityTransitionCoordinator$GhostViewListeners;
 Landroid/app/ActivityTransitionCoordinator$GhostViewListeners;-><init>(Landroid/view/View;Landroid/view/View;Landroid/view/ViewGroup;)V
 Landroid/app/ActivityTransitionCoordinator$GhostViewListeners;->getView()Landroid/view/View;
 Landroid/app/ActivityTransitionCoordinator$GhostViewListeners;->mDecor:Landroid/view/ViewGroup;
@@ -2455,7 +2227,6 @@
 Landroid/app/ActivityTransitionCoordinator$GhostViewListeners;->mView:Landroid/view/View;
 Landroid/app/ActivityTransitionCoordinator$GhostViewListeners;->mViewTreeObserver:Landroid/view/ViewTreeObserver;
 Landroid/app/ActivityTransitionCoordinator$GhostViewListeners;->removeListener()V
-Landroid/app/ActivityTransitionCoordinator$SharedElementOriginalState;
 Landroid/app/ActivityTransitionCoordinator$SharedElementOriginalState;-><init>()V
 Landroid/app/ActivityTransitionCoordinator$SharedElementOriginalState;->mBottom:I
 Landroid/app/ActivityTransitionCoordinator$SharedElementOriginalState;->mElevation:F
@@ -2467,7 +2238,6 @@
 Landroid/app/ActivityTransitionCoordinator$SharedElementOriginalState;->mScaleType:Landroid/widget/ImageView$ScaleType;
 Landroid/app/ActivityTransitionCoordinator$SharedElementOriginalState;->mTop:I
 Landroid/app/ActivityTransitionCoordinator$SharedElementOriginalState;->mTranslationZ:F
-Landroid/app/ActivityTransitionCoordinator;
 Landroid/app/ActivityTransitionCoordinator;-><init>(Landroid/view/Window;Ljava/util/ArrayList;Landroid/app/SharedElementCallback;Z)V
 Landroid/app/ActivityTransitionCoordinator;->backgroundAnimatorComplete()V
 Landroid/app/ActivityTransitionCoordinator;->cancelPendingTransitions()Z
@@ -2562,7 +2332,6 @@
 Landroid/app/ActivityTransitionCoordinator;->transitionStarted()V
 Landroid/app/ActivityTransitionCoordinator;->viewsReady(Landroid/util/ArrayMap;)V
 Landroid/app/ActivityTransitionCoordinator;->viewsTransitionComplete()V
-Landroid/app/ActivityTransitionState;
 Landroid/app/ActivityTransitionState;-><init>()V
 Landroid/app/ActivityTransitionState;->addExitTransitionCoordinator(Landroid/app/ExitTransitionCoordinator;)I
 Landroid/app/ActivityTransitionState;->clear()V
@@ -2596,19 +2365,13 @@
 Landroid/app/ActivityTransitionState;->startExitBackTransition(Landroid/app/Activity;)Z
 Landroid/app/ActivityTransitionState;->startExitOutTransition(Landroid/app/Activity;Landroid/os/Bundle;)V
 Landroid/app/ActivityTransitionState;->startPostponedEnterTransition()V
-Landroid/app/ActivityView$StateCallback;
 Landroid/app/ActivityView$StateCallback;-><init>()V
 Landroid/app/ActivityView$StateCallback;->onActivityViewDestroyed(Landroid/app/ActivityView;)V
 Landroid/app/ActivityView$StateCallback;->onActivityViewReady(Landroid/app/ActivityView;)V
 Landroid/app/ActivityView$StateCallback;->onTaskMovedToFront(Landroid/app/ActivityManager$StackInfo;)V
-Landroid/app/ActivityView$SurfaceCallback;
-Landroid/app/ActivityView$SurfaceCallback;-><init>()V
-Landroid/app/ActivityView$TaskStackListenerImpl;
-Landroid/app/ActivityView$TaskStackListenerImpl;-><init>()V
 Landroid/app/ActivityView$TaskStackListenerImpl;->getTopMostStackInfo()Landroid/app/ActivityManager$StackInfo;
 Landroid/app/ActivityView$TaskStackListenerImpl;->onTaskDescriptionChanged(ILandroid/app/ActivityManager$TaskDescription;)V
 Landroid/app/ActivityView$TaskStackListenerImpl;->onTaskMovedToFront(I)V
-Landroid/app/ActivityView;
 Landroid/app/ActivityView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/app/ActivityView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 Landroid/app/ActivityView;->cleanTapExcludeRegion()V
@@ -2638,7 +2401,6 @@
 Landroid/app/admin/ConnectEvent;-><init>(Ljava/lang/String;ILjava/lang/String;J)V
 Landroid/app/admin/ConnectEvent;->mIpAddress:Ljava/lang/String;
 Landroid/app/admin/ConnectEvent;->mPort:I
-Landroid/app/admin/DeviceAdminInfo$PolicyInfo;
 Landroid/app/admin/DeviceAdminInfo$PolicyInfo;-><init>(ILjava/lang/String;II)V
 Landroid/app/admin/DeviceAdminInfo$PolicyInfo;-><init>(ILjava/lang/String;IIII)V
 Landroid/app/admin/DeviceAdminInfo$PolicyInfo;->description:I
@@ -2661,7 +2423,6 @@
 Landroid/app/admin/DeviceAdminInfo;->USES_POLICY_PROFILE_OWNER:I
 Landroid/app/admin/DeviceAdminInfo;->USES_POLICY_SETS_GLOBAL_PROXY:I
 Landroid/app/admin/DeviceAdminInfo;->writePoliciesToXml(Lorg/xmlpull/v1/XmlSerializer;)V
-Landroid/app/admin/DeviceAdminReceiver$BugreportFailureCode;
 Landroid/app/admin/DeviceAdminReceiver;->ACTION_AFFILIATED_PROFILE_TRANSFER_OWNERSHIP_COMPLETE:Ljava/lang/String;
 Landroid/app/admin/DeviceAdminReceiver;->ACTION_BUGREPORT_FAILED:Ljava/lang/String;
 Landroid/app/admin/DeviceAdminReceiver;->ACTION_BUGREPORT_SHARE:Ljava/lang/String;
@@ -2689,24 +2450,13 @@
 Landroid/app/admin/DeviceAdminReceiver;->mManager:Landroid/app/admin/DevicePolicyManager;
 Landroid/app/admin/DeviceAdminReceiver;->mWho:Landroid/content/ComponentName;
 Landroid/app/admin/DeviceAdminReceiver;->TAG:Ljava/lang/String;
-Landroid/app/admin/DeviceAdminService$IDeviceAdminServiceImpl;
-Landroid/app/admin/DeviceAdminService$IDeviceAdminServiceImpl;-><init>()V
 Landroid/app/admin/DeviceAdminService;->mImpl:Landroid/app/admin/DeviceAdminService$IDeviceAdminServiceImpl;
-Landroid/app/admin/DevicePolicyCache$EmptyDevicePolicyCache;
 Landroid/app/admin/DevicePolicyCache$EmptyDevicePolicyCache;-><init>()V
 Landroid/app/admin/DevicePolicyCache$EmptyDevicePolicyCache;->getScreenCaptureDisabled(I)Z
 Landroid/app/admin/DevicePolicyCache$EmptyDevicePolicyCache;->INSTANCE:Landroid/app/admin/DevicePolicyCache$EmptyDevicePolicyCache;
-Landroid/app/admin/DevicePolicyCache;
 Landroid/app/admin/DevicePolicyCache;-><init>()V
 Landroid/app/admin/DevicePolicyCache;->getInstance()Landroid/app/admin/DevicePolicyCache;
 Landroid/app/admin/DevicePolicyCache;->getScreenCaptureDisabled(I)Z
-Landroid/app/admin/DevicePolicyManager$AttestationIdType;
-Landroid/app/admin/DevicePolicyManager$CreateAndManageUserFlags;
-Landroid/app/admin/DevicePolicyManager$LockNowFlag;
-Landroid/app/admin/DevicePolicyManager$LockTaskFeature;
-Landroid/app/admin/DevicePolicyManager$ProvisioningPreCondition;
-Landroid/app/admin/DevicePolicyManager$SystemSettingsWhitelist;
-Landroid/app/admin/DevicePolicyManager$UserProvisioningState;
 Landroid/app/admin/DevicePolicyManager;-><init>(Landroid/content/Context;Landroid/app/admin/IDevicePolicyManager;)V
 Landroid/app/admin/DevicePolicyManager;-><init>(Landroid/content/Context;Landroid/app/admin/IDevicePolicyManager;Z)V
 Landroid/app/admin/DevicePolicyManager;->ACTION_BUGREPORT_SHARING_ACCEPTED:Ljava/lang/String;
@@ -2812,9 +2562,7 @@
 Landroid/app/admin/DevicePolicyManager;->TAG:Ljava/lang/String;
 Landroid/app/admin/DevicePolicyManager;->uninstallPackageWithActiveAdmins(Ljava/lang/String;)V
 Landroid/app/admin/DevicePolicyManager;->wipeDataInternal(ILjava/lang/String;)V
-Landroid/app/admin/DevicePolicyManagerInternal$OnCrossProfileWidgetProvidersChangeListener;
 Landroid/app/admin/DevicePolicyManagerInternal$OnCrossProfileWidgetProvidersChangeListener;->onCrossProfileWidgetProvidersChanged(ILjava/util/List;)V
-Landroid/app/admin/DevicePolicyManagerInternal;
 Landroid/app/admin/DevicePolicyManagerInternal;-><init>()V
 Landroid/app/admin/DevicePolicyManagerInternal;->addOnCrossProfileWidgetProvidersChangeListener(Landroid/app/admin/DevicePolicyManagerInternal$OnCrossProfileWidgetProvidersChangeListener;)V
 Landroid/app/admin/DevicePolicyManagerInternal;->canUserHaveUntrustedCredentialReset(I)Z
@@ -2851,16 +2599,12 @@
 Landroid/app/admin/FreezePeriod;->toCurrentOrFutureRealDates(Ljava/time/LocalDate;)Landroid/util/Pair;
 Landroid/app/admin/FreezePeriod;->validateAgainstPreviousFreezePeriod(Ljava/util/List;Ljava/time/LocalDate;Ljava/time/LocalDate;Ljava/time/LocalDate;)V
 Landroid/app/admin/FreezePeriod;->validatePeriods(Ljava/util/List;)V
-Landroid/app/admin/IDeviceAdminService$Stub$Proxy;
 Landroid/app/admin/IDeviceAdminService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/admin/IDeviceAdminService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/admin/IDeviceAdminService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/app/admin/IDeviceAdminService$Stub;
 Landroid/app/admin/IDeviceAdminService$Stub;-><init>()V
 Landroid/app/admin/IDeviceAdminService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/admin/IDeviceAdminService;
 Landroid/app/admin/IDeviceAdminService$Stub;->DESCRIPTOR:Ljava/lang/String;
-Landroid/app/admin/IDeviceAdminService;
-Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;
 Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->addCrossProfileIntentFilter(Landroid/content/ComponentName;Landroid/content/IntentFilter;I)V
 Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->addCrossProfileWidgetProvider(Landroid/content/ComponentName;Ljava/lang/String;)Z
@@ -3128,7 +2872,6 @@
 Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->uninstallPackageWithActiveAdmins(Ljava/lang/String;)V
 Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->updateOverrideApn(Landroid/content/ComponentName;ILandroid/telephony/data/ApnSetting;)Z
 Landroid/app/admin/IDevicePolicyManager$Stub$Proxy;->wipeDataWithReason(ILjava/lang/String;)V
-Landroid/app/admin/IDevicePolicyManager$Stub;
 Landroid/app/admin/IDevicePolicyManager$Stub;-><init>()V
 Landroid/app/admin/IDevicePolicyManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_addCrossProfileIntentFilter:I
@@ -3393,7 +3136,6 @@
 Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_uninstallPackageWithActiveAdmins:I
 Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_updateOverrideApn:I
 Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_wipeDataWithReason:I
-Landroid/app/admin/IDevicePolicyManager;
 Landroid/app/admin/IDevicePolicyManager;->addCrossProfileIntentFilter(Landroid/content/ComponentName;Landroid/content/IntentFilter;I)V
 Landroid/app/admin/IDevicePolicyManager;->addCrossProfileWidgetProvider(Landroid/content/ComponentName;Ljava/lang/String;)Z
 Landroid/app/admin/IDevicePolicyManager;->addOverrideApn(Landroid/content/ComponentName;Landroid/telephony/data/ApnSetting;)I
@@ -3665,8 +3407,6 @@
 Landroid/app/admin/NetworkEvent;->PARCEL_TOKEN_CONNECT_EVENT:I
 Landroid/app/admin/NetworkEvent;->PARCEL_TOKEN_DNS_EVENT:I
 Landroid/app/admin/NetworkEvent;->setId(J)V
-Landroid/app/admin/PasswordMetrics$CharacterCatagory;
-Landroid/app/admin/PasswordMetrics;
 Landroid/app/admin/PasswordMetrics;-><init>()V
 Landroid/app/admin/PasswordMetrics;-><init>(II)V
 Landroid/app/admin/PasswordMetrics;-><init>(IIIIIIII)V
@@ -3695,8 +3435,6 @@
 Landroid/app/admin/SecurityLog$SecurityEvent;->mEvent:Landroid/util/EventLog$Event;
 Landroid/app/admin/SecurityLog$SecurityEvent;->mId:J
 Landroid/app/admin/SecurityLog$SecurityEvent;->setId(J)V
-Landroid/app/admin/SecurityLog$SecurityLogLevel;
-Landroid/app/admin/SecurityLog$SecurityLogTag;
 Landroid/app/admin/SecurityLog;->getLoggingEnabledProperty()Z
 Landroid/app/admin/SecurityLog;->isLoggingEnabled()Z
 Landroid/app/admin/SecurityLog;->PROPERTY_LOGGING_ENABLED:Ljava/lang/String;
@@ -3706,8 +3444,6 @@
 Landroid/app/admin/SecurityLog;->readPreviousEvents(Ljava/util/Collection;)V
 Landroid/app/admin/SecurityLog;->setLoggingEnabledProperty(Z)V
 Landroid/app/admin/SecurityLog;->writeEvent(ILjava/lang/String;)I
-Landroid/app/admin/SecurityLog;->writeEvent(I[[Ljava/lang/Object;)I
-Landroid/app/admin/SecurityLogTags;
 Landroid/app/admin/SecurityLogTags;-><init>()V
 Landroid/app/admin/SecurityLogTags;->SECURITY_ADB_SHELL_COMMAND:I
 Landroid/app/admin/SecurityLogTags;->SECURITY_ADB_SHELL_INTERACTIVE:I
@@ -3775,7 +3511,6 @@
 Landroid/app/admin/SecurityLogTags;->writeSecurityUserRestrictionAdded(Ljava/lang/String;ILjava/lang/String;)V
 Landroid/app/admin/SecurityLogTags;->writeSecurityUserRestrictionRemoved(Ljava/lang/String;ILjava/lang/String;)V
 Landroid/app/admin/SecurityLogTags;->writeSecurityWipeFailed(Ljava/lang/String;I)V
-Landroid/app/admin/SystemUpdateInfo$SecurityPatchState;
 Landroid/app/admin/SystemUpdateInfo;-><init>(JI)V
 Landroid/app/admin/SystemUpdateInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/app/admin/SystemUpdateInfo;->ATTR_ORIGINAL_BUILD:Ljava/lang/String;
@@ -3788,13 +3523,10 @@
 Landroid/app/admin/SystemUpdateInfo;->readFromXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/app/admin/SystemUpdateInfo;
 Landroid/app/admin/SystemUpdateInfo;->securityPatchStateToString(I)Ljava/lang/String;
 Landroid/app/admin/SystemUpdateInfo;->writeToXml(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;)V
-Landroid/app/admin/SystemUpdatePolicy$InstallationOption$InstallationOptionType;
 Landroid/app/admin/SystemUpdatePolicy$InstallationOption;-><init>(IJ)V
 Landroid/app/admin/SystemUpdatePolicy$InstallationOption;->limitEffectiveTime(J)V
 Landroid/app/admin/SystemUpdatePolicy$InstallationOption;->mEffectiveTime:J
 Landroid/app/admin/SystemUpdatePolicy$InstallationOption;->mType:I
-Landroid/app/admin/SystemUpdatePolicy$SystemUpdatePolicyType;
-Landroid/app/admin/SystemUpdatePolicy$ValidationFailedException$ValidationFailureType;
 Landroid/app/admin/SystemUpdatePolicy$ValidationFailedException;-><init>(ILjava/lang/String;)V
 Landroid/app/admin/SystemUpdatePolicy$ValidationFailedException;->combinedPeriodTooClose(Ljava/lang/String;)Landroid/app/admin/SystemUpdatePolicy$ValidationFailedException;
 Landroid/app/admin/SystemUpdatePolicy$ValidationFailedException;->combinedPeriodTooLong(Ljava/lang/String;)Landroid/app/admin/SystemUpdatePolicy$ValidationFailedException;
@@ -3831,7 +3563,6 @@
 Landroid/app/admin/SystemUpdatePolicy;->validateFreezePeriods()V
 Landroid/app/admin/SystemUpdatePolicy;->validateType()V
 Landroid/app/admin/SystemUpdatePolicy;->WINDOW_BOUNDARY:I
-Landroid/app/AlarmClockInfoProto;
 Landroid/app/AlarmClockInfoProto;-><init>()V
 Landroid/app/AlarmClockInfoProto;->SHOW_INTENT:J
 Landroid/app/AlarmClockInfoProto;->TRIGGER_TIME_MS:J
@@ -3839,9 +3570,6 @@
 Landroid/app/AlarmManager$AlarmClockInfo;->mShowIntent:Landroid/app/PendingIntent;
 Landroid/app/AlarmManager$AlarmClockInfo;->mTriggerTime:J
 Landroid/app/AlarmManager$AlarmClockInfo;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/app/AlarmManager$AlarmType;
-Landroid/app/AlarmManager$ListenerWrapper;
-Landroid/app/AlarmManager$ListenerWrapper;-><init>(Landroid/app/AlarmManager$OnAlarmListener;)V
 Landroid/app/AlarmManager$ListenerWrapper;->cancel()V
 Landroid/app/AlarmManager$ListenerWrapper;->doAlarm(Landroid/app/IAlarmCompleteListener;)V
 Landroid/app/AlarmManager$ListenerWrapper;->mCompletion:Landroid/app/IAlarmCompleteListener;
@@ -3862,7 +3590,6 @@
 Landroid/app/AlarmManager;->setImpl(IJJJILandroid/app/PendingIntent;Landroid/app/AlarmManager$OnAlarmListener;Ljava/lang/String;Landroid/os/Handler;Landroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;)V
 Landroid/app/AlarmManager;->sWrappers:Landroid/util/ArrayMap;
 Landroid/app/AlarmManager;->TAG:Ljava/lang/String;
-Landroid/app/AlarmManagerProto;
 Landroid/app/AlarmManagerProto;-><init>()V
 Landroid/app/AlarmManagerProto;->ELAPSED_REALTIME:I
 Landroid/app/AlarmManagerProto;->ELAPSED_REALTIME_WAKEUP:I
@@ -3878,7 +3605,6 @@
 Landroid/app/AliasActivity;->ALIAS_META_DATA:Ljava/lang/String;
 Landroid/app/AliasActivity;->parseAlias(Lorg/xmlpull/v1/XmlPullParser;)Landroid/content/Intent;
 Landroid/app/AppComponentFactory;->DEFAULT:Landroid/app/AppComponentFactory;
-Landroid/app/AppGlobals;
 Landroid/app/AppGlobals;-><init>()V
 Landroid/app/AppGlobals;->getIntCoreSetting(Ljava/lang/String;I)I
 Landroid/app/Application;->collectComponentCallbacks()[Ljava/lang/Object;
@@ -3887,7 +3613,6 @@
 Landroid/app/Application;->TAG:Ljava/lang/String;
 Landroid/app/ApplicationErrorReport$CrashInfo;->appendStackTrace(Ljava/lang/String;)V
 Landroid/app/ApplicationErrorReport$CrashInfo;->sanitizeString(Ljava/lang/String;)Ljava/lang/String;
-Landroid/app/ApplicationErrorReport$ParcelableCrashInfo;
 Landroid/app/ApplicationErrorReport$ParcelableCrashInfo;-><init>()V
 Landroid/app/ApplicationErrorReport$ParcelableCrashInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/app/ApplicationErrorReport$ParcelableCrashInfo;-><init>(Ljava/lang/Throwable;)V
@@ -3896,7 +3621,6 @@
 Landroid/app/ApplicationErrorReport;->DEFAULT_ERROR_RECEIVER_PROPERTY:Ljava/lang/String;
 Landroid/app/ApplicationErrorReport;->getErrorReportReceiver(Landroid/content/pm/PackageManager;Ljava/lang/String;Ljava/lang/String;)Landroid/content/ComponentName;
 Landroid/app/ApplicationErrorReport;->SYSTEM_APPS_ERROR_RECEIVER_PROPERTY:Ljava/lang/String;
-Landroid/app/ApplicationLoaders;
 Landroid/app/ApplicationLoaders;-><init>()V
 Landroid/app/ApplicationLoaders;->addNative(Ljava/lang/ClassLoader;Ljava/util/Collection;)V
 Landroid/app/ApplicationLoaders;->addPath(Ljava/lang/ClassLoader;Ljava/lang/String;)V
@@ -3904,18 +3628,15 @@
 Landroid/app/ApplicationLoaders;->gApplicationLoaders:Landroid/app/ApplicationLoaders;
 Landroid/app/ApplicationLoaders;->getClassLoader(Ljava/lang/String;IZLjava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;)Ljava/lang/ClassLoader;
 Landroid/app/ApplicationLoaders;->getClassLoader(Ljava/lang/String;IZLjava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/ClassLoader;
-Landroid/app/ApplicationPackageManager$DexModuleRegisterCallbackDelegate;
 Landroid/app/ApplicationPackageManager$DexModuleRegisterCallbackDelegate;-><init>(Landroid/content/pm/PackageManager$DexModuleRegisterCallback;)V
 Landroid/app/ApplicationPackageManager$DexModuleRegisterCallbackDelegate;->callback:Landroid/content/pm/PackageManager$DexModuleRegisterCallback;
 Landroid/app/ApplicationPackageManager$DexModuleRegisterCallbackDelegate;->mHandler:Landroid/os/Handler;
 Landroid/app/ApplicationPackageManager$DexModuleRegisterCallbackDelegate;->MSG_DEX_MODULE_REGISTERED:I
 Landroid/app/ApplicationPackageManager$DexModuleRegisterCallbackDelegate;->onDexModuleRegistered(Ljava/lang/String;ZLjava/lang/String;)V
-Landroid/app/ApplicationPackageManager$DexModuleRegisterResult;
 Landroid/app/ApplicationPackageManager$DexModuleRegisterResult;-><init>(Ljava/lang/String;ZLjava/lang/String;)V
 Landroid/app/ApplicationPackageManager$DexModuleRegisterResult;->dexModulePath:Ljava/lang/String;
 Landroid/app/ApplicationPackageManager$DexModuleRegisterResult;->message:Ljava/lang/String;
 Landroid/app/ApplicationPackageManager$DexModuleRegisterResult;->success:Z
-Landroid/app/ApplicationPackageManager$MoveCallbackDelegate;
 Landroid/app/ApplicationPackageManager$MoveCallbackDelegate;-><init>(Landroid/content/pm/PackageManager$MoveCallback;Landroid/os/Looper;)V
 Landroid/app/ApplicationPackageManager$MoveCallbackDelegate;->mCallback:Landroid/content/pm/PackageManager$MoveCallback;
 Landroid/app/ApplicationPackageManager$MoveCallbackDelegate;->mHandler:Landroid/os/Handler;
@@ -3923,20 +3644,16 @@
 Landroid/app/ApplicationPackageManager$MoveCallbackDelegate;->MSG_STATUS_CHANGED:I
 Landroid/app/ApplicationPackageManager$MoveCallbackDelegate;->onCreated(ILandroid/os/Bundle;)V
 Landroid/app/ApplicationPackageManager$MoveCallbackDelegate;->onStatusChanged(IIJ)V
-Landroid/app/ApplicationPackageManager$OnPermissionsChangeListenerDelegate;
-Landroid/app/ApplicationPackageManager$OnPermissionsChangeListenerDelegate;-><init>(Landroid/content/pm/PackageManager$OnPermissionsChangedListener;Landroid/os/Looper;)V
 Landroid/app/ApplicationPackageManager$OnPermissionsChangeListenerDelegate;->mHandler:Landroid/os/Handler;
 Landroid/app/ApplicationPackageManager$OnPermissionsChangeListenerDelegate;->mListener:Landroid/content/pm/PackageManager$OnPermissionsChangedListener;
 Landroid/app/ApplicationPackageManager$OnPermissionsChangeListenerDelegate;->MSG_PERMISSIONS_CHANGED:I
 Landroid/app/ApplicationPackageManager$OnPermissionsChangeListenerDelegate;->onPermissionsChanged(I)V
-Landroid/app/ApplicationPackageManager$ResourceName;
 Landroid/app/ApplicationPackageManager$ResourceName;-><init>(Landroid/content/pm/ApplicationInfo;I)V
 Landroid/app/ApplicationPackageManager$ResourceName;-><init>(Landroid/content/pm/ComponentInfo;I)V
 Landroid/app/ApplicationPackageManager$ResourceName;-><init>(Landroid/content/pm/ResolveInfo;I)V
 Landroid/app/ApplicationPackageManager$ResourceName;-><init>(Ljava/lang/String;I)V
 Landroid/app/ApplicationPackageManager$ResourceName;->iconId:I
 Landroid/app/ApplicationPackageManager$ResourceName;->packageName:Ljava/lang/String;
-Landroid/app/ApplicationPackageManager;
 Landroid/app/ApplicationPackageManager;->addCrossProfileIntentFilter(Landroid/content/IntentFilter;III)V
 Landroid/app/ApplicationPackageManager;->addPreferredActivityAsUser(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;I)V
 Landroid/app/ApplicationPackageManager;->clearApplicationUserData(Ljava/lang/String;Landroid/content/pm/IPackageDataObserver;)V
@@ -4031,7 +3748,6 @@
 Landroid/app/ApplicationPackageManager;->sSync:Ljava/lang/Object;
 Landroid/app/ApplicationPackageManager;->TAG:Ljava/lang/String;
 Landroid/app/ApplicationPackageManager;->unregisterMoveCallback(Landroid/content/pm/PackageManager$MoveCallback;)V
-Landroid/app/ApplicationThreadConstants;
 Landroid/app/ApplicationThreadConstants;-><init>()V
 Landroid/app/ApplicationThreadConstants;->BACKUP_MODE_FULL:I
 Landroid/app/ApplicationThreadConstants;->BACKUP_MODE_INCREMENTAL:I
@@ -4044,10 +3760,8 @@
 Landroid/app/ApplicationThreadConstants;->PACKAGE_REMOVED:I
 Landroid/app/ApplicationThreadConstants;->PACKAGE_REMOVED_DONT_KILL:I
 Landroid/app/ApplicationThreadConstants;->PACKAGE_REPLACED:I
-Landroid/app/AppOpsManager$OnOpChangedInternalListener;
 Landroid/app/AppOpsManager$OnOpChangedInternalListener;-><init>()V
 Landroid/app/AppOpsManager$OnOpChangedInternalListener;->onOpChanged(ILjava/lang/String;)V
-Landroid/app/AppOpsManager$OpEntry;
 Landroid/app/AppOpsManager$OpEntry;-><init>(IIJJIILjava/lang/String;)V
 Landroid/app/AppOpsManager$OpEntry;-><init>(II[J[JIILjava/lang/String;)V
 Landroid/app/AppOpsManager$OpEntry;-><init>(II[J[JIZILjava/lang/String;)V
@@ -4065,7 +3779,6 @@
 Landroid/app/AppOpsManager$OpEntry;->mRejectTimes:[J
 Landroid/app/AppOpsManager$OpEntry;->mRunning:Z
 Landroid/app/AppOpsManager$OpEntry;->mTimes:[J
-Landroid/app/AppOpsManager$PackageOps;
 Landroid/app/AppOpsManager$PackageOps;-><init>(Landroid/os/Parcel;)V
 Landroid/app/AppOpsManager$PackageOps;->mEntries:Ljava/util/List;
 Landroid/app/AppOpsManager$PackageOps;->mPackageName:Ljava/lang/String;
@@ -4119,10 +3832,8 @@
 Landroid/app/AppOpsManager;->UID_STATE_PERSISTENT:I
 Landroid/app/AppOpsManager;->UID_STATE_TOP:I
 Landroid/app/AppOpsManager;->_NUM_UID_STATE:I
-Landroid/app/AppOpsManagerInternal;
 Landroid/app/AppOpsManagerInternal;-><init>()V
 Landroid/app/AppOpsManagerInternal;->setDeviceAndProfileOwners(Landroid/util/SparseIntArray;)V
-Landroid/app/AppProtoEnums;
 Landroid/app/AppProtoEnums;-><init>()V
 Landroid/app/AppProtoEnums;->APP_TRANSITION_REASON_UNKNOWN:I
 Landroid/app/AppProtoEnums;->APP_TRANSITION_RECENTS_ANIM:I
@@ -4154,24 +3865,19 @@
 Landroid/app/AppProtoEnums;->PROCESS_STATE_UNKNOWN_TO_PROTO:I
 Landroid/app/assist/AssistContent;->mIsAppProvidedWebUri:Z
 Landroid/app/assist/AssistContent;->setDefaultIntent(Landroid/content/Intent;)V
-Landroid/app/assist/AssistStructure$AutofillOverlay;
 Landroid/app/assist/AssistStructure$AutofillOverlay;-><init>()V
 Landroid/app/assist/AssistStructure$AutofillOverlay;->focused:Z
 Landroid/app/assist/AssistStructure$AutofillOverlay;->value:Landroid/view/autofill/AutofillValue;
-Landroid/app/assist/AssistStructure$HtmlInfoNode;
 Landroid/app/assist/AssistStructure$HtmlInfoNode;-><init>(Landroid/app/assist/AssistStructure$HtmlInfoNodeBuilder;)V
 Landroid/app/assist/AssistStructure$HtmlInfoNode;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/app/assist/AssistStructure$HtmlInfoNode;->mAttributes:Ljava/util/ArrayList;
 Landroid/app/assist/AssistStructure$HtmlInfoNode;->mNames:[Ljava/lang/String;
 Landroid/app/assist/AssistStructure$HtmlInfoNode;->mTag:Ljava/lang/String;
 Landroid/app/assist/AssistStructure$HtmlInfoNode;->mValues:[Ljava/lang/String;
-Landroid/app/assist/AssistStructure$HtmlInfoNodeBuilder;
 Landroid/app/assist/AssistStructure$HtmlInfoNodeBuilder;-><init>(Ljava/lang/String;)V
 Landroid/app/assist/AssistStructure$HtmlInfoNodeBuilder;->mNames:Ljava/util/ArrayList;
 Landroid/app/assist/AssistStructure$HtmlInfoNodeBuilder;->mTag:Ljava/lang/String;
 Landroid/app/assist/AssistStructure$HtmlInfoNodeBuilder;->mValues:Ljava/util/ArrayList;
-Landroid/app/assist/AssistStructure$ParcelTransferReader;
-Landroid/app/assist/AssistStructure$ParcelTransferReader;-><init>(Landroid/os/IBinder;)V
 Landroid/app/assist/AssistStructure$ParcelTransferReader;->fetchData()V
 Landroid/app/assist/AssistStructure$ParcelTransferReader;->go()V
 Landroid/app/assist/AssistStructure$ParcelTransferReader;->mChannel:Landroid/os/IBinder;
@@ -4182,7 +3888,6 @@
 Landroid/app/assist/AssistStructure$ParcelTransferReader;->mTmpMatrix:[F
 Landroid/app/assist/AssistStructure$ParcelTransferReader;->mTransferToken:Landroid/os/IBinder;
 Landroid/app/assist/AssistStructure$ParcelTransferReader;->readParcel(II)Landroid/os/Parcel;
-Landroid/app/assist/AssistStructure$ParcelTransferWriter;
 Landroid/app/assist/AssistStructure$ParcelTransferWriter;-><init>(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;)V
 Landroid/app/assist/AssistStructure$ParcelTransferWriter;->mCurViewStackEntry:Landroid/app/assist/AssistStructure$ViewStackEntry;
 Landroid/app/assist/AssistStructure$ParcelTransferWriter;->mCurViewStackPos:I
@@ -4199,7 +3904,6 @@
 Landroid/app/assist/AssistStructure$ParcelTransferWriter;->writeToParcel(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;)V
 Landroid/app/assist/AssistStructure$ParcelTransferWriter;->writeToParcelInner(Landroid/app/assist/AssistStructure;Landroid/os/Parcel;)Z
 Landroid/app/assist/AssistStructure$ParcelTransferWriter;->writeView(Landroid/app/assist/AssistStructure$ViewNode;Landroid/os/Parcel;Landroid/os/PooledStringWriter;I)V
-Landroid/app/assist/AssistStructure$SendChannel;
 Landroid/app/assist/AssistStructure$SendChannel;-><init>(Landroid/app/assist/AssistStructure;)V
 Landroid/app/assist/AssistStructure$SendChannel;->mAssistStructure:Landroid/app/assist/AssistStructure;
 Landroid/app/assist/AssistStructure$ViewNode;-><init>()V
@@ -4275,7 +3979,6 @@
 Landroid/app/assist/AssistStructure$ViewNode;->setWebDomain(Ljava/lang/String;)V
 Landroid/app/assist/AssistStructure$ViewNode;->updateAutofillValue(Landroid/view/autofill/AutofillValue;)V
 Landroid/app/assist/AssistStructure$ViewNode;->writeSelfToParcel(Landroid/os/Parcel;Landroid/os/PooledStringWriter;Z[F)I
-Landroid/app/assist/AssistStructure$ViewNodeBuilder;
 Landroid/app/assist/AssistStructure$ViewNodeBuilder;-><init>(Landroid/app/assist/AssistStructure;Landroid/app/assist/AssistStructure$ViewNode;Z)V
 Landroid/app/assist/AssistStructure$ViewNodeBuilder;->getNodeText()Landroid/app/assist/AssistStructure$ViewNodeText;
 Landroid/app/assist/AssistStructure$ViewNodeBuilder;->getTempRect()Landroid/graphics/Rect;
@@ -4283,7 +3986,6 @@
 Landroid/app/assist/AssistStructure$ViewNodeBuilder;->mAsync:Z
 Landroid/app/assist/AssistStructure$ViewNodeBuilder;->mNode:Landroid/app/assist/AssistStructure$ViewNode;
 Landroid/app/assist/AssistStructure$ViewNodeBuilder;->setAssistBlocked(Z)V
-Landroid/app/assist/AssistStructure$ViewNodeText;
 Landroid/app/assist/AssistStructure$ViewNodeText;-><init>()V
 Landroid/app/assist/AssistStructure$ViewNodeText;-><init>(Landroid/os/Parcel;Z)V
 Landroid/app/assist/AssistStructure$ViewNodeText;->isSimple()Z
@@ -4298,7 +4000,6 @@
 Landroid/app/assist/AssistStructure$ViewNodeText;->mTextSize:F
 Landroid/app/assist/AssistStructure$ViewNodeText;->mTextStyle:I
 Landroid/app/assist/AssistStructure$ViewNodeText;->writeToParcel(Landroid/os/Parcel;ZZ)V
-Landroid/app/assist/AssistStructure$ViewStackEntry;
 Landroid/app/assist/AssistStructure$ViewStackEntry;-><init>()V
 Landroid/app/assist/AssistStructure$ViewStackEntry;->curChild:I
 Landroid/app/assist/AssistStructure$ViewStackEntry;->node:Landroid/app/assist/AssistStructure$ViewNode;
@@ -4358,7 +4059,6 @@
 Landroid/app/AutomaticZenRule;->interruptionFilter:I
 Landroid/app/AutomaticZenRule;->name:Ljava/lang/String;
 Landroid/app/AutomaticZenRule;->owner:Landroid/content/ComponentName;
-Landroid/app/BackStackRecord$Op;
 Landroid/app/BackStackRecord$Op;-><init>()V
 Landroid/app/BackStackRecord$Op;-><init>(ILandroid/app/Fragment;)V
 Landroid/app/BackStackRecord$Op;->cmd:I
@@ -4367,7 +4067,6 @@
 Landroid/app/BackStackRecord$Op;->fragment:Landroid/app/Fragment;
 Landroid/app/BackStackRecord$Op;->popEnterAnim:I
 Landroid/app/BackStackRecord$Op;->popExitAnim:I
-Landroid/app/BackStackRecord;
 Landroid/app/BackStackRecord;-><init>(Landroid/app/FragmentManagerImpl;)V
 Landroid/app/BackStackRecord;->addOp(Landroid/app/BackStackRecord$Op;)V
 Landroid/app/BackStackRecord;->bumpBackStackNesting(I)V
@@ -4420,14 +4119,10 @@
 Landroid/app/BackStackRecord;->setOnStartPostponedListener(Landroid/app/Fragment$OnStartEnterTransitionListener;)V
 Landroid/app/BackStackRecord;->TAG:Ljava/lang/String;
 Landroid/app/BackStackRecord;->trackAddedFragmentsInPop(Ljava/util/ArrayList;)V
-Landroid/app/backup/AbsoluteFileBackupHelper;
-Landroid/app/backup/AbsoluteFileBackupHelper;-><init>(Landroid/content/Context;[[Ljava/lang/String;)V
 Landroid/app/backup/AbsoluteFileBackupHelper;->DEBUG:Z
 Landroid/app/backup/AbsoluteFileBackupHelper;->mContext:Landroid/content/Context;
 Landroid/app/backup/AbsoluteFileBackupHelper;->mFiles:[Ljava/lang/String;
 Landroid/app/backup/AbsoluteFileBackupHelper;->TAG:Ljava/lang/String;
-Landroid/app/backup/BackupAgent$BackupServiceBinder;
-Landroid/app/backup/BackupAgent$BackupServiceBinder;-><init>()V
 Landroid/app/backup/BackupAgent$BackupServiceBinder;->doBackup(Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;JILandroid/app/backup/IBackupManager;I)V
 Landroid/app/backup/BackupAgent$BackupServiceBinder;->doFullBackup(Landroid/os/ParcelFileDescriptor;JILandroid/app/backup/IBackupManager;I)V
 Landroid/app/backup/BackupAgent$BackupServiceBinder;->doMeasureFullBackup(JILandroid/app/backup/IBackupManager;I)V
@@ -4437,11 +4132,8 @@
 Landroid/app/backup/BackupAgent$BackupServiceBinder;->doRestoreFinished(ILandroid/app/backup/IBackupManager;)V
 Landroid/app/backup/BackupAgent$BackupServiceBinder;->fail(Ljava/lang/String;)V
 Landroid/app/backup/BackupAgent$BackupServiceBinder;->TAG:Ljava/lang/String;
-Landroid/app/backup/BackupAgent$FailRunnable;
 Landroid/app/backup/BackupAgent$FailRunnable;-><init>(Ljava/lang/String;)V
 Landroid/app/backup/BackupAgent$FailRunnable;->mMessage:Ljava/lang/String;
-Landroid/app/backup/BackupAgent$SharedPrefsSynchronizer;
-Landroid/app/backup/BackupAgent$SharedPrefsSynchronizer;-><init>()V
 Landroid/app/backup/BackupAgent$SharedPrefsSynchronizer;->mLatch:Ljava/util/concurrent/CountDownLatch;
 Landroid/app/backup/BackupAgent;->applyXmlFiltersAndDoFullBackupForDomain(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Landroid/util/ArraySet;Landroid/util/ArraySet;Landroid/app/backup/FullBackupDataOutput;)V
 Landroid/app/backup/BackupAgent;->areIncludeRequiredTransportFlagsSatisfied(II)Z
@@ -4464,7 +4156,6 @@
 Landroid/app/backup/BackupAgentHelper;->getDispatcher()Landroid/app/backup/BackupHelperDispatcher;
 Landroid/app/backup/BackupAgentHelper;->mDispatcher:Landroid/app/backup/BackupHelperDispatcher;
 Landroid/app/backup/BackupAgentHelper;->TAG:Ljava/lang/String;
-Landroid/app/backup/BackupDataInput$EntityHeader;
 Landroid/app/backup/BackupDataInput$EntityHeader;-><init>()V
 Landroid/app/backup/BackupDataInput;->ctor(Ljava/io/FileDescriptor;)J
 Landroid/app/backup/BackupDataInput;->dtor(J)V
@@ -4486,9 +4177,7 @@
 Landroid/app/backup/BackupDataOutput;->setKeyPrefix_native(JLjava/lang/String;)V
 Landroid/app/backup/BackupDataOutput;->writeEntityData_native(J[BI)I
 Landroid/app/backup/BackupDataOutput;->writeEntityHeader_native(JLjava/lang/String;I)I
-Landroid/app/backup/BackupHelperDispatcher$Header;
 Landroid/app/backup/BackupHelperDispatcher$Header;-><init>()V
-Landroid/app/backup/BackupHelperDispatcher;
 Landroid/app/backup/BackupHelperDispatcher;-><init>()V
 Landroid/app/backup/BackupHelperDispatcher;->addHelper(Ljava/lang/String;Landroid/app/backup/BackupHelper;)V
 Landroid/app/backup/BackupHelperDispatcher;->allocateHeader_native(Landroid/app/backup/BackupHelperDispatcher$Header;Ljava/io/FileDescriptor;)I
@@ -4500,12 +4189,8 @@
 Landroid/app/backup/BackupHelperDispatcher;->skipChunk_native(Ljava/io/FileDescriptor;I)I
 Landroid/app/backup/BackupHelperDispatcher;->TAG:Ljava/lang/String;
 Landroid/app/backup/BackupHelperDispatcher;->writeHeader_native(Landroid/app/backup/BackupHelperDispatcher$Header;Ljava/io/FileDescriptor;I)I
-Landroid/app/backup/BackupManager$BackupManagerMonitorWrapper;
-Landroid/app/backup/BackupManager$BackupManagerMonitorWrapper;-><init>(Landroid/app/backup/BackupManagerMonitor;)V
 Landroid/app/backup/BackupManager$BackupManagerMonitorWrapper;->mMonitor:Landroid/app/backup/BackupManagerMonitor;
 Landroid/app/backup/BackupManager$BackupManagerMonitorWrapper;->onEvent(Landroid/os/Bundle;)V
-Landroid/app/backup/BackupManager$BackupObserverWrapper;
-Landroid/app/backup/BackupManager$BackupObserverWrapper;-><init>(Landroid/content/Context;Landroid/app/backup/BackupObserver;)V
 Landroid/app/backup/BackupManager$BackupObserverWrapper;->backupFinished(I)V
 Landroid/app/backup/BackupManager$BackupObserverWrapper;->mHandler:Landroid/os/Handler;
 Landroid/app/backup/BackupManager$BackupObserverWrapper;->mObserver:Landroid/app/backup/BackupObserver;
@@ -4514,8 +4199,6 @@
 Landroid/app/backup/BackupManager$BackupObserverWrapper;->MSG_UPDATE:I
 Landroid/app/backup/BackupManager$BackupObserverWrapper;->onResult(Ljava/lang/String;I)V
 Landroid/app/backup/BackupManager$BackupObserverWrapper;->onUpdate(Ljava/lang/String;Landroid/app/backup/BackupProgress;)V
-Landroid/app/backup/BackupManager$SelectTransportListenerWrapper;
-Landroid/app/backup/BackupManager$SelectTransportListenerWrapper;-><init>(Landroid/content/Context;Landroid/app/backup/SelectBackupTransportCallback;)V
 Landroid/app/backup/BackupManager$SelectTransportListenerWrapper;->mHandler:Landroid/os/Handler;
 Landroid/app/backup/BackupManager$SelectTransportListenerWrapper;->mListener:Landroid/app/backup/SelectBackupTransportCallback;
 Landroid/app/backup/BackupManager$SelectTransportListenerWrapper;->onFailure(I)V
@@ -4524,8 +4207,6 @@
 Landroid/app/backup/BackupManager;->mContext:Landroid/content/Context;
 Landroid/app/backup/BackupManager;->TAG:Ljava/lang/String;
 Landroid/app/backup/BackupProgress;-><init>(Landroid/os/Parcel;)V
-Landroid/app/backup/BackupTransport$TransportImpl;
-Landroid/app/backup/BackupTransport$TransportImpl;-><init>()V
 Landroid/app/backup/BackupTransport$TransportImpl;->abortFullRestore()I
 Landroid/app/backup/BackupTransport$TransportImpl;->cancelFullBackup()V
 Landroid/app/backup/BackupTransport$TransportImpl;->checkFullBackupSize(J)I
@@ -4554,8 +4235,6 @@
 Landroid/app/backup/BackupTransport$TransportImpl;->startRestore(J[Landroid/content/pm/PackageInfo;)I
 Landroid/app/backup/BackupTransport$TransportImpl;->transportDirName()Ljava/lang/String;
 Landroid/app/backup/BackupTransport;->mBinderImpl:Lcom/android/internal/backup/IBackupTransport;
-Landroid/app/backup/BlobBackupHelper;
-Landroid/app/backup/BlobBackupHelper;-><init>(I[[Ljava/lang/String;)V
 Landroid/app/backup/BlobBackupHelper;->applyRestoredPayload(Ljava/lang/String;[B)V
 Landroid/app/backup/BlobBackupHelper;->checksum([B)J
 Landroid/app/backup/BlobBackupHelper;->DEBUG:Z
@@ -4572,7 +4251,6 @@
 Landroid/app/backup/FileBackupHelper;->mFiles:[Ljava/lang/String;
 Landroid/app/backup/FileBackupHelper;->mFilesDir:Ljava/io/File;
 Landroid/app/backup/FileBackupHelper;->TAG:Ljava/lang/String;
-Landroid/app/backup/FileBackupHelperBase;
 Landroid/app/backup/FileBackupHelperBase;-><init>(Landroid/content/Context;)V
 Landroid/app/backup/FileBackupHelperBase;->ctor()J
 Landroid/app/backup/FileBackupHelperBase;->dtor(J)V
@@ -4586,13 +4264,11 @@
 Landroid/app/backup/FileBackupHelperBase;->writeFile(Ljava/io/File;Landroid/app/backup/BackupDataInputStream;)Z
 Landroid/app/backup/FileBackupHelperBase;->writeFile_native(JLjava/lang/String;J)I
 Landroid/app/backup/FileBackupHelperBase;->writeSnapshot_native(JLjava/io/FileDescriptor;)I
-Landroid/app/backup/FullBackup$BackupScheme$PathWithRequiredFlags;
 Landroid/app/backup/FullBackup$BackupScheme$PathWithRequiredFlags;-><init>(Ljava/lang/String;I)V
 Landroid/app/backup/FullBackup$BackupScheme$PathWithRequiredFlags;->getPath()Ljava/lang/String;
 Landroid/app/backup/FullBackup$BackupScheme$PathWithRequiredFlags;->getRequiredFlags()I
 Landroid/app/backup/FullBackup$BackupScheme$PathWithRequiredFlags;->mPath:Ljava/lang/String;
 Landroid/app/backup/FullBackup$BackupScheme$PathWithRequiredFlags;->mRequiredFlags:I
-Landroid/app/backup/FullBackup$BackupScheme;
 Landroid/app/backup/FullBackup$BackupScheme;-><init>(Landroid/content/Context;)V
 Landroid/app/backup/FullBackup$BackupScheme;->CACHE_DIR:Ljava/io/File;
 Landroid/app/backup/FullBackup$BackupScheme;->DATABASE_DIR:Ljava/io/File;
@@ -4630,7 +4306,6 @@
 Landroid/app/backup/FullBackup$BackupScheme;->TAG_INCLUDE:Ljava/lang/String;
 Landroid/app/backup/FullBackup$BackupScheme;->tokenToDirectoryPath(Ljava/lang/String;)Ljava/lang/String;
 Landroid/app/backup/FullBackup$BackupScheme;->validateInnerTagContents(Lorg/xmlpull/v1/XmlPullParser;)V
-Landroid/app/backup/FullBackup;
 Landroid/app/backup/FullBackup;-><init>()V
 Landroid/app/backup/FullBackup;->APK_TREE_TOKEN:Ljava/lang/String;
 Landroid/app/backup/FullBackup;->APPS_PREFIX:Ljava/lang/String;
@@ -4663,7 +4338,6 @@
 Landroid/app/backup/FullBackup;->SHARED_STORAGE_TOKEN:Ljava/lang/String;
 Landroid/app/backup/FullBackup;->TAG:Ljava/lang/String;
 Landroid/app/backup/FullBackup;->TAG_XML_PARSER:Ljava/lang/String;
-Landroid/app/backup/FullBackupAgent;
 Landroid/app/backup/FullBackupAgent;-><init>()V
 Landroid/app/backup/FullBackupDataOutput;-><init>(J)V
 Landroid/app/backup/FullBackupDataOutput;-><init>(JI)V
@@ -4673,7 +4347,6 @@
 Landroid/app/backup/FullBackupDataOutput;->mQuota:J
 Landroid/app/backup/FullBackupDataOutput;->mSize:J
 Landroid/app/backup/FullBackupDataOutput;->mTransportFlags:I
-Landroid/app/backup/IBackupManager$Stub$Proxy;
 Landroid/app/backup/IBackupManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/backup/IBackupManager$Stub$Proxy;->acknowledgeFullBackupOrRestore(IZLjava/lang/String;Ljava/lang/String;Landroid/app/backup/IFullBackupRestoreObserver;)V
 Landroid/app/backup/IBackupManager$Stub$Proxy;->adbBackup(Landroid/os/ParcelFileDescriptor;ZZZZZZZZ[Ljava/lang/String;)V
@@ -4714,7 +4387,6 @@
 Landroid/app/backup/IBackupManager$Stub$Proxy;->setBackupProvisioned(Z)V
 Landroid/app/backup/IBackupManager$Stub$Proxy;->setBackupServiceActive(IZ)V
 Landroid/app/backup/IBackupManager$Stub$Proxy;->updateTransportAttributes(Landroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;)V
-Landroid/app/backup/IBackupManager$Stub;
 Landroid/app/backup/IBackupManager$Stub;-><init>()V
 Landroid/app/backup/IBackupManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_acknowledgeFullBackupOrRestore:I
@@ -4754,7 +4426,6 @@
 Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_setBackupProvisioned:I
 Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_setBackupServiceActive:I
 Landroid/app/backup/IBackupManager$Stub;->TRANSACTION_updateTransportAttributes:I
-Landroid/app/backup/IBackupManager;
 Landroid/app/backup/IBackupManager;->adbBackup(Landroid/os/ParcelFileDescriptor;ZZZZZZZZ[Ljava/lang/String;)V
 Landroid/app/backup/IBackupManager;->adbRestore(Landroid/os/ParcelFileDescriptor;)V
 Landroid/app/backup/IBackupManager;->agentConnected(Ljava/lang/String;Landroid/os/IBinder;)V
@@ -4782,37 +4453,30 @@
 Landroid/app/backup/IBackupManager;->setBackupProvisioned(Z)V
 Landroid/app/backup/IBackupManager;->setBackupServiceActive(IZ)V
 Landroid/app/backup/IBackupManager;->updateTransportAttributes(Landroid/content/ComponentName;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;)V
-Landroid/app/backup/IBackupManagerMonitor$Stub$Proxy;
 Landroid/app/backup/IBackupManagerMonitor$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/backup/IBackupManagerMonitor$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/backup/IBackupManagerMonitor$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/app/backup/IBackupManagerMonitor$Stub$Proxy;->onEvent(Landroid/os/Bundle;)V
-Landroid/app/backup/IBackupManagerMonitor$Stub;
 Landroid/app/backup/IBackupManagerMonitor$Stub;-><init>()V
 Landroid/app/backup/IBackupManagerMonitor$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/backup/IBackupManagerMonitor;
 Landroid/app/backup/IBackupManagerMonitor$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/backup/IBackupManagerMonitor$Stub;->TRANSACTION_onEvent:I
-Landroid/app/backup/IBackupManagerMonitor;
 Landroid/app/backup/IBackupManagerMonitor;->onEvent(Landroid/os/Bundle;)V
-Landroid/app/backup/IBackupObserver$Stub$Proxy;
 Landroid/app/backup/IBackupObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/backup/IBackupObserver$Stub$Proxy;->backupFinished(I)V
 Landroid/app/backup/IBackupObserver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/backup/IBackupObserver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/app/backup/IBackupObserver$Stub$Proxy;->onResult(Ljava/lang/String;I)V
 Landroid/app/backup/IBackupObserver$Stub$Proxy;->onUpdate(Ljava/lang/String;Landroid/app/backup/BackupProgress;)V
-Landroid/app/backup/IBackupObserver$Stub;
 Landroid/app/backup/IBackupObserver$Stub;-><init>()V
 Landroid/app/backup/IBackupObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/backup/IBackupObserver;
 Landroid/app/backup/IBackupObserver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/backup/IBackupObserver$Stub;->TRANSACTION_backupFinished:I
 Landroid/app/backup/IBackupObserver$Stub;->TRANSACTION_onResult:I
 Landroid/app/backup/IBackupObserver$Stub;->TRANSACTION_onUpdate:I
-Landroid/app/backup/IBackupObserver;
 Landroid/app/backup/IBackupObserver;->backupFinished(I)V
 Landroid/app/backup/IBackupObserver;->onResult(Ljava/lang/String;I)V
 Landroid/app/backup/IBackupObserver;->onUpdate(Ljava/lang/String;Landroid/app/backup/BackupProgress;)V
-Landroid/app/backup/IFullBackupRestoreObserver$Stub$Proxy;
 Landroid/app/backup/IFullBackupRestoreObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/backup/IFullBackupRestoreObserver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/backup/IFullBackupRestoreObserver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -4823,7 +4487,6 @@
 Landroid/app/backup/IFullBackupRestoreObserver$Stub$Proxy;->onStartBackup()V
 Landroid/app/backup/IFullBackupRestoreObserver$Stub$Proxy;->onStartRestore()V
 Landroid/app/backup/IFullBackupRestoreObserver$Stub$Proxy;->onTimeout()V
-Landroid/app/backup/IFullBackupRestoreObserver$Stub;
 Landroid/app/backup/IFullBackupRestoreObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/backup/IFullBackupRestoreObserver;
 Landroid/app/backup/IFullBackupRestoreObserver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/backup/IFullBackupRestoreObserver$Stub;->TRANSACTION_onBackupPackage:I
@@ -4833,7 +4496,6 @@
 Landroid/app/backup/IFullBackupRestoreObserver$Stub;->TRANSACTION_onStartBackup:I
 Landroid/app/backup/IFullBackupRestoreObserver$Stub;->TRANSACTION_onStartRestore:I
 Landroid/app/backup/IFullBackupRestoreObserver$Stub;->TRANSACTION_onTimeout:I
-Landroid/app/backup/IFullBackupRestoreObserver;
 Landroid/app/backup/IFullBackupRestoreObserver;->onBackupPackage(Ljava/lang/String;)V
 Landroid/app/backup/IFullBackupRestoreObserver;->onEndBackup()V
 Landroid/app/backup/IFullBackupRestoreObserver;->onEndRestore()V
@@ -4841,7 +4503,6 @@
 Landroid/app/backup/IFullBackupRestoreObserver;->onStartBackup()V
 Landroid/app/backup/IFullBackupRestoreObserver;->onStartRestore()V
 Landroid/app/backup/IFullBackupRestoreObserver;->onTimeout()V
-Landroid/app/backup/IRestoreObserver$Stub$Proxy;
 Landroid/app/backup/IRestoreObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/backup/IRestoreObserver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/backup/IRestoreObserver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -4849,19 +4510,16 @@
 Landroid/app/backup/IRestoreObserver$Stub$Proxy;->restoreFinished(I)V
 Landroid/app/backup/IRestoreObserver$Stub$Proxy;->restoreSetsAvailable([Landroid/app/backup/RestoreSet;)V
 Landroid/app/backup/IRestoreObserver$Stub$Proxy;->restoreStarting(I)V
-Landroid/app/backup/IRestoreObserver$Stub;
 Landroid/app/backup/IRestoreObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/backup/IRestoreObserver;
 Landroid/app/backup/IRestoreObserver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/backup/IRestoreObserver$Stub;->TRANSACTION_onUpdate:I
 Landroid/app/backup/IRestoreObserver$Stub;->TRANSACTION_restoreFinished:I
 Landroid/app/backup/IRestoreObserver$Stub;->TRANSACTION_restoreSetsAvailable:I
 Landroid/app/backup/IRestoreObserver$Stub;->TRANSACTION_restoreStarting:I
-Landroid/app/backup/IRestoreObserver;
 Landroid/app/backup/IRestoreObserver;->onUpdate(ILjava/lang/String;)V
 Landroid/app/backup/IRestoreObserver;->restoreFinished(I)V
 Landroid/app/backup/IRestoreObserver;->restoreSetsAvailable([Landroid/app/backup/RestoreSet;)V
 Landroid/app/backup/IRestoreObserver;->restoreStarting(I)V
-Landroid/app/backup/IRestoreSession$Stub$Proxy;
 Landroid/app/backup/IRestoreSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/backup/IRestoreSession$Stub$Proxy;->endRestoreSession()V
 Landroid/app/backup/IRestoreSession$Stub$Proxy;->getAvailableRestoreSets(Landroid/app/backup/IRestoreObserver;Landroid/app/backup/IBackupManagerMonitor;)I
@@ -4870,7 +4528,6 @@
 Landroid/app/backup/IRestoreSession$Stub$Proxy;->restoreAll(JLandroid/app/backup/IRestoreObserver;Landroid/app/backup/IBackupManagerMonitor;)I
 Landroid/app/backup/IRestoreSession$Stub$Proxy;->restorePackage(Ljava/lang/String;Landroid/app/backup/IRestoreObserver;Landroid/app/backup/IBackupManagerMonitor;)I
 Landroid/app/backup/IRestoreSession$Stub$Proxy;->restoreSome(JLandroid/app/backup/IRestoreObserver;Landroid/app/backup/IBackupManagerMonitor;[Ljava/lang/String;)I
-Landroid/app/backup/IRestoreSession$Stub;
 Landroid/app/backup/IRestoreSession$Stub;-><init>()V
 Landroid/app/backup/IRestoreSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/backup/IRestoreSession;
 Landroid/app/backup/IRestoreSession$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -4879,37 +4536,29 @@
 Landroid/app/backup/IRestoreSession$Stub;->TRANSACTION_restoreAll:I
 Landroid/app/backup/IRestoreSession$Stub;->TRANSACTION_restorePackage:I
 Landroid/app/backup/IRestoreSession$Stub;->TRANSACTION_restoreSome:I
-Landroid/app/backup/IRestoreSession;
 Landroid/app/backup/IRestoreSession;->endRestoreSession()V
 Landroid/app/backup/IRestoreSession;->getAvailableRestoreSets(Landroid/app/backup/IRestoreObserver;Landroid/app/backup/IBackupManagerMonitor;)I
 Landroid/app/backup/IRestoreSession;->restoreAll(JLandroid/app/backup/IRestoreObserver;Landroid/app/backup/IBackupManagerMonitor;)I
 Landroid/app/backup/IRestoreSession;->restorePackage(Ljava/lang/String;Landroid/app/backup/IRestoreObserver;Landroid/app/backup/IBackupManagerMonitor;)I
 Landroid/app/backup/IRestoreSession;->restoreSome(JLandroid/app/backup/IRestoreObserver;Landroid/app/backup/IBackupManagerMonitor;[Ljava/lang/String;)I
-Landroid/app/backup/ISelectBackupTransportCallback$Stub$Proxy;
 Landroid/app/backup/ISelectBackupTransportCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/backup/ISelectBackupTransportCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/backup/ISelectBackupTransportCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/app/backup/ISelectBackupTransportCallback$Stub$Proxy;->onFailure(I)V
 Landroid/app/backup/ISelectBackupTransportCallback$Stub$Proxy;->onSuccess(Ljava/lang/String;)V
-Landroid/app/backup/ISelectBackupTransportCallback$Stub;
 Landroid/app/backup/ISelectBackupTransportCallback$Stub;-><init>()V
 Landroid/app/backup/ISelectBackupTransportCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/backup/ISelectBackupTransportCallback;
 Landroid/app/backup/ISelectBackupTransportCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/backup/ISelectBackupTransportCallback$Stub;->TRANSACTION_onFailure:I
 Landroid/app/backup/ISelectBackupTransportCallback$Stub;->TRANSACTION_onSuccess:I
-Landroid/app/backup/ISelectBackupTransportCallback;
 Landroid/app/backup/ISelectBackupTransportCallback;->onFailure(I)V
 Landroid/app/backup/ISelectBackupTransportCallback;->onSuccess(Ljava/lang/String;)V
 Landroid/app/backup/RestoreDescription;-><init>(Landroid/os/Parcel;)V
 Landroid/app/backup/RestoreDescription;->mDataType:I
 Landroid/app/backup/RestoreDescription;->mPackageName:Ljava/lang/String;
 Landroid/app/backup/RestoreDescription;->NO_MORE_PACKAGES_SENTINEL:Ljava/lang/String;
-Landroid/app/backup/RestoreSession$BackupManagerMonitorWrapper;
-Landroid/app/backup/RestoreSession$BackupManagerMonitorWrapper;-><init>(Landroid/app/backup/BackupManagerMonitor;)V
 Landroid/app/backup/RestoreSession$BackupManagerMonitorWrapper;->mMonitor:Landroid/app/backup/BackupManagerMonitor;
 Landroid/app/backup/RestoreSession$BackupManagerMonitorWrapper;->onEvent(Landroid/os/Bundle;)V
-Landroid/app/backup/RestoreSession$RestoreObserverWrapper;
-Landroid/app/backup/RestoreSession$RestoreObserverWrapper;-><init>(Landroid/content/Context;Landroid/app/backup/RestoreObserver;)V
 Landroid/app/backup/RestoreSession$RestoreObserverWrapper;->mAppObserver:Landroid/app/backup/RestoreObserver;
 Landroid/app/backup/RestoreSession$RestoreObserverWrapper;->mHandler:Landroid/os/Handler;
 Landroid/app/backup/RestoreSession$RestoreObserverWrapper;->MSG_RESTORE_FINISHED:I
@@ -4932,7 +4581,6 @@
 Landroid/app/backup/SharedPreferencesBackupHelper;->mContext:Landroid/content/Context;
 Landroid/app/backup/SharedPreferencesBackupHelper;->mPrefGroups:[Ljava/lang/String;
 Landroid/app/backup/SharedPreferencesBackupHelper;->TAG:Ljava/lang/String;
-Landroid/app/backup/WallpaperBackupHelper;
 Landroid/app/backup/WallpaperBackupHelper;-><init>(Landroid/content/Context;[Ljava/lang/String;)V
 Landroid/app/backup/WallpaperBackupHelper;->DEBUG:Z
 Landroid/app/backup/WallpaperBackupHelper;->mKeys:[Ljava/lang/String;
@@ -4957,7 +4605,6 @@
 Landroid/app/BroadcastOptions;->mTemporaryAppWhitelistDuration:J
 Landroid/app/BroadcastOptions;->setMaxManifestReceiverApiLevel(I)V
 Landroid/app/BroadcastOptions;->setMinManifestReceiverApiLevel(I)V
-Landroid/app/ClientTransactionHandler;
 Landroid/app/ClientTransactionHandler;-><init>()V
 Landroid/app/ClientTransactionHandler;->executeTransaction(Landroid/app/servertransaction/ClientTransaction;)V
 Landroid/app/ClientTransactionHandler;->getActivityClient(Landroid/os/IBinder;)Landroid/app/ActivityThread$ActivityClientRecord;
@@ -4985,10 +4632,8 @@
 Landroid/app/ClientTransactionHandler;->sendMessage(ILjava/lang/Object;)V
 Landroid/app/ClientTransactionHandler;->updatePendingConfiguration(Landroid/content/res/Configuration;)V
 Landroid/app/ClientTransactionHandler;->updateProcessState(IZ)V
-Landroid/app/ContentProviderHolder;
 Landroid/app/ContentProviderHolder;->connection:Landroid/os/IBinder;
 Landroid/app/ContentProviderHolder;->CREATOR:Landroid/os/Parcelable$Creator;
-Landroid/app/ContextImpl$ApplicationContentResolver;
 Landroid/app/ContextImpl$ApplicationContentResolver;-><init>(Landroid/content/Context;Landroid/app/ActivityThread;)V
 Landroid/app/ContextImpl$ApplicationContentResolver;->acquireExistingProvider(Landroid/content/Context;Ljava/lang/String;)Landroid/content/IContentProvider;
 Landroid/app/ContextImpl$ApplicationContentResolver;->acquireUnstableProvider(Landroid/content/Context;Ljava/lang/String;)Landroid/content/IContentProvider;
@@ -4997,8 +4642,6 @@
 Landroid/app/ContextImpl$ApplicationContentResolver;->releaseUnstableProvider(Landroid/content/IContentProvider;)Z
 Landroid/app/ContextImpl$ApplicationContentResolver;->resolveUserIdFromAuthority(Ljava/lang/String;)I
 Landroid/app/ContextImpl$ApplicationContentResolver;->unstableProviderDied(Landroid/content/IContentProvider;)V
-Landroid/app/ContextImpl$ServiceInitializationState;
-Landroid/app/ContextImpl;
 Landroid/app/ContextImpl;-><init>(Landroid/app/ContextImpl;Landroid/app/ActivityThread;Landroid/app/LoadedApk;Ljava/lang/String;Landroid/os/IBinder;Landroid/os/UserHandle;ILjava/lang/ClassLoader;)V
 Landroid/app/ContextImpl;->bindServiceAsUser(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/Handler;Landroid/os/UserHandle;)Z
 Landroid/app/ContextImpl;->bindServiceCommon(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/Handler;Landroid/os/UserHandle;)Z
@@ -5090,7 +4733,6 @@
 Landroid/app/DatePickerDialog;->mValidationCallback:Landroid/widget/DatePicker$ValidationCallback;
 Landroid/app/DatePickerDialog;->resolveDialogTheme(Landroid/content/Context;I)I
 Landroid/app/DatePickerDialog;->YEAR:Ljava/lang/String;
-Landroid/app/Dialog$ListenersHandler;
 Landroid/app/Dialog$ListenersHandler;-><init>(Landroid/app/Dialog;)V
 Landroid/app/Dialog$ListenersHandler;->mDialog:Ljava/lang/ref/WeakReference;
 Landroid/app/Dialog;-><init>(Landroid/content/Context;IZ)V
@@ -5130,7 +4772,6 @@
 Landroid/app/DialogFragment;->SAVED_SHOWS_DIALOG:Ljava/lang/String;
 Landroid/app/DialogFragment;->SAVED_STYLE:Ljava/lang/String;
 Landroid/app/DialogFragment;->SAVED_THEME:Ljava/lang/String;
-Landroid/app/DownloadManager$CursorTranslator;
 Landroid/app/DownloadManager$CursorTranslator;-><init>(Landroid/database/Cursor;Landroid/net/Uri;Z)V
 Landroid/app/DownloadManager$CursorTranslator;->getErrorCode(I)J
 Landroid/app/DownloadManager$CursorTranslator;->getLocalUri()Ljava/lang/String;
@@ -5176,20 +4817,17 @@
 Landroid/app/DownloadManager;->addCompletedDownload(Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;JZZLandroid/net/Uri;Landroid/net/Uri;)J
 Landroid/app/DownloadManager;->COLUMN_ALLOW_WRITE:Ljava/lang/String;
 Landroid/app/DownloadManager;->ERROR_BLOCKED:I
-Landroid/app/DownloadManager;->forceDownload([[J)V
 Landroid/app/DownloadManager;->getActiveNetworkWarningBytes(Landroid/content/Context;)J
 Landroid/app/DownloadManager;->getDownloadUri(J)Landroid/net/Uri;
 Landroid/app/DownloadManager;->getWhereArgsForIds([J[Ljava/lang/String;)[Ljava/lang/String;
 Landroid/app/DownloadManager;->isActiveNetworkExpensive(Landroid/content/Context;)Z
 Landroid/app/DownloadManager;->mAccessFilename:Z
-Landroid/app/DownloadManager;->markRowDeleted([[J)I
 Landroid/app/DownloadManager;->mBaseUri:Landroid/net/Uri;
 Landroid/app/DownloadManager;->mPackageName:Ljava/lang/String;
 Landroid/app/DownloadManager;->mResolver:Landroid/content/ContentResolver;
 Landroid/app/DownloadManager;->NON_DOWNLOADMANAGER_DOWNLOAD:Ljava/lang/String;
 Landroid/app/DownloadManager;->rename(Landroid/content/Context;JLjava/lang/String;)Z
 Landroid/app/DownloadManager;->validateArgumentIsNonEmpty(Ljava/lang/String;Ljava/lang/String;)V
-Landroid/app/EnterTransitionCoordinator;
 Landroid/app/EnterTransitionCoordinator;-><init>(Landroid/app/Activity;Landroid/os/ResultReceiver;Ljava/util/ArrayList;ZZ)V
 Landroid/app/EnterTransitionCoordinator;->allowOverlappingTransitions()Z
 Landroid/app/EnterTransitionCoordinator;->beginTransition(Landroid/view/ViewGroup;ZZ)Landroid/transition/Transition;
@@ -5240,9 +4878,7 @@
 Landroid/app/EnterTransitionCoordinator;->triggerViewsReady(Landroid/util/ArrayMap;)V
 Landroid/app/EnterTransitionCoordinator;->viewInstancesReady(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)V
 Landroid/app/EnterTransitionCoordinator;->viewsReady(Landroid/util/ArrayMap;)V
-Landroid/app/ExitTransitionCoordinator$HideSharedElementsCallback;
 Landroid/app/ExitTransitionCoordinator$HideSharedElementsCallback;->hideSharedElements()V
-Landroid/app/ExitTransitionCoordinator;
 Landroid/app/ExitTransitionCoordinator;-><init>(Landroid/app/Activity;Landroid/view/Window;Landroid/app/SharedElementCallback;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Z)V
 Landroid/app/ExitTransitionCoordinator;->beginTransitions()V
 Landroid/app/ExitTransitionCoordinator;->captureExitSharedElementsState()Landroid/os/Bundle;
@@ -5290,7 +4926,6 @@
 Landroid/app/ExpandableListActivity;->mAdapter:Landroid/widget/ExpandableListAdapter;
 Landroid/app/ExpandableListActivity;->mFinishedStart:Z
 Landroid/app/ExpandableListActivity;->mList:Landroid/widget/ExpandableListView;
-Landroid/app/Fragment$AnimationInfo;
 Landroid/app/Fragment$AnimationInfo;-><init>()V
 Landroid/app/Fragment$AnimationInfo;->mAllowEnterTransitionOverlap:Ljava/lang/Boolean;
 Landroid/app/Fragment$AnimationInfo;->mAllowReturnTransitionOverlap:Ljava/lang/Boolean;
@@ -5310,7 +4945,6 @@
 Landroid/app/Fragment$AnimationInfo;->mSharedElementReturnTransition:Landroid/transition/Transition;
 Landroid/app/Fragment$AnimationInfo;->mStartEnterTransitionListener:Landroid/app/Fragment$OnStartEnterTransitionListener;
 Landroid/app/Fragment$AnimationInfo;->mStateAfterAnimating:I
-Landroid/app/Fragment$OnStartEnterTransitionListener;
 Landroid/app/Fragment$OnStartEnterTransitionListener;->onStartEnterTransition()V
 Landroid/app/Fragment$OnStartEnterTransitionListener;->startListening()V
 Landroid/app/Fragment$SavedState;-><init>(Landroid/os/Bundle;)V
@@ -5459,19 +5093,14 @@
 Landroid/app/FragmentHostCallback;->restoreLoaderNonConfig(Landroid/util/ArrayMap;)V
 Landroid/app/FragmentHostCallback;->retainLoaderNonConfig()Landroid/util/ArrayMap;
 Landroid/app/FragmentManager;->openTransaction()Landroid/app/FragmentTransaction;
-Landroid/app/FragmentManagerImpl$AnimateOnHWLayerIfNeededListener;
 Landroid/app/FragmentManagerImpl$AnimateOnHWLayerIfNeededListener;-><init>(Landroid/view/View;)V
 Landroid/app/FragmentManagerImpl$AnimateOnHWLayerIfNeededListener;->mShouldRunOnHWLayer:Z
 Landroid/app/FragmentManagerImpl$AnimateOnHWLayerIfNeededListener;->mView:Landroid/view/View;
-Landroid/app/FragmentManagerImpl$OpGenerator;
 Landroid/app/FragmentManagerImpl$OpGenerator;->generateOps(Ljava/util/ArrayList;Ljava/util/ArrayList;)Z
-Landroid/app/FragmentManagerImpl$PopBackStackState;
-Landroid/app/FragmentManagerImpl$PopBackStackState;-><init>(Ljava/lang/String;II)V
 Landroid/app/FragmentManagerImpl$PopBackStackState;->generateOps(Ljava/util/ArrayList;Ljava/util/ArrayList;)Z
 Landroid/app/FragmentManagerImpl$PopBackStackState;->mFlags:I
 Landroid/app/FragmentManagerImpl$PopBackStackState;->mId:I
 Landroid/app/FragmentManagerImpl$PopBackStackState;->mName:Ljava/lang/String;
-Landroid/app/FragmentManagerImpl$StartEnterTransitionListener;
 Landroid/app/FragmentManagerImpl$StartEnterTransitionListener;-><init>(Landroid/app/BackStackRecord;Z)V
 Landroid/app/FragmentManagerImpl$StartEnterTransitionListener;->cancelTransaction()V
 Landroid/app/FragmentManagerImpl$StartEnterTransitionListener;->completeTransaction()V
@@ -5481,7 +5110,6 @@
 Landroid/app/FragmentManagerImpl$StartEnterTransitionListener;->mRecord:Landroid/app/BackStackRecord;
 Landroid/app/FragmentManagerImpl$StartEnterTransitionListener;->onStartEnterTransition()V
 Landroid/app/FragmentManagerImpl$StartEnterTransitionListener;->startListening()V
-Landroid/app/FragmentManagerImpl;
 Landroid/app/FragmentManagerImpl;-><init>()V
 Landroid/app/FragmentManagerImpl;->addAddedFragments(Landroid/util/ArraySet;)V
 Landroid/app/FragmentManagerImpl;->addBackStackState(Landroid/app/BackStackRecord;)V
@@ -5619,14 +5247,11 @@
 Landroid/app/FragmentManagerNonConfig;->getFragments()Ljava/util/List;
 Landroid/app/FragmentManagerNonConfig;->mChildNonConfigs:Ljava/util/List;
 Landroid/app/FragmentManagerNonConfig;->mFragments:Ljava/util/List;
-Landroid/app/FragmentTransaction$Transit;
-Landroid/app/GrantedUriPermission;
 Landroid/app/GrantedUriPermission;-><init>(Landroid/net/Uri;Ljava/lang/String;)V
 Landroid/app/GrantedUriPermission;-><init>(Landroid/os/Parcel;)V
 Landroid/app/GrantedUriPermission;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/app/GrantedUriPermission;->packageName:Ljava/lang/String;
 Landroid/app/GrantedUriPermission;->uri:Landroid/net/Uri;
-Landroid/app/IActivityController$Stub$Proxy;
 Landroid/app/IActivityController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IActivityController$Stub$Proxy;->activityResuming(Ljava/lang/String;)Z
 Landroid/app/IActivityController$Stub$Proxy;->activityStarting(Landroid/content/Intent;Ljava/lang/String;)Z
@@ -5636,7 +5261,6 @@
 Landroid/app/IActivityController$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/IActivityController$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/app/IActivityController$Stub$Proxy;->systemNotResponding(Ljava/lang/String;)I
-Landroid/app/IActivityController$Stub;
 Landroid/app/IActivityController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityController;
 Landroid/app/IActivityController$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/IActivityController$Stub;->TRANSACTION_activityResuming:I
@@ -5645,11 +5269,9 @@
 Landroid/app/IActivityController$Stub;->TRANSACTION_appEarlyNotResponding:I
 Landroid/app/IActivityController$Stub;->TRANSACTION_appNotResponding:I
 Landroid/app/IActivityController$Stub;->TRANSACTION_systemNotResponding:I
-Landroid/app/IActivityController;
 Landroid/app/IActivityController;->appCrashed(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;JLjava/lang/String;)Z
 Landroid/app/IActivityController;->appEarlyNotResponding(Ljava/lang/String;ILjava/lang/String;)I
 Landroid/app/IActivityController;->systemNotResponding(Ljava/lang/String;)I
-Landroid/app/IActivityManager$Stub$Proxy;
 Landroid/app/IActivityManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IActivityManager$Stub$Proxy;->activityDestroyed(Landroid/os/IBinder;)V
 Landroid/app/IActivityManager$Stub$Proxy;->activityIdle(Landroid/os/IBinder;Landroid/content/res/Configuration;Z)V
@@ -5950,7 +5572,6 @@
 Landroid/app/IActivityManager$Stub$Proxy;->updateLockTaskPackages(I[Ljava/lang/String;)V
 Landroid/app/IActivityManager$Stub$Proxy;->waitForNetworkStateUpdate(J)V
 Landroid/app/IActivityManager$Stub$Proxy;->willActivityBeVisible(Landroid/os/IBinder;)Z
-Landroid/app/IActivityManager$Stub;
 Landroid/app/IActivityManager$Stub;-><init>()V
 Landroid/app/IActivityManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/IActivityManager$Stub;->onTransact$bindService$(Landroid/os/Parcel;Landroid/os/Parcel;)Z
@@ -6288,7 +5909,6 @@
 Landroid/app/IActivityManager$Stub;->TRANSACTION_updatePersistentConfiguration:I
 Landroid/app/IActivityManager$Stub;->TRANSACTION_waitForNetworkStateUpdate:I
 Landroid/app/IActivityManager$Stub;->TRANSACTION_willActivityBeVisible:I
-Landroid/app/IActivityManager;
 Landroid/app/IActivityManager;->activityDestroyed(Landroid/os/IBinder;)V
 Landroid/app/IActivityManager;->activityIdle(Landroid/os/IBinder;Landroid/content/res/Configuration;Z)V
 Landroid/app/IActivityManager;->activityPaused(Landroid/os/IBinder;)V
@@ -6497,43 +6117,33 @@
 Landroid/app/IActivityManager;->updateLockTaskPackages(I[Ljava/lang/String;)V
 Landroid/app/IActivityManager;->waitForNetworkStateUpdate(J)V
 Landroid/app/IActivityManager;->willActivityBeVisible(Landroid/os/IBinder;)Z
-Landroid/app/IActivityPendingResult$Stub$Proxy;
 Landroid/app/IActivityPendingResult$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IActivityPendingResult$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/IActivityPendingResult$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/app/IActivityPendingResult$Stub$Proxy;->sendResult(ILjava/lang/String;Landroid/os/Bundle;)Z
-Landroid/app/IActivityPendingResult$Stub;
 Landroid/app/IActivityPendingResult$Stub;-><init>()V
 Landroid/app/IActivityPendingResult$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityPendingResult;
 Landroid/app/IActivityPendingResult$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/IActivityPendingResult$Stub;->TRANSACTION_sendResult:I
-Landroid/app/IActivityPendingResult;
 Landroid/app/IActivityPendingResult;->sendResult(ILjava/lang/String;Landroid/os/Bundle;)Z
-Landroid/app/IAlarmCompleteListener$Stub$Proxy;
 Landroid/app/IAlarmCompleteListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IAlarmCompleteListener$Stub$Proxy;->alarmComplete(Landroid/os/IBinder;)V
 Landroid/app/IAlarmCompleteListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/IAlarmCompleteListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/app/IAlarmCompleteListener$Stub;
 Landroid/app/IAlarmCompleteListener$Stub;-><init>()V
 Landroid/app/IAlarmCompleteListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IAlarmCompleteListener;
 Landroid/app/IAlarmCompleteListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/IAlarmCompleteListener$Stub;->TRANSACTION_alarmComplete:I
-Landroid/app/IAlarmCompleteListener;
 Landroid/app/IAlarmCompleteListener;->alarmComplete(Landroid/os/IBinder;)V
-Landroid/app/IAlarmListener$Stub$Proxy;
 Landroid/app/IAlarmListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IAlarmListener$Stub$Proxy;->doAlarm(Landroid/app/IAlarmCompleteListener;)V
 Landroid/app/IAlarmListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/IAlarmListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/app/IAlarmListener$Stub;
 Landroid/app/IAlarmListener$Stub;-><init>()V
 Landroid/app/IAlarmListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IAlarmListener;
 Landroid/app/IAlarmListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/IAlarmListener$Stub;->TRANSACTION_doAlarm:I
-Landroid/app/IAlarmListener;
 Landroid/app/IAlarmListener;->doAlarm(Landroid/app/IAlarmCompleteListener;)V
-Landroid/app/IAlarmManager$Stub$Proxy;
 Landroid/app/IAlarmManager$Stub$Proxy;->currentNetworkTimeMillis()J
 Landroid/app/IAlarmManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/IAlarmManager$Stub$Proxy;->getNextAlarmClock(I)Landroid/app/AlarmManager$AlarmClockInfo;
@@ -6543,19 +6153,16 @@
 Landroid/app/IAlarmManager$Stub$Proxy;->set(Ljava/lang/String;IJJJILandroid/app/PendingIntent;Landroid/app/IAlarmListener;Ljava/lang/String;Landroid/os/WorkSource;Landroid/app/AlarmManager$AlarmClockInfo;)V
 Landroid/app/IAlarmManager$Stub$Proxy;->setTime(J)Z
 Landroid/app/IAlarmManager$Stub$Proxy;->setTimeZone(Ljava/lang/String;)V
-Landroid/app/IAlarmManager$Stub;
 Landroid/app/IAlarmManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/IAlarmManager$Stub;->TRANSACTION_currentNetworkTimeMillis:I
 Landroid/app/IAlarmManager$Stub;->TRANSACTION_getNextAlarmClock:I
 Landroid/app/IAlarmManager$Stub;->TRANSACTION_getNextWakeFromIdleTime:I
 Landroid/app/IAlarmManager$Stub;->TRANSACTION_setTime:I
 Landroid/app/IAlarmManager$Stub;->TRANSACTION_setTimeZone:I
-Landroid/app/IAlarmManager;
 Landroid/app/IAlarmManager;->currentNetworkTimeMillis()J
 Landroid/app/IAlarmManager;->getNextWakeFromIdleTime()J
 Landroid/app/IAlarmManager;->remove(Landroid/app/PendingIntent;Landroid/app/IAlarmListener;)V
 Landroid/app/IAlarmManager;->setTimeZone(Ljava/lang/String;)V
-Landroid/app/IApplicationThread$Stub$Proxy;
 Landroid/app/IApplicationThread$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IApplicationThread$Stub$Proxy;->attachAgent(Ljava/lang/String;)V
 Landroid/app/IApplicationThread$Stub$Proxy;->bindApplication(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/util/List;Landroid/content/ComponentName;Landroid/app/ProfilerInfo;Landroid/os/Bundle;Landroid/app/IInstrumentationWatcher;Landroid/app/IUiAutomationConnection;IZZZZLandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/util/Map;Landroid/os/Bundle;Ljava/lang/String;Z)V
@@ -6610,7 +6217,6 @@
 Landroid/app/IApplicationThread$Stub$Proxy;->updatePackageCompatibilityInfo(Ljava/lang/String;Landroid/content/res/CompatibilityInfo;)V
 Landroid/app/IApplicationThread$Stub$Proxy;->updateTimePrefs(I)V
 Landroid/app/IApplicationThread$Stub$Proxy;->updateTimeZone()V
-Landroid/app/IApplicationThread$Stub;
 Landroid/app/IApplicationThread$Stub;-><init>()V
 Landroid/app/IApplicationThread$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IApplicationThread;
 Landroid/app/IApplicationThread$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -6665,7 +6271,6 @@
 Landroid/app/IApplicationThread$Stub;->TRANSACTION_updatePackageCompatibilityInfo:I
 Landroid/app/IApplicationThread$Stub;->TRANSACTION_updateTimePrefs:I
 Landroid/app/IApplicationThread$Stub;->TRANSACTION_updateTimeZone:I
-Landroid/app/IApplicationThread;
 Landroid/app/IApplicationThread;->attachAgent(Ljava/lang/String;)V
 Landroid/app/IApplicationThread;->bindApplication(Ljava/lang/String;Landroid/content/pm/ApplicationInfo;Ljava/util/List;Landroid/content/ComponentName;Landroid/app/ProfilerInfo;Landroid/os/Bundle;Landroid/app/IInstrumentationWatcher;Landroid/app/IUiAutomationConnection;IZZZZLandroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/util/Map;Landroid/os/Bundle;Ljava/lang/String;Z)V
 Landroid/app/IApplicationThread;->clearDnsCache()V
@@ -6707,7 +6312,6 @@
 Landroid/app/IApplicationThread;->unstableProviderDied(Landroid/os/IBinder;)V
 Landroid/app/IApplicationThread;->updatePackageCompatibilityInfo(Ljava/lang/String;Landroid/content/res/CompatibilityInfo;)V
 Landroid/app/IApplicationThread;->updateTimePrefs(I)V
-Landroid/app/IAppTask$Stub$Proxy;
 Landroid/app/IAppTask$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IAppTask$Stub$Proxy;->finishAndRemoveTask()V
 Landroid/app/IAppTask$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -6716,7 +6320,6 @@
 Landroid/app/IAppTask$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/app/IAppTask$Stub$Proxy;->setExcludeFromRecents(Z)V
 Landroid/app/IAppTask$Stub$Proxy;->startActivity(Landroid/os/IBinder;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/Bundle;)I
-Landroid/app/IAppTask$Stub;
 Landroid/app/IAppTask$Stub;-><init>()V
 Landroid/app/IAppTask$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IAppTask;
 Landroid/app/IAppTask$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -6725,24 +6328,19 @@
 Landroid/app/IAppTask$Stub;->TRANSACTION_moveToFront:I
 Landroid/app/IAppTask$Stub;->TRANSACTION_setExcludeFromRecents:I
 Landroid/app/IAppTask$Stub;->TRANSACTION_startActivity:I
-Landroid/app/IAppTask;
 Landroid/app/IAppTask;->finishAndRemoveTask()V
 Landroid/app/IAppTask;->moveToFront()V
 Landroid/app/IAppTask;->setExcludeFromRecents(Z)V
 Landroid/app/IAppTask;->startActivity(Landroid/os/IBinder;Ljava/lang/String;Landroid/content/Intent;Ljava/lang/String;Landroid/os/Bundle;)I
-Landroid/app/IAssistDataReceiver$Stub$Proxy;
 Landroid/app/IAssistDataReceiver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IAssistDataReceiver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/IAssistDataReceiver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/app/IAssistDataReceiver$Stub$Proxy;->onHandleAssistData(Landroid/os/Bundle;)V
 Landroid/app/IAssistDataReceiver$Stub$Proxy;->onHandleAssistScreenshot(Landroid/graphics/Bitmap;)V
-Landroid/app/IAssistDataReceiver$Stub;
 Landroid/app/IAssistDataReceiver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IAssistDataReceiver;
 Landroid/app/IAssistDataReceiver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/IAssistDataReceiver$Stub;->TRANSACTION_onHandleAssistData:I
 Landroid/app/IAssistDataReceiver$Stub;->TRANSACTION_onHandleAssistScreenshot:I
-Landroid/app/IAssistDataReceiver;
-Landroid/app/IBackupAgent$Stub$Proxy;
 Landroid/app/IBackupAgent$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IBackupAgent$Stub$Proxy;->doBackup(Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;JILandroid/app/backup/IBackupManager;I)V
 Landroid/app/IBackupAgent$Stub$Proxy;->doFullBackup(Landroid/os/ParcelFileDescriptor;JILandroid/app/backup/IBackupManager;I)V
@@ -6754,7 +6352,6 @@
 Landroid/app/IBackupAgent$Stub$Proxy;->fail(Ljava/lang/String;)V
 Landroid/app/IBackupAgent$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/IBackupAgent$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/app/IBackupAgent$Stub;
 Landroid/app/IBackupAgent$Stub;-><init>()V
 Landroid/app/IBackupAgent$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/IBackupAgent$Stub;->TRANSACTION_doBackup:I
@@ -6765,7 +6362,6 @@
 Landroid/app/IBackupAgent$Stub;->TRANSACTION_doRestoreFile:I
 Landroid/app/IBackupAgent$Stub;->TRANSACTION_doRestoreFinished:I
 Landroid/app/IBackupAgent$Stub;->TRANSACTION_fail:I
-Landroid/app/IBackupAgent;
 Landroid/app/IBackupAgent;->doBackup(Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;JILandroid/app/backup/IBackupManager;I)V
 Landroid/app/IBackupAgent;->doFullBackup(Landroid/os/ParcelFileDescriptor;JILandroid/app/backup/IBackupManager;I)V
 Landroid/app/IBackupAgent;->doMeasureFullBackup(JILandroid/app/backup/IBackupManager;I)V
@@ -6774,59 +6370,46 @@
 Landroid/app/IBackupAgent;->doRestoreFile(Landroid/os/ParcelFileDescriptor;JILjava/lang/String;Ljava/lang/String;JJILandroid/app/backup/IBackupManager;)V
 Landroid/app/IBackupAgent;->doRestoreFinished(ILandroid/app/backup/IBackupManager;)V
 Landroid/app/IBackupAgent;->fail(Ljava/lang/String;)V
-Landroid/app/IEphemeralResolver$Stub$Proxy;
 Landroid/app/IEphemeralResolver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IEphemeralResolver$Stub$Proxy;->getEphemeralIntentFilterList(Landroid/os/IRemoteCallback;Ljava/lang/String;I)V
 Landroid/app/IEphemeralResolver$Stub$Proxy;->getEphemeralResolveInfoList(Landroid/os/IRemoteCallback;[II)V
 Landroid/app/IEphemeralResolver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/IEphemeralResolver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/app/IEphemeralResolver$Stub;
 Landroid/app/IEphemeralResolver$Stub;-><init>()V
 Landroid/app/IEphemeralResolver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IEphemeralResolver;
 Landroid/app/IEphemeralResolver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/IEphemeralResolver$Stub;->TRANSACTION_getEphemeralIntentFilterList:I
 Landroid/app/IEphemeralResolver$Stub;->TRANSACTION_getEphemeralResolveInfoList:I
-Landroid/app/IEphemeralResolver;
 Landroid/app/IEphemeralResolver;->getEphemeralIntentFilterList(Landroid/os/IRemoteCallback;Ljava/lang/String;I)V
 Landroid/app/IEphemeralResolver;->getEphemeralResolveInfoList(Landroid/os/IRemoteCallback;[II)V
-Landroid/app/IInputForwarder$Stub$Proxy;
 Landroid/app/IInputForwarder$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IInputForwarder$Stub$Proxy;->forwardEvent(Landroid/view/InputEvent;)Z
 Landroid/app/IInputForwarder$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/IInputForwarder$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/app/IInputForwarder$Stub;
 Landroid/app/IInputForwarder$Stub;-><init>()V
 Landroid/app/IInputForwarder$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IInputForwarder;
 Landroid/app/IInputForwarder$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/IInputForwarder$Stub;->TRANSACTION_forwardEvent:I
-Landroid/app/IInputForwarder;
-Landroid/app/IInstantAppResolver$Stub$Proxy;
 Landroid/app/IInstantAppResolver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IInstantAppResolver$Stub$Proxy;->getInstantAppIntentFilterList(Landroid/content/Intent;[ILjava/lang/String;Landroid/os/IRemoteCallback;)V
 Landroid/app/IInstantAppResolver$Stub$Proxy;->getInstantAppResolveInfoList(Landroid/content/Intent;[ILjava/lang/String;ILandroid/os/IRemoteCallback;)V
 Landroid/app/IInstantAppResolver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/IInstantAppResolver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/app/IInstantAppResolver$Stub;
 Landroid/app/IInstantAppResolver$Stub;-><init>()V
 Landroid/app/IInstantAppResolver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IInstantAppResolver;
 Landroid/app/IInstantAppResolver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/IInstantAppResolver$Stub;->TRANSACTION_getInstantAppIntentFilterList:I
 Landroid/app/IInstantAppResolver$Stub;->TRANSACTION_getInstantAppResolveInfoList:I
-Landroid/app/IInstantAppResolver;
 Landroid/app/IInstantAppResolver;->getInstantAppIntentFilterList(Landroid/content/Intent;[ILjava/lang/String;Landroid/os/IRemoteCallback;)V
 Landroid/app/IInstantAppResolver;->getInstantAppResolveInfoList(Landroid/content/Intent;[ILjava/lang/String;ILandroid/os/IRemoteCallback;)V
-Landroid/app/IInstrumentationWatcher$Stub$Proxy;
 Landroid/app/IInstrumentationWatcher$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IInstrumentationWatcher$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/IInstrumentationWatcher$Stub$Proxy;->instrumentationFinished(Landroid/content/ComponentName;ILandroid/os/Bundle;)V
 Landroid/app/IInstrumentationWatcher$Stub$Proxy;->instrumentationStatus(Landroid/content/ComponentName;ILandroid/os/Bundle;)V
 Landroid/app/IInstrumentationWatcher$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/app/IInstrumentationWatcher$Stub;
 Landroid/app/IInstrumentationWatcher$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/IInstrumentationWatcher$Stub;->TRANSACTION_instrumentationFinished:I
 Landroid/app/IInstrumentationWatcher$Stub;->TRANSACTION_instrumentationStatus:I
-Landroid/app/IInstrumentationWatcher;
-Landroid/app/INotificationManager$Stub$Proxy;
 Landroid/app/INotificationManager$Stub$Proxy;->addAutomaticZenRule(Landroid/app/AutomaticZenRule;)Ljava/lang/String;
 Landroid/app/INotificationManager$Stub$Proxy;->applyAdjustmentFromAssistant(Landroid/service/notification/INotificationListener;Landroid/service/notification/Adjustment;)V
 Landroid/app/INotificationManager$Stub$Proxy;->applyAdjustmentsFromAssistant(Landroid/service/notification/INotificationListener;Ljava/util/List;)V
@@ -6926,7 +6509,6 @@
 Landroid/app/INotificationManager$Stub$Proxy;->updateNotificationChannelFromPrivilegedListener(Landroid/service/notification/INotificationListener;Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannel;)V
 Landroid/app/INotificationManager$Stub$Proxy;->updateNotificationChannelGroupForPackage(Ljava/lang/String;ILandroid/app/NotificationChannelGroup;)V
 Landroid/app/INotificationManager$Stub$Proxy;->updateNotificationChannelGroupFromPrivilegedListener(Landroid/service/notification/INotificationListener;Ljava/lang/String;Landroid/os/UserHandle;Landroid/app/NotificationChannelGroup;)V
-Landroid/app/INotificationManager$Stub;
 Landroid/app/INotificationManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/INotificationManager$Stub;->TRANSACTION_addAutomaticZenRule:I
 Landroid/app/INotificationManager$Stub;->TRANSACTION_applyAdjustmentFromAssistant:I
@@ -7025,7 +6607,6 @@
 Landroid/app/INotificationManager$Stub;->TRANSACTION_updateNotificationChannelFromPrivilegedListener:I
 Landroid/app/INotificationManager$Stub;->TRANSACTION_updateNotificationChannelGroupForPackage:I
 Landroid/app/INotificationManager$Stub;->TRANSACTION_updateNotificationChannelGroupFromPrivilegedListener:I
-Landroid/app/INotificationManager;
 Landroid/app/INotificationManager;->addAutomaticZenRule(Landroid/app/AutomaticZenRule;)Ljava/lang/String;
 Landroid/app/INotificationManager;->applyAdjustmentFromAssistant(Landroid/service/notification/INotificationListener;Landroid/service/notification/Adjustment;)V
 Landroid/app/INotificationManager;->applyAdjustmentsFromAssistant(Landroid/service/notification/INotificationListener;Ljava/util/List;)V
@@ -7118,8 +6699,6 @@
 Landroid/app/InstantAppResolverService$InstantAppResolutionCallback;-><init>(ILandroid/os/IRemoteCallback;)V
 Landroid/app/InstantAppResolverService$InstantAppResolutionCallback;->mCallback:Landroid/os/IRemoteCallback;
 Landroid/app/InstantAppResolverService$InstantAppResolutionCallback;->mSequence:I
-Landroid/app/InstantAppResolverService$ServiceHandler;
-Landroid/app/InstantAppResolverService$ServiceHandler;-><init>(Landroid/os/Looper;)V
 Landroid/app/InstantAppResolverService$ServiceHandler;->MSG_GET_INSTANT_APP_INTENT_FILTER:I
 Landroid/app/InstantAppResolverService$ServiceHandler;->MSG_GET_INSTANT_APP_RESOLVE_INFO:I
 Landroid/app/InstantAppResolverService;->DEBUG_INSTANT:Z
@@ -7128,8 +6707,6 @@
 Landroid/app/InstantAppResolverService;->getLooper()Landroid/os/Looper;
 Landroid/app/InstantAppResolverService;->mHandler:Landroid/os/Handler;
 Landroid/app/InstantAppResolverService;->TAG:Ljava/lang/String;
-Landroid/app/Instrumentation$ActivityGoing;
-Landroid/app/Instrumentation$ActivityGoing;-><init>(Landroid/app/Instrumentation$ActivityWaiter;)V
 Landroid/app/Instrumentation$ActivityGoing;->mWaiter:Landroid/app/Instrumentation$ActivityWaiter;
 Landroid/app/Instrumentation$ActivityMonitor;->ignoreMatchingSpecificIntents()Z
 Landroid/app/Instrumentation$ActivityMonitor;->match(Landroid/content/Context;Landroid/app/Activity;Landroid/content/Intent;)Z
@@ -7142,25 +6719,18 @@
 Landroid/app/Instrumentation$ActivityMonitor;->mWhich:Landroid/content/IntentFilter;
 Landroid/app/Instrumentation$ActivityResult;->mResultCode:I
 Landroid/app/Instrumentation$ActivityResult;->mResultData:Landroid/content/Intent;
-Landroid/app/Instrumentation$ActivityWaiter;
 Landroid/app/Instrumentation$ActivityWaiter;-><init>(Landroid/content/Intent;)V
 Landroid/app/Instrumentation$ActivityWaiter;->activity:Landroid/app/Activity;
 Landroid/app/Instrumentation$ActivityWaiter;->intent:Landroid/content/Intent;
-Landroid/app/Instrumentation$EmptyRunnable;
 Landroid/app/Instrumentation$EmptyRunnable;-><init>()V
-Landroid/app/Instrumentation$Idler;
 Landroid/app/Instrumentation$Idler;-><init>(Ljava/lang/Runnable;)V
 Landroid/app/Instrumentation$Idler;->mCallback:Ljava/lang/Runnable;
 Landroid/app/Instrumentation$Idler;->mIdle:Z
 Landroid/app/Instrumentation$Idler;->waitForIdle()V
-Landroid/app/Instrumentation$InstrumentationThread;
-Landroid/app/Instrumentation$InstrumentationThread;-><init>(Ljava/lang/String;)V
-Landroid/app/Instrumentation$SyncRunnable;
 Landroid/app/Instrumentation$SyncRunnable;-><init>(Ljava/lang/Runnable;)V
 Landroid/app/Instrumentation$SyncRunnable;->mComplete:Z
 Landroid/app/Instrumentation$SyncRunnable;->mTarget:Ljava/lang/Runnable;
 Landroid/app/Instrumentation$SyncRunnable;->waitForComplete()V
-Landroid/app/Instrumentation$UiAutomationFlags;
 Landroid/app/Instrumentation;->addValue(Ljava/lang/String;ILandroid/os/Bundle;)V
 Landroid/app/Instrumentation;->basicInit(Landroid/app/ActivityThread;)V
 Landroid/app/Instrumentation;->checkInstrumenting(Ljava/lang/String;)V
@@ -7185,27 +6755,20 @@
 Landroid/app/Instrumentation;->prePerformCreate(Landroid/app/Activity;)V
 Landroid/app/Instrumentation;->TAG:Ljava/lang/String;
 Landroid/app/Instrumentation;->validateNotAppThread()V
-Landroid/app/IntentReceiverLeaked;
-Landroid/app/IntentService$ServiceHandler;
-Landroid/app/IntentService$ServiceHandler;-><init>(Landroid/os/Looper;)V
 Landroid/app/IntentService;->mName:Ljava/lang/String;
 Landroid/app/IntentService;->mRedelivery:Z
 Landroid/app/IntentService;->mServiceLooper:Landroid/os/Looper;
-Landroid/app/IProcessObserver$Stub$Proxy;
 Landroid/app/IProcessObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IProcessObserver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/IProcessObserver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/app/IProcessObserver$Stub$Proxy;->onForegroundActivitiesChanged(IIZ)V
 Landroid/app/IProcessObserver$Stub$Proxy;->onProcessDied(II)V
-Landroid/app/IProcessObserver$Stub;
 Landroid/app/IProcessObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IProcessObserver;
 Landroid/app/IProcessObserver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/IProcessObserver$Stub;->TRANSACTION_onForegroundActivitiesChanged:I
 Landroid/app/IProcessObserver$Stub;->TRANSACTION_onProcessDied:I
-Landroid/app/IProcessObserver;
 Landroid/app/IProcessObserver;->onForegroundActivitiesChanged(IIZ)V
 Landroid/app/IProcessObserver;->onProcessDied(II)V
-Landroid/app/ISearchManager$Stub$Proxy;
 Landroid/app/ISearchManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/ISearchManager$Stub$Proxy;->getGlobalSearchActivities()Ljava/util/List;
 Landroid/app/ISearchManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -7214,7 +6777,6 @@
 Landroid/app/ISearchManager$Stub$Proxy;->launchAssist(Landroid/os/Bundle;)V
 Landroid/app/ISearchManager$Stub$Proxy;->launchLegacyAssist(Ljava/lang/String;ILandroid/os/Bundle;)Z
 Landroid/app/ISearchManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/app/ISearchManager$Stub;
 Landroid/app/ISearchManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/ISearchManager$Stub;->TRANSACTION_getGlobalSearchActivities:I
 Landroid/app/ISearchManager$Stub;->TRANSACTION_getGlobalSearchActivity:I
@@ -7223,47 +6785,36 @@
 Landroid/app/ISearchManager$Stub;->TRANSACTION_getWebSearchActivity:I
 Landroid/app/ISearchManager$Stub;->TRANSACTION_launchAssist:I
 Landroid/app/ISearchManager$Stub;->TRANSACTION_launchLegacyAssist:I
-Landroid/app/ISearchManager;
 Landroid/app/ISearchManager;->getGlobalSearchActivities()Ljava/util/List;
 Landroid/app/ISearchManager;->getSearchableInfo(Landroid/content/ComponentName;)Landroid/app/SearchableInfo;
 Landroid/app/ISearchManager;->getSearchablesInGlobalSearch()Ljava/util/List;
 Landroid/app/ISearchManager;->getWebSearchActivity()Landroid/content/ComponentName;
 Landroid/app/ISearchManager;->launchAssist(Landroid/os/Bundle;)V
 Landroid/app/ISearchManager;->launchLegacyAssist(Ljava/lang/String;ILandroid/os/Bundle;)Z
-Landroid/app/ISearchManagerCallback$Stub$Proxy;
 Landroid/app/ISearchManagerCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/ISearchManagerCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/ISearchManagerCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/app/ISearchManagerCallback$Stub$Proxy;->onCancel()V
 Landroid/app/ISearchManagerCallback$Stub$Proxy;->onDismiss()V
-Landroid/app/ISearchManagerCallback$Stub;
 Landroid/app/ISearchManagerCallback$Stub;-><init>()V
 Landroid/app/ISearchManagerCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/ISearchManagerCallback;
 Landroid/app/ISearchManagerCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/ISearchManagerCallback$Stub;->TRANSACTION_onCancel:I
 Landroid/app/ISearchManagerCallback$Stub;->TRANSACTION_onDismiss:I
-Landroid/app/ISearchManagerCallback;
 Landroid/app/ISearchManagerCallback;->onCancel()V
 Landroid/app/ISearchManagerCallback;->onDismiss()V
-Landroid/app/IServiceConnection$Stub$Proxy;
 Landroid/app/IServiceConnection$Stub$Proxy;->connected(Landroid/content/ComponentName;Landroid/os/IBinder;Z)V
 Landroid/app/IServiceConnection$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
-Landroid/app/IServiceConnection$Stub;
 Landroid/app/IServiceConnection$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/IServiceConnection$Stub;->TRANSACTION_connected:I
-Landroid/app/IServiceConnection;
-Landroid/app/IStopUserCallback$Stub$Proxy;
 Landroid/app/IStopUserCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/IStopUserCallback$Stub$Proxy;->userStopAborted(I)V
 Landroid/app/IStopUserCallback$Stub$Proxy;->userStopped(I)V
-Landroid/app/IStopUserCallback$Stub;
 Landroid/app/IStopUserCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IStopUserCallback;
 Landroid/app/IStopUserCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/IStopUserCallback$Stub;->TRANSACTION_userStopAborted:I
 Landroid/app/IStopUserCallback$Stub;->TRANSACTION_userStopped:I
-Landroid/app/IStopUserCallback;
 Landroid/app/IStopUserCallback;->userStopAborted(I)V
-Landroid/app/ITaskStackListener$Stub$Proxy;
 Landroid/app/ITaskStackListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/ITaskStackListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/ITaskStackListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -7284,7 +6835,6 @@
 Landroid/app/ITaskStackListener$Stub$Proxy;->onTaskRemoved(I)V
 Landroid/app/ITaskStackListener$Stub$Proxy;->onTaskSnapshotChanged(ILandroid/app/ActivityManager$TaskSnapshot;)V
 Landroid/app/ITaskStackListener$Stub$Proxy;->onTaskStackChanged()V
-Landroid/app/ITaskStackListener$Stub;
 Landroid/app/ITaskStackListener$Stub;-><init>()V
 Landroid/app/ITaskStackListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/ITaskStackListener;
 Landroid/app/ITaskStackListener$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -7305,7 +6855,6 @@
 Landroid/app/ITaskStackListener$Stub;->TRANSACTION_onTaskRemoved:I
 Landroid/app/ITaskStackListener$Stub;->TRANSACTION_onTaskSnapshotChanged:I
 Landroid/app/ITaskStackListener$Stub;->TRANSACTION_onTaskStackChanged:I
-Landroid/app/ITaskStackListener;
 Landroid/app/ITaskStackListener;->FORCED_RESIZEABLE_REASON_SECONDARY_DISPLAY:I
 Landroid/app/ITaskStackListener;->FORCED_RESIZEABLE_REASON_SPLIT_SCREEN:I
 Landroid/app/ITaskStackListener;->onActivityDismissingDockedStack()V
@@ -7325,19 +6874,15 @@
 Landroid/app/ITaskStackListener;->onTaskRemoved(I)V
 Landroid/app/ITaskStackListener;->onTaskSnapshotChanged(ILandroid/app/ActivityManager$TaskSnapshot;)V
 Landroid/app/ITaskStackListener;->onTaskStackChanged()V
-Landroid/app/ITransientNotification$Stub$Proxy;
 Landroid/app/ITransientNotification$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/ITransientNotification$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/ITransientNotification$Stub$Proxy;->hide()V
 Landroid/app/ITransientNotification$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/app/ITransientNotification$Stub$Proxy;->show(Landroid/os/IBinder;)V
-Landroid/app/ITransientNotification$Stub;
 Landroid/app/ITransientNotification$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/ITransientNotification;
 Landroid/app/ITransientNotification$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/ITransientNotification$Stub;->TRANSACTION_hide:I
 Landroid/app/ITransientNotification$Stub;->TRANSACTION_show:I
-Landroid/app/ITransientNotification;
-Landroid/app/IUiAutomationConnection$Stub$Proxy;
 Landroid/app/IUiAutomationConnection$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IUiAutomationConnection$Stub$Proxy;->clearWindowAnimationFrameStats()V
 Landroid/app/IUiAutomationConnection$Stub$Proxy;->clearWindowContentFrameStats(I)Z
@@ -7354,7 +6899,6 @@
 Landroid/app/IUiAutomationConnection$Stub$Proxy;->setRotation(I)Z
 Landroid/app/IUiAutomationConnection$Stub$Proxy;->shutdown()V
 Landroid/app/IUiAutomationConnection$Stub$Proxy;->takeScreenshot(Landroid/graphics/Rect;I)Landroid/graphics/Bitmap;
-Landroid/app/IUiAutomationConnection$Stub;
 Landroid/app/IUiAutomationConnection$Stub;-><init>()V
 Landroid/app/IUiAutomationConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUiAutomationConnection;
 Landroid/app/IUiAutomationConnection$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -7371,7 +6915,6 @@
 Landroid/app/IUiAutomationConnection$Stub;->TRANSACTION_setRotation:I
 Landroid/app/IUiAutomationConnection$Stub;->TRANSACTION_shutdown:I
 Landroid/app/IUiAutomationConnection$Stub;->TRANSACTION_takeScreenshot:I
-Landroid/app/IUiAutomationConnection;
 Landroid/app/IUiAutomationConnection;->clearWindowAnimationFrameStats()V
 Landroid/app/IUiAutomationConnection;->clearWindowContentFrameStats(I)Z
 Landroid/app/IUiAutomationConnection;->connect(Landroid/accessibilityservice/IAccessibilityServiceClient;I)V
@@ -7385,7 +6928,6 @@
 Landroid/app/IUiAutomationConnection;->setRotation(I)Z
 Landroid/app/IUiAutomationConnection;->shutdown()V
 Landroid/app/IUiAutomationConnection;->takeScreenshot(Landroid/graphics/Rect;I)Landroid/graphics/Bitmap;
-Landroid/app/IUidObserver$Stub$Proxy;
 Landroid/app/IUidObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IUidObserver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/IUidObserver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -7394,7 +6936,6 @@
 Landroid/app/IUidObserver$Stub$Proxy;->onUidGone(IZ)V
 Landroid/app/IUidObserver$Stub$Proxy;->onUidIdle(IZ)V
 Landroid/app/IUidObserver$Stub$Proxy;->onUidStateChanged(IIJ)V
-Landroid/app/IUidObserver$Stub;
 Landroid/app/IUidObserver$Stub;-><init>()V
 Landroid/app/IUidObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUidObserver;
 Landroid/app/IUidObserver$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -7403,13 +6944,11 @@
 Landroid/app/IUidObserver$Stub;->TRANSACTION_onUidGone:I
 Landroid/app/IUidObserver$Stub;->TRANSACTION_onUidIdle:I
 Landroid/app/IUidObserver$Stub;->TRANSACTION_onUidStateChanged:I
-Landroid/app/IUidObserver;
 Landroid/app/IUidObserver;->onUidActive(I)V
 Landroid/app/IUidObserver;->onUidCachedChanged(IZ)V
 Landroid/app/IUidObserver;->onUidGone(IZ)V
 Landroid/app/IUidObserver;->onUidIdle(IZ)V
 Landroid/app/IUidObserver;->onUidStateChanged(IIJ)V
-Landroid/app/IUiModeManager$Stub$Proxy;
 Landroid/app/IUiModeManager$Stub$Proxy;->disableCarMode(I)V
 Landroid/app/IUiModeManager$Stub$Proxy;->enableCarMode(I)V
 Landroid/app/IUiModeManager$Stub$Proxy;->getCurrentModeType()I
@@ -7419,7 +6958,6 @@
 Landroid/app/IUiModeManager$Stub$Proxy;->isUiModeLocked()Z
 Landroid/app/IUiModeManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/app/IUiModeManager$Stub$Proxy;->setNightMode(I)V
-Landroid/app/IUiModeManager$Stub;
 Landroid/app/IUiModeManager$Stub;-><init>()V
 Landroid/app/IUiModeManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/IUiModeManager$Stub;->TRANSACTION_disableCarMode:I
@@ -7429,14 +6967,12 @@
 Landroid/app/IUiModeManager$Stub;->TRANSACTION_isNightModeLocked:I
 Landroid/app/IUiModeManager$Stub;->TRANSACTION_isUiModeLocked:I
 Landroid/app/IUiModeManager$Stub;->TRANSACTION_setNightMode:I
-Landroid/app/IUiModeManager;
 Landroid/app/IUiModeManager;->enableCarMode(I)V
 Landroid/app/IUiModeManager;->getCurrentModeType()I
 Landroid/app/IUiModeManager;->getNightMode()I
 Landroid/app/IUiModeManager;->isNightModeLocked()Z
 Landroid/app/IUiModeManager;->isUiModeLocked()Z
 Landroid/app/IUiModeManager;->setNightMode(I)V
-Landroid/app/IUserSwitchObserver$Stub$Proxy;
 Landroid/app/IUserSwitchObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IUserSwitchObserver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/IUserSwitchObserver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -7444,19 +6980,16 @@
 Landroid/app/IUserSwitchObserver$Stub$Proxy;->onLockedBootComplete(I)V
 Landroid/app/IUserSwitchObserver$Stub$Proxy;->onUserSwitchComplete(I)V
 Landroid/app/IUserSwitchObserver$Stub$Proxy;->onUserSwitching(ILandroid/os/IRemoteCallback;)V
-Landroid/app/IUserSwitchObserver$Stub;
 Landroid/app/IUserSwitchObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUserSwitchObserver;
 Landroid/app/IUserSwitchObserver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/IUserSwitchObserver$Stub;->TRANSACTION_onForegroundProfileSwitch:I
 Landroid/app/IUserSwitchObserver$Stub;->TRANSACTION_onLockedBootComplete:I
 Landroid/app/IUserSwitchObserver$Stub;->TRANSACTION_onUserSwitchComplete:I
 Landroid/app/IUserSwitchObserver$Stub;->TRANSACTION_onUserSwitching:I
-Landroid/app/IUserSwitchObserver;
 Landroid/app/IUserSwitchObserver;->onForegroundProfileSwitch(I)V
 Landroid/app/IUserSwitchObserver;->onLockedBootComplete(I)V
 Landroid/app/IUserSwitchObserver;->onUserSwitchComplete(I)V
 Landroid/app/IUserSwitchObserver;->onUserSwitching(ILandroid/os/IRemoteCallback;)V
-Landroid/app/IWallpaperManager$Stub$Proxy;
 Landroid/app/IWallpaperManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IWallpaperManager$Stub$Proxy;->clearWallpaper(Ljava/lang/String;II)V
 Landroid/app/IWallpaperManager$Stub$Proxy;->getHeightHint()I
@@ -7482,7 +7015,6 @@
 Landroid/app/IWallpaperManager$Stub$Proxy;->setWallpaperComponent(Landroid/content/ComponentName;)V
 Landroid/app/IWallpaperManager$Stub$Proxy;->setWallpaperComponentChecked(Landroid/content/ComponentName;Ljava/lang/String;I)V
 Landroid/app/IWallpaperManager$Stub$Proxy;->unregisterWallpaperColorsCallback(Landroid/app/IWallpaperManagerCallback;I)V
-Landroid/app/IWallpaperManager$Stub;
 Landroid/app/IWallpaperManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/IWallpaperManager$Stub;->TRANSACTION_clearWallpaper:I
 Landroid/app/IWallpaperManager$Stub;->TRANSACTION_getHeightHint:I
@@ -7506,7 +7038,6 @@
 Landroid/app/IWallpaperManager$Stub;->TRANSACTION_setWallpaperComponent:I
 Landroid/app/IWallpaperManager$Stub;->TRANSACTION_setWallpaperComponentChecked:I
 Landroid/app/IWallpaperManager$Stub;->TRANSACTION_unregisterWallpaperColorsCallback:I
-Landroid/app/IWallpaperManager;
 Landroid/app/IWallpaperManager;->clearWallpaper(Ljava/lang/String;II)V
 Landroid/app/IWallpaperManager;->getName()Ljava/lang/String;
 Landroid/app/IWallpaperManager;->getWallpaperColors(II)Landroid/app/WallpaperColors;
@@ -7523,35 +7054,28 @@
 Landroid/app/IWallpaperManager;->setWallpaper(Ljava/lang/String;Ljava/lang/String;Landroid/graphics/Rect;ZLandroid/os/Bundle;ILandroid/app/IWallpaperManagerCallback;I)Landroid/os/ParcelFileDescriptor;
 Landroid/app/IWallpaperManager;->setWallpaperComponentChecked(Landroid/content/ComponentName;Ljava/lang/String;I)V
 Landroid/app/IWallpaperManager;->unregisterWallpaperColorsCallback(Landroid/app/IWallpaperManagerCallback;I)V
-Landroid/app/IWallpaperManagerCallback$Stub$Proxy;
 Landroid/app/IWallpaperManagerCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IWallpaperManagerCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/IWallpaperManagerCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/app/IWallpaperManagerCallback$Stub$Proxy;->onWallpaperChanged()V
 Landroid/app/IWallpaperManagerCallback$Stub$Proxy;->onWallpaperColorsChanged(Landroid/app/WallpaperColors;II)V
-Landroid/app/IWallpaperManagerCallback$Stub;
 Landroid/app/IWallpaperManagerCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IWallpaperManagerCallback;
 Landroid/app/IWallpaperManagerCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/IWallpaperManagerCallback$Stub;->TRANSACTION_onWallpaperChanged:I
 Landroid/app/IWallpaperManagerCallback$Stub;->TRANSACTION_onWallpaperColorsChanged:I
-Landroid/app/IWallpaperManagerCallback;
 Landroid/app/IWallpaperManagerCallback;->onWallpaperColorsChanged(Landroid/app/WallpaperColors;II)V
-Landroid/app/job/IJobCallback$Stub$Proxy;
 Landroid/app/job/IJobCallback$Stub$Proxy;->acknowledgeStartMessage(IZ)V
 Landroid/app/job/IJobCallback$Stub$Proxy;->acknowledgeStopMessage(IZ)V
 Landroid/app/job/IJobCallback$Stub$Proxy;->completeWork(II)Z
 Landroid/app/job/IJobCallback$Stub$Proxy;->dequeueWork(I)Landroid/app/job/JobWorkItem;
 Landroid/app/job/IJobCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/job/IJobCallback$Stub$Proxy;->jobFinished(IZ)V
-Landroid/app/job/IJobCallback$Stub;
 Landroid/app/job/IJobCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/job/IJobCallback$Stub;->TRANSACTION_acknowledgeStartMessage:I
 Landroid/app/job/IJobCallback$Stub;->TRANSACTION_acknowledgeStopMessage:I
 Landroid/app/job/IJobCallback$Stub;->TRANSACTION_completeWork:I
 Landroid/app/job/IJobCallback$Stub;->TRANSACTION_dequeueWork:I
 Landroid/app/job/IJobCallback$Stub;->TRANSACTION_jobFinished:I
-Landroid/app/job/IJobCallback;
-Landroid/app/job/IJobScheduler$Stub$Proxy;
 Landroid/app/job/IJobScheduler$Stub$Proxy;->cancel(I)V
 Landroid/app/job/IJobScheduler$Stub$Proxy;->cancelAll()V
 Landroid/app/job/IJobScheduler$Stub$Proxy;->enqueue(Landroid/app/job/JobInfo;Landroid/app/job/JobWorkItem;)I
@@ -7561,7 +7085,6 @@
 Landroid/app/job/IJobScheduler$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/app/job/IJobScheduler$Stub$Proxy;->schedule(Landroid/app/job/JobInfo;)I
 Landroid/app/job/IJobScheduler$Stub$Proxy;->scheduleAsPackage(Landroid/app/job/JobInfo;Ljava/lang/String;ILjava/lang/String;)I
-Landroid/app/job/IJobScheduler$Stub;
 Landroid/app/job/IJobScheduler$Stub;-><init>()V
 Landroid/app/job/IJobScheduler$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/job/IJobScheduler$Stub;->TRANSACTION_cancel:I
@@ -7571,7 +7094,6 @@
 Landroid/app/job/IJobScheduler$Stub;->TRANSACTION_getPendingJob:I
 Landroid/app/job/IJobScheduler$Stub;->TRANSACTION_schedule:I
 Landroid/app/job/IJobScheduler$Stub;->TRANSACTION_scheduleAsPackage:I
-Landroid/app/job/IJobScheduler;
 Landroid/app/job/IJobScheduler;->cancel(I)V
 Landroid/app/job/IJobScheduler;->cancelAll()V
 Landroid/app/job/IJobScheduler;->enqueue(Landroid/app/job/JobInfo;Landroid/app/job/JobWorkItem;)I
@@ -7579,16 +7101,12 @@
 Landroid/app/job/IJobScheduler;->getPendingJob(I)Landroid/app/job/JobInfo;
 Landroid/app/job/IJobScheduler;->schedule(Landroid/app/job/JobInfo;)I
 Landroid/app/job/IJobScheduler;->scheduleAsPackage(Landroid/app/job/JobInfo;Ljava/lang/String;ILjava/lang/String;)I
-Landroid/app/job/IJobService$Stub$Proxy;
 Landroid/app/job/IJobService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/job/IJobService$Stub$Proxy;->startJob(Landroid/app/job/JobParameters;)V
 Landroid/app/job/IJobService$Stub$Proxy;->stopJob(Landroid/app/job/JobParameters;)V
-Landroid/app/job/IJobService$Stub;
 Landroid/app/job/IJobService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/job/IJobService$Stub;->TRANSACTION_startJob:I
 Landroid/app/job/IJobService$Stub;->TRANSACTION_stopJob:I
-Landroid/app/job/IJobService;
-Landroid/app/job/JobInfo$BackoffPolicy;
 Landroid/app/job/JobInfo$Builder;->mBackoffPolicy:I
 Landroid/app/job/JobInfo$Builder;->mBackoffPolicySet:Z
 Landroid/app/job/JobInfo$Builder;->mClipData:Landroid/content/ClipData;
@@ -7615,8 +7133,6 @@
 Landroid/app/job/JobInfo$Builder;->mTriggerContentMaxDelay:J
 Landroid/app/job/JobInfo$Builder;->mTriggerContentUpdateDelay:J
 Landroid/app/job/JobInfo$Builder;->mTriggerContentUris:Ljava/util/ArrayList;
-Landroid/app/job/JobInfo$NetworkType;
-Landroid/app/job/JobInfo$TriggerContentUri$Flags;
 Landroid/app/job/JobInfo$TriggerContentUri;-><init>(Landroid/os/Parcel;)V
 Landroid/app/job/JobInfo$TriggerContentUri;->mFlags:I
 Landroid/app/job/JobInfo$TriggerContentUri;->mUri:Landroid/net/Uri;
@@ -7691,7 +7207,6 @@
 Landroid/app/job/JobParameters;->setStopReason(ILjava/lang/String;)V
 Landroid/app/job/JobParameters;->stopReason:I
 Landroid/app/job/JobParameters;->transientExtras:Landroid/os/Bundle;
-Landroid/app/job/JobProtoEnums;
 Landroid/app/job/JobProtoEnums;-><init>()V
 Landroid/app/job/JobProtoEnums;->STOP_REASON_CANCELLED:I
 Landroid/app/job/JobProtoEnums;->STOP_REASON_CONSTRAINTS_NOT_SATISFIED:I
@@ -7699,14 +7214,10 @@
 Landroid/app/job/JobProtoEnums;->STOP_REASON_PREEMPT:I
 Landroid/app/job/JobProtoEnums;->STOP_REASON_TIMEOUT:I
 Landroid/app/job/JobProtoEnums;->STOP_REASON_UNKNOWN:I
-Landroid/app/job/JobScheduler$Result;
 Landroid/app/job/JobService;->mEngine:Landroid/app/job/JobServiceEngine;
 Landroid/app/job/JobService;->TAG:Ljava/lang/String;
-Landroid/app/job/JobServiceEngine$JobHandler;
-Landroid/app/job/JobServiceEngine$JobHandler;-><init>(Landroid/os/Looper;)V
 Landroid/app/job/JobServiceEngine$JobHandler;->ackStartMessage(Landroid/app/job/JobParameters;Z)V
 Landroid/app/job/JobServiceEngine$JobHandler;->ackStopMessage(Landroid/app/job/JobParameters;Z)V
-Landroid/app/job/JobServiceEngine$JobInterface;
 Landroid/app/job/JobServiceEngine$JobInterface;-><init>(Landroid/app/job/JobServiceEngine;)V
 Landroid/app/job/JobServiceEngine$JobInterface;->mService:Ljava/lang/ref/WeakReference;
 Landroid/app/job/JobServiceEngine$JobInterface;->startJob(Landroid/app/job/JobParameters;)V
@@ -7724,10 +7235,8 @@
 Landroid/app/job/JobWorkItem;->mNetworkUploadBytes:J
 Landroid/app/job/JobWorkItem;->setGrants(Ljava/lang/Object;)V
 Landroid/app/job/JobWorkItem;->setWorkId(I)V
-Landroid/app/JobSchedulerImpl;
 Landroid/app/JobSchedulerImpl;-><init>(Landroid/app/job/IJobScheduler;)V
 Landroid/app/JobSchedulerImpl;->mBinder:Landroid/app/job/IJobScheduler;
-Landroid/app/KeyguardManager$KeyguardLock;-><init>(Ljava/lang/String;)V
 Landroid/app/KeyguardManager$KeyguardLock;->mTag:Ljava/lang/String;
 Landroid/app/KeyguardManager$KeyguardLock;->mToken:Landroid/os/IBinder;
 Landroid/app/KeyguardManager;-><init>(Landroid/content/Context;)V
@@ -7745,10 +7254,6 @@
 Landroid/app/KeyguardManager;->mWM:Landroid/view/IWindowManager;
 Landroid/app/KeyguardManager;->RESULT_ALTERNATE:I
 Landroid/app/KeyguardManager;->TAG:Ljava/lang/String;
-Landroid/app/LauncherActivity$ActivityAdapter$ArrayFilter;
-Landroid/app/LauncherActivity$ActivityAdapter$ArrayFilter;-><init>()V
-Landroid/app/LauncherActivity$ActivityAdapter;
-Landroid/app/LauncherActivity$ActivityAdapter;-><init>(Landroid/app/LauncherActivity$IconResizer;)V
 Landroid/app/LauncherActivity$ActivityAdapter;->bindView(Landroid/view/View;Landroid/app/LauncherActivity$ListItem;)V
 Landroid/app/LauncherActivity$ActivityAdapter;->intentForPosition(I)Landroid/content/Intent;
 Landroid/app/LauncherActivity$ActivityAdapter;->itemForPosition(I)Landroid/app/LauncherActivity$ListItem;
@@ -7791,19 +7296,15 @@
 Landroid/app/ListFragment;->mRequestFocus:Ljava/lang/Runnable;
 Landroid/app/ListFragment;->mStandardEmptyView:Landroid/widget/TextView;
 Landroid/app/ListFragment;->setListShown(ZZ)V
-Landroid/app/LoadedApk$ReceiverDispatcher$Args;
-Landroid/app/LoadedApk$ReceiverDispatcher$Args;-><init>(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
 Landroid/app/LoadedApk$ReceiverDispatcher$Args;->getRunnable()Ljava/lang/Runnable;
 Landroid/app/LoadedApk$ReceiverDispatcher$Args;->mCurIntent:Landroid/content/Intent;
 Landroid/app/LoadedApk$ReceiverDispatcher$Args;->mDispatched:Z
 Landroid/app/LoadedApk$ReceiverDispatcher$Args;->mOrdered:Z
 Landroid/app/LoadedApk$ReceiverDispatcher$Args;->mPreviousRunStacktrace:Ljava/lang/Throwable;
-Landroid/app/LoadedApk$ReceiverDispatcher$InnerReceiver;
 Landroid/app/LoadedApk$ReceiverDispatcher$InnerReceiver;-><init>(Landroid/app/LoadedApk$ReceiverDispatcher;Z)V
 Landroid/app/LoadedApk$ReceiverDispatcher$InnerReceiver;->mDispatcher:Ljava/lang/ref/WeakReference;
 Landroid/app/LoadedApk$ReceiverDispatcher$InnerReceiver;->mStrongRef:Landroid/app/LoadedApk$ReceiverDispatcher;
 Landroid/app/LoadedApk$ReceiverDispatcher$InnerReceiver;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
-Landroid/app/LoadedApk$ReceiverDispatcher;
 Landroid/app/LoadedApk$ReceiverDispatcher;-><init>(Landroid/content/BroadcastReceiver;Landroid/content/Context;Landroid/os/Handler;Landroid/app/Instrumentation;Z)V
 Landroid/app/LoadedApk$ReceiverDispatcher;->getLocation()Landroid/app/IntentReceiverLeaked;
 Landroid/app/LoadedApk$ReceiverDispatcher;->getUnregisterLocation()Ljava/lang/RuntimeException;
@@ -7817,24 +7318,17 @@
 Landroid/app/LoadedApk$ReceiverDispatcher;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
 Landroid/app/LoadedApk$ReceiverDispatcher;->setUnregisterLocation(Ljava/lang/RuntimeException;)V
 Landroid/app/LoadedApk$ReceiverDispatcher;->validate(Landroid/content/Context;Landroid/os/Handler;)V
-Landroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo;
 Landroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo;-><init>()V
 Landroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo;->binder:Landroid/os/IBinder;
 Landroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo;->deathMonitor:Landroid/os/IBinder$DeathRecipient;
-Landroid/app/LoadedApk$ServiceDispatcher$DeathMonitor;
-Landroid/app/LoadedApk$ServiceDispatcher$DeathMonitor;-><init>(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 Landroid/app/LoadedApk$ServiceDispatcher$DeathMonitor;->mName:Landroid/content/ComponentName;
 Landroid/app/LoadedApk$ServiceDispatcher$DeathMonitor;->mService:Landroid/os/IBinder;
-Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection;
 Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection;-><init>(Landroid/app/LoadedApk$ServiceDispatcher;)V
 Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection;->connected(Landroid/content/ComponentName;Landroid/os/IBinder;Z)V
-Landroid/app/LoadedApk$ServiceDispatcher$RunConnection;
-Landroid/app/LoadedApk$ServiceDispatcher$RunConnection;-><init>(Landroid/content/ComponentName;Landroid/os/IBinder;IZ)V
 Landroid/app/LoadedApk$ServiceDispatcher$RunConnection;->mCommand:I
 Landroid/app/LoadedApk$ServiceDispatcher$RunConnection;->mDead:Z
 Landroid/app/LoadedApk$ServiceDispatcher$RunConnection;->mName:Landroid/content/ComponentName;
 Landroid/app/LoadedApk$ServiceDispatcher$RunConnection;->mService:Landroid/os/IBinder;
-Landroid/app/LoadedApk$ServiceDispatcher;
 Landroid/app/LoadedApk$ServiceDispatcher;->connected(Landroid/content/ComponentName;Landroid/os/IBinder;Z)V
 Landroid/app/LoadedApk$ServiceDispatcher;->death(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 Landroid/app/LoadedApk$ServiceDispatcher;->doConnected(Landroid/content/ComponentName;Landroid/os/IBinder;Z)V
@@ -7853,8 +7347,6 @@
 Landroid/app/LoadedApk$ServiceDispatcher;->mUnbindLocation:Ljava/lang/RuntimeException;
 Landroid/app/LoadedApk$ServiceDispatcher;->setUnbindLocation(Ljava/lang/RuntimeException;)V
 Landroid/app/LoadedApk$ServiceDispatcher;->validate(Landroid/content/Context;Landroid/os/Handler;)V
-Landroid/app/LoadedApk$SplitDependencyLoaderImpl;
-Landroid/app/LoadedApk$SplitDependencyLoaderImpl;-><init>(Landroid/util/SparseArray;)V
 Landroid/app/LoadedApk$SplitDependencyLoaderImpl;->constructSplit(I[II)V
 Landroid/app/LoadedApk$SplitDependencyLoaderImpl;->ensureSplitLoaded(Ljava/lang/String;)I
 Landroid/app/LoadedApk$SplitDependencyLoaderImpl;->getClassLoaderForSplit(Ljava/lang/String;)Ljava/lang/ClassLoader;
@@ -7862,11 +7354,9 @@
 Landroid/app/LoadedApk$SplitDependencyLoaderImpl;->isSplitCached(I)Z
 Landroid/app/LoadedApk$SplitDependencyLoaderImpl;->mCachedClassLoaders:[Ljava/lang/ClassLoader;
 Landroid/app/LoadedApk$SplitDependencyLoaderImpl;->mCachedResourcePaths:[[Ljava/lang/String;
-Landroid/app/LoadedApk$WarningContextClassLoader;
 Landroid/app/LoadedApk$WarningContextClassLoader;-><init>()V
 Landroid/app/LoadedApk$WarningContextClassLoader;->warn(Ljava/lang/String;)V
 Landroid/app/LoadedApk$WarningContextClassLoader;->warned:Z
-Landroid/app/LoadedApk;
 Landroid/app/LoadedApk;-><init>(Landroid/app/ActivityThread;)V
 Landroid/app/LoadedApk;-><init>(Landroid/app/ActivityThread;Landroid/content/pm/ApplicationInfo;Landroid/content/res/CompatibilityInfo;Ljava/lang/ClassLoader;ZZZ)V
 Landroid/app/LoadedApk;->adjustNativeLibraryPaths(Landroid/content/pm/ApplicationInfo;)Landroid/content/pm/ApplicationInfo;
@@ -7914,8 +7404,6 @@
 Landroid/app/LoadedApk;->TAG:Ljava/lang/String;
 Landroid/app/LoadedApk;->updateApplicationInfo(Landroid/content/pm/ApplicationInfo;Ljava/util/List;)V
 Landroid/app/LoaderManager;->getFragmentHostCallback()Landroid/app/FragmentHostCallback;
-Landroid/app/LoaderManagerImpl$LoaderInfo;
-Landroid/app/LoaderManagerImpl$LoaderInfo;-><init>(ILandroid/os/Bundle;Landroid/app/LoaderManager$LoaderCallbacks;)V
 Landroid/app/LoaderManagerImpl$LoaderInfo;->callOnLoadFinished(Landroid/content/Loader;Ljava/lang/Object;)V
 Landroid/app/LoaderManagerImpl$LoaderInfo;->cancel()Z
 Landroid/app/LoaderManagerImpl$LoaderInfo;->destroy()V
@@ -7941,7 +7429,6 @@
 Landroid/app/LoaderManagerImpl$LoaderInfo;->retain()V
 Landroid/app/LoaderManagerImpl$LoaderInfo;->start()V
 Landroid/app/LoaderManagerImpl$LoaderInfo;->stop()V
-Landroid/app/LoaderManagerImpl;
 Landroid/app/LoaderManagerImpl;-><init>(Ljava/lang/String;Landroid/app/FragmentHostCallback;Z)V
 Landroid/app/LoaderManagerImpl;->createAndInstallLoader(ILandroid/os/Bundle;Landroid/app/LoaderManager$LoaderCallbacks;)Landroid/app/LoaderManagerImpl$LoaderInfo;
 Landroid/app/LoaderManagerImpl;->createLoader(ILandroid/os/Bundle;Landroid/app/LoaderManager$LoaderCallbacks;)Landroid/app/LoaderManagerImpl$LoaderInfo;
@@ -7966,7 +7453,6 @@
 Landroid/app/LoaderManagerImpl;->mWho:Ljava/lang/String;
 Landroid/app/LoaderManagerImpl;->TAG:Ljava/lang/String;
 Landroid/app/LoaderManagerImpl;->updateHostController(Landroid/app/FragmentHostCallback;)V
-Landroid/app/LocalActivityManager$LocalActivityRecord;
 Landroid/app/LocalActivityManager$LocalActivityRecord;-><init>(Ljava/lang/String;Landroid/content/Intent;)V
 Landroid/app/LocalActivityManager$LocalActivityRecord;->activity:Landroid/app/Activity;
 Landroid/app/LocalActivityManager$LocalActivityRecord;->activityInfo:Landroid/content/pm/ActivityInfo;
@@ -7989,7 +7475,6 @@
 Landroid/app/LocalActivityManager;->RESUMED:I
 Landroid/app/LocalActivityManager;->STARTED:I
 Landroid/app/LocalActivityManager;->TAG:Ljava/lang/String;
-Landroid/app/MediaRouteActionProvider$MediaRouterCallback;
 Landroid/app/MediaRouteActionProvider$MediaRouterCallback;-><init>(Landroid/app/MediaRouteActionProvider;)V
 Landroid/app/MediaRouteActionProvider$MediaRouterCallback;->mProviderWeak:Ljava/lang/ref/WeakReference;
 Landroid/app/MediaRouteActionProvider$MediaRouterCallback;->refreshRoute(Landroid/media/MediaRouter;)V
@@ -8001,8 +7486,6 @@
 Landroid/app/MediaRouteActionProvider;->mRouteTypes:I
 Landroid/app/MediaRouteActionProvider;->refreshRoute()V
 Landroid/app/MediaRouteActionProvider;->TAG:Ljava/lang/String;
-Landroid/app/MediaRouteButton$MediaRouterCallback;
-Landroid/app/MediaRouteButton$MediaRouterCallback;-><init>()V
 Landroid/app/MediaRouteButton;->ACTIVATED_STATE_SET:[I
 Landroid/app/MediaRouteButton;->CHECKED_STATE_SET:[I
 Landroid/app/MediaRouteButton;->getActivity()Landroid/app/Activity;
@@ -8019,7 +7502,6 @@
 Landroid/app/MediaRouteButton;->refreshRoute()V
 Landroid/app/MediaRouteButton;->setRemoteIndicatorDrawable(Landroid/graphics/drawable/Drawable;)V
 Landroid/app/MediaRouteButton;->showDialogInternal()Z
-Landroid/app/NativeActivity$NativeContentView;
 Landroid/app/NativeActivity$NativeContentView;-><init>(Landroid/content/Context;)V
 Landroid/app/NativeActivity$NativeContentView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/app/NativeActivity$NativeContentView;->mActivity:Landroid/app/NativeActivity;
@@ -8061,7 +7543,6 @@
 Landroid/app/Notification$Action$Builder;->mRemoteInputs:Ljava/util/ArrayList;
 Landroid/app/Notification$Action$Builder;->mSemanticAction:I
 Landroid/app/Notification$Action$Builder;->mTitle:Ljava/lang/CharSequence;
-Landroid/app/Notification$Action$SemanticAction;
 Landroid/app/Notification$Action$WearableExtender;->DEFAULT_FLAGS:I
 Landroid/app/Notification$Action$WearableExtender;->EXTRA_WEARABLE_EXTENSIONS:Ljava/lang/String;
 Landroid/app/Notification$Action$WearableExtender;->FLAG_AVAILABLE_OFFLINE:I
@@ -8220,7 +7701,6 @@
 Landroid/app/Notification$Builder;->useExistingRemoteView()Z
 Landroid/app/Notification$Builder;->usesStandardHeader()Z
 Landroid/app/Notification$Builder;->USE_ONLY_TITLE_IN_LOW_PRIORITY_SUMMARY:Z
-Landroid/app/Notification$BuilderRemoteViews;
 Landroid/app/Notification$BuilderRemoteViews;-><init>(Landroid/content/pm/ApplicationInfo;I)V
 Landroid/app/Notification$BuilderRemoteViews;-><init>(Landroid/os/Parcel;)V
 Landroid/app/Notification$CarExtender$Builder;->mLatestTimestamp:J
@@ -8270,7 +7750,6 @@
 Landroid/app/Notification$DecoratedMediaCustomViewStyle;->makeBigContentViewWithCustomContent(Landroid/widget/RemoteViews;)Landroid/widget/RemoteViews;
 Landroid/app/Notification$DecoratedMediaCustomViewStyle;->makeContentView(Z)Landroid/widget/RemoteViews;
 Landroid/app/Notification$DecoratedMediaCustomViewStyle;->makeHeadsUpContentView(Z)Landroid/widget/RemoteViews;
-Landroid/app/Notification$GroupAlertBehavior;
 Landroid/app/Notification$InboxStyle;->addExtras(Landroid/os/Bundle;)V
 Landroid/app/Notification$InboxStyle;->areNotificationsVisiblyDifferent(Landroid/app/Notification$Style;)Z
 Landroid/app/Notification$InboxStyle;->getLines()Ljava/util/ArrayList;
@@ -8338,8 +7817,6 @@
 Landroid/app/Notification$MessagingStyle;->mUser:Landroid/app/Person;
 Landroid/app/Notification$MessagingStyle;->restoreFromExtras(Landroid/os/Bundle;)V
 Landroid/app/Notification$MessagingStyle;->validate(Landroid/content/Context;)V
-Landroid/app/Notification$Priority;
-Landroid/app/Notification$StandardTemplateParams;
 Landroid/app/Notification$StandardTemplateParams;-><init>()V
 Landroid/app/Notification$StandardTemplateParams;->ambient(Z)Landroid/app/Notification$StandardTemplateParams;
 Landroid/app/Notification$StandardTemplateParams;->ambient:Z
@@ -8378,7 +7855,6 @@
 Landroid/app/Notification$Style;->reduceImageSizes(Landroid/content/Context;)V
 Landroid/app/Notification$Style;->restoreFromExtras(Landroid/os/Bundle;)V
 Landroid/app/Notification$Style;->validate(Landroid/content/Context;)V
-Landroid/app/Notification$TemplateBindResult;
 Landroid/app/Notification$TemplateBindResult;-><init>()V
 Landroid/app/Notification$TemplateBindResult;->getIconMarginEnd()I
 Landroid/app/Notification$TemplateBindResult;->mIconMarginEnd:I
@@ -8396,7 +7872,6 @@
 Landroid/app/Notification$TvExtender;->mFlags:I
 Landroid/app/Notification$TvExtender;->mSuppressShowOverApps:Z
 Landroid/app/Notification$TvExtender;->TAG:Ljava/lang/String;
-Landroid/app/Notification$Visibility;
 Landroid/app/Notification$WearableExtender;->DEFAULT_CONTENT_ICON_GRAVITY:I
 Landroid/app/Notification$WearableExtender;->DEFAULT_FLAGS:I
 Landroid/app/Notification$WearableExtender;->DEFAULT_GRAVITY:I
@@ -8585,14 +8060,12 @@
 Landroid/app/NotificationChannelGroup;->TAG_GROUP:Ljava/lang/String;
 Landroid/app/NotificationChannelGroup;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
 Landroid/app/NotificationChannelGroup;->writeXml(Lorg/xmlpull/v1/XmlSerializer;)V
-Landroid/app/NotificationChannelGroupProto;
 Landroid/app/NotificationChannelGroupProto;-><init>()V
 Landroid/app/NotificationChannelGroupProto;->CHANNELS:J
 Landroid/app/NotificationChannelGroupProto;->DESCRIPTION:J
 Landroid/app/NotificationChannelGroupProto;->ID:J
 Landroid/app/NotificationChannelGroupProto;->IS_BLOCKED:J
 Landroid/app/NotificationChannelGroupProto;->NAME:J
-Landroid/app/NotificationChannelProto;
 Landroid/app/NotificationChannelProto;-><init>()V
 Landroid/app/NotificationChannelProto;->AUDIO_ATTRIBUTES:J
 Landroid/app/NotificationChannelProto;->CAN_BYPASS_DND:J
@@ -8612,8 +8085,6 @@
 Landroid/app/NotificationChannelProto;->USER_LOCKED_FIELDS:J
 Landroid/app/NotificationChannelProto;->USE_LIGHTS:J
 Landroid/app/NotificationChannelProto;->VIBRATION:J
-Landroid/app/NotificationManager$Importance;
-Landroid/app/NotificationManager$InterruptionFilter;
 Landroid/app/NotificationManager$Policy;-><init>(IIIII)V
 Landroid/app/NotificationManager$Policy;-><init>(Landroid/os/Parcel;)V
 Landroid/app/NotificationManager$Policy;->ALL_PRIORITY_CATEGORIES:[I
@@ -8657,7 +8128,6 @@
 Landroid/app/NotificationManager;->VISIBILITY_NO_OVERRIDE:I
 Landroid/app/NotificationManager;->zenModeFromInterruptionFilter(II)I
 Landroid/app/NotificationManager;->zenModeToInterruptionFilter(I)I
-Landroid/app/NotificationProto;
 Landroid/app/NotificationProto;-><init>()V
 Landroid/app/NotificationProto;->ACTION_LENGTH:J
 Landroid/app/NotificationProto;->CATEGORY:J
@@ -8672,20 +8142,15 @@
 Landroid/app/NotificationProto;->VISIBILITY_PRIVATE:I
 Landroid/app/NotificationProto;->VISIBILITY_PUBLIC:I
 Landroid/app/NotificationProto;->VISIBILITY_SECRET:I
-Landroid/app/OnActivityPausedListener;
 Landroid/app/OnActivityPausedListener;->onPaused(Landroid/app/Activity;)V
-Landroid/app/PackageDeleteObserver;
 Landroid/app/PackageDeleteObserver;->getBinder()Landroid/content/pm/IPackageDeleteObserver2;
 Landroid/app/PackageDeleteObserver;->mBinder:Landroid/content/pm/IPackageDeleteObserver2$Stub;
 Landroid/app/PackageDeleteObserver;->onPackageDeleted(Ljava/lang/String;ILjava/lang/String;)V
 Landroid/app/PackageDeleteObserver;->onUserActionRequired(Landroid/content/Intent;)V
-Landroid/app/PackageInstallObserver;
 Landroid/app/PackageInstallObserver;->getBinder()Landroid/content/pm/IPackageInstallObserver2;
 Landroid/app/PackageInstallObserver;->mBinder:Landroid/content/pm/IPackageInstallObserver2$Stub;
 Landroid/app/PackageInstallObserver;->onUserActionRequired(Landroid/content/Intent;)V
-Landroid/app/PendingIntent$CancelListener;
 Landroid/app/PendingIntent$CancelListener;->onCancelled(Landroid/app/PendingIntent;)V
-Landroid/app/PendingIntent$FinishedDispatcher;
 Landroid/app/PendingIntent$FinishedDispatcher;-><init>(Landroid/app/PendingIntent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;)V
 Landroid/app/PendingIntent$FinishedDispatcher;->mHandler:Landroid/os/Handler;
 Landroid/app/PendingIntent$FinishedDispatcher;->mIntent:Landroid/content/Intent;
@@ -8696,8 +8161,6 @@
 Landroid/app/PendingIntent$FinishedDispatcher;->mWho:Landroid/app/PendingIntent$OnFinished;
 Landroid/app/PendingIntent$FinishedDispatcher;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
 Landroid/app/PendingIntent$FinishedDispatcher;->sDefaultSystemHandler:Landroid/os/Handler;
-Landroid/app/PendingIntent$Flags;
-Landroid/app/PendingIntent$OnMarshaledListener;
 Landroid/app/PendingIntent$OnMarshaledListener;->onMarshaled(Landroid/app/PendingIntent;Landroid/os/Parcel;I)V
 Landroid/app/PendingIntent;-><init>(Landroid/content/IIntentSender;)V
 Landroid/app/PendingIntent;-><init>(Landroid/os/IBinder;Ljava/lang/Object;)V
@@ -8717,7 +8180,6 @@
 Landroid/app/PendingIntent;->sOnMarshaledListener:Ljava/lang/ThreadLocal;
 Landroid/app/PendingIntent;->unregisterCancelListener(Landroid/app/PendingIntent$CancelListener;)V
 Landroid/app/PendingIntent;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/app/PendingIntentProto;
 Landroid/app/PendingIntentProto;-><init>()V
 Landroid/app/PendingIntentProto;->TARGET:J
 Landroid/app/Person$Builder;-><init>(Landroid/app/Person;)V
@@ -8774,7 +8236,6 @@
 Landroid/app/PictureInPictureParams;->mSourceRectHint:Landroid/graphics/Rect;
 Landroid/app/PictureInPictureParams;->mUserActions:Ljava/util/List;
 Landroid/app/PictureInPictureParams;->truncateActions(I)V
-Landroid/app/PolicyProto;
 Landroid/app/PolicyProto;-><init>()V
 Landroid/app/PolicyProto;->ALARMS:I
 Landroid/app/PolicyProto;->ANY:I
@@ -8804,7 +8265,6 @@
 Landroid/app/Presentation;->MSG_CANCEL:I
 Landroid/app/Presentation;->mToken:Landroid/os/IBinder;
 Landroid/app/Presentation;->TAG:Ljava/lang/String;
-Landroid/app/ProcessMemoryState;
 Landroid/app/ProcessMemoryState;-><init>(ILjava/lang/String;IJJJJJ)V
 Landroid/app/ProcessMemoryState;-><init>(Landroid/os/Parcel;)V
 Landroid/app/ProcessMemoryState;->cacheInBytes:J
@@ -8816,7 +8276,6 @@
 Landroid/app/ProcessMemoryState;->rssInBytes:J
 Landroid/app/ProcessMemoryState;->swapInBytes:J
 Landroid/app/ProcessMemoryState;->uid:I
-Landroid/app/ProfilerInfo;
 Landroid/app/ProfilerInfo;-><init>(Landroid/app/ProfilerInfo;)V
 Landroid/app/ProfilerInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/app/ProfilerInfo;-><init>(Ljava/lang/String;Landroid/os/ParcelFileDescriptor;IZZLjava/lang/String;Z)V
@@ -8832,7 +8291,6 @@
 Landroid/app/ProfilerInfo;->streamingOutput:Z
 Landroid/app/ProfilerInfo;->TAG:Ljava/lang/String;
 Landroid/app/ProfilerInfo;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/app/ProfilerInfoProto;
 Landroid/app/ProfilerInfoProto;-><init>()V
 Landroid/app/ProfilerInfoProto;->AGENT:J
 Landroid/app/ProfilerInfoProto;->AUTO_STOP_PROFILER:J
@@ -8857,10 +8315,8 @@
 Landroid/app/ProgressDialog;->mSecondaryProgressVal:I
 Landroid/app/ProgressDialog;->mViewUpdateHandler:Landroid/os/Handler;
 Landroid/app/ProgressDialog;->onProgressChanged()V
-Landroid/app/QueuedWork$QueuedWorkHandler;
 Landroid/app/QueuedWork$QueuedWorkHandler;-><init>(Landroid/os/Looper;)V
 Landroid/app/QueuedWork$QueuedWorkHandler;->MSG_RUN:I
-Landroid/app/QueuedWork;
 Landroid/app/QueuedWork;-><init>()V
 Landroid/app/QueuedWork;->DEBUG:Z
 Landroid/app/QueuedWork;->DELAY:J
@@ -8876,9 +8332,7 @@
 Landroid/app/QueuedWork;->sProcessingWork:Ljava/lang/Object;
 Landroid/app/QueuedWork;->sWork:Ljava/util/LinkedList;
 Landroid/app/QueuedWork;->waitToFinish()V
-Landroid/app/RecoverableSecurityException$LocalDialog;
 Landroid/app/RecoverableSecurityException$LocalDialog;-><init>()V
-Landroid/app/RecoverableSecurityException;
 Landroid/app/RecoverableSecurityException;-><init>(Landroid/os/Parcel;)V
 Landroid/app/RecoverableSecurityException;-><init>(Ljava/lang/Throwable;Ljava/lang/CharSequence;Landroid/app/RemoteAction;)V
 Landroid/app/RecoverableSecurityException;-><init>(Ljava/lang/Throwable;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/app/PendingIntent;)V
@@ -8899,7 +8353,6 @@
 Landroid/app/RemoteAction;->mShouldShowIcon:Z
 Landroid/app/RemoteAction;->mTitle:Ljava/lang/CharSequence;
 Landroid/app/RemoteAction;->TAG:Ljava/lang/String;
-Landroid/app/RemoteAnimationTargetProto;
 Landroid/app/RemoteAnimationTargetProto;-><init>()V
 Landroid/app/RemoteAnimationTargetProto;->CLIP_RECT:J
 Landroid/app/RemoteAnimationTargetProto;->CONTENT_INSETS:J
@@ -8918,7 +8371,6 @@
 Landroid/app/RemoteInput$Builder;->mLabel:Ljava/lang/CharSequence;
 Landroid/app/RemoteInput$Builder;->mResultKey:Ljava/lang/String;
 Landroid/app/RemoteInput$Builder;->setFlag(IZ)V
-Landroid/app/RemoteInput$Source;
 Landroid/app/RemoteInput;-><init>(Landroid/os/Parcel;)V
 Landroid/app/RemoteInput;-><init>(Ljava/lang/String;Ljava/lang/CharSequence;[Ljava/lang/CharSequence;ILandroid/os/Bundle;Landroid/util/ArraySet;)V
 Landroid/app/RemoteInput;->DEFAULT_FLAGS:I
@@ -8933,15 +8385,12 @@
 Landroid/app/RemoteInput;->mFlags:I
 Landroid/app/RemoteInput;->mLabel:Ljava/lang/CharSequence;
 Landroid/app/RemoteInput;->mResultKey:Ljava/lang/String;
-Landroid/app/ResourcesManager$ActivityResources;
 Landroid/app/ResourcesManager$ActivityResources;->activityResources:Ljava/util/ArrayList;
 Landroid/app/ResourcesManager$ActivityResources;->overrideConfig:Landroid/content/res/Configuration;
-Landroid/app/ResourcesManager$ApkKey;
 Landroid/app/ResourcesManager$ApkKey;-><init>(Ljava/lang/String;ZZ)V
 Landroid/app/ResourcesManager$ApkKey;->overlay:Z
 Landroid/app/ResourcesManager$ApkKey;->path:Ljava/lang/String;
 Landroid/app/ResourcesManager$ApkKey;->sharedLib:Z
-Landroid/app/ResourcesManager;
 Landroid/app/ResourcesManager;->applyCompatConfigurationLocked(ILandroid/content/res/Configuration;)Z
 Landroid/app/ResourcesManager;->applyConfigurationToResourcesLocked(Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;)Z
 Landroid/app/ResourcesManager;->applyNewResourceDirsLocked(Ljava/lang/String;[Ljava/lang/String;)V
@@ -8979,10 +8428,8 @@
 Landroid/app/ResourcesManager;->sResourcesManager:Landroid/app/ResourcesManager;
 Landroid/app/ResourcesManager;->TAG:Ljava/lang/String;
 Landroid/app/ResourcesManager;->updateResourcesForActivity(Landroid/os/IBinder;Landroid/content/res/Configuration;IZ)V
-Landroid/app/ResultInfo;
 Landroid/app/ResultInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/app/ResultInfo;->mResultCode:I
-Landroid/app/SearchableInfo$ActionKeyInfo;
 Landroid/app/SearchableInfo$ActionKeyInfo;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/app/SearchableInfo$ActionKeyInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/app/SearchableInfo$ActionKeyInfo;->getKeyCode()I
@@ -9035,10 +8482,8 @@
 Landroid/app/SearchableInfo;->VOICE_SEARCH_LAUNCH_RECOGNIZER:I
 Landroid/app/SearchableInfo;->VOICE_SEARCH_LAUNCH_WEB_SEARCH:I
 Landroid/app/SearchableInfo;->VOICE_SEARCH_SHOW_BUTTON:I
-Landroid/app/SearchDialog$SearchBar;
 Landroid/app/SearchDialog$SearchBar;-><init>(Landroid/content/Context;)V
 Landroid/app/SearchDialog$SearchBar;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-Landroid/app/SearchDialog;
 Landroid/app/SearchDialog;-><init>(Landroid/content/Context;Landroid/app/SearchManager;)V
 Landroid/app/SearchDialog;->createContentView()V
 Landroid/app/SearchDialog;->createIntent(Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Landroid/content/Intent;
@@ -9097,7 +8542,6 @@
 Landroid/app/SearchManager;->SEARCH_MODE:Ljava/lang/String;
 Landroid/app/SearchManager;->startGlobalSearch(Ljava/lang/String;ZLandroid/os/Bundle;Landroid/graphics/Rect;)V
 Landroid/app/SearchManager;->TAG:Ljava/lang/String;
-Landroid/app/servertransaction/ActivityConfigurationChangeItem;
 Landroid/app/servertransaction/ActivityConfigurationChangeItem;-><init>()V
 Landroid/app/servertransaction/ActivityConfigurationChangeItem;-><init>(Landroid/os/Parcel;)V
 Landroid/app/servertransaction/ActivityConfigurationChangeItem;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -9105,8 +8549,6 @@
 Landroid/app/servertransaction/ActivityConfigurationChangeItem;->mConfiguration:Landroid/content/res/Configuration;
 Landroid/app/servertransaction/ActivityConfigurationChangeItem;->obtain(Landroid/content/res/Configuration;)Landroid/app/servertransaction/ActivityConfigurationChangeItem;
 Landroid/app/servertransaction/ActivityConfigurationChangeItem;->recycle()V
-Landroid/app/servertransaction/ActivityLifecycleItem$LifecycleState;
-Landroid/app/servertransaction/ActivityLifecycleItem;
 Landroid/app/servertransaction/ActivityLifecycleItem;-><init>()V
 Landroid/app/servertransaction/ActivityLifecycleItem;->getTargetState()I
 Landroid/app/servertransaction/ActivityLifecycleItem;->ON_CREATE:I
@@ -9119,7 +8561,6 @@
 Landroid/app/servertransaction/ActivityLifecycleItem;->PRE_ON_CREATE:I
 Landroid/app/servertransaction/ActivityLifecycleItem;->recycle()V
 Landroid/app/servertransaction/ActivityLifecycleItem;->UNDEFINED:I
-Landroid/app/servertransaction/ActivityRelaunchItem;
 Landroid/app/servertransaction/ActivityRelaunchItem;-><init>()V
 Landroid/app/servertransaction/ActivityRelaunchItem;-><init>(Landroid/os/Parcel;)V
 Landroid/app/servertransaction/ActivityRelaunchItem;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -9135,18 +8576,15 @@
 Landroid/app/servertransaction/ActivityRelaunchItem;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V
 Landroid/app/servertransaction/ActivityRelaunchItem;->recycle()V
 Landroid/app/servertransaction/ActivityRelaunchItem;->TAG:Ljava/lang/String;
-Landroid/app/servertransaction/ActivityResultItem;
 Landroid/app/servertransaction/ActivityResultItem;-><init>()V
 Landroid/app/servertransaction/ActivityResultItem;-><init>(Landroid/os/Parcel;)V
 Landroid/app/servertransaction/ActivityResultItem;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/app/servertransaction/ActivityResultItem;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
 Landroid/app/servertransaction/ActivityResultItem;->obtain(Ljava/util/List;)Landroid/app/servertransaction/ActivityResultItem;
 Landroid/app/servertransaction/ActivityResultItem;->recycle()V
-Landroid/app/servertransaction/BaseClientRequest;
 Landroid/app/servertransaction/BaseClientRequest;->execute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
 Landroid/app/servertransaction/BaseClientRequest;->postExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
 Landroid/app/servertransaction/BaseClientRequest;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V
-Landroid/app/servertransaction/ClientTransaction;
 Landroid/app/servertransaction/ClientTransaction;-><init>()V
 Landroid/app/servertransaction/ClientTransaction;-><init>(Landroid/os/Parcel;)V
 Landroid/app/servertransaction/ClientTransaction;->addCallback(Landroid/app/servertransaction/ClientTransactionItem;)V
@@ -9160,10 +8598,8 @@
 Landroid/app/servertransaction/ClientTransaction;->recycle()V
 Landroid/app/servertransaction/ClientTransaction;->schedule()V
 Landroid/app/servertransaction/ClientTransaction;->setLifecycleStateRequest(Landroid/app/servertransaction/ActivityLifecycleItem;)V
-Landroid/app/servertransaction/ClientTransactionItem;
 Landroid/app/servertransaction/ClientTransactionItem;-><init>()V
 Landroid/app/servertransaction/ClientTransactionItem;->getPostExecutionState()I
-Landroid/app/servertransaction/ConfigurationChangeItem;
 Landroid/app/servertransaction/ConfigurationChangeItem;-><init>()V
 Landroid/app/servertransaction/ConfigurationChangeItem;-><init>(Landroid/os/Parcel;)V
 Landroid/app/servertransaction/ConfigurationChangeItem;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -9172,7 +8608,6 @@
 Landroid/app/servertransaction/ConfigurationChangeItem;->obtain(Landroid/content/res/Configuration;)Landroid/app/servertransaction/ConfigurationChangeItem;
 Landroid/app/servertransaction/ConfigurationChangeItem;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V
 Landroid/app/servertransaction/ConfigurationChangeItem;->recycle()V
-Landroid/app/servertransaction/DestroyActivityItem;
 Landroid/app/servertransaction/DestroyActivityItem;-><init>()V
 Landroid/app/servertransaction/DestroyActivityItem;-><init>(Landroid/os/Parcel;)V
 Landroid/app/servertransaction/DestroyActivityItem;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -9182,7 +8617,6 @@
 Landroid/app/servertransaction/DestroyActivityItem;->mFinished:Z
 Landroid/app/servertransaction/DestroyActivityItem;->obtain(ZI)Landroid/app/servertransaction/DestroyActivityItem;
 Landroid/app/servertransaction/DestroyActivityItem;->recycle()V
-Landroid/app/servertransaction/LaunchActivityItem;
 Landroid/app/servertransaction/LaunchActivityItem;-><init>()V
 Landroid/app/servertransaction/LaunchActivityItem;-><init>(Landroid/os/Parcel;)V
 Landroid/app/servertransaction/LaunchActivityItem;->activityInfoEqual(Landroid/content/pm/ActivityInfo;)Z
@@ -9206,7 +8640,6 @@
 Landroid/app/servertransaction/LaunchActivityItem;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V
 Landroid/app/servertransaction/LaunchActivityItem;->recycle()V
 Landroid/app/servertransaction/LaunchActivityItem;->setValues(Landroid/app/servertransaction/LaunchActivityItem;Landroid/content/Intent;ILandroid/content/pm/ActivityInfo;Landroid/content/res/Configuration;Landroid/content/res/Configuration;Landroid/content/res/CompatibilityInfo;Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractor;ILandroid/os/Bundle;Landroid/os/PersistableBundle;Ljava/util/List;Ljava/util/List;ZLandroid/app/ProfilerInfo;)V
-Landroid/app/servertransaction/MoveToDisplayItem;
 Landroid/app/servertransaction/MoveToDisplayItem;-><init>()V
 Landroid/app/servertransaction/MoveToDisplayItem;-><init>(Landroid/os/Parcel;)V
 Landroid/app/servertransaction/MoveToDisplayItem;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -9215,7 +8648,6 @@
 Landroid/app/servertransaction/MoveToDisplayItem;->mTargetDisplayId:I
 Landroid/app/servertransaction/MoveToDisplayItem;->obtain(ILandroid/content/res/Configuration;)Landroid/app/servertransaction/MoveToDisplayItem;
 Landroid/app/servertransaction/MoveToDisplayItem;->recycle()V
-Landroid/app/servertransaction/MultiWindowModeChangeItem;
 Landroid/app/servertransaction/MultiWindowModeChangeItem;-><init>()V
 Landroid/app/servertransaction/MultiWindowModeChangeItem;-><init>(Landroid/os/Parcel;)V
 Landroid/app/servertransaction/MultiWindowModeChangeItem;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -9224,7 +8656,6 @@
 Landroid/app/servertransaction/MultiWindowModeChangeItem;->mOverrideConfig:Landroid/content/res/Configuration;
 Landroid/app/servertransaction/MultiWindowModeChangeItem;->obtain(ZLandroid/content/res/Configuration;)Landroid/app/servertransaction/MultiWindowModeChangeItem;
 Landroid/app/servertransaction/MultiWindowModeChangeItem;->recycle()V
-Landroid/app/servertransaction/NewIntentItem;
 Landroid/app/servertransaction/NewIntentItem;-><init>()V
 Landroid/app/servertransaction/NewIntentItem;-><init>(Landroid/os/Parcel;)V
 Landroid/app/servertransaction/NewIntentItem;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -9232,9 +8663,7 @@
 Landroid/app/servertransaction/NewIntentItem;->mPause:Z
 Landroid/app/servertransaction/NewIntentItem;->obtain(Ljava/util/List;Z)Landroid/app/servertransaction/NewIntentItem;
 Landroid/app/servertransaction/NewIntentItem;->recycle()V
-Landroid/app/servertransaction/ObjectPoolItem;
 Landroid/app/servertransaction/ObjectPoolItem;->recycle()V
-Landroid/app/servertransaction/PauseActivityItem;
 Landroid/app/servertransaction/PauseActivityItem;-><init>()V
 Landroid/app/servertransaction/PauseActivityItem;-><init>(Landroid/os/Parcel;)V
 Landroid/app/servertransaction/PauseActivityItem;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -9249,7 +8678,6 @@
 Landroid/app/servertransaction/PauseActivityItem;->postExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
 Landroid/app/servertransaction/PauseActivityItem;->recycle()V
 Landroid/app/servertransaction/PauseActivityItem;->TAG:Ljava/lang/String;
-Landroid/app/servertransaction/PendingTransactionActions$StopInfo;
 Landroid/app/servertransaction/PendingTransactionActions$StopInfo;-><init>()V
 Landroid/app/servertransaction/PendingTransactionActions$StopInfo;->mActivity:Landroid/app/ActivityThread$ActivityClientRecord;
 Landroid/app/servertransaction/PendingTransactionActions$StopInfo;->mDescription:Ljava/lang/CharSequence;
@@ -9260,7 +8688,6 @@
 Landroid/app/servertransaction/PendingTransactionActions$StopInfo;->setPersistentState(Landroid/os/PersistableBundle;)V
 Landroid/app/servertransaction/PendingTransactionActions$StopInfo;->setState(Landroid/os/Bundle;)V
 Landroid/app/servertransaction/PendingTransactionActions$StopInfo;->TAG:Ljava/lang/String;
-Landroid/app/servertransaction/PendingTransactionActions;
 Landroid/app/servertransaction/PendingTransactionActions;-><init>()V
 Landroid/app/servertransaction/PendingTransactionActions;->clear()V
 Landroid/app/servertransaction/PendingTransactionActions;->getOldState()Landroid/os/Bundle;
@@ -9278,7 +8705,6 @@
 Landroid/app/servertransaction/PendingTransactionActions;->shouldCallOnPostCreate()Z
 Landroid/app/servertransaction/PendingTransactionActions;->shouldReportRelaunchToWindowManager()Z
 Landroid/app/servertransaction/PendingTransactionActions;->shouldRestoreInstanceState()Z
-Landroid/app/servertransaction/PipModeChangeItem;
 Landroid/app/servertransaction/PipModeChangeItem;-><init>()V
 Landroid/app/servertransaction/PipModeChangeItem;-><init>(Landroid/os/Parcel;)V
 Landroid/app/servertransaction/PipModeChangeItem;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -9287,7 +8713,6 @@
 Landroid/app/servertransaction/PipModeChangeItem;->mOverrideConfig:Landroid/content/res/Configuration;
 Landroid/app/servertransaction/PipModeChangeItem;->obtain(ZLandroid/content/res/Configuration;)Landroid/app/servertransaction/PipModeChangeItem;
 Landroid/app/servertransaction/PipModeChangeItem;->recycle()V
-Landroid/app/servertransaction/ResumeActivityItem;
 Landroid/app/servertransaction/ResumeActivityItem;-><init>()V
 Landroid/app/servertransaction/ResumeActivityItem;-><init>(Landroid/os/Parcel;)V
 Landroid/app/servertransaction/ResumeActivityItem;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -9302,7 +8727,6 @@
 Landroid/app/servertransaction/ResumeActivityItem;->preExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;)V
 Landroid/app/servertransaction/ResumeActivityItem;->recycle()V
 Landroid/app/servertransaction/ResumeActivityItem;->TAG:Ljava/lang/String;
-Landroid/app/servertransaction/StopActivityItem;
 Landroid/app/servertransaction/StopActivityItem;-><init>()V
 Landroid/app/servertransaction/StopActivityItem;-><init>(Landroid/os/Parcel;)V
 Landroid/app/servertransaction/StopActivityItem;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -9314,7 +8738,6 @@
 Landroid/app/servertransaction/StopActivityItem;->postExecute(Landroid/app/ClientTransactionHandler;Landroid/os/IBinder;Landroid/app/servertransaction/PendingTransactionActions;)V
 Landroid/app/servertransaction/StopActivityItem;->recycle()V
 Landroid/app/servertransaction/StopActivityItem;->TAG:Ljava/lang/String;
-Landroid/app/servertransaction/TransactionExecutor;
 Landroid/app/servertransaction/TransactionExecutor;-><init>(Landroid/app/ClientTransactionHandler;)V
 Landroid/app/servertransaction/TransactionExecutor;->cycleToPath(Landroid/app/ActivityThread$ActivityClientRecord;I)V
 Landroid/app/servertransaction/TransactionExecutor;->cycleToPath(Landroid/app/ActivityThread$ActivityClientRecord;IZ)V
@@ -9328,7 +8751,6 @@
 Landroid/app/servertransaction/TransactionExecutor;->mTransactionHandler:Landroid/app/ClientTransactionHandler;
 Landroid/app/servertransaction/TransactionExecutor;->performLifecycleSequence(Landroid/app/ActivityThread$ActivityClientRecord;Landroid/util/IntArray;)V
 Landroid/app/servertransaction/TransactionExecutor;->TAG:Ljava/lang/String;
-Landroid/app/servertransaction/TransactionExecutorHelper;
 Landroid/app/servertransaction/TransactionExecutorHelper;-><init>()V
 Landroid/app/servertransaction/TransactionExecutorHelper;->DESTRUCTION_PENALTY:I
 Landroid/app/servertransaction/TransactionExecutorHelper;->getClosestOfStates(Landroid/app/ActivityThread$ActivityClientRecord;[I)I
@@ -9339,7 +8761,6 @@
 Landroid/app/servertransaction/TransactionExecutorHelper;->mLifecycleSequence:Landroid/util/IntArray;
 Landroid/app/servertransaction/TransactionExecutorHelper;->ON_RESUME_PRE_EXCUTION_STATES:[I
 Landroid/app/servertransaction/TransactionExecutorHelper;->pathInvolvesDestruction(Landroid/util/IntArray;)Z
-Landroid/app/servertransaction/WindowVisibilityItem;
 Landroid/app/servertransaction/WindowVisibilityItem;-><init>()V
 Landroid/app/servertransaction/WindowVisibilityItem;-><init>(Landroid/os/Parcel;)V
 Landroid/app/servertransaction/WindowVisibilityItem;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -9347,15 +8768,10 @@
 Landroid/app/servertransaction/WindowVisibilityItem;->mShowWindow:Z
 Landroid/app/servertransaction/WindowVisibilityItem;->obtain(Z)Landroid/app/servertransaction/WindowVisibilityItem;
 Landroid/app/servertransaction/WindowVisibilityItem;->recycle()V
-Landroid/app/Service$StartArgFlags;
-Landroid/app/Service$StartResult;
-Landroid/app/Service$StopForegroundFlags;
 Landroid/app/Service;->detachAndCleanUp()V
 Landroid/app/Service;->getClassName()Ljava/lang/String;
 Landroid/app/Service;->START_TASK_REMOVED_COMPLETE:I
 Landroid/app/Service;->TAG:Ljava/lang/String;
-Landroid/app/ServiceConnectionLeaked;
-Landroid/app/ServiceStartArgs;
 Landroid/app/ServiceStartArgs;-><init>(Landroid/os/Parcel;)V
 Landroid/app/ServiceStartArgs;-><init>(ZIILandroid/content/Intent;)V
 Landroid/app/ServiceStartArgs;->args:Landroid/content/Intent;
@@ -9369,14 +8785,11 @@
 Landroid/app/SharedElementCallback;->BUNDLE_SNAPSHOT_IMAGE_SCALETYPE:Ljava/lang/String;
 Landroid/app/SharedElementCallback;->mTempMatrix:Landroid/graphics/Matrix;
 Landroid/app/SharedElementCallback;->NULL_CALLBACK:Landroid/app/SharedElementCallback;
-Landroid/app/SharedPreferencesImpl$EditorImpl;
-Landroid/app/SharedPreferencesImpl$EditorImpl;-><init>()V
 Landroid/app/SharedPreferencesImpl$EditorImpl;->commitToMemory()Landroid/app/SharedPreferencesImpl$MemoryCommitResult;
 Landroid/app/SharedPreferencesImpl$EditorImpl;->mClear:Z
 Landroid/app/SharedPreferencesImpl$EditorImpl;->mEditorLock:Ljava/lang/Object;
 Landroid/app/SharedPreferencesImpl$EditorImpl;->mModified:Ljava/util/Map;
 Landroid/app/SharedPreferencesImpl$EditorImpl;->notifyListeners(Landroid/app/SharedPreferencesImpl$MemoryCommitResult;)V
-Landroid/app/SharedPreferencesImpl$MemoryCommitResult;
 Landroid/app/SharedPreferencesImpl$MemoryCommitResult;-><init>(JLjava/util/List;Ljava/util/Set;Ljava/util/Map;)V
 Landroid/app/SharedPreferencesImpl$MemoryCommitResult;->keysModified:Ljava/util/List;
 Landroid/app/SharedPreferencesImpl$MemoryCommitResult;->listeners:Ljava/util/Set;
@@ -9386,7 +8799,6 @@
 Landroid/app/SharedPreferencesImpl$MemoryCommitResult;->wasWritten:Z
 Landroid/app/SharedPreferencesImpl$MemoryCommitResult;->writeToDiskResult:Z
 Landroid/app/SharedPreferencesImpl$MemoryCommitResult;->writtenToDiskLatch:Ljava/util/concurrent/CountDownLatch;
-Landroid/app/SharedPreferencesImpl;
 Landroid/app/SharedPreferencesImpl;->awaitLoadedLocked()V
 Landroid/app/SharedPreferencesImpl;->CONTENT:Ljava/lang/Object;
 Landroid/app/SharedPreferencesImpl;->createFileOutputStream(Ljava/io/File;)Ljava/io/FileOutputStream;
@@ -9413,19 +8825,15 @@
 Landroid/app/SharedPreferencesImpl;->mWritingToDiskLock:Ljava/lang/Object;
 Landroid/app/SharedPreferencesImpl;->TAG:Ljava/lang/String;
 Landroid/app/SharedPreferencesImpl;->writeToFile(Landroid/app/SharedPreferencesImpl$MemoryCommitResult;Z)V
-Landroid/app/slice/ISliceListener$Stub$Proxy;
 Landroid/app/slice/ISliceListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/slice/ISliceListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/slice/ISliceListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/app/slice/ISliceListener$Stub$Proxy;->onSliceUpdated(Landroid/app/slice/Slice;)V
-Landroid/app/slice/ISliceListener$Stub;
 Landroid/app/slice/ISliceListener$Stub;-><init>()V
 Landroid/app/slice/ISliceListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/slice/ISliceListener;
 Landroid/app/slice/ISliceListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/slice/ISliceListener$Stub;->TRANSACTION_onSliceUpdated:I
-Landroid/app/slice/ISliceListener;
 Landroid/app/slice/ISliceListener;->onSliceUpdated(Landroid/app/slice/Slice;)V
-Landroid/app/slice/ISliceManager$Stub$Proxy;
 Landroid/app/slice/ISliceManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/slice/ISliceManager$Stub$Proxy;->applyRestore([BI)V
 Landroid/app/slice/ISliceManager$Stub$Proxy;->checkSlicePermission(Landroid/net/Uri;Ljava/lang/String;II[Ljava/lang/String;)I
@@ -9440,7 +8848,6 @@
 Landroid/app/slice/ISliceManager$Stub$Proxy;->pinSlice(Ljava/lang/String;Landroid/net/Uri;[Landroid/app/slice/SliceSpec;Landroid/os/IBinder;)V
 Landroid/app/slice/ISliceManager$Stub$Proxy;->revokeSlicePermission(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)V
 Landroid/app/slice/ISliceManager$Stub$Proxy;->unpinSlice(Ljava/lang/String;Landroid/net/Uri;Landroid/os/IBinder;)V
-Landroid/app/slice/ISliceManager$Stub;
 Landroid/app/slice/ISliceManager$Stub;-><init>()V
 Landroid/app/slice/ISliceManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/slice/ISliceManager;
 Landroid/app/slice/ISliceManager$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -9455,7 +8862,6 @@
 Landroid/app/slice/ISliceManager$Stub;->TRANSACTION_pinSlice:I
 Landroid/app/slice/ISliceManager$Stub;->TRANSACTION_revokeSlicePermission:I
 Landroid/app/slice/ISliceManager$Stub;->TRANSACTION_unpinSlice:I
-Landroid/app/slice/ISliceManager;
 Landroid/app/slice/ISliceManager;->applyRestore([BI)V
 Landroid/app/slice/ISliceManager;->checkSlicePermission(Landroid/net/Uri;Ljava/lang/String;II[Ljava/lang/String;)I
 Landroid/app/slice/ISliceManager;->getBackupPayload(I)[B
@@ -9471,8 +8877,6 @@
 Landroid/app/slice/Slice$Builder;->mItems:Ljava/util/ArrayList;
 Landroid/app/slice/Slice$Builder;->mSpec:Landroid/app/slice/SliceSpec;
 Landroid/app/slice/Slice$Builder;->mUri:Landroid/net/Uri;
-Landroid/app/slice/Slice$SliceHint;
-Landroid/app/slice/Slice$SliceSubtype;
 Landroid/app/slice/Slice;-><init>(Ljava/util/ArrayList;[Ljava/lang/String;Landroid/net/Uri;Landroid/app/slice/SliceSpec;)V
 Landroid/app/slice/Slice;->hasHint(Ljava/lang/String;)Z
 Landroid/app/slice/Slice;->HINT_CALLER_NEEDED:Ljava/lang/String;
@@ -9482,7 +8886,6 @@
 Landroid/app/slice/Slice;->mSpec:Landroid/app/slice/SliceSpec;
 Landroid/app/slice/Slice;->mUri:Landroid/net/Uri;
 Landroid/app/slice/Slice;->toString(Ljava/lang/String;)Ljava/lang/String;
-Landroid/app/slice/SliceItem$SliceType;
 Landroid/app/slice/SliceItem;-><init>(Landroid/app/PendingIntent;Landroid/app/slice/Slice;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
 Landroid/app/slice/SliceItem;-><init>(Landroid/os/Parcel;)V
 Landroid/app/slice/SliceItem;-><init>(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
@@ -9542,7 +8945,6 @@
 Landroid/app/slice/SliceProvider;->onBindSliceStrict(Landroid/net/Uri;Ljava/util/List;)Landroid/app/slice/Slice;
 Landroid/app/slice/SliceProvider;->SLICE_BIND_ANR:J
 Landroid/app/slice/SliceProvider;->TAG:Ljava/lang/String;
-Landroid/app/slice/SliceQuery;
 Landroid/app/slice/SliceQuery;-><init>()V
 Landroid/app/slice/SliceQuery;->compareTypes(Landroid/app/slice/SliceItem;Ljava/lang/String;)Z
 Landroid/app/slice/SliceQuery;->contains(Landroid/app/slice/SliceItem;Landroid/app/slice/SliceItem;)Z
@@ -9562,16 +8964,12 @@
 Landroid/app/slice/SliceSpec;-><init>(Landroid/os/Parcel;)V
 Landroid/app/slice/SliceSpec;->mRevision:I
 Landroid/app/slice/SliceSpec;->mType:Ljava/lang/String;
-Landroid/app/StatsManager$StatsdDeathRecipient;
-Landroid/app/StatsManager$StatsdDeathRecipient;-><init>()V
 Landroid/app/StatsManager;-><init>(Landroid/content/Context;)V
 Landroid/app/StatsManager;->DEBUG:Z
 Landroid/app/StatsManager;->getIStatsManagerLocked()Landroid/os/IStatsManager;
 Landroid/app/StatsManager;->mContext:Landroid/content/Context;
 Landroid/app/StatsManager;->mService:Landroid/os/IStatsManager;
 Landroid/app/StatsManager;->TAG:Ljava/lang/String;
-Landroid/app/StatusBarManager$Disable2Flags;
-Landroid/app/StatusBarManager;
 Landroid/app/StatusBarManager;->CAMERA_LAUNCH_SOURCE_LIFT_TRIGGER:I
 Landroid/app/StatusBarManager;->CAMERA_LAUNCH_SOURCE_POWER_DOUBLE_TAP:I
 Landroid/app/StatusBarManager;->CAMERA_LAUNCH_SOURCE_WIGGLE:I
@@ -9602,7 +9000,6 @@
 Landroid/app/StatusBarManager;->WINDOW_STATE_HIDING:I
 Landroid/app/StatusBarManager;->WINDOW_STATE_SHOWING:I
 Landroid/app/StatusBarManager;->WINDOW_STATUS_BAR:I
-Landroid/app/StatusBarManagerProto;
 Landroid/app/StatusBarManagerProto;-><init>()V
 Landroid/app/StatusBarManagerProto;->TRANSIENT_BAR_HIDING:I
 Landroid/app/StatusBarManagerProto;->TRANSIENT_BAR_NONE:I
@@ -9611,7 +9008,6 @@
 Landroid/app/StatusBarManagerProto;->WINDOW_STATE_HIDDEN:I
 Landroid/app/StatusBarManagerProto;->WINDOW_STATE_HIDING:I
 Landroid/app/StatusBarManagerProto;->WINDOW_STATE_SHOWING:I
-Landroid/app/SynchronousUserSwitchObserver;
 Landroid/app/SynchronousUserSwitchObserver;-><init>()V
 Landroid/app/SynchronousUserSwitchObserver;->onUserSwitching(I)V
 Landroid/app/SynchronousUserSwitchObserver;->onUserSwitching(ILandroid/os/IRemoteCallback;)V
@@ -9625,7 +9021,6 @@
 Landroid/app/TaskStackBuilder;->mSourceContext:Landroid/content/Context;
 Landroid/app/TaskStackBuilder;->startActivities(Landroid/os/Bundle;Landroid/os/UserHandle;)I
 Landroid/app/TaskStackBuilder;->TAG:Ljava/lang/String;
-Landroid/app/TaskStackListener;
 Landroid/app/TaskStackListener;->onTaskCreated(ILandroid/content/ComponentName;)V
 Landroid/app/TaskStackListener;->onTaskDescriptionChanged(ILandroid/app/ActivityManager$TaskDescription;)V
 Landroid/app/TaskStackListener;->onTaskRemovalStarted(I)V
@@ -9637,37 +9032,30 @@
 Landroid/app/TimePickerDialog;->mIs24HourView:Z
 Landroid/app/TimePickerDialog;->mTimeSetListener:Landroid/app/TimePickerDialog$OnTimeSetListener;
 Landroid/app/TimePickerDialog;->resolveDialogTheme(Landroid/content/Context;I)I
-Landroid/app/trust/IStrongAuthTracker$Stub$Proxy;
 Landroid/app/trust/IStrongAuthTracker$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/trust/IStrongAuthTracker$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/trust/IStrongAuthTracker$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/app/trust/IStrongAuthTracker$Stub$Proxy;->onStrongAuthRequiredChanged(II)V
-Landroid/app/trust/IStrongAuthTracker$Stub;
 Landroid/app/trust/IStrongAuthTracker$Stub;-><init>()V
 Landroid/app/trust/IStrongAuthTracker$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/trust/IStrongAuthTracker;
 Landroid/app/trust/IStrongAuthTracker$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/trust/IStrongAuthTracker$Stub;->TRANSACTION_onStrongAuthRequiredChanged:I
-Landroid/app/trust/IStrongAuthTracker;
 Landroid/app/trust/IStrongAuthTracker;->onStrongAuthRequiredChanged(II)V
-Landroid/app/trust/ITrustListener$Stub$Proxy;
 Landroid/app/trust/ITrustListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/trust/ITrustListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/trust/ITrustListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/app/trust/ITrustListener$Stub$Proxy;->onTrustChanged(ZII)V
 Landroid/app/trust/ITrustListener$Stub$Proxy;->onTrustError(Ljava/lang/CharSequence;)V
 Landroid/app/trust/ITrustListener$Stub$Proxy;->onTrustManagedChanged(ZI)V
-Landroid/app/trust/ITrustListener$Stub;
 Landroid/app/trust/ITrustListener$Stub;-><init>()V
 Landroid/app/trust/ITrustListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/trust/ITrustListener;
 Landroid/app/trust/ITrustListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/trust/ITrustListener$Stub;->TRANSACTION_onTrustChanged:I
 Landroid/app/trust/ITrustListener$Stub;->TRANSACTION_onTrustError:I
 Landroid/app/trust/ITrustListener$Stub;->TRANSACTION_onTrustManagedChanged:I
-Landroid/app/trust/ITrustListener;
 Landroid/app/trust/ITrustListener;->onTrustChanged(ZII)V
 Landroid/app/trust/ITrustListener;->onTrustError(Ljava/lang/CharSequence;)V
 Landroid/app/trust/ITrustListener;->onTrustManagedChanged(ZI)V
-Landroid/app/trust/ITrustManager$Stub$Proxy;
 Landroid/app/trust/ITrustManager$Stub$Proxy;->clearAllFingerprints()V
 Landroid/app/trust/ITrustManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/trust/ITrustManager$Stub$Proxy;->isDeviceLocked(I)Z
@@ -9682,7 +9070,6 @@
 Landroid/app/trust/ITrustManager$Stub$Proxy;->setDeviceLockedForUser(IZ)V
 Landroid/app/trust/ITrustManager$Stub$Proxy;->unlockedByFingerprintForUser(I)V
 Landroid/app/trust/ITrustManager$Stub$Proxy;->unregisterTrustListener(Landroid/app/trust/ITrustListener;)V
-Landroid/app/trust/ITrustManager$Stub;
 Landroid/app/trust/ITrustManager$Stub;-><init>()V
 Landroid/app/trust/ITrustManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/trust/ITrustManager;
 Landroid/app/trust/ITrustManager$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -9698,7 +9085,6 @@
 Landroid/app/trust/ITrustManager$Stub;->TRANSACTION_setDeviceLockedForUser:I
 Landroid/app/trust/ITrustManager$Stub;->TRANSACTION_unlockedByFingerprintForUser:I
 Landroid/app/trust/ITrustManager$Stub;->TRANSACTION_unregisterTrustListener:I
-Landroid/app/trust/ITrustManager;
 Landroid/app/trust/ITrustManager;->clearAllFingerprints()V
 Landroid/app/trust/ITrustManager;->isDeviceLocked(I)Z
 Landroid/app/trust/ITrustManager;->isDeviceSecure(I)Z
@@ -9711,11 +9097,9 @@
 Landroid/app/trust/ITrustManager;->setDeviceLockedForUser(IZ)V
 Landroid/app/trust/ITrustManager;->unlockedByFingerprintForUser(I)V
 Landroid/app/trust/ITrustManager;->unregisterTrustListener(Landroid/app/trust/ITrustListener;)V
-Landroid/app/trust/TrustManager$TrustListener;
 Landroid/app/trust/TrustManager$TrustListener;->onTrustChanged(ZII)V
 Landroid/app/trust/TrustManager$TrustListener;->onTrustError(Ljava/lang/CharSequence;)V
 Landroid/app/trust/TrustManager$TrustListener;->onTrustManagedChanged(ZI)V
-Landroid/app/trust/TrustManager;
 Landroid/app/trust/TrustManager;-><init>(Landroid/os/IBinder;)V
 Landroid/app/trust/TrustManager;->clearAllFingerprints()V
 Landroid/app/trust/TrustManager;->DATA_FLAGS:Ljava/lang/String;
@@ -9735,8 +9119,6 @@
 Landroid/app/trust/TrustManager;->TAG:Ljava/lang/String;
 Landroid/app/trust/TrustManager;->unlockedByFingerprintForUser(I)V
 Landroid/app/trust/TrustManager;->unregisterTrustListener(Landroid/app/trust/TrustManager$TrustListener;)V
-Landroid/app/UiAutomation$IAccessibilityServiceClientImpl;
-Landroid/app/UiAutomation$IAccessibilityServiceClientImpl;-><init>(Landroid/os/Looper;)V
 Landroid/app/UiAutomation;->connect(I)V
 Landroid/app/UiAutomation;->CONNECTION_ID_UNDEFINED:I
 Landroid/app/UiAutomation;->CONNECT_TIMEOUT_MILLIS:J
@@ -9763,11 +9145,8 @@
 Landroid/app/UiAutomation;->throwIfConnectedLocked()V
 Landroid/app/UiAutomation;->throwIfNotConnectedLocked()V
 Landroid/app/UiAutomation;->warnIfBetterCommand(Ljava/lang/String;)V
-Landroid/app/UiAutomationConnection$Repeater;
-Landroid/app/UiAutomationConnection$Repeater;-><init>(Ljava/io/InputStream;Ljava/io/OutputStream;)V
 Landroid/app/UiAutomationConnection$Repeater;->readFrom:Ljava/io/InputStream;
 Landroid/app/UiAutomationConnection$Repeater;->writeTo:Ljava/io/OutputStream;
-Landroid/app/UiAutomationConnection;
 Landroid/app/UiAutomationConnection;->clearWindowAnimationFrameStats()V
 Landroid/app/UiAutomationConnection;->clearWindowContentFrameStats(I)Z
 Landroid/app/UiAutomationConnection;->connect(Landroid/accessibilityservice/IAccessibilityServiceClient;I)V
@@ -9800,10 +9179,8 @@
 Landroid/app/UiAutomationConnection;->throwIfNotConnectedLocked()V
 Landroid/app/UiAutomationConnection;->throwIfShutdownLocked()V
 Landroid/app/UiAutomationConnection;->unregisterUiTestAutomationServiceLocked()V
-Landroid/app/UiModeManager$NightMode;
 Landroid/app/UiModeManager;->mService:Landroid/app/IUiModeManager;
 Landroid/app/UiModeManager;->TAG:Ljava/lang/String;
-Landroid/app/usage/AppStandbyInfo;
 Landroid/app/usage/AppStandbyInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/app/usage/AppStandbyInfo;-><init>(Ljava/lang/String;I)V
 Landroid/app/usage/AppStandbyInfo;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -9817,18 +9194,13 @@
 Landroid/app/usage/CacheQuotaHint;->mUid:I
 Landroid/app/usage/CacheQuotaHint;->mUsageStats:Landroid/app/usage/UsageStats;
 Landroid/app/usage/CacheQuotaHint;->mUuid:Ljava/lang/String;
-Landroid/app/usage/CacheQuotaService$CacheQuotaServiceWrapper;
-Landroid/app/usage/CacheQuotaService$CacheQuotaServiceWrapper;-><init>()V
 Landroid/app/usage/CacheQuotaService$CacheQuotaServiceWrapper;->computeCacheQuotaHints(Landroid/os/RemoteCallback;Ljava/util/List;)V
-Landroid/app/usage/CacheQuotaService$ServiceHandler;
-Landroid/app/usage/CacheQuotaService$ServiceHandler;-><init>(Landroid/os/Looper;)V
 Landroid/app/usage/CacheQuotaService$ServiceHandler;->MSG_SEND_LIST:I
 Landroid/app/usage/CacheQuotaService;->mHandler:Landroid/os/Handler;
 Landroid/app/usage/CacheQuotaService;->mWrapper:Landroid/app/usage/CacheQuotaService$CacheQuotaServiceWrapper;
 Landroid/app/usage/CacheQuotaService;->REQUEST_LIST_KEY:Ljava/lang/String;
 Landroid/app/usage/CacheQuotaService;->TAG:Ljava/lang/String;
 Landroid/app/usage/ConfigurationStats;-><init>()V
-Landroid/app/usage/EventList;
 Landroid/app/usage/EventList;-><init>()V
 Landroid/app/usage/EventList;->clear()V
 Landroid/app/usage/EventList;->firstIndexOnOrAfter(J)I
@@ -9852,19 +9224,15 @@
 Landroid/app/usage/ExternalStorageStats;->obbBytes:J
 Landroid/app/usage/ExternalStorageStats;->totalBytes:J
 Landroid/app/usage/ExternalStorageStats;->videoBytes:J
-Landroid/app/usage/ICacheQuotaService$Stub$Proxy;
 Landroid/app/usage/ICacheQuotaService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/usage/ICacheQuotaService$Stub$Proxy;->computeCacheQuotaHints(Landroid/os/RemoteCallback;Ljava/util/List;)V
 Landroid/app/usage/ICacheQuotaService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/app/usage/ICacheQuotaService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/app/usage/ICacheQuotaService$Stub;
 Landroid/app/usage/ICacheQuotaService$Stub;-><init>()V
 Landroid/app/usage/ICacheQuotaService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/usage/ICacheQuotaService;
 Landroid/app/usage/ICacheQuotaService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/usage/ICacheQuotaService$Stub;->TRANSACTION_computeCacheQuotaHints:I
-Landroid/app/usage/ICacheQuotaService;
 Landroid/app/usage/ICacheQuotaService;->computeCacheQuotaHints(Landroid/os/RemoteCallback;Ljava/util/List;)V
-Landroid/app/usage/IStorageStatsManager$Stub$Proxy;
 Landroid/app/usage/IStorageStatsManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/usage/IStorageStatsManager$Stub$Proxy;->getCacheBytes(Ljava/lang/String;Ljava/lang/String;)J
 Landroid/app/usage/IStorageStatsManager$Stub$Proxy;->getCacheQuotaBytes(Ljava/lang/String;ILjava/lang/String;)J
@@ -9878,7 +9246,6 @@
 Landroid/app/usage/IStorageStatsManager$Stub$Proxy;->queryStatsForPackage(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats;
 Landroid/app/usage/IStorageStatsManager$Stub$Proxy;->queryStatsForUid(Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats;
 Landroid/app/usage/IStorageStatsManager$Stub$Proxy;->queryStatsForUser(Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats;
-Landroid/app/usage/IStorageStatsManager$Stub;
 Landroid/app/usage/IStorageStatsManager$Stub;-><init>()V
 Landroid/app/usage/IStorageStatsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/usage/IStorageStatsManager;
 Landroid/app/usage/IStorageStatsManager$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -9892,7 +9259,6 @@
 Landroid/app/usage/IStorageStatsManager$Stub;->TRANSACTION_queryStatsForPackage:I
 Landroid/app/usage/IStorageStatsManager$Stub;->TRANSACTION_queryStatsForUid:I
 Landroid/app/usage/IStorageStatsManager$Stub;->TRANSACTION_queryStatsForUser:I
-Landroid/app/usage/IStorageStatsManager;
 Landroid/app/usage/IStorageStatsManager;->getCacheBytes(Ljava/lang/String;Ljava/lang/String;)J
 Landroid/app/usage/IStorageStatsManager;->getCacheQuotaBytes(Ljava/lang/String;ILjava/lang/String;)J
 Landroid/app/usage/IStorageStatsManager;->getFreeBytes(Ljava/lang/String;Ljava/lang/String;)J
@@ -9903,7 +9269,6 @@
 Landroid/app/usage/IStorageStatsManager;->queryStatsForPackage(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats;
 Landroid/app/usage/IStorageStatsManager;->queryStatsForUid(Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats;
 Landroid/app/usage/IStorageStatsManager;->queryStatsForUser(Ljava/lang/String;ILjava/lang/String;)Landroid/app/usage/StorageStats;
-Landroid/app/usage/IUsageStatsManager$Stub$Proxy;
 Landroid/app/usage/IUsageStatsManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/usage/IUsageStatsManager$Stub$Proxy;->getAppStandbyBucket(Ljava/lang/String;Ljava/lang/String;I)I
 Landroid/app/usage/IUsageStatsManager$Stub$Proxy;->getAppStandbyBuckets(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
@@ -9925,7 +9290,6 @@
 Landroid/app/usage/IUsageStatsManager$Stub$Proxy;->setAppStandbyBuckets(Landroid/content/pm/ParceledListSlice;I)V
 Landroid/app/usage/IUsageStatsManager$Stub$Proxy;->unregisterAppUsageObserver(ILjava/lang/String;)V
 Landroid/app/usage/IUsageStatsManager$Stub$Proxy;->whitelistAppTemporarily(Ljava/lang/String;JI)V
-Landroid/app/usage/IUsageStatsManager$Stub;
 Landroid/app/usage/IUsageStatsManager$Stub;-><init>()V
 Landroid/app/usage/IUsageStatsManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/app/usage/IUsageStatsManager$Stub;->TRANSACTION_getAppStandbyBucket:I
@@ -9946,7 +9310,6 @@
 Landroid/app/usage/IUsageStatsManager$Stub;->TRANSACTION_setAppStandbyBuckets:I
 Landroid/app/usage/IUsageStatsManager$Stub;->TRANSACTION_unregisterAppUsageObserver:I
 Landroid/app/usage/IUsageStatsManager$Stub;->TRANSACTION_whitelistAppTemporarily:I
-Landroid/app/usage/IUsageStatsManager;
 Landroid/app/usage/IUsageStatsManager;->getAppStandbyBucket(Ljava/lang/String;Ljava/lang/String;I)I
 Landroid/app/usage/IUsageStatsManager;->getAppStandbyBuckets(Ljava/lang/String;I)Landroid/content/pm/ParceledListSlice;
 Landroid/app/usage/IUsageStatsManager;->onCarrierPrivilegedAppsChanged()V
@@ -9961,10 +9324,6 @@
 Landroid/app/usage/IUsageStatsManager;->setAppStandbyBuckets(Landroid/content/pm/ParceledListSlice;I)V
 Landroid/app/usage/IUsageStatsManager;->unregisterAppUsageObserver(ILjava/lang/String;)V
 Landroid/app/usage/IUsageStatsManager;->whitelistAppTemporarily(Ljava/lang/String;JI)V
-Landroid/app/usage/NetworkStats$Bucket$DefaultNetworkStatus;
-Landroid/app/usage/NetworkStats$Bucket$Metered;
-Landroid/app/usage/NetworkStats$Bucket$Roaming;
-Landroid/app/usage/NetworkStats$Bucket$State;
 Landroid/app/usage/NetworkStats$Bucket;->convertDefaultNetworkStatus(I)I
 Landroid/app/usage/NetworkStats$Bucket;->convertMetered(I)I
 Landroid/app/usage/NetworkStats$Bucket;->convertRoaming(I)I
@@ -10014,7 +9373,6 @@
 Landroid/app/usage/NetworkStats;->stepHistory()V
 Landroid/app/usage/NetworkStats;->stepUid()V
 Landroid/app/usage/NetworkStats;->TAG:Ljava/lang/String;
-Landroid/app/usage/NetworkStatsManager$CallbackHandler;
 Landroid/app/usage/NetworkStatsManager$CallbackHandler;-><init>(Landroid/os/Looper;ILjava/lang/String;Landroid/app/usage/NetworkStatsManager$UsageCallback;)V
 Landroid/app/usage/NetworkStatsManager$CallbackHandler;->getObject(Landroid/os/Message;Ljava/lang/String;)Ljava/lang/Object;
 Landroid/app/usage/NetworkStatsManager$CallbackHandler;->mCallback:Landroid/app/usage/NetworkStatsManager$UsageCallback;
@@ -10049,13 +9407,11 @@
 Landroid/app/usage/StorageStatsManager;->getCacheQuotaBytes(Ljava/lang/String;I)J
 Landroid/app/usage/StorageStatsManager;->mContext:Landroid/content/Context;
 Landroid/app/usage/StorageStatsManager;->mService:Landroid/app/usage/IStorageStatsManager;
-Landroid/app/usage/TimeSparseArray;
 Landroid/app/usage/TimeSparseArray;-><init>()V
 Landroid/app/usage/TimeSparseArray;->closestIndexOnOrAfter(J)I
 Landroid/app/usage/TimeSparseArray;->closestIndexOnOrBefore(J)I
 Landroid/app/usage/TimeSparseArray;->mWtfReported:Z
 Landroid/app/usage/TimeSparseArray;->TAG:Ljava/lang/String;
-Landroid/app/usage/UsageEvents$Event$EventFlags;
 Landroid/app/usage/UsageEvents$Event;-><init>(Landroid/app/usage/UsageEvents$Event;)V
 Landroid/app/usage/UsageEvents$Event;->CHOOSER_ACTION:I
 Landroid/app/usage/UsageEvents$Event;->CONTINUE_PREVIOUS_DAY:I
@@ -10080,7 +9436,6 @@
 Landroid/app/usage/UsageStats;->getObfuscatedForInstantApp()Landroid/app/usage/UsageStats;
 Landroid/app/usage/UsageStats;->mAppLaunchCount:I
 Landroid/app/usage/UsageStats;->mChooserCounts:Landroid/util/ArrayMap;
-Landroid/app/usage/UsageStatsManager$StandbyBuckets;
 Landroid/app/usage/UsageStatsManager;-><init>(Landroid/content/Context;Landroid/app/usage/IUsageStatsManager;)V
 Landroid/app/usage/UsageStatsManager;->INTERVAL_COUNT:I
 Landroid/app/usage/UsageStatsManager;->onCarrierPrivilegedAppsChanged()V
@@ -10108,12 +9463,10 @@
 Landroid/app/usage/UsageStatsManager;->REASON_SUB_USAGE_USER_INTERACTION:I
 Landroid/app/usage/UsageStatsManager;->reportChooserSelection(Ljava/lang/String;ILjava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
 Landroid/app/usage/UsageStatsManager;->setAppInactive(Ljava/lang/String;Z)V
-Landroid/app/usage/UsageStatsManagerInternal$AppIdleStateChangeListener;
 Landroid/app/usage/UsageStatsManagerInternal$AppIdleStateChangeListener;-><init>()V
 Landroid/app/usage/UsageStatsManagerInternal$AppIdleStateChangeListener;->onAppIdleStateChanged(Ljava/lang/String;IZII)V
 Landroid/app/usage/UsageStatsManagerInternal$AppIdleStateChangeListener;->onParoleStateChanged(Z)V
 Landroid/app/usage/UsageStatsManagerInternal$AppIdleStateChangeListener;->onUserInteractionStarted(Ljava/lang/String;I)V
-Landroid/app/usage/UsageStatsManagerInternal;
 Landroid/app/usage/UsageStatsManagerInternal;-><init>()V
 Landroid/app/usage/UsageStatsManagerInternal;->addAppIdleStateChangeListener(Landroid/app/usage/UsageStatsManagerInternal$AppIdleStateChangeListener;)V
 Landroid/app/usage/UsageStatsManagerInternal;->applyRestoredPayload(ILjava/lang/String;[B)V
@@ -10139,7 +9492,6 @@
 Landroid/app/usage/UsageStatsManagerInternal;->reportShortcutUsage(Ljava/lang/String;Ljava/lang/String;I)V
 Landroid/app/usage/UsageStatsManagerInternal;->setActiveAdminApps(Ljava/util/Set;I)V
 Landroid/app/usage/UsageStatsManagerInternal;->setLastJobRunTime(Ljava/lang/String;IJ)V
-Landroid/app/UserSwitchObserver;
 Landroid/app/UserSwitchObserver;->onForegroundProfileSwitch(I)V
 Landroid/app/UserSwitchObserver;->onLockedBootComplete(I)V
 Landroid/app/UserSwitchObserver;->onUserSwitchComplete(I)V
@@ -10216,7 +9568,6 @@
 Landroid/app/VoiceInteractor;->pullRequest(Lcom/android/internal/app/IVoiceInteractorRequest;Z)Landroid/app/VoiceInteractor$Request;
 Landroid/app/VoiceInteractor;->retainInstance()V
 Landroid/app/VoiceInteractor;->TAG:Ljava/lang/String;
-Landroid/app/Vr2dDisplayProperties$Builder;
 Landroid/app/Vr2dDisplayProperties$Builder;->addFlags(I)Landroid/app/Vr2dDisplayProperties$Builder;
 Landroid/app/Vr2dDisplayProperties$Builder;->mAddedFlags:I
 Landroid/app/Vr2dDisplayProperties$Builder;->mDpi:I
@@ -10225,7 +9576,6 @@
 Landroid/app/Vr2dDisplayProperties$Builder;->mWidth:I
 Landroid/app/Vr2dDisplayProperties$Builder;->removeFlags(I)Landroid/app/Vr2dDisplayProperties$Builder;
 Landroid/app/Vr2dDisplayProperties$Builder;->setDimensions(III)Landroid/app/Vr2dDisplayProperties$Builder;
-Landroid/app/Vr2dDisplayProperties;
 Landroid/app/Vr2dDisplayProperties;-><init>(IIIII)V
 Landroid/app/Vr2dDisplayProperties;-><init>(Landroid/os/Parcel;)V
 Landroid/app/Vr2dDisplayProperties;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -10242,7 +9592,6 @@
 Landroid/app/Vr2dDisplayProperties;->mRemovedFlags:I
 Landroid/app/Vr2dDisplayProperties;->mWidth:I
 Landroid/app/Vr2dDisplayProperties;->toReadableFlags(I)Ljava/lang/String;
-Landroid/app/VrManager$CallbackEntry;
 Landroid/app/VrManager$CallbackEntry;-><init>(Landroid/app/VrStateCallback;Landroid/os/Handler;)V
 Landroid/app/VrManager$CallbackEntry;->mCallback:Landroid/app/VrStateCallback;
 Landroid/app/VrManager$CallbackEntry;->mHandler:Landroid/os/Handler;
@@ -10252,9 +9601,7 @@
 Landroid/app/VrManager;->getVrModeEnabled()Z
 Landroid/app/VrManager;->mCallbackMap:Ljava/util/Map;
 Landroid/app/VrManager;->setStandbyEnabled(Z)V
-Landroid/app/VrStateCallback;
 Landroid/app/VrStateCallback;->onVrStateChanged(Z)V
-Landroid/app/WaitResult;
 Landroid/app/WaitResult;-><init>()V
 Landroid/app/WaitResult;-><init>(Landroid/os/Parcel;)V
 Landroid/app/WaitResult;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -10292,7 +9639,6 @@
 Landroid/app/WallpaperInfo;->mSupportsAmbientMode:Z
 Landroid/app/WallpaperInfo;->mThumbnailResource:I
 Landroid/app/WallpaperInfo;->TAG:Ljava/lang/String;
-Landroid/app/WallpaperManager$FastBitmapDrawable;
 Landroid/app/WallpaperManager$FastBitmapDrawable;-><init>(Landroid/graphics/Bitmap;)V
 Landroid/app/WallpaperManager$FastBitmapDrawable;->mBitmap:Landroid/graphics/Bitmap;
 Landroid/app/WallpaperManager$FastBitmapDrawable;->mDrawLeft:I
@@ -10300,7 +9646,6 @@
 Landroid/app/WallpaperManager$FastBitmapDrawable;->mHeight:I
 Landroid/app/WallpaperManager$FastBitmapDrawable;->mPaint:Landroid/graphics/Paint;
 Landroid/app/WallpaperManager$FastBitmapDrawable;->mWidth:I
-Landroid/app/WallpaperManager$Globals;
 Landroid/app/WallpaperManager$Globals;-><init>(Landroid/app/IWallpaperManager;Landroid/os/Looper;)V
 Landroid/app/WallpaperManager$Globals;->addOnColorsChangedListener(Landroid/app/WallpaperManager$OnColorsChangedListener;Landroid/os/Handler;I)V
 Landroid/app/WallpaperManager$Globals;->forgetLoadedWallpaper()V
@@ -10320,9 +9665,6 @@
 Landroid/app/WallpaperManager$Globals;->peekWallpaperBitmap(Landroid/content/Context;ZIIZ)Landroid/graphics/Bitmap;
 Landroid/app/WallpaperManager$Globals;->removeOnColorsChangedListener(Landroid/app/WallpaperManager$OnColorsChangedListener;I)V
 Landroid/app/WallpaperManager$OnColorsChangedListener;->onColorsChanged(Landroid/app/WallpaperColors;II)V
-Landroid/app/WallpaperManager$SetWallpaperFlags;
-Landroid/app/WallpaperManager$WallpaperSetCompletion;
-Landroid/app/WallpaperManager$WallpaperSetCompletion;-><init>()V
 Landroid/app/WallpaperManager$WallpaperSetCompletion;->mLatch:Ljava/util/concurrent/CountDownLatch;
 Landroid/app/WallpaperManager$WallpaperSetCompletion;->onWallpaperChanged()V
 Landroid/app/WallpaperManager$WallpaperSetCompletion;->onWallpaperColorsChanged(Landroid/app/WallpaperColors;II)V
@@ -10348,9 +9690,6 @@
 Landroid/app/WallpaperManager;->sSync:Ljava/lang/Object;
 Landroid/app/WallpaperManager;->TAG:Ljava/lang/String;
 Landroid/app/WallpaperManager;->validateRect(Landroid/graphics/Rect;)V
-Landroid/app/WindowConfiguration$ActivityType;
-Landroid/app/WindowConfiguration$WindowConfig;
-Landroid/app/WindowConfiguration$WindowingMode;
 Landroid/app/WindowConfiguration;-><init>(Landroid/app/WindowConfiguration;)V
 Landroid/app/WindowConfiguration;-><init>(Landroid/os/Parcel;)V
 Landroid/app/WindowConfiguration;->activityTypeToString(I)Ljava/lang/String;
@@ -10386,12 +9725,10 @@
 Landroid/app/WindowConfiguration;->WINDOW_CONFIG_BOUNDS:I
 Landroid/app/WindowConfiguration;->WINDOW_CONFIG_WINDOWING_MODE:I
 Landroid/app/WindowConfiguration;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/app/WindowConfigurationProto;
 Landroid/app/WindowConfigurationProto;-><init>()V
 Landroid/app/WindowConfigurationProto;->ACTIVITY_TYPE:J
 Landroid/app/WindowConfigurationProto;->APP_BOUNDS:J
 Landroid/app/WindowConfigurationProto;->WINDOWING_MODE:J
-Landroid/appwidget/AppWidgetHost$Callbacks;
 Landroid/appwidget/AppWidgetHost$Callbacks;-><init>(Landroid/os/Handler;)V
 Landroid/appwidget/AppWidgetHost$Callbacks;->isLocalBinder()Z
 Landroid/appwidget/AppWidgetHost$Callbacks;->mWeakHandler:Ljava/lang/ref/WeakReference;
@@ -10399,8 +9736,6 @@
 Landroid/appwidget/AppWidgetHost$Callbacks;->providersChanged()V
 Landroid/appwidget/AppWidgetHost$Callbacks;->updateAppWidget(ILandroid/widget/RemoteViews;)V
 Landroid/appwidget/AppWidgetHost$Callbacks;->viewDataChanged(II)V
-Landroid/appwidget/AppWidgetHost$UpdateHandler;
-Landroid/appwidget/AppWidgetHost$UpdateHandler;-><init>(Landroid/os/Looper;)V
 Landroid/appwidget/AppWidgetHost;->bindService(Landroid/content/Context;)V
 Landroid/appwidget/AppWidgetHost;->HANDLE_PROVIDERS_CHANGED:I
 Landroid/appwidget/AppWidgetHost;->HANDLE_PROVIDER_CHANGED:I
@@ -10415,8 +9750,6 @@
 Landroid/appwidget/AppWidgetHost;->sServiceLock:Ljava/lang/Object;
 Landroid/appwidget/AppWidgetHost;->updateAppWidgetView(ILandroid/widget/RemoteViews;)V
 Landroid/appwidget/AppWidgetHost;->viewDataChanged(II)V
-Landroid/appwidget/AppWidgetHostView$ViewApplyListener;
-Landroid/appwidget/AppWidgetHostView$ViewApplyListener;-><init>(Landroid/widget/RemoteViews;IZ)V
 Landroid/appwidget/AppWidgetHostView$ViewApplyListener;->mIsReapply:Z
 Landroid/appwidget/AppWidgetHostView$ViewApplyListener;->mLayoutId:I
 Landroid/appwidget/AppWidgetHostView$ViewApplyListener;->mViews:Landroid/widget/RemoteViews;
@@ -10462,15 +9795,10 @@
 Landroid/appwidget/AppWidgetManager;->requestPinAppWidget(Landroid/content/ComponentName;Landroid/app/PendingIntent;)Z
 Landroid/appwidget/AppWidgetManager;->setBindAppWidgetPermission(Ljava/lang/String;IZ)V
 Landroid/appwidget/AppWidgetManager;->setBindAppWidgetPermission(Ljava/lang/String;Z)V
-Landroid/appwidget/AppWidgetManagerInternal;
 Landroid/appwidget/AppWidgetManagerInternal;-><init>()V
 Landroid/appwidget/AppWidgetManagerInternal;->getHostedWidgetPackages(I)Landroid/util/ArraySet;
-Landroid/appwidget/AppWidgetProviderInfo$CategoryFlags;
-Landroid/appwidget/AppWidgetProviderInfo$FeatureFlags;
-Landroid/appwidget/AppWidgetProviderInfo$ResizeModeFlags;
 Landroid/appwidget/AppWidgetProviderInfo;->loadDrawable(Landroid/content/Context;IIZ)Landroid/graphics/drawable/Drawable;
 Landroid/appwidget/AppWidgetProviderInfo;->updateDimensions(Landroid/util/DisplayMetrics;)V
-Landroid/appwidget/PendingHostUpdate;
 Landroid/appwidget/PendingHostUpdate;-><init>(II)V
 Landroid/appwidget/PendingHostUpdate;-><init>(Landroid/os/Parcel;)V
 Landroid/appwidget/PendingHostUpdate;->appWidgetId:I
@@ -10507,7 +9835,6 @@
 Landroid/bluetooth/BluetoothA2dp;->shouldSendVolumeKeys(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/BluetoothA2dp;->TAG:Ljava/lang/String;
 Landroid/bluetooth/BluetoothA2dp;->VDBG:Z
-Landroid/bluetooth/BluetoothA2dpSink;
 Landroid/bluetooth/BluetoothA2dpSink;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
 Landroid/bluetooth/BluetoothA2dpSink;->ACTION_AUDIO_CONFIG_CHANGED:Ljava/lang/String;
 Landroid/bluetooth/BluetoothA2dpSink;->ACTION_CONNECTION_STATE_CHANGED:Ljava/lang/String;
@@ -10535,7 +9862,6 @@
 Landroid/bluetooth/BluetoothA2dpSink;->STATE_PLAYING:I
 Landroid/bluetooth/BluetoothA2dpSink;->TAG:Ljava/lang/String;
 Landroid/bluetooth/BluetoothA2dpSink;->VDBG:Z
-Landroid/bluetooth/BluetoothActivityEnergyInfo;
 Landroid/bluetooth/BluetoothActivityEnergyInfo;-><init>(JIJJJJ)V
 Landroid/bluetooth/BluetoothActivityEnergyInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/bluetooth/BluetoothActivityEnergyInfo;->BT_STACK_STATE_INVALID:I
@@ -10559,12 +9885,7 @@
 Landroid/bluetooth/BluetoothActivityEnergyInfo;->mTimestamp:J
 Landroid/bluetooth/BluetoothActivityEnergyInfo;->mUidTraffic:[Landroid/bluetooth/UidTraffic;
 Landroid/bluetooth/BluetoothActivityEnergyInfo;->setUidTraffic([Landroid/bluetooth/UidTraffic;)V
-Landroid/bluetooth/BluetoothAdapter$AdapterState;
-Landroid/bluetooth/BluetoothAdapter$BluetoothStateChangeCallback;
 Landroid/bluetooth/BluetoothAdapter$BluetoothStateChangeCallback;->onBluetoothStateChange(Z)V
-Landroid/bluetooth/BluetoothAdapter$ScanMode;
-Landroid/bluetooth/BluetoothAdapter$StateChangeCallbackWrapper;
-Landroid/bluetooth/BluetoothAdapter$StateChangeCallbackWrapper;-><init>(Landroid/bluetooth/BluetoothAdapter$BluetoothStateChangeCallback;)V
 Landroid/bluetooth/BluetoothAdapter$StateChangeCallbackWrapper;->mCallback:Landroid/bluetooth/BluetoothAdapter$BluetoothStateChangeCallback;
 Landroid/bluetooth/BluetoothAdapter$StateChangeCallbackWrapper;->onBluetoothStateChange(Z)V
 Landroid/bluetooth/BluetoothAdapter;-><init>(Landroid/bluetooth/IBluetoothManager;)V
@@ -10621,7 +9942,6 @@
 Landroid/bluetooth/BluetoothAdapter;->toDeviceSet([Landroid/bluetooth/BluetoothDevice;)Ljava/util/Set;
 Landroid/bluetooth/BluetoothAdapter;->VDBG:Z
 Landroid/bluetooth/BluetoothAssignedNumbers;-><init>()V
-Landroid/bluetooth/BluetoothAudioConfig;
 Landroid/bluetooth/BluetoothAudioConfig;-><init>(III)V
 Landroid/bluetooth/BluetoothAudioConfig;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/bluetooth/BluetoothAudioConfig;->getAudioFormat()I
@@ -10630,7 +9950,6 @@
 Landroid/bluetooth/BluetoothAudioConfig;->mAudioFormat:I
 Landroid/bluetooth/BluetoothAudioConfig;->mChannelConfig:I
 Landroid/bluetooth/BluetoothAudioConfig;->mSampleRate:I
-Landroid/bluetooth/BluetoothAvrcp;
 Landroid/bluetooth/BluetoothAvrcp;-><init>()V
 Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_0:I
 Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_ID_1:I
@@ -10692,7 +10011,6 @@
 Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_KEYPRESSED_RELEASE:I
 Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_STATE_PRESS:I
 Landroid/bluetooth/BluetoothAvrcp;->PASSTHROUGH_STATE_RELEASE:I
-Landroid/bluetooth/BluetoothAvrcpController;
 Landroid/bluetooth/BluetoothAvrcpController;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
 Landroid/bluetooth/BluetoothAvrcpController;->ACTION_CONNECTION_STATE_CHANGED:Ljava/lang/String;
 Landroid/bluetooth/BluetoothAvrcpController;->ACTION_PLAYER_SETTING:Ljava/lang/String;
@@ -10714,7 +10032,6 @@
 Landroid/bluetooth/BluetoothAvrcpController;->setPlayerApplicationSetting(Landroid/bluetooth/BluetoothAvrcpPlayerSettings;)Z
 Landroid/bluetooth/BluetoothAvrcpController;->TAG:Ljava/lang/String;
 Landroid/bluetooth/BluetoothAvrcpController;->VDBG:Z
-Landroid/bluetooth/BluetoothAvrcpPlayerSettings;
 Landroid/bluetooth/BluetoothAvrcpPlayerSettings;-><init>(I)V
 Landroid/bluetooth/BluetoothAvrcpPlayerSettings;-><init>(Landroid/os/Parcel;)V
 Landroid/bluetooth/BluetoothAvrcpPlayerSettings;->addSettingValue(II)V
@@ -10820,7 +10137,6 @@
 Landroid/bluetooth/BluetoothDevice;->TAG:Ljava/lang/String;
 Landroid/bluetooth/BluetoothDevice;->UNBOND_REASON_AUTH_CANCELED:I
 Landroid/bluetooth/BluetoothDevice;->UNBOND_REASON_REMOVED:I
-Landroid/bluetooth/BluetoothDevicePicker;
 Landroid/bluetooth/BluetoothDevicePicker;->ACTION_DEVICE_SELECTED:Ljava/lang/String;
 Landroid/bluetooth/BluetoothDevicePicker;->ACTION_LAUNCH:Ljava/lang/String;
 Landroid/bluetooth/BluetoothDevicePicker;->EXTRA_FILTER_TYPE:Ljava/lang/String;
@@ -10894,7 +10210,6 @@
 Landroid/bluetooth/BluetoothGattDescriptor;->mUuid:Ljava/util/UUID;
 Landroid/bluetooth/BluetoothGattDescriptor;->mValue:[B
 Landroid/bluetooth/BluetoothGattDescriptor;->setInstanceId(I)V
-Landroid/bluetooth/BluetoothGattIncludedService;
 Landroid/bluetooth/BluetoothGattIncludedService;-><init>(Landroid/os/Parcel;)V
 Landroid/bluetooth/BluetoothGattIncludedService;-><init>(Ljava/util/UUID;II)V
 Landroid/bluetooth/BluetoothGattIncludedService;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -10973,7 +10288,6 @@
 Landroid/bluetooth/BluetoothHeadset;->VENDOR_SPECIFIC_HEADSET_EVENT_XAPL:Ljava/lang/String;
 Landroid/bluetooth/BluetoothHeadset;->VENDOR_SPECIFIC_HEADSET_EVENT_XEVENT:Ljava/lang/String;
 Landroid/bluetooth/BluetoothHeadset;->VENDOR_SPECIFIC_HEADSET_EVENT_XEVENT_BATTERY_LEVEL:Ljava/lang/String;
-Landroid/bluetooth/BluetoothHeadsetClient;
 Landroid/bluetooth/BluetoothHeadsetClient;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
 Landroid/bluetooth/BluetoothHeadsetClient;->ACTION_AG_EVENT:Ljava/lang/String;
 Landroid/bluetooth/BluetoothHeadsetClient;->ACTION_AUDIO_STATE_CHANGED:Ljava/lang/String;
@@ -11092,7 +10406,6 @@
 Landroid/bluetooth/BluetoothHeadsetClient;->TAG:Ljava/lang/String;
 Landroid/bluetooth/BluetoothHeadsetClient;->terminateCall(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHeadsetClientCall;)Z
 Landroid/bluetooth/BluetoothHeadsetClient;->VDBG:Z
-Landroid/bluetooth/BluetoothHeadsetClientCall;
 Landroid/bluetooth/BluetoothHeadsetClientCall;-><init>(Landroid/bluetooth/BluetoothDevice;IILjava/lang/String;ZZZ)V
 Landroid/bluetooth/BluetoothHeadsetClientCall;-><init>(Landroid/bluetooth/BluetoothDevice;ILjava/util/UUID;ILjava/lang/String;ZZZ)V
 Landroid/bluetooth/BluetoothHeadsetClientCall;->CALL_STATE_ACTIVE:I
@@ -11121,7 +10434,6 @@
 Landroid/bluetooth/BluetoothHeadsetClientCall;->setNumber(Ljava/lang/String;)V
 Landroid/bluetooth/BluetoothHeadsetClientCall;->setState(I)V
 Landroid/bluetooth/BluetoothHeadsetClientCall;->toString(Z)Ljava/lang/String;
-Landroid/bluetooth/BluetoothHealth$BluetoothHealthCallbackWrapper;
 Landroid/bluetooth/BluetoothHealth$BluetoothHealthCallbackWrapper;-><init>(Landroid/bluetooth/BluetoothHealthCallback;)V
 Landroid/bluetooth/BluetoothHealth$BluetoothHealthCallbackWrapper;->mCallback:Landroid/bluetooth/BluetoothHealthCallback;
 Landroid/bluetooth/BluetoothHealth$BluetoothHealthCallbackWrapper;->onHealthAppConfigurationStatusChange(Landroid/bluetooth/BluetoothHealthAppConfiguration;I)V
@@ -11159,7 +10471,6 @@
 Landroid/bluetooth/BluetoothHealthAppConfiguration;->mName:Ljava/lang/String;
 Landroid/bluetooth/BluetoothHealthAppConfiguration;->mRole:I
 Landroid/bluetooth/BluetoothHealthCallback;->TAG:Ljava/lang/String;
-Landroid/bluetooth/BluetoothHearingAid;
 Landroid/bluetooth/BluetoothHearingAid;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
 Landroid/bluetooth/BluetoothHearingAid;->ACTION_CONNECTION_STATE_CHANGED:Ljava/lang/String;
 Landroid/bluetooth/BluetoothHearingAid;->ACTION_PLAYING_STATE_CHANGED:Ljava/lang/String;
@@ -11197,7 +10508,6 @@
 Landroid/bluetooth/BluetoothHearingAid;->TAG:Ljava/lang/String;
 Landroid/bluetooth/BluetoothHearingAid;->VDBG:Z
 Landroid/bluetooth/BluetoothHidDevice$Callback;->TAG:Ljava/lang/String;
-Landroid/bluetooth/BluetoothHidDevice$CallbackWrapper;
 Landroid/bluetooth/BluetoothHidDevice$CallbackWrapper;-><init>(Ljava/util/concurrent/Executor;Landroid/bluetooth/BluetoothHidDevice$Callback;)V
 Landroid/bluetooth/BluetoothHidDevice$CallbackWrapper;->mCallback:Landroid/bluetooth/BluetoothHidDevice$Callback;
 Landroid/bluetooth/BluetoothHidDevice$CallbackWrapper;->mExecutor:Ljava/util/concurrent/Executor;
@@ -11231,7 +10541,6 @@
 Landroid/bluetooth/BluetoothHidDeviceAppSdpSettings;->mName:Ljava/lang/String;
 Landroid/bluetooth/BluetoothHidDeviceAppSdpSettings;->mProvider:Ljava/lang/String;
 Landroid/bluetooth/BluetoothHidDeviceAppSdpSettings;->mSubclass:B
-Landroid/bluetooth/BluetoothHidHost;
 Landroid/bluetooth/BluetoothHidHost;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
 Landroid/bluetooth/BluetoothHidHost;->ACTION_CONNECTION_STATE_CHANGED:Ljava/lang/String;
 Landroid/bluetooth/BluetoothHidHost;->ACTION_HANDSHAKE:Ljava/lang/String;
@@ -11286,7 +10595,6 @@
 Landroid/bluetooth/BluetoothHidHost;->virtualUnplug(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/BluetoothHidHost;->VIRTUAL_UNPLUG_STATUS_FAIL:I
 Landroid/bluetooth/BluetoothHidHost;->VIRTUAL_UNPLUG_STATUS_SUCCESS:I
-Landroid/bluetooth/BluetoothInputStream;
 Landroid/bluetooth/BluetoothInputStream;-><init>(Landroid/bluetooth/BluetoothSocket;)V
 Landroid/bluetooth/BluetoothInputStream;->mSocket:Landroid/bluetooth/BluetoothSocket;
 Landroid/bluetooth/BluetoothManager;-><init>(Landroid/content/Context;)V
@@ -11295,7 +10603,6 @@
 Landroid/bluetooth/BluetoothManager;->openGattServer(Landroid/content/Context;Landroid/bluetooth/BluetoothGattServerCallback;I)Landroid/bluetooth/BluetoothGattServer;
 Landroid/bluetooth/BluetoothManager;->TAG:Ljava/lang/String;
 Landroid/bluetooth/BluetoothManager;->VDBG:Z
-Landroid/bluetooth/BluetoothMap;
 Landroid/bluetooth/BluetoothMap;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
 Landroid/bluetooth/BluetoothMap;->ACTION_CONNECTION_STATE_CHANGED:Ljava/lang/String;
 Landroid/bluetooth/BluetoothMap;->close()V
@@ -11323,7 +10630,6 @@
 Landroid/bluetooth/BluetoothMap;->STATE_ERROR:I
 Landroid/bluetooth/BluetoothMap;->TAG:Ljava/lang/String;
 Landroid/bluetooth/BluetoothMap;->VDBG:Z
-Landroid/bluetooth/BluetoothMapClient;
 Landroid/bluetooth/BluetoothMapClient;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
 Landroid/bluetooth/BluetoothMapClient;->ACTION_CONNECTION_STATE_CHANGED:Ljava/lang/String;
 Landroid/bluetooth/BluetoothMapClient;->ACTION_MESSAGE_DELIVERED_SUCCESSFULLY:Ljava/lang/String;
@@ -11355,13 +10661,11 @@
 Landroid/bluetooth/BluetoothMapClient;->STATE_ERROR:I
 Landroid/bluetooth/BluetoothMapClient;->TAG:Ljava/lang/String;
 Landroid/bluetooth/BluetoothMapClient;->VDBG:Z
-Landroid/bluetooth/BluetoothMasInstance$MessageType;
 Landroid/bluetooth/BluetoothMasInstance$MessageType;-><init>()V
 Landroid/bluetooth/BluetoothMasInstance$MessageType;->EMAIL:I
 Landroid/bluetooth/BluetoothMasInstance$MessageType;->MMS:I
 Landroid/bluetooth/BluetoothMasInstance$MessageType;->SMS_CDMA:I
 Landroid/bluetooth/BluetoothMasInstance$MessageType;->SMS_GSM:I
-Landroid/bluetooth/BluetoothMasInstance;
 Landroid/bluetooth/BluetoothMasInstance;-><init>(ILjava/lang/String;II)V
 Landroid/bluetooth/BluetoothMasInstance;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/bluetooth/BluetoothMasInstance;->getChannel()I
@@ -11373,10 +10677,8 @@
 Landroid/bluetooth/BluetoothMasInstance;->mMsgTypes:I
 Landroid/bluetooth/BluetoothMasInstance;->mName:Ljava/lang/String;
 Landroid/bluetooth/BluetoothMasInstance;->msgSupported(I)Z
-Landroid/bluetooth/BluetoothOutputStream;
 Landroid/bluetooth/BluetoothOutputStream;-><init>(Landroid/bluetooth/BluetoothSocket;)V
 Landroid/bluetooth/BluetoothOutputStream;->mSocket:Landroid/bluetooth/BluetoothSocket;
-Landroid/bluetooth/BluetoothPan;
 Landroid/bluetooth/BluetoothPan;->ACTION_CONNECTION_STATE_CHANGED:Ljava/lang/String;
 Landroid/bluetooth/BluetoothPan;->DBG:Z
 Landroid/bluetooth/BluetoothPan;->EXTRA_LOCAL_ROLE:Ljava/lang/String;
@@ -11398,10 +10700,8 @@
 Landroid/bluetooth/BluetoothPan;->REMOTE_PANU_ROLE:I
 Landroid/bluetooth/BluetoothPan;->TAG:Ljava/lang/String;
 Landroid/bluetooth/BluetoothPan;->VDBG:Z
-Landroid/bluetooth/BluetoothPbap$ServiceListener;
 Landroid/bluetooth/BluetoothPbap$ServiceListener;->onServiceConnected(Landroid/bluetooth/BluetoothPbap;)V
 Landroid/bluetooth/BluetoothPbap$ServiceListener;->onServiceDisconnected()V
-Landroid/bluetooth/BluetoothPbap;
 Landroid/bluetooth/BluetoothPbap;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothPbap$ServiceListener;)V
 Landroid/bluetooth/BluetoothPbap;->ACTION_CONNECTION_STATE_CHANGED:Ljava/lang/String;
 Landroid/bluetooth/BluetoothPbap;->close()V
@@ -11419,7 +10719,6 @@
 Landroid/bluetooth/BluetoothPbap;->RESULT_FAILURE:I
 Landroid/bluetooth/BluetoothPbap;->RESULT_SUCCESS:I
 Landroid/bluetooth/BluetoothPbap;->TAG:Ljava/lang/String;
-Landroid/bluetooth/BluetoothPbapClient;
 Landroid/bluetooth/BluetoothPbapClient;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
 Landroid/bluetooth/BluetoothPbapClient;->ACTION_CONNECTION_STATE_CHANGED:Ljava/lang/String;
 Landroid/bluetooth/BluetoothPbapClient;->close()V
@@ -11455,7 +10754,6 @@
 Landroid/bluetooth/BluetoothProfile;->OPP:I
 Landroid/bluetooth/BluetoothProfile;->PBAP:I
 Landroid/bluetooth/BluetoothProfile;->PBAP_CLIENT:I
-Landroid/bluetooth/BluetoothProtoEnums;
 Landroid/bluetooth/BluetoothProtoEnums;-><init>()V
 Landroid/bluetooth/BluetoothProtoEnums;->CONNECTION_STATE_CONNECTED:I
 Landroid/bluetooth/BluetoothProtoEnums;->CONNECTION_STATE_CONNECTING:I
@@ -11471,7 +10769,6 @@
 Landroid/bluetooth/BluetoothProtoEnums;->ENABLE_DISABLE_REASON_SYSTEM_BOOT:I
 Landroid/bluetooth/BluetoothProtoEnums;->ENABLE_DISABLE_REASON_UNSPECIFIED:I
 Landroid/bluetooth/BluetoothProtoEnums;->ENABLE_DISABLE_REASON_USER_SWITCH:I
-Landroid/bluetooth/BluetoothSap;
 Landroid/bluetooth/BluetoothSap;-><init>(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;)V
 Landroid/bluetooth/BluetoothSap;->ACTION_CONNECTION_STATE_CHANGED:Ljava/lang/String;
 Landroid/bluetooth/BluetoothSap;->close()V
@@ -11510,8 +10807,6 @@
 Landroid/bluetooth/BluetoothServerSocket;->setCloseHandler(Landroid/os/Handler;I)V
 Landroid/bluetooth/BluetoothServerSocket;->setServiceName(Ljava/lang/String;)V
 Landroid/bluetooth/BluetoothServerSocket;->TAG:Ljava/lang/String;
-Landroid/bluetooth/BluetoothSocket$SocketState;
-Landroid/bluetooth/BluetoothSocket$SocketState;-><init>()V
 Landroid/bluetooth/BluetoothSocket$SocketState;->CLOSED:Landroid/bluetooth/BluetoothSocket$SocketState;
 Landroid/bluetooth/BluetoothSocket$SocketState;->CONNECTED:Landroid/bluetooth/BluetoothSocket$SocketState;
 Landroid/bluetooth/BluetoothSocket$SocketState;->INIT:Landroid/bluetooth/BluetoothSocket$SocketState;
@@ -11574,7 +10869,6 @@
 Landroid/bluetooth/BluetoothSocket;->VDBG:Z
 Landroid/bluetooth/BluetoothSocket;->waitSocketSignal(Ljava/io/InputStream;)Ljava/lang/String;
 Landroid/bluetooth/BluetoothSocket;->write([BII)I
-Landroid/bluetooth/BluetoothUuid;
 Landroid/bluetooth/BluetoothUuid;-><init>()V
 Landroid/bluetooth/BluetoothUuid;->AudioSource:Landroid/os/ParcelUuid;
 Landroid/bluetooth/BluetoothUuid;->AvrcpController:Landroid/os/ParcelUuid;
@@ -11610,7 +10904,6 @@
 Landroid/bluetooth/BluetoothUuid;->UUID_BYTES_128_BIT:I
 Landroid/bluetooth/BluetoothUuid;->UUID_BYTES_16_BIT:I
 Landroid/bluetooth/BluetoothUuid;->UUID_BYTES_32_BIT:I
-Landroid/bluetooth/IBluetooth$Stub$Proxy;
 Landroid/bluetooth/IBluetooth$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetooth$Stub$Proxy;->cancelBondProcess(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetooth$Stub$Proxy;->cancelDiscovery()Z
@@ -11679,7 +10972,6 @@
 Landroid/bluetooth/IBluetooth$Stub$Proxy;->setSimAccessPermission(Landroid/bluetooth/BluetoothDevice;I)Z
 Landroid/bluetooth/IBluetooth$Stub$Proxy;->startDiscovery()Z
 Landroid/bluetooth/IBluetooth$Stub$Proxy;->unregisterCallback(Landroid/bluetooth/IBluetoothCallback;)V
-Landroid/bluetooth/IBluetooth$Stub;
 Landroid/bluetooth/IBluetooth$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_cancelBondProcess:I
 Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_cancelDiscovery:I
@@ -11747,7 +11039,6 @@
 Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_setSimAccessPermission:I
 Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_startDiscovery:I
 Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_unregisterCallback:I
-Landroid/bluetooth/IBluetooth;
 Landroid/bluetooth/IBluetooth;->cancelBondProcess(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetooth;->cancelDiscovery()Z
 Landroid/bluetooth/IBluetooth;->createBond(Landroid/bluetooth/BluetoothDevice;I)Z
@@ -11810,7 +11101,6 @@
 Landroid/bluetooth/IBluetooth;->setSimAccessPermission(Landroid/bluetooth/BluetoothDevice;I)Z
 Landroid/bluetooth/IBluetooth;->startDiscovery()Z
 Landroid/bluetooth/IBluetooth;->unregisterCallback(Landroid/bluetooth/IBluetoothCallback;)V
-Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;
 Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->connect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->disableOptionalCodecs(Landroid/bluetooth/BluetoothDevice;)V
@@ -11833,7 +11123,6 @@
 Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->setOptionalCodecsEnabled(Landroid/bluetooth/BluetoothDevice;I)V
 Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
 Landroid/bluetooth/IBluetoothA2dp$Stub$Proxy;->supportsOptionalCodecs(Landroid/bluetooth/BluetoothDevice;)I
-Landroid/bluetooth/IBluetoothA2dp$Stub;
 Landroid/bluetooth/IBluetoothA2dp$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/bluetooth/IBluetoothA2dp$Stub;->TRANSACTION_connect:I
 Landroid/bluetooth/IBluetoothA2dp$Stub;->TRANSACTION_disableOptionalCodecs:I
@@ -11854,7 +11143,6 @@
 Landroid/bluetooth/IBluetoothA2dp$Stub;->TRANSACTION_setOptionalCodecsEnabled:I
 Landroid/bluetooth/IBluetoothA2dp$Stub;->TRANSACTION_setPriority:I
 Landroid/bluetooth/IBluetoothA2dp$Stub;->TRANSACTION_supportsOptionalCodecs:I
-Landroid/bluetooth/IBluetoothA2dp;
 Landroid/bluetooth/IBluetoothA2dp;->disableOptionalCodecs(Landroid/bluetooth/BluetoothDevice;)V
 Landroid/bluetooth/IBluetoothA2dp;->enableOptionalCodecs(Landroid/bluetooth/BluetoothDevice;)V
 Landroid/bluetooth/IBluetoothA2dp;->getActiveDevice()Landroid/bluetooth/BluetoothDevice;
@@ -11868,7 +11156,6 @@
 Landroid/bluetooth/IBluetoothA2dp;->setOptionalCodecsEnabled(Landroid/bluetooth/BluetoothDevice;I)V
 Landroid/bluetooth/IBluetoothA2dp;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
 Landroid/bluetooth/IBluetoothA2dp;->supportsOptionalCodecs(Landroid/bluetooth/BluetoothDevice;)I
-Landroid/bluetooth/IBluetoothA2dpSink$Stub$Proxy;
 Landroid/bluetooth/IBluetoothA2dpSink$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothA2dpSink$Stub$Proxy;->connect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothA2dpSink$Stub$Proxy;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
@@ -11881,7 +11168,6 @@
 Landroid/bluetooth/IBluetoothA2dpSink$Stub$Proxy;->isA2dpPlaying(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothA2dpSink$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/bluetooth/IBluetoothA2dpSink$Stub$Proxy;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
-Landroid/bluetooth/IBluetoothA2dpSink$Stub;
 Landroid/bluetooth/IBluetoothA2dpSink$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothA2dpSink$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothA2dpSink;
 Landroid/bluetooth/IBluetoothA2dpSink$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -11894,7 +11180,6 @@
 Landroid/bluetooth/IBluetoothA2dpSink$Stub;->TRANSACTION_getPriority:I
 Landroid/bluetooth/IBluetoothA2dpSink$Stub;->TRANSACTION_isA2dpPlaying:I
 Landroid/bluetooth/IBluetoothA2dpSink$Stub;->TRANSACTION_setPriority:I
-Landroid/bluetooth/IBluetoothA2dpSink;
 Landroid/bluetooth/IBluetoothA2dpSink;->connect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothA2dpSink;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothA2dpSink;->getAudioConfig(Landroid/bluetooth/BluetoothDevice;)Landroid/bluetooth/BluetoothAudioConfig;
@@ -11904,7 +11189,6 @@
 Landroid/bluetooth/IBluetoothA2dpSink;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
 Landroid/bluetooth/IBluetoothA2dpSink;->isA2dpPlaying(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothA2dpSink;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
-Landroid/bluetooth/IBluetoothAvrcpController$Stub$Proxy;
 Landroid/bluetooth/IBluetoothAvrcpController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothAvrcpController$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
 Landroid/bluetooth/IBluetoothAvrcpController$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
@@ -11914,7 +11198,6 @@
 Landroid/bluetooth/IBluetoothAvrcpController$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/bluetooth/IBluetoothAvrcpController$Stub$Proxy;->sendGroupNavigationCmd(Landroid/bluetooth/BluetoothDevice;II)V
 Landroid/bluetooth/IBluetoothAvrcpController$Stub$Proxy;->setPlayerApplicationSetting(Landroid/bluetooth/BluetoothAvrcpPlayerSettings;)Z
-Landroid/bluetooth/IBluetoothAvrcpController$Stub;
 Landroid/bluetooth/IBluetoothAvrcpController$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothAvrcpController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothAvrcpController;
 Landroid/bluetooth/IBluetoothAvrcpController$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -11924,37 +11207,29 @@
 Landroid/bluetooth/IBluetoothAvrcpController$Stub;->TRANSACTION_getPlayerSettings:I
 Landroid/bluetooth/IBluetoothAvrcpController$Stub;->TRANSACTION_sendGroupNavigationCmd:I
 Landroid/bluetooth/IBluetoothAvrcpController$Stub;->TRANSACTION_setPlayerApplicationSetting:I
-Landroid/bluetooth/IBluetoothAvrcpController;
 Landroid/bluetooth/IBluetoothAvrcpController;->getConnectedDevices()Ljava/util/List;
 Landroid/bluetooth/IBluetoothAvrcpController;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
 Landroid/bluetooth/IBluetoothAvrcpController;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
 Landroid/bluetooth/IBluetoothAvrcpController;->getPlayerSettings(Landroid/bluetooth/BluetoothDevice;)Landroid/bluetooth/BluetoothAvrcpPlayerSettings;
 Landroid/bluetooth/IBluetoothAvrcpController;->sendGroupNavigationCmd(Landroid/bluetooth/BluetoothDevice;II)V
 Landroid/bluetooth/IBluetoothAvrcpController;->setPlayerApplicationSetting(Landroid/bluetooth/BluetoothAvrcpPlayerSettings;)Z
-Landroid/bluetooth/IBluetoothAvrcpTarget$Stub$Proxy;
 Landroid/bluetooth/IBluetoothAvrcpTarget$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothAvrcpTarget$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/bluetooth/IBluetoothAvrcpTarget$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/bluetooth/IBluetoothAvrcpTarget$Stub$Proxy;->sendVolumeChanged(I)V
-Landroid/bluetooth/IBluetoothAvrcpTarget$Stub;
 Landroid/bluetooth/IBluetoothAvrcpTarget$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothAvrcpTarget$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothAvrcpTarget;
 Landroid/bluetooth/IBluetoothAvrcpTarget$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/bluetooth/IBluetoothAvrcpTarget$Stub;->TRANSACTION_sendVolumeChanged:I
-Landroid/bluetooth/IBluetoothAvrcpTarget;
 Landroid/bluetooth/IBluetoothAvrcpTarget;->sendVolumeChanged(I)V
-Landroid/bluetooth/IBluetoothCallback$Stub$Proxy;
 Landroid/bluetooth/IBluetoothCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/bluetooth/IBluetoothCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/bluetooth/IBluetoothCallback$Stub$Proxy;->onBluetoothStateChange(II)V
-Landroid/bluetooth/IBluetoothCallback$Stub;
 Landroid/bluetooth/IBluetoothCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothCallback;
 Landroid/bluetooth/IBluetoothCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/bluetooth/IBluetoothCallback$Stub;->TRANSACTION_onBluetoothStateChange:I
-Landroid/bluetooth/IBluetoothCallback;
 Landroid/bluetooth/IBluetoothCallback;->onBluetoothStateChange(II)V
-Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;
 Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->addService(ILandroid/bluetooth/BluetoothGattService;)V
 Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->beginReliableWrite(ILjava/lang/String;)V
@@ -12013,7 +11288,6 @@
 Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->unregisterSync(Landroid/bluetooth/le/IPeriodicAdvertisingCallback;)V
 Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->writeCharacteristic(ILjava/lang/String;III[B)V
 Landroid/bluetooth/IBluetoothGatt$Stub$Proxy;->writeDescriptor(ILjava/lang/String;II[B)V
-Landroid/bluetooth/IBluetoothGatt$Stub;
 Landroid/bluetooth/IBluetoothGatt$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothGatt$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothGatt;
 Landroid/bluetooth/IBluetoothGatt$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -12072,7 +11346,6 @@
 Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_unregisterSync:I
 Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_writeCharacteristic:I
 Landroid/bluetooth/IBluetoothGatt$Stub;->TRANSACTION_writeDescriptor:I
-Landroid/bluetooth/IBluetoothGatt;
 Landroid/bluetooth/IBluetoothGatt;->addService(ILandroid/bluetooth/BluetoothGattService;)V
 Landroid/bluetooth/IBluetoothGatt;->beginReliableWrite(ILjava/lang/String;)V
 Landroid/bluetooth/IBluetoothGatt;->clearServices(I)V
@@ -12126,7 +11399,6 @@
 Landroid/bluetooth/IBluetoothGatt;->unregisterSync(Landroid/bluetooth/le/IPeriodicAdvertisingCallback;)V
 Landroid/bluetooth/IBluetoothGatt;->writeCharacteristic(ILjava/lang/String;III[B)V
 Landroid/bluetooth/IBluetoothGatt;->writeDescriptor(ILjava/lang/String;II[B)V
-Landroid/bluetooth/IBluetoothGattCallback$Stub$Proxy;
 Landroid/bluetooth/IBluetoothGattCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothGattCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/bluetooth/IBluetoothGattCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -12144,7 +11416,6 @@
 Landroid/bluetooth/IBluetoothGattCallback$Stub$Proxy;->onPhyUpdate(Ljava/lang/String;III)V
 Landroid/bluetooth/IBluetoothGattCallback$Stub$Proxy;->onReadRemoteRssi(Ljava/lang/String;II)V
 Landroid/bluetooth/IBluetoothGattCallback$Stub$Proxy;->onSearchComplete(Ljava/lang/String;Ljava/util/List;I)V
-Landroid/bluetooth/IBluetoothGattCallback$Stub;
 Landroid/bluetooth/IBluetoothGattCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/bluetooth/IBluetoothGattCallback$Stub;->TRANSACTION_onCharacteristicRead:I
 Landroid/bluetooth/IBluetoothGattCallback$Stub;->TRANSACTION_onCharacteristicWrite:I
@@ -12160,7 +11431,6 @@
 Landroid/bluetooth/IBluetoothGattCallback$Stub;->TRANSACTION_onPhyUpdate:I
 Landroid/bluetooth/IBluetoothGattCallback$Stub;->TRANSACTION_onReadRemoteRssi:I
 Landroid/bluetooth/IBluetoothGattCallback$Stub;->TRANSACTION_onSearchComplete:I
-Landroid/bluetooth/IBluetoothGattCallback;
 Landroid/bluetooth/IBluetoothGattCallback;->onCharacteristicRead(Ljava/lang/String;II[B)V
 Landroid/bluetooth/IBluetoothGattCallback;->onCharacteristicWrite(Ljava/lang/String;II)V
 Landroid/bluetooth/IBluetoothGattCallback;->onClientConnectionState(IIZLjava/lang/String;)V
@@ -12175,7 +11445,6 @@
 Landroid/bluetooth/IBluetoothGattCallback;->onPhyUpdate(Ljava/lang/String;III)V
 Landroid/bluetooth/IBluetoothGattCallback;->onReadRemoteRssi(Ljava/lang/String;II)V
 Landroid/bluetooth/IBluetoothGattCallback;->onSearchComplete(Ljava/lang/String;Ljava/util/List;I)V
-Landroid/bluetooth/IBluetoothGattServerCallback$Stub$Proxy;
 Landroid/bluetooth/IBluetoothGattServerCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothGattServerCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/bluetooth/IBluetoothGattServerCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -12192,7 +11461,6 @@
 Landroid/bluetooth/IBluetoothGattServerCallback$Stub$Proxy;->onServerConnectionState(IIZLjava/lang/String;)V
 Landroid/bluetooth/IBluetoothGattServerCallback$Stub$Proxy;->onServerRegistered(II)V
 Landroid/bluetooth/IBluetoothGattServerCallback$Stub$Proxy;->onServiceAdded(ILandroid/bluetooth/BluetoothGattService;)V
-Landroid/bluetooth/IBluetoothGattServerCallback$Stub;
 Landroid/bluetooth/IBluetoothGattServerCallback$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothGattServerCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothGattServerCallback;
 Landroid/bluetooth/IBluetoothGattServerCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -12209,7 +11477,6 @@
 Landroid/bluetooth/IBluetoothGattServerCallback$Stub;->TRANSACTION_onServerConnectionState:I
 Landroid/bluetooth/IBluetoothGattServerCallback$Stub;->TRANSACTION_onServerRegistered:I
 Landroid/bluetooth/IBluetoothGattServerCallback$Stub;->TRANSACTION_onServiceAdded:I
-Landroid/bluetooth/IBluetoothGattServerCallback;
 Landroid/bluetooth/IBluetoothGattServerCallback;->onCharacteristicReadRequest(Ljava/lang/String;IIZI)V
 Landroid/bluetooth/IBluetoothGattServerCallback;->onCharacteristicWriteRequest(Ljava/lang/String;IIIZZI[B)V
 Landroid/bluetooth/IBluetoothGattServerCallback;->onConnectionUpdated(Ljava/lang/String;IIII)V
@@ -12223,7 +11490,6 @@
 Landroid/bluetooth/IBluetoothGattServerCallback;->onServerConnectionState(IIZLjava/lang/String;)V
 Landroid/bluetooth/IBluetoothGattServerCallback;->onServerRegistered(II)V
 Landroid/bluetooth/IBluetoothGattServerCallback;->onServiceAdded(ILandroid/bluetooth/BluetoothGattService;)V
-Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;
 Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->clccResponse(IIIIZLjava/lang/String;I)V
 Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->connect(Landroid/bluetooth/BluetoothDevice;)Z
@@ -12252,7 +11518,6 @@
 Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->startVoiceRecognition(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->stopScoUsingVirtualVoiceCall()Z
 Landroid/bluetooth/IBluetoothHeadset$Stub$Proxy;->stopVoiceRecognition(Landroid/bluetooth/BluetoothDevice;)Z
-Landroid/bluetooth/IBluetoothHeadset$Stub;
 Landroid/bluetooth/IBluetoothHeadset$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothHeadset$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_clccResponse:I
@@ -12280,7 +11545,6 @@
 Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_startVoiceRecognition:I
 Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_stopScoUsingVirtualVoiceCall:I
 Landroid/bluetooth/IBluetoothHeadset$Stub;->TRANSACTION_stopVoiceRecognition:I
-Landroid/bluetooth/IBluetoothHeadset;
 Landroid/bluetooth/IBluetoothHeadset;->clccResponse(IIIIZLjava/lang/String;I)V
 Landroid/bluetooth/IBluetoothHeadset;->connectAudio()Z
 Landroid/bluetooth/IBluetoothHeadset;->disconnectAudio()Z
@@ -12300,7 +11564,6 @@
 Landroid/bluetooth/IBluetoothHeadset;->startVoiceRecognition(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothHeadset;->stopScoUsingVirtualVoiceCall()Z
 Landroid/bluetooth/IBluetoothHeadset;->stopVoiceRecognition(Landroid/bluetooth/BluetoothDevice;)Z
-Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;
 Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->acceptCall(Landroid/bluetooth/BluetoothDevice;I)Z
 Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->connect(Landroid/bluetooth/BluetoothDevice;)Z
@@ -12330,7 +11593,6 @@
 Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->startVoiceRecognition(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->stopVoiceRecognition(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothHeadsetClient$Stub$Proxy;->terminateCall(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHeadsetClientCall;)Z
-Landroid/bluetooth/IBluetoothHeadsetClient$Stub;
 Landroid/bluetooth/IBluetoothHeadsetClient$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHeadsetClient;
 Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -12360,7 +11622,6 @@
 Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_startVoiceRecognition:I
 Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_stopVoiceRecognition:I
 Landroid/bluetooth/IBluetoothHeadsetClient$Stub;->TRANSACTION_terminateCall:I
-Landroid/bluetooth/IBluetoothHeadsetClient;
 Landroid/bluetooth/IBluetoothHeadsetClient;->acceptCall(Landroid/bluetooth/BluetoothDevice;I)Z
 Landroid/bluetooth/IBluetoothHeadsetClient;->connect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothHeadsetClient;->connectAudio(Landroid/bluetooth/BluetoothDevice;)Z
@@ -12387,7 +11648,6 @@
 Landroid/bluetooth/IBluetoothHeadsetClient;->startVoiceRecognition(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothHeadsetClient;->stopVoiceRecognition(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothHeadsetClient;->terminateCall(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHeadsetClientCall;)Z
-Landroid/bluetooth/IBluetoothHeadsetPhone$Stub$Proxy;
 Landroid/bluetooth/IBluetoothHeadsetPhone$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothHeadsetPhone$Stub$Proxy;->answerCall()Z
 Landroid/bluetooth/IBluetoothHeadsetPhone$Stub$Proxy;->cdmaSetSecondCallState(Z)V
@@ -12402,7 +11662,6 @@
 Landroid/bluetooth/IBluetoothHeadsetPhone$Stub$Proxy;->queryPhoneState()Z
 Landroid/bluetooth/IBluetoothHeadsetPhone$Stub$Proxy;->sendDtmf(I)Z
 Landroid/bluetooth/IBluetoothHeadsetPhone$Stub$Proxy;->updateBtHandsfreeAfterRadioTechnologyChange()V
-Landroid/bluetooth/IBluetoothHeadsetPhone$Stub;
 Landroid/bluetooth/IBluetoothHeadsetPhone$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothHeadsetPhone$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHeadsetPhone;
 Landroid/bluetooth/IBluetoothHeadsetPhone$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -12417,7 +11676,6 @@
 Landroid/bluetooth/IBluetoothHeadsetPhone$Stub;->TRANSACTION_queryPhoneState:I
 Landroid/bluetooth/IBluetoothHeadsetPhone$Stub;->TRANSACTION_sendDtmf:I
 Landroid/bluetooth/IBluetoothHeadsetPhone$Stub;->TRANSACTION_updateBtHandsfreeAfterRadioTechnologyChange:I
-Landroid/bluetooth/IBluetoothHeadsetPhone;
 Landroid/bluetooth/IBluetoothHeadsetPhone;->answerCall()Z
 Landroid/bluetooth/IBluetoothHeadsetPhone;->cdmaSetSecondCallState(Z)V
 Landroid/bluetooth/IBluetoothHeadsetPhone;->cdmaSwapSecondCallState()V
@@ -12429,7 +11687,6 @@
 Landroid/bluetooth/IBluetoothHeadsetPhone;->queryPhoneState()Z
 Landroid/bluetooth/IBluetoothHeadsetPhone;->sendDtmf(I)Z
 Landroid/bluetooth/IBluetoothHeadsetPhone;->updateBtHandsfreeAfterRadioTechnologyChange()V
-Landroid/bluetooth/IBluetoothHealth$Stub$Proxy;
 Landroid/bluetooth/IBluetoothHealth$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothHealth$Stub$Proxy;->connectChannelToSink(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHealthAppConfiguration;I)Z
 Landroid/bluetooth/IBluetoothHealth$Stub$Proxy;->connectChannelToSource(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHealthAppConfiguration;)Z
@@ -12442,7 +11699,6 @@
 Landroid/bluetooth/IBluetoothHealth$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/bluetooth/IBluetoothHealth$Stub$Proxy;->registerAppConfiguration(Landroid/bluetooth/BluetoothHealthAppConfiguration;Landroid/bluetooth/IBluetoothHealthCallback;)Z
 Landroid/bluetooth/IBluetoothHealth$Stub$Proxy;->unregisterAppConfiguration(Landroid/bluetooth/BluetoothHealthAppConfiguration;)Z
-Landroid/bluetooth/IBluetoothHealth$Stub;
 Landroid/bluetooth/IBluetoothHealth$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothHealth$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHealth;
 Landroid/bluetooth/IBluetoothHealth$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -12455,7 +11711,6 @@
 Landroid/bluetooth/IBluetoothHealth$Stub;->TRANSACTION_getMainChannelFd:I
 Landroid/bluetooth/IBluetoothHealth$Stub;->TRANSACTION_registerAppConfiguration:I
 Landroid/bluetooth/IBluetoothHealth$Stub;->TRANSACTION_unregisterAppConfiguration:I
-Landroid/bluetooth/IBluetoothHealth;
 Landroid/bluetooth/IBluetoothHealth;->connectChannelToSink(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHealthAppConfiguration;I)Z
 Landroid/bluetooth/IBluetoothHealth;->connectChannelToSource(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHealthAppConfiguration;)Z
 Landroid/bluetooth/IBluetoothHealth;->disconnectChannel(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHealthAppConfiguration;I)Z
@@ -12465,22 +11720,18 @@
 Landroid/bluetooth/IBluetoothHealth;->getMainChannelFd(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHealthAppConfiguration;)Landroid/os/ParcelFileDescriptor;
 Landroid/bluetooth/IBluetoothHealth;->registerAppConfiguration(Landroid/bluetooth/BluetoothHealthAppConfiguration;Landroid/bluetooth/IBluetoothHealthCallback;)Z
 Landroid/bluetooth/IBluetoothHealth;->unregisterAppConfiguration(Landroid/bluetooth/BluetoothHealthAppConfiguration;)Z
-Landroid/bluetooth/IBluetoothHealthCallback$Stub$Proxy;
 Landroid/bluetooth/IBluetoothHealthCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothHealthCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/bluetooth/IBluetoothHealthCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/bluetooth/IBluetoothHealthCallback$Stub$Proxy;->onHealthAppConfigurationStatusChange(Landroid/bluetooth/BluetoothHealthAppConfiguration;I)V
 Landroid/bluetooth/IBluetoothHealthCallback$Stub$Proxy;->onHealthChannelStateChange(Landroid/bluetooth/BluetoothHealthAppConfiguration;Landroid/bluetooth/BluetoothDevice;IILandroid/os/ParcelFileDescriptor;I)V
-Landroid/bluetooth/IBluetoothHealthCallback$Stub;
 Landroid/bluetooth/IBluetoothHealthCallback$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothHealthCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHealthCallback;
 Landroid/bluetooth/IBluetoothHealthCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/bluetooth/IBluetoothHealthCallback$Stub;->TRANSACTION_onHealthAppConfigurationStatusChange:I
 Landroid/bluetooth/IBluetoothHealthCallback$Stub;->TRANSACTION_onHealthChannelStateChange:I
-Landroid/bluetooth/IBluetoothHealthCallback;
 Landroid/bluetooth/IBluetoothHealthCallback;->onHealthAppConfigurationStatusChange(Landroid/bluetooth/BluetoothHealthAppConfiguration;I)V
 Landroid/bluetooth/IBluetoothHealthCallback;->onHealthChannelStateChange(Landroid/bluetooth/BluetoothHealthAppConfiguration;Landroid/bluetooth/BluetoothDevice;IILandroid/os/ParcelFileDescriptor;I)V
-Landroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;
 Landroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->adjustVolume(I)V
 Landroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->connect(Landroid/bluetooth/BluetoothDevice;)Z
@@ -12499,7 +11750,6 @@
 Landroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->setActiveDevice(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
 Landroid/bluetooth/IBluetoothHearingAid$Stub$Proxy;->setVolume(I)V
-Landroid/bluetooth/IBluetoothHearingAid$Stub;
 Landroid/bluetooth/IBluetoothHearingAid$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothHearingAid$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHearingAid;
 Landroid/bluetooth/IBluetoothHearingAid$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -12518,7 +11768,6 @@
 Landroid/bluetooth/IBluetoothHearingAid$Stub;->TRANSACTION_setActiveDevice:I
 Landroid/bluetooth/IBluetoothHearingAid$Stub;->TRANSACTION_setPriority:I
 Landroid/bluetooth/IBluetoothHearingAid$Stub;->TRANSACTION_setVolume:I
-Landroid/bluetooth/IBluetoothHearingAid;
 Landroid/bluetooth/IBluetoothHearingAid;->adjustVolume(I)V
 Landroid/bluetooth/IBluetoothHearingAid;->connect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothHearingAid;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
@@ -12539,7 +11788,6 @@
 Landroid/bluetooth/IBluetoothHearingAid;->setVolume(I)V
 Landroid/bluetooth/IBluetoothHearingAid;->SIDE_LEFT:I
 Landroid/bluetooth/IBluetoothHearingAid;->SIDE_RIGHT:I
-Landroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;
 Landroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;->connect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
@@ -12555,7 +11803,6 @@
 Landroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;->sendReport(Landroid/bluetooth/BluetoothDevice;I[B)Z
 Landroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;->unplug(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothHidDevice$Stub$Proxy;->unregisterApp()Z
-Landroid/bluetooth/IBluetoothHidDevice$Stub;
 Landroid/bluetooth/IBluetoothHidDevice$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothHidDevice$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHidDevice;
 Landroid/bluetooth/IBluetoothHidDevice$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -12571,7 +11818,6 @@
 Landroid/bluetooth/IBluetoothHidDevice$Stub;->TRANSACTION_sendReport:I
 Landroid/bluetooth/IBluetoothHidDevice$Stub;->TRANSACTION_unplug:I
 Landroid/bluetooth/IBluetoothHidDevice$Stub;->TRANSACTION_unregisterApp:I
-Landroid/bluetooth/IBluetoothHidDevice;
 Landroid/bluetooth/IBluetoothHidDevice;->connect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothHidDevice;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothHidDevice;->getConnectedDevices()Ljava/util/List;
@@ -12584,7 +11830,6 @@
 Landroid/bluetooth/IBluetoothHidDevice;->sendReport(Landroid/bluetooth/BluetoothDevice;I[B)Z
 Landroid/bluetooth/IBluetoothHidDevice;->unplug(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothHidDevice;->unregisterApp()Z
-Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub$Proxy;
 Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -12595,7 +11840,6 @@
 Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub$Proxy;->onSetProtocol(Landroid/bluetooth/BluetoothDevice;B)V
 Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub$Proxy;->onSetReport(Landroid/bluetooth/BluetoothDevice;BB[B)V
 Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub$Proxy;->onVirtualCableUnplug(Landroid/bluetooth/BluetoothDevice;)V
-Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub;
 Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHidDeviceCallback;
 Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub;->TRANSACTION_onAppStatusChanged:I
@@ -12605,7 +11849,6 @@
 Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub;->TRANSACTION_onSetProtocol:I
 Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub;->TRANSACTION_onSetReport:I
 Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub;->TRANSACTION_onVirtualCableUnplug:I
-Landroid/bluetooth/IBluetoothHidDeviceCallback;
 Landroid/bluetooth/IBluetoothHidDeviceCallback;->onAppStatusChanged(Landroid/bluetooth/BluetoothDevice;Z)V
 Landroid/bluetooth/IBluetoothHidDeviceCallback;->onConnectionStateChanged(Landroid/bluetooth/BluetoothDevice;I)V
 Landroid/bluetooth/IBluetoothHidDeviceCallback;->onGetReport(Landroid/bluetooth/BluetoothDevice;BBI)V
@@ -12613,7 +11856,6 @@
 Landroid/bluetooth/IBluetoothHidDeviceCallback;->onSetProtocol(Landroid/bluetooth/BluetoothDevice;B)V
 Landroid/bluetooth/IBluetoothHidDeviceCallback;->onSetReport(Landroid/bluetooth/BluetoothDevice;BB[B)V
 Landroid/bluetooth/IBluetoothHidDeviceCallback;->onVirtualCableUnplug(Landroid/bluetooth/BluetoothDevice;)V
-Landroid/bluetooth/IBluetoothHidHost$Stub$Proxy;
 Landroid/bluetooth/IBluetoothHidHost$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothHidHost$Stub$Proxy;->connect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothHidHost$Stub$Proxy;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
@@ -12632,7 +11874,6 @@
 Landroid/bluetooth/IBluetoothHidHost$Stub$Proxy;->setProtocolMode(Landroid/bluetooth/BluetoothDevice;I)Z
 Landroid/bluetooth/IBluetoothHidHost$Stub$Proxy;->setReport(Landroid/bluetooth/BluetoothDevice;BLjava/lang/String;)Z
 Landroid/bluetooth/IBluetoothHidHost$Stub$Proxy;->virtualUnplug(Landroid/bluetooth/BluetoothDevice;)Z
-Landroid/bluetooth/IBluetoothHidHost$Stub;
 Landroid/bluetooth/IBluetoothHidHost$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothHidHost$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHidHost;
 Landroid/bluetooth/IBluetoothHidHost$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -12651,7 +11892,6 @@
 Landroid/bluetooth/IBluetoothHidHost$Stub;->TRANSACTION_setProtocolMode:I
 Landroid/bluetooth/IBluetoothHidHost$Stub;->TRANSACTION_setReport:I
 Landroid/bluetooth/IBluetoothHidHost$Stub;->TRANSACTION_virtualUnplug:I
-Landroid/bluetooth/IBluetoothHidHost;
 Landroid/bluetooth/IBluetoothHidHost;->connect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothHidHost;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothHidHost;->getConnectedDevices()Ljava/util/List;
@@ -12667,7 +11907,6 @@
 Landroid/bluetooth/IBluetoothHidHost;->setProtocolMode(Landroid/bluetooth/BluetoothDevice;I)Z
 Landroid/bluetooth/IBluetoothHidHost;->setReport(Landroid/bluetooth/BluetoothDevice;BLjava/lang/String;)Z
 Landroid/bluetooth/IBluetoothHidHost;->virtualUnplug(Landroid/bluetooth/BluetoothDevice;)Z
-Landroid/bluetooth/IBluetoothManager$Stub$Proxy;
 Landroid/bluetooth/IBluetoothManager$Stub$Proxy;->bindBluetoothProfileService(ILandroid/bluetooth/IBluetoothProfileServiceConnection;)Z
 Landroid/bluetooth/IBluetoothManager$Stub$Proxy;->disable(Ljava/lang/String;Z)Z
 Landroid/bluetooth/IBluetoothManager$Stub$Proxy;->enable(Ljava/lang/String;)Z
@@ -12687,7 +11926,6 @@
 Landroid/bluetooth/IBluetoothManager$Stub$Proxy;->unregisterAdapter(Landroid/bluetooth/IBluetoothManagerCallback;)V
 Landroid/bluetooth/IBluetoothManager$Stub$Proxy;->unregisterStateChangeCallback(Landroid/bluetooth/IBluetoothStateChangeCallback;)V
 Landroid/bluetooth/IBluetoothManager$Stub$Proxy;->updateBleAppCount(Landroid/os/IBinder;ZLjava/lang/String;)I
-Landroid/bluetooth/IBluetoothManager$Stub;
 Landroid/bluetooth/IBluetoothManager$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/bluetooth/IBluetoothManager$Stub;->TRANSACTION_bindBluetoothProfileService:I
@@ -12706,7 +11944,6 @@
 Landroid/bluetooth/IBluetoothManager$Stub;->TRANSACTION_unregisterAdapter:I
 Landroid/bluetooth/IBluetoothManager$Stub;->TRANSACTION_unregisterStateChangeCallback:I
 Landroid/bluetooth/IBluetoothManager$Stub;->TRANSACTION_updateBleAppCount:I
-Landroid/bluetooth/IBluetoothManager;
 Landroid/bluetooth/IBluetoothManager;->bindBluetoothProfileService(ILandroid/bluetooth/IBluetoothProfileServiceConnection;)Z
 Landroid/bluetooth/IBluetoothManager;->disable(Ljava/lang/String;Z)Z
 Landroid/bluetooth/IBluetoothManager;->enable(Ljava/lang/String;)Z
@@ -12721,24 +11958,20 @@
 Landroid/bluetooth/IBluetoothManager;->unbindBluetoothProfileService(ILandroid/bluetooth/IBluetoothProfileServiceConnection;)V
 Landroid/bluetooth/IBluetoothManager;->unregisterAdapter(Landroid/bluetooth/IBluetoothManagerCallback;)V
 Landroid/bluetooth/IBluetoothManager;->updateBleAppCount(Landroid/os/IBinder;ZLjava/lang/String;)I
-Landroid/bluetooth/IBluetoothManagerCallback$Stub$Proxy;
 Landroid/bluetooth/IBluetoothManagerCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothManagerCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/bluetooth/IBluetoothManagerCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/bluetooth/IBluetoothManagerCallback$Stub$Proxy;->onBluetoothServiceDown()V
 Landroid/bluetooth/IBluetoothManagerCallback$Stub$Proxy;->onBluetoothServiceUp(Landroid/bluetooth/IBluetooth;)V
 Landroid/bluetooth/IBluetoothManagerCallback$Stub$Proxy;->onBrEdrDown()V
-Landroid/bluetooth/IBluetoothManagerCallback$Stub;
 Landroid/bluetooth/IBluetoothManagerCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothManagerCallback;
 Landroid/bluetooth/IBluetoothManagerCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/bluetooth/IBluetoothManagerCallback$Stub;->TRANSACTION_onBluetoothServiceDown:I
 Landroid/bluetooth/IBluetoothManagerCallback$Stub;->TRANSACTION_onBluetoothServiceUp:I
 Landroid/bluetooth/IBluetoothManagerCallback$Stub;->TRANSACTION_onBrEdrDown:I
-Landroid/bluetooth/IBluetoothManagerCallback;
 Landroid/bluetooth/IBluetoothManagerCallback;->onBluetoothServiceDown()V
 Landroid/bluetooth/IBluetoothManagerCallback;->onBluetoothServiceUp(Landroid/bluetooth/IBluetooth;)V
 Landroid/bluetooth/IBluetoothManagerCallback;->onBrEdrDown()V
-Landroid/bluetooth/IBluetoothMap$Stub$Proxy;
 Landroid/bluetooth/IBluetoothMap$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothMap$Stub$Proxy;->connect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothMap$Stub$Proxy;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
@@ -12752,7 +11985,6 @@
 Landroid/bluetooth/IBluetoothMap$Stub$Proxy;->isConnected(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothMap$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/bluetooth/IBluetoothMap$Stub$Proxy;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
-Landroid/bluetooth/IBluetoothMap$Stub;
 Landroid/bluetooth/IBluetoothMap$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothMap$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothMap;
 Landroid/bluetooth/IBluetoothMap$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -12766,7 +11998,6 @@
 Landroid/bluetooth/IBluetoothMap$Stub;->TRANSACTION_getState:I
 Landroid/bluetooth/IBluetoothMap$Stub;->TRANSACTION_isConnected:I
 Landroid/bluetooth/IBluetoothMap$Stub;->TRANSACTION_setPriority:I
-Landroid/bluetooth/IBluetoothMap;
 Landroid/bluetooth/IBluetoothMap;->connect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothMap;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothMap;->getClient()Landroid/bluetooth/BluetoothDevice;
@@ -12777,7 +12008,6 @@
 Landroid/bluetooth/IBluetoothMap;->getState()I
 Landroid/bluetooth/IBluetoothMap;->isConnected(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothMap;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
-Landroid/bluetooth/IBluetoothMapClient$Stub$Proxy;
 Landroid/bluetooth/IBluetoothMapClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothMapClient$Stub$Proxy;->connect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothMapClient$Stub$Proxy;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
@@ -12791,7 +12021,6 @@
 Landroid/bluetooth/IBluetoothMapClient$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/bluetooth/IBluetoothMapClient$Stub$Proxy;->sendMessage(Landroid/bluetooth/BluetoothDevice;[Landroid/net/Uri;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;)Z
 Landroid/bluetooth/IBluetoothMapClient$Stub$Proxy;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
-Landroid/bluetooth/IBluetoothMapClient$Stub;
 Landroid/bluetooth/IBluetoothMapClient$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothMapClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothMapClient;
 Landroid/bluetooth/IBluetoothMapClient$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -12805,7 +12034,6 @@
 Landroid/bluetooth/IBluetoothMapClient$Stub;->TRANSACTION_isConnected:I
 Landroid/bluetooth/IBluetoothMapClient$Stub;->TRANSACTION_sendMessage:I
 Landroid/bluetooth/IBluetoothMapClient$Stub;->TRANSACTION_setPriority:I
-Landroid/bluetooth/IBluetoothMapClient;
 Landroid/bluetooth/IBluetoothMapClient;->connect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothMapClient;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothMapClient;->getConnectedDevices()Ljava/util/List;
@@ -12816,7 +12044,6 @@
 Landroid/bluetooth/IBluetoothMapClient;->isConnected(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothMapClient;->sendMessage(Landroid/bluetooth/BluetoothDevice;[Landroid/net/Uri;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;)Z
 Landroid/bluetooth/IBluetoothMapClient;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
-Landroid/bluetooth/IBluetoothPan$Stub$Proxy;
 Landroid/bluetooth/IBluetoothPan$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothPan$Stub$Proxy;->connect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothPan$Stub$Proxy;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
@@ -12827,7 +12054,6 @@
 Landroid/bluetooth/IBluetoothPan$Stub$Proxy;->isTetheringOn()Z
 Landroid/bluetooth/IBluetoothPan$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/bluetooth/IBluetoothPan$Stub$Proxy;->setBluetoothTethering(Z)V
-Landroid/bluetooth/IBluetoothPan$Stub;
 Landroid/bluetooth/IBluetoothPan$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothPan$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothPan;
 Landroid/bluetooth/IBluetoothPan$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -12838,7 +12064,6 @@
 Landroid/bluetooth/IBluetoothPan$Stub;->TRANSACTION_getDevicesMatchingConnectionStates:I
 Landroid/bluetooth/IBluetoothPan$Stub;->TRANSACTION_isTetheringOn:I
 Landroid/bluetooth/IBluetoothPan$Stub;->TRANSACTION_setBluetoothTethering:I
-Landroid/bluetooth/IBluetoothPan;
 Landroid/bluetooth/IBluetoothPan;->connect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothPan;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothPan;->getConnectedDevices()Ljava/util/List;
@@ -12846,7 +12071,6 @@
 Landroid/bluetooth/IBluetoothPan;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
 Landroid/bluetooth/IBluetoothPan;->isTetheringOn()Z
 Landroid/bluetooth/IBluetoothPan;->setBluetoothTethering(Z)V
-Landroid/bluetooth/IBluetoothPbap$Stub$Proxy;
 Landroid/bluetooth/IBluetoothPbap$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothPbap$Stub$Proxy;->disconnect(Landroid/bluetooth/BluetoothDevice;)V
 Landroid/bluetooth/IBluetoothPbap$Stub$Proxy;->getConnectedDevices()Ljava/util/List;
@@ -12854,19 +12078,16 @@
 Landroid/bluetooth/IBluetoothPbap$Stub$Proxy;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
 Landroid/bluetooth/IBluetoothPbap$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/bluetooth/IBluetoothPbap$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/bluetooth/IBluetoothPbap$Stub;
 Landroid/bluetooth/IBluetoothPbap$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothPbap$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/bluetooth/IBluetoothPbap$Stub;->TRANSACTION_disconnect:I
 Landroid/bluetooth/IBluetoothPbap$Stub;->TRANSACTION_getConnectedDevices:I
 Landroid/bluetooth/IBluetoothPbap$Stub;->TRANSACTION_getConnectionState:I
 Landroid/bluetooth/IBluetoothPbap$Stub;->TRANSACTION_getDevicesMatchingConnectionStates:I
-Landroid/bluetooth/IBluetoothPbap;
 Landroid/bluetooth/IBluetoothPbap;->disconnect(Landroid/bluetooth/BluetoothDevice;)V
 Landroid/bluetooth/IBluetoothPbap;->getConnectedDevices()Ljava/util/List;
 Landroid/bluetooth/IBluetoothPbap;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
 Landroid/bluetooth/IBluetoothPbap;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
-Landroid/bluetooth/IBluetoothPbapClient$Stub$Proxy;
 Landroid/bluetooth/IBluetoothPbapClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothPbapClient$Stub$Proxy;->connect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothPbapClient$Stub$Proxy;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
@@ -12877,7 +12098,6 @@
 Landroid/bluetooth/IBluetoothPbapClient$Stub$Proxy;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
 Landroid/bluetooth/IBluetoothPbapClient$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/bluetooth/IBluetoothPbapClient$Stub$Proxy;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
-Landroid/bluetooth/IBluetoothPbapClient$Stub;
 Landroid/bluetooth/IBluetoothPbapClient$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothPbapClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothPbapClient;
 Landroid/bluetooth/IBluetoothPbapClient$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -12888,7 +12108,6 @@
 Landroid/bluetooth/IBluetoothPbapClient$Stub;->TRANSACTION_getDevicesMatchingConnectionStates:I
 Landroid/bluetooth/IBluetoothPbapClient$Stub;->TRANSACTION_getPriority:I
 Landroid/bluetooth/IBluetoothPbapClient$Stub;->TRANSACTION_setPriority:I
-Landroid/bluetooth/IBluetoothPbapClient;
 Landroid/bluetooth/IBluetoothPbapClient;->connect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothPbapClient;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothPbapClient;->getConnectedDevices()Ljava/util/List;
@@ -12896,22 +12115,18 @@
 Landroid/bluetooth/IBluetoothPbapClient;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
 Landroid/bluetooth/IBluetoothPbapClient;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
 Landroid/bluetooth/IBluetoothPbapClient;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
-Landroid/bluetooth/IBluetoothProfileServiceConnection$Stub$Proxy;
 Landroid/bluetooth/IBluetoothProfileServiceConnection$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothProfileServiceConnection$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/bluetooth/IBluetoothProfileServiceConnection$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/bluetooth/IBluetoothProfileServiceConnection$Stub$Proxy;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothProfileServiceConnection$Stub$Proxy;->onServiceDisconnected(Landroid/content/ComponentName;)V
-Landroid/bluetooth/IBluetoothProfileServiceConnection$Stub;
 Landroid/bluetooth/IBluetoothProfileServiceConnection$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothProfileServiceConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothProfileServiceConnection;
 Landroid/bluetooth/IBluetoothProfileServiceConnection$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/bluetooth/IBluetoothProfileServiceConnection$Stub;->TRANSACTION_onServiceConnected:I
 Landroid/bluetooth/IBluetoothProfileServiceConnection$Stub;->TRANSACTION_onServiceDisconnected:I
-Landroid/bluetooth/IBluetoothProfileServiceConnection;
 Landroid/bluetooth/IBluetoothProfileServiceConnection;->onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothProfileServiceConnection;->onServiceDisconnected(Landroid/content/ComponentName;)V
-Landroid/bluetooth/IBluetoothSap$Stub$Proxy;
 Landroid/bluetooth/IBluetoothSap$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothSap$Stub$Proxy;->connect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothSap$Stub$Proxy;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
@@ -12925,7 +12140,6 @@
 Landroid/bluetooth/IBluetoothSap$Stub$Proxy;->isConnected(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothSap$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/bluetooth/IBluetoothSap$Stub$Proxy;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
-Landroid/bluetooth/IBluetoothSap$Stub;
 Landroid/bluetooth/IBluetoothSap$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothSap$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothSap;
 Landroid/bluetooth/IBluetoothSap$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -12939,7 +12153,6 @@
 Landroid/bluetooth/IBluetoothSap$Stub;->TRANSACTION_getState:I
 Landroid/bluetooth/IBluetoothSap$Stub;->TRANSACTION_isConnected:I
 Landroid/bluetooth/IBluetoothSap$Stub;->TRANSACTION_setPriority:I
-Landroid/bluetooth/IBluetoothSap;
 Landroid/bluetooth/IBluetoothSap;->connect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothSap;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothSap;->getClient()Landroid/bluetooth/BluetoothDevice;
@@ -12950,34 +12163,28 @@
 Landroid/bluetooth/IBluetoothSap;->getState()I
 Landroid/bluetooth/IBluetoothSap;->isConnected(Landroid/bluetooth/BluetoothDevice;)Z
 Landroid/bluetooth/IBluetoothSap;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
-Landroid/bluetooth/IBluetoothSocketManager$Stub$Proxy;
 Landroid/bluetooth/IBluetoothSocketManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothSocketManager$Stub$Proxy;->connectSocket(Landroid/bluetooth/BluetoothDevice;ILandroid/os/ParcelUuid;II)Landroid/os/ParcelFileDescriptor;
 Landroid/bluetooth/IBluetoothSocketManager$Stub$Proxy;->createSocketChannel(ILjava/lang/String;Landroid/os/ParcelUuid;II)Landroid/os/ParcelFileDescriptor;
 Landroid/bluetooth/IBluetoothSocketManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/bluetooth/IBluetoothSocketManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/bluetooth/IBluetoothSocketManager$Stub$Proxy;->requestMaximumTxDataLength(Landroid/bluetooth/BluetoothDevice;)V
-Landroid/bluetooth/IBluetoothSocketManager$Stub;
 Landroid/bluetooth/IBluetoothSocketManager$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothSocketManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothSocketManager;
 Landroid/bluetooth/IBluetoothSocketManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/bluetooth/IBluetoothSocketManager$Stub;->TRANSACTION_connectSocket:I
 Landroid/bluetooth/IBluetoothSocketManager$Stub;->TRANSACTION_createSocketChannel:I
 Landroid/bluetooth/IBluetoothSocketManager$Stub;->TRANSACTION_requestMaximumTxDataLength:I
-Landroid/bluetooth/IBluetoothSocketManager;
 Landroid/bluetooth/IBluetoothSocketManager;->connectSocket(Landroid/bluetooth/BluetoothDevice;ILandroid/os/ParcelUuid;II)Landroid/os/ParcelFileDescriptor;
 Landroid/bluetooth/IBluetoothSocketManager;->createSocketChannel(ILjava/lang/String;Landroid/os/ParcelUuid;II)Landroid/os/ParcelFileDescriptor;
 Landroid/bluetooth/IBluetoothSocketManager;->requestMaximumTxDataLength(Landroid/bluetooth/BluetoothDevice;)V
-Landroid/bluetooth/IBluetoothStateChangeCallback$Stub$Proxy;
 Landroid/bluetooth/IBluetoothStateChangeCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothStateChangeCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/bluetooth/IBluetoothStateChangeCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/bluetooth/IBluetoothStateChangeCallback$Stub$Proxy;->onBluetoothStateChange(Z)V
-Landroid/bluetooth/IBluetoothStateChangeCallback$Stub;
 Landroid/bluetooth/IBluetoothStateChangeCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothStateChangeCallback;
 Landroid/bluetooth/IBluetoothStateChangeCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/bluetooth/IBluetoothStateChangeCallback$Stub;->TRANSACTION_onBluetoothStateChange:I
-Landroid/bluetooth/IBluetoothStateChangeCallback;
 Landroid/bluetooth/IBluetoothStateChangeCallback;->onBluetoothStateChange(Z)V
 Landroid/bluetooth/le/AdvertiseCallback;->ADVERTISE_SUCCESS:I
 Landroid/bluetooth/le/AdvertiseData$Builder;->mIncludeDeviceName:Z
@@ -13052,8 +12259,6 @@
 Landroid/bluetooth/le/BluetoothLeAdvertiser;->totalBytes(Landroid/bluetooth/le/AdvertiseData;Z)I
 Landroid/bluetooth/le/BluetoothLeAdvertiser;->wrap(Landroid/bluetooth/le/AdvertisingSetCallback;Landroid/os/Handler;)Landroid/bluetooth/le/IAdvertisingSetCallback;
 Landroid/bluetooth/le/BluetoothLeAdvertiser;->wrapOldCallback(Landroid/bluetooth/le/AdvertiseCallback;Landroid/bluetooth/le/AdvertiseSettings;)Landroid/bluetooth/le/AdvertisingSetCallback;
-Landroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;
-Landroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;-><init>(Landroid/bluetooth/IBluetoothGatt;Ljava/util/List;Landroid/bluetooth/le/ScanSettings;Landroid/os/WorkSource;Landroid/bluetooth/le/ScanCallback;Ljava/util/List;)V
 Landroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;->flushPendingBatchResults()V
 Landroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;->mBluetoothGatt:Landroid/bluetooth/IBluetoothGatt;
 Landroid/bluetooth/le/BluetoothLeScanner$BleScanCallbackWrapper;->mFilters:Ljava/util/List;
@@ -13085,14 +12290,12 @@
 Landroid/bluetooth/le/BluetoothLeScanner;->startScan(Ljava/util/List;Landroid/bluetooth/le/ScanSettings;Landroid/os/WorkSource;Landroid/bluetooth/le/ScanCallback;Landroid/app/PendingIntent;Ljava/util/List;)I
 Landroid/bluetooth/le/BluetoothLeScanner;->TAG:Ljava/lang/String;
 Landroid/bluetooth/le/BluetoothLeScanner;->VDBG:Z
-Landroid/bluetooth/le/BluetoothLeUtils;
 Landroid/bluetooth/le/BluetoothLeUtils;-><init>()V
 Landroid/bluetooth/le/BluetoothLeUtils;->checkAdapterStateOn(Landroid/bluetooth/BluetoothAdapter;)V
 Landroid/bluetooth/le/BluetoothLeUtils;->equals(Landroid/util/SparseArray;Landroid/util/SparseArray;)Z
 Landroid/bluetooth/le/BluetoothLeUtils;->equals(Ljava/util/Map;Ljava/util/Map;)Z
 Landroid/bluetooth/le/BluetoothLeUtils;->toString(Landroid/util/SparseArray;)Ljava/lang/String;
 Landroid/bluetooth/le/BluetoothLeUtils;->toString(Ljava/util/Map;)Ljava/lang/String;
-Landroid/bluetooth/le/IAdvertisingSetCallback$Stub$Proxy;
 Landroid/bluetooth/le/IAdvertisingSetCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/le/IAdvertisingSetCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/bluetooth/le/IAdvertisingSetCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -13106,7 +12309,6 @@
 Landroid/bluetooth/le/IAdvertisingSetCallback$Stub$Proxy;->onPeriodicAdvertisingEnabled(IZI)V
 Landroid/bluetooth/le/IAdvertisingSetCallback$Stub$Proxy;->onPeriodicAdvertisingParametersUpdated(II)V
 Landroid/bluetooth/le/IAdvertisingSetCallback$Stub$Proxy;->onScanResponseDataSet(II)V
-Landroid/bluetooth/le/IAdvertisingSetCallback$Stub;
 Landroid/bluetooth/le/IAdvertisingSetCallback$Stub;-><init>()V
 Landroid/bluetooth/le/IAdvertisingSetCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/le/IAdvertisingSetCallback;
 Landroid/bluetooth/le/IAdvertisingSetCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -13120,7 +12322,6 @@
 Landroid/bluetooth/le/IAdvertisingSetCallback$Stub;->TRANSACTION_onPeriodicAdvertisingEnabled:I
 Landroid/bluetooth/le/IAdvertisingSetCallback$Stub;->TRANSACTION_onPeriodicAdvertisingParametersUpdated:I
 Landroid/bluetooth/le/IAdvertisingSetCallback$Stub;->TRANSACTION_onScanResponseDataSet:I
-Landroid/bluetooth/le/IAdvertisingSetCallback;
 Landroid/bluetooth/le/IAdvertisingSetCallback;->onAdvertisingDataSet(II)V
 Landroid/bluetooth/le/IAdvertisingSetCallback;->onAdvertisingEnabled(IZI)V
 Landroid/bluetooth/le/IAdvertisingSetCallback;->onAdvertisingParametersUpdated(III)V
@@ -13131,25 +12332,21 @@
 Landroid/bluetooth/le/IAdvertisingSetCallback;->onPeriodicAdvertisingEnabled(IZI)V
 Landroid/bluetooth/le/IAdvertisingSetCallback;->onPeriodicAdvertisingParametersUpdated(II)V
 Landroid/bluetooth/le/IAdvertisingSetCallback;->onScanResponseDataSet(II)V
-Landroid/bluetooth/le/IPeriodicAdvertisingCallback$Stub$Proxy;
 Landroid/bluetooth/le/IPeriodicAdvertisingCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/le/IPeriodicAdvertisingCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/bluetooth/le/IPeriodicAdvertisingCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/bluetooth/le/IPeriodicAdvertisingCallback$Stub$Proxy;->onPeriodicAdvertisingReport(Landroid/bluetooth/le/PeriodicAdvertisingReport;)V
 Landroid/bluetooth/le/IPeriodicAdvertisingCallback$Stub$Proxy;->onSyncEstablished(ILandroid/bluetooth/BluetoothDevice;IIII)V
 Landroid/bluetooth/le/IPeriodicAdvertisingCallback$Stub$Proxy;->onSyncLost(I)V
-Landroid/bluetooth/le/IPeriodicAdvertisingCallback$Stub;
 Landroid/bluetooth/le/IPeriodicAdvertisingCallback$Stub;-><init>()V
 Landroid/bluetooth/le/IPeriodicAdvertisingCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/le/IPeriodicAdvertisingCallback;
 Landroid/bluetooth/le/IPeriodicAdvertisingCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/bluetooth/le/IPeriodicAdvertisingCallback$Stub;->TRANSACTION_onPeriodicAdvertisingReport:I
 Landroid/bluetooth/le/IPeriodicAdvertisingCallback$Stub;->TRANSACTION_onSyncEstablished:I
 Landroid/bluetooth/le/IPeriodicAdvertisingCallback$Stub;->TRANSACTION_onSyncLost:I
-Landroid/bluetooth/le/IPeriodicAdvertisingCallback;
 Landroid/bluetooth/le/IPeriodicAdvertisingCallback;->onPeriodicAdvertisingReport(Landroid/bluetooth/le/PeriodicAdvertisingReport;)V
 Landroid/bluetooth/le/IPeriodicAdvertisingCallback;->onSyncEstablished(ILandroid/bluetooth/BluetoothDevice;IIII)V
 Landroid/bluetooth/le/IPeriodicAdvertisingCallback;->onSyncLost(I)V
-Landroid/bluetooth/le/IScannerCallback$Stub$Proxy;
 Landroid/bluetooth/le/IScannerCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/le/IScannerCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/bluetooth/le/IScannerCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -13158,7 +12355,6 @@
 Landroid/bluetooth/le/IScannerCallback$Stub$Proxy;->onScanManagerErrorCallback(I)V
 Landroid/bluetooth/le/IScannerCallback$Stub$Proxy;->onScannerRegistered(II)V
 Landroid/bluetooth/le/IScannerCallback$Stub$Proxy;->onScanResult(Landroid/bluetooth/le/ScanResult;)V
-Landroid/bluetooth/le/IScannerCallback$Stub;
 Landroid/bluetooth/le/IScannerCallback$Stub;-><init>()V
 Landroid/bluetooth/le/IScannerCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/le/IScannerCallback;
 Landroid/bluetooth/le/IScannerCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -13167,13 +12363,11 @@
 Landroid/bluetooth/le/IScannerCallback$Stub;->TRANSACTION_onScanManagerErrorCallback:I
 Landroid/bluetooth/le/IScannerCallback$Stub;->TRANSACTION_onScannerRegistered:I
 Landroid/bluetooth/le/IScannerCallback$Stub;->TRANSACTION_onScanResult:I
-Landroid/bluetooth/le/IScannerCallback;
 Landroid/bluetooth/le/IScannerCallback;->onBatchScanResults(Ljava/util/List;)V
 Landroid/bluetooth/le/IScannerCallback;->onFoundOrLost(ZLandroid/bluetooth/le/ScanResult;)V
 Landroid/bluetooth/le/IScannerCallback;->onScanManagerErrorCallback(I)V
 Landroid/bluetooth/le/IScannerCallback;->onScannerRegistered(II)V
 Landroid/bluetooth/le/IScannerCallback;->onScanResult(Landroid/bluetooth/le/ScanResult;)V
-Landroid/bluetooth/le/PeriodicAdvertisingCallback;
 Landroid/bluetooth/le/PeriodicAdvertisingCallback;-><init>()V
 Landroid/bluetooth/le/PeriodicAdvertisingCallback;->onPeriodicAdvertisingReport(Landroid/bluetooth/le/PeriodicAdvertisingReport;)V
 Landroid/bluetooth/le/PeriodicAdvertisingCallback;->onSyncEstablished(ILandroid/bluetooth/BluetoothDevice;IIII)V
@@ -13181,7 +12375,6 @@
 Landroid/bluetooth/le/PeriodicAdvertisingCallback;->SYNC_NO_RESOURCES:I
 Landroid/bluetooth/le/PeriodicAdvertisingCallback;->SYNC_NO_RESPONSE:I
 Landroid/bluetooth/le/PeriodicAdvertisingCallback;->SYNC_SUCCESS:I
-Landroid/bluetooth/le/PeriodicAdvertisingManager;
 Landroid/bluetooth/le/PeriodicAdvertisingManager;-><init>(Landroid/bluetooth/IBluetoothManager;)V
 Landroid/bluetooth/le/PeriodicAdvertisingManager;->mBluetoothAdapter:Landroid/bluetooth/BluetoothAdapter;
 Landroid/bluetooth/le/PeriodicAdvertisingManager;->mBluetoothManager:Landroid/bluetooth/IBluetoothManager;
@@ -13204,7 +12397,6 @@
 Landroid/bluetooth/le/PeriodicAdvertisingParameters;->INTERVAL_MIN:I
 Landroid/bluetooth/le/PeriodicAdvertisingParameters;->mIncludeTxPower:Z
 Landroid/bluetooth/le/PeriodicAdvertisingParameters;->mInterval:I
-Landroid/bluetooth/le/PeriodicAdvertisingReport;
 Landroid/bluetooth/le/PeriodicAdvertisingReport;-><init>(IIIILandroid/bluetooth/le/ScanRecord;)V
 Landroid/bluetooth/le/PeriodicAdvertisingReport;-><init>(Landroid/os/Parcel;)V
 Landroid/bluetooth/le/PeriodicAdvertisingReport;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -13319,7 +12511,6 @@
 Landroid/bluetooth/le/ScanSettings;->mScanResultType:I
 Landroid/bluetooth/le/TruncatedFilter;->mFilter:Landroid/bluetooth/le/ScanFilter;
 Landroid/bluetooth/le/TruncatedFilter;->mStorageDescriptors:Ljava/util/List;
-Landroid/bluetooth/OobData;
 Landroid/bluetooth/OobData;-><init>()V
 Landroid/bluetooth/OobData;-><init>(Landroid/os/Parcel;)V
 Landroid/bluetooth/OobData;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -13335,13 +12526,11 @@
 Landroid/bluetooth/OobData;->setLeSecureConnectionsConfirmation([B)V
 Landroid/bluetooth/OobData;->setLeSecureConnectionsRandom([B)V
 Landroid/bluetooth/OobData;->setSecurityManagerTk([B)V
-Landroid/bluetooth/SdpMasRecord$MessageType;
 Landroid/bluetooth/SdpMasRecord$MessageType;-><init>()V
 Landroid/bluetooth/SdpMasRecord$MessageType;->EMAIL:I
 Landroid/bluetooth/SdpMasRecord$MessageType;->MMS:I
 Landroid/bluetooth/SdpMasRecord$MessageType;->SMS_CDMA:I
 Landroid/bluetooth/SdpMasRecord$MessageType;->SMS_GSM:I
-Landroid/bluetooth/SdpMasRecord;
 Landroid/bluetooth/SdpMasRecord;-><init>(IIIIIILjava/lang/String;)V
 Landroid/bluetooth/SdpMasRecord;-><init>(Landroid/os/Parcel;)V
 Landroid/bluetooth/SdpMasRecord;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -13360,7 +12549,6 @@
 Landroid/bluetooth/SdpMasRecord;->msgSupported(I)Z
 Landroid/bluetooth/SdpMasRecord;->mSupportedFeatures:I
 Landroid/bluetooth/SdpMasRecord;->mSupportedMessageTypes:I
-Landroid/bluetooth/SdpMnsRecord;
 Landroid/bluetooth/SdpMnsRecord;-><init>(IIIILjava/lang/String;)V
 Landroid/bluetooth/SdpMnsRecord;-><init>(Landroid/os/Parcel;)V
 Landroid/bluetooth/SdpMnsRecord;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -13374,7 +12562,6 @@
 Landroid/bluetooth/SdpMnsRecord;->mRfcommChannelNumber:I
 Landroid/bluetooth/SdpMnsRecord;->mServiceName:Ljava/lang/String;
 Landroid/bluetooth/SdpMnsRecord;->mSupportedFeatures:I
-Landroid/bluetooth/SdpOppOpsRecord;
 Landroid/bluetooth/SdpOppOpsRecord;-><init>(Landroid/os/Parcel;)V
 Landroid/bluetooth/SdpOppOpsRecord;-><init>(Ljava/lang/String;III[B)V
 Landroid/bluetooth/SdpOppOpsRecord;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -13388,7 +12575,6 @@
 Landroid/bluetooth/SdpOppOpsRecord;->mProfileVersion:I
 Landroid/bluetooth/SdpOppOpsRecord;->mRfcommChannel:I
 Landroid/bluetooth/SdpOppOpsRecord;->mServiceName:Ljava/lang/String;
-Landroid/bluetooth/SdpPseRecord;
 Landroid/bluetooth/SdpPseRecord;-><init>(IIIIILjava/lang/String;)V
 Landroid/bluetooth/SdpPseRecord;-><init>(Landroid/os/Parcel;)V
 Landroid/bluetooth/SdpPseRecord;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -13404,7 +12590,6 @@
 Landroid/bluetooth/SdpPseRecord;->mServiceName:Ljava/lang/String;
 Landroid/bluetooth/SdpPseRecord;->mSupportedFeatures:I
 Landroid/bluetooth/SdpPseRecord;->mSupportedRepositories:I
-Landroid/bluetooth/SdpRecord;
 Landroid/bluetooth/SdpRecord;-><init>(I[B)V
 Landroid/bluetooth/SdpRecord;-><init>(Landroid/os/Parcel;)V
 Landroid/bluetooth/SdpRecord;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -13412,7 +12597,6 @@
 Landroid/bluetooth/SdpRecord;->getRawSize()I
 Landroid/bluetooth/SdpRecord;->mRawData:[B
 Landroid/bluetooth/SdpRecord;->mRawSize:I
-Landroid/bluetooth/SdpSapsRecord;
 Landroid/bluetooth/SdpSapsRecord;-><init>(IILjava/lang/String;)V
 Landroid/bluetooth/SdpSapsRecord;-><init>(Landroid/os/Parcel;)V
 Landroid/bluetooth/SdpSapsRecord;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -13422,7 +12606,6 @@
 Landroid/bluetooth/SdpSapsRecord;->mProfileVersion:I
 Landroid/bluetooth/SdpSapsRecord;->mRfcommChannelNumber:I
 Landroid/bluetooth/SdpSapsRecord;->mServiceName:Ljava/lang/String;
-Landroid/bluetooth/UidTraffic;
 Landroid/bluetooth/UidTraffic;-><init>(I)V
 Landroid/bluetooth/UidTraffic;-><init>(IJJ)V
 Landroid/bluetooth/UidTraffic;-><init>(Landroid/os/Parcel;)V
@@ -13460,7 +12643,6 @@
 Landroid/companion/BluetoothDeviceFilter;->mServiceUuidMasks:Ljava/util/List;
 Landroid/companion/BluetoothDeviceFilter;->mServiceUuids:Ljava/util/List;
 Landroid/companion/BluetoothDeviceFilter;->readUuids(Landroid/os/Parcel;)Ljava/util/List;
-Landroid/companion/BluetoothDeviceFilterUtils;
 Landroid/companion/BluetoothDeviceFilterUtils;-><init>()V
 Landroid/companion/BluetoothDeviceFilterUtils;->DEBUG:Z
 Landroid/companion/BluetoothDeviceFilterUtils;->debugLogMatchResult(ZLandroid/bluetooth/BluetoothDevice;Ljava/lang/Object;)V
@@ -13515,8 +12697,6 @@
 Landroid/companion/BluetoothLeDeviceFilter;->mRenameSuffix:Ljava/lang/String;
 Landroid/companion/BluetoothLeDeviceFilter;->mScanFilter:Landroid/bluetooth/le/ScanFilter;
 Landroid/companion/BluetoothLeDeviceFilter;->RENAME_PREFIX_LENGTH_LIMIT:I
-Landroid/companion/CompanionDeviceManager$CallbackProxy;
-Landroid/companion/CompanionDeviceManager$CallbackProxy;-><init>(Landroid/companion/AssociationRequest;Landroid/companion/CompanionDeviceManager$Callback;Landroid/os/Handler;)V
 Landroid/companion/CompanionDeviceManager$CallbackProxy;->lockAndPost(Ljava/util/function/BiConsumer;Ljava/lang/Object;)V
 Landroid/companion/CompanionDeviceManager$CallbackProxy;->mCallback:Landroid/companion/CompanionDeviceManager$Callback;
 Landroid/companion/CompanionDeviceManager$CallbackProxy;->mHandler:Landroid/os/Handler;
@@ -13533,37 +12713,29 @@
 Landroid/companion/CompanionDeviceManager;->LOG_TAG:Ljava/lang/String;
 Landroid/companion/CompanionDeviceManager;->mContext:Landroid/content/Context;
 Landroid/companion/CompanionDeviceManager;->mService:Landroid/companion/ICompanionDeviceManager;
-Landroid/companion/DeviceFilter$MediumType;
 Landroid/companion/DeviceFilter;->getMediumType()I
 Landroid/companion/DeviceFilter;->matches(Landroid/companion/DeviceFilter;Landroid/os/Parcelable;)Z
 Landroid/companion/DeviceFilter;->MEDIUM_TYPE_BLUETOOTH:I
 Landroid/companion/DeviceFilter;->MEDIUM_TYPE_BLUETOOTH_LE:I
 Landroid/companion/DeviceFilter;->MEDIUM_TYPE_WIFI:I
-Landroid/companion/ICompanionDeviceDiscoveryService$Stub$Proxy;
 Landroid/companion/ICompanionDeviceDiscoveryService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/companion/ICompanionDeviceDiscoveryService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/companion/ICompanionDeviceDiscoveryService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/companion/ICompanionDeviceDiscoveryService$Stub$Proxy;->startDiscovery(Landroid/companion/AssociationRequest;Ljava/lang/String;Landroid/companion/IFindDeviceCallback;Landroid/companion/ICompanionDeviceDiscoveryServiceCallback;)V
-Landroid/companion/ICompanionDeviceDiscoveryService$Stub;
 Landroid/companion/ICompanionDeviceDiscoveryService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/companion/ICompanionDeviceDiscoveryService;
 Landroid/companion/ICompanionDeviceDiscoveryService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/companion/ICompanionDeviceDiscoveryService$Stub;->TRANSACTION_startDiscovery:I
-Landroid/companion/ICompanionDeviceDiscoveryService;
 Landroid/companion/ICompanionDeviceDiscoveryService;->startDiscovery(Landroid/companion/AssociationRequest;Ljava/lang/String;Landroid/companion/IFindDeviceCallback;Landroid/companion/ICompanionDeviceDiscoveryServiceCallback;)V
-Landroid/companion/ICompanionDeviceDiscoveryServiceCallback$Stub$Proxy;
 Landroid/companion/ICompanionDeviceDiscoveryServiceCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/companion/ICompanionDeviceDiscoveryServiceCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/companion/ICompanionDeviceDiscoveryServiceCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/companion/ICompanionDeviceDiscoveryServiceCallback$Stub$Proxy;->onDeviceSelected(Ljava/lang/String;ILjava/lang/String;)V
 Landroid/companion/ICompanionDeviceDiscoveryServiceCallback$Stub$Proxy;->onDeviceSelectionCancel()V
-Landroid/companion/ICompanionDeviceDiscoveryServiceCallback$Stub;
 Landroid/companion/ICompanionDeviceDiscoveryServiceCallback$Stub;-><init>()V
 Landroid/companion/ICompanionDeviceDiscoveryServiceCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/companion/ICompanionDeviceDiscoveryServiceCallback;
 Landroid/companion/ICompanionDeviceDiscoveryServiceCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/companion/ICompanionDeviceDiscoveryServiceCallback$Stub;->TRANSACTION_onDeviceSelected:I
 Landroid/companion/ICompanionDeviceDiscoveryServiceCallback$Stub;->TRANSACTION_onDeviceSelectionCancel:I
-Landroid/companion/ICompanionDeviceDiscoveryServiceCallback;
-Landroid/companion/ICompanionDeviceManager$Stub$Proxy;
 Landroid/companion/ICompanionDeviceManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/companion/ICompanionDeviceManager$Stub$Proxy;->associate(Landroid/companion/AssociationRequest;Landroid/companion/IFindDeviceCallback;Ljava/lang/String;)V
 Landroid/companion/ICompanionDeviceManager$Stub$Proxy;->disassociate(Ljava/lang/String;Ljava/lang/String;)V
@@ -13573,7 +12745,6 @@
 Landroid/companion/ICompanionDeviceManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/companion/ICompanionDeviceManager$Stub$Proxy;->requestNotificationAccess(Landroid/content/ComponentName;)Landroid/app/PendingIntent;
 Landroid/companion/ICompanionDeviceManager$Stub$Proxy;->stopScan(Landroid/companion/AssociationRequest;Landroid/companion/IFindDeviceCallback;Ljava/lang/String;)V
-Landroid/companion/ICompanionDeviceManager$Stub;
 Landroid/companion/ICompanionDeviceManager$Stub;-><init>()V
 Landroid/companion/ICompanionDeviceManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/companion/ICompanionDeviceManager;
 Landroid/companion/ICompanionDeviceManager$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -13583,26 +12754,22 @@
 Landroid/companion/ICompanionDeviceManager$Stub;->TRANSACTION_hasNotificationAccess:I
 Landroid/companion/ICompanionDeviceManager$Stub;->TRANSACTION_requestNotificationAccess:I
 Landroid/companion/ICompanionDeviceManager$Stub;->TRANSACTION_stopScan:I
-Landroid/companion/ICompanionDeviceManager;
 Landroid/companion/ICompanionDeviceManager;->associate(Landroid/companion/AssociationRequest;Landroid/companion/IFindDeviceCallback;Ljava/lang/String;)V
 Landroid/companion/ICompanionDeviceManager;->disassociate(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/companion/ICompanionDeviceManager;->getAssociations(Ljava/lang/String;I)Ljava/util/List;
 Landroid/companion/ICompanionDeviceManager;->hasNotificationAccess(Landroid/content/ComponentName;)Z
 Landroid/companion/ICompanionDeviceManager;->requestNotificationAccess(Landroid/content/ComponentName;)Landroid/app/PendingIntent;
 Landroid/companion/ICompanionDeviceManager;->stopScan(Landroid/companion/AssociationRequest;Landroid/companion/IFindDeviceCallback;Ljava/lang/String;)V
-Landroid/companion/IFindDeviceCallback$Stub$Proxy;
 Landroid/companion/IFindDeviceCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/companion/IFindDeviceCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/companion/IFindDeviceCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/companion/IFindDeviceCallback$Stub$Proxy;->onFailure(Ljava/lang/CharSequence;)V
 Landroid/companion/IFindDeviceCallback$Stub$Proxy;->onSuccess(Landroid/app/PendingIntent;)V
-Landroid/companion/IFindDeviceCallback$Stub;
 Landroid/companion/IFindDeviceCallback$Stub;-><init>()V
 Landroid/companion/IFindDeviceCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/companion/IFindDeviceCallback;
 Landroid/companion/IFindDeviceCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/companion/IFindDeviceCallback$Stub;->TRANSACTION_onFailure:I
 Landroid/companion/IFindDeviceCallback$Stub;->TRANSACTION_onSuccess:I
-Landroid/companion/IFindDeviceCallback;
 Landroid/companion/IFindDeviceCallback;->onFailure(Ljava/lang/CharSequence;)V
 Landroid/companion/WifiDeviceFilter$Builder;->mNamePattern:Ljava/util/regex/Pattern;
 Landroid/companion/WifiDeviceFilter;-><init>(Landroid/os/Parcel;)V
@@ -13612,13 +12779,9 @@
 Landroid/companion/WifiDeviceFilter;->getNamePattern()Ljava/util/regex/Pattern;
 Landroid/companion/WifiDeviceFilter;->matches(Landroid/net/wifi/ScanResult;)Z
 Landroid/companion/WifiDeviceFilter;->mNamePattern:Ljava/util/regex/Pattern;
-Landroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;
-Landroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;-><init>()V
 Landroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;->cancelSync(Landroid/content/ISyncContext;)V
 Landroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;->onUnsyncableAccount(Landroid/content/ISyncAdapterUnsyncableAccountCallback;)V
 Landroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;->startSync(Landroid/content/ISyncContext;Ljava/lang/String;Landroid/accounts/Account;Landroid/os/Bundle;)V
-Landroid/content/AbstractThreadedSyncAdapter$SyncThread;
-Landroid/content/AbstractThreadedSyncAdapter$SyncThread;-><init>(Ljava/lang/String;Landroid/content/SyncContext;Ljava/lang/String;Landroid/accounts/Account;Landroid/os/Bundle;)V
 Landroid/content/AbstractThreadedSyncAdapter$SyncThread;->isCanceled()Z
 Landroid/content/AbstractThreadedSyncAdapter$SyncThread;->mAccount:Landroid/accounts/Account;
 Landroid/content/AbstractThreadedSyncAdapter$SyncThread;->mAuthority:Ljava/lang/String;
@@ -13636,7 +12799,6 @@
 Landroid/content/AbstractThreadedSyncAdapter;->mSyncThreads:Ljava/util/HashMap;
 Landroid/content/AbstractThreadedSyncAdapter;->TAG:Ljava/lang/String;
 Landroid/content/AbstractThreadedSyncAdapter;->toSyncKey(Landroid/accounts/Account;)Landroid/accounts/Account;
-Landroid/content/ActivityInfoProto;
 Landroid/content/ActivityInfoProto;-><init>()V
 Landroid/content/ActivityInfoProto;->SCREEN_ORIENTATION_BEHIND:I
 Landroid/content/ActivityInfoProto;->SCREEN_ORIENTATION_FULL_SENSOR:I
@@ -13664,9 +12826,6 @@
 Landroid/content/AsyncQueryHandler;->mWorkerThreadHandler:Landroid/os/Handler;
 Landroid/content/AsyncQueryHandler;->sLooper:Landroid/os/Looper;
 Landroid/content/AsyncQueryHandler;->TAG:Ljava/lang/String;
-Landroid/content/AsyncTaskLoader$LoadTask;
-Landroid/content/AsyncTaskLoader$LoadTask;-><init>()V
-Landroid/content/AsyncTaskLoader$LoadTask;->doInBackground([[Ljava/lang/Void;)Ljava/lang/Object;
 Landroid/content/AsyncTaskLoader$LoadTask;->mDone:Ljava/util/concurrent/CountDownLatch;
 Landroid/content/AsyncTaskLoader$LoadTask;->onCancelled(Ljava/lang/Object;)V
 Landroid/content/AsyncTaskLoader$LoadTask;->onPostExecute(Ljava/lang/Object;)V
@@ -13683,7 +12842,6 @@
 Landroid/content/AsyncTaskLoader;->mTask:Landroid/content/AsyncTaskLoader$LoadTask;
 Landroid/content/AsyncTaskLoader;->mUpdateThrottle:J
 Landroid/content/AsyncTaskLoader;->TAG:Ljava/lang/String;
-Landroid/content/AuthorityEntryProto;
 Landroid/content/AuthorityEntryProto;-><init>()V
 Landroid/content/AuthorityEntryProto;->HOST:J
 Landroid/content/AuthorityEntryProto;->PORT:J
@@ -13733,18 +12891,13 @@
 Landroid/content/ClipData;->toShortString(Ljava/lang/StringBuilder;)V
 Landroid/content/ClipData;->toShortStringShortItems(Ljava/lang/StringBuilder;Z)V
 Landroid/content/ClipData;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/content/ClipDataProto$Icon;
-Landroid/content/ClipDataProto$Icon;-><init>()V
 Landroid/content/ClipDataProto$Icon;->HEIGHT:J
 Landroid/content/ClipDataProto$Icon;->WIDTH:J
-Landroid/content/ClipDataProto$Item;
-Landroid/content/ClipDataProto$Item;-><init>()V
 Landroid/content/ClipDataProto$Item;->HTML_TEXT:J
 Landroid/content/ClipDataProto$Item;->INTENT:J
 Landroid/content/ClipDataProto$Item;->NOTHING:J
 Landroid/content/ClipDataProto$Item;->TEXT:J
 Landroid/content/ClipDataProto$Item;->URI:J
-Landroid/content/ClipDataProto;
 Landroid/content/ClipDataProto;-><init>()V
 Landroid/content/ClipDataProto;->DESCRIPTION:J
 Landroid/content/ClipDataProto;->ICON:J
@@ -13762,14 +12915,11 @@
 Landroid/content/ClipDescription;->toShortStringTypesOnly(Ljava/lang/StringBuilder;)Z
 Landroid/content/ClipDescription;->validate()V
 Landroid/content/ClipDescription;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/content/ClipDescriptionProto;
 Landroid/content/ClipDescriptionProto;-><init>()V
 Landroid/content/ClipDescriptionProto;->EXTRAS:J
 Landroid/content/ClipDescriptionProto;->LABEL:J
 Landroid/content/ClipDescriptionProto;->MIME_TYPES:J
 Landroid/content/ClipDescriptionProto;->TIMESTAMP_MS:J
-Landroid/content/ComponentCallbacks2$TrimMemoryLevel;
-Landroid/content/ComponentName$WithComponentName;
 Landroid/content/ComponentName$WithComponentName;->getComponentName()Landroid/content/ComponentName;
 Landroid/content/ComponentName;-><init>(Ljava/lang/String;Landroid/os/Parcel;)V
 Landroid/content/ComponentName;->appendShortClassName(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V
@@ -13778,11 +12928,9 @@
 Landroid/content/ComponentName;->mPackage:Ljava/lang/String;
 Landroid/content/ComponentName;->printShortClassName(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/content/ComponentName;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/content/ComponentNameProto;
 Landroid/content/ComponentNameProto;-><init>()V
 Landroid/content/ComponentNameProto;->CLASS_NAME:J
 Landroid/content/ComponentNameProto;->PACKAGE_NAME:J
-Landroid/content/ConfigurationProto;
 Landroid/content/ConfigurationProto;-><init>()V
 Landroid/content/ConfigurationProto;->COLOR_MODE:J
 Landroid/content/ConfigurationProto;->DENSITY_DPI:J
@@ -13803,11 +12951,8 @@
 Landroid/content/ConfigurationProto;->TOUCHSCREEN:J
 Landroid/content/ConfigurationProto;->UI_MODE:J
 Landroid/content/ConfigurationProto;->WINDOW_CONFIGURATION:J
-Landroid/content/ContentInsertHandler;
 Landroid/content/ContentInsertHandler;->insert(Landroid/content/ContentResolver;Ljava/io/InputStream;)V
 Landroid/content/ContentInsertHandler;->insert(Landroid/content/ContentResolver;Ljava/lang/String;)V
-Landroid/content/ContentProvider$Transport;
-Landroid/content/ContentProvider$Transport;-><init>()V
 Landroid/content/ContentProvider$Transport;->applyBatch(Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;
 Landroid/content/ContentProvider$Transport;->bulkInsert(Ljava/lang/String;Landroid/net/Uri;[Landroid/content/ContentValues;)I
 Landroid/content/ContentProvider$Transport;->call(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
@@ -13858,11 +13003,7 @@
 Landroid/content/ContentProvider;->TAG:Ljava/lang/String;
 Landroid/content/ContentProvider;->uriHasUserId(Landroid/net/Uri;)Z
 Landroid/content/ContentProvider;->validateIncomingUri(Landroid/net/Uri;)V
-Landroid/content/ContentProviderClient$CursorWrapperInner;
-Landroid/content/ContentProviderClient$CursorWrapperInner;-><init>(Landroid/database/Cursor;)V
 Landroid/content/ContentProviderClient$CursorWrapperInner;->mCloseGuard:Ldalvik/system/CloseGuard;
-Landroid/content/ContentProviderClient$NotRespondingRunnable;
-Landroid/content/ContentProviderClient$NotRespondingRunnable;-><init>()V
 Landroid/content/ContentProviderClient;-><init>(Landroid/content/ContentResolver;Landroid/content/IContentProvider;Z)V
 Landroid/content/ContentProviderClient;->afterRemote()V
 Landroid/content/ContentProviderClient;->beforeRemote()V
@@ -13877,7 +13018,6 @@
 Landroid/content/ContentProviderClient;->sAnrHandler:Landroid/os/Handler;
 Landroid/content/ContentProviderClient;->setDetectNotResponding(J)V
 Landroid/content/ContentProviderClient;->TAG:Ljava/lang/String;
-Landroid/content/ContentProviderNative;
 Landroid/content/ContentProviderNative;-><init>()V
 Landroid/content/ContentProviderNative;->getProviderName()Ljava/lang/String;
 Landroid/content/ContentProviderOperation$Builder;-><init>(ILandroid/net/Uri;)V
@@ -13913,22 +13053,12 @@
 Landroid/content/ContentQueryMap;->mKeyColumn:I
 Landroid/content/ContentQueryMap;->mValues:Ljava/util/Map;
 Landroid/content/ContentQueryMap;->readCursorIntoCache(Landroid/database/Cursor;)V
-Landroid/content/ContentResolver$CursorWrapperInner;
-Landroid/content/ContentResolver$CursorWrapperInner;-><init>(Landroid/database/Cursor;Landroid/content/IContentProvider;)V
 Landroid/content/ContentResolver$CursorWrapperInner;->mCloseGuard:Ldalvik/system/CloseGuard;
 Landroid/content/ContentResolver$CursorWrapperInner;->mContentProvider:Landroid/content/IContentProvider;
 Landroid/content/ContentResolver$CursorWrapperInner;->mProviderReleased:Ljava/util/concurrent/atomic/AtomicBoolean;
-Landroid/content/ContentResolver$NotifyFlags;
-Landroid/content/ContentResolver$OpenResourceIdResult;
-Landroid/content/ContentResolver$OpenResourceIdResult;-><init>()V
-Landroid/content/ContentResolver$ParcelFileDescriptorInner;
-Landroid/content/ContentResolver$ParcelFileDescriptorInner;-><init>(Landroid/os/ParcelFileDescriptor;Landroid/content/IContentProvider;)V
 Landroid/content/ContentResolver$ParcelFileDescriptorInner;->mContentProvider:Landroid/content/IContentProvider;
 Landroid/content/ContentResolver$ParcelFileDescriptorInner;->mProviderReleased:Ljava/util/concurrent/atomic/AtomicBoolean;
 Landroid/content/ContentResolver$ParcelFileDescriptorInner;->releaseResources()V
-Landroid/content/ContentResolver$QueryCollator;
-Landroid/content/ContentResolver$SortDirection;
-Landroid/content/ContentResolver$SyncExemption;
 Landroid/content/ContentResolver;->acquireUnstableProvider(Landroid/net/Uri;)Landroid/content/IContentProvider;
 Landroid/content/ContentResolver;->ACTION_SYNC_CONN_STATUS_CHANGED:Landroid/content/Intent;
 Landroid/content/ContentResolver;->appNotRespondingViaProvider(Landroid/content/IContentProvider;)V
@@ -13982,13 +13112,6 @@
 Landroid/content/ContentResolver;->SYNC_VIRTUAL_EXTRAS_EXEMPTION_FLAG:Ljava/lang/String;
 Landroid/content/ContentResolver;->TAG:Ljava/lang/String;
 Landroid/content/ContentValues;->isEmpty()Z
-Landroid/content/Context$BindServiceFlags;
-Landroid/content/Context$CreatePackageOptions;
-Landroid/content/Context$DatabaseMode;
-Landroid/content/Context$FileMode;
-Landroid/content/Context$PreferencesMode;
-Landroid/content/Context$RegisterReceiverFlags;
-Landroid/content/Context$ServiceName;
 Landroid/content/Context;->assertRuntimeOverlayThemable()V
 Landroid/content/Context;->AUTOFILL_MANAGER_SERVICE:Ljava/lang/String;
 Landroid/content/Context;->BIND_ALLOW_INSTANT:I
@@ -14071,7 +13194,6 @@
 Landroid/content/ContextWrapper;->startActivityForResult(Ljava/lang/String;Landroid/content/Intent;ILandroid/os/Bundle;)V
 Landroid/content/ContextWrapper;->stopServiceAsUser(Landroid/content/Intent;Landroid/os/UserHandle;)Z
 Landroid/content/ContextWrapper;->updateDisplay(I)V
-Landroid/content/CursorEntityIterator;
 Landroid/content/CursorEntityIterator;->getEntityAndIncrementCursor(Landroid/database/Cursor;)Landroid/content/Entity;
 Landroid/content/CursorEntityIterator;->mCursor:Landroid/database/Cursor;
 Landroid/content/CursorEntityIterator;->mIsClosed:Z
@@ -14081,7 +13203,6 @@
 Landroid/content/CursorLoader;->mSelectionArgs:[Ljava/lang/String;
 Landroid/content/CursorLoader;->mSortOrder:Ljava/lang/String;
 Landroid/content/CursorLoader;->mUri:Landroid/net/Uri;
-Landroid/content/DefaultDataHandler;
 Landroid/content/DefaultDataHandler;-><init>()V
 Landroid/content/DefaultDataHandler;->ARG:Ljava/lang/String;
 Landroid/content/DefaultDataHandler;->COL:Ljava/lang/String;
@@ -14097,7 +13218,6 @@
 Landroid/content/DefaultDataHandler;->ROW:Ljava/lang/String;
 Landroid/content/DefaultDataHandler;->SELECT:Ljava/lang/String;
 Landroid/content/DefaultDataHandler;->URI_STR:Ljava/lang/String;
-Landroid/content/DeviceConfigurationProto;
 Landroid/content/DeviceConfigurationProto;-><init>()V
 Landroid/content/DeviceConfigurationProto;->CPU_ARCHITECTURES:J
 Landroid/content/DeviceConfigurationProto;->FEATURES:J
@@ -14111,7 +13231,6 @@
 Landroid/content/DeviceConfigurationProto;->STABLE_SCREEN_HEIGHT_PX:J
 Landroid/content/DeviceConfigurationProto;->STABLE_SCREEN_WIDTH_PX:J
 Landroid/content/DeviceConfigurationProto;->TOTAL_RAM:J
-Landroid/content/EventLogTags;
 Landroid/content/EventLogTags;-><init>()V
 Landroid/content/EventLogTags;->BINDER_SAMPLE:I
 Landroid/content/EventLogTags;->CONTENT_QUERY_SAMPLE:I
@@ -14119,11 +13238,9 @@
 Landroid/content/EventLogTags;->writeBinderSample(Ljava/lang/String;IILjava/lang/String;I)V
 Landroid/content/EventLogTags;->writeContentQuerySample(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;I)V
 Landroid/content/EventLogTags;->writeContentUpdateSample(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;I)V
-Landroid/content/GlobalConfigurationProto;
 Landroid/content/GlobalConfigurationProto;-><init>()V
 Landroid/content/GlobalConfigurationProto;->DEVICE:J
 Landroid/content/GlobalConfigurationProto;->RESOURCES:J
-Landroid/content/IClipboard$Stub$Proxy;
 Landroid/content/IClipboard$Stub$Proxy;->addPrimaryClipChangedListener(Landroid/content/IOnPrimaryClipChangedListener;Ljava/lang/String;)V
 Landroid/content/IClipboard$Stub$Proxy;->clearPrimaryClip(Ljava/lang/String;)V
 Landroid/content/IClipboard$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -14134,7 +13251,6 @@
 Landroid/content/IClipboard$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/content/IClipboard$Stub$Proxy;->removePrimaryClipChangedListener(Landroid/content/IOnPrimaryClipChangedListener;)V
 Landroid/content/IClipboard$Stub$Proxy;->setPrimaryClip(Landroid/content/ClipData;Ljava/lang/String;)V
-Landroid/content/IClipboard$Stub;
 Landroid/content/IClipboard$Stub;-><init>()V
 Landroid/content/IClipboard$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/IClipboard$Stub;->TRANSACTION_addPrimaryClipChangedListener:I
@@ -14145,7 +13261,6 @@
 Landroid/content/IClipboard$Stub;->TRANSACTION_hasPrimaryClip:I
 Landroid/content/IClipboard$Stub;->TRANSACTION_removePrimaryClipChangedListener:I
 Landroid/content/IClipboard$Stub;->TRANSACTION_setPrimaryClip:I
-Landroid/content/IClipboard;
 Landroid/content/IClipboard;->addPrimaryClipChangedListener(Landroid/content/IOnPrimaryClipChangedListener;Ljava/lang/String;)V
 Landroid/content/IClipboard;->clearPrimaryClip(Ljava/lang/String;)V
 Landroid/content/IClipboard;->getPrimaryClip(Ljava/lang/String;)Landroid/content/ClipData;
@@ -14154,7 +13269,6 @@
 Landroid/content/IClipboard;->hasPrimaryClip(Ljava/lang/String;)Z
 Landroid/content/IClipboard;->removePrimaryClipChangedListener(Landroid/content/IOnPrimaryClipChangedListener;)V
 Landroid/content/IClipboard;->setPrimaryClip(Landroid/content/ClipData;Ljava/lang/String;)V
-Landroid/content/IContentProvider;
 Landroid/content/IContentProvider;->applyBatch(Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;
 Landroid/content/IContentProvider;->APPLY_BATCH_TRANSACTION:I
 Landroid/content/IContentProvider;->BULK_INSERT_TRANSACTION:I
@@ -14181,7 +13295,6 @@
 Landroid/content/IContentProvider;->uncanonicalize(Ljava/lang/String;Landroid/net/Uri;)Landroid/net/Uri;
 Landroid/content/IContentProvider;->UNCANONICALIZE_TRANSACTION:I
 Landroid/content/IContentProvider;->UPDATE_TRANSACTION:I
-Landroid/content/IContentService$Stub$Proxy;
 Landroid/content/IContentService$Stub$Proxy;->addPeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;J)V
 Landroid/content/IContentService$Stub$Proxy;->addStatusChangeListener(ILandroid/content/ISyncStatusObserver;)V
 Landroid/content/IContentService$Stub$Proxy;->cancelRequest(Landroid/content/SyncRequest;)V
@@ -14222,7 +13335,6 @@
 Landroid/content/IContentService$Stub$Proxy;->sync(Landroid/content/SyncRequest;)V
 Landroid/content/IContentService$Stub$Proxy;->syncAsUser(Landroid/content/SyncRequest;I)V
 Landroid/content/IContentService$Stub$Proxy;->unregisterContentObserver(Landroid/database/IContentObserver;)V
-Landroid/content/IContentService$Stub;
 Landroid/content/IContentService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/IContentService$Stub;->TRANSACTION_addPeriodicSync:I
 Landroid/content/IContentService$Stub;->TRANSACTION_addStatusChangeListener:I
@@ -14262,7 +13374,6 @@
 Landroid/content/IContentService$Stub;->TRANSACTION_sync:I
 Landroid/content/IContentService$Stub;->TRANSACTION_syncAsUser:I
 Landroid/content/IContentService$Stub;->TRANSACTION_unregisterContentObserver:I
-Landroid/content/IContentService;
 Landroid/content/IContentService;->addPeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;J)V
 Landroid/content/IContentService;->addStatusChangeListener(ILandroid/content/ISyncStatusObserver;)V
 Landroid/content/IContentService;->cancelRequest(Landroid/content/SyncRequest;)V
@@ -14295,34 +13406,20 @@
 Landroid/content/IContentService;->sync(Landroid/content/SyncRequest;)V
 Landroid/content/IContentService;->syncAsUser(Landroid/content/SyncRequest;I)V
 Landroid/content/IContentService;->unregisterContentObserver(Landroid/database/IContentObserver;)V
-Landroid/content/IIntentReceiver$Stub$Proxy;
 Landroid/content/IIntentReceiver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/IIntentReceiver$Stub$Proxy;->performReceive(Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;ZZI)V
-Landroid/content/IIntentReceiver$Stub;
 Landroid/content/IIntentReceiver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/IIntentReceiver$Stub;->TRANSACTION_performReceive:I
-Landroid/content/IIntentReceiver;
-Landroid/content/IIntentSender$Stub$Proxy;
 Landroid/content/IIntentSender$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/IIntentSender$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/IIntentSender$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/content/IIntentSender$Stub$Proxy;->send(ILandroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Landroid/content/IIntentReceiver;Ljava/lang/String;Landroid/os/Bundle;)V
-Landroid/content/IIntentSender$Stub;
 Landroid/content/IIntentSender$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/IIntentSender$Stub;->TRANSACTION_send:I
-Landroid/content/IIntentSender;
 Landroid/content/IIntentSender;->send(ILandroid/content/Intent;Ljava/lang/String;Landroid/os/IBinder;Landroid/content/IIntentReceiver;Ljava/lang/String;Landroid/os/Bundle;)V
-Landroid/content/Intent$AccessUriMode;
-Landroid/content/Intent$CommandOptionHandler;
 Landroid/content/Intent$CommandOptionHandler;->handleOption(Ljava/lang/String;Landroid/os/ShellCommand;)Z
-Landroid/content/Intent$CopyMode;
-Landroid/content/Intent$FillInFlags;
 Landroid/content/Intent$FilterComparison;->mHashCode:I
 Landroid/content/Intent$FilterComparison;->mIntent:Landroid/content/Intent;
-Landroid/content/Intent$Flags;
-Landroid/content/Intent$GrantUriMode;
-Landroid/content/Intent$MutableFlags;
-Landroid/content/Intent$UriFlags;
 Landroid/content/Intent;-><init>(Landroid/content/Intent;I)V
 Landroid/content/Intent;-><init>(Landroid/os/Parcel;)V
 Landroid/content/Intent;->ACTION_ADVANCED_SETTINGS_CHANGED:Ljava/lang/String;
@@ -14459,7 +13556,6 @@
 Landroid/content/IntentFilter$AuthorityEntry;->mWild:Z
 Landroid/content/IntentFilter$AuthorityEntry;->writeToParcel(Landroid/os/Parcel;)V
 Landroid/content/IntentFilter$AuthorityEntry;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/content/IntentFilter$InstantAppVisibility;
 Landroid/content/IntentFilter;-><init>(Landroid/os/Parcel;)V
 Landroid/content/IntentFilter;->ACTION_STR:Ljava/lang/String;
 Landroid/content/IntentFilter;->addDataAuthority(Landroid/content/IntentFilter$AuthorityEntry;)V
@@ -14516,7 +13612,6 @@
 Landroid/content/IntentFilter;->VISIBILITY_IMPLICIT:I
 Landroid/content/IntentFilter;->VISIBILITY_NONE:I
 Landroid/content/IntentFilter;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/content/IntentFilterProto;
 Landroid/content/IntentFilterProto;-><init>()V
 Landroid/content/IntentFilterProto;->ACTIONS:J
 Landroid/content/IntentFilterProto;->CATEGORIES:J
@@ -14528,7 +13623,6 @@
 Landroid/content/IntentFilterProto;->GET_AUTO_VERIFY:J
 Landroid/content/IntentFilterProto;->HAS_PARTIAL_TYPES:J
 Landroid/content/IntentFilterProto;->PRIORITY:J
-Landroid/content/IntentProto;
 Landroid/content/IntentProto;-><init>()V
 Landroid/content/IntentProto;->ACTION:J
 Landroid/content/IntentProto;->CATEGORIES:J
@@ -14547,7 +13641,6 @@
 Landroid/content/IntentProto;->SELECTOR:J
 Landroid/content/IntentProto;->SOURCE_BOUNDS:J
 Landroid/content/IntentProto;->TYPE:J
-Landroid/content/IntentSender$FinishedDispatcher;
 Landroid/content/IntentSender$FinishedDispatcher;-><init>(Landroid/content/IntentSender;Landroid/content/IntentSender$OnFinished;Landroid/os/Handler;)V
 Landroid/content/IntentSender$FinishedDispatcher;->mHandler:Landroid/os/Handler;
 Landroid/content/IntentSender$FinishedDispatcher;->mIntent:Landroid/content/Intent;
@@ -14561,17 +13654,13 @@
 Landroid/content/IntentSender;-><init>(Landroid/os/IBinder;)V
 Landroid/content/IntentSender;->getWhitelistToken()Landroid/os/IBinder;
 Landroid/content/IntentSender;->mWhitelistToken:Landroid/os/IBinder;
-Landroid/content/IOnPrimaryClipChangedListener$Stub$Proxy;
 Landroid/content/IOnPrimaryClipChangedListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/IOnPrimaryClipChangedListener$Stub$Proxy;->dispatchPrimaryClipChanged()V
 Landroid/content/IOnPrimaryClipChangedListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/IOnPrimaryClipChangedListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/content/IOnPrimaryClipChangedListener$Stub;
 Landroid/content/IOnPrimaryClipChangedListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/IOnPrimaryClipChangedListener$Stub;->TRANSACTION_dispatchPrimaryClipChanged:I
-Landroid/content/IOnPrimaryClipChangedListener;
 Landroid/content/IOnPrimaryClipChangedListener;->dispatchPrimaryClipChanged()V
-Landroid/content/IRestrictionsManager$Stub$Proxy;
 Landroid/content/IRestrictionsManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/IRestrictionsManager$Stub$Proxy;->createLocalApprovalIntent()Landroid/content/Intent;
 Landroid/content/IRestrictionsManager$Stub$Proxy;->getApplicationRestrictions(Ljava/lang/String;)Landroid/os/Bundle;
@@ -14580,7 +13669,6 @@
 Landroid/content/IRestrictionsManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/content/IRestrictionsManager$Stub$Proxy;->notifyPermissionResponse(Ljava/lang/String;Landroid/os/PersistableBundle;)V
 Landroid/content/IRestrictionsManager$Stub$Proxy;->requestPermission(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/PersistableBundle;)V
-Landroid/content/IRestrictionsManager$Stub;
 Landroid/content/IRestrictionsManager$Stub;-><init>()V
 Landroid/content/IRestrictionsManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/IRestrictionsManager$Stub;->TRANSACTION_createLocalApprovalIntent:I
@@ -14588,65 +13676,49 @@
 Landroid/content/IRestrictionsManager$Stub;->TRANSACTION_hasRestrictionsProvider:I
 Landroid/content/IRestrictionsManager$Stub;->TRANSACTION_notifyPermissionResponse:I
 Landroid/content/IRestrictionsManager$Stub;->TRANSACTION_requestPermission:I
-Landroid/content/IRestrictionsManager;
 Landroid/content/IRestrictionsManager;->createLocalApprovalIntent()Landroid/content/Intent;
 Landroid/content/IRestrictionsManager;->getApplicationRestrictions(Ljava/lang/String;)Landroid/os/Bundle;
 Landroid/content/IRestrictionsManager;->hasRestrictionsProvider()Z
 Landroid/content/IRestrictionsManager;->notifyPermissionResponse(Ljava/lang/String;Landroid/os/PersistableBundle;)V
 Landroid/content/IRestrictionsManager;->requestPermission(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/PersistableBundle;)V
-Landroid/content/ISyncAdapter$Stub$Proxy;
 Landroid/content/ISyncAdapter$Stub$Proxy;->cancelSync(Landroid/content/ISyncContext;)V
 Landroid/content/ISyncAdapter$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/ISyncAdapter$Stub$Proxy;->onUnsyncableAccount(Landroid/content/ISyncAdapterUnsyncableAccountCallback;)V
 Landroid/content/ISyncAdapter$Stub$Proxy;->startSync(Landroid/content/ISyncContext;Ljava/lang/String;Landroid/accounts/Account;Landroid/os/Bundle;)V
-Landroid/content/ISyncAdapter$Stub;
 Landroid/content/ISyncAdapter$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/ISyncAdapter$Stub;->TRANSACTION_cancelSync:I
 Landroid/content/ISyncAdapter$Stub;->TRANSACTION_onUnsyncableAccount:I
 Landroid/content/ISyncAdapter$Stub;->TRANSACTION_startSync:I
-Landroid/content/ISyncAdapter;
-Landroid/content/ISyncAdapterUnsyncableAccountCallback$Stub$Proxy;
 Landroid/content/ISyncAdapterUnsyncableAccountCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/ISyncAdapterUnsyncableAccountCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/ISyncAdapterUnsyncableAccountCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/content/ISyncAdapterUnsyncableAccountCallback$Stub$Proxy;->onUnsyncableAccountDone(Z)V
-Landroid/content/ISyncAdapterUnsyncableAccountCallback$Stub;
 Landroid/content/ISyncAdapterUnsyncableAccountCallback$Stub;-><init>()V
 Landroid/content/ISyncAdapterUnsyncableAccountCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/ISyncAdapterUnsyncableAccountCallback;
 Landroid/content/ISyncAdapterUnsyncableAccountCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/ISyncAdapterUnsyncableAccountCallback$Stub;->TRANSACTION_onUnsyncableAccountDone:I
-Landroid/content/ISyncAdapterUnsyncableAccountCallback;
 Landroid/content/ISyncAdapterUnsyncableAccountCallback;->onUnsyncableAccountDone(Z)V
-Landroid/content/ISyncContext$Stub$Proxy;
 Landroid/content/ISyncContext$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/ISyncContext$Stub$Proxy;->onFinished(Landroid/content/SyncResult;)V
 Landroid/content/ISyncContext$Stub$Proxy;->sendHeartbeat()V
-Landroid/content/ISyncContext$Stub;
 Landroid/content/ISyncContext$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/ISyncContext$Stub;->TRANSACTION_onFinished:I
 Landroid/content/ISyncContext$Stub;->TRANSACTION_sendHeartbeat:I
-Landroid/content/ISyncContext;
 Landroid/content/ISyncContext;->onFinished(Landroid/content/SyncResult;)V
 Landroid/content/ISyncContext;->sendHeartbeat()V
-Landroid/content/ISyncServiceAdapter$Stub$Proxy;
 Landroid/content/ISyncServiceAdapter$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/ISyncServiceAdapter$Stub$Proxy;->cancelSync(Landroid/content/ISyncContext;)V
 Landroid/content/ISyncServiceAdapter$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/ISyncServiceAdapter$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/content/ISyncServiceAdapter$Stub$Proxy;->startSync(Landroid/content/ISyncContext;Landroid/os/Bundle;)V
-Landroid/content/ISyncServiceAdapter$Stub;
 Landroid/content/ISyncServiceAdapter$Stub;-><init>()V
 Landroid/content/ISyncServiceAdapter$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/ISyncServiceAdapter$Stub;->TRANSACTION_cancelSync:I
 Landroid/content/ISyncServiceAdapter$Stub;->TRANSACTION_startSync:I
-Landroid/content/ISyncServiceAdapter;
-Landroid/content/ISyncStatusObserver$Stub$Proxy;
 Landroid/content/ISyncStatusObserver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/ISyncStatusObserver$Stub$Proxy;->onStatusChanged(I)V
-Landroid/content/ISyncStatusObserver$Stub;
 Landroid/content/ISyncStatusObserver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/ISyncStatusObserver$Stub;->TRANSACTION_onStatusChanged:I
-Landroid/content/ISyncStatusObserver;
 Landroid/content/Loader;->mAbandoned:Z
 Landroid/content/Loader;->mContentChanged:Z
 Landroid/content/Loader;->mContext:Landroid/content/Context;
@@ -14656,12 +13728,10 @@
 Landroid/content/Loader;->mProcessingChange:Z
 Landroid/content/Loader;->mReset:Z
 Landroid/content/Loader;->mStarted:Z
-Landroid/content/LocaleProto;
 Landroid/content/LocaleProto;-><init>()V
 Landroid/content/LocaleProto;->COUNTRY:J
 Landroid/content/LocaleProto;->LANGUAGE:J
 Landroid/content/LocaleProto;->VARIANT:J
-Landroid/content/om/IOverlayManager$Stub$Proxy;
 Landroid/content/om/IOverlayManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/om/IOverlayManager$Stub$Proxy;->getAllOverlays(I)Ljava/util/Map;
 Landroid/content/om/IOverlayManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -14674,7 +13744,6 @@
 Landroid/content/om/IOverlayManager$Stub$Proxy;->setHighestPriority(Ljava/lang/String;I)Z
 Landroid/content/om/IOverlayManager$Stub$Proxy;->setLowestPriority(Ljava/lang/String;I)Z
 Landroid/content/om/IOverlayManager$Stub$Proxy;->setPriority(Ljava/lang/String;Ljava/lang/String;I)Z
-Landroid/content/om/IOverlayManager$Stub;
 Landroid/content/om/IOverlayManager$Stub;-><init>()V
 Landroid/content/om/IOverlayManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/om/IOverlayManager$Stub;->TRANSACTION_getAllOverlays:I
@@ -14686,7 +13755,6 @@
 Landroid/content/om/IOverlayManager$Stub;->TRANSACTION_setHighestPriority:I
 Landroid/content/om/IOverlayManager$Stub;->TRANSACTION_setLowestPriority:I
 Landroid/content/om/IOverlayManager$Stub;->TRANSACTION_setPriority:I
-Landroid/content/om/IOverlayManager;
 Landroid/content/om/IOverlayManager;->getOverlayInfosForTarget(Ljava/lang/String;I)Ljava/util/List;
 Landroid/content/om/IOverlayManager;->setEnabled(Ljava/lang/String;ZI)Z
 Landroid/content/om/IOverlayManager;->setEnabledExclusive(Ljava/lang/String;ZI)Z
@@ -14694,8 +13762,6 @@
 Landroid/content/om/IOverlayManager;->setHighestPriority(Ljava/lang/String;I)Z
 Landroid/content/om/IOverlayManager;->setLowestPriority(Ljava/lang/String;I)Z
 Landroid/content/om/IOverlayManager;->setPriority(Ljava/lang/String;Ljava/lang/String;I)Z
-Landroid/content/om/OverlayInfo$State;
-Landroid/content/om/OverlayInfo;
 Landroid/content/om/OverlayInfo;-><init>(Landroid/content/om/OverlayInfo;I)V
 Landroid/content/om/OverlayInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/content/om/OverlayInfo;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIIZ)V
@@ -14722,8 +13788,6 @@
 Landroid/content/PeriodicSync;-><init>(Landroid/os/Parcel;)V
 Landroid/content/PeriodicSync;->flexTime:J
 Landroid/content/PeriodicSync;->syncExtrasEquals(Landroid/os/Bundle;Landroid/os/Bundle;)Z
-Landroid/content/PermissionChecker$PermissionResult;
-Landroid/content/PermissionChecker;
 Landroid/content/PermissionChecker;-><init>()V
 Landroid/content/PermissionChecker;->checkCallingOrSelfPermission(Landroid/content/Context;Ljava/lang/String;)I
 Landroid/content/PermissionChecker;->checkCallingPermission(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)I
@@ -14732,9 +13796,6 @@
 Landroid/content/PermissionChecker;->PERMISSION_DENIED:I
 Landroid/content/PermissionChecker;->PERMISSION_DENIED_APP_OP:I
 Landroid/content/PermissionChecker;->PERMISSION_GRANTED:I
-Landroid/content/pm/ActivityInfo$ColorMode;
-Landroid/content/pm/ActivityInfo$Config;
-Landroid/content/pm/ActivityInfo$ScreenOrientation;
 Landroid/content/pm/ActivityInfo$WindowLayout;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/ActivityInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/ActivityInfo;->activityInfoConfigNativeToJava(I)I
@@ -14778,9 +13839,6 @@
 Landroid/content/pm/ActivityInfo;->rotationAnimation:I
 Landroid/content/pm/ActivityInfo;->screenOrientationToString(I)Ljava/lang/String;
 Landroid/content/pm/ActivityInfo;->SCREEN_ORIENTATION_UNSET:I
-Landroid/content/pm/ApplicationInfo$ApplicationInfoPrivateFlags;
-Landroid/content/pm/ApplicationInfo$Category;
-Landroid/content/pm/ApplicationInfo$HiddenApiEnforcementPolicy;
 Landroid/content/pm/ApplicationInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/ApplicationInfo;->classLoaderName:Ljava/lang/String;
 Landroid/content/pm/ApplicationInfo;->compileSdkVersion:I
@@ -14860,8 +13918,6 @@
 Landroid/content/pm/ApplicationInfo;->splitDependencies:Landroid/util/SparseArray;
 Landroid/content/pm/ApplicationInfo;->usesCompatibilityMode()Z
 Landroid/content/pm/ApplicationInfo;->writeToProto(Landroid/util/proto/ProtoOutputStream;JI)V
-Landroid/content/pm/ApplicationInfoProto$Detail;
-Landroid/content/pm/ApplicationInfoProto$Detail;-><init>()V
 Landroid/content/pm/ApplicationInfoProto$Detail;->CATEGORY:J
 Landroid/content/pm/ApplicationInfoProto$Detail;->CLASS_NAME:J
 Landroid/content/pm/ApplicationInfoProto$Detail;->COMPATIBLE_WIDTH_LIMIT_DP:J
@@ -14880,14 +13936,11 @@
 Landroid/content/pm/ApplicationInfoProto$Detail;->SUPPORTS_RTL:J
 Landroid/content/pm/ApplicationInfoProto$Detail;->TASK_AFFINITY:J
 Landroid/content/pm/ApplicationInfoProto$Detail;->UI_OPTIONS:J
-Landroid/content/pm/ApplicationInfoProto$Version;
-Landroid/content/pm/ApplicationInfoProto$Version;-><init>()V
 Landroid/content/pm/ApplicationInfoProto$Version;->ENABLED:J
 Landroid/content/pm/ApplicationInfoProto$Version;->MIN_SDK_VERSION:J
 Landroid/content/pm/ApplicationInfoProto$Version;->TARGET_SANDBOX_VERSION:J
 Landroid/content/pm/ApplicationInfoProto$Version;->TARGET_SDK_VERSION:J
 Landroid/content/pm/ApplicationInfoProto$Version;->VERSION_CODE:J
-Landroid/content/pm/ApplicationInfoProto;
 Landroid/content/pm/ApplicationInfoProto;-><init>()V
 Landroid/content/pm/ApplicationInfoProto;->CLASS_LOADER_NAME:J
 Landroid/content/pm/ApplicationInfoProto;->DATA_DIR:J
@@ -14906,7 +13959,6 @@
 Landroid/content/pm/ApplicationInfoProto;->THEME:J
 Landroid/content/pm/ApplicationInfoProto;->UID:J
 Landroid/content/pm/ApplicationInfoProto;->VERSION:J
-Landroid/content/pm/AppsQueryHelper;
 Landroid/content/pm/AppsQueryHelper;-><init>()V
 Landroid/content/pm/AppsQueryHelper;-><init>(Landroid/content/pm/IPackageManager;)V
 Landroid/content/pm/AppsQueryHelper;->getAllApps(I)Ljava/util/List;
@@ -14920,7 +13972,6 @@
 Landroid/content/pm/AppsQueryHelper;->queryApps(IZLandroid/os/UserHandle;)Ljava/util/List;
 Landroid/content/pm/AppsQueryHelper;->queryIntentActivitiesAsUser(Landroid/content/Intent;I)Ljava/util/List;
 Landroid/content/pm/AppsQueryHelper;->queryIntentServicesAsUser(Landroid/content/Intent;I)Ljava/util/List;
-Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;
 Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;-><init>(Landroid/content/IntentFilter;Landroid/content/pm/InstantAppResolveInfo;Ljava/lang/String;Landroid/os/Bundle;)V
 Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;-><init>(Landroid/content/pm/InstantAppResolveInfo;Ljava/lang/String;Landroid/os/Bundle;)V
 Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;-><init>(Ljava/lang/String;JLjava/lang/String;)V
@@ -14929,7 +13980,6 @@
 Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;->resolveInfo:Landroid/content/pm/InstantAppResolveInfo;
 Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;->splitName:Ljava/lang/String;
 Landroid/content/pm/AuxiliaryResolveInfo$AuxiliaryFilter;->versionCode:J
-Landroid/content/pm/AuxiliaryResolveInfo;
 Landroid/content/pm/AuxiliaryResolveInfo;-><init>(Landroid/content/ComponentName;Landroid/content/Intent;Ljava/util/List;)V
 Landroid/content/pm/AuxiliaryResolveInfo;-><init>(Landroid/content/ComponentName;Ljava/lang/String;JLjava/lang/String;)V
 Landroid/content/pm/AuxiliaryResolveInfo;-><init>(Ljava/lang/String;ZLandroid/content/Intent;Ljava/util/List;)V
@@ -14938,7 +13988,6 @@
 Landroid/content/pm/AuxiliaryResolveInfo;->installFailureActivity:Landroid/content/ComponentName;
 Landroid/content/pm/AuxiliaryResolveInfo;->needsPhaseTwo:Z
 Landroid/content/pm/AuxiliaryResolveInfo;->token:Ljava/lang/String;
-Landroid/content/pm/BaseParceledListSlice;
 Landroid/content/pm/BaseParceledListSlice;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
 Landroid/content/pm/BaseParceledListSlice;-><init>(Ljava/util/List;)V
 Landroid/content/pm/BaseParceledListSlice;->DEBUG:Z
@@ -14967,8 +14016,6 @@
 Landroid/content/pm/CrossProfileApps;->mService:Landroid/content/pm/ICrossProfileApps;
 Landroid/content/pm/CrossProfileApps;->mUserManager:Landroid/os/UserManager;
 Landroid/content/pm/CrossProfileApps;->verifyCanAccessUser(Landroid/os/UserHandle;)V
-Landroid/content/pm/dex/ArtManager$ProfileType;
-Landroid/content/pm/dex/ArtManager$SnapshotRuntimeProfileCallbackDelegate;
 Landroid/content/pm/dex/ArtManager$SnapshotRuntimeProfileCallbackDelegate;-><init>(Landroid/content/pm/dex/ArtManager$SnapshotRuntimeProfileCallback;Ljava/util/concurrent/Executor;)V
 Landroid/content/pm/dex/ArtManager$SnapshotRuntimeProfileCallbackDelegate;->mCallback:Landroid/content/pm/dex/ArtManager$SnapshotRuntimeProfileCallback;
 Landroid/content/pm/dex/ArtManager$SnapshotRuntimeProfileCallbackDelegate;->mExecutor:Ljava/util/concurrent/Executor;
@@ -14981,10 +14028,8 @@
 Landroid/content/pm/dex/ArtManager;->mArtManager:Landroid/content/pm/dex/IArtManager;
 Landroid/content/pm/dex/ArtManager;->mContext:Landroid/content/Context;
 Landroid/content/pm/dex/ArtManager;->TAG:Ljava/lang/String;
-Landroid/content/pm/dex/ArtManagerInternal;
 Landroid/content/pm/dex/ArtManagerInternal;-><init>()V
 Landroid/content/pm/dex/ArtManagerInternal;->getPackageOptimizationInfo(Landroid/content/pm/ApplicationInfo;Ljava/lang/String;)Landroid/content/pm/dex/PackageOptimizationInfo;
-Landroid/content/pm/dex/DexMetadataHelper;
 Landroid/content/pm/dex/DexMetadataHelper;-><init>()V
 Landroid/content/pm/dex/DexMetadataHelper;->buildDexMetadataPathForApk(Ljava/lang/String;)Ljava/lang/String;
 Landroid/content/pm/dex/DexMetadataHelper;->buildDexMetadataPathForFile(Ljava/io/File;)Ljava/lang/String;
@@ -14999,44 +14044,36 @@
 Landroid/content/pm/dex/DexMetadataHelper;->validateDexMetadataFile(Ljava/lang/String;)V
 Landroid/content/pm/dex/DexMetadataHelper;->validateDexPaths([Ljava/lang/String;)V
 Landroid/content/pm/dex/DexMetadataHelper;->validatePackageDexMetadata(Landroid/content/pm/PackageParser$Package;)V
-Landroid/content/pm/dex/IArtManager$Stub$Proxy;
 Landroid/content/pm/dex/IArtManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/pm/dex/IArtManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/pm/dex/IArtManager$Stub$Proxy;->isRuntimeProfilingEnabled(ILjava/lang/String;)Z
 Landroid/content/pm/dex/IArtManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/content/pm/dex/IArtManager$Stub$Proxy;->snapshotRuntimeProfile(ILjava/lang/String;Ljava/lang/String;Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;Ljava/lang/String;)V
-Landroid/content/pm/dex/IArtManager$Stub;
 Landroid/content/pm/dex/IArtManager$Stub;-><init>()V
 Landroid/content/pm/dex/IArtManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/dex/IArtManager;
 Landroid/content/pm/dex/IArtManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/pm/dex/IArtManager$Stub;->TRANSACTION_isRuntimeProfilingEnabled:I
 Landroid/content/pm/dex/IArtManager$Stub;->TRANSACTION_snapshotRuntimeProfile:I
-Landroid/content/pm/dex/IArtManager;
 Landroid/content/pm/dex/IArtManager;->isRuntimeProfilingEnabled(ILjava/lang/String;)Z
 Landroid/content/pm/dex/IArtManager;->snapshotRuntimeProfile(ILjava/lang/String;Ljava/lang/String;Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;Ljava/lang/String;)V
-Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub$Proxy;
 Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub$Proxy;->onError(I)V
 Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub$Proxy;->onSuccess(Landroid/os/ParcelFileDescriptor;)V
-Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub;
 Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub;-><init>()V
 Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;
 Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub;->TRANSACTION_onError:I
 Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback$Stub;->TRANSACTION_onSuccess:I
-Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;
 Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;->onError(I)V
 Landroid/content/pm/dex/ISnapshotRuntimeProfileCallback;->onSuccess(Landroid/os/ParcelFileDescriptor;)V
-Landroid/content/pm/dex/PackageOptimizationInfo;
 Landroid/content/pm/dex/PackageOptimizationInfo;-><init>(II)V
 Landroid/content/pm/dex/PackageOptimizationInfo;->createWithNoInfo()Landroid/content/pm/dex/PackageOptimizationInfo;
 Landroid/content/pm/dex/PackageOptimizationInfo;->getCompilationFilter()I
 Landroid/content/pm/dex/PackageOptimizationInfo;->getCompilationReason()I
 Landroid/content/pm/dex/PackageOptimizationInfo;->mCompilationFilter:I
 Landroid/content/pm/dex/PackageOptimizationInfo;->mCompilationReason:I
-Landroid/content/pm/FallbackCategoryProvider;
 Landroid/content/pm/FallbackCategoryProvider;-><init>()V
 Landroid/content/pm/FallbackCategoryProvider;->getFallbackCategory(Ljava/lang/String;)I
 Landroid/content/pm/FallbackCategoryProvider;->loadFallbacks()V
@@ -15044,40 +14081,32 @@
 Landroid/content/pm/FallbackCategoryProvider;->TAG:Ljava/lang/String;
 Landroid/content/pm/FeatureInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/FeatureInfo;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/content/pm/FeatureInfoProto;
 Landroid/content/pm/FeatureInfoProto;-><init>()V
 Landroid/content/pm/FeatureInfoProto;->FLAGS:J
 Landroid/content/pm/FeatureInfoProto;->GLES_VERSION:J
 Landroid/content/pm/FeatureInfoProto;->NAME:J
 Landroid/content/pm/FeatureInfoProto;->VERSION:J
-Landroid/content/pm/ICrossProfileApps$Stub$Proxy;
 Landroid/content/pm/ICrossProfileApps$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/pm/ICrossProfileApps$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/pm/ICrossProfileApps$Stub$Proxy;->getTargetUserProfiles(Ljava/lang/String;)Ljava/util/List;
 Landroid/content/pm/ICrossProfileApps$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/content/pm/ICrossProfileApps$Stub$Proxy;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;)V
-Landroid/content/pm/ICrossProfileApps$Stub;
 Landroid/content/pm/ICrossProfileApps$Stub;-><init>()V
 Landroid/content/pm/ICrossProfileApps$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/ICrossProfileApps;
 Landroid/content/pm/ICrossProfileApps$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/pm/ICrossProfileApps$Stub;->TRANSACTION_getTargetUserProfiles:I
 Landroid/content/pm/ICrossProfileApps$Stub;->TRANSACTION_startActivityAsUser:I
-Landroid/content/pm/ICrossProfileApps;
 Landroid/content/pm/ICrossProfileApps;->getTargetUserProfiles(Ljava/lang/String;)Ljava/util/List;
 Landroid/content/pm/ICrossProfileApps;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/UserHandle;)V
-Landroid/content/pm/IDexModuleRegisterCallback$Stub$Proxy;
 Landroid/content/pm/IDexModuleRegisterCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/pm/IDexModuleRegisterCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/pm/IDexModuleRegisterCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/content/pm/IDexModuleRegisterCallback$Stub$Proxy;->onDexModuleRegistered(Ljava/lang/String;ZLjava/lang/String;)V
-Landroid/content/pm/IDexModuleRegisterCallback$Stub;
 Landroid/content/pm/IDexModuleRegisterCallback$Stub;-><init>()V
 Landroid/content/pm/IDexModuleRegisterCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IDexModuleRegisterCallback;
 Landroid/content/pm/IDexModuleRegisterCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/pm/IDexModuleRegisterCallback$Stub;->TRANSACTION_onDexModuleRegistered:I
-Landroid/content/pm/IDexModuleRegisterCallback;
 Landroid/content/pm/IDexModuleRegisterCallback;->onDexModuleRegistered(Ljava/lang/String;ZLjava/lang/String;)V
-Landroid/content/pm/ILauncherApps$Stub$Proxy;
 Landroid/content/pm/ILauncherApps$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/pm/ILauncherApps$Stub$Proxy;->addOnAppsChangedListener(Ljava/lang/String;Landroid/content/pm/IOnAppsChangedListener;)V
 Landroid/content/pm/ILauncherApps$Stub$Proxy;->getApplicationInfo(Ljava/lang/String;Ljava/lang/String;ILandroid/os/UserHandle;)Landroid/content/pm/ApplicationInfo;
@@ -15099,7 +14128,6 @@
 Landroid/content/pm/ILauncherApps$Stub$Proxy;->showAppDetailsAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/ComponentName;Landroid/graphics/Rect;Landroid/os/Bundle;Landroid/os/UserHandle;)V
 Landroid/content/pm/ILauncherApps$Stub$Proxy;->startActivityAsUser(Landroid/app/IApplicationThread;Ljava/lang/String;Landroid/content/ComponentName;Landroid/graphics/Rect;Landroid/os/Bundle;Landroid/os/UserHandle;)V
 Landroid/content/pm/ILauncherApps$Stub$Proxy;->startShortcut(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/graphics/Rect;Landroid/os/Bundle;I)Z
-Landroid/content/pm/ILauncherApps$Stub;
 Landroid/content/pm/ILauncherApps$Stub;-><init>()V
 Landroid/content/pm/ILauncherApps$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/ILauncherApps;
 Landroid/content/pm/ILauncherApps$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -15121,7 +14149,6 @@
 Landroid/content/pm/ILauncherApps$Stub;->TRANSACTION_showAppDetailsAsUser:I
 Landroid/content/pm/ILauncherApps$Stub;->TRANSACTION_startActivityAsUser:I
 Landroid/content/pm/ILauncherApps$Stub;->TRANSACTION_startShortcut:I
-Landroid/content/pm/ILauncherApps;
 Landroid/content/pm/ILauncherApps;->addOnAppsChangedListener(Ljava/lang/String;Landroid/content/pm/IOnAppsChangedListener;)V
 Landroid/content/pm/ILauncherApps;->getApplicationInfo(Ljava/lang/String;Ljava/lang/String;ILandroid/os/UserHandle;)Landroid/content/pm/ApplicationInfo;
 Landroid/content/pm/ILauncherApps;->getLauncherActivities(Ljava/lang/String;Ljava/lang/String;Landroid/os/UserHandle;)Landroid/content/pm/ParceledListSlice;
@@ -15149,7 +14176,6 @@
 Landroid/content/pm/InstantAppIntentFilter;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/InstantAppIntentFilter;->mFilters:Ljava/util/List;
 Landroid/content/pm/InstantAppIntentFilter;->mSplitName:Ljava/lang/String;
-Landroid/content/pm/InstantAppRequest;
 Landroid/content/pm/InstantAppRequest;-><init>(Landroid/content/pm/AuxiliaryResolveInfo;Landroid/content/Intent;Ljava/lang/String;Ljava/lang/String;ILandroid/os/Bundle;Z)V
 Landroid/content/pm/InstantAppRequest;->callingPackage:Ljava/lang/String;
 Landroid/content/pm/InstantAppRequest;->digest:Landroid/content/pm/InstantAppResolveInfo$InstantAppDigest;
@@ -15210,7 +14236,6 @@
 Landroid/content/pm/IntentFilterVerificationInfo;->TAG:Ljava/lang/String;
 Landroid/content/pm/IntentFilterVerificationInfo;->TAG_DOMAIN:Ljava/lang/String;
 Landroid/content/pm/IntentFilterVerificationInfo;->writeToXml(Lorg/xmlpull/v1/XmlSerializer;)V
-Landroid/content/pm/IOnAppsChangedListener$Stub$Proxy;
 Landroid/content/pm/IOnAppsChangedListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/pm/IOnAppsChangedListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/pm/IOnAppsChangedListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -15222,7 +14247,6 @@
 Landroid/content/pm/IOnAppsChangedListener$Stub$Proxy;->onPackagesUnavailable(Landroid/os/UserHandle;[Ljava/lang/String;Z)V
 Landroid/content/pm/IOnAppsChangedListener$Stub$Proxy;->onPackagesUnsuspended(Landroid/os/UserHandle;[Ljava/lang/String;)V
 Landroid/content/pm/IOnAppsChangedListener$Stub$Proxy;->onShortcutChanged(Landroid/os/UserHandle;Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
-Landroid/content/pm/IOnAppsChangedListener$Stub;
 Landroid/content/pm/IOnAppsChangedListener$Stub;-><init>()V
 Landroid/content/pm/IOnAppsChangedListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IOnAppsChangedListener;
 Landroid/content/pm/IOnAppsChangedListener$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -15234,7 +14258,6 @@
 Landroid/content/pm/IOnAppsChangedListener$Stub;->TRANSACTION_onPackagesUnavailable:I
 Landroid/content/pm/IOnAppsChangedListener$Stub;->TRANSACTION_onPackagesUnsuspended:I
 Landroid/content/pm/IOnAppsChangedListener$Stub;->TRANSACTION_onShortcutChanged:I
-Landroid/content/pm/IOnAppsChangedListener;
 Landroid/content/pm/IOnAppsChangedListener;->onPackageAdded(Landroid/os/UserHandle;Ljava/lang/String;)V
 Landroid/content/pm/IOnAppsChangedListener;->onPackageChanged(Landroid/os/UserHandle;Ljava/lang/String;)V
 Landroid/content/pm/IOnAppsChangedListener;->onPackageRemoved(Landroid/os/UserHandle;Ljava/lang/String;)V
@@ -15243,19 +14266,15 @@
 Landroid/content/pm/IOnAppsChangedListener;->onPackagesUnavailable(Landroid/os/UserHandle;[Ljava/lang/String;Z)V
 Landroid/content/pm/IOnAppsChangedListener;->onPackagesUnsuspended(Landroid/os/UserHandle;[Ljava/lang/String;)V
 Landroid/content/pm/IOnAppsChangedListener;->onShortcutChanged(Landroid/os/UserHandle;Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
-Landroid/content/pm/IOnPermissionsChangeListener$Stub$Proxy;
 Landroid/content/pm/IOnPermissionsChangeListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/pm/IOnPermissionsChangeListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/pm/IOnPermissionsChangeListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/content/pm/IOnPermissionsChangeListener$Stub$Proxy;->onPermissionsChanged(I)V
-Landroid/content/pm/IOnPermissionsChangeListener$Stub;
 Landroid/content/pm/IOnPermissionsChangeListener$Stub;-><init>()V
 Landroid/content/pm/IOnPermissionsChangeListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IOnPermissionsChangeListener;
 Landroid/content/pm/IOnPermissionsChangeListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/pm/IOnPermissionsChangeListener$Stub;->TRANSACTION_onPermissionsChanged:I
-Landroid/content/pm/IOnPermissionsChangeListener;
 Landroid/content/pm/IOnPermissionsChangeListener;->onPermissionsChanged(I)V
-Landroid/content/pm/IOtaDexopt$Stub$Proxy;
 Landroid/content/pm/IOtaDexopt$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/pm/IOtaDexopt$Stub$Proxy;->cleanup()V
 Landroid/content/pm/IOtaDexopt$Stub$Proxy;->dexoptNextPackage()V
@@ -15265,7 +14284,6 @@
 Landroid/content/pm/IOtaDexopt$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/content/pm/IOtaDexopt$Stub$Proxy;->nextDexoptCommand()Ljava/lang/String;
 Landroid/content/pm/IOtaDexopt$Stub$Proxy;->prepare()V
-Landroid/content/pm/IOtaDexopt$Stub;
 Landroid/content/pm/IOtaDexopt$Stub;-><init>()V
 Landroid/content/pm/IOtaDexopt$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IOtaDexopt;
 Landroid/content/pm/IOtaDexopt$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -15275,39 +14293,28 @@
 Landroid/content/pm/IOtaDexopt$Stub;->TRANSACTION_isDone:I
 Landroid/content/pm/IOtaDexopt$Stub;->TRANSACTION_nextDexoptCommand:I
 Landroid/content/pm/IOtaDexopt$Stub;->TRANSACTION_prepare:I
-Landroid/content/pm/IOtaDexopt;
 Landroid/content/pm/IOtaDexopt;->cleanup()V
 Landroid/content/pm/IOtaDexopt;->dexoptNextPackage()V
 Landroid/content/pm/IOtaDexopt;->getProgress()F
 Landroid/content/pm/IOtaDexopt;->isDone()Z
 Landroid/content/pm/IOtaDexopt;->nextDexoptCommand()Ljava/lang/String;
 Landroid/content/pm/IOtaDexopt;->prepare()V
-Landroid/content/pm/IPackageDataObserver$Stub$Proxy;
 Landroid/content/pm/IPackageDataObserver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/pm/IPackageDataObserver$Stub$Proxy;->onRemoveCompleted(Ljava/lang/String;Z)V
-Landroid/content/pm/IPackageDataObserver$Stub;
 Landroid/content/pm/IPackageDataObserver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/pm/IPackageDataObserver$Stub;->TRANSACTION_onRemoveCompleted:I
-Landroid/content/pm/IPackageDataObserver;
-Landroid/content/pm/IPackageDeleteObserver$Stub$Proxy;
 Landroid/content/pm/IPackageDeleteObserver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/pm/IPackageDeleteObserver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/content/pm/IPackageDeleteObserver$Stub$Proxy;->packageDeleted(Ljava/lang/String;I)V
-Landroid/content/pm/IPackageDeleteObserver$Stub;
 Landroid/content/pm/IPackageDeleteObserver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/pm/IPackageDeleteObserver$Stub;->TRANSACTION_packageDeleted:I
-Landroid/content/pm/IPackageDeleteObserver2$Stub$Proxy;
 Landroid/content/pm/IPackageDeleteObserver2$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/pm/IPackageDeleteObserver2$Stub$Proxy;->onPackageDeleted(Ljava/lang/String;ILjava/lang/String;)V
 Landroid/content/pm/IPackageDeleteObserver2$Stub$Proxy;->onUserActionRequired(Landroid/content/Intent;)V
-Landroid/content/pm/IPackageDeleteObserver2$Stub;
 Landroid/content/pm/IPackageDeleteObserver2$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/pm/IPackageDeleteObserver2$Stub;->TRANSACTION_onPackageDeleted:I
 Landroid/content/pm/IPackageDeleteObserver2$Stub;->TRANSACTION_onUserActionRequired:I
-Landroid/content/pm/IPackageDeleteObserver2;
 Landroid/content/pm/IPackageDeleteObserver2;->onUserActionRequired(Landroid/content/Intent;)V
-Landroid/content/pm/IPackageDeleteObserver;
-Landroid/content/pm/IPackageInstaller$Stub$Proxy;
 Landroid/content/pm/IPackageInstaller$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/pm/IPackageInstaller$Stub$Proxy;->abandonSession(I)V
 Landroid/content/pm/IPackageInstaller$Stub$Proxy;->createSession(Landroid/content/pm/PackageInstaller$SessionParams;Ljava/lang/String;I)I
@@ -15323,7 +14330,6 @@
 Landroid/content/pm/IPackageInstaller$Stub$Proxy;->unregisterCallback(Landroid/content/pm/IPackageInstallerCallback;)V
 Landroid/content/pm/IPackageInstaller$Stub$Proxy;->updateSessionAppIcon(ILandroid/graphics/Bitmap;)V
 Landroid/content/pm/IPackageInstaller$Stub$Proxy;->updateSessionAppLabel(ILjava/lang/String;)V
-Landroid/content/pm/IPackageInstaller$Stub;
 Landroid/content/pm/IPackageInstaller$Stub;-><init>()V
 Landroid/content/pm/IPackageInstaller$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageInstaller;
 Landroid/content/pm/IPackageInstaller$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -15339,7 +14345,6 @@
 Landroid/content/pm/IPackageInstaller$Stub;->TRANSACTION_unregisterCallback:I
 Landroid/content/pm/IPackageInstaller$Stub;->TRANSACTION_updateSessionAppIcon:I
 Landroid/content/pm/IPackageInstaller$Stub;->TRANSACTION_updateSessionAppLabel:I
-Landroid/content/pm/IPackageInstaller;
 Landroid/content/pm/IPackageInstaller;->abandonSession(I)V
 Landroid/content/pm/IPackageInstaller;->createSession(Landroid/content/pm/PackageInstaller$SessionParams;Ljava/lang/String;I)I
 Landroid/content/pm/IPackageInstaller;->getAllSessions(I)Landroid/content/pm/ParceledListSlice;
@@ -15351,14 +14356,12 @@
 Landroid/content/pm/IPackageInstaller;->unregisterCallback(Landroid/content/pm/IPackageInstallerCallback;)V
 Landroid/content/pm/IPackageInstaller;->updateSessionAppIcon(ILandroid/graphics/Bitmap;)V
 Landroid/content/pm/IPackageInstaller;->updateSessionAppLabel(ILjava/lang/String;)V
-Landroid/content/pm/IPackageInstallerCallback$Stub$Proxy;
 Landroid/content/pm/IPackageInstallerCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/pm/IPackageInstallerCallback$Stub$Proxy;->onSessionActiveChanged(IZ)V
 Landroid/content/pm/IPackageInstallerCallback$Stub$Proxy;->onSessionBadgingChanged(I)V
 Landroid/content/pm/IPackageInstallerCallback$Stub$Proxy;->onSessionCreated(I)V
 Landroid/content/pm/IPackageInstallerCallback$Stub$Proxy;->onSessionFinished(IZ)V
 Landroid/content/pm/IPackageInstallerCallback$Stub$Proxy;->onSessionProgressChanged(IF)V
-Landroid/content/pm/IPackageInstallerCallback$Stub;
 Landroid/content/pm/IPackageInstallerCallback$Stub;-><init>()V
 Landroid/content/pm/IPackageInstallerCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/pm/IPackageInstallerCallback$Stub;->TRANSACTION_onSessionActiveChanged:I
@@ -15366,8 +14369,6 @@
 Landroid/content/pm/IPackageInstallerCallback$Stub;->TRANSACTION_onSessionCreated:I
 Landroid/content/pm/IPackageInstallerCallback$Stub;->TRANSACTION_onSessionFinished:I
 Landroid/content/pm/IPackageInstallerCallback$Stub;->TRANSACTION_onSessionProgressChanged:I
-Landroid/content/pm/IPackageInstallerCallback;
-Landroid/content/pm/IPackageInstallerSession$Stub$Proxy;
 Landroid/content/pm/IPackageInstallerSession$Stub$Proxy;->abandon()V
 Landroid/content/pm/IPackageInstallerSession$Stub$Proxy;->addClientProgress(F)V
 Landroid/content/pm/IPackageInstallerSession$Stub$Proxy;->close()V
@@ -15380,7 +14381,6 @@
 Landroid/content/pm/IPackageInstallerSession$Stub$Proxy;->setClientProgress(F)V
 Landroid/content/pm/IPackageInstallerSession$Stub$Proxy;->transfer(Ljava/lang/String;)V
 Landroid/content/pm/IPackageInstallerSession$Stub$Proxy;->write(Ljava/lang/String;JJLandroid/os/ParcelFileDescriptor;)V
-Landroid/content/pm/IPackageInstallerSession$Stub;
 Landroid/content/pm/IPackageInstallerSession$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/pm/IPackageInstallerSession$Stub;->TRANSACTION_abandon:I
 Landroid/content/pm/IPackageInstallerSession$Stub;->TRANSACTION_addClientProgress:I
@@ -15393,7 +14393,6 @@
 Landroid/content/pm/IPackageInstallerSession$Stub;->TRANSACTION_setClientProgress:I
 Landroid/content/pm/IPackageInstallerSession$Stub;->TRANSACTION_transfer:I
 Landroid/content/pm/IPackageInstallerSession$Stub;->TRANSACTION_write:I
-Landroid/content/pm/IPackageInstallerSession;
 Landroid/content/pm/IPackageInstallerSession;->abandon()V
 Landroid/content/pm/IPackageInstallerSession;->addClientProgress(F)V
 Landroid/content/pm/IPackageInstallerSession;->close()V
@@ -15405,16 +14404,12 @@
 Landroid/content/pm/IPackageInstallerSession;->setClientProgress(F)V
 Landroid/content/pm/IPackageInstallerSession;->transfer(Ljava/lang/String;)V
 Landroid/content/pm/IPackageInstallerSession;->write(Ljava/lang/String;JJLandroid/os/ParcelFileDescriptor;)V
-Landroid/content/pm/IPackageInstallObserver2$Stub$Proxy;
 Landroid/content/pm/IPackageInstallObserver2$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/pm/IPackageInstallObserver2$Stub$Proxy;->onPackageInstalled(Ljava/lang/String;ILjava/lang/String;Landroid/os/Bundle;)V
 Landroid/content/pm/IPackageInstallObserver2$Stub$Proxy;->onUserActionRequired(Landroid/content/Intent;)V
-Landroid/content/pm/IPackageInstallObserver2$Stub;
 Landroid/content/pm/IPackageInstallObserver2$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/pm/IPackageInstallObserver2$Stub;->TRANSACTION_onPackageInstalled:I
 Landroid/content/pm/IPackageInstallObserver2$Stub;->TRANSACTION_onUserActionRequired:I
-Landroid/content/pm/IPackageInstallObserver2;
-Landroid/content/pm/IPackageManager$Stub$Proxy;
 Landroid/content/pm/IPackageManager$Stub$Proxy;->activitySupportsIntent(Landroid/content/ComponentName;Landroid/content/Intent;Ljava/lang/String;)Z
 Landroid/content/pm/IPackageManager$Stub$Proxy;->addCrossProfileIntentFilter(Landroid/content/IntentFilter;Ljava/lang/String;III)V
 Landroid/content/pm/IPackageManager$Stub$Proxy;->addOnPermissionsChangeListener(Landroid/content/pm/IOnPermissionsChangeListener;)V
@@ -15601,7 +14596,6 @@
 Landroid/content/pm/IPackageManager$Stub$Proxy;->updatePermissionFlagsForAllApps(III)V
 Landroid/content/pm/IPackageManager$Stub$Proxy;->verifyIntentFilter(IILjava/util/List;)V
 Landroid/content/pm/IPackageManager$Stub$Proxy;->verifyPendingInstall(II)V
-Landroid/content/pm/IPackageManager$Stub;
 Landroid/content/pm/IPackageManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_activitySupportsIntent:I
 Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_addCrossProfileIntentFilter:I
@@ -15794,7 +14788,6 @@
 Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_updatePermissionFlagsForAllApps:I
 Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_verifyIntentFilter:I
 Landroid/content/pm/IPackageManager$Stub;->TRANSACTION_verifyPendingInstall:I
-Landroid/content/pm/IPackageManager;
 Landroid/content/pm/IPackageManager;->activitySupportsIntent(Landroid/content/ComponentName;Landroid/content/Intent;Ljava/lang/String;)Z
 Landroid/content/pm/IPackageManager;->addCrossProfileIntentFilter(Landroid/content/IntentFilter;Ljava/lang/String;III)V
 Landroid/content/pm/IPackageManager;->addOnPermissionsChangeListener(Landroid/content/pm/IOnPermissionsChangeListener;)V
@@ -15927,45 +14920,35 @@
 Landroid/content/pm/IPackageManager;->updatePermissionFlagsForAllApps(III)V
 Landroid/content/pm/IPackageManager;->verifyIntentFilter(IILjava/util/List;)V
 Landroid/content/pm/IPackageManager;->verifyPendingInstall(II)V
-Landroid/content/pm/IPackageManagerNative$Stub$Proxy;
 Landroid/content/pm/IPackageManagerNative$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/pm/IPackageManagerNative$Stub$Proxy;->getInstallerForPackage(Ljava/lang/String;)Ljava/lang/String;
 Landroid/content/pm/IPackageManagerNative$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/pm/IPackageManagerNative$Stub$Proxy;->getNamesForUids([I)[Ljava/lang/String;
 Landroid/content/pm/IPackageManagerNative$Stub$Proxy;->getVersionCodeForPackage(Ljava/lang/String;)J
 Landroid/content/pm/IPackageManagerNative$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/content/pm/IPackageManagerNative$Stub;
 Landroid/content/pm/IPackageManagerNative$Stub;-><init>()V
 Landroid/content/pm/IPackageManagerNative$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageManagerNative;
 Landroid/content/pm/IPackageManagerNative$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/pm/IPackageManagerNative$Stub;->TRANSACTION_getInstallerForPackage:I
 Landroid/content/pm/IPackageManagerNative$Stub;->TRANSACTION_getNamesForUids:I
 Landroid/content/pm/IPackageManagerNative$Stub;->TRANSACTION_getVersionCodeForPackage:I
-Landroid/content/pm/IPackageManagerNative;
 Landroid/content/pm/IPackageManagerNative;->getInstallerForPackage(Ljava/lang/String;)Ljava/lang/String;
 Landroid/content/pm/IPackageManagerNative;->getNamesForUids([I)[Ljava/lang/String;
 Landroid/content/pm/IPackageManagerNative;->getVersionCodeForPackage(Ljava/lang/String;)J
-Landroid/content/pm/IPackageMoveObserver$Stub$Proxy;
 Landroid/content/pm/IPackageMoveObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/pm/IPackageMoveObserver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/pm/IPackageMoveObserver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/content/pm/IPackageMoveObserver$Stub$Proxy;->onCreated(ILandroid/os/Bundle;)V
 Landroid/content/pm/IPackageMoveObserver$Stub$Proxy;->onStatusChanged(IIJ)V
-Landroid/content/pm/IPackageMoveObserver$Stub;
 Landroid/content/pm/IPackageMoveObserver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/pm/IPackageMoveObserver$Stub;->TRANSACTION_onCreated:I
 Landroid/content/pm/IPackageMoveObserver$Stub;->TRANSACTION_onStatusChanged:I
-Landroid/content/pm/IPackageMoveObserver;
 Landroid/content/pm/IPackageMoveObserver;->onCreated(ILandroid/os/Bundle;)V
 Landroid/content/pm/IPackageMoveObserver;->onStatusChanged(IIJ)V
-Landroid/content/pm/IPackageStatsObserver$Stub$Proxy;
 Landroid/content/pm/IPackageStatsObserver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/pm/IPackageStatsObserver$Stub$Proxy;->onGetStatsCompleted(Landroid/content/pm/PackageStats;Z)V
-Landroid/content/pm/IPackageStatsObserver$Stub;
 Landroid/content/pm/IPackageStatsObserver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/pm/IPackageStatsObserver$Stub;->TRANSACTION_onGetStatsCompleted:I
-Landroid/content/pm/IPackageStatsObserver;
-Landroid/content/pm/IPinItemRequest$Stub$Proxy;
 Landroid/content/pm/IPinItemRequest$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/pm/IPinItemRequest$Stub$Proxy;->accept(Landroid/os/Bundle;)Z
 Landroid/content/pm/IPinItemRequest$Stub$Proxy;->getAppWidgetProviderInfo()Landroid/appwidget/AppWidgetProviderInfo;
@@ -15974,7 +14957,6 @@
 Landroid/content/pm/IPinItemRequest$Stub$Proxy;->getShortcutInfo()Landroid/content/pm/ShortcutInfo;
 Landroid/content/pm/IPinItemRequest$Stub$Proxy;->isValid()Z
 Landroid/content/pm/IPinItemRequest$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/content/pm/IPinItemRequest$Stub;
 Landroid/content/pm/IPinItemRequest$Stub;-><init>()V
 Landroid/content/pm/IPinItemRequest$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPinItemRequest;
 Landroid/content/pm/IPinItemRequest$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -15983,13 +14965,11 @@
 Landroid/content/pm/IPinItemRequest$Stub;->TRANSACTION_getExtras:I
 Landroid/content/pm/IPinItemRequest$Stub;->TRANSACTION_getShortcutInfo:I
 Landroid/content/pm/IPinItemRequest$Stub;->TRANSACTION_isValid:I
-Landroid/content/pm/IPinItemRequest;
 Landroid/content/pm/IPinItemRequest;->accept(Landroid/os/Bundle;)Z
 Landroid/content/pm/IPinItemRequest;->getAppWidgetProviderInfo()Landroid/appwidget/AppWidgetProviderInfo;
 Landroid/content/pm/IPinItemRequest;->getExtras()Landroid/os/Bundle;
 Landroid/content/pm/IPinItemRequest;->getShortcutInfo()Landroid/content/pm/ShortcutInfo;
 Landroid/content/pm/IPinItemRequest;->isValid()Z
-Landroid/content/pm/IShortcutService$Stub$Proxy;
 Landroid/content/pm/IShortcutService$Stub$Proxy;->addDynamicShortcuts(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;I)Z
 Landroid/content/pm/IShortcutService$Stub$Proxy;->applyRestore([BI)V
 Landroid/content/pm/IShortcutService$Stub$Proxy;->createShortcutResultIntent(Ljava/lang/String;Landroid/content/pm/ShortcutInfo;I)Landroid/content/Intent;
@@ -16014,7 +14994,6 @@
 Landroid/content/pm/IShortcutService$Stub$Proxy;->resetThrottling()V
 Landroid/content/pm/IShortcutService$Stub$Proxy;->setDynamicShortcuts(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;I)Z
 Landroid/content/pm/IShortcutService$Stub$Proxy;->updateShortcuts(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;I)Z
-Landroid/content/pm/IShortcutService$Stub;
 Landroid/content/pm/IShortcutService$Stub;-><init>()V
 Landroid/content/pm/IShortcutService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_addDynamicShortcuts:I
@@ -16039,7 +15018,6 @@
 Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_resetThrottling:I
 Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_setDynamicShortcuts:I
 Landroid/content/pm/IShortcutService$Stub;->TRANSACTION_updateShortcuts:I
-Landroid/content/pm/IShortcutService;
 Landroid/content/pm/IShortcutService;->addDynamicShortcuts(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;I)Z
 Landroid/content/pm/IShortcutService;->applyRestore([BI)V
 Landroid/content/pm/IShortcutService;->createShortcutResultIntent(Ljava/lang/String;Landroid/content/pm/ShortcutInfo;I)Landroid/content/Intent;
@@ -16062,7 +15040,6 @@
 Landroid/content/pm/IShortcutService;->resetThrottling()V
 Landroid/content/pm/IShortcutService;->setDynamicShortcuts(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;I)Z
 Landroid/content/pm/IShortcutService;->updateShortcuts(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;I)Z
-Landroid/content/pm/KeySet;
 Landroid/content/pm/KeySet;-><init>(Landroid/os/IBinder;)V
 Landroid/content/pm/KeySet;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/content/pm/KeySet;->getToken()Landroid/os/IBinder;
@@ -16080,7 +15057,6 @@
 Landroid/content/pm/LauncherActivityInfo;->mPm:Landroid/content/pm/PackageManager;
 Landroid/content/pm/LauncherActivityInfo;->mUser:Landroid/os/UserHandle;
 Landroid/content/pm/LauncherActivityInfo;->TAG:Ljava/lang/String;
-Landroid/content/pm/LauncherApps$CallbackMessageHandler$CallbackInfo;
 Landroid/content/pm/LauncherApps$CallbackMessageHandler$CallbackInfo;-><init>()V
 Landroid/content/pm/LauncherApps$CallbackMessageHandler$CallbackInfo;->launcherExtras:Landroid/os/Bundle;
 Landroid/content/pm/LauncherApps$CallbackMessageHandler$CallbackInfo;->packageName:Ljava/lang/String;
@@ -16088,7 +15064,6 @@
 Landroid/content/pm/LauncherApps$CallbackMessageHandler$CallbackInfo;->replacing:Z
 Landroid/content/pm/LauncherApps$CallbackMessageHandler$CallbackInfo;->shortcuts:Ljava/util/List;
 Landroid/content/pm/LauncherApps$CallbackMessageHandler$CallbackInfo;->user:Landroid/os/UserHandle;
-Landroid/content/pm/LauncherApps$CallbackMessageHandler;
 Landroid/content/pm/LauncherApps$CallbackMessageHandler;-><init>(Landroid/os/Looper;Landroid/content/pm/LauncherApps$Callback;)V
 Landroid/content/pm/LauncherApps$CallbackMessageHandler;->mCallback:Landroid/content/pm/LauncherApps$Callback;
 Landroid/content/pm/LauncherApps$CallbackMessageHandler;->MSG_ADDED:I
@@ -16107,12 +15082,10 @@
 Landroid/content/pm/LauncherApps$CallbackMessageHandler;->postOnPackagesUnavailable([Ljava/lang/String;Landroid/os/UserHandle;Z)V
 Landroid/content/pm/LauncherApps$CallbackMessageHandler;->postOnPackagesUnsuspended([Ljava/lang/String;Landroid/os/UserHandle;)V
 Landroid/content/pm/LauncherApps$CallbackMessageHandler;->postOnShortcutChanged(Ljava/lang/String;Landroid/os/UserHandle;Ljava/util/List;)V
-Landroid/content/pm/LauncherApps$PinItemRequest$RequestType;
 Landroid/content/pm/LauncherApps$PinItemRequest;-><init>(Landroid/content/pm/IPinItemRequest;I)V
 Landroid/content/pm/LauncherApps$PinItemRequest;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/LauncherApps$PinItemRequest;->mInner:Landroid/content/pm/IPinItemRequest;
 Landroid/content/pm/LauncherApps$PinItemRequest;->mRequestType:I
-Landroid/content/pm/LauncherApps$ShortcutQuery$QueryFlags;
 Landroid/content/pm/LauncherApps$ShortcutQuery;->FLAG_GET_ALL_KINDS:I
 Landroid/content/pm/LauncherApps$ShortcutQuery;->FLAG_GET_DYNAMIC:I
 Landroid/content/pm/LauncherApps$ShortcutQuery;->FLAG_GET_MANIFEST:I
@@ -16144,24 +15117,18 @@
 Landroid/content/pm/LauncherApps;->mUserManager:Landroid/os/UserManager;
 Landroid/content/pm/LauncherApps;->removeCallbackLocked(Landroid/content/pm/LauncherApps$Callback;)V
 Landroid/content/pm/LauncherApps;->TAG:Ljava/lang/String;
-Landroid/content/pm/LimitedLengthInputStream;
 Landroid/content/pm/LimitedLengthInputStream;-><init>(Ljava/io/InputStream;JJ)V
 Landroid/content/pm/LimitedLengthInputStream;->mEnd:J
 Landroid/content/pm/LimitedLengthInputStream;->mOffset:J
-Landroid/content/pm/MacAuthenticatedInputStream;
 Landroid/content/pm/MacAuthenticatedInputStream;-><init>(Ljava/io/InputStream;Ljavax/crypto/Mac;)V
 Landroid/content/pm/MacAuthenticatedInputStream;->isTagEqual([B)Z
 Landroid/content/pm/MacAuthenticatedInputStream;->mMac:Ljavax/crypto/Mac;
-Landroid/content/pm/PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater;
 Landroid/content/pm/PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater;-><init>()V
 Landroid/content/pm/PackageBackwardCompatibility$AndroidTestRunnerSplitUpdater;->updatePackage(Landroid/content/pm/PackageParser$Package;)V
-Landroid/content/pm/PackageBackwardCompatibility$RemoveUnnecessaryAndroidTestBaseLibrary;
 Landroid/content/pm/PackageBackwardCompatibility$RemoveUnnecessaryAndroidTestBaseLibrary;-><init>()V
 Landroid/content/pm/PackageBackwardCompatibility$RemoveUnnecessaryAndroidTestBaseLibrary;->updatePackage(Landroid/content/pm/PackageParser$Package;)V
-Landroid/content/pm/PackageBackwardCompatibility$RemoveUnnecessaryOrgApacheHttpLegacyLibrary;
 Landroid/content/pm/PackageBackwardCompatibility$RemoveUnnecessaryOrgApacheHttpLegacyLibrary;-><init>()V
 Landroid/content/pm/PackageBackwardCompatibility$RemoveUnnecessaryOrgApacheHttpLegacyLibrary;->updatePackage(Landroid/content/pm/PackageParser$Package;)V
-Landroid/content/pm/PackageBackwardCompatibility;
 Landroid/content/pm/PackageBackwardCompatibility;-><init>(ZZ[Landroid/content/pm/PackageSharedLibraryUpdater;)V
 Landroid/content/pm/PackageBackwardCompatibility;->addOptionalUpdater(Ljava/util/List;Ljava/lang/String;Ljava/util/function/Supplier;)Z
 Landroid/content/pm/PackageBackwardCompatibility;->bootClassPathContainsATB()Z
@@ -16174,7 +15141,6 @@
 Landroid/content/pm/PackageBackwardCompatibility;->mPackageUpdaters:[Landroid/content/pm/PackageSharedLibraryUpdater;
 Landroid/content/pm/PackageBackwardCompatibility;->TAG:Ljava/lang/String;
 Landroid/content/pm/PackageBackwardCompatibility;->updatePackage(Landroid/content/pm/PackageParser$Package;)V
-Landroid/content/pm/PackageCleanItem;
 Landroid/content/pm/PackageCleanItem;-><init>(ILjava/lang/String;Z)V
 Landroid/content/pm/PackageCleanItem;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/PackageCleanItem;->andCode:Z
@@ -16195,7 +15161,6 @@
 Landroid/content/pm/PackageInfo;->requiredForAllUsers:Z
 Landroid/content/pm/PackageInfo;->restrictedAccountType:Ljava/lang/String;
 Landroid/content/pm/PackageInfo;->versionCodeMajor:I
-Landroid/content/pm/PackageInfoLite;
 Landroid/content/pm/PackageInfoLite;-><init>()V
 Landroid/content/pm/PackageInfoLite;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/PackageInfoLite;->baseRevisionCode:I
@@ -16213,7 +15178,6 @@
 Landroid/content/pm/PackageInstaller$Session;->mSession:Landroid/content/pm/IPackageInstallerSession;
 Landroid/content/pm/PackageInstaller$Session;->setProgress(F)V
 Landroid/content/pm/PackageInstaller$Session;->write(Ljava/lang/String;JJLandroid/os/ParcelFileDescriptor;)V
-Landroid/content/pm/PackageInstaller$SessionCallbackDelegate;
 Landroid/content/pm/PackageInstaller$SessionCallbackDelegate;-><init>(Landroid/content/pm/PackageInstaller$SessionCallback;Landroid/os/Looper;)V
 Landroid/content/pm/PackageInstaller$SessionCallbackDelegate;->mCallback:Landroid/content/pm/PackageInstaller$SessionCallback;
 Landroid/content/pm/PackageInstaller$SessionCallbackDelegate;->mHandler:Landroid/os/Handler;
@@ -16274,8 +15238,6 @@
 Landroid/content/pm/PackageInstaller;->uninstall(Ljava/lang/String;ILandroid/content/IntentSender;)V
 Landroid/content/pm/PackageItemInfo$DisplayNameComparator;->mPM:Landroid/content/pm/PackageManager;
 Landroid/content/pm/PackageItemInfo$DisplayNameComparator;->sCollator:Ljava/text/Collator;
-Landroid/content/pm/PackageItemInfo$SafeLabelFlags;
-Landroid/content/pm/PackageItemInfo$StringWithRemovedChars;
 Landroid/content/pm/PackageItemInfo$StringWithRemovedChars;-><init>(Ljava/lang/String;)V
 Landroid/content/pm/PackageItemInfo$StringWithRemovedChars;->codePointAt(I)I
 Landroid/content/pm/PackageItemInfo$StringWithRemovedChars;->isRemoved(I)Z
@@ -16306,7 +15268,6 @@
 Landroid/content/pm/PackageItemInfo;->sForceSafeLabels:Z
 Landroid/content/pm/PackageItemInfo;->showUserIcon:I
 Landroid/content/pm/PackageItemInfo;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/content/pm/PackageItemInfoProto;
 Landroid/content/pm/PackageItemInfoProto;-><init>()V
 Landroid/content/pm/PackageItemInfoProto;->BANNER:J
 Landroid/content/pm/PackageItemInfoProto;->ICON:J
@@ -16314,36 +15275,18 @@
 Landroid/content/pm/PackageItemInfoProto;->NAME:J
 Landroid/content/pm/PackageItemInfoProto;->NON_LOCALIZED_LABEL:J
 Landroid/content/pm/PackageItemInfoProto;->PACKAGE_NAME:J
-Landroid/content/pm/PackageList;
 Landroid/content/pm/PackageList;-><init>(Ljava/util/List;Landroid/content/pm/PackageManagerInternal$PackageListObserver;)V
 Landroid/content/pm/PackageList;->getPackageNames()Ljava/util/List;
 Landroid/content/pm/PackageList;->mPackageNames:Ljava/util/List;
 Landroid/content/pm/PackageList;->mWrappedObserver:Landroid/content/pm/PackageManagerInternal$PackageListObserver;
 Landroid/content/pm/PackageList;->onPackageAdded(Ljava/lang/String;)V
 Landroid/content/pm/PackageList;->onPackageRemoved(Ljava/lang/String;)V
-Landroid/content/pm/PackageManager$ApplicationInfoFlags;
-Landroid/content/pm/PackageManager$CertificateInputType;
-Landroid/content/pm/PackageManager$ComponentInfoFlags;
-Landroid/content/pm/PackageManager$DeleteFlags;
-Landroid/content/pm/PackageManager$EnabledFlags;
-Landroid/content/pm/PackageManager$EnabledState;
-Landroid/content/pm/PackageManager$InstallFlags;
-Landroid/content/pm/PackageManager$InstallReason;
-Landroid/content/pm/PackageManager$InstrumentationInfoFlags;
-Landroid/content/pm/PackageManager$LegacyPackageDeleteObserver;
 Landroid/content/pm/PackageManager$LegacyPackageDeleteObserver;-><init>(Landroid/content/pm/IPackageDeleteObserver;)V
 Landroid/content/pm/PackageManager$LegacyPackageDeleteObserver;->mLegacy:Landroid/content/pm/IPackageDeleteObserver;
 Landroid/content/pm/PackageManager$LegacyPackageDeleteObserver;->onPackageDeleted(Ljava/lang/String;ILjava/lang/String;)V
-Landroid/content/pm/PackageManager$MoveCallback;
 Landroid/content/pm/PackageManager$MoveCallback;-><init>()V
 Landroid/content/pm/PackageManager$MoveCallback;->onCreated(ILandroid/os/Bundle;)V
 Landroid/content/pm/PackageManager$MoveCallback;->onStatusChanged(IIJ)V
-Landroid/content/pm/PackageManager$PackageInfoFlags;
-Landroid/content/pm/PackageManager$PermissionGroupInfoFlags;
-Landroid/content/pm/PackageManager$PermissionInfoFlags;
-Landroid/content/pm/PackageManager$PermissionResult;
-Landroid/content/pm/PackageManager$ResolveInfoFlags;
-Landroid/content/pm/PackageManager$SignatureResult;
 Landroid/content/pm/PackageManager;->ACTION_CLEAN_EXTERNAL_STORAGE:Ljava/lang/String;
 Landroid/content/pm/PackageManager;->APPLY_DEFAULT_TO_DEVICE_PROTECTED_STORAGE:Z
 Landroid/content/pm/PackageManager;->deleteStatusToPublicStatus(I)I
@@ -16453,20 +15396,14 @@
 Landroid/content/pm/PackageManager;->SYSTEM_SHARED_LIBRARY_SHARED:Ljava/lang/String;
 Landroid/content/pm/PackageManager;->TAG:Ljava/lang/String;
 Landroid/content/pm/PackageManager;->VERIFICATION_ALLOW_WITHOUT_SUFFICIENT:I
-Landroid/content/pm/PackageManagerInternal$ExternalSourcesPolicy;
 Landroid/content/pm/PackageManagerInternal$ExternalSourcesPolicy;->getPackageTrustedToInstallApps(Ljava/lang/String;I)I
 Landroid/content/pm/PackageManagerInternal$ExternalSourcesPolicy;->USER_BLOCKED:I
 Landroid/content/pm/PackageManagerInternal$ExternalSourcesPolicy;->USER_DEFAULT:I
 Landroid/content/pm/PackageManagerInternal$ExternalSourcesPolicy;->USER_TRUSTED:I
-Landroid/content/pm/PackageManagerInternal$KnownPackage;
-Landroid/content/pm/PackageManagerInternal$PackageListObserver;
 Landroid/content/pm/PackageManagerInternal$PackageListObserver;->onPackageAdded(Ljava/lang/String;)V
 Landroid/content/pm/PackageManagerInternal$PackageListObserver;->onPackageRemoved(Ljava/lang/String;)V
-Landroid/content/pm/PackageManagerInternal$PackagesProvider;
 Landroid/content/pm/PackageManagerInternal$PackagesProvider;->getPackages(I)[Ljava/lang/String;
-Landroid/content/pm/PackageManagerInternal$SyncAdapterPackagesProvider;
 Landroid/content/pm/PackageManagerInternal$SyncAdapterPackagesProvider;->getPackages(Ljava/lang/String;I)[Ljava/lang/String;
-Landroid/content/pm/PackageManagerInternal;
 Landroid/content/pm/PackageManagerInternal;-><init>()V
 Landroid/content/pm/PackageManagerInternal;->addIsolatedUid(II)V
 Landroid/content/pm/PackageManagerInternal;->canAccessComponent(ILandroid/content/ComponentName;I)Z
@@ -16544,7 +15481,6 @@
 Landroid/content/pm/PackageManagerInternal;->setVoiceInteractionPackagesProvider(Landroid/content/pm/PackageManagerInternal$PackagesProvider;)V
 Landroid/content/pm/PackageManagerInternal;->updatePermissionFlagsTEMP(Ljava/lang/String;Ljava/lang/String;III)V
 Landroid/content/pm/PackageManagerInternal;->wasPackageEverLaunched(Ljava/lang/String;I)Z
-Landroid/content/pm/PackageParser$Activity;
 Landroid/content/pm/PackageParser$Activity;-><init>(Landroid/content/pm/PackageParser$ParseComponentArgs;Landroid/content/pm/ActivityInfo;)V
 Landroid/content/pm/PackageParser$Activity;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/PackageParser$Activity;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -16552,10 +15488,8 @@
 Landroid/content/pm/PackageParser$Activity;->mHasMaxAspectRatio:Z
 Landroid/content/pm/PackageParser$Activity;->setMaxAspectRatio(F)V
 Landroid/content/pm/PackageParser$Activity;->setPackageName(Ljava/lang/String;)V
-Landroid/content/pm/PackageParser$ActivityIntentInfo;
 Landroid/content/pm/PackageParser$ActivityIntentInfo;-><init>(Landroid/content/pm/PackageParser$Activity;)V
 Landroid/content/pm/PackageParser$ActivityIntentInfo;-><init>(Landroid/os/Parcel;)V
-Landroid/content/pm/PackageParser$ApkLite;
 Landroid/content/pm/PackageParser$ApkLite;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;IIIILjava/util/List;Landroid/content/pm/PackageParser$SigningDetails;ZZZZZZ)V
 Landroid/content/pm/PackageParser$ApkLite;->codePath:Ljava/lang/String;
 Landroid/content/pm/PackageParser$ApkLite;->configForSplit:Ljava/lang/String;
@@ -16576,23 +15510,19 @@
 Landroid/content/pm/PackageParser$ApkLite;->verifiers:[Landroid/content/pm/VerifierInfo;
 Landroid/content/pm/PackageParser$ApkLite;->versionCode:I
 Landroid/content/pm/PackageParser$ApkLite;->versionCodeMajor:I
-Landroid/content/pm/PackageParser$CachedComponentArgs;
 Landroid/content/pm/PackageParser$CachedComponentArgs;-><init>()V
 Landroid/content/pm/PackageParser$CachedComponentArgs;->mActivityAliasArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
 Landroid/content/pm/PackageParser$CachedComponentArgs;->mActivityArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
 Landroid/content/pm/PackageParser$CachedComponentArgs;->mProviderArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
 Landroid/content/pm/PackageParser$CachedComponentArgs;->mServiceArgs:Landroid/content/pm/PackageParser$ParseComponentArgs;
-Landroid/content/pm/PackageParser$Callback;
 Landroid/content/pm/PackageParser$Callback;->getOverlayApks(Ljava/lang/String;)[Ljava/lang/String;
 Landroid/content/pm/PackageParser$Callback;->getOverlayPaths(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
 Landroid/content/pm/PackageParser$Callback;->hasFeature(Ljava/lang/String;)Z
-Landroid/content/pm/PackageParser$CallbackImpl;
 Landroid/content/pm/PackageParser$CallbackImpl;-><init>(Landroid/content/pm/PackageManager;)V
 Landroid/content/pm/PackageParser$CallbackImpl;->getOverlayApks(Ljava/lang/String;)[Ljava/lang/String;
 Landroid/content/pm/PackageParser$CallbackImpl;->getOverlayPaths(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
 Landroid/content/pm/PackageParser$CallbackImpl;->hasFeature(Ljava/lang/String;)Z
 Landroid/content/pm/PackageParser$CallbackImpl;->mPm:Landroid/content/pm/PackageManager;
-Landroid/content/pm/PackageParser$Component;
 Landroid/content/pm/PackageParser$Component;-><init>(Landroid/content/pm/PackageParser$Component;)V
 Landroid/content/pm/PackageParser$Component;-><init>(Landroid/content/pm/PackageParser$Package;)V
 Landroid/content/pm/PackageParser$Component;-><init>(Landroid/content/pm/PackageParser$ParseComponentArgs;Landroid/content/pm/ComponentInfo;)V
@@ -16607,19 +15537,15 @@
 Landroid/content/pm/PackageParser$Component;->setPackageName(Ljava/lang/String;)V
 Landroid/content/pm/PackageParser$Component;->writeIntentsList(Ljava/util/ArrayList;Landroid/os/Parcel;I)V
 Landroid/content/pm/PackageParser$Component;->writeToParcel(Landroid/os/Parcel;I)V
-Landroid/content/pm/PackageParser$Instrumentation;
 Landroid/content/pm/PackageParser$Instrumentation;-><init>(Landroid/content/pm/PackageParser$ParsePackageItemArgs;Landroid/content/pm/InstrumentationInfo;)V
 Landroid/content/pm/PackageParser$Instrumentation;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/PackageParser$Instrumentation;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/content/pm/PackageParser$Instrumentation;->setPackageName(Ljava/lang/String;)V
-Landroid/content/pm/PackageParser$IntentInfo;
 Landroid/content/pm/PackageParser$IntentInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/PackageParser$IntentInfo;->preferred:I
 Landroid/content/pm/PackageParser$IntentInfo;->writeIntentInfoToParcel(Landroid/os/Parcel;I)V
-Landroid/content/pm/PackageParser$NewPermissionInfo;
 Landroid/content/pm/PackageParser$NewPermissionInfo;-><init>(Ljava/lang/String;II)V
 Landroid/content/pm/PackageParser$NewPermissionInfo;->fileVersion:I
-Landroid/content/pm/PackageParser$Package;
 Landroid/content/pm/PackageParser$Package;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/PackageParser$Package;->baseCodePath:Ljava/lang/String;
 Landroid/content/pm/PackageParser$Package;->baseHardwareAccelerated:Z
@@ -16700,7 +15626,6 @@
 Landroid/content/pm/PackageParser$Package;->visibleToInstantApps:Z
 Landroid/content/pm/PackageParser$Package;->volumeUuid:Ljava/lang/String;
 Landroid/content/pm/PackageParser$Package;->writeKeySetMapping(Landroid/os/Parcel;Landroid/util/ArrayMap;)V
-Landroid/content/pm/PackageParser$PackageLite;
 Landroid/content/pm/PackageParser$PackageLite;-><init>(Ljava/lang/String;Landroid/content/pm/PackageParser$ApkLite;[Ljava/lang/String;[Z[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[I)V
 Landroid/content/pm/PackageParser$PackageLite;->baseCodePath:Ljava/lang/String;
 Landroid/content/pm/PackageParser$PackageLite;->baseRevisionCode:I
@@ -16721,19 +15646,15 @@
 Landroid/content/pm/PackageParser$PackageLite;->verifiers:[Landroid/content/pm/VerifierInfo;
 Landroid/content/pm/PackageParser$PackageLite;->versionCode:I
 Landroid/content/pm/PackageParser$PackageLite;->versionCodeMajor:I
-Landroid/content/pm/PackageParser$PackageParserException;
 Landroid/content/pm/PackageParser$PackageParserException;-><init>(ILjava/lang/String;)V
 Landroid/content/pm/PackageParser$PackageParserException;-><init>(ILjava/lang/String;Ljava/lang/Throwable;)V
 Landroid/content/pm/PackageParser$PackageParserException;->error:I
-Landroid/content/pm/PackageParser$ParseComponentArgs;
 Landroid/content/pm/PackageParser$ParseComponentArgs;-><init>(Landroid/content/pm/PackageParser$Package;[Ljava/lang/String;IIIIII[Ljava/lang/String;III)V
 Landroid/content/pm/PackageParser$ParseComponentArgs;->descriptionRes:I
 Landroid/content/pm/PackageParser$ParseComponentArgs;->enabledRes:I
 Landroid/content/pm/PackageParser$ParseComponentArgs;->flags:I
 Landroid/content/pm/PackageParser$ParseComponentArgs;->processRes:I
 Landroid/content/pm/PackageParser$ParseComponentArgs;->sepProcesses:[Ljava/lang/String;
-Landroid/content/pm/PackageParser$ParseFlags;
-Landroid/content/pm/PackageParser$ParsePackageItemArgs;
 Landroid/content/pm/PackageParser$ParsePackageItemArgs;-><init>(Landroid/content/pm/PackageParser$Package;[Ljava/lang/String;IIIIII)V
 Landroid/content/pm/PackageParser$ParsePackageItemArgs;->bannerRes:I
 Landroid/content/pm/PackageParser$ParsePackageItemArgs;->iconRes:I
@@ -16745,52 +15666,42 @@
 Landroid/content/pm/PackageParser$ParsePackageItemArgs;->roundIconRes:I
 Landroid/content/pm/PackageParser$ParsePackageItemArgs;->sa:Landroid/content/res/TypedArray;
 Landroid/content/pm/PackageParser$ParsePackageItemArgs;->tag:Ljava/lang/String;
-Landroid/content/pm/PackageParser$Permission;
 Landroid/content/pm/PackageParser$Permission;-><init>(Landroid/content/pm/PackageParser$Package;)V
 Landroid/content/pm/PackageParser$Permission;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/PackageParser$Permission;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/content/pm/PackageParser$Permission;->isAppOp()Z
 Landroid/content/pm/PackageParser$Permission;->setPackageName(Ljava/lang/String;)V
-Landroid/content/pm/PackageParser$PermissionGroup;
 Landroid/content/pm/PackageParser$PermissionGroup;-><init>(Landroid/content/pm/PackageParser$Package;)V
 Landroid/content/pm/PackageParser$PermissionGroup;-><init>(Landroid/content/pm/PackageParser$Package;Landroid/content/pm/PermissionGroupInfo;)V
 Landroid/content/pm/PackageParser$PermissionGroup;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/PackageParser$PermissionGroup;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/content/pm/PackageParser$PermissionGroup;->setPackageName(Ljava/lang/String;)V
-Landroid/content/pm/PackageParser$Provider;
 Landroid/content/pm/PackageParser$Provider;-><init>(Landroid/content/pm/PackageParser$ParseComponentArgs;Landroid/content/pm/ProviderInfo;)V
 Landroid/content/pm/PackageParser$Provider;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/PackageParser$Provider;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/content/pm/PackageParser$Provider;->setPackageName(Ljava/lang/String;)V
-Landroid/content/pm/PackageParser$ProviderIntentInfo;
 Landroid/content/pm/PackageParser$ProviderIntentInfo;-><init>(Landroid/content/pm/PackageParser$Provider;)V
 Landroid/content/pm/PackageParser$ProviderIntentInfo;-><init>(Landroid/os/Parcel;)V
-Landroid/content/pm/PackageParser$Service;
 Landroid/content/pm/PackageParser$Service;-><init>(Landroid/content/pm/PackageParser$ParseComponentArgs;Landroid/content/pm/ServiceInfo;)V
 Landroid/content/pm/PackageParser$Service;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/PackageParser$Service;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/content/pm/PackageParser$Service;->setPackageName(Ljava/lang/String;)V
-Landroid/content/pm/PackageParser$ServiceIntentInfo;
 Landroid/content/pm/PackageParser$ServiceIntentInfo;-><init>(Landroid/content/pm/PackageParser$Service;)V
 Landroid/content/pm/PackageParser$ServiceIntentInfo;-><init>(Landroid/os/Parcel;)V
-Landroid/content/pm/PackageParser$SigningDetails$Builder;
 Landroid/content/pm/PackageParser$SigningDetails$Builder;->checkInvariants()V
 Landroid/content/pm/PackageParser$SigningDetails$Builder;->mPastSigningCertificates:[Landroid/content/pm/Signature;
 Landroid/content/pm/PackageParser$SigningDetails$Builder;->mPastSigningCertificatesFlags:[I
 Landroid/content/pm/PackageParser$SigningDetails$Builder;->mSignatures:[Landroid/content/pm/Signature;
 Landroid/content/pm/PackageParser$SigningDetails$Builder;->mSignatureSchemeVersion:I
-Landroid/content/pm/PackageParser$SigningDetails$CertCapabilities;
 Landroid/content/pm/PackageParser$SigningDetails$CertCapabilities;->AUTH:I
 Landroid/content/pm/PackageParser$SigningDetails$CertCapabilities;->INSTALLED_DATA:I
 Landroid/content/pm/PackageParser$SigningDetails$CertCapabilities;->PERMISSION:I
 Landroid/content/pm/PackageParser$SigningDetails$CertCapabilities;->ROLLBACK:I
 Landroid/content/pm/PackageParser$SigningDetails$CertCapabilities;->SHARED_USER_ID:I
-Landroid/content/pm/PackageParser$SigningDetails$SignatureSchemeVersion;
 Landroid/content/pm/PackageParser$SigningDetails$SignatureSchemeVersion;->JAR:I
 Landroid/content/pm/PackageParser$SigningDetails$SignatureSchemeVersion;->SIGNING_BLOCK_V2:I
 Landroid/content/pm/PackageParser$SigningDetails$SignatureSchemeVersion;->SIGNING_BLOCK_V3:I
 Landroid/content/pm/PackageParser$SigningDetails$SignatureSchemeVersion;->UNKNOWN:I
-Landroid/content/pm/PackageParser$SigningDetails;
 Landroid/content/pm/PackageParser$SigningDetails;-><init>(Landroid/content/pm/PackageParser$SigningDetails;)V
 Landroid/content/pm/PackageParser$SigningDetails;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/PackageParser$SigningDetails;-><init>([Landroid/content/pm/Signature;I)V
@@ -16818,15 +15729,12 @@
 Landroid/content/pm/PackageParser$SigningDetails;->signatureSchemeVersion:I
 Landroid/content/pm/PackageParser$SigningDetails;->signaturesMatchExactly(Landroid/content/pm/PackageParser$SigningDetails;)Z
 Landroid/content/pm/PackageParser$SigningDetails;->UNKNOWN:Landroid/content/pm/PackageParser$SigningDetails;
-Landroid/content/pm/PackageParser$SplitNameComparator;
 Landroid/content/pm/PackageParser$SplitNameComparator;-><init>()V
 Landroid/content/pm/PackageParser$SplitNameComparator;->compare(Ljava/lang/String;Ljava/lang/String;)I
-Landroid/content/pm/PackageParser$SplitPermissionInfo;
 Landroid/content/pm/PackageParser$SplitPermissionInfo;-><init>(Ljava/lang/String;[Ljava/lang/String;I)V
 Landroid/content/pm/PackageParser$SplitPermissionInfo;->newPerms:[Ljava/lang/String;
 Landroid/content/pm/PackageParser$SplitPermissionInfo;->rootPerm:Ljava/lang/String;
 Landroid/content/pm/PackageParser$SplitPermissionInfo;->targetSdk:I
-Landroid/content/pm/PackageParser;
 Landroid/content/pm/PackageParser;->adjustPackageToBeUnresizeableAndUnpipable(Landroid/content/pm/PackageParser$Package;)V
 Landroid/content/pm/PackageParser;->ANDROID_MANIFEST_FILENAME:Ljava/lang/String;
 Landroid/content/pm/PackageParser;->ANDROID_RESOURCES:Ljava/lang/String;
@@ -16969,13 +15877,11 @@
 Landroid/content/pm/PackageParser;->toSigningKeys([Landroid/content/pm/Signature;)Landroid/util/ArraySet;
 Landroid/content/pm/PackageParser;->updateApplicationInfo(Landroid/content/pm/ApplicationInfo;ILandroid/content/pm/PackageUserState;)V
 Landroid/content/pm/PackageParser;->validateName(Ljava/lang/String;ZZ)Ljava/lang/String;
-Landroid/content/pm/PackageParserCacheHelper$ReadHelper;
 Landroid/content/pm/PackageParserCacheHelper$ReadHelper;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/PackageParserCacheHelper$ReadHelper;->mParcel:Landroid/os/Parcel;
 Landroid/content/pm/PackageParserCacheHelper$ReadHelper;->mStrings:Ljava/util/ArrayList;
 Landroid/content/pm/PackageParserCacheHelper$ReadHelper;->readString(Landroid/os/Parcel;)Ljava/lang/String;
 Landroid/content/pm/PackageParserCacheHelper$ReadHelper;->startAndInstall()V
-Landroid/content/pm/PackageParserCacheHelper$WriteHelper;
 Landroid/content/pm/PackageParserCacheHelper$WriteHelper;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/PackageParserCacheHelper$WriteHelper;->finishAndUninstall()V
 Landroid/content/pm/PackageParserCacheHelper$WriteHelper;->mIndexes:Ljava/util/HashMap;
@@ -16983,11 +15889,9 @@
 Landroid/content/pm/PackageParserCacheHelper$WriteHelper;->mStartPos:I
 Landroid/content/pm/PackageParserCacheHelper$WriteHelper;->mStrings:Ljava/util/ArrayList;
 Landroid/content/pm/PackageParserCacheHelper$WriteHelper;->writeString(Landroid/os/Parcel;Ljava/lang/String;)V
-Landroid/content/pm/PackageParserCacheHelper;
 Landroid/content/pm/PackageParserCacheHelper;-><init>()V
 Landroid/content/pm/PackageParserCacheHelper;->DEBUG:Z
 Landroid/content/pm/PackageParserCacheHelper;->TAG:Ljava/lang/String;
-Landroid/content/pm/PackageSharedLibraryUpdater;
 Landroid/content/pm/PackageSharedLibraryUpdater;-><init>()V
 Landroid/content/pm/PackageSharedLibraryUpdater;->apkTargetsApiLevelLessThanOrEqualToOMR1(Landroid/content/pm/PackageParser$Package;)Z
 Landroid/content/pm/PackageSharedLibraryUpdater;->isLibraryPresent(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/lang/String;)Z
@@ -16997,7 +15901,6 @@
 Landroid/content/pm/PackageSharedLibraryUpdater;->removeLibrary(Landroid/content/pm/PackageParser$Package;Ljava/lang/String;)V
 Landroid/content/pm/PackageSharedLibraryUpdater;->updatePackage(Landroid/content/pm/PackageParser$Package;)V
 Landroid/content/pm/PackageStats;-><init>(Ljava/lang/String;I)V
-Landroid/content/pm/PackageUserState;
 Landroid/content/pm/PackageUserState;-><init>(Landroid/content/pm/PackageUserState;)V
 Landroid/content/pm/PackageUserState;->appLinkGeneration:I
 Landroid/content/pm/PackageUserState;->categoryHint:I
@@ -17024,26 +15927,22 @@
 Landroid/content/pm/PackageUserState;->suspendedLauncherExtras:Landroid/os/PersistableBundle;
 Landroid/content/pm/PackageUserState;->suspendingPackage:Ljava/lang/String;
 Landroid/content/pm/PackageUserState;->virtualPreload:Z
-Landroid/content/pm/ParceledListSlice;
 Landroid/content/pm/ParceledListSlice;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
 Landroid/content/pm/ParceledListSlice;->emptyList()Landroid/content/pm/ParceledListSlice;
 Landroid/content/pm/ParceledListSlice;->readParcelableCreator(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Landroid/os/Parcelable$Creator;
 Landroid/content/pm/ParceledListSlice;->writeElement(Landroid/os/Parcelable;Landroid/os/Parcel;I)V
 Landroid/content/pm/PathPermission;->mReadPermission:Ljava/lang/String;
 Landroid/content/pm/PathPermission;->mWritePermission:Ljava/lang/String;
-Landroid/content/pm/permission/IRuntimePermissionPresenter$Stub$Proxy;
 Landroid/content/pm/permission/IRuntimePermissionPresenter$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/pm/permission/IRuntimePermissionPresenter$Stub$Proxy;->getAppPermissions(Ljava/lang/String;Landroid/os/RemoteCallback;)V
 Landroid/content/pm/permission/IRuntimePermissionPresenter$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/content/pm/permission/IRuntimePermissionPresenter$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/content/pm/permission/IRuntimePermissionPresenter$Stub$Proxy;->revokeRuntimePermission(Ljava/lang/String;Ljava/lang/String;)V
-Landroid/content/pm/permission/IRuntimePermissionPresenter$Stub;
 Landroid/content/pm/permission/IRuntimePermissionPresenter$Stub;-><init>()V
 Landroid/content/pm/permission/IRuntimePermissionPresenter$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/permission/IRuntimePermissionPresenter;
 Landroid/content/pm/permission/IRuntimePermissionPresenter$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/content/pm/permission/IRuntimePermissionPresenter$Stub;->TRANSACTION_getAppPermissions:I
 Landroid/content/pm/permission/IRuntimePermissionPresenter$Stub;->TRANSACTION_revokeRuntimePermission:I
-Landroid/content/pm/permission/IRuntimePermissionPresenter;
 Landroid/content/pm/permission/IRuntimePermissionPresenter;->getAppPermissions(Ljava/lang/String;Landroid/os/RemoteCallback;)V
 Landroid/content/pm/permission/IRuntimePermissionPresenter;->revokeRuntimePermission(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/content/pm/permission/RuntimePermissionPresentationInfo;-><init>(Landroid/os/Parcel;)V
@@ -17051,10 +15950,8 @@
 Landroid/content/pm/permission/RuntimePermissionPresentationInfo;->FLAG_STANDARD:I
 Landroid/content/pm/permission/RuntimePermissionPresentationInfo;->mFlags:I
 Landroid/content/pm/permission/RuntimePermissionPresentationInfo;->mLabel:Ljava/lang/CharSequence;
-Landroid/content/pm/permission/RuntimePermissionPresenter$OnResultCallback;
 Landroid/content/pm/permission/RuntimePermissionPresenter$OnResultCallback;-><init>()V
 Landroid/content/pm/permission/RuntimePermissionPresenter$OnResultCallback;->onGetAppPermissions(Ljava/util/List;)V
-Landroid/content/pm/permission/RuntimePermissionPresenter$RemoteService;
 Landroid/content/pm/permission/RuntimePermissionPresenter$RemoteService;-><init>(Landroid/content/Context;)V
 Landroid/content/pm/permission/RuntimePermissionPresenter$RemoteService;->mBound:Z
 Landroid/content/pm/permission/RuntimePermissionPresenter$RemoteService;->mContext:Landroid/content/Context;
@@ -17069,7 +15966,6 @@
 Landroid/content/pm/permission/RuntimePermissionPresenter$RemoteService;->scheduleNextMessageIfNeededLocked()V
 Landroid/content/pm/permission/RuntimePermissionPresenter$RemoteService;->scheduleUnbind()V
 Landroid/content/pm/permission/RuntimePermissionPresenter$RemoteService;->UNBIND_TIMEOUT_MILLIS:J
-Landroid/content/pm/permission/RuntimePermissionPresenter;
 Landroid/content/pm/permission/RuntimePermissionPresenter;-><init>(Landroid/content/Context;)V
 Landroid/content/pm/permission/RuntimePermissionPresenter;->getAppPermissions(Ljava/lang/String;Landroid/content/pm/permission/RuntimePermissionPresenter$OnResultCallback;Landroid/os/Handler;)V
 Landroid/content/pm/permission/RuntimePermissionPresenter;->getInstance(Landroid/content/Context;)Landroid/content/pm/permission/RuntimePermissionPresenter;
@@ -17080,8 +15976,6 @@
 Landroid/content/pm/permission/RuntimePermissionPresenter;->sLock:Ljava/lang/Object;
 Landroid/content/pm/permission/RuntimePermissionPresenter;->TAG:Ljava/lang/String;
 Landroid/content/pm/PermissionGroupInfo;-><init>(Landroid/os/Parcel;)V
-Landroid/content/pm/PermissionInfo$Protection;
-Landroid/content/pm/PermissionInfo$ProtectionFlags;
 Landroid/content/pm/PermissionInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/PermissionInfo;->calculateFootprint()I
 Landroid/content/pm/PermissionInfo;->fixProtectionLevel(I)I
@@ -17089,16 +15983,13 @@
 Landroid/content/pm/ProviderInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/ProviderInfo;->dump(Landroid/util/Printer;Ljava/lang/String;I)V
 Landroid/content/pm/ProviderInfo;->FLAG_VISIBLE_TO_INSTANT_APP:I
-Landroid/content/pm/RegisteredServicesCache$ServiceInfo;
 Landroid/content/pm/RegisteredServicesCache$ServiceInfo;-><init>(Ljava/lang/Object;Landroid/content/pm/ComponentInfo;Landroid/content/ComponentName;)V
 Landroid/content/pm/RegisteredServicesCache$ServiceInfo;->componentInfo:Landroid/content/pm/ComponentInfo;
-Landroid/content/pm/RegisteredServicesCache$UserServices;
 Landroid/content/pm/RegisteredServicesCache$UserServices;-><init>()V
 Landroid/content/pm/RegisteredServicesCache$UserServices;->mBindInstantServiceAllowed:Z
 Landroid/content/pm/RegisteredServicesCache$UserServices;->mPersistentServicesFileDidNotExist:Z
 Landroid/content/pm/RegisteredServicesCache$UserServices;->persistentServices:Ljava/util/Map;
 Landroid/content/pm/RegisteredServicesCache$UserServices;->services:Ljava/util/Map;
-Landroid/content/pm/RegisteredServicesCache;
 Landroid/content/pm/RegisteredServicesCache;->containsType(Ljava/util/ArrayList;Ljava/lang/Object;)Z
 Landroid/content/pm/RegisteredServicesCache;->containsTypeAndUid(Ljava/util/ArrayList;Ljava/lang/Object;I)Z
 Landroid/content/pm/RegisteredServicesCache;->containsUid([II)Z
@@ -17146,7 +16037,6 @@
 Landroid/content/pm/RegisteredServicesCache;->TAG:Ljava/lang/String;
 Landroid/content/pm/RegisteredServicesCache;->updateServices(I)V
 Landroid/content/pm/RegisteredServicesCache;->writePersistentServicesLocked(Landroid/content/pm/RegisteredServicesCache$UserServices;I)V
-Landroid/content/pm/RegisteredServicesCacheListener;
 Landroid/content/pm/RegisteredServicesCacheListener;->onServiceChanged(Ljava/lang/Object;IZ)V
 Landroid/content/pm/ResolveInfo$DisplayNameComparator;->mCollator:Ljava/text/Collator;
 Landroid/content/pm/ResolveInfo$DisplayNameComparator;->mPM:Landroid/content/pm/PackageManager;
@@ -17159,7 +16049,6 @@
 Landroid/content/pm/ResolveInfo;->resolveIconResId()I
 Landroid/content/pm/ResolveInfo;->resolveLabelResId()I
 Landroid/content/pm/ResolveInfo;->TAG:Ljava/lang/String;
-Landroid/content/pm/SELinuxUtil;
 Landroid/content/pm/SELinuxUtil;-><init>()V
 Landroid/content/pm/SELinuxUtil;->assignSeinfoUser(Landroid/content/pm/PackageUserState;)Ljava/lang/String;
 Landroid/content/pm/SELinuxUtil;->COMPLETE_STR:Ljava/lang/String;
@@ -17167,7 +16056,6 @@
 Landroid/content/pm/ServiceInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/ServiceInfo;->dump(Landroid/util/Printer;Ljava/lang/String;I)V
 Landroid/content/pm/ServiceInfo;->FLAG_VISIBLE_TO_INSTANT_APP:I
-Landroid/content/pm/SharedLibraryInfo$Type;
 Landroid/content/pm/SharedLibraryInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/SharedLibraryInfo;-><init>(Ljava/lang/String;JILandroid/content/pm/VersionedPackage;Ljava/util/List;)V
 Landroid/content/pm/SharedLibraryInfo;->mDeclaringPackage:Landroid/content/pm/VersionedPackage;
@@ -17176,7 +16064,6 @@
 Landroid/content/pm/SharedLibraryInfo;->mType:I
 Landroid/content/pm/SharedLibraryInfo;->mVersion:J
 Landroid/content/pm/SharedLibraryInfo;->typeToString(I)Ljava/lang/String;
-Landroid/content/pm/SharedLibraryNames;
 Landroid/content/pm/SharedLibraryNames;-><init>()V
 Landroid/content/pm/SharedLibraryNames;->ANDROID_TEST_BASE:Ljava/lang/String;
 Landroid/content/pm/SharedLibraryNames;->ANDROID_TEST_MOCK:Ljava/lang/String;
@@ -17205,9 +16092,6 @@
 Landroid/content/pm/ShortcutInfo$Builder;->setTextResId(I)Landroid/content/pm/ShortcutInfo$Builder;
 Landroid/content/pm/ShortcutInfo$Builder;->setTitle(Ljava/lang/CharSequence;)Landroid/content/pm/ShortcutInfo$Builder;
 Landroid/content/pm/ShortcutInfo$Builder;->setTitleResId(I)Landroid/content/pm/ShortcutInfo$Builder;
-Landroid/content/pm/ShortcutInfo$CloneFlags;
-Landroid/content/pm/ShortcutInfo$DisabledReason;
-Landroid/content/pm/ShortcutInfo$ShortcutFlags;
 Landroid/content/pm/ShortcutInfo;-><init>(ILjava/lang/String;Ljava/lang/String;Landroid/content/ComponentName;Landroid/graphics/drawable/Icon;Ljava/lang/CharSequence;ILjava/lang/String;Ljava/lang/CharSequence;ILjava/lang/String;Ljava/lang/CharSequence;ILjava/lang/String;Ljava/util/Set;[Landroid/content/Intent;ILandroid/os/PersistableBundle;JIILjava/lang/String;Ljava/lang/String;I)V
 Landroid/content/pm/ShortcutInfo;-><init>(Landroid/content/pm/ShortcutInfo$Builder;)V
 Landroid/content/pm/ShortcutInfo;-><init>(Landroid/content/pm/ShortcutInfo;I)V
@@ -17366,9 +16250,7 @@
 Landroid/content/pm/ShortcutManager;->mContext:Landroid/content/Context;
 Landroid/content/pm/ShortcutManager;->onApplicationActive(Ljava/lang/String;I)V
 Landroid/content/pm/ShortcutManager;->TAG:Ljava/lang/String;
-Landroid/content/pm/ShortcutServiceInternal$ShortcutChangeListener;
 Landroid/content/pm/ShortcutServiceInternal$ShortcutChangeListener;->onShortcutChanged(Ljava/lang/String;I)V
-Landroid/content/pm/ShortcutServiceInternal;
 Landroid/content/pm/ShortcutServiceInternal;-><init>()V
 Landroid/content/pm/ShortcutServiceInternal;->addListener(Landroid/content/pm/ShortcutServiceInternal$ShortcutChangeListener;)V
 Landroid/content/pm/ShortcutServiceInternal;->createShortcutIntents(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;III)[Landroid/content/Intent;
@@ -17398,7 +16280,6 @@
 Landroid/content/pm/SigningInfo;-><init>(Landroid/content/pm/PackageParser$SigningDetails;)V
 Landroid/content/pm/SigningInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/SigningInfo;->mSigningDetails:Landroid/content/pm/PackageParser$SigningDetails;
-Landroid/content/pm/StringParceledListSlice;
 Landroid/content/pm/StringParceledListSlice;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
 Landroid/content/pm/StringParceledListSlice;-><init>(Ljava/util/List;)V
 Landroid/content/pm/StringParceledListSlice;->CREATOR:Landroid/os/Parcelable$ClassLoaderCreator;
@@ -17406,7 +16287,6 @@
 Landroid/content/pm/StringParceledListSlice;->readParcelableCreator(Landroid/os/Parcel;Ljava/lang/ClassLoader;)Landroid/os/Parcelable$Creator;
 Landroid/content/pm/StringParceledListSlice;->writeElement(Ljava/lang/String;Landroid/os/Parcel;I)V
 Landroid/content/pm/StringParceledListSlice;->writeParcelableCreator(Ljava/lang/String;Landroid/os/Parcel;)V
-Landroid/content/pm/UserInfo;
 Landroid/content/pm/UserInfo;-><init>()V
 Landroid/content/pm/UserInfo;-><init>(Landroid/content/pm/UserInfo;)V
 Landroid/content/pm/UserInfo;-><init>(Landroid/os/Parcel;)V
@@ -17433,7 +16313,6 @@
 Landroid/content/pm/UserInfo;->restrictedProfileParentId:I
 Landroid/content/pm/UserInfo;->supportsSwitchTo()Z
 Landroid/content/pm/UserInfo;->supportsSwitchToByUser()Z
-Landroid/content/pm/VerificationParams;
 Landroid/content/pm/VerificationParams;-><init>(Landroid/net/Uri;Landroid/net/Uri;Landroid/net/Uri;I)V
 Landroid/content/pm/VerificationParams;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/VerificationParams;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -17450,7 +16329,6 @@
 Landroid/content/pm/VerificationParams;->NO_UID:I
 Landroid/content/pm/VerificationParams;->setInstallerUid(I)V
 Landroid/content/pm/VerificationParams;->TO_STRING_PREFIX:Ljava/lang/String;
-Landroid/content/pm/VerifierDeviceIdentity;
 Landroid/content/pm/VerifierDeviceIdentity;-><init>(J)V
 Landroid/content/pm/VerifierDeviceIdentity;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/VerifierDeviceIdentity;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -17465,18 +16343,14 @@
 Landroid/content/pm/VerifierDeviceIdentity;->mIdentityString:Ljava/lang/String;
 Landroid/content/pm/VerifierDeviceIdentity;->parse(Ljava/lang/String;)Landroid/content/pm/VerifierDeviceIdentity;
 Landroid/content/pm/VerifierDeviceIdentity;->SEPARATOR:C
-Landroid/content/pm/VerifierInfo;
 Landroid/content/pm/VerifierInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/VerifierInfo;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/content/pm/VerifierInfo;->packageName:Ljava/lang/String;
 Landroid/content/pm/VerifierInfo;->publicKey:Ljava/security/PublicKey;
-Landroid/content/pm/VersionedPackage$VersionCode;
 Landroid/content/pm/VersionedPackage;-><init>(Landroid/os/Parcel;)V
 Landroid/content/pm/VersionedPackage;->mPackageName:Ljava/lang/String;
 Landroid/content/pm/VersionedPackage;->mVersionCode:J
-Landroid/content/pm/XmlSerializerAndParser;
 Landroid/content/QuickViewConstants;-><init>()V
-Landroid/content/res/ApkAssets;
 Landroid/content/res/ApkAssets;-><init>(Ljava/io/FileDescriptor;Ljava/lang/String;ZZ)V
 Landroid/content/res/ApkAssets;-><init>(Ljava/lang/String;ZZZ)V
 Landroid/content/res/ApkAssets;->getStringFromPool(I)Ljava/lang/CharSequence;
@@ -17500,12 +16374,10 @@
 Landroid/content/res/AssetFileDescriptor$AutoCloseOutputStream;->mRemaining:J
 Landroid/content/res/AssetFileDescriptor;-><init>(Landroid/os/Parcel;)V
 Landroid/content/res/AssetFileDescriptor;->mExtras:Landroid/os/Bundle;
-Landroid/content/res/AssetManager$AssetInputStream;-><init>(J)V
 Landroid/content/res/AssetManager$AssetInputStream;->ensureOpen()V
 Landroid/content/res/AssetManager$AssetInputStream;->mAssetNativePtr:J
 Landroid/content/res/AssetManager$AssetInputStream;->mLength:J
 Landroid/content/res/AssetManager$AssetInputStream;->mMarkPos:J
-Landroid/content/res/AssetManager$Builder;
 Landroid/content/res/AssetManager$Builder;-><init>()V
 Landroid/content/res/AssetManager$Builder;->addApkAssets(Landroid/content/res/ApkAssets;)Landroid/content/res/AssetManager$Builder;
 Landroid/content/res/AssetManager$Builder;->build()Landroid/content/res/AssetManager;
@@ -17595,7 +16467,6 @@
 Landroid/content/res/AssetManager;->sSystemApkAssetsSet:Landroid/util/ArraySet;
 Landroid/content/res/AssetManager;->TAG:Ljava/lang/String;
 Landroid/content/res/AssetManager;->xmlBlockGone(I)V
-Landroid/content/res/ColorStateList$ColorStateListFactory;
 Landroid/content/res/ColorStateList$ColorStateListFactory;->getChangingConfigurations()I
 Landroid/content/res/ColorStateList$ColorStateListFactory;->mSrc:Landroid/content/res/ColorStateList;
 Landroid/content/res/ColorStateList$ColorStateListFactory;->newInstance()Landroid/content/res/ColorStateList;
@@ -17615,9 +16486,6 @@
 Landroid/content/res/ColorStateList;->mThemeAttrs:[[I
 Landroid/content/res/ColorStateList;->sCache:Landroid/util/SparseArray;
 Landroid/content/res/ColorStateList;->TAG:Ljava/lang/String;
-Landroid/content/res/CompatibilityInfo$Translator;
-Landroid/content/res/CompatibilityInfo$Translator;-><init>()V
-Landroid/content/res/CompatibilityInfo$Translator;-><init>(FF)V
 Landroid/content/res/CompatibilityInfo$Translator;->getTranslatedTouchableArea(Landroid/graphics/Region;)Landroid/graphics/Region;
 Landroid/content/res/CompatibilityInfo$Translator;->getTranslatedVisibleInsets(Landroid/graphics/Rect;)Landroid/graphics/Rect;
 Landroid/content/res/CompatibilityInfo$Translator;->mContentInsetsBuffer:Landroid/graphics/Rect;
@@ -17625,7 +16493,6 @@
 Landroid/content/res/CompatibilityInfo$Translator;->mVisibleInsetsBuffer:Landroid/graphics/Rect;
 Landroid/content/res/CompatibilityInfo$Translator;->translateLayoutParamsInAppWindowToScreen(Landroid/view/WindowManager$LayoutParams;)V
 Landroid/content/res/CompatibilityInfo$Translator;->translatePointInScreenToAppWindow(Landroid/graphics/PointF;)V
-Landroid/content/res/CompatibilityInfo;
 Landroid/content/res/CompatibilityInfo;-><init>(IIFF)V
 Landroid/content/res/CompatibilityInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/content/res/CompatibilityInfo;->alwaysSupportsScreen()Z
@@ -17643,12 +16510,10 @@
 Landroid/content/res/CompatibilityInfo;->neverSupportsScreen()Z
 Landroid/content/res/CompatibilityInfo;->NEVER_NEEDS_COMPAT:I
 Landroid/content/res/CompatibilityInfo;->SCALING_REQUIRED:I
-Landroid/content/res/CompatResources;
 Landroid/content/res/CompatResources;-><init>(Ljava/lang/ClassLoader;)V
 Landroid/content/res/CompatResources;->getTheme()Landroid/content/res/Resources$Theme;
 Landroid/content/res/CompatResources;->mContext:Ljava/lang/ref/WeakReference;
 Landroid/content/res/CompatResources;->setContext(Landroid/content/Context;)V
-Landroid/content/res/ComplexColor;
 Landroid/content/res/ComplexColor;-><init>()V
 Landroid/content/res/ComplexColor;->canApplyTheme()Z
 Landroid/content/res/ComplexColor;->getChangingConfigurations()I
@@ -17658,7 +16523,6 @@
 Landroid/content/res/ComplexColor;->mChangingConfigurations:I
 Landroid/content/res/ComplexColor;->obtainForTheme(Landroid/content/res/Resources$Theme;)Landroid/content/res/ComplexColor;
 Landroid/content/res/ComplexColor;->setBaseChangingConfigurations(I)V
-Landroid/content/res/Configuration$NativeConfig;
 Landroid/content/res/Configuration;-><init>(Landroid/os/Parcel;)V
 Landroid/content/res/Configuration;->assetsSeq:I
 Landroid/content/res/Configuration;->ASSETS_SEQ_UNDEFINED:I
@@ -17725,23 +16589,17 @@
 Landroid/content/res/Configuration;->XML_ATTR_SMALLEST_WIDTH:Ljava/lang/String;
 Landroid/content/res/Configuration;->XML_ATTR_TOUCHSCREEN:Ljava/lang/String;
 Landroid/content/res/Configuration;->XML_ATTR_UI_MODE:Ljava/lang/String;
-Landroid/content/res/ConfigurationBoundResourceCache;
 Landroid/content/res/ConfigurationBoundResourceCache;->getInstance(JLandroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Ljava/lang/Object;
 Landroid/content/res/ConfigurationBoundResourceCache;->shouldInvalidateEntry(Landroid/content/res/ConstantState;I)Z
-Landroid/content/res/ConstantState;
 Landroid/content/res/ConstantState;-><init>()V
 Landroid/content/res/ConstantState;->getChangingConfigurations()I
 Landroid/content/res/ConstantState;->newInstance()Ljava/lang/Object;
 Landroid/content/res/ConstantState;->newInstance(Landroid/content/res/Resources;)Ljava/lang/Object;
 Landroid/content/res/ConstantState;->newInstance(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Ljava/lang/Object;
-Landroid/content/res/DrawableCache;
 Landroid/content/res/DrawableCache;->shouldInvalidateEntry(Landroid/graphics/drawable/Drawable$ConstantState;I)Z
-Landroid/content/res/FontResourcesParser$FamilyResourceEntry;
-Landroid/content/res/FontResourcesParser$FontFamilyFilesResourceEntry;
 Landroid/content/res/FontResourcesParser$FontFamilyFilesResourceEntry;-><init>([Landroid/content/res/FontResourcesParser$FontFileResourceEntry;)V
 Landroid/content/res/FontResourcesParser$FontFamilyFilesResourceEntry;->getEntries()[Landroid/content/res/FontResourcesParser$FontFileResourceEntry;
 Landroid/content/res/FontResourcesParser$FontFamilyFilesResourceEntry;->mEntries:[Landroid/content/res/FontResourcesParser$FontFileResourceEntry;
-Landroid/content/res/FontResourcesParser$FontFileResourceEntry;
 Landroid/content/res/FontResourcesParser$FontFileResourceEntry;-><init>(Ljava/lang/String;IILjava/lang/String;I)V
 Landroid/content/res/FontResourcesParser$FontFileResourceEntry;->getFileName()Ljava/lang/String;
 Landroid/content/res/FontResourcesParser$FontFileResourceEntry;->getItalic()I
@@ -17754,7 +16612,6 @@
 Landroid/content/res/FontResourcesParser$FontFileResourceEntry;->mTtcIndex:I
 Landroid/content/res/FontResourcesParser$FontFileResourceEntry;->mVariationSettings:Ljava/lang/String;
 Landroid/content/res/FontResourcesParser$FontFileResourceEntry;->mWeight:I
-Landroid/content/res/FontResourcesParser$ProviderResourceEntry;
 Landroid/content/res/FontResourcesParser$ProviderResourceEntry;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
 Landroid/content/res/FontResourcesParser$ProviderResourceEntry;->getAuthority()Ljava/lang/String;
 Landroid/content/res/FontResourcesParser$ProviderResourceEntry;->getCerts()Ljava/util/List;
@@ -17764,7 +16621,6 @@
 Landroid/content/res/FontResourcesParser$ProviderResourceEntry;->mProviderAuthority:Ljava/lang/String;
 Landroid/content/res/FontResourcesParser$ProviderResourceEntry;->mProviderPackage:Ljava/lang/String;
 Landroid/content/res/FontResourcesParser$ProviderResourceEntry;->mQuery:Ljava/lang/String;
-Landroid/content/res/FontResourcesParser;
 Landroid/content/res/FontResourcesParser;-><init>()V
 Landroid/content/res/FontResourcesParser;->parse(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry;
 Landroid/content/res/FontResourcesParser;->readFamilies(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FamilyResourceEntry;
@@ -17772,14 +16628,11 @@
 Landroid/content/res/FontResourcesParser;->readFont(Lorg/xmlpull/v1/XmlPullParser;Landroid/content/res/Resources;)Landroid/content/res/FontResourcesParser$FontFileResourceEntry;
 Landroid/content/res/FontResourcesParser;->skip(Lorg/xmlpull/v1/XmlPullParser;)V
 Landroid/content/res/FontResourcesParser;->TAG:Ljava/lang/String;
-Landroid/content/res/GradientColor$GradientColorFactory;
 Landroid/content/res/GradientColor$GradientColorFactory;-><init>(Landroid/content/res/GradientColor;)V
 Landroid/content/res/GradientColor$GradientColorFactory;->getChangingConfigurations()I
 Landroid/content/res/GradientColor$GradientColorFactory;->mSrc:Landroid/content/res/GradientColor;
 Landroid/content/res/GradientColor$GradientColorFactory;->newInstance()Landroid/content/res/GradientColor;
 Landroid/content/res/GradientColor$GradientColorFactory;->newInstance(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Landroid/content/res/GradientColor;
-Landroid/content/res/GradientColor$GradientTileMode;
-Landroid/content/res/GradientColor;
 Landroid/content/res/GradientColor;-><init>()V
 Landroid/content/res/GradientColor;-><init>(Landroid/content/res/GradientColor;)V
 Landroid/content/res/GradientColor;->applyItemsAttrsTheme(Landroid/content/res/Resources$Theme;)V
@@ -17829,11 +16682,9 @@
 Landroid/content/res/ObbInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/content/res/ObbScanner;-><init>()V
 Landroid/content/res/ObbScanner;->getObbInfo_native(Ljava/lang/String;Landroid/content/res/ObbInfo;)V
-Landroid/content/res/ResourceId;
 Landroid/content/res/ResourceId;-><init>()V
 Landroid/content/res/ResourceId;->ID_NULL:I
 Landroid/content/res/ResourceId;->isValid(I)Z
-Landroid/content/res/Resources$Theme;-><init>()V
 Landroid/content/res/Resources$Theme;->encode(Landroid/view/ViewHierarchyEncoder;)V
 Landroid/content/res/Resources$Theme;->getAllAttributes()[I
 Landroid/content/res/Resources$Theme;->getAppliedStyleResId()I
@@ -17843,7 +16694,6 @@
 Landroid/content/res/Resources$Theme;->getTheme()[Ljava/lang/String;
 Landroid/content/res/Resources$Theme;->rebase()V
 Landroid/content/res/Resources$Theme;->setImpl(Landroid/content/res/ResourcesImpl$ThemeImpl;)V
-Landroid/content/res/Resources$ThemeKey;
 Landroid/content/res/Resources$ThemeKey;-><init>()V
 Landroid/content/res/Resources$ThemeKey;->append(IZ)V
 Landroid/content/res/Resources$ThemeKey;->mCount:I
@@ -17873,15 +16723,12 @@
 Landroid/content/res/Resources;->startPreloading()V
 Landroid/content/res/Resources;->TAG:Ljava/lang/String;
 Landroid/content/res/Resources;->updateConfiguration(Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;)V
-Landroid/content/res/ResourcesImpl$LookupStack;
 Landroid/content/res/ResourcesImpl$LookupStack;-><init>()V
 Landroid/content/res/ResourcesImpl$LookupStack;->contains(I)Z
 Landroid/content/res/ResourcesImpl$LookupStack;->mIds:[I
 Landroid/content/res/ResourcesImpl$LookupStack;->mSize:I
 Landroid/content/res/ResourcesImpl$LookupStack;->pop()V
 Landroid/content/res/ResourcesImpl$LookupStack;->push(I)V
-Landroid/content/res/ResourcesImpl$ThemeImpl;
-Landroid/content/res/ResourcesImpl$ThemeImpl;-><init>()V
 Landroid/content/res/ResourcesImpl$ThemeImpl;->applyStyle(IZ)V
 Landroid/content/res/ResourcesImpl$ThemeImpl;->dump(ILjava/lang/String;Ljava/lang/String;)V
 Landroid/content/res/ResourcesImpl$ThemeImpl;->getAllAttributes()[I
@@ -17899,7 +16746,6 @@
 Landroid/content/res/ResourcesImpl$ThemeImpl;->resolveAttribute(ILandroid/util/TypedValue;Z)Z
 Landroid/content/res/ResourcesImpl$ThemeImpl;->resolveAttributes(Landroid/content/res/Resources$Theme;[I[I)Landroid/content/res/TypedArray;
 Landroid/content/res/ResourcesImpl$ThemeImpl;->setTo(Landroid/content/res/ResourcesImpl$ThemeImpl;)V
-Landroid/content/res/ResourcesImpl;
 Landroid/content/res/ResourcesImpl;->adjustLanguageTag(Ljava/lang/String;)Ljava/lang/String;
 Landroid/content/res/ResourcesImpl;->attrForQuantityCode(Ljava/lang/String;)I
 Landroid/content/res/ResourcesImpl;->cacheDrawable(Landroid/util/TypedValue;ZLandroid/content/res/DrawableCache;Landroid/content/res/Resources$Theme;ZJLandroid/graphics/drawable/Drawable;)V
@@ -17962,7 +16808,6 @@
 Landroid/content/res/ResourcesImpl;->updateConfiguration(Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;Landroid/content/res/CompatibilityInfo;)V
 Landroid/content/res/ResourcesImpl;->verifyPreloadConfig(IIILjava/lang/String;)Z
 Landroid/content/res/ResourcesImpl;->XML_BLOCK_CACHE_SIZE:I
-Landroid/content/res/ResourcesKey;
 Landroid/content/res/ResourcesKey;->anyStartsWith([Ljava/lang/String;Ljava/lang/String;)Z
 Landroid/content/res/ResourcesKey;->hasOverrideConfiguration()Z
 Landroid/content/res/ResourcesKey;->isPathReferenced(Ljava/lang/String;)Z
@@ -17972,11 +16817,9 @@
 Landroid/content/res/ResourcesKey;->mLibDirs:[Ljava/lang/String;
 Landroid/content/res/ResourcesKey;->mOverlayDirs:[Ljava/lang/String;
 Landroid/content/res/ResourcesKey;->mOverrideConfiguration:Landroid/content/res/Configuration;
-Landroid/content/res/StringBlock$Height;
 Landroid/content/res/StringBlock$Height;-><init>(I)V
 Landroid/content/res/StringBlock$Height;->mSize:I
 Landroid/content/res/StringBlock$Height;->sProportion:F
-Landroid/content/res/StringBlock$StyleIDs;
 Landroid/content/res/StringBlock$StyleIDs;-><init>()V
 Landroid/content/res/StringBlock$StyleIDs;->bigId:I
 Landroid/content/res/StringBlock$StyleIDs;->boldId:I
@@ -17989,7 +16832,6 @@
 Landroid/content/res/StringBlock$StyleIDs;->supId:I
 Landroid/content/res/StringBlock$StyleIDs;->ttId:I
 Landroid/content/res/StringBlock$StyleIDs;->underlineId:I
-Landroid/content/res/StringBlock;
 Landroid/content/res/StringBlock;-><init>([BIIZ)V
 Landroid/content/res/StringBlock;-><init>([BZ)V
 Landroid/content/res/StringBlock;->addParagraphSpan(Landroid/text/Spannable;Ljava/lang/Object;II)V
@@ -18009,7 +16851,6 @@
 Landroid/content/res/StringBlock;->nativeGetStyle(JI)[I
 Landroid/content/res/StringBlock;->subtag(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 Landroid/content/res/StringBlock;->TAG:Ljava/lang/String;
-Landroid/content/res/ThemedResourceCache;
 Landroid/content/res/ThemedResourceCache;-><init>()V
 Landroid/content/res/ThemedResourceCache;->get(JLandroid/content/res/Resources$Theme;)Ljava/lang/Object;
 Landroid/content/res/ThemedResourceCache;->getThemedLocked(Landroid/content/res/Resources$Theme;Z)Landroid/util/LongSparseArray;
@@ -18038,14 +16879,11 @@
 Landroid/content/res/TypedArray;->STYLE_NUM_ENTRIES:I
 Landroid/content/res/TypedArray;->STYLE_RESOURCE_ID:I
 Landroid/content/res/TypedArray;->STYLE_TYPE:I
-Landroid/content/res/XmlBlock$Parser;
-Landroid/content/res/XmlBlock$Parser;-><init>(JLandroid/content/res/XmlBlock;)V
 Landroid/content/res/XmlBlock$Parser;->getPooledString(I)Ljava/lang/CharSequence;
 Landroid/content/res/XmlBlock$Parser;->mDecNextDepth:Z
 Landroid/content/res/XmlBlock$Parser;->mDepth:I
 Landroid/content/res/XmlBlock$Parser;->mEventType:I
 Landroid/content/res/XmlBlock$Parser;->mStarted:Z
-Landroid/content/res/XmlBlock;
 Landroid/content/res/XmlBlock;-><init>(Landroid/content/res/AssetManager;J)V
 Landroid/content/res/XmlBlock;-><init>([BII)V
 Landroid/content/res/XmlBlock;->DEBUG:Z
@@ -18076,7 +16914,6 @@
 Landroid/content/res/XmlBlock;->nativeGetStyleAttribute(J)I
 Landroid/content/res/XmlBlock;->nativeGetText(J)I
 Landroid/content/res/XmlBlock;->nativeNext(J)I
-Landroid/content/ResourcesConfigurationProto;
 Landroid/content/ResourcesConfigurationProto;-><init>()V
 Landroid/content/ResourcesConfigurationProto;->CONFIGURATION:J
 Landroid/content/ResourcesConfigurationProto;->SCREEN_HEIGHT_PX:J
@@ -18101,7 +16938,6 @@
 Landroid/content/RestrictionsManager;->mContext:Landroid/content/Context;
 Landroid/content/RestrictionsManager;->TAG:Ljava/lang/String;
 Landroid/content/RestrictionsManager;->TAG_RESTRICTION:Ljava/lang/String;
-Landroid/content/SearchRecentSuggestionsProvider$DatabaseHelper;
 Landroid/content/SearchRecentSuggestionsProvider$DatabaseHelper;-><init>(Landroid/content/Context;I)V
 Landroid/content/SearchRecentSuggestionsProvider$DatabaseHelper;->mNewVersion:I
 Landroid/content/SearchRecentSuggestionsProvider;->DATABASE_VERSION:I
@@ -18118,7 +16954,6 @@
 Landroid/content/SearchRecentSuggestionsProvider;->sSuggestions:Ljava/lang/String;
 Landroid/content/SearchRecentSuggestionsProvider;->TAG:Ljava/lang/String;
 Landroid/content/SearchRecentSuggestionsProvider;->URI_MATCH_SUGGEST:I
-Landroid/content/SyncActivityTooManyDeletes;
 Landroid/content/SyncActivityTooManyDeletes;-><init>()V
 Landroid/content/SyncActivityTooManyDeletes;->mAccount:Landroid/accounts/Account;
 Landroid/content/SyncActivityTooManyDeletes;->mAuthority:Ljava/lang/String;
@@ -18126,11 +16961,9 @@
 Landroid/content/SyncActivityTooManyDeletes;->mProvider:Ljava/lang/String;
 Landroid/content/SyncActivityTooManyDeletes;->startSyncReallyDelete()V
 Landroid/content/SyncActivityTooManyDeletes;->startSyncUndoDeletes()V
-Landroid/content/SyncAdaptersCache$MySerializer;
 Landroid/content/SyncAdaptersCache$MySerializer;-><init>()V
 Landroid/content/SyncAdaptersCache$MySerializer;->createFromXml(Lorg/xmlpull/v1/XmlPullParser;)Landroid/content/SyncAdapterType;
 Landroid/content/SyncAdaptersCache$MySerializer;->writeAsXml(Landroid/content/SyncAdapterType;Lorg/xmlpull/v1/XmlSerializer;)V
-Landroid/content/SyncAdaptersCache;
 Landroid/content/SyncAdaptersCache;->ATTRIBUTES_NAME:Ljava/lang/String;
 Landroid/content/SyncAdaptersCache;->getSyncAdapterPackagesForAuthority(Ljava/lang/String;I)[Ljava/lang/String;
 Landroid/content/SyncAdaptersCache;->mAuthorityToSyncAdapters:Landroid/util/SparseArray;
@@ -18188,7 +17021,6 @@
 Landroid/content/SyncRequest;->TAG:Ljava/lang/String;
 Landroid/content/SyncResult;-><init>(Landroid/os/Parcel;)V
 Landroid/content/SyncResult;-><init>(Z)V
-Landroid/content/SyncStatusInfo$Stats;
 Landroid/content/SyncStatusInfo$Stats;-><init>()V
 Landroid/content/SyncStatusInfo$Stats;->clear()V
 Landroid/content/SyncStatusInfo$Stats;->copyTo(Landroid/content/SyncStatusInfo$Stats;)V
@@ -18204,7 +17036,6 @@
 Landroid/content/SyncStatusInfo$Stats;->readFromParcel(Landroid/os/Parcel;)V
 Landroid/content/SyncStatusInfo$Stats;->totalElapsedTime:J
 Landroid/content/SyncStatusInfo$Stats;->writeToParcel(Landroid/os/Parcel;)V
-Landroid/content/SyncStatusInfo;
 Landroid/content/SyncStatusInfo;-><init>(Landroid/content/SyncStatusInfo;)V
 Landroid/content/SyncStatusInfo;->addEvent(Ljava/lang/String;)V
 Landroid/content/SyncStatusInfo;->areSameDates(JJ)Z
@@ -18227,7 +17058,6 @@
 Landroid/content/SyncStatusInfo;->totalStats:Landroid/content/SyncStatusInfo$Stats;
 Landroid/content/SyncStatusInfo;->VERSION:I
 Landroid/content/SyncStatusInfo;->yesterdayStats:Landroid/content/SyncStatusInfo$Stats;
-Landroid/content/UndoManager$UndoState;
 Landroid/content/UndoManager$UndoState;-><init>(Landroid/content/UndoManager;I)V
 Landroid/content/UndoManager$UndoState;-><init>(Landroid/content/UndoManager;Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
 Landroid/content/UndoManager$UndoState;->addOperation(Landroid/content/UndoOperation;)V
@@ -18256,7 +17086,6 @@
 Landroid/content/UndoManager$UndoState;->undo()V
 Landroid/content/UndoManager$UndoState;->updateLabel(Ljava/lang/CharSequence;)V
 Landroid/content/UndoManager$UndoState;->writeToParcel(Landroid/os/Parcel;)V
-Landroid/content/UndoManager;
 Landroid/content/UndoManager;->createWorkingState()V
 Landroid/content/UndoManager;->findNextState(Ljava/util/ArrayList;[Landroid/content/UndoOwner;I)I
 Landroid/content/UndoManager;->findPrevState(Ljava/util/ArrayList;[Landroid/content/UndoOwner;I)I
@@ -18293,7 +17122,6 @@
 Landroid/content/UndoManager;->setHistorySize(I)V
 Landroid/content/UndoManager;->suggestUndoLabel(Ljava/lang/CharSequence;)V
 Landroid/content/UndoManager;->uncommitState(ILandroid/content/UndoOwner;)Z
-Landroid/content/UndoOperation;
 Landroid/content/UndoOperation;->allowMerge()Z
 Landroid/content/UndoOperation;->commit()V
 Landroid/content/UndoOperation;->getOwner()Landroid/content/UndoOwner;
@@ -18303,7 +17131,6 @@
 Landroid/content/UndoOperation;->mOwner:Landroid/content/UndoOwner;
 Landroid/content/UndoOperation;->redo()V
 Landroid/content/UndoOperation;->undo()V
-Landroid/content/UndoOwner;
 Landroid/content/UndoOwner;-><init>(Ljava/lang/String;Landroid/content/UndoManager;)V
 Landroid/content/UndoOwner;->getData()Ljava/lang/Object;
 Landroid/content/UndoOwner;->getTag()Ljava/lang/String;
@@ -18333,7 +17160,6 @@
 Landroid/database/AbstractCursor;->onDeactivateOrClose()V
 Landroid/database/AbstractCursor;->setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;I)V
 Landroid/database/AbstractCursor;->TAG:Ljava/lang/String;
-Landroid/database/BulkCursorDescriptor;
 Landroid/database/BulkCursorDescriptor;-><init>()V
 Landroid/database/BulkCursorDescriptor;->columnNames:[Ljava/lang/String;
 Landroid/database/BulkCursorDescriptor;->count:I
@@ -18342,10 +17168,8 @@
 Landroid/database/BulkCursorDescriptor;->readFromParcel(Landroid/os/Parcel;)V
 Landroid/database/BulkCursorDescriptor;->wantsAllOnMoveCalls:Z
 Landroid/database/BulkCursorDescriptor;->window:Landroid/database/CursorWindow;
-Landroid/database/BulkCursorNative;
 Landroid/database/BulkCursorNative;-><init>()V
 Landroid/database/BulkCursorNative;->asInterface(Landroid/os/IBinder;)Landroid/database/IBulkCursor;
-Landroid/database/BulkCursorToCursorAdaptor;
 Landroid/database/BulkCursorToCursorAdaptor;-><init>()V
 Landroid/database/BulkCursorToCursorAdaptor;->getObserver()Landroid/database/IContentObserver;
 Landroid/database/BulkCursorToCursorAdaptor;->initialize(Landroid/database/BulkCursorDescriptor;)V
@@ -18356,12 +17180,9 @@
 Landroid/database/BulkCursorToCursorAdaptor;->mWantsAllOnMoveCalls:Z
 Landroid/database/BulkCursorToCursorAdaptor;->TAG:Ljava/lang/String;
 Landroid/database/BulkCursorToCursorAdaptor;->throwIfCursorIsClosed()V
-Landroid/database/ContentObserver$NotificationRunnable;
-Landroid/database/ContentObserver$NotificationRunnable;-><init>(ZLandroid/net/Uri;I)V
 Landroid/database/ContentObserver$NotificationRunnable;->mSelfChange:Z
 Landroid/database/ContentObserver$NotificationRunnable;->mUri:Landroid/net/Uri;
 Landroid/database/ContentObserver$NotificationRunnable;->mUserId:I
-Landroid/database/ContentObserver$Transport;
 Landroid/database/ContentObserver$Transport;-><init>(Landroid/database/ContentObserver;)V
 Landroid/database/ContentObserver$Transport;->mContentObserver:Landroid/database/ContentObserver;
 Landroid/database/ContentObserver$Transport;->onChange(ZLandroid/net/Uri;I)V
@@ -18372,9 +17193,7 @@
 Landroid/database/ContentObserver;->mLock:Ljava/lang/Object;
 Landroid/database/ContentObserver;->mTransport:Landroid/database/ContentObserver$Transport;
 Landroid/database/ContentObserver;->onChange(ZLandroid/net/Uri;I)V
-Landroid/database/CursorJoiner$Result;-><init>()V
 Landroid/database/CursorJoiner;->buildColumnIndiciesArray(Landroid/database/Cursor;[Ljava/lang/String;)[I
-Landroid/database/CursorJoiner;->compareStrings([[Ljava/lang/String;)I
 Landroid/database/CursorJoiner;->incrementCursors()V
 Landroid/database/CursorJoiner;->mColumnsLeft:[I
 Landroid/database/CursorJoiner;->mColumnsRight:[I
@@ -18384,11 +17203,9 @@
 Landroid/database/CursorJoiner;->mCursorRight:Landroid/database/Cursor;
 Landroid/database/CursorJoiner;->mValues:[Ljava/lang/String;
 Landroid/database/CursorJoiner;->populateValues([Ljava/lang/String;Landroid/database/Cursor;[II)V
-Landroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;
 Landroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;-><init>(Landroid/database/IContentObserver;Landroid/os/IBinder$DeathRecipient;)V
 Landroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;->mRemote:Landroid/database/IContentObserver;
 Landroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;->unlinkToDeath(Landroid/os/IBinder$DeathRecipient;)Z
-Landroid/database/CursorToBulkCursorAdaptor;
 Landroid/database/CursorToBulkCursorAdaptor;-><init>(Landroid/database/Cursor;Landroid/database/IContentObserver;Ljava/lang/String;)V
 Landroid/database/CursorToBulkCursorAdaptor;->close()V
 Landroid/database/CursorToBulkCursorAdaptor;->closeFilledWindowLocked()V
@@ -18440,7 +17257,6 @@
 Landroid/database/CursorWindow;->recordClosingOfWindow(J)V
 Landroid/database/CursorWindow;->recordNewWindow(IJ)V
 Landroid/database/CursorWindow;->STATS_TAG:Ljava/lang/String;
-Landroid/database/CursorWindowAllocationException;
 Landroid/database/CursorWindowAllocationException;-><init>(Ljava/lang/String;)V
 Landroid/database/DatabaseUtils$InsertHelper;->buildSQL()V
 Landroid/database/DatabaseUtils$InsertHelper;->getStatement(Z)Landroid/database/sqlite/SQLiteStatement;
@@ -18467,7 +17283,6 @@
 Landroid/database/DatabaseUtils;->TAG:Ljava/lang/String;
 Landroid/database/DefaultDatabaseErrorHandler;->deleteDatabaseFile(Ljava/lang/String;)V
 Landroid/database/DefaultDatabaseErrorHandler;->TAG:Ljava/lang/String;
-Landroid/database/IBulkCursor;
 Landroid/database/IBulkCursor;->close()V
 Landroid/database/IBulkCursor;->CLOSE_TRANSACTION:I
 Landroid/database/IBulkCursor;->deactivate()V
@@ -18483,16 +17298,12 @@
 Landroid/database/IBulkCursor;->REQUERY_TRANSACTION:I
 Landroid/database/IBulkCursor;->respond(Landroid/os/Bundle;)Landroid/os/Bundle;
 Landroid/database/IBulkCursor;->RESPOND_TRANSACTION:I
-Landroid/database/IContentObserver$Stub$Proxy;
 Landroid/database/IContentObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/database/IContentObserver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/database/IContentObserver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/database/IContentObserver$Stub$Proxy;->onChange(ZLandroid/net/Uri;I)V
-Landroid/database/IContentObserver$Stub;
 Landroid/database/IContentObserver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/database/IContentObserver$Stub;->TRANSACTION_onChange:I
-Landroid/database/IContentObserver;
-Landroid/database/MatrixCursor$RowBuilder;-><init>(I)V
 Landroid/database/MatrixCursor$RowBuilder;->endIndex:I
 Landroid/database/MatrixCursor$RowBuilder;->index:I
 Landroid/database/MatrixCursor$RowBuilder;->row:I
@@ -18503,9 +17314,7 @@
 Landroid/database/MergeCursor;->mCursor:Landroid/database/Cursor;
 Landroid/database/MergeCursor;->mCursors:[Landroid/database/Cursor;
 Landroid/database/MergeCursor;->mObserver:Landroid/database/DataSetObserver;
-Landroid/database/sqlite/DatabaseObjectNotClosedException;
 Landroid/database/sqlite/DatabaseObjectNotClosedException;->s:Ljava/lang/String;
-Landroid/database/sqlite/SQLiteCompatibilityWalFlags;
 Landroid/database/sqlite/SQLiteCompatibilityWalFlags;-><init>()V
 Landroid/database/sqlite/SQLiteCompatibilityWalFlags;->areFlagsSet()Z
 Landroid/database/sqlite/SQLiteCompatibilityWalFlags;->getWALSyncMode()Ljava/lang/String;
@@ -18519,7 +17328,6 @@
 Landroid/database/sqlite/SQLiteCompatibilityWalFlags;->sInitialized:Z
 Landroid/database/sqlite/SQLiteCompatibilityWalFlags;->sWALSyncMode:Ljava/lang/String;
 Landroid/database/sqlite/SQLiteCompatibilityWalFlags;->TAG:Ljava/lang/String;
-Landroid/database/sqlite/SQLiteConnection$Operation;
 Landroid/database/sqlite/SQLiteConnection$Operation;-><init>()V
 Landroid/database/sqlite/SQLiteConnection$Operation;->describe(Ljava/lang/StringBuilder;Z)V
 Landroid/database/sqlite/SQLiteConnection$Operation;->getStatus()Ljava/lang/String;
@@ -18534,7 +17342,6 @@
 Landroid/database/sqlite/SQLiteConnection$Operation;->mSql:Ljava/lang/String;
 Landroid/database/sqlite/SQLiteConnection$Operation;->mStartTime:J
 Landroid/database/sqlite/SQLiteConnection$Operation;->mStartWallTime:J
-Landroid/database/sqlite/SQLiteConnection$OperationLog;
 Landroid/database/sqlite/SQLiteConnection$OperationLog;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;)V
 Landroid/database/sqlite/SQLiteConnection$OperationLog;->beginOperation(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)I
 Landroid/database/sqlite/SQLiteConnection$OperationLog;->COOKIE_GENERATION_SHIFT:I
@@ -18554,7 +17361,6 @@
 Landroid/database/sqlite/SQLiteConnection$OperationLog;->mOperations:[Landroid/database/sqlite/SQLiteConnection$Operation;
 Landroid/database/sqlite/SQLiteConnection$OperationLog;->mPool:Landroid/database/sqlite/SQLiteConnectionPool;
 Landroid/database/sqlite/SQLiteConnection$OperationLog;->newOperationCookieLocked(I)I
-Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
 Landroid/database/sqlite/SQLiteConnection$PreparedStatement;-><init>()V
 Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mInCache:Z
 Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mInUse:Z
@@ -18564,11 +17370,8 @@
 Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mSql:Ljava/lang/String;
 Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mStatementPtr:J
 Landroid/database/sqlite/SQLiteConnection$PreparedStatement;->mType:I
-Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;
-Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;-><init>(I)V
 Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->dump(Landroid/util/Printer;)V
 Landroid/database/sqlite/SQLiteConnection$PreparedStatementCache;->entryRemoved(ZLjava/lang/String;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
-Landroid/database/sqlite/SQLiteConnection;
 Landroid/database/sqlite/SQLiteConnection;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;Landroid/database/sqlite/SQLiteDatabaseConfiguration;IZ)V
 Landroid/database/sqlite/SQLiteConnection;->acquirePreparedStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnection$PreparedStatement;
 Landroid/database/sqlite/SQLiteConnection;->applyBlockGuardPolicy(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
@@ -18656,14 +17459,11 @@
 Landroid/database/sqlite/SQLiteConnection;->TAG:Ljava/lang/String;
 Landroid/database/sqlite/SQLiteConnection;->throwIfStatementForbidden(Landroid/database/sqlite/SQLiteConnection$PreparedStatement;)V
 Landroid/database/sqlite/SQLiteConnection;->trimSqlForDisplay(Ljava/lang/String;)Ljava/lang/String;
-Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;
-Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;-><init>()V
 Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;->DISCARD:Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;
 Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;->NORMAL:Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;
 Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;->RECONFIGURE:Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;
 Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;->valueOf(Ljava/lang/String;)Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;
 Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;->values()[Landroid/database/sqlite/SQLiteConnectionPool$AcquiredConnectionStatus;
-Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;
 Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;-><init>()V
 Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;->mAssignedConnection:Landroid/database/sqlite/SQLiteConnection;
 Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;->mConnectionFlags:I
@@ -18675,13 +17475,10 @@
 Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;->mStartTime:J
 Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;->mThread:Ljava/lang/Thread;
 Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;->mWantPrimaryConnection:Z
-Landroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;
-Landroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;-><init>(Landroid/os/Looper;J)V
 Landroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;->connectionAcquired(Landroid/database/sqlite/SQLiteConnection;)V
 Landroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;->connectionClosed(Landroid/database/sqlite/SQLiteConnection;)V
 Landroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;->connectionReleased(Landroid/database/sqlite/SQLiteConnection;)V
 Landroid/database/sqlite/SQLiteConnectionPool$IdleConnectionHandler;->mTimeout:J
-Landroid/database/sqlite/SQLiteConnectionPool;
 Landroid/database/sqlite/SQLiteConnectionPool;-><init>(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V
 Landroid/database/sqlite/SQLiteConnectionPool;->acquireConnection(Ljava/lang/String;ILandroid/os/CancellationSignal;)Landroid/database/sqlite/SQLiteConnection;
 Landroid/database/sqlite/SQLiteConnectionPool;->cancelConnectionWaiterLocked(Landroid/database/sqlite/SQLiteConnectionPool$ConnectionWaiter;)V
@@ -18748,12 +17545,9 @@
 Landroid/database/sqlite/SQLiteCursor;->mStackTrace:Ljava/lang/Throwable;
 Landroid/database/sqlite/SQLiteCursor;->NO_COUNT:I
 Landroid/database/sqlite/SQLiteCursor;->TAG:Ljava/lang/String;
-Landroid/database/sqlite/SQLiteCustomFunction;
 Landroid/database/sqlite/SQLiteCustomFunction;-><init>(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CustomFunction;)V
 Landroid/database/sqlite/SQLiteCustomFunction;->callback:Landroid/database/sqlite/SQLiteDatabase$CustomFunction;
-Landroid/database/sqlite/SQLiteDatabase$CustomFunction;
 Landroid/database/sqlite/SQLiteDatabase$CustomFunction;->callback([Ljava/lang/String;)V
-Landroid/database/sqlite/SQLiteDatabase$DatabaseOpenFlags;
 Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->isWriteAheadLoggingEnabled()Z
 Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->mCursorFactory:Landroid/database/sqlite/SQLiteDatabase$CursorFactory;
 Landroid/database/sqlite/SQLiteDatabase$OpenParams$Builder;->mErrorHandler:Landroid/database/DatabaseErrorHandler;
@@ -18803,7 +17597,6 @@
 Landroid/database/sqlite/SQLiteDatabase;->TAG:Ljava/lang/String;
 Landroid/database/sqlite/SQLiteDatabase;->throwIfNotOpenLocked()V
 Landroid/database/sqlite/SQLiteDatabase;->yieldIfContendedHelper(ZJ)Z
-Landroid/database/sqlite/SQLiteDatabaseConfiguration;
 Landroid/database/sqlite/SQLiteDatabaseConfiguration;-><init>(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V
 Landroid/database/sqlite/SQLiteDatabaseConfiguration;-><init>(Ljava/lang/String;I)V
 Landroid/database/sqlite/SQLiteDatabaseConfiguration;->customFunctions:Ljava/util/ArrayList;
@@ -18824,17 +17617,14 @@
 Landroid/database/sqlite/SQLiteDatabaseConfiguration;->syncMode:Ljava/lang/String;
 Landroid/database/sqlite/SQLiteDatabaseConfiguration;->updateParametersFrom(Landroid/database/sqlite/SQLiteDatabaseConfiguration;)V
 Landroid/database/sqlite/SQLiteDatabaseConfiguration;->useCompatibilityWal()Z
-Landroid/database/sqlite/SQLiteDebug$DbStats;
 Landroid/database/sqlite/SQLiteDebug$DbStats;-><init>(Ljava/lang/String;JJIIII)V
 Landroid/database/sqlite/SQLiteDebug$DbStats;->cache:Ljava/lang/String;
 Landroid/database/sqlite/SQLiteDebug$DbStats;->dbName:Ljava/lang/String;
 Landroid/database/sqlite/SQLiteDebug$DbStats;->dbSize:J
 Landroid/database/sqlite/SQLiteDebug$DbStats;->lookaside:I
 Landroid/database/sqlite/SQLiteDebug$DbStats;->pageSize:J
-Landroid/database/sqlite/SQLiteDebug$PagerStats;
 Landroid/database/sqlite/SQLiteDebug$PagerStats;-><init>()V
 Landroid/database/sqlite/SQLiteDebug$PagerStats;->dbStats:Ljava/util/ArrayList;
-Landroid/database/sqlite/SQLiteDebug;
 Landroid/database/sqlite/SQLiteDebug;-><init>()V
 Landroid/database/sqlite/SQLiteDebug;->DEBUG_LOG_SLOW_QUERIES:Z
 Landroid/database/sqlite/SQLiteDebug;->DEBUG_SQL_LOG:Z
@@ -18891,14 +17681,12 @@
 Landroid/database/sqlite/SQLiteQueryBuilder;->mStrict:Z
 Landroid/database/sqlite/SQLiteQueryBuilder;->sLimitPattern:Ljava/util/regex/Pattern;
 Landroid/database/sqlite/SQLiteQueryBuilder;->TAG:Ljava/lang/String;
-Landroid/database/sqlite/SQLiteSession$Transaction;
 Landroid/database/sqlite/SQLiteSession$Transaction;-><init>()V
 Landroid/database/sqlite/SQLiteSession$Transaction;->mChildFailed:Z
 Landroid/database/sqlite/SQLiteSession$Transaction;->mListener:Landroid/database/sqlite/SQLiteTransactionListener;
 Landroid/database/sqlite/SQLiteSession$Transaction;->mMarkedSuccessful:Z
 Landroid/database/sqlite/SQLiteSession$Transaction;->mMode:I
 Landroid/database/sqlite/SQLiteSession$Transaction;->mParent:Landroid/database/sqlite/SQLiteSession$Transaction;
-Landroid/database/sqlite/SQLiteSession;
 Landroid/database/sqlite/SQLiteSession;-><init>(Landroid/database/sqlite/SQLiteConnectionPool;)V
 Landroid/database/sqlite/SQLiteSession;->acquireConnection(Ljava/lang/String;ILandroid/os/CancellationSignal;)V
 Landroid/database/sqlite/SQLiteSession;->beginTransactionUnchecked(ILandroid/database/sqlite/SQLiteTransactionListener;ILandroid/os/CancellationSignal;)V
@@ -18934,30 +17722,25 @@
 Landroid/database/sqlite/SQLiteSession;->TRANSACTION_MODE_IMMEDIATE:I
 Landroid/database/sqlite/SQLiteSession;->yieldTransaction(JZLandroid/os/CancellationSignal;)Z
 Landroid/database/sqlite/SQLiteSession;->yieldTransactionUnchecked(JLandroid/os/CancellationSignal;)Z
-Landroid/database/sqlite/SQLiteStatementInfo;
 Landroid/database/sqlite/SQLiteStatementInfo;-><init>()V
 Landroid/database/sqlite/SQLiteStatementInfo;->columnNames:[Ljava/lang/String;
 Landroid/database/sqlite/SQLiteStatementInfo;->numParameters:I
 Landroid/database/sqlite/SQLiteStatementInfo;->readOnly:Z
-Landroid/database/sqlite/SqliteWrapper;
 Landroid/database/sqlite/SqliteWrapper;-><init>()V
 Landroid/database/sqlite/SqliteWrapper;->isLowMemory(Landroid/database/sqlite/SQLiteException;)Z
 Landroid/database/sqlite/SqliteWrapper;->requery(Landroid/content/Context;Landroid/database/Cursor;)Z
 Landroid/database/sqlite/SqliteWrapper;->SQLITE_EXCEPTION_DETAIL_MESSAGE:Ljava/lang/String;
 Landroid/database/sqlite/SqliteWrapper;->TAG:Ljava/lang/String;
-Landroid/ddm/DdmHandleAppName;
 Landroid/ddm/DdmHandleAppName;-><init>()V
 Landroid/ddm/DdmHandleAppName;->CHUNK_APNM:I
 Landroid/ddm/DdmHandleAppName;->mAppName:Ljava/lang/String;
 Landroid/ddm/DdmHandleAppName;->mInstance:Landroid/ddm/DdmHandleAppName;
 Landroid/ddm/DdmHandleAppName;->register()V
 Landroid/ddm/DdmHandleAppName;->sendAPNM(Ljava/lang/String;I)V
-Landroid/ddm/DdmHandleExit;
 Landroid/ddm/DdmHandleExit;-><init>()V
 Landroid/ddm/DdmHandleExit;->CHUNK_EXIT:I
 Landroid/ddm/DdmHandleExit;->mInstance:Landroid/ddm/DdmHandleExit;
 Landroid/ddm/DdmHandleExit;->register()V
-Landroid/ddm/DdmHandleHeap;
 Landroid/ddm/DdmHandleHeap;-><init>()V
 Landroid/ddm/DdmHandleHeap;->CHUNK_HPDS:I
 Landroid/ddm/DdmHandleHeap;->CHUNK_HPDU:I
@@ -18978,7 +17761,6 @@
 Landroid/ddm/DdmHandleHeap;->handleREAQ(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
 Landroid/ddm/DdmHandleHeap;->mInstance:Landroid/ddm/DdmHandleHeap;
 Landroid/ddm/DdmHandleHeap;->register()V
-Landroid/ddm/DdmHandleHello;
 Landroid/ddm/DdmHandleHello;-><init>()V
 Landroid/ddm/DdmHandleHello;->CHUNK_FEAT:I
 Landroid/ddm/DdmHandleHello;->CHUNK_HELO:I
@@ -18989,14 +17771,12 @@
 Landroid/ddm/DdmHandleHello;->mInstance:Landroid/ddm/DdmHandleHello;
 Landroid/ddm/DdmHandleHello;->register()V
 Landroid/ddm/DdmHandleHello;->sendWAIT(I)V
-Landroid/ddm/DdmHandleNativeHeap;
 Landroid/ddm/DdmHandleNativeHeap;-><init>()V
 Landroid/ddm/DdmHandleNativeHeap;->CHUNK_NHGT:I
 Landroid/ddm/DdmHandleNativeHeap;->getLeakInfo()[B
 Landroid/ddm/DdmHandleNativeHeap;->handleNHGT(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
 Landroid/ddm/DdmHandleNativeHeap;->mInstance:Landroid/ddm/DdmHandleNativeHeap;
 Landroid/ddm/DdmHandleNativeHeap;->register()V
-Landroid/ddm/DdmHandleProfiling;
 Landroid/ddm/DdmHandleProfiling;-><init>()V
 Landroid/ddm/DdmHandleProfiling;->CHUNK_MPRE:I
 Landroid/ddm/DdmHandleProfiling;->CHUNK_MPRQ:I
@@ -19014,7 +17794,6 @@
 Landroid/ddm/DdmHandleProfiling;->handleSPSS(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
 Landroid/ddm/DdmHandleProfiling;->mInstance:Landroid/ddm/DdmHandleProfiling;
 Landroid/ddm/DdmHandleProfiling;->register()V
-Landroid/ddm/DdmHandleThread;
 Landroid/ddm/DdmHandleThread;-><init>()V
 Landroid/ddm/DdmHandleThread;->CHUNK_STKL:I
 Landroid/ddm/DdmHandleThread;->CHUNK_THCR:I
@@ -19027,7 +17806,6 @@
 Landroid/ddm/DdmHandleThread;->handleTHST(Lorg/apache/harmony/dalvik/ddmc/Chunk;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
 Landroid/ddm/DdmHandleThread;->mInstance:Landroid/ddm/DdmHandleThread;
 Landroid/ddm/DdmHandleThread;->register()V
-Landroid/ddm/DdmHandleViewDebug;
 Landroid/ddm/DdmHandleViewDebug;-><init>()V
 Landroid/ddm/DdmHandleViewDebug;->captureLayers(Landroid/view/View;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
 Landroid/ddm/DdmHandleViewDebug;->captureView(Landroid/view/View;Landroid/view/View;)Lorg/apache/harmony/dalvik/ddmc/Chunk;
@@ -19057,7 +17835,6 @@
 Landroid/ddm/DdmHandleViewDebug;->VURT_CAPTURE_LAYERS:I
 Landroid/ddm/DdmHandleViewDebug;->VURT_DUMP_HIERARCHY:I
 Landroid/ddm/DdmHandleViewDebug;->VURT_DUMP_THEME:I
-Landroid/ddm/DdmRegister;
 Landroid/ddm/DdmRegister;-><init>()V
 Landroid/ddm/DdmRegister;->registerHandlers()V
 Landroid/drm/DrmConvertedStatus;->isValidStatusCode(I)Z
@@ -19078,10 +17855,6 @@
 Landroid/drm/DrmInfoRequest;->mMimeType:Ljava/lang/String;
 Landroid/drm/DrmInfoRequest;->mRequestInformation:Ljava/util/HashMap;
 Landroid/drm/DrmInfoStatus;->isValidStatusCode(I)Z
-Landroid/drm/DrmManagerClient$EventHandler;
-Landroid/drm/DrmManagerClient$EventHandler;-><init>(Landroid/os/Looper;)V
-Landroid/drm/DrmManagerClient$InfoHandler;
-Landroid/drm/DrmManagerClient$InfoHandler;-><init>(Landroid/os/Looper;)V
 Landroid/drm/DrmManagerClient$InfoHandler;->INFO_EVENT_TYPE:I
 Landroid/drm/DrmManagerClient;->ACTION_PROCESS_DRM_INFO:I
 Landroid/drm/DrmManagerClient;->ACTION_REMOVE_ALL_RIGHTS:I
@@ -19125,7 +17898,6 @@
 Landroid/drm/DrmManagerClient;->_removeRights(ILjava/lang/String;)I
 Landroid/drm/DrmManagerClient;->_saveRights(ILandroid/drm/DrmRights;Ljava/lang/String;Ljava/lang/String;)I
 Landroid/drm/DrmManagerClient;->_setListeners(ILjava/lang/Object;)V
-Landroid/drm/DrmOutputStream;
 Landroid/drm/DrmOutputStream;-><init>(Landroid/drm/DrmManagerClient;Landroid/os/ParcelFileDescriptor;Ljava/lang/String;)V
 Landroid/drm/DrmOutputStream;->finish()V
 Landroid/drm/DrmOutputStream;->mClient:Landroid/drm/DrmManagerClient;
@@ -19160,17 +17932,11 @@
 Landroid/drm/ProcessedData;->mAccountId:Ljava/lang/String;
 Landroid/drm/ProcessedData;->mData:[B
 Landroid/drm/ProcessedData;->mSubscriptionId:Ljava/lang/String;
-Landroid/filterfw/core/AsyncRunner$AsyncRunnerTask;
-Landroid/filterfw/core/AsyncRunner$AsyncRunnerTask;-><init>()V
-Landroid/filterfw/core/AsyncRunner$AsyncRunnerTask;->doInBackground([[Landroid/filterfw/core/SyncRunner;)Landroid/filterfw/core/AsyncRunner$RunnerResult;
 Landroid/filterfw/core/AsyncRunner$AsyncRunnerTask;->onCancelled(Landroid/filterfw/core/AsyncRunner$RunnerResult;)V
 Landroid/filterfw/core/AsyncRunner$AsyncRunnerTask;->onPostExecute(Landroid/filterfw/core/AsyncRunner$RunnerResult;)V
 Landroid/filterfw/core/AsyncRunner$AsyncRunnerTask;->TAG:Ljava/lang/String;
-Landroid/filterfw/core/AsyncRunner$RunnerResult;
-Landroid/filterfw/core/AsyncRunner$RunnerResult;-><init>()V
 Landroid/filterfw/core/AsyncRunner$RunnerResult;->exception:Ljava/lang/Exception;
 Landroid/filterfw/core/AsyncRunner$RunnerResult;->status:I
-Landroid/filterfw/core/AsyncRunner;
 Landroid/filterfw/core/AsyncRunner;-><init>(Landroid/filterfw/core/FilterContext;)V
 Landroid/filterfw/core/AsyncRunner;-><init>(Landroid/filterfw/core/FilterContext;Ljava/lang/Class;)V
 Landroid/filterfw/core/AsyncRunner;->close()V
@@ -19191,7 +17957,6 @@
 Landroid/filterfw/core/AsyncRunner;->setRunning(Z)V
 Landroid/filterfw/core/AsyncRunner;->stop()V
 Landroid/filterfw/core/AsyncRunner;->TAG:Ljava/lang/String;
-Landroid/filterfw/core/CachedFrameManager;
 Landroid/filterfw/core/CachedFrameManager;-><init>()V
 Landroid/filterfw/core/CachedFrameManager;->clearCache()V
 Landroid/filterfw/core/CachedFrameManager;->dropOldestFrame()V
@@ -19206,7 +17971,6 @@
 Landroid/filterfw/core/CachedFrameManager;->retainFrame(Landroid/filterfw/core/Frame;)Landroid/filterfw/core/Frame;
 Landroid/filterfw/core/CachedFrameManager;->storeFrame(Landroid/filterfw/core/Frame;)Z
 Landroid/filterfw/core/CachedFrameManager;->tearDown()V
-Landroid/filterfw/core/FieldPort;
 Landroid/filterfw/core/FieldPort;-><init>(Landroid/filterfw/core/Filter;Ljava/lang/String;Ljava/lang/reflect/Field;Z)V
 Landroid/filterfw/core/FieldPort;->acceptsFrame()Z
 Landroid/filterfw/core/FieldPort;->clear()V
@@ -19221,7 +17985,6 @@
 Landroid/filterfw/core/FieldPort;->setFieldFrame(Landroid/filterfw/core/Frame;Z)V
 Landroid/filterfw/core/FieldPort;->setFrame(Landroid/filterfw/core/Frame;)V
 Landroid/filterfw/core/FieldPort;->transfer(Landroid/filterfw/core/FilterContext;)V
-Landroid/filterfw/core/Filter;
 Landroid/filterfw/core/Filter;->addAndSetFinalPorts(Landroid/filterfw/core/KeyValueMap;)V
 Landroid/filterfw/core/Filter;->addAnnotatedPorts()V
 Landroid/filterfw/core/Filter;->addFieldGenerator(Landroid/filterfw/core/GenerateFieldPort;Ljava/lang/reflect/Field;)V
@@ -19259,7 +18022,6 @@
 Landroid/filterfw/core/Filter;->initFinalPorts(Landroid/filterfw/core/KeyValueMap;)V
 Landroid/filterfw/core/Filter;->initProgramInputs(Landroid/filterfw/core/Program;Landroid/filterfw/core/FilterContext;)V
 Landroid/filterfw/core/Filter;->initRemainingPorts(Landroid/filterfw/core/KeyValueMap;)V
-Landroid/filterfw/core/Filter;->initWithAssignmentList([[Ljava/lang/Object;)V
 Landroid/filterfw/core/Filter;->initWithAssignmentString(Ljava/lang/String;)V
 Landroid/filterfw/core/Filter;->initWithValueMap(Landroid/filterfw/core/KeyValueMap;)V
 Landroid/filterfw/core/Filter;->inputConditionsMet()Z
@@ -19312,9 +18074,7 @@
 Landroid/filterfw/core/Filter;->transferInputPortFrame(Ljava/lang/String;Landroid/filterfw/core/FilterContext;)V
 Landroid/filterfw/core/Filter;->unsetStatus(I)V
 Landroid/filterfw/core/Filter;->wrapInputValue(Ljava/lang/String;Ljava/lang/Object;)Landroid/filterfw/core/Frame;
-Landroid/filterfw/core/FilterContext$OnFrameReceivedListener;
 Landroid/filterfw/core/FilterContext$OnFrameReceivedListener;->onFrameReceived(Landroid/filterfw/core/Filter;Landroid/filterfw/core/Frame;Ljava/lang/Object;)V
-Landroid/filterfw/core/FilterContext;
 Landroid/filterfw/core/FilterContext;-><init>()V
 Landroid/filterfw/core/FilterContext;->addGraph(Landroid/filterfw/core/FilterGraph;)V
 Landroid/filterfw/core/FilterContext;->fetchFrame(Ljava/lang/String;)Landroid/filterfw/core/Frame;
@@ -19327,7 +18087,6 @@
 Landroid/filterfw/core/FilterContext;->setFrameManager(Landroid/filterfw/core/FrameManager;)V
 Landroid/filterfw/core/FilterContext;->storeFrame(Ljava/lang/String;Landroid/filterfw/core/Frame;)V
 Landroid/filterfw/core/FilterContext;->tearDown()V
-Landroid/filterfw/core/FilterFactory;
 Landroid/filterfw/core/FilterFactory;-><init>()V
 Landroid/filterfw/core/FilterFactory;->addFilterLibrary(Ljava/lang/String;)V
 Landroid/filterfw/core/FilterFactory;->addPackage(Ljava/lang/String;)V
@@ -19341,14 +18100,10 @@
 Landroid/filterfw/core/FilterFactory;->mSharedFactory:Landroid/filterfw/core/FilterFactory;
 Landroid/filterfw/core/FilterFactory;->sharedFactory()Landroid/filterfw/core/FilterFactory;
 Landroid/filterfw/core/FilterFactory;->TAG:Ljava/lang/String;
-Landroid/filterfw/core/FilterFunction$FrameHolderPort;
-Landroid/filterfw/core/FilterFunction$FrameHolderPort;-><init>()V
-Landroid/filterfw/core/FilterFunction;
 Landroid/filterfw/core/FilterFunction;-><init>(Landroid/filterfw/core/FilterContext;Landroid/filterfw/core/Filter;)V
 Landroid/filterfw/core/FilterFunction;->close()V
 Landroid/filterfw/core/FilterFunction;->connectFilterOutputs()V
 Landroid/filterfw/core/FilterFunction;->execute(Landroid/filterfw/core/KeyValueMap;)Landroid/filterfw/core/Frame;
-Landroid/filterfw/core/FilterFunction;->executeWithArgList([[Ljava/lang/Object;)Landroid/filterfw/core/Frame;
 Landroid/filterfw/core/FilterFunction;->getContext()Landroid/filterfw/core/FilterContext;
 Landroid/filterfw/core/FilterFunction;->getFilter()Landroid/filterfw/core/Filter;
 Landroid/filterfw/core/FilterFunction;->mFilter:Landroid/filterfw/core/Filter;
@@ -19358,7 +18113,6 @@
 Landroid/filterfw/core/FilterFunction;->setInputFrame(Ljava/lang/String;Landroid/filterfw/core/Frame;)V
 Landroid/filterfw/core/FilterFunction;->setInputValue(Ljava/lang/String;Ljava/lang/Object;)V
 Landroid/filterfw/core/FilterFunction;->tearDown()V
-Landroid/filterfw/core/FilterGraph;
 Landroid/filterfw/core/FilterGraph;-><init>()V
 Landroid/filterfw/core/FilterGraph;->addFilter(Landroid/filterfw/core/Filter;)Z
 Landroid/filterfw/core/FilterGraph;->AUTOBRANCH_OFF:I
@@ -19398,7 +18152,6 @@
 Landroid/filterfw/core/FilterGraph;->TYPECHECK_OFF:I
 Landroid/filterfw/core/FilterGraph;->TYPECHECK_STRICT:I
 Landroid/filterfw/core/FilterGraph;->updateOutputs(Landroid/filterfw/core/Filter;)V
-Landroid/filterfw/core/FilterPort;
 Landroid/filterfw/core/FilterPort;-><init>(Landroid/filterfw/core/Filter;Ljava/lang/String;)V
 Landroid/filterfw/core/FilterPort;->assertPortIsOpen()V
 Landroid/filterfw/core/FilterPort;->checkFrameManager(Landroid/filterfw/core/Frame;Landroid/filterfw/core/FilterContext;)V
@@ -19429,7 +18182,6 @@
 Landroid/filterfw/core/FilterPort;->setFrame(Landroid/filterfw/core/Frame;)V
 Landroid/filterfw/core/FilterPort;->setPortFormat(Landroid/filterfw/core/FrameFormat;)V
 Landroid/filterfw/core/FilterPort;->TAG:Ljava/lang/String;
-Landroid/filterfw/core/FilterSurfaceView;
 Landroid/filterfw/core/FilterSurfaceView;-><init>(Landroid/content/Context;)V
 Landroid/filterfw/core/FilterSurfaceView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/filterfw/core/FilterSurfaceView;->bindToListener(Landroid/view/SurfaceHolder$Callback;Landroid/filterfw/core/GLEnvironment;)V
@@ -19448,10 +18200,8 @@
 Landroid/filterfw/core/FilterSurfaceView;->STATE_INITIALIZED:I
 Landroid/filterfw/core/FilterSurfaceView;->unbind()V
 Landroid/filterfw/core/FilterSurfaceView;->unregisterSurface()V
-Landroid/filterfw/core/FinalPort;
 Landroid/filterfw/core/FinalPort;-><init>(Landroid/filterfw/core/Filter;Ljava/lang/String;Ljava/lang/reflect/Field;Z)V
 Landroid/filterfw/core/FinalPort;->setFieldFrame(Landroid/filterfw/core/Frame;Z)V
-Landroid/filterfw/core/Frame;
 Landroid/filterfw/core/Frame;-><init>(Landroid/filterfw/core/FrameFormat;Landroid/filterfw/core/FrameManager;)V
 Landroid/filterfw/core/Frame;-><init>(Landroid/filterfw/core/FrameFormat;Landroid/filterfw/core/FrameManager;IJ)V
 Landroid/filterfw/core/Frame;->assertFrameMutable()V
@@ -19498,7 +18248,6 @@
 Landroid/filterfw/core/Frame;->setReusable(Z)V
 Landroid/filterfw/core/Frame;->TIMESTAMP_NOT_SET:J
 Landroid/filterfw/core/Frame;->TIMESTAMP_UNKNOWN:J
-Landroid/filterfw/core/FrameFormat;
 Landroid/filterfw/core/FrameFormat;-><init>()V
 Landroid/filterfw/core/FrameFormat;-><init>(II)V
 Landroid/filterfw/core/FrameFormat;->baseTypeToString(I)Ljava/lang/String;
@@ -19553,7 +18302,6 @@
 Landroid/filterfw/core/FrameFormat;->TYPE_POINTER:I
 Landroid/filterfw/core/FrameFormat;->TYPE_UNSPECIFIED:I
 Landroid/filterfw/core/FrameFormat;->unspecified()Landroid/filterfw/core/FrameFormat;
-Landroid/filterfw/core/FrameManager;
 Landroid/filterfw/core/FrameManager;-><init>()V
 Landroid/filterfw/core/FrameManager;->duplicateFrameToTarget(Landroid/filterfw/core/Frame;I)Landroid/filterfw/core/Frame;
 Landroid/filterfw/core/FrameManager;->getContext()Landroid/filterfw/core/FilterContext;
@@ -19563,11 +18311,6 @@
 Landroid/filterfw/core/FrameManager;->retainFrame(Landroid/filterfw/core/Frame;)Landroid/filterfw/core/Frame;
 Landroid/filterfw/core/FrameManager;->setContext(Landroid/filterfw/core/FilterContext;)V
 Landroid/filterfw/core/FrameManager;->tearDown()V
-Landroid/filterfw/core/GenerateFieldPort;
-Landroid/filterfw/core/GenerateFinalPort;
-Landroid/filterfw/core/GenerateProgramPort;
-Landroid/filterfw/core/GenerateProgramPorts;
-Landroid/filterfw/core/GLEnvironment;
 Landroid/filterfw/core/GLEnvironment;-><init>()V
 Landroid/filterfw/core/GLEnvironment;-><init>(Landroid/filterfw/core/NativeAllocatorTag;)V
 Landroid/filterfw/core/GLEnvironment;->glEnvId:I
@@ -19596,7 +18339,6 @@
 Landroid/filterfw/core/GLEnvironment;->registerSurface(Landroid/view/Surface;)I
 Landroid/filterfw/core/GLEnvironment;->registerSurfaceTexture(Landroid/graphics/SurfaceTexture;II)I
 Landroid/filterfw/core/GLEnvironment;->tearDown()V
-Landroid/filterfw/core/GLFrame;
 Landroid/filterfw/core/GLFrame;-><init>(Landroid/filterfw/core/FrameFormat;Landroid/filterfw/core/FrameManager;)V
 Landroid/filterfw/core/GLFrame;-><init>(Landroid/filterfw/core/FrameFormat;Landroid/filterfw/core/FrameManager;IJ)V
 Landroid/filterfw/core/GLFrame;->assertGLEnvValid()V
@@ -19656,9 +18398,7 @@
 Landroid/filterfw/core/GLFrame;->setNativeViewport(IIII)Z
 Landroid/filterfw/core/GLFrame;->setViewport(IIII)V
 Landroid/filterfw/core/GLFrame;->setViewport(Landroid/graphics/Rect;)V
-Landroid/filterfw/core/GraphRunner$OnRunnerDoneListener;
 Landroid/filterfw/core/GraphRunner$OnRunnerDoneListener;->onRunnerDone(I)V
-Landroid/filterfw/core/GraphRunner;
 Landroid/filterfw/core/GraphRunner;-><init>(Landroid/filterfw/core/FilterContext;)V
 Landroid/filterfw/core/GraphRunner;->activateGlContext()Z
 Landroid/filterfw/core/GraphRunner;->close()V
@@ -19673,7 +18413,6 @@
 Landroid/filterfw/core/GraphRunner;->RESULT_SLEEPING:I
 Landroid/filterfw/core/GraphRunner;->RESULT_STOPPED:I
 Landroid/filterfw/core/GraphRunner;->RESULT_UNKNOWN:I
-Landroid/filterfw/core/InputPort;
 Landroid/filterfw/core/InputPort;-><init>(Landroid/filterfw/core/Filter;Ljava/lang/String;)V
 Landroid/filterfw/core/InputPort;->acceptsFrame()Z
 Landroid/filterfw/core/InputPort;->close()V
@@ -19688,14 +18427,10 @@
 Landroid/filterfw/core/InputPort;->open()V
 Landroid/filterfw/core/InputPort;->setSourcePort(Landroid/filterfw/core/OutputPort;)V
 Landroid/filterfw/core/InputPort;->transfer(Landroid/filterfw/core/FilterContext;)V
-Landroid/filterfw/core/KeyValueMap;
 Landroid/filterfw/core/KeyValueMap;-><init>()V
-Landroid/filterfw/core/KeyValueMap;->fromKeyValues([[Ljava/lang/Object;)Landroid/filterfw/core/KeyValueMap;
 Landroid/filterfw/core/KeyValueMap;->getFloat(Ljava/lang/String;)F
 Landroid/filterfw/core/KeyValueMap;->getInt(Ljava/lang/String;)I
 Landroid/filterfw/core/KeyValueMap;->getString(Ljava/lang/String;)Ljava/lang/String;
-Landroid/filterfw/core/KeyValueMap;->setKeyValues([[Ljava/lang/Object;)V
-Landroid/filterfw/core/MutableFrameFormat;
 Landroid/filterfw/core/MutableFrameFormat;-><init>()V
 Landroid/filterfw/core/MutableFrameFormat;->setBaseType(I)V
 Landroid/filterfw/core/MutableFrameFormat;->setDimensionCount(I)V
@@ -19705,9 +18440,7 @@
 Landroid/filterfw/core/MutableFrameFormat;->setMetaValue(Ljava/lang/String;Ljava/lang/Object;)V
 Landroid/filterfw/core/MutableFrameFormat;->setObjectClass(Ljava/lang/Class;)V
 Landroid/filterfw/core/MutableFrameFormat;->setTarget(I)V
-Landroid/filterfw/core/NativeAllocatorTag;
 Landroid/filterfw/core/NativeAllocatorTag;-><init>()V
-Landroid/filterfw/core/NativeBuffer;
 Landroid/filterfw/core/NativeBuffer;-><init>()V
 Landroid/filterfw/core/NativeBuffer;-><init>(I)V
 Landroid/filterfw/core/NativeBuffer;->allocate(I)Z
@@ -19728,7 +18461,6 @@
 Landroid/filterfw/core/NativeBuffer;->release()Landroid/filterfw/core/NativeBuffer;
 Landroid/filterfw/core/NativeBuffer;->retain()Landroid/filterfw/core/NativeBuffer;
 Landroid/filterfw/core/NativeBuffer;->size()I
-Landroid/filterfw/core/NativeFrame;
 Landroid/filterfw/core/NativeFrame;-><init>(Landroid/filterfw/core/FrameFormat;Landroid/filterfw/core/FrameManager;)V
 Landroid/filterfw/core/NativeFrame;->getBitmap()Landroid/graphics/Bitmap;
 Landroid/filterfw/core/NativeFrame;->getCapacity()I
@@ -19760,7 +18492,6 @@
 Landroid/filterfw/core/NativeFrame;->setNativeData([BII)Z
 Landroid/filterfw/core/NativeFrame;->setNativeFloats([F)Z
 Landroid/filterfw/core/NativeFrame;->setNativeInts([I)Z
-Landroid/filterfw/core/NativeProgram;
 Landroid/filterfw/core/NativeProgram;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/filterfw/core/NativeProgram;->allocate()Z
 Landroid/filterfw/core/NativeProgram;->bindGetValueFunction(Ljava/lang/String;)Z
@@ -19790,14 +18521,12 @@
 Landroid/filterfw/core/NativeProgram;->reset()V
 Landroid/filterfw/core/NativeProgram;->setHostValue(Ljava/lang/String;Ljava/lang/Object;)V
 Landroid/filterfw/core/NativeProgram;->tearDown()V
-Landroid/filterfw/core/OneShotScheduler;
 Landroid/filterfw/core/OneShotScheduler;-><init>(Landroid/filterfw/core/FilterGraph;)V
 Landroid/filterfw/core/OneShotScheduler;->mLogVerbose:Z
 Landroid/filterfw/core/OneShotScheduler;->reset()V
 Landroid/filterfw/core/OneShotScheduler;->scheduled:Ljava/util/HashMap;
 Landroid/filterfw/core/OneShotScheduler;->scheduleNextNode()Landroid/filterfw/core/Filter;
 Landroid/filterfw/core/OneShotScheduler;->TAG:Ljava/lang/String;
-Landroid/filterfw/core/OutputPort;
 Landroid/filterfw/core/OutputPort;-><init>(Landroid/filterfw/core/Filter;Ljava/lang/String;)V
 Landroid/filterfw/core/OutputPort;->clear()V
 Landroid/filterfw/core/OutputPort;->close()V
@@ -19816,15 +18545,12 @@
 Landroid/filterfw/core/OutputPort;->pushFrame(Landroid/filterfw/core/Frame;)V
 Landroid/filterfw/core/OutputPort;->setBasePort(Landroid/filterfw/core/InputPort;)V
 Landroid/filterfw/core/OutputPort;->setFrame(Landroid/filterfw/core/Frame;)V
-Landroid/filterfw/core/Program;
 Landroid/filterfw/core/Program;-><init>()V
 Landroid/filterfw/core/Program;->getHostValue(Ljava/lang/String;)Ljava/lang/Object;
 Landroid/filterfw/core/Program;->reset()V
-Landroid/filterfw/core/ProgramPort;
 Landroid/filterfw/core/ProgramPort;-><init>(Landroid/filterfw/core/Filter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/reflect/Field;Z)V
 Landroid/filterfw/core/ProgramPort;->mVarName:Ljava/lang/String;
 Landroid/filterfw/core/ProgramPort;->transfer(Landroid/filterfw/core/FilterContext;)V
-Landroid/filterfw/core/ProgramVariable;
 Landroid/filterfw/core/ProgramVariable;-><init>(Landroid/filterfw/core/Program;Ljava/lang/String;)V
 Landroid/filterfw/core/ProgramVariable;->getProgram()Landroid/filterfw/core/Program;
 Landroid/filterfw/core/ProgramVariable;->getValue()Ljava/lang/Object;
@@ -19832,33 +18558,25 @@
 Landroid/filterfw/core/ProgramVariable;->mProgram:Landroid/filterfw/core/Program;
 Landroid/filterfw/core/ProgramVariable;->mVarName:Ljava/lang/String;
 Landroid/filterfw/core/ProgramVariable;->setValue(Ljava/lang/Object;)V
-Landroid/filterfw/core/ProtocolException;
 Landroid/filterfw/core/ProtocolException;-><init>()V
 Landroid/filterfw/core/ProtocolException;-><init>(Ljava/lang/String;)V
-Landroid/filterfw/core/RandomScheduler;
 Landroid/filterfw/core/RandomScheduler;-><init>(Landroid/filterfw/core/FilterGraph;)V
 Landroid/filterfw/core/RandomScheduler;->mRand:Ljava/util/Random;
 Landroid/filterfw/core/RandomScheduler;->reset()V
 Landroid/filterfw/core/RandomScheduler;->scheduleNextNode()Landroid/filterfw/core/Filter;
-Landroid/filterfw/core/RoundRobinScheduler;
 Landroid/filterfw/core/RoundRobinScheduler;-><init>(Landroid/filterfw/core/FilterGraph;)V
 Landroid/filterfw/core/RoundRobinScheduler;->mLastPos:I
 Landroid/filterfw/core/RoundRobinScheduler;->reset()V
 Landroid/filterfw/core/RoundRobinScheduler;->scheduleNextNode()Landroid/filterfw/core/Filter;
-Landroid/filterfw/core/Scheduler;
 Landroid/filterfw/core/Scheduler;-><init>(Landroid/filterfw/core/FilterGraph;)V
 Landroid/filterfw/core/Scheduler;->finished()Z
 Landroid/filterfw/core/Scheduler;->getGraph()Landroid/filterfw/core/FilterGraph;
 Landroid/filterfw/core/Scheduler;->mGraph:Landroid/filterfw/core/FilterGraph;
 Landroid/filterfw/core/Scheduler;->reset()V
 Landroid/filterfw/core/Scheduler;->scheduleNextNode()Landroid/filterfw/core/Filter;
-Landroid/filterfw/core/SerializedFrame$DirectByteInputStream;
-Landroid/filterfw/core/SerializedFrame$DirectByteInputStream;-><init>([BI)V
 Landroid/filterfw/core/SerializedFrame$DirectByteInputStream;->mBuffer:[B
 Landroid/filterfw/core/SerializedFrame$DirectByteInputStream;->mPos:I
 Landroid/filterfw/core/SerializedFrame$DirectByteInputStream;->mSize:I
-Landroid/filterfw/core/SerializedFrame$DirectByteOutputStream;
-Landroid/filterfw/core/SerializedFrame$DirectByteOutputStream;-><init>(I)V
 Landroid/filterfw/core/SerializedFrame$DirectByteOutputStream;->ensureFit(I)V
 Landroid/filterfw/core/SerializedFrame$DirectByteOutputStream;->getByteArray()[B
 Landroid/filterfw/core/SerializedFrame$DirectByteOutputStream;->getInputStream()Landroid/filterfw/core/SerializedFrame$DirectByteInputStream;
@@ -19868,7 +18586,6 @@
 Landroid/filterfw/core/SerializedFrame$DirectByteOutputStream;->mDataOffset:I
 Landroid/filterfw/core/SerializedFrame$DirectByteOutputStream;->mOffset:I
 Landroid/filterfw/core/SerializedFrame$DirectByteOutputStream;->reset()V
-Landroid/filterfw/core/SerializedFrame;
 Landroid/filterfw/core/SerializedFrame;-><init>(Landroid/filterfw/core/FrameFormat;Landroid/filterfw/core/FrameManager;)V
 Landroid/filterfw/core/SerializedFrame;->deserializeObjectValue()Ljava/lang/Object;
 Landroid/filterfw/core/SerializedFrame;->getBitmap()Landroid/graphics/Bitmap;
@@ -19888,7 +18605,6 @@
 Landroid/filterfw/core/SerializedFrame;->setGenericObjectValue(Ljava/lang/Object;)V
 Landroid/filterfw/core/SerializedFrame;->setInts([I)V
 Landroid/filterfw/core/SerializedFrame;->wrapObject(Ljava/lang/Object;Landroid/filterfw/core/FrameManager;)Landroid/filterfw/core/SerializedFrame;
-Landroid/filterfw/core/ShaderProgram;
 Landroid/filterfw/core/ShaderProgram;-><init>()V
 Landroid/filterfw/core/ShaderProgram;-><init>(Landroid/filterfw/core/FilterContext;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/filterfw/core/ShaderProgram;-><init>(Landroid/filterfw/core/NativeAllocatorTag;)V
@@ -19930,7 +18646,6 @@
 Landroid/filterfw/core/ShaderProgram;->setVertexCount(I)V
 Landroid/filterfw/core/ShaderProgram;->shaderProcess([Landroid/filterfw/core/GLFrame;Landroid/filterfw/core/GLFrame;)Z
 Landroid/filterfw/core/ShaderProgram;->shaderProgramId:I
-Landroid/filterfw/core/SimpleFrame;
 Landroid/filterfw/core/SimpleFrame;-><init>(Landroid/filterfw/core/FrameFormat;Landroid/filterfw/core/FrameManager;)V
 Landroid/filterfw/core/SimpleFrame;->getBitmap()Landroid/graphics/Bitmap;
 Landroid/filterfw/core/SimpleFrame;->getData()Ljava/nio/ByteBuffer;
@@ -19948,18 +18663,15 @@
 Landroid/filterfw/core/SimpleFrame;->setGenericObjectValue(Ljava/lang/Object;)V
 Landroid/filterfw/core/SimpleFrame;->setInts([I)V
 Landroid/filterfw/core/SimpleFrame;->wrapObject(Ljava/lang/Object;Landroid/filterfw/core/FrameManager;)Landroid/filterfw/core/SimpleFrame;
-Landroid/filterfw/core/SimpleFrameManager;
 Landroid/filterfw/core/SimpleFrameManager;-><init>()V
 Landroid/filterfw/core/SimpleFrameManager;->createNewFrame(Landroid/filterfw/core/FrameFormat;)Landroid/filterfw/core/Frame;
 Landroid/filterfw/core/SimpleFrameManager;->newBoundFrame(Landroid/filterfw/core/FrameFormat;IJ)Landroid/filterfw/core/Frame;
 Landroid/filterfw/core/SimpleFrameManager;->newFrame(Landroid/filterfw/core/FrameFormat;)Landroid/filterfw/core/Frame;
 Landroid/filterfw/core/SimpleFrameManager;->releaseFrame(Landroid/filterfw/core/Frame;)Landroid/filterfw/core/Frame;
 Landroid/filterfw/core/SimpleFrameManager;->retainFrame(Landroid/filterfw/core/Frame;)Landroid/filterfw/core/Frame;
-Landroid/filterfw/core/SimpleScheduler;
 Landroid/filterfw/core/SimpleScheduler;-><init>(Landroid/filterfw/core/FilterGraph;)V
 Landroid/filterfw/core/SimpleScheduler;->reset()V
 Landroid/filterfw/core/SimpleScheduler;->scheduleNextNode()Landroid/filterfw/core/Filter;
-Landroid/filterfw/core/StopWatch;
 Landroid/filterfw/core/StopWatch;-><init>(Ljava/lang/String;)V
 Landroid/filterfw/core/StopWatch;->mName:Ljava/lang/String;
 Landroid/filterfw/core/StopWatch;->mNumCalls:I
@@ -19969,13 +18681,11 @@
 Landroid/filterfw/core/StopWatch;->stop()V
 Landroid/filterfw/core/StopWatch;->STOP_WATCH_LOGGING_PERIOD:I
 Landroid/filterfw/core/StopWatch;->TAG:Ljava/lang/String;
-Landroid/filterfw/core/StopWatchMap;
 Landroid/filterfw/core/StopWatchMap;-><init>()V
 Landroid/filterfw/core/StopWatchMap;->LOG_MFF_RUNNING_TIMES:Z
 Landroid/filterfw/core/StopWatchMap;->mStopWatches:Ljava/util/HashMap;
 Landroid/filterfw/core/StopWatchMap;->start(Ljava/lang/String;)V
 Landroid/filterfw/core/StopWatchMap;->stop(Ljava/lang/String;)V
-Landroid/filterfw/core/StreamPort;
 Landroid/filterfw/core/StreamPort;-><init>(Landroid/filterfw/core/Filter;Ljava/lang/String;)V
 Landroid/filterfw/core/StreamPort;->assignFrame(Landroid/filterfw/core/Frame;Z)V
 Landroid/filterfw/core/StreamPort;->clear()V
@@ -19986,7 +18696,6 @@
 Landroid/filterfw/core/StreamPort;->pushFrame(Landroid/filterfw/core/Frame;)V
 Landroid/filterfw/core/StreamPort;->setFrame(Landroid/filterfw/core/Frame;)V
 Landroid/filterfw/core/StreamPort;->transfer(Landroid/filterfw/core/FilterContext;)V
-Landroid/filterfw/core/SyncRunner;
 Landroid/filterfw/core/SyncRunner;-><init>(Landroid/filterfw/core/FilterContext;Landroid/filterfw/core/FilterGraph;Ljava/lang/Class;)V
 Landroid/filterfw/core/SyncRunner;->assertReadyToStep()V
 Landroid/filterfw/core/SyncRunner;->beginProcessing()V
@@ -20010,7 +18719,6 @@
 Landroid/filterfw/core/SyncRunner;->stop()V
 Landroid/filterfw/core/SyncRunner;->TAG:Ljava/lang/String;
 Landroid/filterfw/core/SyncRunner;->waitUntilWake()V
-Landroid/filterfw/core/VertexFrame;
 Landroid/filterfw/core/VertexFrame;-><init>(Landroid/filterfw/core/FrameFormat;Landroid/filterfw/core/FrameManager;)V
 Landroid/filterfw/core/VertexFrame;->getBitmap()Landroid/graphics/Bitmap;
 Landroid/filterfw/core/VertexFrame;->getData()Ljava/nio/ByteBuffer;
@@ -20032,11 +18740,8 @@
 Landroid/filterfw/core/VertexFrame;->setNativeFloats([F)Z
 Landroid/filterfw/core/VertexFrame;->setNativeInts([I)Z
 Landroid/filterfw/core/VertexFrame;->vertexFrameId:I
-Landroid/filterfw/FilterFunctionEnvironment;
 Landroid/filterfw/FilterFunctionEnvironment;-><init>()V
 Landroid/filterfw/FilterFunctionEnvironment;-><init>(Landroid/filterfw/core/FrameManager;)V
-Landroid/filterfw/FilterFunctionEnvironment;->createFunction(Ljava/lang/Class;[[Ljava/lang/Object;)Landroid/filterfw/core/FilterFunction;
-Landroid/filterfw/format/ImageFormat;
 Landroid/filterfw/format/ImageFormat;-><init>()V
 Landroid/filterfw/format/ImageFormat;->bytesPerSampleForColorspace(I)I
 Landroid/filterfw/format/ImageFormat;->COLORSPACE_GRAY:I
@@ -20045,7 +18750,6 @@
 Landroid/filterfw/format/ImageFormat;->COLORSPACE_RGBA:I
 Landroid/filterfw/format/ImageFormat;->COLORSPACE_YUV:I
 Landroid/filterfw/format/ImageFormat;->create(IIIII)Landroid/filterfw/core/MutableFrameFormat;
-Landroid/filterfw/format/ObjectFormat;
 Landroid/filterfw/format/ObjectFormat;-><init>()V
 Landroid/filterfw/format/ObjectFormat;->bytesPerSampleForClass(Ljava/lang/Class;I)I
 Landroid/filterfw/format/ObjectFormat;->fromClass(Ljava/lang/Class;I)Landroid/filterfw/core/MutableFrameFormat;
@@ -20053,7 +18757,6 @@
 Landroid/filterfw/format/ObjectFormat;->fromObject(Ljava/lang/Object;I)Landroid/filterfw/core/MutableFrameFormat;
 Landroid/filterfw/format/ObjectFormat;->fromObject(Ljava/lang/Object;II)Landroid/filterfw/core/MutableFrameFormat;
 Landroid/filterfw/format/ObjectFormat;->getBoxedClass(Ljava/lang/Class;)Ljava/lang/Class;
-Landroid/filterfw/format/PrimitiveFormat;
 Landroid/filterfw/format/PrimitiveFormat;-><init>()V
 Landroid/filterfw/format/PrimitiveFormat;->createByteFormat(I)Landroid/filterfw/core/MutableFrameFormat;
 Landroid/filterfw/format/PrimitiveFormat;->createByteFormat(II)Landroid/filterfw/core/MutableFrameFormat;
@@ -20067,7 +18770,6 @@
 Landroid/filterfw/format/PrimitiveFormat;->createInt16Format(II)Landroid/filterfw/core/MutableFrameFormat;
 Landroid/filterfw/format/PrimitiveFormat;->createInt32Format(I)Landroid/filterfw/core/MutableFrameFormat;
 Landroid/filterfw/format/PrimitiveFormat;->createInt32Format(II)Landroid/filterfw/core/MutableFrameFormat;
-Landroid/filterfw/geometry/Point;
 Landroid/filterfw/geometry/Point;->distanceTo(Landroid/filterfw/geometry/Point;)F
 Landroid/filterfw/geometry/Point;->IsInUnitRange()Z
 Landroid/filterfw/geometry/Point;->length()F
@@ -20083,7 +18785,6 @@
 Landroid/filterfw/geometry/Point;->scaledTo(F)Landroid/filterfw/geometry/Point;
 Landroid/filterfw/geometry/Point;->set(FF)V
 Landroid/filterfw/geometry/Point;->times(F)Landroid/filterfw/geometry/Point;
-Landroid/filterfw/geometry/Quad;
 Landroid/filterfw/geometry/Quad;->boundingBox()Landroid/filterfw/geometry/Rectangle;
 Landroid/filterfw/geometry/Quad;->getBoundingHeight()F
 Landroid/filterfw/geometry/Quad;->getBoundingWidth()F
@@ -20092,7 +18793,6 @@
 Landroid/filterfw/geometry/Quad;->scaled(FF)Landroid/filterfw/geometry/Quad;
 Landroid/filterfw/geometry/Quad;->translated(FF)Landroid/filterfw/geometry/Quad;
 Landroid/filterfw/geometry/Quad;->translated(Landroid/filterfw/geometry/Point;)Landroid/filterfw/geometry/Quad;
-Landroid/filterfw/geometry/Rectangle;
 Landroid/filterfw/geometry/Rectangle;-><init>()V
 Landroid/filterfw/geometry/Rectangle;-><init>(FFFF)V
 Landroid/filterfw/geometry/Rectangle;-><init>(Landroid/filterfw/geometry/Point;Landroid/filterfw/geometry/Point;)V
@@ -20104,25 +18804,20 @@
 Landroid/filterfw/geometry/Rectangle;->getWidth()F
 Landroid/filterfw/geometry/Rectangle;->scaled(F)Landroid/filterfw/geometry/Rectangle;
 Landroid/filterfw/geometry/Rectangle;->scaled(FF)Landroid/filterfw/geometry/Rectangle;
-Landroid/filterfw/GraphEnvironment$GraphHandle;
-Landroid/filterfw/GraphEnvironment$GraphHandle;-><init>(Landroid/filterfw/core/FilterGraph;)V
 Landroid/filterfw/GraphEnvironment$GraphHandle;->getAsyncRunner(Landroid/filterfw/core/FilterContext;)Landroid/filterfw/core/AsyncRunner;
 Landroid/filterfw/GraphEnvironment$GraphHandle;->getGraph()Landroid/filterfw/core/FilterGraph;
 Landroid/filterfw/GraphEnvironment$GraphHandle;->getSyncRunner(Landroid/filterfw/core/FilterContext;)Landroid/filterfw/core/GraphRunner;
 Landroid/filterfw/GraphEnvironment$GraphHandle;->mAsyncRunner:Landroid/filterfw/core/AsyncRunner;
 Landroid/filterfw/GraphEnvironment$GraphHandle;->mGraph:Landroid/filterfw/core/FilterGraph;
 Landroid/filterfw/GraphEnvironment$GraphHandle;->mSyncRunner:Landroid/filterfw/core/SyncRunner;
-Landroid/filterfw/GraphEnvironment;
 Landroid/filterfw/GraphEnvironment;-><init>(Landroid/filterfw/core/FrameManager;Landroid/filterfw/io/GraphReader;)V
 Landroid/filterfw/GraphEnvironment;->addGraph(Landroid/filterfw/core/FilterGraph;)I
-Landroid/filterfw/GraphEnvironment;->addReferences([[Ljava/lang/Object;)V
 Landroid/filterfw/GraphEnvironment;->getGraph(I)Landroid/filterfw/core/FilterGraph;
 Landroid/filterfw/GraphEnvironment;->getGraphReader()Landroid/filterfw/io/GraphReader;
 Landroid/filterfw/GraphEnvironment;->mGraphReader:Landroid/filterfw/io/GraphReader;
 Landroid/filterfw/GraphEnvironment;->mGraphs:Ljava/util/ArrayList;
 Landroid/filterfw/GraphEnvironment;->MODE_ASYNCHRONOUS:I
 Landroid/filterfw/GraphEnvironment;->MODE_SYNCHRONOUS:I
-Landroid/filterfw/MffEnvironment;
 Landroid/filterfw/MffEnvironment;-><init>(Landroid/filterfw/core/FrameManager;)V
 Landroid/filterfw/MffEnvironment;->activateGLEnvironment()V
 Landroid/filterfw/MffEnvironment;->createGLEnvironment()V
@@ -20141,17 +18836,13 @@
 Landroid/gesture/Gesture;->serialize(Ljava/io/DataOutputStream;)V
 Landroid/gesture/Gesture;->setID(J)V
 Landroid/gesture/Gesture;->sGestureCount:Ljava/util/concurrent/atomic/AtomicInteger;
-Landroid/gesture/GestureLibraries$FileGestureLibrary;
 Landroid/gesture/GestureLibraries$FileGestureLibrary;-><init>(Ljava/io/File;)V
 Landroid/gesture/GestureLibraries$FileGestureLibrary;->mPath:Ljava/io/File;
-Landroid/gesture/GestureLibraries$ResourceGestureLibrary;
 Landroid/gesture/GestureLibraries$ResourceGestureLibrary;-><init>(Landroid/content/Context;I)V
 Landroid/gesture/GestureLibraries$ResourceGestureLibrary;->mContext:Ljava/lang/ref/WeakReference;
 Landroid/gesture/GestureLibraries$ResourceGestureLibrary;->mResourceId:I
 Landroid/gesture/GestureLibraries;-><init>()V
 Landroid/gesture/GestureLibrary;->getLearner()Landroid/gesture/Learner;
-Landroid/gesture/GestureOverlayView$FadeOutRunnable;
-Landroid/gesture/GestureOverlayView$FadeOutRunnable;-><init>()V
 Landroid/gesture/GestureOverlayView$FadeOutRunnable;->fireActionPerformed:Z
 Landroid/gesture/GestureOverlayView$FadeOutRunnable;->resetMultipleStrokes:Z
 Landroid/gesture/GestureOverlayView;->cancelGesture(Landroid/view/MotionEvent;)V
@@ -20245,7 +18936,6 @@
 Landroid/gesture/GestureUtils;->SCALING_THRESHOLD:F
 Landroid/gesture/GestureUtils;->squaredEuclideanDistance([F[F)F
 Landroid/gesture/GestureUtils;->translate([FFF)[F
-Landroid/gesture/Instance;
 Landroid/gesture/Instance;-><init>(J[FLjava/lang/String;)V
 Landroid/gesture/Instance;->createInstance(IILandroid/gesture/Gesture;Ljava/lang/String;)Landroid/gesture/Instance;
 Landroid/gesture/Instance;->id:J
@@ -20257,7 +18947,6 @@
 Landroid/gesture/Instance;->spatialSampler(Landroid/gesture/Gesture;)[F
 Landroid/gesture/Instance;->temporalSampler(ILandroid/gesture/Gesture;)[F
 Landroid/gesture/Instance;->vector:[F
-Landroid/gesture/Learner;
 Landroid/gesture/Learner;-><init>()V
 Landroid/gesture/Learner;->addInstance(Landroid/gesture/Instance;)V
 Landroid/gesture/Learner;->classify(II[F)Ljava/util/ArrayList;
@@ -20268,9 +18957,7 @@
 Landroid/gesture/OrientedBoundingBox;-><init>(FFFFF)V
 Landroid/gesture/OrientedBoundingBox;->toPath()Landroid/graphics/Path;
 Landroid/gesture/Prediction;-><init>(Ljava/lang/String;D)V
-Landroid/graphics/AvoidXfermode$Mode;-><init>(I)V
 Landroid/graphics/AvoidXfermode$Mode;->nativeInt:I
-Landroid/graphics/BaseCanvas;
 Landroid/graphics/BaseCanvas;-><init>()V
 Landroid/graphics/BaseCanvas;->checkRange(III)V
 Landroid/graphics/BaseCanvas;->drawArc(FFFFFFZLandroid/graphics/Paint;)V
@@ -20352,9 +19039,7 @@
 Landroid/graphics/BaseCanvas;->throwIfHasHwBitmapInSwMode(Landroid/graphics/Paint;)V
 Landroid/graphics/BaseCanvas;->throwIfHasHwBitmapInSwMode(Landroid/graphics/Shader;)V
 Landroid/graphics/BaseCanvas;->throwIfHwBitmapInSwMode(Landroid/graphics/Bitmap;)V
-Landroid/graphics/Bitmap$CompressFormat;-><init>(I)V
 Landroid/graphics/Bitmap$CompressFormat;->nativeInt:I
-Landroid/graphics/Bitmap$Config;-><init>(I)V
 Landroid/graphics/Bitmap$Config;->sConfigs:[Landroid/graphics/Bitmap$Config;
 Landroid/graphics/Bitmap;->checkHardware(Ljava/lang/String;)V
 Landroid/graphics/Bitmap;->checkPixelAccess(II)V
@@ -20433,7 +19118,6 @@
 Landroid/graphics/BitmapShader;->copy()Landroid/graphics/Shader;
 Landroid/graphics/BitmapShader;->createNativeInstance(J)J
 Landroid/graphics/BitmapShader;->nativeCreate(JLandroid/graphics/Bitmap;II)J
-Landroid/graphics/BlurMaskFilter$Blur;-><init>(I)V
 Landroid/graphics/BlurMaskFilter$Blur;->native_int:I
 Landroid/graphics/BlurMaskFilter;->nativeConstructor(FI)J
 Landroid/graphics/Camera;->mMatrix:Landroid/graphics/Matrix;
@@ -20441,13 +19125,9 @@
 Landroid/graphics/Camera;->nativeConstructor()V
 Landroid/graphics/Camera;->nativeDestructor()V
 Landroid/graphics/Camera;->nativeGetMatrix(J)V
-Landroid/graphics/Canvas$EdgeType;-><init>(I)V
 Landroid/graphics/Canvas$EdgeType;->nativeInt:I
-Landroid/graphics/Canvas$NoImagePreloadHolder;
 Landroid/graphics/Canvas$NoImagePreloadHolder;-><init>()V
 Landroid/graphics/Canvas$NoImagePreloadHolder;->sRegistry:Llibcore/util/NativeAllocationRegistry;
-Landroid/graphics/Canvas$Saveflags;
-Landroid/graphics/Canvas$VertexMode;-><init>(I)V
 Landroid/graphics/Canvas$VertexMode;->nativeInt:I
 Landroid/graphics/Canvas;->checkValidClipOp(Landroid/graphics/Region$Op;)V
 Landroid/graphics/Canvas;->checkValidSaveFlags(I)V
@@ -20494,7 +19174,6 @@
 Landroid/graphics/Canvas;->sCompatibilitySetBitmap:Z
 Landroid/graphics/Canvas;->sCompatiblityVersion:I
 Landroid/graphics/Canvas;->setCompatibilityVersion(I)V
-Landroid/graphics/CanvasProperty;
 Landroid/graphics/CanvasProperty;-><init>(J)V
 Landroid/graphics/CanvasProperty;->getNativeContainer()J
 Landroid/graphics/CanvasProperty;->mProperty:Lcom/android/internal/util/VirtualRefBasePtr;
@@ -20510,7 +19189,6 @@
 Landroid/graphics/Color;->nativeRGBToHSV(III[F)V
 Landroid/graphics/Color;->saturate(F)F
 Landroid/graphics/Color;->sColorNameMap:Ljava/util/HashMap;
-Landroid/graphics/ColorFilter$NoImagePreloadHolder;
 Landroid/graphics/ColorFilter$NoImagePreloadHolder;-><init>()V
 Landroid/graphics/ColorFilter$NoImagePreloadHolder;->sRegistry:Llibcore/util/NativeAllocationRegistry;
 Landroid/graphics/ColorFilter;->createNativeInstance()J
@@ -20522,9 +19200,7 @@
 Landroid/graphics/ColorMatrix;->mArray:[F
 Landroid/graphics/ColorMatrixColorFilter;->createNativeInstance()J
 Landroid/graphics/ColorMatrixColorFilter;->nativeColorMatrixFilter([F)J
-Landroid/graphics/ColorSpace$Adaptation;-><init>([F)V
 Landroid/graphics/ColorSpace$Adaptation;->mTransform:[F
-Landroid/graphics/ColorSpace$Connector$Rgb;
 Landroid/graphics/ColorSpace$Connector$Rgb;-><init>(Landroid/graphics/ColorSpace$Rgb;Landroid/graphics/ColorSpace$Rgb;Landroid/graphics/ColorSpace$RenderIntent;)V
 Landroid/graphics/ColorSpace$Connector$Rgb;->computeTransform(Landroid/graphics/ColorSpace$Rgb;Landroid/graphics/ColorSpace$Rgb;Landroid/graphics/ColorSpace$RenderIntent;)[F
 Landroid/graphics/ColorSpace$Connector$Rgb;->mDestination:Landroid/graphics/ColorSpace$Rgb;
@@ -20540,22 +19216,17 @@
 Landroid/graphics/ColorSpace$Connector;->mTransform:[F
 Landroid/graphics/ColorSpace$Connector;->mTransformDestination:Landroid/graphics/ColorSpace;
 Landroid/graphics/ColorSpace$Connector;->mTransformSource:Landroid/graphics/ColorSpace;
-Landroid/graphics/ColorSpace$Lab;
 Landroid/graphics/ColorSpace$Lab;-><init>(Ljava/lang/String;I)V
 Landroid/graphics/ColorSpace$Lab;->A:F
 Landroid/graphics/ColorSpace$Lab;->B:F
 Landroid/graphics/ColorSpace$Lab;->C:F
 Landroid/graphics/ColorSpace$Lab;->clamp(FFF)F
 Landroid/graphics/ColorSpace$Lab;->D:F
-Landroid/graphics/ColorSpace$Model;-><init>(I)V
 Landroid/graphics/ColorSpace$Model;->mComponentCount:I
-Landroid/graphics/ColorSpace$Named;-><init>()V
-Landroid/graphics/ColorSpace$Renderer$Point;
 Landroid/graphics/ColorSpace$Renderer$Point;-><init>(Landroid/graphics/ColorSpace;[FI)V
 Landroid/graphics/ColorSpace$Renderer$Point;->mColor:I
 Landroid/graphics/ColorSpace$Renderer$Point;->mColorSpace:Landroid/graphics/ColorSpace;
 Landroid/graphics/ColorSpace$Renderer$Point;->mRgb:[F
-Landroid/graphics/ColorSpace$Renderer;
 Landroid/graphics/ColorSpace$Renderer;-><init>()V
 Landroid/graphics/ColorSpace$Renderer;->add(Landroid/graphics/ColorSpace;FFFI)Landroid/graphics/ColorSpace$Renderer;
 Landroid/graphics/ColorSpace$Renderer;->add(Landroid/graphics/ColorSpace;I)Landroid/graphics/ColorSpace$Renderer;
@@ -20586,7 +19257,6 @@
 Landroid/graphics/ColorSpace$Renderer;->sqr(D)D
 Landroid/graphics/ColorSpace$Renderer;->UCS_SCALE:F
 Landroid/graphics/ColorSpace$Renderer;->uniformChromaticityScale(Z)Landroid/graphics/ColorSpace$Renderer;
-Landroid/graphics/ColorSpace$RenderIntent;-><init>()V
 Landroid/graphics/ColorSpace$Rgb;-><init>(Landroid/graphics/ColorSpace$Rgb;[F[F)V
 Landroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[F[FDFFI)V
 Landroid/graphics/ColorSpace$Rgb;-><init>(Ljava/lang/String;[F[FLandroid/graphics/ColorSpace$Rgb$TransferParameters;I)V
@@ -20615,7 +19285,6 @@
 Landroid/graphics/ColorSpace$Rgb;->mWhitePoint:[F
 Landroid/graphics/ColorSpace$Rgb;->xyPrimaries([F)[F
 Landroid/graphics/ColorSpace$Rgb;->xyWhitePoint([F)[F
-Landroid/graphics/ColorSpace$Xyz;
 Landroid/graphics/ColorSpace$Xyz;-><init>(Ljava/lang/String;I)V
 Landroid/graphics/ColorSpace$Xyz;->clamp(F)F
 Landroid/graphics/ColorSpace;-><init>(Ljava/lang/String;Landroid/graphics/ColorSpace$Model;I)V
@@ -20657,7 +19326,6 @@
 Landroid/graphics/CornerPathEffect;->nativeCreate(F)J
 Landroid/graphics/DashPathEffect;->nativeCreate([FF)J
 Landroid/graphics/DiscretePathEffect;->nativeCreate(FF)J
-Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;
 Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;-><init>(I)V
 Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;-><init>(Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;Landroid/graphics/drawable/AdaptiveIconDrawable;Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;->canApplyTheme()Z
@@ -20665,7 +19333,6 @@
 Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;->mDrawable:Landroid/graphics/drawable/Drawable;
 Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;->mThemeAttrs:[I
 Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;->setDensity(I)V
-Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;
 Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;-><init>(Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;Landroid/graphics/drawable/AdaptiveIconDrawable;Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->canConstantState()Z
 Landroid/graphics/drawable/AdaptiveIconDrawable$LayerState;->getOpacity()I
@@ -20723,8 +19390,6 @@
 Landroid/graphics/drawable/AdaptiveIconDrawable;->updateLayerBoundsInternal(Landroid/graphics/Rect;)V
 Landroid/graphics/drawable/AdaptiveIconDrawable;->updateLayerFromTypedArray(Landroid/graphics/drawable/AdaptiveIconDrawable$ChildDrawable;Landroid/content/res/TypedArray;)V
 Landroid/graphics/drawable/AdaptiveIconDrawable;->updateMaskBoundsInternal(Landroid/graphics/Rect;)V
-Landroid/graphics/drawable/AnimatedImageDrawable$State;
-Landroid/graphics/drawable/AnimatedImageDrawable$State;-><init>(JLjava/io/InputStream;Landroid/content/res/AssetFileDescriptor;)V
 Landroid/graphics/drawable/AnimatedImageDrawable$State;->mAssetFd:Landroid/content/res/AssetFileDescriptor;
 Landroid/graphics/drawable/AnimatedImageDrawable$State;->mAutoMirrored:Z
 Landroid/graphics/drawable/AnimatedImageDrawable$State;->mInputStream:Ljava/io/InputStream;
@@ -20760,7 +19425,6 @@
 Landroid/graphics/drawable/AnimatedImageDrawable;->postOnAnimationStart()V
 Landroid/graphics/drawable/AnimatedImageDrawable;->REPEAT_UNDEFINED:I
 Landroid/graphics/drawable/AnimatedImageDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;I)V
-Landroid/graphics/drawable/AnimatedRotateDrawable$AnimatedRotateState;
 Landroid/graphics/drawable/AnimatedRotateDrawable$AnimatedRotateState;-><init>(Landroid/graphics/drawable/AnimatedRotateDrawable$AnimatedRotateState;Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/AnimatedRotateDrawable$AnimatedRotateState;->mFrameDuration:I
 Landroid/graphics/drawable/AnimatedRotateDrawable$AnimatedRotateState;->mFramesCount:I
@@ -20769,7 +19433,6 @@
 Landroid/graphics/drawable/AnimatedRotateDrawable$AnimatedRotateState;->mPivotY:F
 Landroid/graphics/drawable/AnimatedRotateDrawable$AnimatedRotateState;->mPivotYRel:Z
 Landroid/graphics/drawable/AnimatedRotateDrawable$AnimatedRotateState;->mThemeAttrs:[I
-Landroid/graphics/drawable/AnimatedRotateDrawable;
 Landroid/graphics/drawable/AnimatedRotateDrawable;-><init>()V
 Landroid/graphics/drawable/AnimatedRotateDrawable;-><init>(Landroid/graphics/drawable/AnimatedRotateDrawable$AnimatedRotateState;Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/AnimatedRotateDrawable;->mCurrentDegrees:F
@@ -20782,12 +19445,10 @@
 Landroid/graphics/drawable/AnimatedRotateDrawable;->updateLocalState()V
 Landroid/graphics/drawable/AnimatedRotateDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
 Landroid/graphics/drawable/AnimatedRotateDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V
-Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatableTransition;
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatableTransition;-><init>(Landroid/graphics/drawable/Animatable;)V
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatableTransition;->mA:Landroid/graphics/drawable/Animatable;
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatableTransition;->start()V
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatableTransition;->stop()V
-Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;-><init>(Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;Landroid/graphics/drawable/AnimatedStateListDrawable;Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->addStateSet([ILandroid/graphics/drawable/Drawable;I)I
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->addTransition(IILandroid/graphics/drawable/Drawable;Z)I
@@ -20801,7 +19462,6 @@
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->REVERSED_BIT:J
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->REVERSIBLE_FLAG_BIT:J
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedStateListState;->transitionHasReversibleFlag(II)Z
-Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedVectorDrawableTransition;
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedVectorDrawableTransition;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable;ZZ)V
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedVectorDrawableTransition;->canReverse()Z
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedVectorDrawableTransition;->mAvd:Landroid/graphics/drawable/AnimatedVectorDrawable;
@@ -20810,7 +19470,6 @@
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedVectorDrawableTransition;->reverse()V
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedVectorDrawableTransition;->start()V
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimatedVectorDrawableTransition;->stop()V
-Landroid/graphics/drawable/AnimatedStateListDrawable$AnimationDrawableTransition;
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimationDrawableTransition;-><init>(Landroid/graphics/drawable/AnimationDrawable;ZZ)V
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimationDrawableTransition;->canReverse()Z
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimationDrawableTransition;->mAnim:Landroid/animation/ObjectAnimator;
@@ -20818,14 +19477,12 @@
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimationDrawableTransition;->reverse()V
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimationDrawableTransition;->start()V
 Landroid/graphics/drawable/AnimatedStateListDrawable$AnimationDrawableTransition;->stop()V
-Landroid/graphics/drawable/AnimatedStateListDrawable$FrameInterpolator;
 Landroid/graphics/drawable/AnimatedStateListDrawable$FrameInterpolator;-><init>(Landroid/graphics/drawable/AnimationDrawable;Z)V
 Landroid/graphics/drawable/AnimatedStateListDrawable$FrameInterpolator;->getTotalDuration()I
 Landroid/graphics/drawable/AnimatedStateListDrawable$FrameInterpolator;->mFrames:I
 Landroid/graphics/drawable/AnimatedStateListDrawable$FrameInterpolator;->mFrameTimes:[I
 Landroid/graphics/drawable/AnimatedStateListDrawable$FrameInterpolator;->mTotalDuration:I
 Landroid/graphics/drawable/AnimatedStateListDrawable$FrameInterpolator;->updateFrames(Landroid/graphics/drawable/AnimationDrawable;Z)I
-Landroid/graphics/drawable/AnimatedStateListDrawable$Transition;
 Landroid/graphics/drawable/AnimatedStateListDrawable$Transition;-><init>()V
 Landroid/graphics/drawable/AnimatedStateListDrawable$Transition;->canReverse()Z
 Landroid/graphics/drawable/AnimatedStateListDrawable$Transition;->reverse()V
@@ -20847,13 +19504,11 @@
 Landroid/graphics/drawable/AnimatedStateListDrawable;->parseTransition(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)I
 Landroid/graphics/drawable/AnimatedStateListDrawable;->selectTransition(I)Z
 Landroid/graphics/drawable/AnimatedStateListDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
-Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState$PendingAnimator;
 Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState$PendingAnimator;-><init>(IFLjava/lang/String;)V
 Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState$PendingAnimator;->animResId:I
 Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState$PendingAnimator;->newInstance(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;)Landroid/animation/Animator;
 Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState$PendingAnimator;->pathErrorScale:F
 Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState$PendingAnimator;->target:Ljava/lang/String;
-Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;
 Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;Landroid/graphics/drawable/Drawable$Callback;Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->addPendingAnimator(IFLjava/lang/String;)V
 Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->addTargetAnimator(Ljava/lang/String;Landroid/animation/Animator;)V
@@ -20866,7 +19521,6 @@
 Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->mVectorDrawable:Landroid/graphics/drawable/VectorDrawable;
 Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->prepareLocalAnimator(I)Landroid/animation/Animator;
 Landroid/graphics/drawable/AnimatedVectorDrawable$AnimatedVectorDrawableState;->prepareLocalAnimators(Landroid/animation/AnimatorSet;Landroid/content/res/Resources;)V
-Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;
 Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;->canReverse()Z
 Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;->end()V
 Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;->init(Landroid/animation/AnimatorSet;)V
@@ -20881,7 +19535,6 @@
 Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;->reverse()V
 Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;->setListener(Landroid/animation/Animator$AnimatorListener;)V
 Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;->start()V
-Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;
 Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable;)V
 Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->addPendingAction(I)V
 Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->canReverse()Z
@@ -20939,7 +19592,6 @@
 Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->transferPendingActions(Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimator;)V
 Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->useLastSeenTarget()Z
 Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;->useTarget(Landroid/view/RenderNode;)Z
-Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;
 Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;-><init>(Landroid/graphics/drawable/AnimatedVectorDrawable;)V
 Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->canReverse()Z
 Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorUI;->end()V
@@ -20994,7 +19646,6 @@
 Landroid/graphics/drawable/AnimatedVectorDrawable;->shouldIgnoreInvalidAnimation()Z
 Landroid/graphics/drawable/AnimatedVectorDrawable;->TARGET:Ljava/lang/String;
 Landroid/graphics/drawable/AnimatedVectorDrawable;->updateAnimatorProperty(Landroid/animation/Animator;Ljava/lang/String;Landroid/graphics/drawable/VectorDrawable;Z)V
-Landroid/graphics/drawable/AnimationDrawable$AnimationState;
 Landroid/graphics/drawable/AnimationDrawable$AnimationState;-><init>(Landroid/graphics/drawable/AnimationDrawable$AnimationState;Landroid/graphics/drawable/AnimationDrawable;Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/AnimationDrawable$AnimationState;->addFrame(Landroid/graphics/drawable/Drawable;I)V
 Landroid/graphics/drawable/AnimationDrawable$AnimationState;->mDurations:[I
@@ -21011,7 +19662,6 @@
 Landroid/graphics/drawable/AnimationDrawable;->nextFrame(Z)V
 Landroid/graphics/drawable/AnimationDrawable;->setFrame(IZZ)V
 Landroid/graphics/drawable/AnimationDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
-Landroid/graphics/drawable/BitmapDrawable$BitmapState;
 Landroid/graphics/drawable/BitmapDrawable$BitmapState;-><init>(Landroid/graphics/Bitmap;)V
 Landroid/graphics/drawable/BitmapDrawable$BitmapState;-><init>(Landroid/graphics/drawable/BitmapDrawable$BitmapState;)V
 Landroid/graphics/drawable/BitmapDrawable$BitmapState;->mAutoMirrored:Z
@@ -21055,7 +19705,6 @@
 Landroid/graphics/drawable/BitmapDrawable;->updateShaderMatrix(Landroid/graphics/Bitmap;Landroid/graphics/Paint;Landroid/graphics/Shader;Z)V
 Landroid/graphics/drawable/BitmapDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;I)V
 Landroid/graphics/drawable/BitmapDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V
-Landroid/graphics/drawable/ClipDrawable$ClipState;
 Landroid/graphics/drawable/ClipDrawable$ClipState;-><init>(Landroid/graphics/drawable/ClipDrawable$ClipState;Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/ClipDrawable$ClipState;->mGravity:I
 Landroid/graphics/drawable/ClipDrawable$ClipState;->mOrientation:I
@@ -21067,7 +19716,6 @@
 Landroid/graphics/drawable/ClipDrawable;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;
 Landroid/graphics/drawable/ClipDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
 Landroid/graphics/drawable/ClipDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V
-Landroid/graphics/drawable/ColorDrawable$ColorState;
 Landroid/graphics/drawable/ColorDrawable$ColorState;-><init>()V
 Landroid/graphics/drawable/ColorDrawable$ColorState;-><init>(Landroid/graphics/drawable/ColorDrawable$ColorState;)V
 Landroid/graphics/drawable/ColorDrawable$ColorState;->mBaseColor:I
@@ -21103,7 +19751,6 @@
 Landroid/graphics/drawable/Drawable;->setSrcDensityOverride(I)V
 Landroid/graphics/drawable/Drawable;->setXfermode(Landroid/graphics/Xfermode;)V
 Landroid/graphics/drawable/Drawable;->ZERO_BOUNDS_RECT:Landroid/graphics/Rect;
-Landroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;
 Landroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;-><init>()V
 Landroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;->mCallback:Landroid/graphics/drawable/Drawable$Callback;
 Landroid/graphics/drawable/DrawableContainer$BlockInvalidateCallback;->unwrap()Landroid/graphics/drawable/Drawable$Callback;
@@ -21171,7 +19818,6 @@
 Landroid/graphics/drawable/DrawableContainer;->setCurrentIndex(I)V
 Landroid/graphics/drawable/DrawableContainer;->TAG:Ljava/lang/String;
 Landroid/graphics/drawable/DrawableContainer;->updateDensity(Landroid/content/res/Resources;)V
-Landroid/graphics/drawable/DrawableInflater;
 Landroid/graphics/drawable/DrawableInflater;-><init>(Landroid/content/res/Resources;Ljava/lang/ClassLoader;)V
 Landroid/graphics/drawable/DrawableInflater;->CONSTRUCTOR_MAP:Ljava/util/HashMap;
 Landroid/graphics/drawable/DrawableInflater;->inflateFromClass(Ljava/lang/String;)Landroid/graphics/drawable/Drawable;
@@ -21181,7 +19827,6 @@
 Landroid/graphics/drawable/DrawableInflater;->loadDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;
 Landroid/graphics/drawable/DrawableInflater;->loadDrawable(Landroid/content/res/Resources;Landroid/content/res/Resources$Theme;I)Landroid/graphics/drawable/Drawable;
 Landroid/graphics/drawable/DrawableInflater;->mRes:Landroid/content/res/Resources;
-Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;
 Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;-><init>(Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->canConstantState()Z
 Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;->mChangingConfigurations:I
@@ -21199,7 +19844,6 @@
 Landroid/graphics/drawable/DrawableWrapper;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;
 Landroid/graphics/drawable/DrawableWrapper;->updateLocalState(Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/DrawableWrapper;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
-Landroid/graphics/drawable/GradientDrawable$GradientState;
 Landroid/graphics/drawable/GradientDrawable$GradientState;-><init>(Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/GradientDrawable$GradientState;-><init>(Landroid/graphics/drawable/GradientDrawable$Orientation;[I)V
 Landroid/graphics/drawable/GradientDrawable$GradientState;->applyDensityScaling(II)V
@@ -21239,10 +19883,6 @@
 Landroid/graphics/drawable/GradientDrawable$GradientState;->setSize(II)V
 Landroid/graphics/drawable/GradientDrawable$GradientState;->setSolidColors(Landroid/content/res/ColorStateList;)V
 Landroid/graphics/drawable/GradientDrawable$GradientState;->setStroke(ILandroid/content/res/ColorStateList;FF)V
-Landroid/graphics/drawable/GradientDrawable$GradientType;
-Landroid/graphics/drawable/GradientDrawable$Orientation;-><init>()V
-Landroid/graphics/drawable/GradientDrawable$RadiusType;
-Landroid/graphics/drawable/GradientDrawable$Shape;
 Landroid/graphics/drawable/GradientDrawable;-><init>(Landroid/graphics/drawable/GradientDrawable$GradientState;Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/GradientDrawable;->applyThemeChildElements(Landroid/content/res/Resources$Theme;)V
 Landroid/graphics/drawable/GradientDrawable;->buildPathIfDirty()V
@@ -21281,10 +19921,6 @@
 Landroid/graphics/drawable/GradientDrawable;->updateGradientDrawableStroke(Landroid/content/res/TypedArray;)V
 Landroid/graphics/drawable/GradientDrawable;->updateLocalState(Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/GradientDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
-Landroid/graphics/drawable/Icon$IconType;
-Landroid/graphics/drawable/Icon$LoadDrawableTask;
-Landroid/graphics/drawable/Icon$LoadDrawableTask;-><init>(Landroid/content/Context;Landroid/os/Handler;Landroid/graphics/drawable/Icon$OnDrawableLoadedListener;)V
-Landroid/graphics/drawable/Icon$LoadDrawableTask;-><init>(Landroid/content/Context;Landroid/os/Message;)V
 Landroid/graphics/drawable/Icon$LoadDrawableTask;->mContext:Landroid/content/Context;
 Landroid/graphics/drawable/Icon$LoadDrawableTask;->mMessage:Landroid/os/Message;
 Landroid/graphics/drawable/Icon$LoadDrawableTask;->runAsync()V
@@ -21310,7 +19946,6 @@
 Landroid/graphics/drawable/Icon;->typeToString(I)Ljava/lang/String;
 Landroid/graphics/drawable/Icon;->VERSION_STREAM_SERIALIZER:I
 Landroid/graphics/drawable/Icon;->writeToStream(Ljava/io/OutputStream;)V
-Landroid/graphics/drawable/InsetDrawable$InsetState;
 Landroid/graphics/drawable/InsetDrawable$InsetState;-><init>(Landroid/graphics/drawable/InsetDrawable$InsetState;Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/InsetDrawable$InsetState;->applyDensityScaling(II)V
 Landroid/graphics/drawable/InsetDrawable$InsetState;->mInsetBottom:Landroid/graphics/drawable/InsetDrawable$InsetValue;
@@ -21319,7 +19954,6 @@
 Landroid/graphics/drawable/InsetDrawable$InsetState;->mInsetTop:Landroid/graphics/drawable/InsetDrawable$InsetValue;
 Landroid/graphics/drawable/InsetDrawable$InsetState;->mThemeAttrs:[I
 Landroid/graphics/drawable/InsetDrawable$InsetState;->onDensityChanged(II)V
-Landroid/graphics/drawable/InsetDrawable$InsetValue;
 Landroid/graphics/drawable/InsetDrawable$InsetValue;-><init>()V
 Landroid/graphics/drawable/InsetDrawable$InsetValue;-><init>(FI)V
 Landroid/graphics/drawable/InsetDrawable$InsetValue;->getDimension(I)I
@@ -21335,7 +19969,6 @@
 Landroid/graphics/drawable/InsetDrawable;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;
 Landroid/graphics/drawable/InsetDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
 Landroid/graphics/drawable/InsetDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V
-Landroid/graphics/drawable/LayerDrawable$ChildDrawable;
 Landroid/graphics/drawable/LayerDrawable$ChildDrawable;-><init>(I)V
 Landroid/graphics/drawable/LayerDrawable$ChildDrawable;-><init>(Landroid/graphics/drawable/LayerDrawable$ChildDrawable;Landroid/graphics/drawable/LayerDrawable;Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/LayerDrawable$ChildDrawable;->applyDensityScaling(II)V
@@ -21353,7 +19986,6 @@
 Landroid/graphics/drawable/LayerDrawable$ChildDrawable;->mThemeAttrs:[I
 Landroid/graphics/drawable/LayerDrawable$ChildDrawable;->mWidth:I
 Landroid/graphics/drawable/LayerDrawable$ChildDrawable;->setDensity(I)V
-Landroid/graphics/drawable/LayerDrawable$LayerState;
 Landroid/graphics/drawable/LayerDrawable$LayerState;-><init>(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/graphics/drawable/LayerDrawable;Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/LayerDrawable$LayerState;->applyDensityScaling(II)V
 Landroid/graphics/drawable/LayerDrawable$LayerState;->canConstantState()Z
@@ -21415,7 +20047,6 @@
 Landroid/graphics/drawable/LayerDrawable;->updateLayerBoundsInternal(Landroid/graphics/Rect;)V
 Landroid/graphics/drawable/LayerDrawable;->updateLayerFromTypedArray(Landroid/graphics/drawable/LayerDrawable$ChildDrawable;Landroid/content/res/TypedArray;)V
 Landroid/graphics/drawable/LayerDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
-Landroid/graphics/drawable/LevelListDrawable$LevelListState;
 Landroid/graphics/drawable/LevelListDrawable$LevelListState;-><init>(Landroid/graphics/drawable/LevelListDrawable$LevelListState;Landroid/graphics/drawable/LevelListDrawable;Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/LevelListDrawable$LevelListState;->addLevel(IILandroid/graphics/drawable/Drawable;)V
 Landroid/graphics/drawable/LevelListDrawable$LevelListState;->indexOfLevel(I)I
@@ -21428,7 +20059,6 @@
 Landroid/graphics/drawable/LevelListDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
 Landroid/graphics/drawable/LevelListDrawable;->mLevelListState:Landroid/graphics/drawable/LevelListDrawable$LevelListState;
 Landroid/graphics/drawable/LevelListDrawable;->mMutated:Z
-Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;
 Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>()V
 Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>(Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;)V
 Landroid/graphics/drawable/NinePatchDrawable$NinePatchState;-><init>(Landroid/graphics/NinePatch;Landroid/graphics/Rect;)V
@@ -21464,9 +20094,7 @@
 Landroid/graphics/drawable/NinePatchDrawable;->updateLocalState(Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/NinePatchDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
 Landroid/graphics/drawable/PictureDrawable;->mPicture:Landroid/graphics/Picture;
-Landroid/graphics/drawable/RippleBackground$BackgroundProperty;
 Landroid/graphics/drawable/RippleBackground$BackgroundProperty;-><init>(Ljava/lang/String;)V
-Landroid/graphics/drawable/RippleBackground;
 Landroid/graphics/drawable/RippleBackground;-><init>(Landroid/graphics/drawable/RippleDrawable;Landroid/graphics/Rect;Z)V
 Landroid/graphics/drawable/RippleBackground;->draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
 Landroid/graphics/drawable/RippleBackground;->isVisible()Z
@@ -21481,7 +20109,6 @@
 Landroid/graphics/drawable/RippleBackground;->OPACITY:Landroid/graphics/drawable/RippleBackground$BackgroundProperty;
 Landroid/graphics/drawable/RippleBackground;->OPACITY_DURATION:I
 Landroid/graphics/drawable/RippleBackground;->setState(ZZZ)V
-Landroid/graphics/drawable/RippleComponent;
 Landroid/graphics/drawable/RippleComponent;-><init>(Landroid/graphics/drawable/RippleDrawable;Landroid/graphics/Rect;)V
 Landroid/graphics/drawable/RippleComponent;->getBounds(Landroid/graphics/Rect;)V
 Landroid/graphics/drawable/RippleComponent;->getTargetRadius(Landroid/graphics/Rect;)F
@@ -21495,7 +20122,6 @@
 Landroid/graphics/drawable/RippleComponent;->onHotspotBoundsChanged()V
 Landroid/graphics/drawable/RippleComponent;->onTargetRadiusChanged(F)V
 Landroid/graphics/drawable/RippleComponent;->setup(FI)V
-Landroid/graphics/drawable/RippleDrawable$RippleState;
 Landroid/graphics/drawable/RippleDrawable$RippleState;-><init>(Landroid/graphics/drawable/LayerDrawable$LayerState;Landroid/graphics/drawable/RippleDrawable;Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/RippleDrawable$RippleState;->applyDensityScaling(II)V
 Landroid/graphics/drawable/RippleDrawable$RippleState;->mMaxRadius:I
@@ -21550,7 +20176,6 @@
 Landroid/graphics/drawable/RippleDrawable;->updateMaskShaderIfNeeded()V
 Landroid/graphics/drawable/RippleDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
 Landroid/graphics/drawable/RippleDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V
-Landroid/graphics/drawable/RippleForeground;
 Landroid/graphics/drawable/RippleForeground;-><init>(Landroid/graphics/drawable/RippleDrawable;Landroid/graphics/Rect;FFZ)V
 Landroid/graphics/drawable/RippleForeground;->clampStartingPosition()V
 Landroid/graphics/drawable/RippleForeground;->clearHwProps()V
@@ -21610,7 +20235,6 @@
 Landroid/graphics/drawable/RippleForeground;->switchToUiThreadAnimation()V
 Landroid/graphics/drawable/RippleForeground;->TWEEN_ORIGIN:Landroid/util/FloatProperty;
 Landroid/graphics/drawable/RippleForeground;->TWEEN_RADIUS:Landroid/util/FloatProperty;
-Landroid/graphics/drawable/RotateDrawable$RotateState;
 Landroid/graphics/drawable/RotateDrawable$RotateState;-><init>(Landroid/graphics/drawable/RotateDrawable$RotateState;Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/RotateDrawable$RotateState;->mCurrentDegrees:F
 Landroid/graphics/drawable/RotateDrawable$RotateState;->mFromDegrees:F
@@ -21625,7 +20249,6 @@
 Landroid/graphics/drawable/RotateDrawable;->mutateConstantState()Landroid/graphics/drawable/DrawableWrapper$DrawableWrapperState;
 Landroid/graphics/drawable/RotateDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
 Landroid/graphics/drawable/RotateDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V
-Landroid/graphics/drawable/ScaleDrawable$ScaleState;
 Landroid/graphics/drawable/ScaleDrawable$ScaleState;-><init>(Landroid/graphics/drawable/ScaleDrawable$ScaleState;Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/ScaleDrawable$ScaleState;->DO_NOT_SCALE:F
 Landroid/graphics/drawable/ScaleDrawable$ScaleState;->mGravity:I
@@ -21643,7 +20266,6 @@
 Landroid/graphics/drawable/ScaleDrawable;->updateLocalState()V
 Landroid/graphics/drawable/ScaleDrawable;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
 Landroid/graphics/drawable/ScaleDrawable;->verifyRequiredAttributes(Landroid/content/res/TypedArray;)V
-Landroid/graphics/drawable/ShapeDrawable$ShapeState;
 Landroid/graphics/drawable/ShapeDrawable$ShapeState;-><init>()V
 Landroid/graphics/drawable/ShapeDrawable$ShapeState;-><init>(Landroid/graphics/drawable/ShapeDrawable$ShapeState;)V
 Landroid/graphics/drawable/ShapeDrawable$ShapeState;->mAlpha:I
@@ -21681,7 +20303,6 @@
 Landroid/graphics/drawable/shapes/RoundRectShape;->mPath:Landroid/graphics/Path;
 Landroid/graphics/drawable/shapes/Shape;->mHeight:F
 Landroid/graphics/drawable/shapes/Shape;->mWidth:F
-Landroid/graphics/drawable/StateListDrawable$StateListState;
 Landroid/graphics/drawable/StateListDrawable$StateListState;-><init>(Landroid/graphics/drawable/StateListDrawable$StateListState;Landroid/graphics/drawable/StateListDrawable;Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/StateListDrawable$StateListState;->hasFocusStateSpecified()Z
 Landroid/graphics/drawable/StateListDrawable$StateListState;->indexOfStateSet([I)I
@@ -21697,7 +20318,6 @@
 Landroid/graphics/drawable/StateListDrawable;->inflateChildElements(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;Landroid/content/res/Resources$Theme;)V
 Landroid/graphics/drawable/StateListDrawable;->mMutated:Z
 Landroid/graphics/drawable/StateListDrawable;->TAG:Ljava/lang/String;
-Landroid/graphics/drawable/TransitionDrawable$TransitionState;
 Landroid/graphics/drawable/TransitionDrawable$TransitionState;-><init>(Landroid/graphics/drawable/TransitionDrawable$TransitionState;Landroid/graphics/drawable/TransitionDrawable;Landroid/content/res/Resources;)V
 Landroid/graphics/drawable/TransitionDrawable;-><init>()V
 Landroid/graphics/drawable/TransitionDrawable;-><init>(Landroid/graphics/drawable/TransitionDrawable$TransitionState;Landroid/content/res/Resources;)V
@@ -21713,7 +20333,6 @@
 Landroid/graphics/drawable/TransitionDrawable;->TRANSITION_NONE:I
 Landroid/graphics/drawable/TransitionDrawable;->TRANSITION_RUNNING:I
 Landroid/graphics/drawable/TransitionDrawable;->TRANSITION_STARTING:I
-Landroid/graphics/drawable/VectorDrawable$VClipPath;
 Landroid/graphics/drawable/VectorDrawable$VClipPath;-><init>()V
 Landroid/graphics/drawable/VectorDrawable$VClipPath;-><init>(Landroid/graphics/drawable/VectorDrawable$VClipPath;)V
 Landroid/graphics/drawable/VectorDrawable$VClipPath;->applyTheme(Landroid/content/res/Resources$Theme;)V
@@ -21727,7 +20346,6 @@
 Landroid/graphics/drawable/VectorDrawable$VClipPath;->NATIVE_ALLOCATION_SIZE:I
 Landroid/graphics/drawable/VectorDrawable$VClipPath;->onStateChange([I)Z
 Landroid/graphics/drawable/VectorDrawable$VClipPath;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
-Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;
 Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;-><init>(Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;)V
 Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->ALPHA:Landroid/util/Property;
 Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->applyDensityScaling(II)V
@@ -21770,7 +20388,6 @@
 Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->setDensity(I)Z
 Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->setViewportSize(FF)V
 Landroid/graphics/drawable/VectorDrawable$VectorDrawableState;->updateCacheStates()V
-Landroid/graphics/drawable/VectorDrawable$VFullPath;
 Landroid/graphics/drawable/VectorDrawable$VFullPath;-><init>()V
 Landroid/graphics/drawable/VectorDrawable$VFullPath;-><init>(Landroid/graphics/drawable/VectorDrawable$VFullPath;)V
 Landroid/graphics/drawable/VectorDrawable$VFullPath;->applyTheme(Landroid/content/res/Resources$Theme;)V
@@ -21830,7 +20447,6 @@
 Landroid/graphics/drawable/VectorDrawable$VFullPath;->TRIM_PATH_START:Landroid/util/Property;
 Landroid/graphics/drawable/VectorDrawable$VFullPath;->TRIM_PATH_START_INDEX:I
 Landroid/graphics/drawable/VectorDrawable$VFullPath;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
-Landroid/graphics/drawable/VectorDrawable$VGroup;
 Landroid/graphics/drawable/VectorDrawable$VGroup;-><init>()V
 Landroid/graphics/drawable/VectorDrawable$VGroup;-><init>(Landroid/graphics/drawable/VectorDrawable$VGroup;Landroid/util/ArrayMap;)V
 Landroid/graphics/drawable/VectorDrawable$VGroup;->addChild(Landroid/graphics/drawable/VectorDrawable$VObject;)V
@@ -21881,7 +20497,6 @@
 Landroid/graphics/drawable/VectorDrawable$VGroup;->TRANSLATE_Y:Landroid/util/Property;
 Landroid/graphics/drawable/VectorDrawable$VGroup;->TRANSLATE_Y_INDEX:I
 Landroid/graphics/drawable/VectorDrawable$VGroup;->updateStateFromTypedArray(Landroid/content/res/TypedArray;)V
-Landroid/graphics/drawable/VectorDrawable$VObject;
 Landroid/graphics/drawable/VectorDrawable$VObject;-><init>()V
 Landroid/graphics/drawable/VectorDrawable$VObject;->applyTheme(Landroid/content/res/Resources$Theme;)V
 Landroid/graphics/drawable/VectorDrawable$VObject;->canApplyTheme()Z
@@ -21895,7 +20510,6 @@
 Landroid/graphics/drawable/VectorDrawable$VObject;->mTreePtr:Lcom/android/internal/util/VirtualRefBasePtr;
 Landroid/graphics/drawable/VectorDrawable$VObject;->onStateChange([I)Z
 Landroid/graphics/drawable/VectorDrawable$VObject;->setTree(Lcom/android/internal/util/VirtualRefBasePtr;)V
-Landroid/graphics/drawable/VectorDrawable$VPath;
 Landroid/graphics/drawable/VectorDrawable$VPath;-><init>()V
 Landroid/graphics/drawable/VectorDrawable$VPath;-><init>(Landroid/graphics/drawable/VectorDrawable$VPath;)V
 Landroid/graphics/drawable/VectorDrawable$VPath;->getPathData()Landroid/util/PathParser$PathData;
@@ -21988,7 +20602,6 @@
 Landroid/graphics/DrawFilter;->mNativeInt:J
 Landroid/graphics/DrawFilter;->nativeDestructor(J)V
 Landroid/graphics/EmbossMaskFilter;->nativeConstructor([FFFF)J
-Landroid/graphics/FontFamily;
 Landroid/graphics/FontFamily;->addFont(Ljava/lang/String;I[Landroid/graphics/fonts/FontVariationAxis;II)Z
 Landroid/graphics/FontFamily;->mBuilderPtr:J
 Landroid/graphics/FontFamily;->mNativeBuilderCleaner:Ljava/lang/Runnable;
@@ -22004,7 +20617,6 @@
 Landroid/graphics/FontFamily;->sBuilderRegistry:Llibcore/util/NativeAllocationRegistry;
 Landroid/graphics/FontFamily;->sFamilyRegistry:Llibcore/util/NativeAllocationRegistry;
 Landroid/graphics/FontFamily;->TAG:Ljava/lang/String;
-Landroid/graphics/FontListParser;
 Landroid/graphics/FontListParser;-><init>()V
 Landroid/graphics/FontListParser;->FILENAME_WHITESPACE_PATTERN:Ljava/util/regex/Pattern;
 Landroid/graphics/FontListParser;->readAlias(Lorg/xmlpull/v1/XmlPullParser;)Landroid/text/FontConfig$Alias;
@@ -22020,7 +20632,6 @@
 Landroid/graphics/fonts/FontVariationAxis;->mTagString:Ljava/lang/String;
 Landroid/graphics/fonts/FontVariationAxis;->STYLE_VALUE_PATTERN:Ljava/util/regex/Pattern;
 Landroid/graphics/fonts/FontVariationAxis;->TAG_PATTERN:Ljava/util/regex/Pattern;
-Landroid/graphics/GraphicBuffer;
 Landroid/graphics/GraphicBuffer;->create(IIII)Landroid/graphics/GraphicBuffer;
 Landroid/graphics/GraphicBuffer;->destroy()V
 Landroid/graphics/GraphicBuffer;->getFormat()I
@@ -22061,8 +20672,6 @@
 Landroid/graphics/GraphicBuffer;->USAGE_SW_WRITE_NEVER:I
 Landroid/graphics/GraphicBuffer;->USAGE_SW_WRITE_OFTEN:I
 Landroid/graphics/GraphicBuffer;->USAGE_SW_WRITE_RARELY:I
-Landroid/graphics/ImageDecoder$Allocator;
-Landroid/graphics/ImageDecoder$AssetInputStreamSource;
 Landroid/graphics/ImageDecoder$AssetInputStreamSource;-><init>(Landroid/content/res/AssetManager$AssetInputStream;Landroid/content/res/Resources;Landroid/util/TypedValue;)V
 Landroid/graphics/ImageDecoder$AssetInputStreamSource;->createImageDecoder()Landroid/graphics/ImageDecoder;
 Landroid/graphics/ImageDecoder$AssetInputStreamSource;->getDensity()I
@@ -22070,42 +20679,35 @@
 Landroid/graphics/ImageDecoder$AssetInputStreamSource;->mAssetInputStream:Landroid/content/res/AssetManager$AssetInputStream;
 Landroid/graphics/ImageDecoder$AssetInputStreamSource;->mDensity:I
 Landroid/graphics/ImageDecoder$AssetInputStreamSource;->mResources:Landroid/content/res/Resources;
-Landroid/graphics/ImageDecoder$AssetSource;
 Landroid/graphics/ImageDecoder$AssetSource;-><init>(Landroid/content/res/AssetManager;Ljava/lang/String;)V
 Landroid/graphics/ImageDecoder$AssetSource;->createImageDecoder()Landroid/graphics/ImageDecoder;
 Landroid/graphics/ImageDecoder$AssetSource;->mAssets:Landroid/content/res/AssetManager;
 Landroid/graphics/ImageDecoder$AssetSource;->mFileName:Ljava/lang/String;
-Landroid/graphics/ImageDecoder$ByteArraySource;
 Landroid/graphics/ImageDecoder$ByteArraySource;-><init>([BII)V
 Landroid/graphics/ImageDecoder$ByteArraySource;->createImageDecoder()Landroid/graphics/ImageDecoder;
 Landroid/graphics/ImageDecoder$ByteArraySource;->mData:[B
 Landroid/graphics/ImageDecoder$ByteArraySource;->mLength:I
 Landroid/graphics/ImageDecoder$ByteArraySource;->mOffset:I
-Landroid/graphics/ImageDecoder$ByteBufferSource;
 Landroid/graphics/ImageDecoder$ByteBufferSource;-><init>(Ljava/nio/ByteBuffer;)V
 Landroid/graphics/ImageDecoder$ByteBufferSource;->createImageDecoder()Landroid/graphics/ImageDecoder;
 Landroid/graphics/ImageDecoder$ByteBufferSource;->mBuffer:Ljava/nio/ByteBuffer;
-Landroid/graphics/ImageDecoder$ContentResolverSource;
 Landroid/graphics/ImageDecoder$ContentResolverSource;-><init>(Landroid/content/ContentResolver;Landroid/net/Uri;Landroid/content/res/Resources;)V
 Landroid/graphics/ImageDecoder$ContentResolverSource;->createImageDecoder()Landroid/graphics/ImageDecoder;
 Landroid/graphics/ImageDecoder$ContentResolverSource;->getResources()Landroid/content/res/Resources;
 Landroid/graphics/ImageDecoder$ContentResolverSource;->mResolver:Landroid/content/ContentResolver;
 Landroid/graphics/ImageDecoder$ContentResolverSource;->mResources:Landroid/content/res/Resources;
 Landroid/graphics/ImageDecoder$ContentResolverSource;->mUri:Landroid/net/Uri;
-Landroid/graphics/ImageDecoder$DecodeException$Error;
 Landroid/graphics/ImageDecoder$DecodeException;-><init>(ILjava/lang/String;Ljava/lang/Throwable;Landroid/graphics/ImageDecoder$Source;)V
 Landroid/graphics/ImageDecoder$DecodeException;-><init>(ILjava/lang/Throwable;Landroid/graphics/ImageDecoder$Source;)V
 Landroid/graphics/ImageDecoder$DecodeException;->errorMessage(ILjava/lang/Throwable;)Ljava/lang/String;
 Landroid/graphics/ImageDecoder$DecodeException;->mError:I
 Landroid/graphics/ImageDecoder$DecodeException;->mSource:Landroid/graphics/ImageDecoder$Source;
-Landroid/graphics/ImageDecoder$FileSource;
 Landroid/graphics/ImageDecoder$FileSource;-><init>(Ljava/io/File;)V
 Landroid/graphics/ImageDecoder$FileSource;->createImageDecoder()Landroid/graphics/ImageDecoder;
 Landroid/graphics/ImageDecoder$FileSource;->mFile:Ljava/io/File;
 Landroid/graphics/ImageDecoder$ImageInfo;-><init>(Landroid/graphics/ImageDecoder;)V
 Landroid/graphics/ImageDecoder$ImageInfo;->mDecoder:Landroid/graphics/ImageDecoder;
 Landroid/graphics/ImageDecoder$ImageInfo;->mSize:Landroid/util/Size;
-Landroid/graphics/ImageDecoder$InputStreamSource;
 Landroid/graphics/ImageDecoder$InputStreamSource;-><init>(Landroid/content/res/Resources;Ljava/io/InputStream;I)V
 Landroid/graphics/ImageDecoder$InputStreamSource;->createImageDecoder()Landroid/graphics/ImageDecoder;
 Landroid/graphics/ImageDecoder$InputStreamSource;->getDensity()I
@@ -22113,8 +20715,6 @@
 Landroid/graphics/ImageDecoder$InputStreamSource;->mInputDensity:I
 Landroid/graphics/ImageDecoder$InputStreamSource;->mInputStream:Ljava/io/InputStream;
 Landroid/graphics/ImageDecoder$InputStreamSource;->mResources:Landroid/content/res/Resources;
-Landroid/graphics/ImageDecoder$MemoryPolicy;
-Landroid/graphics/ImageDecoder$ResourceSource;
 Landroid/graphics/ImageDecoder$ResourceSource;-><init>(Landroid/content/res/Resources;I)V
 Landroid/graphics/ImageDecoder$ResourceSource;->createImageDecoder()Landroid/graphics/ImageDecoder;
 Landroid/graphics/ImageDecoder$ResourceSource;->getDensity()I
@@ -22189,9 +20789,7 @@
 Landroid/graphics/ImageFormat;->isPublicFormat(I)Z
 Landroid/graphics/ImageFormat;->RAW_DEPTH:I
 Landroid/graphics/ImageFormat;->Y16:I
-Landroid/graphics/Insets;
 Landroid/graphics/Insets;-><init>(IIII)V
-Landroid/graphics/Interpolator$Result;-><init>()V
 Landroid/graphics/Interpolator;->mFrameCount:I
 Landroid/graphics/Interpolator;->mValueCount:I
 Landroid/graphics/Interpolator;->nativeConstructor(II)J
@@ -22201,7 +20799,6 @@
 Landroid/graphics/Interpolator;->nativeSetRepeatMirror(JFZ)V
 Landroid/graphics/Interpolator;->nativeTimeToValues(JI[F)I
 Landroid/graphics/Interpolator;->native_instance:J
-Landroid/graphics/LargeBitmap;
 Landroid/graphics/LargeBitmap;-><init>(J)V
 Landroid/graphics/LargeBitmap;->checkRecycled(Ljava/lang/String;)V
 Landroid/graphics/LargeBitmap;->decodeRegion(Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
@@ -22215,7 +20812,6 @@
 Landroid/graphics/LargeBitmap;->nativeGetHeight(J)I
 Landroid/graphics/LargeBitmap;->nativeGetWidth(J)I
 Landroid/graphics/LargeBitmap;->recycle()V
-Landroid/graphics/LeakyTypefaceStorage;
 Landroid/graphics/LeakyTypefaceStorage;-><init>()V
 Landroid/graphics/LeakyTypefaceStorage;->readTypefaceFromParcel(Landroid/os/Parcel;)Landroid/graphics/Typeface;
 Landroid/graphics/LeakyTypefaceStorage;->sLock:Ljava/lang/Object;
@@ -22235,10 +20831,8 @@
 Landroid/graphics/LinearGradient;->TYPE_COLOR_START_AND_COLOR_END:I
 Landroid/graphics/MaskFilter;->nativeDestructor(J)V
 Landroid/graphics/MaskFilter;->native_instance:J
-Landroid/graphics/Matrix$NoImagePreloadHolder;
 Landroid/graphics/Matrix$NoImagePreloadHolder;-><init>()V
 Landroid/graphics/Matrix$NoImagePreloadHolder;->sRegistry:Llibcore/util/NativeAllocationRegistry;
-Landroid/graphics/Matrix$ScaleToFit;-><init>(I)V
 Landroid/graphics/Matrix$ScaleToFit;->nativeInt:I
 Landroid/graphics/Matrix;->checkPointArrays([FI[FII)V
 Landroid/graphics/Matrix;->NATIVE_ALLOCATION_SIZE:J
@@ -22292,7 +20886,6 @@
 Landroid/graphics/Movie;->nativeDecodeStream(Ljava/io/InputStream;)Landroid/graphics/Movie;
 Landroid/graphics/Movie;->nativeDestructor(J)V
 Landroid/graphics/Movie;->nDraw(JFFJ)V
-Landroid/graphics/NinePatch$InsetStruct;
 Landroid/graphics/NinePatch$InsetStruct;->opticalRect:Landroid/graphics/Rect;
 Landroid/graphics/NinePatch$InsetStruct;->outlineAlpha:F
 Landroid/graphics/NinePatch$InsetStruct;->outlineRadius:F
@@ -22304,7 +20897,6 @@
 Landroid/graphics/NinePatch;->nativeFinalize(J)V
 Landroid/graphics/NinePatch;->nativeGetTransparentRegion(Landroid/graphics/Bitmap;JLandroid/graphics/Rect;)J
 Landroid/graphics/NinePatch;->validateNinePatchChunk([B)J
-Landroid/graphics/Outline$Mode;
 Landroid/graphics/Outline;->mAlpha:F
 Landroid/graphics/Outline;->mMode:I
 Landroid/graphics/Outline;->MODE_CONVEX_PATH:I
@@ -22313,16 +20905,11 @@
 Landroid/graphics/Outline;->mPath:Landroid/graphics/Path;
 Landroid/graphics/Outline;->mRadius:F
 Landroid/graphics/Outline;->RADIUS_UNDEFINED:F
-Landroid/graphics/Paint$Align;-><init>(I)V
 Landroid/graphics/Paint$Align;->nativeInt:I
-Landroid/graphics/Paint$Cap;-><init>(I)V
 Landroid/graphics/Paint$Cap;->nativeInt:I
-Landroid/graphics/Paint$Join;-><init>(I)V
 Landroid/graphics/Paint$Join;->nativeInt:I
-Landroid/graphics/Paint$NoImagePreloadHolder;
 Landroid/graphics/Paint$NoImagePreloadHolder;-><init>()V
 Landroid/graphics/Paint$NoImagePreloadHolder;->sRegistry:Llibcore/util/NativeAllocationRegistry;
-Landroid/graphics/Paint$Style;-><init>(I)V
 Landroid/graphics/Paint$Style;->nativeInt:I
 Landroid/graphics/Paint;->AUTO_HINTING_TEXT_FLAG:I
 Landroid/graphics/Paint;->BIDI_DEFAULT_LTR:I
@@ -22471,11 +21058,8 @@
 Landroid/graphics/Paint;->syncTextLocalesWithMinikin()V
 Landroid/graphics/Paint;->VERTICAL_TEXT_FLAG:I
 Landroid/graphics/PaintFlagsDrawFilter;->nativeConstructor(II)J
-Landroid/graphics/Path$Direction;-><init>(I)V
 Landroid/graphics/Path$Direction;->nativeInt:I
-Landroid/graphics/Path$FillType;-><init>(I)V
 Landroid/graphics/Path$FillType;->nativeInt:I
-Landroid/graphics/Path$Op;-><init>()V
 Landroid/graphics/Path;->detectSimplePath(FFFFLandroid/graphics/Path$Direction;)V
 Landroid/graphics/Path;->mLastDirection:Landroid/graphics/Path$Direction;
 Landroid/graphics/Path;->mNativePath:J
@@ -22521,7 +21105,6 @@
 Landroid/graphics/Path;->readOnlyNI()J
 Landroid/graphics/Path;->sFillTypeArray:[Landroid/graphics/Path$FillType;
 Landroid/graphics/Path;->sRegistry:Llibcore/util/NativeAllocationRegistry;
-Landroid/graphics/PathDashPathEffect$Style;-><init>(I)V
 Landroid/graphics/PathDashPathEffect$Style;->native_style:I
 Landroid/graphics/PathDashPathEffect;->nativeCreate(JFFI)J
 Landroid/graphics/PathEffect;->nativeDestructor(J)V
@@ -22548,8 +21131,6 @@
 Landroid/graphics/pdf/PdfDocument$PageInfo;->mPageHeight:I
 Landroid/graphics/pdf/PdfDocument$PageInfo;->mPageNumber:I
 Landroid/graphics/pdf/PdfDocument$PageInfo;->mPageWidth:I
-Landroid/graphics/pdf/PdfDocument$PdfCanvas;
-Landroid/graphics/pdf/PdfDocument$PdfCanvas;-><init>(J)V
 Landroid/graphics/pdf/PdfDocument;->dispose()V
 Landroid/graphics/pdf/PdfDocument;->mChunk:[B
 Landroid/graphics/pdf/PdfDocument;->mCloseGuard:Ldalvik/system/CloseGuard;
@@ -22563,7 +21144,6 @@
 Landroid/graphics/pdf/PdfDocument;->nativeWriteTo(JLjava/io/OutputStream;[B)V
 Landroid/graphics/pdf/PdfDocument;->throwIfClosed()V
 Landroid/graphics/pdf/PdfDocument;->throwIfCurrentPageNotFinished()V
-Landroid/graphics/pdf/PdfEditor;
 Landroid/graphics/pdf/PdfEditor;-><init>(Landroid/os/ParcelFileDescriptor;)V
 Landroid/graphics/pdf/PdfEditor;->close()V
 Landroid/graphics/pdf/PdfEditor;->doClose()V
@@ -22601,7 +21181,6 @@
 Landroid/graphics/pdf/PdfEditor;->throwIfOutSizeNull(Landroid/graphics/Point;)V
 Landroid/graphics/pdf/PdfEditor;->throwIfPageNotInDocument(I)V
 Landroid/graphics/pdf/PdfEditor;->write(Landroid/os/ParcelFileDescriptor;)V
-Landroid/graphics/pdf/PdfRenderer$Page;-><init>(I)V
 Landroid/graphics/pdf/PdfRenderer$Page;->doClose()V
 Landroid/graphics/pdf/PdfRenderer$Page;->mCloseGuard:Ldalvik/system/CloseGuard;
 Landroid/graphics/pdf/PdfRenderer$Page;->mHeight:I
@@ -22609,7 +21188,6 @@
 Landroid/graphics/pdf/PdfRenderer$Page;->mNativePage:J
 Landroid/graphics/pdf/PdfRenderer$Page;->mWidth:I
 Landroid/graphics/pdf/PdfRenderer$Page;->throwIfClosed()V
-Landroid/graphics/pdf/PdfRenderer$RenderMode;
 Landroid/graphics/pdf/PdfRenderer;->mCloseGuard:Ldalvik/system/CloseGuard;
 Landroid/graphics/pdf/PdfRenderer;->mInput:Landroid/os/ParcelFileDescriptor;
 Landroid/graphics/pdf/PdfRenderer;->mNativeDocument:J
@@ -22626,7 +21204,6 @@
 Landroid/graphics/pdf/PdfRenderer;->throwIfClosed()V
 Landroid/graphics/pdf/PdfRenderer;->throwIfPageNotInDocument(I)V
 Landroid/graphics/pdf/PdfRenderer;->throwIfPageOpened()V
-Landroid/graphics/Picture$PictureCanvas;
 Landroid/graphics/Picture$PictureCanvas;-><init>(Landroid/graphics/Picture;J)V
 Landroid/graphics/Picture$PictureCanvas;->mHoldsHwBitmap:Z
 Landroid/graphics/Picture$PictureCanvas;->mPicture:Landroid/graphics/Picture;
@@ -22644,11 +21221,8 @@
 Landroid/graphics/Picture;->nativeGetWidth(J)I
 Landroid/graphics/Picture;->nativeWriteToStream(JLjava/io/OutputStream;[B)Z
 Landroid/graphics/Picture;->WORKING_STREAM_STORAGE:I
-Landroid/graphics/PixelFormat$Format;
-Landroid/graphics/PixelFormat$Opacity;
 Landroid/graphics/PixelFormat;->formatToString(I)Ljava/lang/String;
 Landroid/graphics/PixelFormat;->isPublicFormat(I)Z
-Landroid/graphics/PixelFormatProto;
 Landroid/graphics/PixelFormatProto;-><init>()V
 Landroid/graphics/PixelFormatProto;->OPAQUE:I
 Landroid/graphics/PixelFormatProto;->RGBA_1010102:I
@@ -22662,11 +21236,9 @@
 Landroid/graphics/PixelFormatProto;->UNKNOWN:I
 Landroid/graphics/Point;->printShortString(Ljava/io/PrintWriter;)V
 Landroid/graphics/Point;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/graphics/PointProto;
 Landroid/graphics/PointProto;-><init>()V
 Landroid/graphics/PointProto;->X:J
 Landroid/graphics/PointProto;->Y:J
-Landroid/graphics/PorterDuff$Mode;-><init>(I)V
 Landroid/graphics/PorterDuff;->intToMode(I)Landroid/graphics/PorterDuff$Mode;
 Landroid/graphics/PorterDuff;->modeToInt(Landroid/graphics/PorterDuff$Mode;)I
 Landroid/graphics/PorterDuffColorFilter;->createNativeInstance()J
@@ -22680,7 +21252,6 @@
 Landroid/graphics/RadialGradient;->nativeCreate2(JFFFIII)J
 Landroid/graphics/RadialGradient;->TYPE_COLORS_AND_POSITIONS:I
 Landroid/graphics/RadialGradient;->TYPE_COLOR_CENTER_AND_COLOR_EDGE:I
-Landroid/graphics/Rect$UnflattenHelper;
 Landroid/graphics/Rect$UnflattenHelper;-><init>()V
 Landroid/graphics/Rect$UnflattenHelper;->FLATTENED_PATTERN:Ljava/util/regex/Pattern;
 Landroid/graphics/Rect$UnflattenHelper;->getMatcher(Ljava/lang/String;)Ljava/util/regex/Matcher;
@@ -22693,13 +21264,11 @@
 Landroid/graphics/RectF;->printShortString(Ljava/io/PrintWriter;)V
 Landroid/graphics/RectF;->scale(F)V
 Landroid/graphics/RectF;->toShortString(Ljava/lang/StringBuilder;)Ljava/lang/String;
-Landroid/graphics/RectProto;
 Landroid/graphics/RectProto;-><init>()V
 Landroid/graphics/RectProto;->BOTTOM:J
 Landroid/graphics/RectProto;->LEFT:J
 Landroid/graphics/RectProto;->RIGHT:J
 Landroid/graphics/RectProto;->TOP:J
-Landroid/graphics/Region$Op;-><init>(I)V
 Landroid/graphics/Region;-><init>(J)V
 Landroid/graphics/Region;->MAX_POOL_SIZE:I
 Landroid/graphics/Region;->nativeConstructor()J
@@ -22725,10 +21294,8 @@
 Landroid/graphics/RegionIterator;->nativeConstructor(J)J
 Landroid/graphics/RegionIterator;->nativeDestructor(J)V
 Landroid/graphics/RegionIterator;->nativeNext(JLandroid/graphics/Rect;)Z
-Landroid/graphics/Shader$NoImagePreloadHolder;
 Landroid/graphics/Shader$NoImagePreloadHolder;-><init>()V
 Landroid/graphics/Shader$NoImagePreloadHolder;->sRegistry:Llibcore/util/NativeAllocationRegistry;
-Landroid/graphics/Shader$TileMode;-><init>(I)V
 Landroid/graphics/Shader;->copy()Landroid/graphics/Shader;
 Landroid/graphics/Shader;->copyLocalMatrix(Landroid/graphics/Shader;)V
 Landroid/graphics/Shader;->createNativeInstance(J)J
@@ -22760,14 +21327,12 @@
 Landroid/graphics/SweepGradient;->nativeCreate2(JFFII)J
 Landroid/graphics/SweepGradient;->TYPE_COLORS_AND_POSITIONS:I
 Landroid/graphics/SweepGradient;->TYPE_COLOR_START_AND_COLOR_END:I
-Landroid/graphics/TableMaskFilter;
 Landroid/graphics/TableMaskFilter;-><init>(J)V
 Landroid/graphics/TableMaskFilter;-><init>([B)V
 Landroid/graphics/TableMaskFilter;->CreateGammaTable(F)Landroid/graphics/TableMaskFilter;
 Landroid/graphics/TableMaskFilter;->nativeNewClip(II)J
 Landroid/graphics/TableMaskFilter;->nativeNewGamma(F)J
 Landroid/graphics/TableMaskFilter;->nativeNewTable([B)J
-Landroid/graphics/TemporaryBuffer;
 Landroid/graphics/TemporaryBuffer;-><init>()V
 Landroid/graphics/TemporaryBuffer;->sTemp:[C
 Landroid/graphics/Typeface$Builder;-><init>([Landroid/provider/FontsContract$FontInfo;Ljava/util/Map;)V
@@ -22785,7 +21350,6 @@
 Landroid/graphics/Typeface$Builder;->mWeight:I
 Landroid/graphics/Typeface$Builder;->NORMAL_WEIGHT:I
 Landroid/graphics/Typeface$Builder;->resolveFallbackTypeface()Landroid/graphics/Typeface;
-Landroid/graphics/Typeface$Style;
 Landroid/graphics/Typeface;->buildSystemFallback(Ljava/lang/String;Ljava/lang/String;Landroid/util/ArrayMap;Landroid/util/ArrayMap;)V
 Landroid/graphics/Typeface;->createFontFamily(Ljava/lang/String;Ljava/util/List;[Ljava/lang/String;ILjava/util/Map;Ljava/lang/String;)Landroid/graphics/FontFamily;
 Landroid/graphics/Typeface;->createFromResources(Landroid/content/res/AssetManager;Ljava/lang/String;I)Landroid/graphics/Typeface;
@@ -22834,14 +21398,12 @@
 Landroid/graphics/YuvImage;->mWidth:I
 Landroid/graphics/YuvImage;->nativeCompressToJpeg([BIII[I[IILjava/io/OutputStream;[B)Z
 Landroid/graphics/YuvImage;->WORKING_COMPRESS_STORAGE:I
-Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;
 Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;-><init>()V
 Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;->onAuthenticationAcquired(I)V
 Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;->onAuthenticationError(ILjava/lang/CharSequence;)V
 Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;->onAuthenticationFailed()V
 Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;->onAuthenticationHelp(ILjava/lang/CharSequence;)V
 Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;->onAuthenticationSucceeded(Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationResult;)V
-Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationResult;
 Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationResult;-><init>()V
 Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationResult;-><init>(Landroid/hardware/biometrics/CryptoObject;Landroid/hardware/biometrics/BiometricAuthenticator$BiometricIdentifier;I)V
 Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationResult;->getCryptoObject()Landroid/hardware/biometrics/CryptoObject;
@@ -22850,16 +21412,12 @@
 Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationResult;->mCryptoObject:Landroid/hardware/biometrics/CryptoObject;
 Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationResult;->mIdentifier:Landroid/hardware/biometrics/BiometricAuthenticator$BiometricIdentifier;
 Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationResult;->mUserId:I
-Landroid/hardware/biometrics/BiometricAuthenticator$BiometricIdentifier;
 Landroid/hardware/biometrics/BiometricAuthenticator$BiometricIdentifier;-><init>()V
-Landroid/hardware/biometrics/BiometricAuthenticator;
 Landroid/hardware/biometrics/BiometricAuthenticator;->authenticate(Landroid/hardware/biometrics/CryptoObject;Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;)V
 Landroid/hardware/biometrics/BiometricAuthenticator;->authenticate(Landroid/os/CancellationSignal;Ljava/util/concurrent/Executor;Landroid/hardware/biometrics/BiometricAuthenticator$AuthenticationCallback;)V
-Landroid/hardware/biometrics/BiometricConstants;
 Landroid/hardware/biometrics/BiometricConstants;->BIOMETRICT_ACQUIRED_VENDOR_BASE:I
 Landroid/hardware/biometrics/BiometricConstants;->BIOMETRIC_ACQUIRED_VENDOR:I
 Landroid/hardware/biometrics/BiometricConstants;->BIOMETRIC_ERROR_UNABLE_TO_REMOVE:I
-Landroid/hardware/biometrics/BiometricFingerprintConstants;
 Landroid/hardware/biometrics/BiometricFingerprintConstants;->FINGERPRINT_ACQUIRED_VENDOR:I
 Landroid/hardware/biometrics/BiometricFingerprintConstants;->FINGERPRINT_ACQUIRED_VENDOR_BASE:I
 Landroid/hardware/biometrics/BiometricFingerprintConstants;->FINGERPRINT_ERROR_UNABLE_TO_REMOVE:I
@@ -22871,7 +21429,6 @@
 Landroid/hardware/biometrics/BiometricPrompt$Builder;->mNegativeButtonInfo:Landroid/hardware/biometrics/BiometricPrompt$ButtonInfo;
 Landroid/hardware/biometrics/BiometricPrompt$Builder;->mPositiveButtonInfo:Landroid/hardware/biometrics/BiometricPrompt$ButtonInfo;
 Landroid/hardware/biometrics/BiometricPrompt$Builder;->setPositiveButton(Ljava/lang/CharSequence;Ljava/util/concurrent/Executor;Landroid/content/DialogInterface$OnClickListener;)Landroid/hardware/biometrics/BiometricPrompt$Builder;
-Landroid/hardware/biometrics/BiometricPrompt$ButtonInfo;
 Landroid/hardware/biometrics/BiometricPrompt$ButtonInfo;-><init>(Ljava/util/concurrent/Executor;Landroid/content/DialogInterface$OnClickListener;)V
 Landroid/hardware/biometrics/BiometricPrompt$ButtonInfo;->executor:Ljava/util/concurrent/Executor;
 Landroid/hardware/biometrics/BiometricPrompt$ButtonInfo;->listener:Landroid/content/DialogInterface$OnClickListener;
@@ -22895,7 +21452,6 @@
 Landroid/hardware/biometrics/BiometricPrompt;->mPackageManager:Landroid/content/pm/PackageManager;
 Landroid/hardware/biometrics/BiometricPrompt;->mPositiveButtonInfo:Landroid/hardware/biometrics/BiometricPrompt$ButtonInfo;
 Landroid/hardware/biometrics/BiometricPrompt;->sendError(ILandroid/hardware/biometrics/BiometricPrompt$AuthenticationCallback;Ljava/util/concurrent/Executor;)V
-Landroid/hardware/biometrics/CryptoObject;
 Landroid/hardware/biometrics/CryptoObject;-><init>(Ljava/security/Signature;)V
 Landroid/hardware/biometrics/CryptoObject;-><init>(Ljavax/crypto/Cipher;)V
 Landroid/hardware/biometrics/CryptoObject;-><init>(Ljavax/crypto/Mac;)V
@@ -22904,26 +21460,19 @@
 Landroid/hardware/biometrics/CryptoObject;->getOpId()J
 Landroid/hardware/biometrics/CryptoObject;->getSignature()Ljava/security/Signature;
 Landroid/hardware/biometrics/CryptoObject;->mCrypto:Ljava/lang/Object;
-Landroid/hardware/biometrics/IBiometricPromptReceiver$Stub$Proxy;
 Landroid/hardware/biometrics/IBiometricPromptReceiver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/biometrics/IBiometricPromptReceiver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/biometrics/IBiometricPromptReceiver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/biometrics/IBiometricPromptReceiver$Stub$Proxy;->onDialogDismissed(I)V
-Landroid/hardware/biometrics/IBiometricPromptReceiver$Stub;
 Landroid/hardware/biometrics/IBiometricPromptReceiver$Stub;-><init>()V
 Landroid/hardware/biometrics/IBiometricPromptReceiver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/biometrics/IBiometricPromptReceiver;
 Landroid/hardware/biometrics/IBiometricPromptReceiver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/biometrics/IBiometricPromptReceiver$Stub;->TRANSACTION_onDialogDismissed:I
-Landroid/hardware/biometrics/IBiometricPromptReceiver;
 Landroid/hardware/biometrics/IBiometricPromptReceiver;->onDialogDismissed(I)V
-Landroid/hardware/Camera$EventHandler;
-Landroid/hardware/Camera$EventHandler;-><init>(Landroid/hardware/Camera;Landroid/os/Looper;)V
 Landroid/hardware/Camera$EventHandler;->mCamera:Landroid/hardware/Camera;
-Landroid/hardware/Camera$IAppOpsCallbackWrapper;
 Landroid/hardware/Camera$IAppOpsCallbackWrapper;-><init>(Landroid/hardware/Camera;)V
 Landroid/hardware/Camera$IAppOpsCallbackWrapper;->mWeakCamera:Ljava/lang/ref/WeakReference;
 Landroid/hardware/Camera$IAppOpsCallbackWrapper;->opChanged(IILjava/lang/String;)V
-Landroid/hardware/Camera$Parameters;-><init>()V
 Landroid/hardware/Camera$Parameters;->cameraFormatForPixelFormat(I)Ljava/lang/String;
 Landroid/hardware/Camera$Parameters;->FALSE:Ljava/lang/String;
 Landroid/hardware/Camera$Parameters;->getFloat(Ljava/lang/String;F)F
@@ -23003,7 +21552,6 @@
 Landroid/hardware/Camera$Parameters;->strToSize(Ljava/lang/String;)Landroid/hardware/Camera$Size;
 Landroid/hardware/Camera$Parameters;->SUPPORTED_VALUES_SUFFIX:Ljava/lang/String;
 Landroid/hardware/Camera$Parameters;->TRUE:Ljava/lang/String;
-Landroid/hardware/camera2/CameraAccessException$AccessError;
 Landroid/hardware/camera2/CameraAccessException;->CAMERA_DEPRECATED_HAL:I
 Landroid/hardware/camera2/CameraAccessException;->getCombinedMessage(ILjava/lang/String;)Ljava/lang/String;
 Landroid/hardware/camera2/CameraAccessException;->getDefaultMessage(I)Ljava/lang/String;
@@ -23028,11 +21576,7 @@
 Landroid/hardware/camera2/CameraCharacteristics;->mAvailableResultKeys:Ljava/util/List;
 Landroid/hardware/camera2/CameraCharacteristics;->mAvailableSessionKeys:Ljava/util/List;
 Landroid/hardware/camera2/CameraCharacteristics;->mKeys:Ljava/util/List;
-Landroid/hardware/camera2/CameraDevice$RequestTemplate;
-Landroid/hardware/camera2/CameraDevice$SessionOperatingMode;
-Landroid/hardware/camera2/CameraDevice$StateCallback$ErrorCode;
 Landroid/hardware/camera2/CameraDevice;-><init>()V
-Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;
 Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;-><init>()V
 Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->CAMERA_SERVICE_BINDER_NAME:Ljava/lang/String;
 Landroid/hardware/camera2/CameraManager$CameraManagerGlobal;->CAMERA_SERVICE_RECONNECT_DELAY_MS:I
@@ -23101,7 +21645,6 @@
 Landroid/hardware/camera2/CameraMetadata;->SYNC_FRAME_NUMBER_CONVERGING:I
 Landroid/hardware/camera2/CameraMetadata;->SYNC_FRAME_NUMBER_UNKNOWN:I
 Landroid/hardware/camera2/CameraMetadata;->TAG:Ljava/lang/String;
-Landroid/hardware/camera2/CaptureFailure$FailureReason;
 Landroid/hardware/camera2/CaptureFailure;-><init>(Landroid/hardware/camera2/CaptureRequest;IZIJ)V
 Landroid/hardware/camera2/CaptureFailure;->mDropped:Z
 Landroid/hardware/camera2/CaptureFailure;->mFrameNumber:J
@@ -23184,7 +21727,6 @@
 Landroid/hardware/camera2/DngCreator;->toExifLatLong(D)[I
 Landroid/hardware/camera2/DngCreator;->writeByteBuffer(IILjava/nio/ByteBuffer;Ljava/io/OutputStream;IIJ)V
 Landroid/hardware/camera2/DngCreator;->yuvToRgb([BI[B)V
-Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub$Proxy;
 Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -23195,7 +21737,6 @@
 Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub$Proxy;->onRepeatingRequestError(JI)V
 Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub$Proxy;->onRequestQueueEmpty()V
 Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub$Proxy;->onResultReceived(Landroid/hardware/camera2/impl/CameraMetadataNative;Landroid/hardware/camera2/impl/CaptureResultExtras;[Landroid/hardware/camera2/impl/PhysicalCaptureResultInfo;)V
-Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub;
 Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub;-><init>()V
 Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/camera2/ICameraDeviceCallbacks;
 Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -23206,7 +21747,6 @@
 Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub;->TRANSACTION_onRepeatingRequestError:I
 Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub;->TRANSACTION_onRequestQueueEmpty:I
 Landroid/hardware/camera2/ICameraDeviceCallbacks$Stub;->TRANSACTION_onResultReceived:I
-Landroid/hardware/camera2/ICameraDeviceCallbacks;
 Landroid/hardware/camera2/ICameraDeviceCallbacks;->ERROR_CAMERA_BUFFER:I
 Landroid/hardware/camera2/ICameraDeviceCallbacks;->ERROR_CAMERA_DEVICE:I
 Landroid/hardware/camera2/ICameraDeviceCallbacks;->ERROR_CAMERA_DISABLED:I
@@ -23222,7 +21762,6 @@
 Landroid/hardware/camera2/ICameraDeviceCallbacks;->onRepeatingRequestError(JI)V
 Landroid/hardware/camera2/ICameraDeviceCallbacks;->onRequestQueueEmpty()V
 Landroid/hardware/camera2/ICameraDeviceCallbacks;->onResultReceived(Landroid/hardware/camera2/impl/CameraMetadataNative;Landroid/hardware/camera2/impl/CaptureResultExtras;[Landroid/hardware/camera2/impl/PhysicalCaptureResultInfo;)V
-Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;
 Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;->beginConfigure()V
 Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;->cancelRequest(I)J
@@ -23245,7 +21784,6 @@
 Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;->tearDown(I)V
 Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;->updateOutputConfiguration(ILandroid/hardware/camera2/params/OutputConfiguration;)V
 Landroid/hardware/camera2/ICameraDeviceUser$Stub$Proxy;->waitUntilIdle()V
-Landroid/hardware/camera2/ICameraDeviceUser$Stub;
 Landroid/hardware/camera2/ICameraDeviceUser$Stub;-><init>()V
 Landroid/hardware/camera2/ICameraDeviceUser$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/camera2/ICameraDeviceUser;
 Landroid/hardware/camera2/ICameraDeviceUser$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -23268,7 +21806,6 @@
 Landroid/hardware/camera2/ICameraDeviceUser$Stub;->TRANSACTION_tearDown:I
 Landroid/hardware/camera2/ICameraDeviceUser$Stub;->TRANSACTION_updateOutputConfiguration:I
 Landroid/hardware/camera2/ICameraDeviceUser$Stub;->TRANSACTION_waitUntilIdle:I
-Landroid/hardware/camera2/ICameraDeviceUser;
 Landroid/hardware/camera2/ICameraDeviceUser;->beginConfigure()V
 Landroid/hardware/camera2/ICameraDeviceUser;->cancelRequest(I)J
 Landroid/hardware/camera2/ICameraDeviceUser;->CONSTRAINED_HIGH_SPEED_MODE:I
@@ -23298,26 +21835,16 @@
 Landroid/hardware/camera2/ICameraDeviceUser;->updateOutputConfiguration(ILandroid/hardware/camera2/params/OutputConfiguration;)V
 Landroid/hardware/camera2/ICameraDeviceUser;->VENDOR_MODE_START:I
 Landroid/hardware/camera2/ICameraDeviceUser;->waitUntilIdle()V
-Landroid/hardware/camera2/impl/CallbackProxies$SessionStateCallbackProxy;
 Landroid/hardware/camera2/impl/CallbackProxies$SessionStateCallbackProxy;-><init>(Ljava/util/concurrent/Executor;Landroid/hardware/camera2/CameraCaptureSession$StateCallback;)V
 Landroid/hardware/camera2/impl/CallbackProxies$SessionStateCallbackProxy;->mCallback:Landroid/hardware/camera2/CameraCaptureSession$StateCallback;
 Landroid/hardware/camera2/impl/CallbackProxies$SessionStateCallbackProxy;->mExecutor:Ljava/util/concurrent/Executor;
-Landroid/hardware/camera2/impl/CallbackProxies;
 Landroid/hardware/camera2/impl/CallbackProxies;-><init>()V
-Landroid/hardware/camera2/impl/CameraCaptureSessionCore;
 Landroid/hardware/camera2/impl/CameraCaptureSessionCore;->getDeviceStateCallback()Landroid/hardware/camera2/impl/CameraDeviceImpl$StateCallbackKK;
 Landroid/hardware/camera2/impl/CameraCaptureSessionCore;->isAborting()Z
 Landroid/hardware/camera2/impl/CameraCaptureSessionCore;->replaceSessionClose()V
-Landroid/hardware/camera2/impl/CameraCaptureSessionImpl$AbortDrainListener;
-Landroid/hardware/camera2/impl/CameraCaptureSessionImpl$AbortDrainListener;-><init>()V
 Landroid/hardware/camera2/impl/CameraCaptureSessionImpl$AbortDrainListener;->onDrained()V
-Landroid/hardware/camera2/impl/CameraCaptureSessionImpl$IdleDrainListener;
-Landroid/hardware/camera2/impl/CameraCaptureSessionImpl$IdleDrainListener;-><init>()V
 Landroid/hardware/camera2/impl/CameraCaptureSessionImpl$IdleDrainListener;->onDrained()V
-Landroid/hardware/camera2/impl/CameraCaptureSessionImpl$SequenceDrainListener;
-Landroid/hardware/camera2/impl/CameraCaptureSessionImpl$SequenceDrainListener;-><init>()V
 Landroid/hardware/camera2/impl/CameraCaptureSessionImpl$SequenceDrainListener;->onDrained()V
-Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;
 Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;-><init>(ILandroid/view/Surface;Landroid/hardware/camera2/CameraCaptureSession$StateCallback;Ljava/util/concurrent/Executor;Landroid/hardware/camera2/impl/CameraDeviceImpl;Ljava/util/concurrent/Executor;Z)V
 Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->addPendingSequence(I)I
 Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->checkCaptureRequest(Landroid/hardware/camera2/CaptureRequest;)V
@@ -23350,10 +21877,7 @@
 Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->replaceSessionClose()V
 Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->TAG:Ljava/lang/String;
 Landroid/hardware/camera2/impl/CameraCaptureSessionImpl;->tearDown(Landroid/view/Surface;)V
-Landroid/hardware/camera2/impl/CameraConstrainedHighSpeedCaptureSessionImpl$WrapperCallback;
-Landroid/hardware/camera2/impl/CameraConstrainedHighSpeedCaptureSessionImpl$WrapperCallback;-><init>(Landroid/hardware/camera2/CameraCaptureSession$StateCallback;)V
 Landroid/hardware/camera2/impl/CameraConstrainedHighSpeedCaptureSessionImpl$WrapperCallback;->mCallback:Landroid/hardware/camera2/CameraCaptureSession$StateCallback;
-Landroid/hardware/camera2/impl/CameraConstrainedHighSpeedCaptureSessionImpl;
 Landroid/hardware/camera2/impl/CameraConstrainedHighSpeedCaptureSessionImpl;-><init>(ILandroid/hardware/camera2/CameraCaptureSession$StateCallback;Ljava/util/concurrent/Executor;Landroid/hardware/camera2/impl/CameraDeviceImpl;Ljava/util/concurrent/Executor;ZLandroid/hardware/camera2/CameraCharacteristics;)V
 Landroid/hardware/camera2/impl/CameraConstrainedHighSpeedCaptureSessionImpl;->getDeviceStateCallback()Landroid/hardware/camera2/impl/CameraDeviceImpl$StateCallbackKK;
 Landroid/hardware/camera2/impl/CameraConstrainedHighSpeedCaptureSessionImpl;->isAborting()Z
@@ -23363,8 +21887,6 @@
 Landroid/hardware/camera2/impl/CameraConstrainedHighSpeedCaptureSessionImpl;->prepare(ILandroid/view/Surface;)V
 Landroid/hardware/camera2/impl/CameraConstrainedHighSpeedCaptureSessionImpl;->replaceSessionClose()V
 Landroid/hardware/camera2/impl/CameraConstrainedHighSpeedCaptureSessionImpl;->tearDown(Landroid/view/Surface;)V
-Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraDeviceCallbacks;
-Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraDeviceCallbacks;-><init>()V
 Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraDeviceCallbacks;->notifyError(I)V
 Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraDeviceCallbacks;->onCaptureErrorLocked(ILandroid/hardware/camera2/impl/CaptureResultExtras;)V
 Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraDeviceCallbacks;->onCaptureStarted(Landroid/hardware/camera2/impl/CaptureResultExtras;J)V
@@ -23375,10 +21897,8 @@
 Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraDeviceCallbacks;->onRequestQueueEmpty()V
 Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraDeviceCallbacks;->onResultReceived(Landroid/hardware/camera2/impl/CameraMetadataNative;Landroid/hardware/camera2/impl/CaptureResultExtras;[Landroid/hardware/camera2/impl/PhysicalCaptureResultInfo;)V
 Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraDeviceCallbacks;->scheduleNotifyError(I)V
-Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraHandlerExecutor;
 Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraHandlerExecutor;-><init>(Landroid/os/Handler;)V
 Landroid/hardware/camera2/impl/CameraDeviceImpl$CameraHandlerExecutor;->mHandler:Landroid/os/Handler;
-Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallback;
 Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallback;->NO_FRAMES_CAPTURED:I
 Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallback;->onCaptureBufferLost(Landroid/hardware/camera2/CameraDevice;Landroid/hardware/camera2/CaptureRequest;Landroid/view/Surface;J)V
 Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallback;->onCaptureCompleted(Landroid/hardware/camera2/CameraDevice;Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/TotalCaptureResult;)V
@@ -23388,7 +21908,6 @@
 Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallback;->onCaptureSequenceAborted(Landroid/hardware/camera2/CameraDevice;I)V
 Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallback;->onCaptureSequenceCompleted(Landroid/hardware/camera2/CameraDevice;IJ)V
 Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallback;->onCaptureStarted(Landroid/hardware/camera2/CameraDevice;Landroid/hardware/camera2/CaptureRequest;JJ)V
-Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallbackHolder;
 Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallbackHolder;-><init>(Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallback;Ljava/util/List;Ljava/util/concurrent/Executor;ZI)V
 Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallbackHolder;->getCallback()Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallback;
 Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallbackHolder;->getExecutor()Ljava/util/concurrent/Executor;
@@ -23404,8 +21923,6 @@
 Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallbackHolder;->mRepeating:Z
 Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallbackHolder;->mRequestList:Ljava/util/List;
 Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallbackHolder;->mSessionId:I
-Landroid/hardware/camera2/impl/CameraDeviceImpl$FrameNumberTracker;
-Landroid/hardware/camera2/impl/CameraDeviceImpl$FrameNumberTracker;-><init>()V
 Landroid/hardware/camera2/impl/CameraDeviceImpl$FrameNumberTracker;->getCompletedFrameNumber()J
 Landroid/hardware/camera2/impl/CameraDeviceImpl$FrameNumberTracker;->getCompletedReprocessFrameNumber()J
 Landroid/hardware/camera2/impl/CameraDeviceImpl$FrameNumberTracker;->mCompletedFrameNumber:J
@@ -23420,7 +21937,6 @@
 Landroid/hardware/camera2/impl/CameraDeviceImpl$FrameNumberTracker;->updateCompletedReprocessFrameNumber(J)V
 Landroid/hardware/camera2/impl/CameraDeviceImpl$FrameNumberTracker;->updateTracker(JLandroid/hardware/camera2/CaptureResult;ZZ)V
 Landroid/hardware/camera2/impl/CameraDeviceImpl$FrameNumberTracker;->updateTracker(JZZ)V
-Landroid/hardware/camera2/impl/CameraDeviceImpl$RequestLastFrameNumbersHolder;
 Landroid/hardware/camera2/impl/CameraDeviceImpl$RequestLastFrameNumbersHolder;-><init>(IJ)V
 Landroid/hardware/camera2/impl/CameraDeviceImpl$RequestLastFrameNumbersHolder;-><init>(Ljava/util/List;Landroid/hardware/camera2/utils/SubmitInfo;)V
 Landroid/hardware/camera2/impl/CameraDeviceImpl$RequestLastFrameNumbersHolder;->getLastFrameNumber()J
@@ -23430,7 +21946,6 @@
 Landroid/hardware/camera2/impl/CameraDeviceImpl$RequestLastFrameNumbersHolder;->mLastRegularFrameNumber:J
 Landroid/hardware/camera2/impl/CameraDeviceImpl$RequestLastFrameNumbersHolder;->mLastReprocessFrameNumber:J
 Landroid/hardware/camera2/impl/CameraDeviceImpl$RequestLastFrameNumbersHolder;->mRequestId:I
-Landroid/hardware/camera2/impl/CameraDeviceImpl$StateCallbackKK;
 Landroid/hardware/camera2/impl/CameraDeviceImpl$StateCallbackKK;-><init>()V
 Landroid/hardware/camera2/impl/CameraDeviceImpl$StateCallbackKK;->onActive(Landroid/hardware/camera2/CameraDevice;)V
 Landroid/hardware/camera2/impl/CameraDeviceImpl$StateCallbackKK;->onBusy(Landroid/hardware/camera2/CameraDevice;)V
@@ -23438,7 +21953,6 @@
 Landroid/hardware/camera2/impl/CameraDeviceImpl$StateCallbackKK;->onRequestQueueEmpty()V
 Landroid/hardware/camera2/impl/CameraDeviceImpl$StateCallbackKK;->onSurfacePrepared(Landroid/view/Surface;)V
 Landroid/hardware/camera2/impl/CameraDeviceImpl$StateCallbackKK;->onUnconfigured(Landroid/hardware/camera2/CameraDevice;)V
-Landroid/hardware/camera2/impl/CameraDeviceImpl;
 Landroid/hardware/camera2/impl/CameraDeviceImpl;-><init>(Ljava/lang/String;Landroid/hardware/camera2/CameraDevice$StateCallback;Ljava/util/concurrent/Executor;Landroid/hardware/camera2/CameraCharacteristics;I)V
 Landroid/hardware/camera2/impl/CameraDeviceImpl;->capture(Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallback;Ljava/util/concurrent/Executor;)I
 Landroid/hardware/camera2/impl/CameraDeviceImpl;->captureBurst(Ljava/util/List;Landroid/hardware/camera2/impl/CameraDeviceImpl$CaptureCallback;Ljava/util/concurrent/Executor;)I
@@ -23504,7 +22018,6 @@
 Landroid/hardware/camera2/impl/CameraDeviceImpl;->tearDown(Landroid/view/Surface;)V
 Landroid/hardware/camera2/impl/CameraDeviceImpl;->updateOutputConfiguration(Landroid/hardware/camera2/params/OutputConfiguration;)V
 Landroid/hardware/camera2/impl/CameraDeviceImpl;->waitUntilIdle()V
-Landroid/hardware/camera2/impl/CameraMetadataNative$Key;
 Landroid/hardware/camera2/impl/CameraMetadataNative$Key;-><init>(Ljava/lang/String;Landroid/hardware/camera2/utils/TypeReference;)V
 Landroid/hardware/camera2/impl/CameraMetadataNative$Key;-><init>(Ljava/lang/String;Ljava/lang/Class;)V
 Landroid/hardware/camera2/impl/CameraMetadataNative$Key;-><init>(Ljava/lang/String;Ljava/lang/Class;J)V
@@ -23521,10 +22034,8 @@
 Landroid/hardware/camera2/impl/CameraMetadataNative$Key;->mType:Ljava/lang/Class;
 Landroid/hardware/camera2/impl/CameraMetadataNative$Key;->mTypeReference:Landroid/hardware/camera2/utils/TypeReference;
 Landroid/hardware/camera2/impl/CameraMetadataNative$Key;->mVendorId:J
-Landroid/hardware/camera2/impl/CameraMetadataNative;
 Landroid/hardware/camera2/impl/CameraMetadataNative;-><init>()V
 Landroid/hardware/camera2/impl/CameraMetadataNative;-><init>(Landroid/hardware/camera2/impl/CameraMetadataNative;)V
-Landroid/hardware/camera2/impl/CameraMetadataNative;->areValuesAllNull([[Ljava/lang/Object;)Z
 Landroid/hardware/camera2/impl/CameraMetadataNative;->CELLID_PROCESS:Ljava/lang/String;
 Landroid/hardware/camera2/impl/CameraMetadataNative;->close()V
 Landroid/hardware/camera2/impl/CameraMetadataNative;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -23604,7 +22115,6 @@
 Landroid/hardware/camera2/impl/CameraMetadataNative;->TYPE_INT64:I
 Landroid/hardware/camera2/impl/CameraMetadataNative;->TYPE_RATIONAL:I
 Landroid/hardware/camera2/impl/CameraMetadataNative;->writeValues(I[B)V
-Landroid/hardware/camera2/impl/CaptureResultExtras;
 Landroid/hardware/camera2/impl/CaptureResultExtras;-><init>(IIIIJII)V
 Landroid/hardware/camera2/impl/CaptureResultExtras;-><init>(Landroid/os/Parcel;)V
 Landroid/hardware/camera2/impl/CaptureResultExtras;->afTriggerId:I
@@ -23623,9 +22133,7 @@
 Landroid/hardware/camera2/impl/CaptureResultExtras;->readFromParcel(Landroid/os/Parcel;)V
 Landroid/hardware/camera2/impl/CaptureResultExtras;->requestId:I
 Landroid/hardware/camera2/impl/CaptureResultExtras;->subsequenceId:I
-Landroid/hardware/camera2/impl/GetCommand;
 Landroid/hardware/camera2/impl/GetCommand;->getValue(Landroid/hardware/camera2/impl/CameraMetadataNative;Landroid/hardware/camera2/impl/CameraMetadataNative$Key;)Ljava/lang/Object;
-Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;
 Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;-><init>(Landroid/hardware/camera2/ICameraDeviceUser;)V
 Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;->beginConfigure()V
 Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;->cancelRequest(I)J
@@ -23648,7 +22156,6 @@
 Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;->unlinkToDeath(Landroid/os/IBinder$DeathRecipient;I)V
 Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;->updateOutputConfiguration(ILandroid/hardware/camera2/params/OutputConfiguration;)V
 Landroid/hardware/camera2/impl/ICameraDeviceUserWrapper;->waitUntilIdle()V
-Landroid/hardware/camera2/impl/PhysicalCaptureResultInfo;
 Landroid/hardware/camera2/impl/PhysicalCaptureResultInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/hardware/camera2/impl/PhysicalCaptureResultInfo;-><init>(Ljava/lang/String;Landroid/hardware/camera2/impl/CameraMetadataNative;)V
 Landroid/hardware/camera2/impl/PhysicalCaptureResultInfo;->cameraId:Ljava/lang/String;
@@ -23657,10 +22164,7 @@
 Landroid/hardware/camera2/impl/PhysicalCaptureResultInfo;->getCameraId()Ljava/lang/String;
 Landroid/hardware/camera2/impl/PhysicalCaptureResultInfo;->getCameraMetadata()Landroid/hardware/camera2/impl/CameraMetadataNative;
 Landroid/hardware/camera2/impl/PhysicalCaptureResultInfo;->readFromParcel(Landroid/os/Parcel;)V
-Landroid/hardware/camera2/impl/PublicKey;
-Landroid/hardware/camera2/impl/SetCommand;
 Landroid/hardware/camera2/impl/SetCommand;->setValue(Landroid/hardware/camera2/impl/CameraMetadataNative;Ljava/lang/Object;)V
-Landroid/hardware/camera2/impl/SyntheticKey;
 Landroid/hardware/camera2/params/BlackLevelPattern;-><init>([I)V
 Landroid/hardware/camera2/params/BlackLevelPattern;->mCfaOffsets:[I
 Landroid/hardware/camera2/params/ColorSpaceTransform;->COLUMNS:I
@@ -23682,7 +22186,6 @@
 Landroid/hardware/camera2/params/Face;->mMouth:Landroid/graphics/Point;
 Landroid/hardware/camera2/params/Face;->mRightEye:Landroid/graphics/Point;
 Landroid/hardware/camera2/params/Face;->mScore:I
-Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;
 Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;-><init>(IIIII)V
 Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;->getBatchSizeMax()I
 Landroid/hardware/camera2/params/HighSpeedVideoConfiguration;->getFpsMax()I
@@ -23734,7 +22237,6 @@
 Landroid/hardware/camera2/params/OutputConfiguration;->SURFACE_TYPE_SURFACE_VIEW:I
 Landroid/hardware/camera2/params/OutputConfiguration;->SURFACE_TYPE_UNKNOWN:I
 Landroid/hardware/camera2/params/OutputConfiguration;->TAG:Ljava/lang/String;
-Landroid/hardware/camera2/params/ReprocessFormatsMap;
 Landroid/hardware/camera2/params/ReprocessFormatsMap;-><init>([I)V
 Landroid/hardware/camera2/params/ReprocessFormatsMap;->getInputs()[I
 Landroid/hardware/camera2/params/ReprocessFormatsMap;->getOutputs(I)[I
@@ -23745,7 +22247,6 @@
 Landroid/hardware/camera2/params/RggbChannelVector;->mGreenOdd:F
 Landroid/hardware/camera2/params/RggbChannelVector;->mRed:F
 Landroid/hardware/camera2/params/RggbChannelVector;->toShortString()Ljava/lang/String;
-Landroid/hardware/camera2/params/SessionConfiguration$SessionMode;
 Landroid/hardware/camera2/params/SessionConfiguration;->mExecutor:Ljava/util/concurrent/Executor;
 Landroid/hardware/camera2/params/SessionConfiguration;->mInputConfig:Landroid/hardware/camera2/params/InputConfiguration;
 Landroid/hardware/camera2/params/SessionConfiguration;->mOutputConfigurations:Ljava/util/List;
@@ -23753,7 +22254,6 @@
 Landroid/hardware/camera2/params/SessionConfiguration;->mSessionType:I
 Landroid/hardware/camera2/params/SessionConfiguration;->mStateCallback:Landroid/hardware/camera2/CameraCaptureSession$StateCallback;
 Landroid/hardware/camera2/params/SessionConfiguration;->SESSION_VENDOR_START:I
-Landroid/hardware/camera2/params/StreamConfiguration;
 Landroid/hardware/camera2/params/StreamConfiguration;-><init>(IIIZ)V
 Landroid/hardware/camera2/params/StreamConfiguration;->getFormat()I
 Landroid/hardware/camera2/params/StreamConfiguration;->getHeight()I
@@ -23765,7 +22265,6 @@
 Landroid/hardware/camera2/params/StreamConfiguration;->mHeight:I
 Landroid/hardware/camera2/params/StreamConfiguration;->mInput:Z
 Landroid/hardware/camera2/params/StreamConfiguration;->mWidth:I
-Landroid/hardware/camera2/params/StreamConfigurationDuration;
 Landroid/hardware/camera2/params/StreamConfigurationDuration;-><init>(IIIJ)V
 Landroid/hardware/camera2/params/StreamConfigurationDuration;->getDuration()J
 Landroid/hardware/camera2/params/StreamConfigurationDuration;->getFormat()I
@@ -23849,11 +22348,9 @@
 Landroid/hardware/camera2/params/TonemapCurve;->OFFSET_POINT_IN:I
 Landroid/hardware/camera2/params/TonemapCurve;->OFFSET_POINT_OUT:I
 Landroid/hardware/camera2/params/TonemapCurve;->TONEMAP_MIN_CURVE_POINTS:I
-Landroid/hardware/camera2/params/VendorTagDescriptor;
 Landroid/hardware/camera2/params/VendorTagDescriptor;-><init>(Landroid/os/Parcel;)V
 Landroid/hardware/camera2/params/VendorTagDescriptor;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/hardware/camera2/params/VendorTagDescriptor;->TAG:Ljava/lang/String;
-Landroid/hardware/camera2/params/VendorTagDescriptorCache;
 Landroid/hardware/camera2/params/VendorTagDescriptorCache;-><init>(Landroid/os/Parcel;)V
 Landroid/hardware/camera2/params/VendorTagDescriptorCache;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/hardware/camera2/params/VendorTagDescriptorCache;->TAG:Ljava/lang/String;
@@ -23863,7 +22360,6 @@
 Landroid/hardware/camera2/TotalCaptureResult;->mPartialResults:Ljava/util/List;
 Landroid/hardware/camera2/TotalCaptureResult;->mPhysicalCaptureResults:Ljava/util/HashMap;
 Landroid/hardware/camera2/TotalCaptureResult;->mSessionId:I
-Landroid/hardware/camera2/utils/ArrayUtils;
 Landroid/hardware/camera2/utils/ArrayUtils;-><init>()V
 Landroid/hardware/camera2/utils/ArrayUtils;->contains([II)Z
 Landroid/hardware/camera2/utils/ArrayUtils;->contains([Ljava/lang/Object;Ljava/lang/Object;)Z
@@ -23874,9 +22370,6 @@
 Landroid/hardware/camera2/utils/ArrayUtils;->getArrayIndex([Ljava/lang/Object;Ljava/lang/Object;)I
 Landroid/hardware/camera2/utils/ArrayUtils;->TAG:Ljava/lang/String;
 Landroid/hardware/camera2/utils/ArrayUtils;->toIntArray(Ljava/util/List;)[I
-Landroid/hardware/camera2/utils/CloseableLock$ScopedLock;
-Landroid/hardware/camera2/utils/CloseableLock$ScopedLock;-><init>()V
-Landroid/hardware/camera2/utils/CloseableLock;
 Landroid/hardware/camera2/utils/CloseableLock;-><init>()V
 Landroid/hardware/camera2/utils/CloseableLock;-><init>(Ljava/lang/String;)V
 Landroid/hardware/camera2/utils/CloseableLock;->acquireExclusiveLock()Landroid/hardware/camera2/utils/CloseableLock$ScopedLock;
@@ -23892,18 +22385,12 @@
 Landroid/hardware/camera2/utils/CloseableLock;->releaseLock()V
 Landroid/hardware/camera2/utils/CloseableLock;->TAG:Ljava/lang/String;
 Landroid/hardware/camera2/utils/CloseableLock;->VERBOSE:Z
-Landroid/hardware/camera2/utils/HashCodeHelpers;
 Landroid/hardware/camera2/utils/HashCodeHelpers;-><init>()V
-Landroid/hardware/camera2/utils/HashCodeHelpers;->hashCode([[F)I
-Landroid/hardware/camera2/utils/HashCodeHelpers;->hashCode([[I)I
-Landroid/hardware/camera2/utils/HashCodeHelpers;->hashCodeGeneric([[Ljava/lang/Object;)I
-Landroid/hardware/camera2/utils/ListUtils;
 Landroid/hardware/camera2/utils/ListUtils;-><init>()V
 Landroid/hardware/camera2/utils/ListUtils;->listContains(Ljava/util/List;Ljava/lang/Object;)Z
 Landroid/hardware/camera2/utils/ListUtils;->listElementsEqualTo(Ljava/util/List;Ljava/lang/Object;)Z
 Landroid/hardware/camera2/utils/ListUtils;->listSelectFirstFrom(Ljava/util/List;[Ljava/lang/Object;)Ljava/lang/Object;
 Landroid/hardware/camera2/utils/ListUtils;->listToString(Ljava/util/List;)Ljava/lang/String;
-Landroid/hardware/camera2/utils/LongParcelable;
 Landroid/hardware/camera2/utils/LongParcelable;-><init>()V
 Landroid/hardware/camera2/utils/LongParcelable;-><init>(J)V
 Landroid/hardware/camera2/utils/LongParcelable;-><init>(Landroid/os/Parcel;)V
@@ -23912,7 +22399,6 @@
 Landroid/hardware/camera2/utils/LongParcelable;->number:J
 Landroid/hardware/camera2/utils/LongParcelable;->readFromParcel(Landroid/os/Parcel;)V
 Landroid/hardware/camera2/utils/LongParcelable;->setNumber(J)V
-Landroid/hardware/camera2/utils/ParamsUtils;
 Landroid/hardware/camera2/utils/ParamsUtils;-><init>()V
 Landroid/hardware/camera2/utils/ParamsUtils;->convertRectF(Landroid/graphics/Rect;Landroid/graphics/RectF;)V
 Landroid/hardware/camera2/utils/ParamsUtils;->createRational(F)Landroid/util/Rational;
@@ -23922,11 +22408,9 @@
 Landroid/hardware/camera2/utils/ParamsUtils;->getOrDefault(Landroid/hardware/camera2/CaptureRequest;Landroid/hardware/camera2/CaptureRequest$Key;Ljava/lang/Object;)Ljava/lang/Object;
 Landroid/hardware/camera2/utils/ParamsUtils;->mapRect(Landroid/graphics/Matrix;Landroid/graphics/Rect;)Landroid/graphics/Rect;
 Landroid/hardware/camera2/utils/ParamsUtils;->RATIONAL_DENOMINATOR:I
-Landroid/hardware/camera2/utils/SizeAreaComparator;
 Landroid/hardware/camera2/utils/SizeAreaComparator;-><init>()V
 Landroid/hardware/camera2/utils/SizeAreaComparator;->compare(Landroid/util/Size;Landroid/util/Size;)I
 Landroid/hardware/camera2/utils/SizeAreaComparator;->findLargestByArea(Ljava/util/List;)Landroid/util/Size;
-Landroid/hardware/camera2/utils/SubmitInfo;
 Landroid/hardware/camera2/utils/SubmitInfo;-><init>()V
 Landroid/hardware/camera2/utils/SubmitInfo;-><init>(IJ)V
 Landroid/hardware/camera2/utils/SubmitInfo;-><init>(Landroid/os/Parcel;)V
@@ -23936,7 +22420,6 @@
 Landroid/hardware/camera2/utils/SubmitInfo;->mLastFrameNumber:J
 Landroid/hardware/camera2/utils/SubmitInfo;->mRequestId:I
 Landroid/hardware/camera2/utils/SubmitInfo;->readFromParcel(Landroid/os/Parcel;)V
-Landroid/hardware/camera2/utils/SurfaceUtils;
 Landroid/hardware/camera2/utils/SurfaceUtils;-><init>()V
 Landroid/hardware/camera2/utils/SurfaceUtils;->checkConstrainedHighSpeedSurfaces(Ljava/util/Collection;Landroid/util/Range;Landroid/hardware/camera2/params/StreamConfigurationMap;)V
 Landroid/hardware/camera2/utils/SurfaceUtils;->checkHighSpeedSurfaceFormat(Landroid/view/Surface;)V
@@ -23946,9 +22429,7 @@
 Landroid/hardware/camera2/utils/SurfaceUtils;->isFlexibleConsumer(Landroid/view/Surface;)Z
 Landroid/hardware/camera2/utils/SurfaceUtils;->isSurfaceForHwVideoEncoder(Landroid/view/Surface;)Z
 Landroid/hardware/camera2/utils/SurfaceUtils;->isSurfaceForPreview(Landroid/view/Surface;)Z
-Landroid/hardware/camera2/utils/TaskDrainer$DrainListener;
 Landroid/hardware/camera2/utils/TaskDrainer$DrainListener;->onDrained()V
-Landroid/hardware/camera2/utils/TaskDrainer;
 Landroid/hardware/camera2/utils/TaskDrainer;-><init>(Ljava/util/concurrent/Executor;Landroid/hardware/camera2/utils/TaskDrainer$DrainListener;)V
 Landroid/hardware/camera2/utils/TaskDrainer;-><init>(Ljava/util/concurrent/Executor;Landroid/hardware/camera2/utils/TaskDrainer$DrainListener;Ljava/lang/String;)V
 Landroid/hardware/camera2/utils/TaskDrainer;->beginDrain()V
@@ -23966,7 +22447,6 @@
 Landroid/hardware/camera2/utils/TaskDrainer;->TAG:Ljava/lang/String;
 Landroid/hardware/camera2/utils/TaskDrainer;->taskFinished(Ljava/lang/Object;)V
 Landroid/hardware/camera2/utils/TaskDrainer;->taskStarted(Ljava/lang/Object;)V
-Landroid/hardware/camera2/utils/TaskSingleDrainer;
 Landroid/hardware/camera2/utils/TaskSingleDrainer;-><init>(Ljava/util/concurrent/Executor;Landroid/hardware/camera2/utils/TaskDrainer$DrainListener;)V
 Landroid/hardware/camera2/utils/TaskSingleDrainer;-><init>(Ljava/util/concurrent/Executor;Landroid/hardware/camera2/utils/TaskDrainer$DrainListener;Ljava/lang/String;)V
 Landroid/hardware/camera2/utils/TaskSingleDrainer;->beginDrain()V
@@ -23974,11 +22454,8 @@
 Landroid/hardware/camera2/utils/TaskSingleDrainer;->mTaskDrainer:Landroid/hardware/camera2/utils/TaskDrainer;
 Landroid/hardware/camera2/utils/TaskSingleDrainer;->taskFinished()V
 Landroid/hardware/camera2/utils/TaskSingleDrainer;->taskStarted()V
-Landroid/hardware/camera2/utils/TypeReference$SpecializedBaseTypeReference;
 Landroid/hardware/camera2/utils/TypeReference$SpecializedBaseTypeReference;-><init>(Ljava/lang/reflect/Type;)V
-Landroid/hardware/camera2/utils/TypeReference$SpecializedTypeReference;
 Landroid/hardware/camera2/utils/TypeReference$SpecializedTypeReference;-><init>(Ljava/lang/Class;)V
-Landroid/hardware/camera2/utils/TypeReference;
 Landroid/hardware/camera2/utils/TypeReference;-><init>(Ljava/lang/reflect/Type;)V
 Landroid/hardware/camera2/utils/TypeReference;->containsTypeVariable(Ljava/lang/reflect/Type;)Z
 Landroid/hardware/camera2/utils/TypeReference;->containsTypeVariable([Ljava/lang/reflect/Type;)Z
@@ -23994,7 +22471,6 @@
 Landroid/hardware/camera2/utils/TypeReference;->mType:Ljava/lang/reflect/Type;
 Landroid/hardware/camera2/utils/TypeReference;->toString(Ljava/lang/reflect/Type;Ljava/lang/StringBuilder;)V
 Landroid/hardware/camera2/utils/TypeReference;->toString([Ljava/lang/reflect/Type;Ljava/lang/StringBuilder;)V
-Landroid/hardware/camera2/utils/UncheckedThrow;
 Landroid/hardware/camera2/utils/UncheckedThrow;-><init>()V
 Landroid/hardware/camera2/utils/UncheckedThrow;->throwAnyException(Ljava/lang/Exception;)V
 Landroid/hardware/camera2/utils/UncheckedThrow;->throwAnyException(Ljava/lang/Throwable;)V
@@ -24069,12 +22545,10 @@
 Landroid/hardware/Camera;->_startFaceDetection(I)V
 Landroid/hardware/Camera;->_stopFaceDetection()V
 Landroid/hardware/Camera;->_stopPreview()V
-Landroid/hardware/CameraInfo;
 Landroid/hardware/CameraInfo;-><init>()V
 Landroid/hardware/CameraInfo;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/hardware/CameraInfo;->info:Landroid/hardware/Camera$CameraInfo;
 Landroid/hardware/CameraInfo;->readFromParcel(Landroid/os/Parcel;)V
-Landroid/hardware/CameraStatus;
 Landroid/hardware/CameraStatus;-><init>()V
 Landroid/hardware/CameraStatus;->cameraId:Ljava/lang/String;
 Landroid/hardware/CameraStatus;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -24095,7 +22569,6 @@
 Landroid/hardware/display/AmbientBrightnessDayStats;->mBucketBoundaries:[F
 Landroid/hardware/display/AmbientBrightnessDayStats;->mLocalDate:Ljava/time/LocalDate;
 Landroid/hardware/display/AmbientBrightnessDayStats;->mStats:[F
-Landroid/hardware/display/BrightnessChangeEvent$Builder;
 Landroid/hardware/display/BrightnessChangeEvent$Builder;-><init>()V
 Landroid/hardware/display/BrightnessChangeEvent$Builder;->build()Landroid/hardware/display/BrightnessChangeEvent;
 Landroid/hardware/display/BrightnessChangeEvent$Builder;->mBatteryLevel:F
@@ -24139,7 +22612,6 @@
 Landroid/hardware/display/BrightnessConfiguration;->mDescription:Ljava/lang/String;
 Landroid/hardware/display/BrightnessConfiguration;->mLux:[F
 Landroid/hardware/display/BrightnessConfiguration;->mNits:[F
-Landroid/hardware/display/Curve;
 Landroid/hardware/display/Curve;-><init>([F[F)V
 Landroid/hardware/display/Curve;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/hardware/display/Curve;->getX()[F
@@ -24166,27 +22638,21 @@
 Landroid/hardware/display/DisplayManager;->VIRTUAL_DISPLAY_FLAG_DESTROY_CONTENT_ON_REMOVAL:I
 Landroid/hardware/display/DisplayManager;->VIRTUAL_DISPLAY_FLAG_ROTATES_WITH_CONTENT:I
 Landroid/hardware/display/DisplayManager;->VIRTUAL_DISPLAY_FLAG_SUPPORTS_TOUCH:I
-Landroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate;
 Landroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate;-><init>(Landroid/hardware/display/DisplayManager$DisplayListener;Landroid/os/Handler;)V
 Landroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate;->clearEvents()V
 Landroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate;->mListener:Landroid/hardware/display/DisplayManager$DisplayListener;
 Landroid/hardware/display/DisplayManagerGlobal$DisplayListenerDelegate;->sendDisplayEvent(II)V
-Landroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback;
-Landroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback;-><init>()V
 Landroid/hardware/display/DisplayManagerGlobal$DisplayManagerCallback;->onDisplayEvent(II)V
-Landroid/hardware/display/DisplayManagerGlobal$VirtualDisplayCallback;
 Landroid/hardware/display/DisplayManagerGlobal$VirtualDisplayCallback;-><init>(Landroid/hardware/display/VirtualDisplay$Callback;Landroid/os/Handler;)V
 Landroid/hardware/display/DisplayManagerGlobal$VirtualDisplayCallback;->mDelegate:Landroid/hardware/display/DisplayManagerGlobal$VirtualDisplayCallbackDelegate;
 Landroid/hardware/display/DisplayManagerGlobal$VirtualDisplayCallback;->onPaused()V
 Landroid/hardware/display/DisplayManagerGlobal$VirtualDisplayCallback;->onResumed()V
 Landroid/hardware/display/DisplayManagerGlobal$VirtualDisplayCallback;->onStopped()V
-Landroid/hardware/display/DisplayManagerGlobal$VirtualDisplayCallbackDelegate;
 Landroid/hardware/display/DisplayManagerGlobal$VirtualDisplayCallbackDelegate;-><init>(Landroid/hardware/display/VirtualDisplay$Callback;Landroid/os/Handler;)V
 Landroid/hardware/display/DisplayManagerGlobal$VirtualDisplayCallbackDelegate;->mCallback:Landroid/hardware/display/VirtualDisplay$Callback;
 Landroid/hardware/display/DisplayManagerGlobal$VirtualDisplayCallbackDelegate;->MSG_DISPLAY_PAUSED:I
 Landroid/hardware/display/DisplayManagerGlobal$VirtualDisplayCallbackDelegate;->MSG_DISPLAY_RESUMED:I
 Landroid/hardware/display/DisplayManagerGlobal$VirtualDisplayCallbackDelegate;->MSG_DISPLAY_STOPPED:I
-Landroid/hardware/display/DisplayManagerGlobal;
 Landroid/hardware/display/DisplayManagerGlobal;-><init>(Landroid/hardware/display/IDisplayManager;)V
 Landroid/hardware/display/DisplayManagerGlobal;->connectWifiDisplay(Ljava/lang/String;)V
 Landroid/hardware/display/DisplayManagerGlobal;->createVirtualDisplay(Landroid/content/Context;Landroid/media/projection/MediaProjection;Ljava/lang/String;IIILandroid/view/Surface;ILandroid/hardware/display/VirtualDisplay$Callback;Landroid/os/Handler;Ljava/lang/String;)Landroid/hardware/display/VirtualDisplay;
@@ -24229,14 +22695,12 @@
 Landroid/hardware/display/DisplayManagerGlobal;->TAG:Ljava/lang/String;
 Landroid/hardware/display/DisplayManagerGlobal;->unregisterDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;)V
 Landroid/hardware/display/DisplayManagerGlobal;->USE_CACHE:Z
-Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;
 Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;->acquireSuspendBlocker()V
 Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;->onDisplayStateChange(I)V
 Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;->onProximityNegative()V
 Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;->onProximityPositive()V
 Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;->onStateChanged()V
 Landroid/hardware/display/DisplayManagerInternal$DisplayPowerCallbacks;->releaseSuspendBlocker()V
-Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;
 Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;-><init>()V
 Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;-><init>(Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;)V
 Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->blockScreenOn:Z
@@ -24261,9 +22725,7 @@
 Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->screenLowPowerBrightnessFactor:F
 Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->useAutoBrightness:Z
 Landroid/hardware/display/DisplayManagerInternal$DisplayPowerRequest;->useProximitySensor:Z
-Landroid/hardware/display/DisplayManagerInternal$DisplayTransactionListener;
 Landroid/hardware/display/DisplayManagerInternal$DisplayTransactionListener;->onDisplayTransaction()V
-Landroid/hardware/display/DisplayManagerInternal;
 Landroid/hardware/display/DisplayManagerInternal;-><init>()V
 Landroid/hardware/display/DisplayManagerInternal;->getDisplayInfo(I)Landroid/view/DisplayInfo;
 Landroid/hardware/display/DisplayManagerInternal;->getNonOverrideDisplayInfo(ILandroid/view/DisplayInfo;)V
@@ -24280,7 +22742,6 @@
 Landroid/hardware/display/DisplayManagerInternal;->setDisplayOffsets(III)V
 Landroid/hardware/display/DisplayManagerInternal;->setDisplayProperties(IZFIZ)V
 Landroid/hardware/display/DisplayManagerInternal;->unregisterDisplayTransactionListener(Landroid/hardware/display/DisplayManagerInternal$DisplayTransactionListener;)V
-Landroid/hardware/display/DisplayViewport;
 Landroid/hardware/display/DisplayViewport;-><init>()V
 Landroid/hardware/display/DisplayViewport;->copyFrom(Landroid/hardware/display/DisplayViewport;)V
 Landroid/hardware/display/DisplayViewport;->deviceHeight:I
@@ -24292,7 +22753,6 @@
 Landroid/hardware/display/DisplayViewport;->physicalFrame:Landroid/graphics/Rect;
 Landroid/hardware/display/DisplayViewport;->uniqueId:Ljava/lang/String;
 Landroid/hardware/display/DisplayViewport;->valid:Z
-Landroid/hardware/display/IDisplayManager$Stub$Proxy;
 Landroid/hardware/display/IDisplayManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/display/IDisplayManager$Stub$Proxy;->connectWifiDisplay(Ljava/lang/String;)V
 Landroid/hardware/display/IDisplayManager$Stub$Proxy;->createVirtualDisplay(Landroid/hardware/display/IVirtualDisplayCallback;Landroid/media/projection/IMediaProjection;Ljava/lang/String;Ljava/lang/String;IIILandroid/view/Surface;ILjava/lang/String;)I
@@ -24323,7 +22783,6 @@
 Landroid/hardware/display/IDisplayManager$Stub$Proxy;->setVirtualDisplaySurface(Landroid/hardware/display/IVirtualDisplayCallback;Landroid/view/Surface;)V
 Landroid/hardware/display/IDisplayManager$Stub$Proxy;->startWifiDisplayScan()V
 Landroid/hardware/display/IDisplayManager$Stub$Proxy;->stopWifiDisplayScan()V
-Landroid/hardware/display/IDisplayManager$Stub;
 Landroid/hardware/display/IDisplayManager$Stub;-><init>()V
 Landroid/hardware/display/IDisplayManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_connectWifiDisplay:I
@@ -24353,7 +22812,6 @@
 Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_setVirtualDisplaySurface:I
 Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_startWifiDisplayScan:I
 Landroid/hardware/display/IDisplayManager$Stub;->TRANSACTION_stopWifiDisplayScan:I
-Landroid/hardware/display/IDisplayManager;
 Landroid/hardware/display/IDisplayManager;->connectWifiDisplay(Ljava/lang/String;)V
 Landroid/hardware/display/IDisplayManager;->createVirtualDisplay(Landroid/hardware/display/IVirtualDisplayCallback;Landroid/media/projection/IMediaProjection;Ljava/lang/String;Ljava/lang/String;IIILandroid/view/Surface;ILjava/lang/String;)I
 Landroid/hardware/display/IDisplayManager;->disconnectWifiDisplay()V
@@ -24380,33 +22838,27 @@
 Landroid/hardware/display/IDisplayManager;->setVirtualDisplaySurface(Landroid/hardware/display/IVirtualDisplayCallback;Landroid/view/Surface;)V
 Landroid/hardware/display/IDisplayManager;->startWifiDisplayScan()V
 Landroid/hardware/display/IDisplayManager;->stopWifiDisplayScan()V
-Landroid/hardware/display/IDisplayManagerCallback$Stub$Proxy;
 Landroid/hardware/display/IDisplayManagerCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/display/IDisplayManagerCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/display/IDisplayManagerCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/display/IDisplayManagerCallback$Stub$Proxy;->onDisplayEvent(II)V
-Landroid/hardware/display/IDisplayManagerCallback$Stub;
 Landroid/hardware/display/IDisplayManagerCallback$Stub;-><init>()V
 Landroid/hardware/display/IDisplayManagerCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/display/IDisplayManagerCallback;
 Landroid/hardware/display/IDisplayManagerCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/display/IDisplayManagerCallback$Stub;->TRANSACTION_onDisplayEvent:I
-Landroid/hardware/display/IDisplayManagerCallback;
 Landroid/hardware/display/IDisplayManagerCallback;->onDisplayEvent(II)V
-Landroid/hardware/display/IVirtualDisplayCallback$Stub$Proxy;
 Landroid/hardware/display/IVirtualDisplayCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/display/IVirtualDisplayCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/display/IVirtualDisplayCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/display/IVirtualDisplayCallback$Stub$Proxy;->onPaused()V
 Landroid/hardware/display/IVirtualDisplayCallback$Stub$Proxy;->onResumed()V
 Landroid/hardware/display/IVirtualDisplayCallback$Stub$Proxy;->onStopped()V
-Landroid/hardware/display/IVirtualDisplayCallback$Stub;
 Landroid/hardware/display/IVirtualDisplayCallback$Stub;-><init>()V
 Landroid/hardware/display/IVirtualDisplayCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/display/IVirtualDisplayCallback;
 Landroid/hardware/display/IVirtualDisplayCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/display/IVirtualDisplayCallback$Stub;->TRANSACTION_onPaused:I
 Landroid/hardware/display/IVirtualDisplayCallback$Stub;->TRANSACTION_onResumed:I
 Landroid/hardware/display/IVirtualDisplayCallback$Stub;->TRANSACTION_onStopped:I
-Landroid/hardware/display/IVirtualDisplayCallback;
 Landroid/hardware/display/IVirtualDisplayCallback;->onPaused()V
 Landroid/hardware/display/IVirtualDisplayCallback;->onResumed()V
 Landroid/hardware/display/IVirtualDisplayCallback;->onStopped()V
@@ -24415,7 +22867,6 @@
 Landroid/hardware/display/VirtualDisplay;->mGlobal:Landroid/hardware/display/DisplayManagerGlobal;
 Landroid/hardware/display/VirtualDisplay;->mSurface:Landroid/view/Surface;
 Landroid/hardware/display/VirtualDisplay;->mToken:Landroid/hardware/display/IVirtualDisplayCallback;
-Landroid/hardware/display/WifiDisplay;
 Landroid/hardware/display/WifiDisplay;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZZ)V
 Landroid/hardware/display/WifiDisplay;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/hardware/display/WifiDisplay;->EMPTY_ARRAY:[Landroid/hardware/display/WifiDisplay;
@@ -24427,7 +22878,6 @@
 Landroid/hardware/display/WifiDisplay;->mDeviceName:Ljava/lang/String;
 Landroid/hardware/display/WifiDisplay;->mIsAvailable:Z
 Landroid/hardware/display/WifiDisplay;->mIsRemembered:Z
-Landroid/hardware/display/WifiDisplaySessionInfo;
 Landroid/hardware/display/WifiDisplaySessionInfo;-><init>()V
 Landroid/hardware/display/WifiDisplaySessionInfo;-><init>(ZILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/hardware/display/WifiDisplaySessionInfo;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -24441,7 +22891,6 @@
 Landroid/hardware/display/WifiDisplaySessionInfo;->mIP:Ljava/lang/String;
 Landroid/hardware/display/WifiDisplaySessionInfo;->mPassphrase:Ljava/lang/String;
 Landroid/hardware/display/WifiDisplaySessionInfo;->mSessionId:I
-Landroid/hardware/display/WifiDisplayStatus;
 Landroid/hardware/display/WifiDisplayStatus;-><init>()V
 Landroid/hardware/display/WifiDisplayStatus;-><init>(IIILandroid/hardware/display/WifiDisplay;[Landroid/hardware/display/WifiDisplay;Landroid/hardware/display/WifiDisplaySessionInfo;)V
 Landroid/hardware/display/WifiDisplayStatus;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -24454,7 +22903,6 @@
 Landroid/hardware/display/WifiDisplayStatus;->mScanState:I
 Landroid/hardware/display/WifiDisplayStatus;->mSessionInfo:Landroid/hardware/display/WifiDisplaySessionInfo;
 Landroid/hardware/display/WifiDisplayStatus;->SCAN_STATE_SCANNING:I
-Landroid/hardware/fingerprint/Fingerprint;
 Landroid/hardware/fingerprint/Fingerprint;-><init>(Landroid/os/Parcel;)V
 Landroid/hardware/fingerprint/Fingerprint;-><init>(Ljava/lang/CharSequence;IIJ)V
 Landroid/hardware/fingerprint/Fingerprint;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -24471,30 +22919,19 @@
 Landroid/hardware/fingerprint/FingerprintManager$AuthenticationResult;->mCryptoObject:Landroid/hardware/fingerprint/FingerprintManager$CryptoObject;
 Landroid/hardware/fingerprint/FingerprintManager$AuthenticationResult;->mFingerprint:Landroid/hardware/fingerprint/Fingerprint;
 Landroid/hardware/fingerprint/FingerprintManager$AuthenticationResult;->mUserId:I
-Landroid/hardware/fingerprint/FingerprintManager$EnrollmentCallback;
 Landroid/hardware/fingerprint/FingerprintManager$EnrollmentCallback;-><init>()V
 Landroid/hardware/fingerprint/FingerprintManager$EnrollmentCallback;->onEnrollmentError(ILjava/lang/CharSequence;)V
 Landroid/hardware/fingerprint/FingerprintManager$EnrollmentCallback;->onEnrollmentHelp(ILjava/lang/CharSequence;)V
 Landroid/hardware/fingerprint/FingerprintManager$EnrollmentCallback;->onEnrollmentProgress(I)V
-Landroid/hardware/fingerprint/FingerprintManager$EnumerateCallback;
 Landroid/hardware/fingerprint/FingerprintManager$EnumerateCallback;-><init>()V
 Landroid/hardware/fingerprint/FingerprintManager$EnumerateCallback;->onEnumerate(Landroid/hardware/fingerprint/Fingerprint;)V
 Landroid/hardware/fingerprint/FingerprintManager$EnumerateCallback;->onEnumerateError(ILjava/lang/CharSequence;)V
-Landroid/hardware/fingerprint/FingerprintManager$LockoutResetCallback;
 Landroid/hardware/fingerprint/FingerprintManager$LockoutResetCallback;-><init>()V
 Landroid/hardware/fingerprint/FingerprintManager$LockoutResetCallback;->onLockoutReset()V
-Landroid/hardware/fingerprint/FingerprintManager$MyHandler;
-Landroid/hardware/fingerprint/FingerprintManager$MyHandler;-><init>(Landroid/content/Context;)V
-Landroid/hardware/fingerprint/FingerprintManager$MyHandler;-><init>(Landroid/os/Looper;)V
 Landroid/hardware/fingerprint/FingerprintManager$MyHandler;->sendEnrollResult(Landroid/hardware/fingerprint/Fingerprint;I)V
 Landroid/hardware/fingerprint/FingerprintManager$MyHandler;->sendEnumeratedResult(JII)V
 Landroid/hardware/fingerprint/FingerprintManager$MyHandler;->sendRemovedResult(Landroid/hardware/fingerprint/Fingerprint;I)V
-Landroid/hardware/fingerprint/FingerprintManager$OnAuthenticationCancelListener;
-Landroid/hardware/fingerprint/FingerprintManager$OnAuthenticationCancelListener;-><init>(Landroid/hardware/biometrics/CryptoObject;)V
 Landroid/hardware/fingerprint/FingerprintManager$OnAuthenticationCancelListener;->mCrypto:Landroid/hardware/biometrics/CryptoObject;
-Landroid/hardware/fingerprint/FingerprintManager$OnEnrollCancelListener;
-Landroid/hardware/fingerprint/FingerprintManager$OnEnrollCancelListener;-><init>()V
-Landroid/hardware/fingerprint/FingerprintManager$RemovalCallback;
 Landroid/hardware/fingerprint/FingerprintManager$RemovalCallback;-><init>()V
 Landroid/hardware/fingerprint/FingerprintManager$RemovalCallback;->onRemovalError(Landroid/hardware/fingerprint/Fingerprint;ILjava/lang/CharSequence;)V
 Landroid/hardware/fingerprint/FingerprintManager$RemovalCallback;->onRemovalSucceeded(Landroid/hardware/fingerprint/Fingerprint;I)V
@@ -24544,19 +22981,15 @@
 Landroid/hardware/fingerprint/FingerprintManager;->setActiveUser(I)V
 Landroid/hardware/fingerprint/FingerprintManager;->TAG:Ljava/lang/String;
 Landroid/hardware/fingerprint/FingerprintManager;->useHandler(Landroid/os/Handler;)V
-Landroid/hardware/fingerprint/IFingerprintClientActiveCallback$Stub$Proxy;
 Landroid/hardware/fingerprint/IFingerprintClientActiveCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/fingerprint/IFingerprintClientActiveCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/fingerprint/IFingerprintClientActiveCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/fingerprint/IFingerprintClientActiveCallback$Stub$Proxy;->onClientActiveChanged(Z)V
-Landroid/hardware/fingerprint/IFingerprintClientActiveCallback$Stub;
 Landroid/hardware/fingerprint/IFingerprintClientActiveCallback$Stub;-><init>()V
 Landroid/hardware/fingerprint/IFingerprintClientActiveCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/fingerprint/IFingerprintClientActiveCallback;
 Landroid/hardware/fingerprint/IFingerprintClientActiveCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/fingerprint/IFingerprintClientActiveCallback$Stub;->TRANSACTION_onClientActiveChanged:I
-Landroid/hardware/fingerprint/IFingerprintClientActiveCallback;
 Landroid/hardware/fingerprint/IFingerprintClientActiveCallback;->onClientActiveChanged(Z)V
-Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;
 Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->addClientActiveCallback(Landroid/hardware/fingerprint/IFingerprintClientActiveCallback;)V
 Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->addLockoutResetCallback(Landroid/hardware/fingerprint/IFingerprintServiceLockoutResetCallback;)V
 Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->authenticate(Landroid/os/IBinder;JILandroid/hardware/fingerprint/IFingerprintServiceReceiver;ILjava/lang/String;Landroid/os/Bundle;Landroid/hardware/biometrics/IBiometricPromptReceiver;)V
@@ -24578,7 +23011,6 @@
 Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->rename(IILjava/lang/String;)V
 Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->resetTimeout([B)V
 Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;->setActiveUser(I)V
-Landroid/hardware/fingerprint/IFingerprintService$Stub;
 Landroid/hardware/fingerprint/IFingerprintService$Stub;-><init>()V
 Landroid/hardware/fingerprint/IFingerprintService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/fingerprint/IFingerprintService$Stub;->TRANSACTION_addClientActiveCallback:I
@@ -24600,7 +23032,6 @@
 Landroid/hardware/fingerprint/IFingerprintService$Stub;->TRANSACTION_rename:I
 Landroid/hardware/fingerprint/IFingerprintService$Stub;->TRANSACTION_resetTimeout:I
 Landroid/hardware/fingerprint/IFingerprintService$Stub;->TRANSACTION_setActiveUser:I
-Landroid/hardware/fingerprint/IFingerprintService;
 Landroid/hardware/fingerprint/IFingerprintService;->addClientActiveCallback(Landroid/hardware/fingerprint/IFingerprintClientActiveCallback;)V
 Landroid/hardware/fingerprint/IFingerprintService;->addLockoutResetCallback(Landroid/hardware/fingerprint/IFingerprintServiceLockoutResetCallback;)V
 Landroid/hardware/fingerprint/IFingerprintService;->authenticate(Landroid/os/IBinder;JILandroid/hardware/fingerprint/IFingerprintServiceReceiver;ILjava/lang/String;Landroid/os/Bundle;Landroid/hardware/biometrics/IBiometricPromptReceiver;)V
@@ -24620,19 +23051,15 @@
 Landroid/hardware/fingerprint/IFingerprintService;->rename(IILjava/lang/String;)V
 Landroid/hardware/fingerprint/IFingerprintService;->resetTimeout([B)V
 Landroid/hardware/fingerprint/IFingerprintService;->setActiveUser(I)V
-Landroid/hardware/fingerprint/IFingerprintServiceLockoutResetCallback$Stub$Proxy;
 Landroid/hardware/fingerprint/IFingerprintServiceLockoutResetCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/fingerprint/IFingerprintServiceLockoutResetCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/fingerprint/IFingerprintServiceLockoutResetCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/fingerprint/IFingerprintServiceLockoutResetCallback$Stub$Proxy;->onLockoutReset(JLandroid/os/IRemoteCallback;)V
-Landroid/hardware/fingerprint/IFingerprintServiceLockoutResetCallback$Stub;
 Landroid/hardware/fingerprint/IFingerprintServiceLockoutResetCallback$Stub;-><init>()V
 Landroid/hardware/fingerprint/IFingerprintServiceLockoutResetCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/fingerprint/IFingerprintServiceLockoutResetCallback;
 Landroid/hardware/fingerprint/IFingerprintServiceLockoutResetCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/fingerprint/IFingerprintServiceLockoutResetCallback$Stub;->TRANSACTION_onLockoutReset:I
-Landroid/hardware/fingerprint/IFingerprintServiceLockoutResetCallback;
 Landroid/hardware/fingerprint/IFingerprintServiceLockoutResetCallback;->onLockoutReset(JLandroid/os/IRemoteCallback;)V
-Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub$Proxy;
 Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -24643,7 +23070,6 @@
 Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub$Proxy;->onEnumerated(JIII)V
 Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub$Proxy;->onError(JII)V
 Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub$Proxy;->onRemoved(JIII)V
-Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub;
 Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub;-><init>()V
 Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/fingerprint/IFingerprintServiceReceiver;
 Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -24654,7 +23080,6 @@
 Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub;->TRANSACTION_onEnumerated:I
 Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub;->TRANSACTION_onError:I
 Landroid/hardware/fingerprint/IFingerprintServiceReceiver$Stub;->TRANSACTION_onRemoved:I
-Landroid/hardware/fingerprint/IFingerprintServiceReceiver;
 Landroid/hardware/fingerprint/IFingerprintServiceReceiver;->onAcquired(JII)V
 Landroid/hardware/fingerprint/IFingerprintServiceReceiver;->onAuthenticationFailed(J)V
 Landroid/hardware/fingerprint/IFingerprintServiceReceiver;->onAuthenticationSucceeded(JLandroid/hardware/fingerprint/Fingerprint;I)V
@@ -24662,7 +23087,6 @@
 Landroid/hardware/fingerprint/IFingerprintServiceReceiver;->onEnumerated(JIII)V
 Landroid/hardware/fingerprint/IFingerprintServiceReceiver;->onError(JII)V
 Landroid/hardware/fingerprint/IFingerprintServiceReceiver;->onRemoved(JIII)V
-Landroid/hardware/GeomagneticField$LegendreTable;
 Landroid/hardware/GeomagneticField$LegendreTable;-><init>(IF)V
 Landroid/hardware/GeomagneticField$LegendreTable;->mP:[[F
 Landroid/hardware/GeomagneticField$LegendreTable;->mPDeriv:[[F
@@ -24683,8 +23107,6 @@
 Landroid/hardware/GeomagneticField;->mY:F
 Landroid/hardware/GeomagneticField;->mZ:F
 Landroid/hardware/GeomagneticField;->SCHMIDT_QUASI_NORM_FACTORS:[[F
-Landroid/hardware/HardwareBuffer$Format;
-Landroid/hardware/HardwareBuffer$Usage;
 Landroid/hardware/HardwareBuffer;->isSupportedFormat(I)Z
 Landroid/hardware/HardwareBuffer;->mCleaner:Ljava/lang/Runnable;
 Landroid/hardware/HardwareBuffer;->mCloseGuard:Ldalvik/system/CloseGuard;
@@ -24767,30 +23189,25 @@
 Landroid/hardware/hdmi/HdmiRecordSources$AnalogueServiceSource;->mBroadcastSystem:I
 Landroid/hardware/hdmi/HdmiRecordSources$AnalogueServiceSource;->mBroadcastType:I
 Landroid/hardware/hdmi/HdmiRecordSources$AnalogueServiceSource;->mFrequency:I
-Landroid/hardware/hdmi/HdmiRecordSources$AribData;
 Landroid/hardware/hdmi/HdmiRecordSources$AribData;-><init>(III)V
 Landroid/hardware/hdmi/HdmiRecordSources$AribData;->mOriginalNetworkId:I
 Landroid/hardware/hdmi/HdmiRecordSources$AribData;->mServiceId:I
 Landroid/hardware/hdmi/HdmiRecordSources$AribData;->mTransportStreamId:I
 Landroid/hardware/hdmi/HdmiRecordSources$AribData;->toByteArray([BI)I
-Landroid/hardware/hdmi/HdmiRecordSources$AtscData;
 Landroid/hardware/hdmi/HdmiRecordSources$AtscData;-><init>(II)V
 Landroid/hardware/hdmi/HdmiRecordSources$AtscData;->mProgramNumber:I
 Landroid/hardware/hdmi/HdmiRecordSources$AtscData;->mTransportStreamId:I
 Landroid/hardware/hdmi/HdmiRecordSources$AtscData;->toByteArray([BI)I
-Landroid/hardware/hdmi/HdmiRecordSources$ChannelIdentifier;
 Landroid/hardware/hdmi/HdmiRecordSources$ChannelIdentifier;-><init>(III)V
 Landroid/hardware/hdmi/HdmiRecordSources$ChannelIdentifier;->mChannelNumberFormat:I
 Landroid/hardware/hdmi/HdmiRecordSources$ChannelIdentifier;->mMajorChannelNumber:I
 Landroid/hardware/hdmi/HdmiRecordSources$ChannelIdentifier;->mMinorChannelNumber:I
 Landroid/hardware/hdmi/HdmiRecordSources$ChannelIdentifier;->toByteArray([BI)I
-Landroid/hardware/hdmi/HdmiRecordSources$DigitalChannelData;
 Landroid/hardware/hdmi/HdmiRecordSources$DigitalChannelData;-><init>(Landroid/hardware/hdmi/HdmiRecordSources$ChannelIdentifier;)V
 Landroid/hardware/hdmi/HdmiRecordSources$DigitalChannelData;->mChannelIdentifier:Landroid/hardware/hdmi/HdmiRecordSources$ChannelIdentifier;
 Landroid/hardware/hdmi/HdmiRecordSources$DigitalChannelData;->ofOneNumber(I)Landroid/hardware/hdmi/HdmiRecordSources$DigitalChannelData;
 Landroid/hardware/hdmi/HdmiRecordSources$DigitalChannelData;->ofTwoNumbers(II)Landroid/hardware/hdmi/HdmiRecordSources$DigitalChannelData;
 Landroid/hardware/hdmi/HdmiRecordSources$DigitalChannelData;->toByteArray([BI)I
-Landroid/hardware/hdmi/HdmiRecordSources$DigitalServiceIdentification;
 Landroid/hardware/hdmi/HdmiRecordSources$DigitalServiceIdentification;->toByteArray([BI)I
 Landroid/hardware/hdmi/HdmiRecordSources$DigitalServiceSource;-><init>(IILandroid/hardware/hdmi/HdmiRecordSources$DigitalServiceIdentification;)V
 Landroid/hardware/hdmi/HdmiRecordSources$DigitalServiceSource;->DIGITAL_SERVICE_IDENTIFIED_BY_CHANNEL:I
@@ -24800,7 +23217,6 @@
 Landroid/hardware/hdmi/HdmiRecordSources$DigitalServiceSource;->mBroadcastSystem:I
 Landroid/hardware/hdmi/HdmiRecordSources$DigitalServiceSource;->mIdentification:Landroid/hardware/hdmi/HdmiRecordSources$DigitalServiceIdentification;
 Landroid/hardware/hdmi/HdmiRecordSources$DigitalServiceSource;->mIdentificationMethod:I
-Landroid/hardware/hdmi/HdmiRecordSources$DvbData;
 Landroid/hardware/hdmi/HdmiRecordSources$DvbData;-><init>(III)V
 Landroid/hardware/hdmi/HdmiRecordSources$DvbData;->mOriginalNetworkId:I
 Landroid/hardware/hdmi/HdmiRecordSources$DvbData;->mServiceId:I
@@ -24868,7 +23284,6 @@
 Landroid/hardware/hdmi/HdmiRecordSources;->TAG:Ljava/lang/String;
 Landroid/hardware/hdmi/HdmiRecordSources;->threeFieldsToSixBytes(III[BI)I
 Landroid/hardware/hdmi/HdmiTimerRecordSources$Duration;-><init>(II)V
-Landroid/hardware/hdmi/HdmiTimerRecordSources$ExternalSourceDecorator;
 Landroid/hardware/hdmi/HdmiTimerRecordSources$ExternalSourceDecorator;-><init>(Landroid/hardware/hdmi/HdmiRecordSources$RecordSource;I)V
 Landroid/hardware/hdmi/HdmiTimerRecordSources$ExternalSourceDecorator;->extraParamToByteArray([BI)I
 Landroid/hardware/hdmi/HdmiTimerRecordSources$ExternalSourceDecorator;->mExternalSourceSpecifier:I
@@ -24893,7 +23308,6 @@
 Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerRecordSource;->mRecordSource:Landroid/hardware/hdmi/HdmiRecordSources$RecordSource;
 Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerRecordSource;->mTimerInfo:Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerInfo;
 Landroid/hardware/hdmi/HdmiTimerRecordSources$TimerRecordSource;->toByteArray([BI)I
-Landroid/hardware/hdmi/HdmiTimerRecordSources$TimeUnit;
 Landroid/hardware/hdmi/HdmiTimerRecordSources$TimeUnit;-><init>(II)V
 Landroid/hardware/hdmi/HdmiTimerRecordSources$TimeUnit;->mHour:I
 Landroid/hardware/hdmi/HdmiTimerRecordSources$TimeUnit;->mMinute:I
@@ -24915,19 +23329,15 @@
 Landroid/hardware/hdmi/HdmiTvClient;->getListenerWrapper(Landroid/hardware/hdmi/HdmiTvClient$HdmiMhlVendorCommandListener;)Landroid/hardware/hdmi/IHdmiMhlVendorCommandListener;
 Landroid/hardware/hdmi/HdmiTvClient;->getListenerWrapper(Landroid/hardware/hdmi/HdmiTvClient$InputChangeListener;)Landroid/hardware/hdmi/IHdmiInputChangeListener;
 Landroid/hardware/hdmi/HdmiTvClient;->TAG:Ljava/lang/String;
-Landroid/hardware/hdmi/IHdmiControlCallback$Stub$Proxy;
 Landroid/hardware/hdmi/IHdmiControlCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/hdmi/IHdmiControlCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/hdmi/IHdmiControlCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/hdmi/IHdmiControlCallback$Stub$Proxy;->onComplete(I)V
-Landroid/hardware/hdmi/IHdmiControlCallback$Stub;
 Landroid/hardware/hdmi/IHdmiControlCallback$Stub;-><init>()V
 Landroid/hardware/hdmi/IHdmiControlCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/hdmi/IHdmiControlCallback;
 Landroid/hardware/hdmi/IHdmiControlCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/hdmi/IHdmiControlCallback$Stub;->TRANSACTION_onComplete:I
-Landroid/hardware/hdmi/IHdmiControlCallback;
 Landroid/hardware/hdmi/IHdmiControlCallback;->onComplete(I)V
-Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;
 Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->addDeviceEventListener(Landroid/hardware/hdmi/IHdmiDeviceEventListener;)V
 Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->addHdmiMhlVendorCommandListener(Landroid/hardware/hdmi/IHdmiMhlVendorCommandListener;)V
@@ -24965,7 +23375,6 @@
 Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->startOneTouchRecord(I[B)V
 Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->startTimerRecording(II[B)V
 Landroid/hardware/hdmi/IHdmiControlService$Stub$Proxy;->stopOneTouchRecord(I)V
-Landroid/hardware/hdmi/IHdmiControlService$Stub;
 Landroid/hardware/hdmi/IHdmiControlService$Stub;-><init>()V
 Landroid/hardware/hdmi/IHdmiControlService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/hdmi/IHdmiControlService;
 Landroid/hardware/hdmi/IHdmiControlService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -25003,7 +23412,6 @@
 Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_startOneTouchRecord:I
 Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_startTimerRecording:I
 Landroid/hardware/hdmi/IHdmiControlService$Stub;->TRANSACTION_stopOneTouchRecord:I
-Landroid/hardware/hdmi/IHdmiControlService;
 Landroid/hardware/hdmi/IHdmiControlService;->addDeviceEventListener(Landroid/hardware/hdmi/IHdmiDeviceEventListener;)V
 Landroid/hardware/hdmi/IHdmiControlService;->addHdmiMhlVendorCommandListener(Landroid/hardware/hdmi/IHdmiMhlVendorCommandListener;)V
 Landroid/hardware/hdmi/IHdmiControlService;->addHotplugEventListener(Landroid/hardware/hdmi/IHdmiHotplugEventListener;)V
@@ -25038,55 +23446,42 @@
 Landroid/hardware/hdmi/IHdmiControlService;->startOneTouchRecord(I[B)V
 Landroid/hardware/hdmi/IHdmiControlService;->startTimerRecording(II[B)V
 Landroid/hardware/hdmi/IHdmiControlService;->stopOneTouchRecord(I)V
-Landroid/hardware/hdmi/IHdmiDeviceEventListener$Stub$Proxy;
 Landroid/hardware/hdmi/IHdmiDeviceEventListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/hdmi/IHdmiDeviceEventListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/hdmi/IHdmiDeviceEventListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/hdmi/IHdmiDeviceEventListener$Stub$Proxy;->onStatusChanged(Landroid/hardware/hdmi/HdmiDeviceInfo;I)V
-Landroid/hardware/hdmi/IHdmiDeviceEventListener$Stub;
 Landroid/hardware/hdmi/IHdmiDeviceEventListener$Stub;-><init>()V
 Landroid/hardware/hdmi/IHdmiDeviceEventListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/hdmi/IHdmiDeviceEventListener;
 Landroid/hardware/hdmi/IHdmiDeviceEventListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/hdmi/IHdmiDeviceEventListener$Stub;->TRANSACTION_onStatusChanged:I
-Landroid/hardware/hdmi/IHdmiDeviceEventListener;
 Landroid/hardware/hdmi/IHdmiDeviceEventListener;->onStatusChanged(Landroid/hardware/hdmi/HdmiDeviceInfo;I)V
-Landroid/hardware/hdmi/IHdmiHotplugEventListener$Stub$Proxy;
 Landroid/hardware/hdmi/IHdmiHotplugEventListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/hdmi/IHdmiHotplugEventListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/hdmi/IHdmiHotplugEventListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/hdmi/IHdmiHotplugEventListener$Stub$Proxy;->onReceived(Landroid/hardware/hdmi/HdmiHotplugEvent;)V
-Landroid/hardware/hdmi/IHdmiHotplugEventListener$Stub;
 Landroid/hardware/hdmi/IHdmiHotplugEventListener$Stub;-><init>()V
 Landroid/hardware/hdmi/IHdmiHotplugEventListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/hdmi/IHdmiHotplugEventListener;
 Landroid/hardware/hdmi/IHdmiHotplugEventListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/hdmi/IHdmiHotplugEventListener$Stub;->TRANSACTION_onReceived:I
-Landroid/hardware/hdmi/IHdmiHotplugEventListener;
 Landroid/hardware/hdmi/IHdmiHotplugEventListener;->onReceived(Landroid/hardware/hdmi/HdmiHotplugEvent;)V
-Landroid/hardware/hdmi/IHdmiInputChangeListener$Stub$Proxy;
 Landroid/hardware/hdmi/IHdmiInputChangeListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/hdmi/IHdmiInputChangeListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/hdmi/IHdmiInputChangeListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/hdmi/IHdmiInputChangeListener$Stub$Proxy;->onChanged(Landroid/hardware/hdmi/HdmiDeviceInfo;)V
-Landroid/hardware/hdmi/IHdmiInputChangeListener$Stub;
 Landroid/hardware/hdmi/IHdmiInputChangeListener$Stub;-><init>()V
 Landroid/hardware/hdmi/IHdmiInputChangeListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/hdmi/IHdmiInputChangeListener;
 Landroid/hardware/hdmi/IHdmiInputChangeListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/hdmi/IHdmiInputChangeListener$Stub;->TRANSACTION_onChanged:I
-Landroid/hardware/hdmi/IHdmiInputChangeListener;
 Landroid/hardware/hdmi/IHdmiInputChangeListener;->onChanged(Landroid/hardware/hdmi/HdmiDeviceInfo;)V
-Landroid/hardware/hdmi/IHdmiMhlVendorCommandListener$Stub$Proxy;
 Landroid/hardware/hdmi/IHdmiMhlVendorCommandListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/hdmi/IHdmiMhlVendorCommandListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/hdmi/IHdmiMhlVendorCommandListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/hdmi/IHdmiMhlVendorCommandListener$Stub$Proxy;->onReceived(III[B)V
-Landroid/hardware/hdmi/IHdmiMhlVendorCommandListener$Stub;
 Landroid/hardware/hdmi/IHdmiMhlVendorCommandListener$Stub;-><init>()V
 Landroid/hardware/hdmi/IHdmiMhlVendorCommandListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/hdmi/IHdmiMhlVendorCommandListener;
 Landroid/hardware/hdmi/IHdmiMhlVendorCommandListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/hdmi/IHdmiMhlVendorCommandListener$Stub;->TRANSACTION_onReceived:I
-Landroid/hardware/hdmi/IHdmiMhlVendorCommandListener;
 Landroid/hardware/hdmi/IHdmiMhlVendorCommandListener;->onReceived(III[B)V
-Landroid/hardware/hdmi/IHdmiRecordListener$Stub$Proxy;
 Landroid/hardware/hdmi/IHdmiRecordListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/hdmi/IHdmiRecordListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/hdmi/IHdmiRecordListener$Stub$Proxy;->getOneTouchRecordSource(I)[B
@@ -25094,7 +23489,6 @@
 Landroid/hardware/hdmi/IHdmiRecordListener$Stub$Proxy;->onClearTimerRecordingResult(II)V
 Landroid/hardware/hdmi/IHdmiRecordListener$Stub$Proxy;->onOneTouchRecordResult(II)V
 Landroid/hardware/hdmi/IHdmiRecordListener$Stub$Proxy;->onTimerRecordingResult(II)V
-Landroid/hardware/hdmi/IHdmiRecordListener$Stub;
 Landroid/hardware/hdmi/IHdmiRecordListener$Stub;-><init>()V
 Landroid/hardware/hdmi/IHdmiRecordListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/hdmi/IHdmiRecordListener;
 Landroid/hardware/hdmi/IHdmiRecordListener$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -25102,60 +23496,46 @@
 Landroid/hardware/hdmi/IHdmiRecordListener$Stub;->TRANSACTION_onClearTimerRecordingResult:I
 Landroid/hardware/hdmi/IHdmiRecordListener$Stub;->TRANSACTION_onOneTouchRecordResult:I
 Landroid/hardware/hdmi/IHdmiRecordListener$Stub;->TRANSACTION_onTimerRecordingResult:I
-Landroid/hardware/hdmi/IHdmiRecordListener;
 Landroid/hardware/hdmi/IHdmiRecordListener;->getOneTouchRecordSource(I)[B
 Landroid/hardware/hdmi/IHdmiRecordListener;->onClearTimerRecordingResult(II)V
 Landroid/hardware/hdmi/IHdmiRecordListener;->onOneTouchRecordResult(II)V
 Landroid/hardware/hdmi/IHdmiRecordListener;->onTimerRecordingResult(II)V
-Landroid/hardware/hdmi/IHdmiSystemAudioModeChangeListener$Stub$Proxy;
 Landroid/hardware/hdmi/IHdmiSystemAudioModeChangeListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/hdmi/IHdmiSystemAudioModeChangeListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/hdmi/IHdmiSystemAudioModeChangeListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/hdmi/IHdmiSystemAudioModeChangeListener$Stub$Proxy;->onStatusChanged(Z)V
-Landroid/hardware/hdmi/IHdmiSystemAudioModeChangeListener$Stub;
 Landroid/hardware/hdmi/IHdmiSystemAudioModeChangeListener$Stub;-><init>()V
 Landroid/hardware/hdmi/IHdmiSystemAudioModeChangeListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/hdmi/IHdmiSystemAudioModeChangeListener;
 Landroid/hardware/hdmi/IHdmiSystemAudioModeChangeListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/hdmi/IHdmiSystemAudioModeChangeListener$Stub;->TRANSACTION_onStatusChanged:I
-Landroid/hardware/hdmi/IHdmiSystemAudioModeChangeListener;
 Landroid/hardware/hdmi/IHdmiSystemAudioModeChangeListener;->onStatusChanged(Z)V
-Landroid/hardware/hdmi/IHdmiVendorCommandListener$Stub$Proxy;
 Landroid/hardware/hdmi/IHdmiVendorCommandListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/hdmi/IHdmiVendorCommandListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/hdmi/IHdmiVendorCommandListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/hdmi/IHdmiVendorCommandListener$Stub$Proxy;->onControlStateChanged(ZI)V
 Landroid/hardware/hdmi/IHdmiVendorCommandListener$Stub$Proxy;->onReceived(II[BZ)V
-Landroid/hardware/hdmi/IHdmiVendorCommandListener$Stub;
 Landroid/hardware/hdmi/IHdmiVendorCommandListener$Stub;-><init>()V
 Landroid/hardware/hdmi/IHdmiVendorCommandListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/hdmi/IHdmiVendorCommandListener;
 Landroid/hardware/hdmi/IHdmiVendorCommandListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/hdmi/IHdmiVendorCommandListener$Stub;->TRANSACTION_onControlStateChanged:I
 Landroid/hardware/hdmi/IHdmiVendorCommandListener$Stub;->TRANSACTION_onReceived:I
-Landroid/hardware/hdmi/IHdmiVendorCommandListener;
 Landroid/hardware/hdmi/IHdmiVendorCommandListener;->onControlStateChanged(ZI)V
 Landroid/hardware/hdmi/IHdmiVendorCommandListener;->onReceived(II[BZ)V
-Landroid/hardware/ICamera$Stub$Proxy;
 Landroid/hardware/ICamera$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/ICamera$Stub$Proxy;->disconnect()V
 Landroid/hardware/ICamera$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/ICamera$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/hardware/ICamera$Stub;
 Landroid/hardware/ICamera$Stub;-><init>()V
 Landroid/hardware/ICamera$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/ICamera;
 Landroid/hardware/ICamera$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/ICamera$Stub;->TRANSACTION_disconnect:I
-Landroid/hardware/ICamera;
 Landroid/hardware/ICamera;->disconnect()V
-Landroid/hardware/ICameraClient$Stub$Proxy;
 Landroid/hardware/ICameraClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/ICameraClient$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/ICameraClient$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/hardware/ICameraClient$Stub;
 Landroid/hardware/ICameraClient$Stub;-><init>()V
 Landroid/hardware/ICameraClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/ICameraClient;
 Landroid/hardware/ICameraClient$Stub;->DESCRIPTOR:Ljava/lang/String;
-Landroid/hardware/ICameraClient;
-Landroid/hardware/ICameraService$Stub$Proxy;
 Landroid/hardware/ICameraService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/ICameraService$Stub$Proxy;->addListener(Landroid/hardware/ICameraServiceListener;)[Landroid/hardware/CameraStatus;
 Landroid/hardware/ICameraService$Stub$Proxy;->connect(Landroid/hardware/ICameraClient;ILjava/lang/String;II)Landroid/hardware/ICamera;
@@ -25173,7 +23553,6 @@
 Landroid/hardware/ICameraService$Stub$Proxy;->removeListener(Landroid/hardware/ICameraServiceListener;)V
 Landroid/hardware/ICameraService$Stub$Proxy;->setTorchMode(Ljava/lang/String;ZLandroid/os/IBinder;)V
 Landroid/hardware/ICameraService$Stub$Proxy;->supportsCameraApi(Ljava/lang/String;I)Z
-Landroid/hardware/ICameraService$Stub;
 Landroid/hardware/ICameraService$Stub;-><init>()V
 Landroid/hardware/ICameraService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/ICameraService$Stub;->TRANSACTION_addListener:I
@@ -25190,7 +23569,6 @@
 Landroid/hardware/ICameraService$Stub;->TRANSACTION_removeListener:I
 Landroid/hardware/ICameraService$Stub;->TRANSACTION_setTorchMode:I
 Landroid/hardware/ICameraService$Stub;->TRANSACTION_supportsCameraApi:I
-Landroid/hardware/ICameraService;
 Landroid/hardware/ICameraService;->addListener(Landroid/hardware/ICameraServiceListener;)[Landroid/hardware/CameraStatus;
 Landroid/hardware/ICameraService;->API_VERSION_1:I
 Landroid/hardware/ICameraService;->API_VERSION_2:I
@@ -25224,19 +23602,16 @@
 Landroid/hardware/ICameraService;->supportsCameraApi(Ljava/lang/String;I)Z
 Landroid/hardware/ICameraService;->USE_CALLING_PID:I
 Landroid/hardware/ICameraService;->USE_CALLING_UID:I
-Landroid/hardware/ICameraServiceListener$Stub$Proxy;
 Landroid/hardware/ICameraServiceListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/ICameraServiceListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/ICameraServiceListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/ICameraServiceListener$Stub$Proxy;->onStatusChanged(ILjava/lang/String;)V
 Landroid/hardware/ICameraServiceListener$Stub$Proxy;->onTorchStatusChanged(ILjava/lang/String;)V
-Landroid/hardware/ICameraServiceListener$Stub;
 Landroid/hardware/ICameraServiceListener$Stub;-><init>()V
 Landroid/hardware/ICameraServiceListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/ICameraServiceListener;
 Landroid/hardware/ICameraServiceListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/ICameraServiceListener$Stub;->TRANSACTION_onStatusChanged:I
 Landroid/hardware/ICameraServiceListener$Stub;->TRANSACTION_onTorchStatusChanged:I
-Landroid/hardware/ICameraServiceListener;
 Landroid/hardware/ICameraServiceListener;->onStatusChanged(ILjava/lang/String;)V
 Landroid/hardware/ICameraServiceListener;->onTorchStatusChanged(ILjava/lang/String;)V
 Landroid/hardware/ICameraServiceListener;->STATUS_ENUMERATING:I
@@ -25248,19 +23623,16 @@
 Landroid/hardware/ICameraServiceListener;->TORCH_STATUS_AVAILABLE_ON:I
 Landroid/hardware/ICameraServiceListener;->TORCH_STATUS_NOT_AVAILABLE:I
 Landroid/hardware/ICameraServiceListener;->TORCH_STATUS_UNKNOWN:I
-Landroid/hardware/ICameraServiceProxy$Stub$Proxy;
 Landroid/hardware/ICameraServiceProxy$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/ICameraServiceProxy$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/ICameraServiceProxy$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/ICameraServiceProxy$Stub$Proxy;->notifyCameraState(Ljava/lang/String;IILjava/lang/String;I)V
 Landroid/hardware/ICameraServiceProxy$Stub$Proxy;->pingForUserUpdate()V
-Landroid/hardware/ICameraServiceProxy$Stub;
 Landroid/hardware/ICameraServiceProxy$Stub;-><init>()V
 Landroid/hardware/ICameraServiceProxy$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/ICameraServiceProxy;
 Landroid/hardware/ICameraServiceProxy$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/ICameraServiceProxy$Stub;->TRANSACTION_notifyCameraState:I
 Landroid/hardware/ICameraServiceProxy$Stub;->TRANSACTION_pingForUserUpdate:I
-Landroid/hardware/ICameraServiceProxy;
 Landroid/hardware/ICameraServiceProxy;->CAMERA_API_LEVEL_1:I
 Landroid/hardware/ICameraServiceProxy;->CAMERA_API_LEVEL_2:I
 Landroid/hardware/ICameraServiceProxy;->CAMERA_FACING_BACK:I
@@ -25272,37 +23644,30 @@
 Landroid/hardware/ICameraServiceProxy;->CAMERA_STATE_OPEN:I
 Landroid/hardware/ICameraServiceProxy;->notifyCameraState(Ljava/lang/String;IILjava/lang/String;I)V
 Landroid/hardware/ICameraServiceProxy;->pingForUserUpdate()V
-Landroid/hardware/IConsumerIrService$Stub$Proxy;
 Landroid/hardware/IConsumerIrService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/IConsumerIrService$Stub$Proxy;->getCarrierFrequencies()[I
 Landroid/hardware/IConsumerIrService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/IConsumerIrService$Stub$Proxy;->hasIrEmitter()Z
 Landroid/hardware/IConsumerIrService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/IConsumerIrService$Stub$Proxy;->transmit(Ljava/lang/String;I[I)V
-Landroid/hardware/IConsumerIrService$Stub;
 Landroid/hardware/IConsumerIrService$Stub;-><init>()V
 Landroid/hardware/IConsumerIrService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/IConsumerIrService;
 Landroid/hardware/IConsumerIrService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/IConsumerIrService$Stub;->TRANSACTION_getCarrierFrequencies:I
 Landroid/hardware/IConsumerIrService$Stub;->TRANSACTION_hasIrEmitter:I
 Landroid/hardware/IConsumerIrService$Stub;->TRANSACTION_transmit:I
-Landroid/hardware/IConsumerIrService;
 Landroid/hardware/IConsumerIrService;->getCarrierFrequencies()[I
 Landroid/hardware/IConsumerIrService;->hasIrEmitter()Z
 Landroid/hardware/IConsumerIrService;->transmit(Ljava/lang/String;I[I)V
-Landroid/hardware/input/IInputDevicesChangedListener$Stub$Proxy;
 Landroid/hardware/input/IInputDevicesChangedListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/input/IInputDevicesChangedListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/input/IInputDevicesChangedListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/input/IInputDevicesChangedListener$Stub$Proxy;->onInputDevicesChanged([I)V
-Landroid/hardware/input/IInputDevicesChangedListener$Stub;
 Landroid/hardware/input/IInputDevicesChangedListener$Stub;-><init>()V
 Landroid/hardware/input/IInputDevicesChangedListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/input/IInputDevicesChangedListener;
 Landroid/hardware/input/IInputDevicesChangedListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/input/IInputDevicesChangedListener$Stub;->TRANSACTION_onInputDevicesChanged:I
-Landroid/hardware/input/IInputDevicesChangedListener;
 Landroid/hardware/input/IInputDevicesChangedListener;->onInputDevicesChanged([I)V
-Landroid/hardware/input/IInputManager$Stub$Proxy;
 Landroid/hardware/input/IInputManager$Stub$Proxy;->addKeyboardLayoutForInputDevice(Landroid/hardware/input/InputDeviceIdentifier;Ljava/lang/String;)V
 Landroid/hardware/input/IInputManager$Stub$Proxy;->cancelVibrate(ILandroid/os/IBinder;)V
 Landroid/hardware/input/IInputManager$Stub$Proxy;->createInputForwarder(I)Landroid/app/IInputForwarder;
@@ -25332,7 +23697,6 @@
 Landroid/hardware/input/IInputManager$Stub$Proxy;->setTouchCalibrationForInputDevice(Ljava/lang/String;ILandroid/hardware/input/TouchCalibration;)V
 Landroid/hardware/input/IInputManager$Stub$Proxy;->tryPointerSpeed(I)V
 Landroid/hardware/input/IInputManager$Stub$Proxy;->vibrate(I[JILandroid/os/IBinder;)V
-Landroid/hardware/input/IInputManager$Stub;
 Landroid/hardware/input/IInputManager$Stub;-><init>()V
 Landroid/hardware/input/IInputManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_addKeyboardLayoutForInputDevice:I
@@ -25361,7 +23725,6 @@
 Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_setTouchCalibrationForInputDevice:I
 Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_tryPointerSpeed:I
 Landroid/hardware/input/IInputManager$Stub;->TRANSACTION_vibrate:I
-Landroid/hardware/input/IInputManager;
 Landroid/hardware/input/IInputManager;->addKeyboardLayoutForInputDevice(Landroid/hardware/input/InputDeviceIdentifier;Ljava/lang/String;)V
 Landroid/hardware/input/IInputManager;->cancelVibrate(ILandroid/os/IBinder;)V
 Landroid/hardware/input/IInputManager;->createInputForwarder(I)Landroid/app/IInputForwarder;
@@ -25388,7 +23751,6 @@
 Landroid/hardware/input/IInputManager;->setTouchCalibrationForInputDevice(Ljava/lang/String;ILandroid/hardware/input/TouchCalibration;)V
 Landroid/hardware/input/IInputManager;->tryPointerSpeed(I)V
 Landroid/hardware/input/IInputManager;->vibrate(I[JILandroid/os/IBinder;)V
-Landroid/hardware/input/InputDeviceIdentifier;
 Landroid/hardware/input/InputDeviceIdentifier;-><init>(Landroid/os/Parcel;)V
 Landroid/hardware/input/InputDeviceIdentifier;-><init>(Ljava/lang/String;II)V
 Landroid/hardware/input/InputDeviceIdentifier;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -25398,27 +23760,17 @@
 Landroid/hardware/input/InputDeviceIdentifier;->mDescriptor:Ljava/lang/String;
 Landroid/hardware/input/InputDeviceIdentifier;->mProductId:I
 Landroid/hardware/input/InputDeviceIdentifier;->mVendorId:I
-Landroid/hardware/input/InputManager$InputDeviceListenerDelegate;
 Landroid/hardware/input/InputManager$InputDeviceListenerDelegate;-><init>(Landroid/hardware/input/InputManager$InputDeviceListener;Landroid/os/Handler;)V
 Landroid/hardware/input/InputManager$InputDeviceListenerDelegate;->mListener:Landroid/hardware/input/InputManager$InputDeviceListener;
-Landroid/hardware/input/InputManager$InputDevicesChangedListener;
-Landroid/hardware/input/InputManager$InputDevicesChangedListener;-><init>()V
 Landroid/hardware/input/InputManager$InputDevicesChangedListener;->onInputDevicesChanged([I)V
-Landroid/hardware/input/InputManager$InputDeviceVibrator;
-Landroid/hardware/input/InputManager$InputDeviceVibrator;-><init>(I)V
 Landroid/hardware/input/InputManager$InputDeviceVibrator;->mDeviceId:I
 Landroid/hardware/input/InputManager$InputDeviceVibrator;->mToken:Landroid/os/Binder;
 Landroid/hardware/input/InputManager$InputDeviceVibrator;->vibrate(ILjava/lang/String;Landroid/os/VibrationEffect;Landroid/media/AudioAttributes;)V
-Landroid/hardware/input/InputManager$OnTabletModeChangedListener;
 Landroid/hardware/input/InputManager$OnTabletModeChangedListener;->onTabletModeChanged(JZ)V
-Landroid/hardware/input/InputManager$OnTabletModeChangedListenerDelegate;
 Landroid/hardware/input/InputManager$OnTabletModeChangedListenerDelegate;-><init>(Landroid/hardware/input/InputManager$OnTabletModeChangedListener;Landroid/os/Handler;)V
 Landroid/hardware/input/InputManager$OnTabletModeChangedListenerDelegate;->mListener:Landroid/hardware/input/InputManager$OnTabletModeChangedListener;
 Landroid/hardware/input/InputManager$OnTabletModeChangedListenerDelegate;->MSG_TABLET_MODE_CHANGED:I
 Landroid/hardware/input/InputManager$OnTabletModeChangedListenerDelegate;->sendTabletModeChanged(JZ)V
-Landroid/hardware/input/InputManager$SwitchState;
-Landroid/hardware/input/InputManager$TabletModeChangedListener;
-Landroid/hardware/input/InputManager$TabletModeChangedListener;-><init>()V
 Landroid/hardware/input/InputManager$TabletModeChangedListener;->onTabletModeChanged(JZ)V
 Landroid/hardware/input/InputManager;-><init>(Landroid/hardware/input/IInputManager;)V
 Landroid/hardware/input/InputManager;->addKeyboardLayoutForInputDevice(Landroid/hardware/input/InputDeviceIdentifier;Ljava/lang/String;)V
@@ -25475,26 +23827,21 @@
 Landroid/hardware/input/InputManager;->TAG:Ljava/lang/String;
 Landroid/hardware/input/InputManager;->tryPointerSpeed(I)V
 Landroid/hardware/input/InputManager;->unregisterOnTabletModeChangedListener(Landroid/hardware/input/InputManager$OnTabletModeChangedListener;)V
-Landroid/hardware/input/InputManagerInternal;
 Landroid/hardware/input/InputManagerInternal;-><init>()V
 Landroid/hardware/input/InputManagerInternal;->injectInputEvent(Landroid/view/InputEvent;II)Z
 Landroid/hardware/input/InputManagerInternal;->setDisplayViewports(Landroid/hardware/display/DisplayViewport;Landroid/hardware/display/DisplayViewport;Ljava/util/List;)V
 Landroid/hardware/input/InputManagerInternal;->setInteractive(Z)V
 Landroid/hardware/input/InputManagerInternal;->setPulseGestureEnabled(Z)V
 Landroid/hardware/input/InputManagerInternal;->toggleCapsLock(I)V
-Landroid/hardware/input/ITabletModeChangedListener$Stub$Proxy;
 Landroid/hardware/input/ITabletModeChangedListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/input/ITabletModeChangedListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/input/ITabletModeChangedListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/input/ITabletModeChangedListener$Stub$Proxy;->onTabletModeChanged(JZ)V
-Landroid/hardware/input/ITabletModeChangedListener$Stub;
 Landroid/hardware/input/ITabletModeChangedListener$Stub;-><init>()V
 Landroid/hardware/input/ITabletModeChangedListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/input/ITabletModeChangedListener;
 Landroid/hardware/input/ITabletModeChangedListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/input/ITabletModeChangedListener$Stub;->TRANSACTION_onTabletModeChanged:I
-Landroid/hardware/input/ITabletModeChangedListener;
 Landroid/hardware/input/ITabletModeChangedListener;->onTabletModeChanged(JZ)V
-Landroid/hardware/input/KeyboardLayout;
 Landroid/hardware/input/KeyboardLayout;-><init>(Landroid/os/Parcel;)V
 Landroid/hardware/input/KeyboardLayout;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/os/LocaleList;II)V
 Landroid/hardware/input/KeyboardLayout;->compareTo(Landroid/hardware/input/KeyboardLayout;)I
@@ -25512,7 +23859,6 @@
 Landroid/hardware/input/KeyboardLayout;->mPriority:I
 Landroid/hardware/input/KeyboardLayout;->mProductId:I
 Landroid/hardware/input/KeyboardLayout;->mVendorId:I
-Landroid/hardware/input/TouchCalibration;
 Landroid/hardware/input/TouchCalibration;-><init>()V
 Landroid/hardware/input/TouchCalibration;-><init>(FFFFFF)V
 Landroid/hardware/input/TouchCalibration;-><init>(Landroid/os/Parcel;)V
@@ -25525,22 +23871,18 @@
 Landroid/hardware/input/TouchCalibration;->mYOffset:F
 Landroid/hardware/input/TouchCalibration;->mYScale:F
 Landroid/hardware/input/TouchCalibration;->mYXMix:F
-Landroid/hardware/ISerialManager$Stub$Proxy;
 Landroid/hardware/ISerialManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/ISerialManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/ISerialManager$Stub$Proxy;->getSerialPorts()[Ljava/lang/String;
 Landroid/hardware/ISerialManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/ISerialManager$Stub$Proxy;->openSerialPort(Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
-Landroid/hardware/ISerialManager$Stub;
 Landroid/hardware/ISerialManager$Stub;-><init>()V
 Landroid/hardware/ISerialManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/ISerialManager;
 Landroid/hardware/ISerialManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/ISerialManager$Stub;->TRANSACTION_getSerialPorts:I
 Landroid/hardware/ISerialManager$Stub;->TRANSACTION_openSerialPort:I
-Landroid/hardware/ISerialManager;
 Landroid/hardware/ISerialManager;->getSerialPorts()[Ljava/lang/String;
 Landroid/hardware/ISerialManager;->openSerialPort(Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
-Landroid/hardware/LegacySensorManager$LegacyListener;
 Landroid/hardware/LegacySensorManager$LegacyListener;-><init>(Landroid/hardware/SensorListener;)V
 Landroid/hardware/LegacySensorManager$LegacyListener;->getLegacySensorType(I)I
 Landroid/hardware/LegacySensorManager$LegacyListener;->hasOrientationSensor(I)Z
@@ -25552,7 +23894,6 @@
 Landroid/hardware/LegacySensorManager$LegacyListener;->mYawfilter:Landroid/hardware/LegacySensorManager$LmsFilter;
 Landroid/hardware/LegacySensorManager$LegacyListener;->registerSensor(I)Z
 Landroid/hardware/LegacySensorManager$LegacyListener;->unregisterSensor(I)Z
-Landroid/hardware/LegacySensorManager$LmsFilter;
 Landroid/hardware/LegacySensorManager$LmsFilter;-><init>()V
 Landroid/hardware/LegacySensorManager$LmsFilter;->COUNT:I
 Landroid/hardware/LegacySensorManager$LmsFilter;->filter(JF)F
@@ -25562,7 +23903,6 @@
 Landroid/hardware/LegacySensorManager$LmsFilter;->PREDICTION_RATIO:F
 Landroid/hardware/LegacySensorManager$LmsFilter;->PREDICTION_TIME:F
 Landroid/hardware/LegacySensorManager$LmsFilter;->SENSORS_RATE_MS:I
-Landroid/hardware/LegacySensorManager;
 Landroid/hardware/LegacySensorManager;-><init>(Landroid/hardware/SensorManager;)V
 Landroid/hardware/LegacySensorManager;->getRotation()I
 Landroid/hardware/LegacySensorManager;->getSensors()I
@@ -25576,12 +23916,10 @@
 Landroid/hardware/LegacySensorManager;->sWindowManager:Landroid/view/IWindowManager;
 Landroid/hardware/LegacySensorManager;->unregisterLegacyListener(IILandroid/hardware/SensorListener;I)V
 Landroid/hardware/LegacySensorManager;->unregisterListener(Landroid/hardware/SensorListener;I)V
-Landroid/hardware/location/ActivityChangedEvent;
 Landroid/hardware/location/ActivityChangedEvent;-><init>([Landroid/hardware/location/ActivityRecognitionEvent;)V
 Landroid/hardware/location/ActivityChangedEvent;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/hardware/location/ActivityChangedEvent;->getActivityRecognitionEvents()Ljava/lang/Iterable;
 Landroid/hardware/location/ActivityChangedEvent;->mActivityRecognitionEvents:Ljava/util/List;
-Landroid/hardware/location/ActivityRecognitionEvent;
 Landroid/hardware/location/ActivityRecognitionEvent;-><init>(Ljava/lang/String;IJ)V
 Landroid/hardware/location/ActivityRecognitionEvent;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/hardware/location/ActivityRecognitionEvent;->getActivity()Ljava/lang/String;
@@ -25590,16 +23928,12 @@
 Landroid/hardware/location/ActivityRecognitionEvent;->mActivity:Ljava/lang/String;
 Landroid/hardware/location/ActivityRecognitionEvent;->mEventType:I
 Landroid/hardware/location/ActivityRecognitionEvent;->mTimestampNs:J
-Landroid/hardware/location/ActivityRecognitionHardware$Event;
 Landroid/hardware/location/ActivityRecognitionHardware$Event;-><init>()V
 Landroid/hardware/location/ActivityRecognitionHardware$Event;->activity:I
 Landroid/hardware/location/ActivityRecognitionHardware$Event;->timestamp:J
 Landroid/hardware/location/ActivityRecognitionHardware$Event;->type:I
-Landroid/hardware/location/ActivityRecognitionHardware$SinkList;
-Landroid/hardware/location/ActivityRecognitionHardware$SinkList;-><init>()V
 Landroid/hardware/location/ActivityRecognitionHardware$SinkList;->disableActivityEventIfEnabled(II)V
 Landroid/hardware/location/ActivityRecognitionHardware$SinkList;->onCallbackDied(Landroid/hardware/location/IActivityRecognitionHardwareSink;)V
-Landroid/hardware/location/ActivityRecognitionHardware;
 Landroid/hardware/location/ActivityRecognitionHardware;-><init>(Landroid/content/Context;)V
 Landroid/hardware/location/ActivityRecognitionHardware;->checkPermissions()V
 Landroid/hardware/location/ActivityRecognitionHardware;->DEBUG:Z
@@ -25664,7 +23998,6 @@
 Landroid/hardware/location/ContextHubInfo;->mToolchain:Ljava/lang/String;
 Landroid/hardware/location/ContextHubInfo;->mToolchainVersion:I
 Landroid/hardware/location/ContextHubInfo;->mVendor:Ljava/lang/String;
-Landroid/hardware/location/ContextHubManager$ICallback;
 Landroid/hardware/location/ContextHubManager$ICallback;->onMessageReceipt(IILandroid/hardware/location/ContextHubMessage;)V
 Landroid/hardware/location/ContextHubManager;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
 Landroid/hardware/location/ContextHubManager;->createClientCallback(Landroid/hardware/location/ContextHubClient;Landroid/hardware/location/ContextHubClientCallback;Ljava/util/concurrent/Executor;)Landroid/hardware/location/IContextHubClientCallback;
@@ -25687,8 +24020,6 @@
 Landroid/hardware/location/ContextHubTransaction$Response;-><init>(ILjava/lang/Object;)V
 Landroid/hardware/location/ContextHubTransaction$Response;->mContents:Ljava/lang/Object;
 Landroid/hardware/location/ContextHubTransaction$Response;->mResult:I
-Landroid/hardware/location/ContextHubTransaction$Result;
-Landroid/hardware/location/ContextHubTransaction$Type;
 Landroid/hardware/location/ContextHubTransaction;-><init>(I)V
 Landroid/hardware/location/ContextHubTransaction;->mDoneSignal:Ljava/util/concurrent/CountDownLatch;
 Landroid/hardware/location/ContextHubTransaction;->mExecutor:Ljava/util/concurrent/Executor;
@@ -25698,16 +24029,12 @@
 Landroid/hardware/location/ContextHubTransaction;->mTransactionType:I
 Landroid/hardware/location/ContextHubTransaction;->setResponse(Landroid/hardware/location/ContextHubTransaction$Response;)V
 Landroid/hardware/location/ContextHubTransaction;->TAG:Ljava/lang/String;
-Landroid/hardware/location/GeofenceHardware$GeofenceHardwareCallbackWrapper;
-Landroid/hardware/location/GeofenceHardware$GeofenceHardwareCallbackWrapper;-><init>(Landroid/hardware/location/GeofenceHardwareCallback;)V
 Landroid/hardware/location/GeofenceHardware$GeofenceHardwareCallbackWrapper;->mCallback:Ljava/lang/ref/WeakReference;
 Landroid/hardware/location/GeofenceHardware$GeofenceHardwareCallbackWrapper;->onGeofenceAdd(II)V
 Landroid/hardware/location/GeofenceHardware$GeofenceHardwareCallbackWrapper;->onGeofencePause(II)V
 Landroid/hardware/location/GeofenceHardware$GeofenceHardwareCallbackWrapper;->onGeofenceRemove(II)V
 Landroid/hardware/location/GeofenceHardware$GeofenceHardwareCallbackWrapper;->onGeofenceResume(II)V
 Landroid/hardware/location/GeofenceHardware$GeofenceHardwareCallbackWrapper;->onGeofenceTransition(IILandroid/location/Location;JI)V
-Landroid/hardware/location/GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper;
-Landroid/hardware/location/GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper;-><init>(Landroid/hardware/location/GeofenceHardwareMonitorCallback;)V
 Landroid/hardware/location/GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper;->mCallback:Ljava/lang/ref/WeakReference;
 Landroid/hardware/location/GeofenceHardware$GeofenceHardwareMonitorCallbackWrapper;->onMonitoringSystemChange(Landroid/hardware/location/GeofenceHardwareMonitorEvent;)V
 Landroid/hardware/location/GeofenceHardware;->getCallbackWrapper(Landroid/hardware/location/GeofenceHardwareCallback;)Landroid/hardware/location/GeofenceHardware$GeofenceHardwareCallbackWrapper;
@@ -25718,24 +24045,18 @@
 Landroid/hardware/location/GeofenceHardware;->NUM_MONITORS:I
 Landroid/hardware/location/GeofenceHardware;->removeCallback(Landroid/hardware/location/GeofenceHardwareCallback;)V
 Landroid/hardware/location/GeofenceHardware;->removeMonitorCallback(Landroid/hardware/location/GeofenceHardwareMonitorCallback;)V
-Landroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;
-Landroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;-><init>(IIJLandroid/location/Location;II)V
 Landroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;->mGeofenceId:I
 Landroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;->mLocation:Landroid/location/Location;
 Landroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;->mMonitoringType:I
 Landroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;->mSourcesUsed:I
 Landroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;->mTimestamp:J
 Landroid/hardware/location/GeofenceHardwareImpl$GeofenceTransition;->mTransition:I
-Landroid/hardware/location/GeofenceHardwareImpl$Reaper;
-Landroid/hardware/location/GeofenceHardwareImpl$Reaper;-><init>(Landroid/hardware/location/IGeofenceHardwareCallback;I)V
-Landroid/hardware/location/GeofenceHardwareImpl$Reaper;-><init>(Landroid/hardware/location/IGeofenceHardwareMonitorCallback;I)V
 Landroid/hardware/location/GeofenceHardwareImpl$Reaper;->binderEquals(Landroid/os/IInterface;Landroid/os/IInterface;)Z
 Landroid/hardware/location/GeofenceHardwareImpl$Reaper;->callbackEquals(Landroid/hardware/location/IGeofenceHardwareCallback;)Z
 Landroid/hardware/location/GeofenceHardwareImpl$Reaper;->mCallback:Landroid/hardware/location/IGeofenceHardwareCallback;
 Landroid/hardware/location/GeofenceHardwareImpl$Reaper;->mMonitorCallback:Landroid/hardware/location/IGeofenceHardwareMonitorCallback;
 Landroid/hardware/location/GeofenceHardwareImpl$Reaper;->mMonitoringType:I
 Landroid/hardware/location/GeofenceHardwareImpl$Reaper;->unlinkToDeath()Z
-Landroid/hardware/location/GeofenceHardwareImpl;
 Landroid/hardware/location/GeofenceHardwareImpl;-><init>(Landroid/content/Context;)V
 Landroid/hardware/location/GeofenceHardwareImpl;->acquireWakeLock()V
 Landroid/hardware/location/GeofenceHardwareImpl;->addCircularFence(ILandroid/hardware/location/GeofenceHardwareRequestParcelable;Landroid/hardware/location/IGeofenceHardwareCallback;)Z
@@ -25821,7 +24142,6 @@
 Landroid/hardware/location/GeofenceHardwareRequest;->mType:I
 Landroid/hardware/location/GeofenceHardwareRequest;->mUnknownTimer:I
 Landroid/hardware/location/GeofenceHardwareRequest;->setCircularGeofence(DDD)V
-Landroid/hardware/location/GeofenceHardwareRequestParcelable;
 Landroid/hardware/location/GeofenceHardwareRequestParcelable;-><init>(ILandroid/hardware/location/GeofenceHardwareRequest;)V
 Landroid/hardware/location/GeofenceHardwareRequestParcelable;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/hardware/location/GeofenceHardwareRequestParcelable;->getId()I
@@ -25836,13 +24156,11 @@
 Landroid/hardware/location/GeofenceHardwareRequestParcelable;->getUnknownTimer()I
 Landroid/hardware/location/GeofenceHardwareRequestParcelable;->mId:I
 Landroid/hardware/location/GeofenceHardwareRequestParcelable;->mRequest:Landroid/hardware/location/GeofenceHardwareRequest;
-Landroid/hardware/location/GeofenceHardwareService;
 Landroid/hardware/location/GeofenceHardwareService;-><init>()V
 Landroid/hardware/location/GeofenceHardwareService;->checkPermission(III)V
 Landroid/hardware/location/GeofenceHardwareService;->mBinder:Landroid/os/IBinder;
 Landroid/hardware/location/GeofenceHardwareService;->mContext:Landroid/content/Context;
 Landroid/hardware/location/GeofenceHardwareService;->mGeofenceHardwareImpl:Landroid/hardware/location/GeofenceHardwareImpl;
-Landroid/hardware/location/IActivityRecognitionHardware$Stub$Proxy;
 Landroid/hardware/location/IActivityRecognitionHardware$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/location/IActivityRecognitionHardware$Stub$Proxy;->disableActivityEvent(Ljava/lang/String;I)Z
 Landroid/hardware/location/IActivityRecognitionHardware$Stub$Proxy;->enableActivityEvent(Ljava/lang/String;IJ)Z
@@ -25853,7 +24171,6 @@
 Landroid/hardware/location/IActivityRecognitionHardware$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/location/IActivityRecognitionHardware$Stub$Proxy;->registerSink(Landroid/hardware/location/IActivityRecognitionHardwareSink;)Z
 Landroid/hardware/location/IActivityRecognitionHardware$Stub$Proxy;->unregisterSink(Landroid/hardware/location/IActivityRecognitionHardwareSink;)Z
-Landroid/hardware/location/IActivityRecognitionHardware$Stub;
 Landroid/hardware/location/IActivityRecognitionHardware$Stub;-><init>()V
 Landroid/hardware/location/IActivityRecognitionHardware$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IActivityRecognitionHardware;
 Landroid/hardware/location/IActivityRecognitionHardware$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -25864,7 +24181,6 @@
 Landroid/hardware/location/IActivityRecognitionHardware$Stub;->TRANSACTION_isActivitySupported:I
 Landroid/hardware/location/IActivityRecognitionHardware$Stub;->TRANSACTION_registerSink:I
 Landroid/hardware/location/IActivityRecognitionHardware$Stub;->TRANSACTION_unregisterSink:I
-Landroid/hardware/location/IActivityRecognitionHardware;
 Landroid/hardware/location/IActivityRecognitionHardware;->disableActivityEvent(Ljava/lang/String;I)Z
 Landroid/hardware/location/IActivityRecognitionHardware;->enableActivityEvent(Ljava/lang/String;IJ)Z
 Landroid/hardware/location/IActivityRecognitionHardware;->flush()Z
@@ -25872,68 +24188,52 @@
 Landroid/hardware/location/IActivityRecognitionHardware;->isActivitySupported(Ljava/lang/String;)Z
 Landroid/hardware/location/IActivityRecognitionHardware;->registerSink(Landroid/hardware/location/IActivityRecognitionHardwareSink;)Z
 Landroid/hardware/location/IActivityRecognitionHardware;->unregisterSink(Landroid/hardware/location/IActivityRecognitionHardwareSink;)Z
-Landroid/hardware/location/IActivityRecognitionHardwareClient$Stub$Proxy;
 Landroid/hardware/location/IActivityRecognitionHardwareClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/location/IActivityRecognitionHardwareClient$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/location/IActivityRecognitionHardwareClient$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/location/IActivityRecognitionHardwareClient$Stub$Proxy;->onAvailabilityChanged(ZLandroid/hardware/location/IActivityRecognitionHardware;)V
-Landroid/hardware/location/IActivityRecognitionHardwareClient$Stub;
 Landroid/hardware/location/IActivityRecognitionHardwareClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IActivityRecognitionHardwareClient;
 Landroid/hardware/location/IActivityRecognitionHardwareClient$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/location/IActivityRecognitionHardwareClient$Stub;->TRANSACTION_onAvailabilityChanged:I
-Landroid/hardware/location/IActivityRecognitionHardwareClient;
-Landroid/hardware/location/IActivityRecognitionHardwareSink$Stub$Proxy;
 Landroid/hardware/location/IActivityRecognitionHardwareSink$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/location/IActivityRecognitionHardwareSink$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/location/IActivityRecognitionHardwareSink$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/location/IActivityRecognitionHardwareSink$Stub$Proxy;->onActivityChanged(Landroid/hardware/location/ActivityChangedEvent;)V
-Landroid/hardware/location/IActivityRecognitionHardwareSink$Stub;
 Landroid/hardware/location/IActivityRecognitionHardwareSink$Stub;-><init>()V
 Landroid/hardware/location/IActivityRecognitionHardwareSink$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IActivityRecognitionHardwareSink;
 Landroid/hardware/location/IActivityRecognitionHardwareSink$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/location/IActivityRecognitionHardwareSink$Stub;->TRANSACTION_onActivityChanged:I
-Landroid/hardware/location/IActivityRecognitionHardwareSink;
 Landroid/hardware/location/IActivityRecognitionHardwareSink;->onActivityChanged(Landroid/hardware/location/ActivityChangedEvent;)V
-Landroid/hardware/location/IActivityRecognitionHardwareWatcher$Stub$Proxy;
 Landroid/hardware/location/IActivityRecognitionHardwareWatcher$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/location/IActivityRecognitionHardwareWatcher$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/location/IActivityRecognitionHardwareWatcher$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/location/IActivityRecognitionHardwareWatcher$Stub$Proxy;->onInstanceChanged(Landroid/hardware/location/IActivityRecognitionHardware;)V
-Landroid/hardware/location/IActivityRecognitionHardwareWatcher$Stub;
 Landroid/hardware/location/IActivityRecognitionHardwareWatcher$Stub;-><init>()V
 Landroid/hardware/location/IActivityRecognitionHardwareWatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IActivityRecognitionHardwareWatcher;
 Landroid/hardware/location/IActivityRecognitionHardwareWatcher$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/location/IActivityRecognitionHardwareWatcher$Stub;->TRANSACTION_onInstanceChanged:I
-Landroid/hardware/location/IActivityRecognitionHardwareWatcher;
 Landroid/hardware/location/IActivityRecognitionHardwareWatcher;->onInstanceChanged(Landroid/hardware/location/IActivityRecognitionHardware;)V
-Landroid/hardware/location/IContextHubCallback$Stub$Proxy;
 Landroid/hardware/location/IContextHubCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/location/IContextHubCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/location/IContextHubCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/location/IContextHubCallback$Stub$Proxy;->onMessageReceipt(IILandroid/hardware/location/ContextHubMessage;)V
-Landroid/hardware/location/IContextHubCallback$Stub;
 Landroid/hardware/location/IContextHubCallback$Stub;-><init>()V
 Landroid/hardware/location/IContextHubCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IContextHubCallback;
 Landroid/hardware/location/IContextHubCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/location/IContextHubCallback$Stub;->TRANSACTION_onMessageReceipt:I
-Landroid/hardware/location/IContextHubCallback;
 Landroid/hardware/location/IContextHubCallback;->onMessageReceipt(IILandroid/hardware/location/ContextHubMessage;)V
-Landroid/hardware/location/IContextHubClient$Stub$Proxy;
 Landroid/hardware/location/IContextHubClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/location/IContextHubClient$Stub$Proxy;->close()V
 Landroid/hardware/location/IContextHubClient$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/location/IContextHubClient$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/location/IContextHubClient$Stub$Proxy;->sendMessageToNanoApp(Landroid/hardware/location/NanoAppMessage;)I
-Landroid/hardware/location/IContextHubClient$Stub;
 Landroid/hardware/location/IContextHubClient$Stub;-><init>()V
 Landroid/hardware/location/IContextHubClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IContextHubClient;
 Landroid/hardware/location/IContextHubClient$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/location/IContextHubClient$Stub;->TRANSACTION_close:I
 Landroid/hardware/location/IContextHubClient$Stub;->TRANSACTION_sendMessageToNanoApp:I
-Landroid/hardware/location/IContextHubClient;
 Landroid/hardware/location/IContextHubClient;->close()V
 Landroid/hardware/location/IContextHubClient;->sendMessageToNanoApp(Landroid/hardware/location/NanoAppMessage;)I
-Landroid/hardware/location/IContextHubClientCallback$Stub$Proxy;
 Landroid/hardware/location/IContextHubClientCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/location/IContextHubClientCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/location/IContextHubClientCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -25944,7 +24244,6 @@
 Landroid/hardware/location/IContextHubClientCallback$Stub$Proxy;->onNanoAppEnabled(J)V
 Landroid/hardware/location/IContextHubClientCallback$Stub$Proxy;->onNanoAppLoaded(J)V
 Landroid/hardware/location/IContextHubClientCallback$Stub$Proxy;->onNanoAppUnloaded(J)V
-Landroid/hardware/location/IContextHubClientCallback$Stub;
 Landroid/hardware/location/IContextHubClientCallback$Stub;-><init>()V
 Landroid/hardware/location/IContextHubClientCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IContextHubClientCallback;
 Landroid/hardware/location/IContextHubClientCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -25955,7 +24254,6 @@
 Landroid/hardware/location/IContextHubClientCallback$Stub;->TRANSACTION_onNanoAppEnabled:I
 Landroid/hardware/location/IContextHubClientCallback$Stub;->TRANSACTION_onNanoAppLoaded:I
 Landroid/hardware/location/IContextHubClientCallback$Stub;->TRANSACTION_onNanoAppUnloaded:I
-Landroid/hardware/location/IContextHubClientCallback;
 Landroid/hardware/location/IContextHubClientCallback;->onHubReset()V
 Landroid/hardware/location/IContextHubClientCallback;->onMessageFromNanoApp(Landroid/hardware/location/NanoAppMessage;)V
 Landroid/hardware/location/IContextHubClientCallback;->onNanoAppAborted(JI)V
@@ -25963,7 +24261,6 @@
 Landroid/hardware/location/IContextHubClientCallback;->onNanoAppEnabled(J)V
 Landroid/hardware/location/IContextHubClientCallback;->onNanoAppLoaded(J)V
 Landroid/hardware/location/IContextHubClientCallback;->onNanoAppUnloaded(J)V
-Landroid/hardware/location/IContextHubService$Stub$Proxy;
 Landroid/hardware/location/IContextHubService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/location/IContextHubService$Stub$Proxy;->createClient(Landroid/hardware/location/IContextHubClientCallback;I)Landroid/hardware/location/IContextHubClient;
 Landroid/hardware/location/IContextHubService$Stub$Proxy;->disableNanoApp(ILandroid/hardware/location/IContextHubTransactionCallback;J)V
@@ -25982,7 +24279,6 @@
 Landroid/hardware/location/IContextHubService$Stub$Proxy;->sendMessage(IILandroid/hardware/location/ContextHubMessage;)I
 Landroid/hardware/location/IContextHubService$Stub$Proxy;->unloadNanoApp(I)I
 Landroid/hardware/location/IContextHubService$Stub$Proxy;->unloadNanoAppFromHub(ILandroid/hardware/location/IContextHubTransactionCallback;J)V
-Landroid/hardware/location/IContextHubService$Stub;
 Landroid/hardware/location/IContextHubService$Stub;-><init>()V
 Landroid/hardware/location/IContextHubService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/location/IContextHubService$Stub;->TRANSACTION_createClient:I
@@ -26000,7 +24296,6 @@
 Landroid/hardware/location/IContextHubService$Stub;->TRANSACTION_sendMessage:I
 Landroid/hardware/location/IContextHubService$Stub;->TRANSACTION_unloadNanoApp:I
 Landroid/hardware/location/IContextHubService$Stub;->TRANSACTION_unloadNanoAppFromHub:I
-Landroid/hardware/location/IContextHubService;
 Landroid/hardware/location/IContextHubService;->createClient(Landroid/hardware/location/IContextHubClientCallback;I)Landroid/hardware/location/IContextHubClient;
 Landroid/hardware/location/IContextHubService;->disableNanoApp(ILandroid/hardware/location/IContextHubTransactionCallback;J)V
 Landroid/hardware/location/IContextHubService;->enableNanoApp(ILandroid/hardware/location/IContextHubTransactionCallback;J)V
@@ -26016,22 +24311,18 @@
 Landroid/hardware/location/IContextHubService;->sendMessage(IILandroid/hardware/location/ContextHubMessage;)I
 Landroid/hardware/location/IContextHubService;->unloadNanoApp(I)I
 Landroid/hardware/location/IContextHubService;->unloadNanoAppFromHub(ILandroid/hardware/location/IContextHubTransactionCallback;J)V
-Landroid/hardware/location/IContextHubTransactionCallback$Stub$Proxy;
 Landroid/hardware/location/IContextHubTransactionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/location/IContextHubTransactionCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/location/IContextHubTransactionCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/location/IContextHubTransactionCallback$Stub$Proxy;->onQueryResponse(ILjava/util/List;)V
 Landroid/hardware/location/IContextHubTransactionCallback$Stub$Proxy;->onTransactionComplete(I)V
-Landroid/hardware/location/IContextHubTransactionCallback$Stub;
 Landroid/hardware/location/IContextHubTransactionCallback$Stub;-><init>()V
 Landroid/hardware/location/IContextHubTransactionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IContextHubTransactionCallback;
 Landroid/hardware/location/IContextHubTransactionCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/location/IContextHubTransactionCallback$Stub;->TRANSACTION_onQueryResponse:I
 Landroid/hardware/location/IContextHubTransactionCallback$Stub;->TRANSACTION_onTransactionComplete:I
-Landroid/hardware/location/IContextHubTransactionCallback;
 Landroid/hardware/location/IContextHubTransactionCallback;->onQueryResponse(ILjava/util/List;)V
 Landroid/hardware/location/IContextHubTransactionCallback;->onTransactionComplete(I)V
-Landroid/hardware/location/IGeofenceHardware$Stub$Proxy;
 Landroid/hardware/location/IGeofenceHardware$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/location/IGeofenceHardware$Stub$Proxy;->addCircularFence(ILandroid/hardware/location/GeofenceHardwareRequestParcelable;Landroid/hardware/location/IGeofenceHardwareCallback;)Z
 Landroid/hardware/location/IGeofenceHardware$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -26045,7 +24336,6 @@
 Landroid/hardware/location/IGeofenceHardware$Stub$Proxy;->setFusedGeofenceHardware(Landroid/location/IFusedGeofenceHardware;)V
 Landroid/hardware/location/IGeofenceHardware$Stub$Proxy;->setGpsGeofenceHardware(Landroid/location/IGpsGeofenceHardware;)V
 Landroid/hardware/location/IGeofenceHardware$Stub$Proxy;->unregisterForMonitorStateChangeCallback(ILandroid/hardware/location/IGeofenceHardwareMonitorCallback;)Z
-Landroid/hardware/location/IGeofenceHardware$Stub;
 Landroid/hardware/location/IGeofenceHardware$Stub;-><init>()V
 Landroid/hardware/location/IGeofenceHardware$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IGeofenceHardware;
 Landroid/hardware/location/IGeofenceHardware$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -26059,7 +24349,6 @@
 Landroid/hardware/location/IGeofenceHardware$Stub;->TRANSACTION_setFusedGeofenceHardware:I
 Landroid/hardware/location/IGeofenceHardware$Stub;->TRANSACTION_setGpsGeofenceHardware:I
 Landroid/hardware/location/IGeofenceHardware$Stub;->TRANSACTION_unregisterForMonitorStateChangeCallback:I
-Landroid/hardware/location/IGeofenceHardware;
 Landroid/hardware/location/IGeofenceHardware;->addCircularFence(ILandroid/hardware/location/GeofenceHardwareRequestParcelable;Landroid/hardware/location/IGeofenceHardwareCallback;)Z
 Landroid/hardware/location/IGeofenceHardware;->getMonitoringTypes()[I
 Landroid/hardware/location/IGeofenceHardware;->getStatusOfMonitoringType(I)I
@@ -26070,7 +24359,6 @@
 Landroid/hardware/location/IGeofenceHardware;->setFusedGeofenceHardware(Landroid/location/IFusedGeofenceHardware;)V
 Landroid/hardware/location/IGeofenceHardware;->setGpsGeofenceHardware(Landroid/location/IGpsGeofenceHardware;)V
 Landroid/hardware/location/IGeofenceHardware;->unregisterForMonitorStateChangeCallback(ILandroid/hardware/location/IGeofenceHardwareMonitorCallback;)Z
-Landroid/hardware/location/IGeofenceHardwareCallback$Stub$Proxy;
 Landroid/hardware/location/IGeofenceHardwareCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/location/IGeofenceHardwareCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/location/IGeofenceHardwareCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -26079,7 +24367,6 @@
 Landroid/hardware/location/IGeofenceHardwareCallback$Stub$Proxy;->onGeofenceRemove(II)V
 Landroid/hardware/location/IGeofenceHardwareCallback$Stub$Proxy;->onGeofenceResume(II)V
 Landroid/hardware/location/IGeofenceHardwareCallback$Stub$Proxy;->onGeofenceTransition(IILandroid/location/Location;JI)V
-Landroid/hardware/location/IGeofenceHardwareCallback$Stub;
 Landroid/hardware/location/IGeofenceHardwareCallback$Stub;-><init>()V
 Landroid/hardware/location/IGeofenceHardwareCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IGeofenceHardwareCallback;
 Landroid/hardware/location/IGeofenceHardwareCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -26088,23 +24375,19 @@
 Landroid/hardware/location/IGeofenceHardwareCallback$Stub;->TRANSACTION_onGeofenceRemove:I
 Landroid/hardware/location/IGeofenceHardwareCallback$Stub;->TRANSACTION_onGeofenceResume:I
 Landroid/hardware/location/IGeofenceHardwareCallback$Stub;->TRANSACTION_onGeofenceTransition:I
-Landroid/hardware/location/IGeofenceHardwareCallback;
 Landroid/hardware/location/IGeofenceHardwareCallback;->onGeofenceAdd(II)V
 Landroid/hardware/location/IGeofenceHardwareCallback;->onGeofencePause(II)V
 Landroid/hardware/location/IGeofenceHardwareCallback;->onGeofenceRemove(II)V
 Landroid/hardware/location/IGeofenceHardwareCallback;->onGeofenceResume(II)V
 Landroid/hardware/location/IGeofenceHardwareCallback;->onGeofenceTransition(IILandroid/location/Location;JI)V
-Landroid/hardware/location/IGeofenceHardwareMonitorCallback$Stub$Proxy;
 Landroid/hardware/location/IGeofenceHardwareMonitorCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/location/IGeofenceHardwareMonitorCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/location/IGeofenceHardwareMonitorCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/location/IGeofenceHardwareMonitorCallback$Stub$Proxy;->onMonitoringSystemChange(Landroid/hardware/location/GeofenceHardwareMonitorEvent;)V
-Landroid/hardware/location/IGeofenceHardwareMonitorCallback$Stub;
 Landroid/hardware/location/IGeofenceHardwareMonitorCallback$Stub;-><init>()V
 Landroid/hardware/location/IGeofenceHardwareMonitorCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/location/IGeofenceHardwareMonitorCallback;
 Landroid/hardware/location/IGeofenceHardwareMonitorCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/location/IGeofenceHardwareMonitorCallback$Stub;->TRANSACTION_onMonitoringSystemChange:I
-Landroid/hardware/location/IGeofenceHardwareMonitorCallback;
 Landroid/hardware/location/IGeofenceHardwareMonitorCallback;->onMonitoringSystemChange(Landroid/hardware/location/GeofenceHardwareMonitorEvent;)V
 Landroid/hardware/location/MemoryRegion;->mIsExecutable:Z
 Landroid/hardware/location/MemoryRegion;->mIsReadable:Z
@@ -26176,55 +24459,44 @@
 Landroid/hardware/location/NanoAppState;->mIsEnabled:Z
 Landroid/hardware/location/NanoAppState;->mNanoAppId:J
 Landroid/hardware/location/NanoAppState;->mNanoAppVersion:I
-Landroid/hardware/radio/Announcement$Type;
 Landroid/hardware/radio/Announcement;-><init>(Landroid/hardware/radio/ProgramSelector;ILjava/util/Map;)V
 Landroid/hardware/radio/Announcement;-><init>(Landroid/os/Parcel;)V
 Landroid/hardware/radio/Announcement;->mSelector:Landroid/hardware/radio/ProgramSelector;
 Landroid/hardware/radio/Announcement;->mType:I
 Landroid/hardware/radio/Announcement;->mVendorInfo:Ljava/util/Map;
-Landroid/hardware/radio/IAnnouncementListener$Stub$Proxy;
 Landroid/hardware/radio/IAnnouncementListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/radio/IAnnouncementListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/radio/IAnnouncementListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/radio/IAnnouncementListener$Stub$Proxy;->onListUpdated(Ljava/util/List;)V
-Landroid/hardware/radio/IAnnouncementListener$Stub;
 Landroid/hardware/radio/IAnnouncementListener$Stub;-><init>()V
 Landroid/hardware/radio/IAnnouncementListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/radio/IAnnouncementListener;
 Landroid/hardware/radio/IAnnouncementListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/radio/IAnnouncementListener$Stub;->TRANSACTION_onListUpdated:I
-Landroid/hardware/radio/IAnnouncementListener;
 Landroid/hardware/radio/IAnnouncementListener;->onListUpdated(Ljava/util/List;)V
-Landroid/hardware/radio/ICloseHandle$Stub$Proxy;
 Landroid/hardware/radio/ICloseHandle$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/radio/ICloseHandle$Stub$Proxy;->close()V
 Landroid/hardware/radio/ICloseHandle$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/radio/ICloseHandle$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/hardware/radio/ICloseHandle$Stub;
 Landroid/hardware/radio/ICloseHandle$Stub;-><init>()V
 Landroid/hardware/radio/ICloseHandle$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/radio/ICloseHandle;
 Landroid/hardware/radio/ICloseHandle$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/radio/ICloseHandle$Stub;->TRANSACTION_close:I
-Landroid/hardware/radio/ICloseHandle;
 Landroid/hardware/radio/ICloseHandle;->close()V
-Landroid/hardware/radio/IRadioService$Stub$Proxy;
 Landroid/hardware/radio/IRadioService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/radio/IRadioService$Stub$Proxy;->addAnnouncementListener([ILandroid/hardware/radio/IAnnouncementListener;)Landroid/hardware/radio/ICloseHandle;
 Landroid/hardware/radio/IRadioService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/radio/IRadioService$Stub$Proxy;->listModules()Ljava/util/List;
 Landroid/hardware/radio/IRadioService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/hardware/radio/IRadioService$Stub$Proxy;->openTuner(ILandroid/hardware/radio/RadioManager$BandConfig;ZLandroid/hardware/radio/ITunerCallback;)Landroid/hardware/radio/ITuner;
-Landroid/hardware/radio/IRadioService$Stub;
 Landroid/hardware/radio/IRadioService$Stub;-><init>()V
 Landroid/hardware/radio/IRadioService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/radio/IRadioService;
 Landroid/hardware/radio/IRadioService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/radio/IRadioService$Stub;->TRANSACTION_addAnnouncementListener:I
 Landroid/hardware/radio/IRadioService$Stub;->TRANSACTION_listModules:I
 Landroid/hardware/radio/IRadioService$Stub;->TRANSACTION_openTuner:I
-Landroid/hardware/radio/IRadioService;
 Landroid/hardware/radio/IRadioService;->addAnnouncementListener([ILandroid/hardware/radio/IAnnouncementListener;)Landroid/hardware/radio/ICloseHandle;
 Landroid/hardware/radio/IRadioService;->listModules()Ljava/util/List;
 Landroid/hardware/radio/IRadioService;->openTuner(ILandroid/hardware/radio/RadioManager$BandConfig;ZLandroid/hardware/radio/ITunerCallback;)Landroid/hardware/radio/ITuner;
-Landroid/hardware/radio/ITuner$Stub$Proxy;
 Landroid/hardware/radio/ITuner$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/radio/ITuner$Stub$Proxy;->cancel()V
 Landroid/hardware/radio/ITuner$Stub$Proxy;->cancelAnnouncement()V
@@ -26248,7 +24520,6 @@
 Landroid/hardware/radio/ITuner$Stub$Proxy;->step(ZZ)V
 Landroid/hardware/radio/ITuner$Stub$Proxy;->stopProgramListUpdates()V
 Landroid/hardware/radio/ITuner$Stub$Proxy;->tune(Landroid/hardware/radio/ProgramSelector;)V
-Landroid/hardware/radio/ITuner$Stub;
 Landroid/hardware/radio/ITuner$Stub;-><init>()V
 Landroid/hardware/radio/ITuner$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/radio/ITuner;
 Landroid/hardware/radio/ITuner$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -26272,7 +24543,6 @@
 Landroid/hardware/radio/ITuner$Stub;->TRANSACTION_step:I
 Landroid/hardware/radio/ITuner$Stub;->TRANSACTION_stopProgramListUpdates:I
 Landroid/hardware/radio/ITuner$Stub;->TRANSACTION_tune:I
-Landroid/hardware/radio/ITuner;
 Landroid/hardware/radio/ITuner;->cancel()V
 Landroid/hardware/radio/ITuner;->cancelAnnouncement()V
 Landroid/hardware/radio/ITuner;->close()V
@@ -26293,7 +24563,6 @@
 Landroid/hardware/radio/ITuner;->step(ZZ)V
 Landroid/hardware/radio/ITuner;->stopProgramListUpdates()V
 Landroid/hardware/radio/ITuner;->tune(Landroid/hardware/radio/ProgramSelector;)V
-Landroid/hardware/radio/ITunerCallback$Stub$Proxy;
 Landroid/hardware/radio/ITunerCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/radio/ITunerCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/radio/ITunerCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -26309,7 +24578,6 @@
 Landroid/hardware/radio/ITunerCallback$Stub$Proxy;->onProgramListUpdated(Landroid/hardware/radio/ProgramList$Chunk;)V
 Landroid/hardware/radio/ITunerCallback$Stub$Proxy;->onTrafficAnnouncement(Z)V
 Landroid/hardware/radio/ITunerCallback$Stub$Proxy;->onTuneFailed(ILandroid/hardware/radio/ProgramSelector;)V
-Landroid/hardware/radio/ITunerCallback$Stub;
 Landroid/hardware/radio/ITunerCallback$Stub;-><init>()V
 Landroid/hardware/radio/ITunerCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/radio/ITunerCallback;
 Landroid/hardware/radio/ITunerCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -26325,7 +24593,6 @@
 Landroid/hardware/radio/ITunerCallback$Stub;->TRANSACTION_onProgramListUpdated:I
 Landroid/hardware/radio/ITunerCallback$Stub;->TRANSACTION_onTrafficAnnouncement:I
 Landroid/hardware/radio/ITunerCallback$Stub;->TRANSACTION_onTuneFailed:I
-Landroid/hardware/radio/ITunerCallback;
 Landroid/hardware/radio/ITunerCallback;->onAntennaState(Z)V
 Landroid/hardware/radio/ITunerCallback;->onBackgroundScanAvailabilityChange(Z)V
 Landroid/hardware/radio/ITunerCallback;->onBackgroundScanComplete()V
@@ -26338,7 +24605,6 @@
 Landroid/hardware/radio/ITunerCallback;->onProgramListUpdated(Landroid/hardware/radio/ProgramList$Chunk;)V
 Landroid/hardware/radio/ITunerCallback;->onTrafficAnnouncement(Z)V
 Landroid/hardware/radio/ITunerCallback;->onTuneFailed(ILandroid/hardware/radio/ProgramSelector;)V
-Landroid/hardware/radio/ProgramList$Chunk;
 Landroid/hardware/radio/ProgramList$Chunk;-><init>(Landroid/os/Parcel;)V
 Landroid/hardware/radio/ProgramList$Chunk;-><init>(ZZLjava/util/Set;Ljava/util/Set;)V
 Landroid/hardware/radio/ProgramList$Chunk;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -26359,7 +24625,6 @@
 Landroid/hardware/radio/ProgramList$Filter;->mIdentifierTypes:Ljava/util/Set;
 Landroid/hardware/radio/ProgramList$Filter;->mIncludeCategories:Z
 Landroid/hardware/radio/ProgramList$Filter;->mVendorFilter:Ljava/util/Map;
-Landroid/hardware/radio/ProgramList$OnCloseListener;
 Landroid/hardware/radio/ProgramList$OnCloseListener;->onClose()V
 Landroid/hardware/radio/ProgramList;-><init>()V
 Landroid/hardware/radio/ProgramList;->apply(Landroid/hardware/radio/ProgramList$Chunk;)V
@@ -26404,7 +24669,6 @@
 Landroid/hardware/radio/RadioManager$BandDescriptor;->mSpacing:I
 Landroid/hardware/radio/RadioManager$BandDescriptor;->mType:I
 Landroid/hardware/radio/RadioManager$BandDescriptor;->mUpperLimit:I
-Landroid/hardware/radio/RadioManager$ConfigFlag;
 Landroid/hardware/radio/RadioManager$FmBandConfig$Builder;->mAf:Z
 Landroid/hardware/radio/RadioManager$FmBandConfig$Builder;->mDescriptor:Landroid/hardware/radio/RadioManager$BandDescriptor;
 Landroid/hardware/radio/RadioManager$FmBandConfig$Builder;->mEa:Z
@@ -26551,7 +24815,6 @@
 Landroid/hardware/Sensor;->TYPE_GLANCE_GESTURE:I
 Landroid/hardware/Sensor;->TYPE_TILT_DETECTOR:I
 Landroid/hardware/Sensor;->TYPE_WAKE_GESTURE:I
-Landroid/hardware/SensorAdditionalInfo$AdditionalInfoType;
 Landroid/hardware/SensorAdditionalInfo;-><init>(Landroid/hardware/Sensor;II[I[F)V
 Landroid/hardware/SensorAdditionalInfo;->createCustomInfo(Landroid/hardware/Sensor;I[F)Landroid/hardware/SensorAdditionalInfo;
 Landroid/hardware/SensorAdditionalInfo;->createLocalGeomagneticField(FFF)Landroid/hardware/SensorAdditionalInfo;
@@ -26562,8 +24825,6 @@
 Landroid/hardware/SensorAdditionalInfo;->TYPE_LOCAL_GEOMAGNETIC_FIELD:I
 Landroid/hardware/SensorAdditionalInfo;->TYPE_LOCAL_GRAVITY:I
 Landroid/hardware/SensorAdditionalInfo;->TYPE_MAGNETIC_FIELD_CALIBRATION:I
-Landroid/hardware/SensorDirectChannel$MemoryType;
-Landroid/hardware/SensorDirectChannel$RateLevel;
 Landroid/hardware/SensorDirectChannel;-><init>(Landroid/hardware/SensorManager;IIJ)V
 Landroid/hardware/SensorDirectChannel;->encodeData(Landroid/os/MemoryFile;)[J
 Landroid/hardware/SensorDirectChannel;->getNativeHandle()I
@@ -26597,12 +24858,10 @@
 Landroid/hardware/SensorManager;->TAG:Ljava/lang/String;
 Landroid/hardware/SensorManager;->unregisterDynamicSensorCallbackImpl(Landroid/hardware/SensorManager$DynamicSensorCallback;)V
 Landroid/hardware/SensorManager;->unregisterListenerImpl(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;)V
-Landroid/hardware/SerialManager;
 Landroid/hardware/SerialManager;-><init>(Landroid/content/Context;Landroid/hardware/ISerialManager;)V
 Landroid/hardware/SerialManager;->mContext:Landroid/content/Context;
 Landroid/hardware/SerialManager;->mService:Landroid/hardware/ISerialManager;
 Landroid/hardware/SerialManager;->TAG:Ljava/lang/String;
-Landroid/hardware/SerialPort;
 Landroid/hardware/SerialPort;-><init>(Ljava/lang/String;)V
 Landroid/hardware/SerialPort;->getName()Ljava/lang/String;
 Landroid/hardware/SerialPort;->mFileDescriptor:Landroid/os/ParcelFileDescriptor;
@@ -26618,7 +24877,6 @@
 Landroid/hardware/SerialPort;->read(Ljava/nio/ByteBuffer;)I
 Landroid/hardware/SerialPort;->sendBreak()V
 Landroid/hardware/SerialPort;->TAG:Ljava/lang/String;
-Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub$Proxy;
 Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -26627,7 +24885,6 @@
 Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub$Proxy;->onKeyphraseDetected(Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;)V
 Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub$Proxy;->onRecognitionPaused()V
 Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub$Proxy;->onRecognitionResumed()V
-Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub;
 Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub;-><init>()V
 Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/soundtrigger/IRecognitionStatusCallback;
 Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -26636,13 +24893,11 @@
 Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub;->TRANSACTION_onKeyphraseDetected:I
 Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub;->TRANSACTION_onRecognitionPaused:I
 Landroid/hardware/soundtrigger/IRecognitionStatusCallback$Stub;->TRANSACTION_onRecognitionResumed:I
-Landroid/hardware/soundtrigger/IRecognitionStatusCallback;
 Landroid/hardware/soundtrigger/IRecognitionStatusCallback;->onError(I)V
 Landroid/hardware/soundtrigger/IRecognitionStatusCallback;->onGenericSoundTriggerDetected(Landroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent;)V
 Landroid/hardware/soundtrigger/IRecognitionStatusCallback;->onKeyphraseDetected(Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;)V
 Landroid/hardware/soundtrigger/IRecognitionStatusCallback;->onRecognitionPaused()V
 Landroid/hardware/soundtrigger/IRecognitionStatusCallback;->onRecognitionResumed()V
-Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;
 Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;-><init>(Landroid/content/pm/PackageManager;)V
 Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;->ACTION_MANAGE_VOICE_KEYPHRASES:Ljava/lang/String;
 Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;->EXTRA_VOICE_KEYPHRASE_ACTION:Ljava/lang/String;
@@ -26659,7 +24914,6 @@
 Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;->mParseError:Ljava/lang/String;
 Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;->TAG:Ljava/lang/String;
 Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;->VOICE_KEYPHRASE_META_DATA:Ljava/lang/String;
-Landroid/hardware/soundtrigger/KeyphraseMetadata;
 Landroid/hardware/soundtrigger/KeyphraseMetadata;-><init>(ILjava/lang/String;Landroid/util/ArraySet;I)V
 Landroid/hardware/soundtrigger/KeyphraseMetadata;->id:I
 Landroid/hardware/soundtrigger/KeyphraseMetadata;->keyphrase:Ljava/lang/String;
@@ -26667,28 +24921,20 @@
 Landroid/hardware/soundtrigger/KeyphraseMetadata;->supportedLocales:Landroid/util/ArraySet;
 Landroid/hardware/soundtrigger/KeyphraseMetadata;->supportsLocale(Ljava/util/Locale;)Z
 Landroid/hardware/soundtrigger/KeyphraseMetadata;->supportsPhrase(Ljava/lang/String;)Z
-Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;
 Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;->fromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$ConfidenceLevel;
-Landroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent;
 Landroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent;->fromParcelForGeneric(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent;
-Landroid/hardware/soundtrigger/SoundTrigger$GenericSoundModel;
 Landroid/hardware/soundtrigger/SoundTrigger$GenericSoundModel;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/hardware/soundtrigger/SoundTrigger$GenericSoundModel;->fromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$GenericSoundModel;
-Landroid/hardware/soundtrigger/SoundTrigger$Keyphrase;
 Landroid/hardware/soundtrigger/SoundTrigger$Keyphrase;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/hardware/soundtrigger/SoundTrigger$Keyphrase;->fromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$Keyphrase;
-Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;
 Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;->fromParcelForKeyphrase(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;
-Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;
 Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;->fromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionExtra;
-Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;
 Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;->fromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;
-Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;
 Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->description:Ljava/lang/String;
 Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->fromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;
@@ -26702,7 +24948,6 @@
 Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->supportsCaptureTransition:Z
 Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->supportsConcurrentCapture:Z
 Landroid/hardware/soundtrigger/SoundTrigger$ModuleProperties;->version:I
-Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;
 Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;->allowMultipleTriggers:Z
 Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;->fromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$RecognitionConfig;
@@ -26714,19 +24959,16 @@
 Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;->fromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;
 Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;->triggerInData:Z
 Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;->writeToParcel(Landroid/os/Parcel;I)V
-Landroid/hardware/soundtrigger/SoundTrigger$SoundModel;
 Landroid/hardware/soundtrigger/SoundTrigger$SoundModel;-><init>(Ljava/util/UUID;Ljava/util/UUID;I[B)V
 Landroid/hardware/soundtrigger/SoundTrigger$SoundModel;->type:I
 Landroid/hardware/soundtrigger/SoundTrigger$SoundModel;->TYPE_GENERIC_SOUND:I
 Landroid/hardware/soundtrigger/SoundTrigger$SoundModel;->TYPE_KEYPHRASE:I
 Landroid/hardware/soundtrigger/SoundTrigger$SoundModel;->TYPE_UNKNOWN:I
-Landroid/hardware/soundtrigger/SoundTrigger$SoundModelEvent;
 Landroid/hardware/soundtrigger/SoundTrigger$SoundModelEvent;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/hardware/soundtrigger/SoundTrigger$SoundModelEvent;->data:[B
 Landroid/hardware/soundtrigger/SoundTrigger$SoundModelEvent;->fromParcel(Landroid/os/Parcel;)Landroid/hardware/soundtrigger/SoundTrigger$SoundModelEvent;
 Landroid/hardware/soundtrigger/SoundTrigger$SoundModelEvent;->soundModelHandle:I
 Landroid/hardware/soundtrigger/SoundTrigger$SoundModelEvent;->status:I
-Landroid/hardware/soundtrigger/SoundTrigger$StatusListener;
 Landroid/hardware/soundtrigger/SoundTrigger$StatusListener;->onRecognition(Landroid/hardware/soundtrigger/SoundTrigger$RecognitionEvent;)V
 Landroid/hardware/soundtrigger/SoundTrigger$StatusListener;->onServiceDied()V
 Landroid/hardware/soundtrigger/SoundTrigger$StatusListener;->onServiceStateChange(I)V
@@ -26747,11 +24989,8 @@
 Landroid/hardware/soundtrigger/SoundTrigger;->STATUS_INVALID_OPERATION:I
 Landroid/hardware/soundtrigger/SoundTrigger;->STATUS_NO_INIT:I
 Landroid/hardware/soundtrigger/SoundTrigger;->STATUS_PERMISSION_DENIED:I
-Landroid/hardware/soundtrigger/SoundTriggerModule$NativeEventHandlerDelegate;
-Landroid/hardware/soundtrigger/SoundTriggerModule$NativeEventHandlerDelegate;-><init>(Landroid/hardware/soundtrigger/SoundTrigger$StatusListener;Landroid/os/Handler;)V
 Landroid/hardware/soundtrigger/SoundTriggerModule$NativeEventHandlerDelegate;->handler()Landroid/os/Handler;
 Landroid/hardware/soundtrigger/SoundTriggerModule$NativeEventHandlerDelegate;->mHandler:Landroid/os/Handler;
-Landroid/hardware/soundtrigger/SoundTriggerModule;
 Landroid/hardware/soundtrigger/SoundTriggerModule;-><init>(ILandroid/hardware/soundtrigger/SoundTrigger$StatusListener;Landroid/os/Handler;)V
 Landroid/hardware/soundtrigger/SoundTriggerModule;->EVENT_RECOGNITION:I
 Landroid/hardware/soundtrigger/SoundTriggerModule;->EVENT_SERVICE_DIED:I
@@ -26760,7 +24999,6 @@
 Landroid/hardware/soundtrigger/SoundTriggerModule;->mEventHandlerDelegate:Landroid/hardware/soundtrigger/SoundTriggerModule$NativeEventHandlerDelegate;
 Landroid/hardware/soundtrigger/SoundTriggerModule;->native_finalize()V
 Landroid/hardware/soundtrigger/SoundTriggerModule;->native_setup(Ljava/lang/Object;)V
-Landroid/hardware/SystemSensorManager$BaseEventQueue;
 Landroid/hardware/SystemSensorManager$BaseEventQueue;-><init>(Landroid/os/Looper;Landroid/hardware/SystemSensorManager;ILjava/lang/String;)V
 Landroid/hardware/SystemSensorManager$BaseEventQueue;->addSensor(Landroid/hardware/Sensor;II)Z
 Landroid/hardware/SystemSensorManager$BaseEventQueue;->addSensorEvent(Landroid/hardware/Sensor;)V
@@ -26787,14 +25025,11 @@
 Landroid/hardware/SystemSensorManager$BaseEventQueue;->removeAllSensors()Z
 Landroid/hardware/SystemSensorManager$BaseEventQueue;->removeSensor(Landroid/hardware/Sensor;Z)Z
 Landroid/hardware/SystemSensorManager$BaseEventQueue;->removeSensorEvent(Landroid/hardware/Sensor;)V
-Landroid/hardware/SystemSensorManager$InjectEventQueue;
-Landroid/hardware/SystemSensorManager$InjectEventQueue;-><init>(Landroid/os/Looper;Landroid/hardware/SystemSensorManager;Ljava/lang/String;)V
 Landroid/hardware/SystemSensorManager$InjectEventQueue;->addSensorEvent(Landroid/hardware/Sensor;)V
 Landroid/hardware/SystemSensorManager$InjectEventQueue;->dispatchFlushCompleteEvent(I)V
 Landroid/hardware/SystemSensorManager$InjectEventQueue;->dispatchSensorEvent(I[FIJ)V
 Landroid/hardware/SystemSensorManager$InjectEventQueue;->injectSensorData(I[FIJ)I
 Landroid/hardware/SystemSensorManager$InjectEventQueue;->removeSensorEvent(Landroid/hardware/Sensor;)V
-Landroid/hardware/SystemSensorManager$SensorEventQueue;
 Landroid/hardware/SystemSensorManager$SensorEventQueue;-><init>(Landroid/hardware/SensorEventListener;Landroid/os/Looper;Landroid/hardware/SystemSensorManager;Ljava/lang/String;)V
 Landroid/hardware/SystemSensorManager$SensorEventQueue;->addSensorEvent(Landroid/hardware/Sensor;)V
 Landroid/hardware/SystemSensorManager$SensorEventQueue;->dispatchAdditionalInfoEvent(III[F[I)V
@@ -26803,7 +25038,6 @@
 Landroid/hardware/SystemSensorManager$SensorEventQueue;->mListener:Landroid/hardware/SensorEventListener;
 Landroid/hardware/SystemSensorManager$SensorEventQueue;->mSensorsEvents:Landroid/util/SparseArray;
 Landroid/hardware/SystemSensorManager$SensorEventQueue;->removeSensorEvent(Landroid/hardware/Sensor;)V
-Landroid/hardware/SystemSensorManager$TriggerEventQueue;
 Landroid/hardware/SystemSensorManager$TriggerEventQueue;-><init>(Landroid/hardware/TriggerEventListener;Landroid/os/Looper;Landroid/hardware/SystemSensorManager;Ljava/lang/String;)V
 Landroid/hardware/SystemSensorManager$TriggerEventQueue;->addSensorEvent(Landroid/hardware/Sensor;)V
 Landroid/hardware/SystemSensorManager$TriggerEventQueue;->dispatchFlushCompleteEvent(I)V
@@ -26811,7 +25045,6 @@
 Landroid/hardware/SystemSensorManager$TriggerEventQueue;->mListener:Landroid/hardware/TriggerEventListener;
 Landroid/hardware/SystemSensorManager$TriggerEventQueue;->mTriggerEvents:Landroid/util/SparseArray;
 Landroid/hardware/SystemSensorManager$TriggerEventQueue;->removeSensorEvent(Landroid/hardware/Sensor;)V
-Landroid/hardware/SystemSensorManager;
 Landroid/hardware/SystemSensorManager;-><init>(Landroid/content/Context;Landroid/os/Looper;)V
 Landroid/hardware/SystemSensorManager;->cancelTriggerSensorImpl(Landroid/hardware/TriggerEventListener;Landroid/hardware/Sensor;Z)Z
 Landroid/hardware/SystemSensorManager;->cleanupSensorConnection(Landroid/hardware/Sensor;)V
@@ -26861,7 +25094,6 @@
 Landroid/hardware/SystemSensorManager;->unregisterListenerImpl(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;)V
 Landroid/hardware/SystemSensorManager;->updateDynamicSensorList()V
 Landroid/hardware/TriggerEvent;-><init>(I)V
-Landroid/hardware/usb/AccessoryFilter;
 Landroid/hardware/usb/AccessoryFilter;-><init>(Landroid/hardware/usb/UsbAccessory;)V
 Landroid/hardware/usb/AccessoryFilter;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/hardware/usb/AccessoryFilter;->contains(Landroid/hardware/usb/AccessoryFilter;)Z
@@ -26872,7 +25104,6 @@
 Landroid/hardware/usb/AccessoryFilter;->mVersion:Ljava/lang/String;
 Landroid/hardware/usb/AccessoryFilter;->read(Lorg/xmlpull/v1/XmlPullParser;)Landroid/hardware/usb/AccessoryFilter;
 Landroid/hardware/usb/AccessoryFilter;->write(Lorg/xmlpull/v1/XmlSerializer;)V
-Landroid/hardware/usb/DeviceFilter;
 Landroid/hardware/usb/DeviceFilter;-><init>(IIIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/hardware/usb/DeviceFilter;-><init>(Landroid/hardware/usb/UsbDevice;)V
 Landroid/hardware/usb/DeviceFilter;->contains(Landroid/hardware/usb/DeviceFilter;)Z
@@ -26890,7 +25121,6 @@
 Landroid/hardware/usb/DeviceFilter;->read(Lorg/xmlpull/v1/XmlPullParser;)Landroid/hardware/usb/DeviceFilter;
 Landroid/hardware/usb/DeviceFilter;->TAG:Ljava/lang/String;
 Landroid/hardware/usb/DeviceFilter;->write(Lorg/xmlpull/v1/XmlSerializer;)V
-Landroid/hardware/usb/IUsbManager$Stub$Proxy;
 Landroid/hardware/usb/IUsbManager$Stub$Proxy;->allowUsbDebugging(ZLjava/lang/String;)V
 Landroid/hardware/usb/IUsbManager$Stub$Proxy;->clearDefaults(Ljava/lang/String;I)V
 Landroid/hardware/usb/IUsbManager$Stub$Proxy;->clearUsbDebuggingKeys()V
@@ -26921,7 +25151,6 @@
 Landroid/hardware/usb/IUsbManager$Stub$Proxy;->setPortRoles(Ljava/lang/String;II)V
 Landroid/hardware/usb/IUsbManager$Stub$Proxy;->setScreenUnlockedFunctions(J)V
 Landroid/hardware/usb/IUsbManager$Stub$Proxy;->setUsbDeviceConnectionHandler(Landroid/content/ComponentName;)V
-Landroid/hardware/usb/IUsbManager$Stub;
 Landroid/hardware/usb/IUsbManager$Stub;-><init>()V
 Landroid/hardware/usb/IUsbManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_allowUsbDebugging:I
@@ -26952,7 +25181,6 @@
 Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_setPortRoles:I
 Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_setScreenUnlockedFunctions:I
 Landroid/hardware/usb/IUsbManager$Stub;->TRANSACTION_setUsbDeviceConnectionHandler:I
-Landroid/hardware/usb/IUsbManager;
 Landroid/hardware/usb/IUsbManager;->allowUsbDebugging(ZLjava/lang/String;)V
 Landroid/hardware/usb/IUsbManager;->clearDefaults(Ljava/lang/String;I)V
 Landroid/hardware/usb/IUsbManager;->clearUsbDebuggingKeys()V
@@ -27096,7 +25324,6 @@
 Landroid/hardware/usb/UsbManager;->USB_FUNCTION_PTP:Ljava/lang/String;
 Landroid/hardware/usb/UsbManager;->USB_FUNCTION_RNDIS:Ljava/lang/String;
 Landroid/hardware/usb/UsbManager;->USB_HOST_CONNECTED:Ljava/lang/String;
-Landroid/hardware/usb/UsbPort;
 Landroid/hardware/usb/UsbPort;-><init>(Ljava/lang/String;I)V
 Landroid/hardware/usb/UsbPort;->checkDataRole(I)V
 Landroid/hardware/usb/UsbPort;->checkMode(I)V
@@ -27127,7 +25354,6 @@
 Landroid/hardware/usb/UsbPort;->POWER_ROLE_SINK:I
 Landroid/hardware/usb/UsbPort;->POWER_ROLE_SOURCE:I
 Landroid/hardware/usb/UsbPort;->roleCombinationsToString(I)Ljava/lang/String;
-Landroid/hardware/usb/UsbPortStatus;
 Landroid/hardware/usb/UsbPortStatus;-><init>(IIII)V
 Landroid/hardware/usb/UsbPortStatus;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/hardware/usb/UsbPortStatus;->mCurrentDataRole:I
@@ -27162,25 +25388,17 @@
 Landroid/icu/impl/BMPSet;->listLength:I
 Landroid/icu/impl/BMPSet;->set32x64Bits([III)V
 Landroid/icu/impl/BMPSet;->table7FF:[I
-Landroid/icu/impl/CacheValue$NullValue;
 Landroid/icu/impl/CacheValue$NullValue;-><init>()V
-Landroid/icu/impl/CacheValue$SoftValue;
 Landroid/icu/impl/CacheValue$SoftValue;-><init>(Ljava/lang/Object;)V
 Landroid/icu/impl/CacheValue$SoftValue;->ref:Ljava/lang/ref/Reference;
-Landroid/icu/impl/CacheValue$Strength;-><init>()V
-Landroid/icu/impl/CacheValue$StrongValue;
 Landroid/icu/impl/CacheValue$StrongValue;-><init>(Ljava/lang/Object;)V
 Landroid/icu/impl/CacheValue$StrongValue;->value:Ljava/lang/Object;
 Landroid/icu/impl/CacheValue;->NULL_VALUE:Landroid/icu/impl/CacheValue;
 Landroid/icu/impl/CacheValue;->strength:Landroid/icu/impl/CacheValue$Strength;
-Landroid/icu/impl/CalendarAstronomer$AngleFunc;
 Landroid/icu/impl/CalendarAstronomer$AngleFunc;->eval()D
-Landroid/icu/impl/CalendarAstronomer$CoordFunc;
 Landroid/icu/impl/CalendarAstronomer$CoordFunc;->eval()Landroid/icu/impl/CalendarAstronomer$Equatorial;
-Landroid/icu/impl/CalendarAstronomer$MoonAge;
 Landroid/icu/impl/CalendarAstronomer$MoonAge;-><init>(D)V
 Landroid/icu/impl/CalendarAstronomer$MoonAge;->value:D
-Landroid/icu/impl/CalendarAstronomer$SolarLongitude;
 Landroid/icu/impl/CalendarAstronomer$SolarLongitude;-><init>(D)V
 Landroid/icu/impl/CalendarAstronomer$SolarLongitude;->value:D
 Landroid/icu/impl/CalendarAstronomer;->clearCache()V
@@ -27243,9 +25461,6 @@
 Landroid/icu/impl/CalendarCache;->values:[J
 Landroid/icu/impl/CharTrie;->m_data_:[C
 Landroid/icu/impl/CharTrie;->m_initialValue_:C
-Landroid/icu/impl/CurrencyData$CurrencySpacingInfo$SpacingPattern;-><init>()V
-Landroid/icu/impl/CurrencyData$CurrencySpacingInfo$SpacingPattern;-><init>(I)V
-Landroid/icu/impl/CurrencyData$CurrencySpacingInfo$SpacingType;-><init>()V
 Landroid/icu/impl/CurrencyData$CurrencySpacingInfo;->DEFAULT_CTX_MATCH:Ljava/lang/String;
 Landroid/icu/impl/CurrencyData$CurrencySpacingInfo;->DEFAULT_CUR_MATCH:Ljava/lang/String;
 Landroid/icu/impl/CurrencyData$CurrencySpacingInfo;->DEFAULT_INSERT:Ljava/lang/String;
@@ -27254,8 +25469,6 @@
 Landroid/icu/impl/CurrencyData$DefaultInfo;->fallback:Z
 Landroid/icu/impl/CurrencyData$DefaultInfo;->FALLBACK_INSTANCE:Landroid/icu/impl/CurrencyData$CurrencyDisplayInfo;
 Landroid/icu/impl/CurrencyData$DefaultInfo;->NO_FALLBACK_INSTANCE:Landroid/icu/impl/CurrencyData$CurrencyDisplayInfo;
-Landroid/icu/impl/DayPeriodRules$CutoffType;
-Landroid/icu/impl/DayPeriodRules$CutoffType;-><init>()V
 Landroid/icu/impl/DayPeriodRules$CutoffType;->AFTER:Landroid/icu/impl/DayPeriodRules$CutoffType;
 Landroid/icu/impl/DayPeriodRules$CutoffType;->AT:Landroid/icu/impl/DayPeriodRules$CutoffType;
 Landroid/icu/impl/DayPeriodRules$CutoffType;->BEFORE:Landroid/icu/impl/DayPeriodRules$CutoffType;
@@ -27263,17 +25476,13 @@
 Landroid/icu/impl/DayPeriodRules$CutoffType;->fromStringOrNull(Ljava/lang/CharSequence;)Landroid/icu/impl/DayPeriodRules$CutoffType;
 Landroid/icu/impl/DayPeriodRules$CutoffType;->valueOf(Ljava/lang/String;)Landroid/icu/impl/DayPeriodRules$CutoffType;
 Landroid/icu/impl/DayPeriodRules$CutoffType;->values()[Landroid/icu/impl/DayPeriodRules$CutoffType;
-Landroid/icu/impl/DayPeriodRules$DayPeriod;-><init>()V
 Landroid/icu/impl/DayPeriodRules$DayPeriod;->fromStringOrNull(Ljava/lang/CharSequence;)Landroid/icu/impl/DayPeriodRules$DayPeriod;
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesCountSink;
 Landroid/icu/impl/DayPeriodRules$DayPeriodRulesCountSink;-><init>(Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;)V
 Landroid/icu/impl/DayPeriodRules$DayPeriodRulesCountSink;->data:Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;
 Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;-><init>()V
 Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;->localesToRuleSetNumMap:Ljava/util/Map;
 Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;->maxRuleSetNum:I
 Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;->rules:[Landroid/icu/impl/DayPeriodRules;
-Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;
 Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;-><init>(Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;)V
 Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;->addCutoff(Landroid/icu/impl/DayPeriodRules$CutoffType;Ljava/lang/String;)V
 Landroid/icu/impl/DayPeriodRules$DayPeriodRulesDataSink;->cutoffs:[I
@@ -27294,14 +25503,11 @@
 Landroid/icu/impl/DayPeriodRules;->hasNoon:Z
 Landroid/icu/impl/DayPeriodRules;->loadData()Landroid/icu/impl/DayPeriodRules$DayPeriodRulesData;
 Landroid/icu/impl/DayPeriodRules;->parseSetNum(Ljava/lang/String;)I
-Landroid/icu/impl/ICUBinary$DataFile;
 Landroid/icu/impl/ICUBinary$DataFile;-><init>(Ljava/lang/String;)V
 Landroid/icu/impl/ICUBinary$DataFile;->addBaseNamesInFolder(Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
 Landroid/icu/impl/ICUBinary$DataFile;->getData(Ljava/lang/String;)Ljava/nio/ByteBuffer;
 Landroid/icu/impl/ICUBinary$DataFile;->itemPath:Ljava/lang/String;
-Landroid/icu/impl/ICUBinary$DatPackageReader$IsAcceptable;
 Landroid/icu/impl/ICUBinary$DatPackageReader$IsAcceptable;-><init>()V
-Landroid/icu/impl/ICUBinary$DatPackageReader;
 Landroid/icu/impl/ICUBinary$DatPackageReader;-><init>()V
 Landroid/icu/impl/ICUBinary$DatPackageReader;->addBaseName(Ljava/nio/ByteBuffer;ILjava/lang/String;Ljava/lang/String;Ljava/lang/StringBuilder;Ljava/util/Set;)Z
 Landroid/icu/impl/ICUBinary$DatPackageReader;->addBaseNamesInFolder(Ljava/nio/ByteBuffer;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
@@ -27313,12 +25519,10 @@
 Landroid/icu/impl/ICUBinary$DatPackageReader;->IS_ACCEPTABLE:Landroid/icu/impl/ICUBinary$DatPackageReader$IsAcceptable;
 Landroid/icu/impl/ICUBinary$DatPackageReader;->startsWithPackageName(Ljava/nio/ByteBuffer;I)Z
 Landroid/icu/impl/ICUBinary$DatPackageReader;->validate(Ljava/nio/ByteBuffer;)Z
-Landroid/icu/impl/ICUBinary$PackageDataFile;
 Landroid/icu/impl/ICUBinary$PackageDataFile;-><init>(Ljava/lang/String;Ljava/nio/ByteBuffer;)V
 Landroid/icu/impl/ICUBinary$PackageDataFile;->addBaseNamesInFolder(Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
 Landroid/icu/impl/ICUBinary$PackageDataFile;->getData(Ljava/lang/String;)Ljava/nio/ByteBuffer;
 Landroid/icu/impl/ICUBinary$PackageDataFile;->pkgBytes:Ljava/nio/ByteBuffer;
-Landroid/icu/impl/ICUBinary$SingleDataFile;
 Landroid/icu/impl/ICUBinary$SingleDataFile;-><init>(Ljava/lang/String;Ljava/io/File;)V
 Landroid/icu/impl/ICUBinary$SingleDataFile;->addBaseNamesInFolder(Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
 Landroid/icu/impl/ICUBinary$SingleDataFile;->getData(Ljava/lang/String;)Ljava/nio/ByteBuffer;
@@ -27337,7 +25541,6 @@
 Landroid/icu/impl/ICUBinary;->MAGIC2:B
 Landroid/icu/impl/ICUBinary;->MAGIC_NUMBER_AUTHENTICATION_FAILED_:Ljava/lang/String;
 Landroid/icu/impl/ICUBinary;->mapFile(Ljava/io/File;)Ljava/nio/ByteBuffer;
-Landroid/icu/impl/ICUResourceBundle$AvailEntry;
 Landroid/icu/impl/ICUResourceBundle$AvailEntry;-><init>(Ljava/lang/String;Ljava/lang/ClassLoader;)V
 Landroid/icu/impl/ICUResourceBundle$AvailEntry;->fullNameSet:Ljava/util/Set;
 Landroid/icu/impl/ICUResourceBundle$AvailEntry;->getFullLocaleNameSet()Ljava/util/Set;
@@ -27349,10 +25552,8 @@
 Landroid/icu/impl/ICUResourceBundle$AvailEntry;->nameSet:Ljava/util/Set;
 Landroid/icu/impl/ICUResourceBundle$AvailEntry;->prefix:Ljava/lang/String;
 Landroid/icu/impl/ICUResourceBundle$AvailEntry;->ulocales:[Landroid/icu/util/ULocale;
-Landroid/icu/impl/ICUResourceBundle$Loader;
 Landroid/icu/impl/ICUResourceBundle$Loader;-><init>()V
 Landroid/icu/impl/ICUResourceBundle$Loader;->load()Landroid/icu/impl/ICUResourceBundle;
-Landroid/icu/impl/ICUResourceBundle$OpenType;-><init>()V
 Landroid/icu/impl/ICUResourceBundle$WholeBundle;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;Landroid/icu/impl/ICUResourceBundleReader;)V
 Landroid/icu/impl/ICUResourceBundle$WholeBundle;->baseName:Ljava/lang/String;
 Landroid/icu/impl/ICUResourceBundle$WholeBundle;->loader:Ljava/lang/ClassLoader;
@@ -27393,15 +25594,11 @@
 Landroid/icu/impl/ICUResourceBundle;->RES_PATH_SEP_CHAR:C
 Landroid/icu/impl/ICUResourceBundle;->RES_PATH_SEP_STR:Ljava/lang/String;
 Landroid/icu/impl/ICUResourceBundle;->wholeBundle:Landroid/icu/impl/ICUResourceBundle$WholeBundle;
-Landroid/icu/impl/ICUResourceBundleReader$Array16;
 Landroid/icu/impl/ICUResourceBundleReader$Array16;-><init>(Landroid/icu/impl/ICUResourceBundleReader;I)V
 Landroid/icu/impl/ICUResourceBundleReader$Array16;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I
-Landroid/icu/impl/ICUResourceBundleReader$Array32;
 Landroid/icu/impl/ICUResourceBundleReader$Array32;-><init>(Landroid/icu/impl/ICUResourceBundleReader;I)V
 Landroid/icu/impl/ICUResourceBundleReader$Array32;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I
-Landroid/icu/impl/ICUResourceBundleReader$Array;
 Landroid/icu/impl/ICUResourceBundleReader$Array;-><init>()V
-Landroid/icu/impl/ICUResourceBundleReader$Container;
 Landroid/icu/impl/ICUResourceBundleReader$Container;-><init>()V
 Landroid/icu/impl/ICUResourceBundleReader$Container;->getContainer16Resource(Landroid/icu/impl/ICUResourceBundleReader;I)I
 Landroid/icu/impl/ICUResourceBundleReader$Container;->getContainer32Resource(Landroid/icu/impl/ICUResourceBundleReader;I)I
@@ -27410,22 +25607,17 @@
 Landroid/icu/impl/ICUResourceBundleReader$Container;->getSize()I
 Landroid/icu/impl/ICUResourceBundleReader$Container;->itemsOffset:I
 Landroid/icu/impl/ICUResourceBundleReader$Container;->size:I
-Landroid/icu/impl/ICUResourceBundleReader$IsAcceptable;
 Landroid/icu/impl/ICUResourceBundleReader$IsAcceptable;-><init>()V
-Landroid/icu/impl/ICUResourceBundleReader$ReaderCache;
 Landroid/icu/impl/ICUResourceBundleReader$ReaderCache;-><init>()V
 Landroid/icu/impl/ICUResourceBundleReader$ReaderCache;->createInstance(Landroid/icu/impl/ICUResourceBundleReader$ReaderCacheKey;Ljava/lang/ClassLoader;)Landroid/icu/impl/ICUResourceBundleReader;
 Landroid/icu/impl/ICUResourceBundleReader$ReaderCache;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
-Landroid/icu/impl/ICUResourceBundleReader$ReaderCacheKey;
 Landroid/icu/impl/ICUResourceBundleReader$ReaderCacheKey;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/icu/impl/ICUResourceBundleReader$ReaderCacheKey;->baseName:Ljava/lang/String;
 Landroid/icu/impl/ICUResourceBundleReader$ReaderCacheKey;->localeID:Ljava/lang/String;
-Landroid/icu/impl/ICUResourceBundleReader$ReaderValue;
 Landroid/icu/impl/ICUResourceBundleReader$ReaderValue;-><init>()V
 Landroid/icu/impl/ICUResourceBundleReader$ReaderValue;->getStringArray(Landroid/icu/impl/ICUResourceBundleReader$Array;)[Ljava/lang/String;
 Landroid/icu/impl/ICUResourceBundleReader$ReaderValue;->reader:Landroid/icu/impl/ICUResourceBundleReader;
 Landroid/icu/impl/ICUResourceBundleReader$ReaderValue;->res:I
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;
 Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;-><init>(II)V
 Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;->get(I)Ljava/lang/Object;
 Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;->keys:[I
@@ -27434,7 +25626,6 @@
 Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;->putIfAbsent(ILjava/lang/Object;I)Ljava/lang/Object;
 Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;->shift:I
 Landroid/icu/impl/ICUResourceBundleReader$ResourceCache$Level;->values:[Ljava/lang/Object;
-Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;
 Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;-><init>(I)V
 Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->findSimple(I)I
 Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->get(I)Ljava/lang/Object;
@@ -27451,16 +25642,12 @@
 Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->SIMPLE_LENGTH:I
 Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->storeDirectly(I)Z
 Landroid/icu/impl/ICUResourceBundleReader$ResourceCache;->values:[Ljava/lang/Object;
-Landroid/icu/impl/ICUResourceBundleReader$Table1632;
 Landroid/icu/impl/ICUResourceBundleReader$Table1632;-><init>(Landroid/icu/impl/ICUResourceBundleReader;I)V
 Landroid/icu/impl/ICUResourceBundleReader$Table1632;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I
-Landroid/icu/impl/ICUResourceBundleReader$Table16;
 Landroid/icu/impl/ICUResourceBundleReader$Table16;-><init>(Landroid/icu/impl/ICUResourceBundleReader;I)V
 Landroid/icu/impl/ICUResourceBundleReader$Table16;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I
-Landroid/icu/impl/ICUResourceBundleReader$Table32;
 Landroid/icu/impl/ICUResourceBundleReader$Table32;-><init>(Landroid/icu/impl/ICUResourceBundleReader;I)V
 Landroid/icu/impl/ICUResourceBundleReader$Table32;->getContainerResource(Landroid/icu/impl/ICUResourceBundleReader;I)I
-Landroid/icu/impl/ICUResourceBundleReader$Table;
 Landroid/icu/impl/ICUResourceBundleReader$Table;-><init>()V
 Landroid/icu/impl/ICUResourceBundleReader$Table;->findTableItem(Landroid/icu/impl/ICUResourceBundleReader;Ljava/lang/CharSequence;)I
 Landroid/icu/impl/ICUResourceBundleReader$Table;->getKey(Landroid/icu/impl/ICUResourceBundleReader;I)Ljava/lang/String;
@@ -27550,13 +25737,11 @@
 Landroid/icu/impl/ICUResourceBundleReader;->usesPoolBundle:Z
 Landroid/icu/impl/locale/AsciiUtil$CaseInsensitiveKey;->_hash:I
 Landroid/icu/impl/locale/AsciiUtil$CaseInsensitiveKey;->_key:Ljava/lang/String;
-Landroid/icu/impl/locale/BaseLocale$Cache;
 Landroid/icu/impl/locale/BaseLocale$Cache;-><init>()V
 Landroid/icu/impl/locale/BaseLocale$Cache;->createObject(Landroid/icu/impl/locale/BaseLocale$Key;)Landroid/icu/impl/locale/BaseLocale;
 Landroid/icu/impl/locale/BaseLocale$Cache;->createObject(Ljava/lang/Object;)Ljava/lang/Object;
 Landroid/icu/impl/locale/BaseLocale$Cache;->normalizeKey(Landroid/icu/impl/locale/BaseLocale$Key;)Landroid/icu/impl/locale/BaseLocale$Key;
 Landroid/icu/impl/locale/BaseLocale$Cache;->normalizeKey(Ljava/lang/Object;)Ljava/lang/Object;
-Landroid/icu/impl/locale/BaseLocale$Key;
 Landroid/icu/impl/locale/BaseLocale$Key;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/icu/impl/locale/BaseLocale$Key;->compareTo(Landroid/icu/impl/locale/BaseLocale$Key;)I
 Landroid/icu/impl/locale/BaseLocale$Key;->compareTo(Ljava/lang/Object;)I
@@ -27576,11 +25761,9 @@
 Landroid/icu/impl/locale/BaseLocale;->_variant:Ljava/lang/String;
 Landroid/icu/impl/locale/Extension;-><init>(CLjava/lang/String;)V
 Landroid/icu/impl/locale/Extension;->_key:C
-Landroid/icu/impl/locale/InternalLocaleBuilder$CaseInsensitiveChar;
 Landroid/icu/impl/locale/InternalLocaleBuilder$CaseInsensitiveChar;-><init>(C)V
 Landroid/icu/impl/locale/InternalLocaleBuilder$CaseInsensitiveChar;->value()C
 Landroid/icu/impl/locale/InternalLocaleBuilder$CaseInsensitiveChar;->_c:C
-Landroid/icu/impl/locale/InternalLocaleBuilder$CaseInsensitiveString;
 Landroid/icu/impl/locale/InternalLocaleBuilder$CaseInsensitiveString;-><init>(Ljava/lang/String;)V
 Landroid/icu/impl/locale/InternalLocaleBuilder$CaseInsensitiveString;->value()Ljava/lang/String;
 Landroid/icu/impl/locale/InternalLocaleBuilder$CaseInsensitiveString;->_s:Ljava/lang/String;
@@ -27620,7 +25803,6 @@
 Landroid/icu/impl/locale/LocaleExtensions;->toID(Ljava/util/SortedMap;)Ljava/lang/String;
 Landroid/icu/impl/locale/LocaleExtensions;->_id:Ljava/lang/String;
 Landroid/icu/impl/locale/LocaleExtensions;->_map:Ljava/util/SortedMap;
-Landroid/icu/impl/locale/LocaleObjectCache$CacheEntry;
 Landroid/icu/impl/locale/LocaleObjectCache$CacheEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
 Landroid/icu/impl/locale/LocaleObjectCache$CacheEntry;->getKey()Ljava/lang/Object;
 Landroid/icu/impl/locale/LocaleObjectCache$CacheEntry;->_key:Ljava/lang/Object;
@@ -27647,12 +25829,10 @@
 Landroid/icu/impl/locale/XCldrStub$Multimap;->getInstance()Ljava/util/Set;
 Landroid/icu/impl/locale/XCldrStub$Multimap;->map:Ljava/util/Map;
 Landroid/icu/impl/locale/XCldrStub$Multimap;->setClass:Ljava/lang/Class;
-Landroid/icu/impl/locale/XCldrStub$MultimapIterator;
 Landroid/icu/impl/locale/XCldrStub$MultimapIterator;-><init>(Ljava/util/Map;)V
 Landroid/icu/impl/locale/XCldrStub$MultimapIterator;->entry:Landroid/icu/impl/locale/XCldrStub$ReusableEntry;
 Landroid/icu/impl/locale/XCldrStub$MultimapIterator;->it1:Ljava/util/Iterator;
 Landroid/icu/impl/locale/XCldrStub$MultimapIterator;->it2:Ljava/util/Iterator;
-Landroid/icu/impl/locale/XCldrStub$ReusableEntry;
 Landroid/icu/impl/locale/XCldrStub$ReusableEntry;-><init>()V
 Landroid/icu/impl/locale/XCldrStub$ReusableEntry;->key:Ljava/lang/Object;
 Landroid/icu/impl/locale/XCldrStub$ReusableEntry;->value:Ljava/lang/Object;
@@ -27662,7 +25842,6 @@
 Landroid/icu/impl/locale/XLikelySubtags$Aliases;->toAliases:Landroid/icu/impl/locale/XCldrStub$Multimap;
 Landroid/icu/impl/locale/XLikelySubtags$Aliases;->toCanonical:Ljava/util/Map;
 Landroid/icu/impl/locale/XLikelySubtags$LSR;->from(Ljava/lang/String;)Landroid/icu/impl/locale/XLikelySubtags$LSR;
-Landroid/icu/impl/locale/XLikelySubtags$Maker;
 Landroid/icu/impl/locale/XLikelySubtags$Maker;-><init>()V
 Landroid/icu/impl/locale/XLikelySubtags$Maker;->getSubtable(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
 Landroid/icu/impl/locale/XLikelySubtags$Maker;->HASHMAP:Landroid/icu/impl/locale/XLikelySubtags$Maker;
@@ -27676,29 +25855,24 @@
 Landroid/icu/impl/locale/XLikelySubtags;->set(Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/icu/impl/locale/XLikelySubtags$LSR;)V
 Landroid/icu/impl/locale/XLikelySubtags;->set(Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V
 Landroid/icu/impl/locale/XLikelySubtags;->show(Ljava/util/Map;Ljava/lang/String;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
-Landroid/icu/impl/locale/XLocaleDistance$AddSub;
 Landroid/icu/impl/locale/XLocaleDistance$AddSub;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;)V
 Landroid/icu/impl/locale/XLocaleDistance$AddSub;->desiredSub:Ljava/lang/String;
 Landroid/icu/impl/locale/XLocaleDistance$AddSub;->r:Landroid/icu/impl/locale/XLocaleDistance$CopyIfEmpty;
 Landroid/icu/impl/locale/XLocaleDistance$AddSub;->supportedSub:Ljava/lang/String;
 Landroid/icu/impl/locale/XLocaleDistance$AddSub;->test(Landroid/icu/impl/locale/XLocaleDistance$DistanceNode;)Z
 Landroid/icu/impl/locale/XLocaleDistance$AddSub;->test(Ljava/lang/Object;)Z
-Landroid/icu/impl/locale/XLocaleDistance$CompactAndImmutablizer;
 Landroid/icu/impl/locale/XLocaleDistance$CompactAndImmutablizer;-><init>()V
 Landroid/icu/impl/locale/XLocaleDistance$CompactAndImmutablizer;->compact(Landroid/icu/impl/locale/XLocaleDistance$DistanceNode;)Landroid/icu/impl/locale/XLocaleDistance$DistanceNode;
 Landroid/icu/impl/locale/XLocaleDistance$CompactAndImmutablizer;->compact(Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;)Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;
 Landroid/icu/impl/locale/XLocaleDistance$CompactAndImmutablizer;->compact(Ljava/util/Map;I)Ljava/util/Map;
-Landroid/icu/impl/locale/XLocaleDistance$CopyIfEmpty;
 Landroid/icu/impl/locale/XLocaleDistance$CopyIfEmpty;-><init>(Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;)V
 Landroid/icu/impl/locale/XLocaleDistance$CopyIfEmpty;->test(Landroid/icu/impl/locale/XLocaleDistance$DistanceNode;)Z
 Landroid/icu/impl/locale/XLocaleDistance$CopyIfEmpty;->test(Ljava/lang/Object;)Z
 Landroid/icu/impl/locale/XLocaleDistance$CopyIfEmpty;->toCopy:Landroid/icu/impl/locale/XLocaleDistance$StringDistanceTable;
 Landroid/icu/impl/locale/XLocaleDistance$DistanceNode;->distance:I
-Landroid/icu/impl/locale/XLocaleDistance$DistanceOption;-><init>()V
 Landroid/icu/impl/locale/XLocaleDistance$DistanceTable;->getCloser(I)Ljava/util/Set;
 Landroid/icu/impl/locale/XLocaleDistance$DistanceTable;->getDistance(Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/Output;Z)I
 Landroid/icu/impl/locale/XLocaleDistance$DistanceTable;->toString(Z)Ljava/lang/String;
-Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;
 Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;-><init>()V
 Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;-><init>(Ljava/lang/String;)V
 Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;-><init>(Ljava/lang/String;Ljava/lang/Object;)V
@@ -27712,17 +25886,13 @@
 Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;->size()I
 Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;->toId(Ljava/lang/Object;)Ljava/lang/Integer;
 Landroid/icu/impl/locale/XLocaleDistance$IdMakerFull;->toId(Ljava/lang/Object;)Ljava/lang/Object;
-Landroid/icu/impl/locale/XLocaleDistance$IdMapper;
 Landroid/icu/impl/locale/XLocaleDistance$IdMapper;->toId(Ljava/lang/Object;)Ljava/lang/Object;
-Landroid/icu/impl/locale/XLocaleDistance$RegionMapper$Builder;
 Landroid/icu/impl/locale/XLocaleDistance$RegionMapper$Builder;-><init>()V
 Landroid/icu/impl/locale/XLocaleDistance$RegionMapper$Builder;->add(Ljava/lang/String;Ljava/lang/String;)V
-Landroid/icu/impl/locale/XLocaleDistance$RegionMapper$Builder;->addParadigms([[Ljava/lang/String;)Landroid/icu/impl/locale/XLocaleDistance$RegionMapper$Builder;
 Landroid/icu/impl/locale/XLocaleDistance$RegionMapper$Builder;->build()Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;
 Landroid/icu/impl/locale/XLocaleDistance$RegionMapper$Builder;->paradigms:Ljava/util/Set;
 Landroid/icu/impl/locale/XLocaleDistance$RegionMapper$Builder;->regionSet:Landroid/icu/impl/locale/XLocaleDistance$RegionSet;
 Landroid/icu/impl/locale/XLocaleDistance$RegionMapper$Builder;->regionToRawPartition:Landroid/icu/impl/locale/XCldrStub$Multimap;
-Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;
 Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;-><init>(Landroid/icu/impl/locale/XCldrStub$Multimap;Ljava/util/Map;Landroid/icu/impl/locale/XCldrStub$Multimap;Ljava/util/Set;)V
 Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;->getIdsFromVariable(Ljava/lang/String;)Ljava/util/Collection;
 Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;->macroToPartitions:Landroid/icu/impl/locale/XCldrStub$Multimap;
@@ -27733,13 +25903,10 @@
 Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;->toId(Ljava/lang/String;)Ljava/lang/String;
 Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;->variables()Ljava/util/Set;
 Landroid/icu/impl/locale/XLocaleDistance$RegionMapper;->variableToPartition:Landroid/icu/impl/locale/XCldrStub$Multimap;
-Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;
-Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;-><init>()V
 Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;->add:Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;
 Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;->remove:Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;
 Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;->valueOf(Ljava/lang/String;)Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;
 Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;->values()[Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;
-Landroid/icu/impl/locale/XLocaleDistance$RegionSet;
 Landroid/icu/impl/locale/XLocaleDistance$RegionSet;-><init>()V
 Landroid/icu/impl/locale/XLocaleDistance$RegionSet;->add(Ljava/lang/String;II)V
 Landroid/icu/impl/locale/XLocaleDistance$RegionSet;->changeSet(Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;Ljava/lang/String;)V
@@ -27747,7 +25914,6 @@
 Landroid/icu/impl/locale/XLocaleDistance$RegionSet;->operation:Landroid/icu/impl/locale/XLocaleDistance$RegionSet$Operation;
 Landroid/icu/impl/locale/XLocaleDistance$RegionSet;->parseSet(Ljava/lang/String;)Ljava/util/Set;
 Landroid/icu/impl/locale/XLocaleDistance$RegionSet;->tempRegions:Ljava/util/Set;
-Landroid/icu/impl/locale/XLocaleDistance$StringDistanceNode;
 Landroid/icu/impl/locale/XLocaleDistance$StringDistanceNode;-><init>(I)V
 Landroid/icu/impl/locale/XLocaleDistance$StringDistanceNode;-><init>(ILandroid/icu/impl/locale/XLocaleDistance$DistanceTable;)V
 Landroid/icu/impl/locale/XLocaleDistance$StringDistanceNode;->addSubtables(Ljava/lang/String;Ljava/lang/String;Landroid/icu/impl/locale/XLocaleDistance$CopyIfEmpty;)V
@@ -27798,7 +25964,6 @@
 Landroid/icu/impl/locale/XLocaleMatcher;->thresholdDistance:I
 Landroid/icu/impl/locale/XLocaleMatcher;->UND:Landroid/icu/impl/locale/XLikelySubtags$LSR;
 Landroid/icu/impl/locale/XLocaleMatcher;->UND_LOCALE:Landroid/icu/util/ULocale;
-Landroid/icu/impl/Normalizer2Impl$IsAcceptable;
 Landroid/icu/impl/Normalizer2Impl$IsAcceptable;-><init>()V
 Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->app:Ljava/lang/Appendable;
 Landroid/icu/impl/Normalizer2Impl$ReorderingBuffer;->appIsStringBuilder:Z
@@ -27892,10 +26057,8 @@
 Landroid/icu/impl/number/AffixUtils;->STATE_SECOND_CURR:I
 Landroid/icu/impl/number/AffixUtils;->STATE_THIRD_CURR:I
 Landroid/icu/impl/number/AffixUtils;->TYPE_CODEPOINT:I
-Landroid/icu/impl/number/CompactData$CompactDataSink;
 Landroid/icu/impl/number/CompactData$CompactDataSink;-><init>(Landroid/icu/impl/number/CompactData;)V
 Landroid/icu/impl/number/CompactData$CompactDataSink;->data:Landroid/icu/impl/number/CompactData;
-Landroid/icu/impl/number/CompactData$CompactType;-><init>()V
 Landroid/icu/impl/number/CompactData;->COMPACT_MAX_DIGITS:I
 Landroid/icu/impl/number/CompactData;->countZeros(Ljava/lang/String;)I
 Landroid/icu/impl/number/CompactData;->getIndex(ILandroid/icu/impl/StandardPlural;)I
@@ -28018,7 +26181,6 @@
 Landroid/icu/impl/number/NumberStringBuilder;->prepareForInsert(II)I
 Landroid/icu/impl/number/NumberStringBuilder;->prepareForInsertHelper(II)I
 Landroid/icu/impl/number/NumberStringBuilder;->zero:I
-Landroid/icu/impl/number/Padder$PadPosition;-><init>()V
 Landroid/icu/impl/number/Padder;->addPaddingHelper(Ljava/lang/String;ILandroid/icu/impl/number/NumberStringBuilder;I)I
 Landroid/icu/impl/number/Padder;->paddingString:Ljava/lang/String;
 Landroid/icu/impl/number/Padder;->position:Landroid/icu/impl/number/Padder$PadPosition;
@@ -28028,7 +26190,6 @@
 Landroid/icu/impl/number/ParameterizedModifier;->mods:[Landroid/icu/impl/number/Modifier;
 Landroid/icu/impl/number/ParameterizedModifier;->negative:Landroid/icu/impl/number/Modifier;
 Landroid/icu/impl/number/ParameterizedModifier;->positive:Landroid/icu/impl/number/Modifier;
-Landroid/icu/impl/number/Parse$AffixHolder;
 Landroid/icu/impl/number/Parse$AffixHolder;-><init>(Ljava/lang/String;Ljava/lang/String;ZZ)V
 Landroid/icu/impl/number/Parse$AffixHolder;->addToState(Landroid/icu/impl/number/Parse$ParserState;Landroid/icu/impl/number/DecimalFormatProperties;)V
 Landroid/icu/impl/number/Parse$AffixHolder;->EMPTY_NEGATIVE:Landroid/icu/impl/number/Parse$AffixHolder;
@@ -28042,23 +26203,17 @@
 Landroid/icu/impl/number/Parse$AffixHolder;->p:Ljava/lang/String;
 Landroid/icu/impl/number/Parse$AffixHolder;->s:Ljava/lang/String;
 Landroid/icu/impl/number/Parse$AffixHolder;->strings:Z
-Landroid/icu/impl/number/Parse$CurrencyAffixPatterns;
 Landroid/icu/impl/number/Parse$CurrencyAffixPatterns;-><init>(Landroid/icu/util/ULocale;)V
 Landroid/icu/impl/number/Parse$CurrencyAffixPatterns;->addPattern(Ljava/lang/String;)V
 Landroid/icu/impl/number/Parse$CurrencyAffixPatterns;->addToState(Landroid/icu/util/ULocale;Landroid/icu/impl/number/Parse$ParserState;)V
 Landroid/icu/impl/number/Parse$CurrencyAffixPatterns;->currencyAffixPatterns:Ljava/util/concurrent/ConcurrentHashMap;
 Landroid/icu/impl/number/Parse$CurrencyAffixPatterns;->set:Ljava/util/Set;
 Landroid/icu/impl/number/Parse$CurrencyAffixPatterns;->threadLocalProperties:Ljava/lang/ThreadLocal;
-Landroid/icu/impl/number/Parse$DigitType;
-Landroid/icu/impl/number/Parse$DigitType;-><init>()V
 Landroid/icu/impl/number/Parse$DigitType;->EXPONENT:Landroid/icu/impl/number/Parse$DigitType;
 Landroid/icu/impl/number/Parse$DigitType;->FRACTION:Landroid/icu/impl/number/Parse$DigitType;
 Landroid/icu/impl/number/Parse$DigitType;->INTEGER:Landroid/icu/impl/number/Parse$DigitType;
 Landroid/icu/impl/number/Parse$DigitType;->valueOf(Ljava/lang/String;)Landroid/icu/impl/number/Parse$DigitType;
 Landroid/icu/impl/number/Parse$DigitType;->values()[Landroid/icu/impl/number/Parse$DigitType;
-Landroid/icu/impl/number/Parse$GroupingMode;-><init>()V
-Landroid/icu/impl/number/Parse$ParseMode;-><init>()V
-Landroid/icu/impl/number/Parse$ParserState;
 Landroid/icu/impl/number/Parse$ParserState;-><init>()V
 Landroid/icu/impl/number/Parse$ParserState;->affixHolders:Ljava/util/Set;
 Landroid/icu/impl/number/Parse$ParserState;->caseSensitive:Z
@@ -28086,8 +26241,6 @@
 Landroid/icu/impl/number/Parse$ParserState;->swap()V
 Landroid/icu/impl/number/Parse$ParserState;->swapBack()V
 Landroid/icu/impl/number/Parse$ParserState;->symbols:Landroid/icu/text/DecimalFormatSymbols;
-Landroid/icu/impl/number/Parse$SeparatorType;
-Landroid/icu/impl/number/Parse$SeparatorType;-><init>()V
 Landroid/icu/impl/number/Parse$SeparatorType;->COMMA_LIKE:Landroid/icu/impl/number/Parse$SeparatorType;
 Landroid/icu/impl/number/Parse$SeparatorType;->fromCp(ILandroid/icu/impl/number/Parse$ParseMode;)Landroid/icu/impl/number/Parse$SeparatorType;
 Landroid/icu/impl/number/Parse$SeparatorType;->OTHER_GROUPING:Landroid/icu/impl/number/Parse$SeparatorType;
@@ -28095,7 +26248,6 @@
 Landroid/icu/impl/number/Parse$SeparatorType;->UNKNOWN:Landroid/icu/impl/number/Parse$SeparatorType;
 Landroid/icu/impl/number/Parse$SeparatorType;->valueOf(Ljava/lang/String;)Landroid/icu/impl/number/Parse$SeparatorType;
 Landroid/icu/impl/number/Parse$SeparatorType;->values()[Landroid/icu/impl/number/Parse$SeparatorType;
-Landroid/icu/impl/number/Parse$StateItem;
 Landroid/icu/impl/number/Parse$StateItem;-><init>(C)V
 Landroid/icu/impl/number/Parse$StateItem;->affix:Landroid/icu/impl/number/Parse$AffixHolder;
 Landroid/icu/impl/number/Parse$StateItem;->appendDigit(BLandroid/icu/impl/number/Parse$DigitType;)V
@@ -28135,8 +26287,6 @@
 Landroid/icu/impl/number/Parse$StateItem;->toNumber(Landroid/icu/impl/number/DecimalFormatProperties;)Ljava/lang/Number;
 Landroid/icu/impl/number/Parse$StateItem;->trailingCount:I
 Landroid/icu/impl/number/Parse$StateItem;->trailingZeros:I
-Landroid/icu/impl/number/Parse$StateName;
-Landroid/icu/impl/number/Parse$StateName;-><init>()V
 Landroid/icu/impl/number/Parse$StateName;->AFTER_EXPONENT_DIGIT:Landroid/icu/impl/number/Parse$StateName;
 Landroid/icu/impl/number/Parse$StateName;->AFTER_EXPONENT_SEPARATOR:Landroid/icu/impl/number/Parse$StateName;
 Landroid/icu/impl/number/Parse$StateName;->AFTER_FRACTION_DIGIT:Landroid/icu/impl/number/Parse$StateName;
@@ -28202,7 +26352,6 @@
 Landroid/icu/impl/number/Parse;->_parse(Ljava/lang/CharSequence;Ljava/text/ParsePosition;ZLandroid/icu/impl/number/DecimalFormatProperties;Landroid/icu/text/DecimalFormatSymbols;)Landroid/icu/impl/number/Parse$StateItem;
 Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;-><init>(Ljava/lang/String;)V
 Landroid/icu/impl/number/PatternStringParser$ParsedPatternInfo;->getEndpoints(I)J
-Landroid/icu/impl/number/PatternStringParser$ParserState;
 Landroid/icu/impl/number/PatternStringParser$ParserState;-><init>(Ljava/lang/String;)V
 Landroid/icu/impl/number/PatternStringParser$ParserState;->next()I
 Landroid/icu/impl/number/PatternStringParser$ParserState;->offset:I
@@ -28249,7 +26398,6 @@
 Landroid/icu/impl/PluralRulesLoader;->rulesIdToEquivalentULocale:Ljava/util/Map;
 Landroid/icu/impl/PluralRulesLoader;->rulesIdToRules:Ljava/util/Map;
 Landroid/icu/impl/PluralRulesLoader;->UNKNOWN_RANGE:Landroid/icu/text/PluralRanges;
-Landroid/icu/impl/Relation$SimpleEntry;
 Landroid/icu/impl/Relation$SimpleEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
 Landroid/icu/impl/Relation$SimpleEntry;-><init>(Ljava/util/Map$Entry;)V
 Landroid/icu/impl/Relation$SimpleEntry;->key:Ljava/lang/Object;
@@ -28272,7 +26420,6 @@
 Landroid/icu/impl/SimpleCache;->DEFAULT_CAPACITY:I
 Landroid/icu/impl/SimpleCache;->type:I
 Landroid/icu/impl/SoftCache;->map:Ljava/util/concurrent/ConcurrentHashMap;
-Landroid/icu/impl/StandardPlural;-><init>(Ljava/lang/String;)V
 Landroid/icu/impl/StandardPlural;->keyword:Ljava/lang/String;
 Landroid/icu/impl/TextTrieMap$CharIterator;-><init>(Ljava/lang/CharSequence;IZ)V
 Landroid/icu/impl/TextTrieMap$CharIterator;->_ignoreCase:Z
@@ -28280,19 +26427,13 @@
 Landroid/icu/impl/TextTrieMap$CharIterator;->_remainingChar:Ljava/lang/Character;
 Landroid/icu/impl/TextTrieMap$CharIterator;->_startIdx:I
 Landroid/icu/impl/TextTrieMap$CharIterator;->_text:Ljava/lang/CharSequence;
-Landroid/icu/impl/TextTrieMap$LongestMatchHandler;
 Landroid/icu/impl/TextTrieMap$LongestMatchHandler;-><init>()V
 Landroid/icu/impl/TextTrieMap$LongestMatchHandler;->getMatches()Ljava/util/Iterator;
 Landroid/icu/impl/TextTrieMap$LongestMatchHandler;->getMatchLength()I
 Landroid/icu/impl/TextTrieMap$LongestMatchHandler;->length:I
 Landroid/icu/impl/TextTrieMap$LongestMatchHandler;->matches:Ljava/util/Iterator;
-Landroid/icu/impl/TextTrieMap$Node$StepResult;
-Landroid/icu/impl/TextTrieMap$Node$StepResult;-><init>()V
 Landroid/icu/impl/TextTrieMap$Node$StepResult;->node:Landroid/icu/impl/TextTrieMap$Node;
 Landroid/icu/impl/TextTrieMap$Node$StepResult;->offset:I
-Landroid/icu/impl/TextTrieMap$Node;
-Landroid/icu/impl/TextTrieMap$Node;-><init>()V
-Landroid/icu/impl/TextTrieMap$Node;-><init>([CLjava/util/List;Ljava/util/List;)V
 Landroid/icu/impl/TextTrieMap$Node;->add(Landroid/icu/impl/TextTrieMap$CharIterator;Ljava/lang/Object;)V
 Landroid/icu/impl/TextTrieMap$Node;->add([CILjava/lang/Object;)V
 Landroid/icu/impl/TextTrieMap$Node;->addValue(Ljava/util/List;Ljava/lang/Object;)Ljava/util/List;
@@ -28307,7 +26448,6 @@
 Landroid/icu/impl/TextTrieMap$Node;->_children:Ljava/util/List;
 Landroid/icu/impl/TextTrieMap$Node;->_text:[C
 Landroid/icu/impl/TextTrieMap$Node;->_values:Ljava/util/List;
-Landroid/icu/impl/TextTrieMap$ParseState;-><init>(Landroid/icu/impl/TextTrieMap$Node;)V
 Landroid/icu/impl/TextTrieMap$ParseState;->node:Landroid/icu/impl/TextTrieMap$Node;
 Landroid/icu/impl/TextTrieMap$ParseState;->offset:I
 Landroid/icu/impl/TextTrieMap$ParseState;->result:Landroid/icu/impl/TextTrieMap$Node$StepResult;
@@ -28317,7 +26457,6 @@
 Landroid/icu/impl/TextTrieMap;->toCharArray(Ljava/lang/CharSequence;)[C
 Landroid/icu/impl/TextTrieMap;->_ignoreCase:Z
 Landroid/icu/impl/TextTrieMap;->_root:Landroid/icu/impl/TextTrieMap$Node;
-Landroid/icu/impl/TimeZoneGenericNames$Cache;
 Landroid/icu/impl/TimeZoneGenericNames$Cache;-><init>()V
 Landroid/icu/impl/TimeZoneGenericNames$Cache;->createInstance(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 Landroid/icu/impl/TimeZoneGenericNames$Cache;->createInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/impl/TimeZoneGenericNames;
@@ -28327,7 +26466,6 @@
 Landroid/icu/impl/TimeZoneGenericNames$GenericMatchInfo;->nameType:Landroid/icu/impl/TimeZoneGenericNames$GenericNameType;
 Landroid/icu/impl/TimeZoneGenericNames$GenericMatchInfo;->timeType:Landroid/icu/text/TimeZoneFormat$TimeType;
 Landroid/icu/impl/TimeZoneGenericNames$GenericMatchInfo;->tzID:Ljava/lang/String;
-Landroid/icu/impl/TimeZoneGenericNames$GenericNameSearchHandler;
 Landroid/icu/impl/TimeZoneGenericNames$GenericNameSearchHandler;-><init>(Ljava/util/EnumSet;)V
 Landroid/icu/impl/TimeZoneGenericNames$GenericNameSearchHandler;->getMatches()Ljava/util/Collection;
 Landroid/icu/impl/TimeZoneGenericNames$GenericNameSearchHandler;->getMaxMatchLen()I
@@ -28336,13 +26474,10 @@
 Landroid/icu/impl/TimeZoneGenericNames$GenericNameSearchHandler;->_matches:Ljava/util/Collection;
 Landroid/icu/impl/TimeZoneGenericNames$GenericNameSearchHandler;->_maxMatchLen:I
 Landroid/icu/impl/TimeZoneGenericNames$GenericNameSearchHandler;->_types:Ljava/util/EnumSet;
-Landroid/icu/impl/TimeZoneGenericNames$GenericNameType;-><init>([[Ljava/lang/String;)V
 Landroid/icu/impl/TimeZoneGenericNames$GenericNameType;->_fallbackTypeOf:[Ljava/lang/String;
-Landroid/icu/impl/TimeZoneGenericNames$NameInfo;
 Landroid/icu/impl/TimeZoneGenericNames$NameInfo;-><init>(Ljava/lang/String;Landroid/icu/impl/TimeZoneGenericNames$GenericNameType;)V
 Landroid/icu/impl/TimeZoneGenericNames$NameInfo;->type:Landroid/icu/impl/TimeZoneGenericNames$GenericNameType;
 Landroid/icu/impl/TimeZoneGenericNames$NameInfo;->tzID:Ljava/lang/String;
-Landroid/icu/impl/TimeZoneGenericNames$Pattern;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/icu/impl/TimeZoneGenericNames$Pattern;->defaultValue()Ljava/lang/String;
 Landroid/icu/impl/TimeZoneGenericNames$Pattern;->key()Ljava/lang/String;
 Landroid/icu/impl/TimeZoneGenericNames$Pattern;->_defaultVal:Ljava/lang/String;
@@ -28353,7 +26488,6 @@
 Landroid/icu/impl/TimeZoneGenericNames;->findLocal(Ljava/lang/String;ILjava/util/EnumSet;)Ljava/util/Collection;
 Landroid/icu/impl/TimeZoneGenericNames;->findTimeZoneNames(Ljava/lang/String;ILjava/util/EnumSet;)Ljava/util/Collection;
 Landroid/icu/impl/TimeZoneGenericNames;->formatGenericNonLocationName(Landroid/icu/util/TimeZone;Landroid/icu/impl/TimeZoneGenericNames$GenericNameType;J)Ljava/lang/String;
-Landroid/icu/impl/TimeZoneGenericNames;->formatPattern(Landroid/icu/impl/TimeZoneGenericNames$Pattern;[[Ljava/lang/String;)Ljava/lang/String;
 Landroid/icu/impl/TimeZoneGenericNames;->GENERIC_NAMES_CACHE:Landroid/icu/impl/TimeZoneGenericNames$Cache;
 Landroid/icu/impl/TimeZoneGenericNames;->GENERIC_NON_LOCATION_TYPES:[Landroid/icu/text/TimeZoneNames$NameType;
 Landroid/icu/impl/TimeZoneGenericNames;->getLocaleDisplayNames()Landroid/icu/text/LocaleDisplayNames;
@@ -28371,16 +26505,11 @@
 Landroid/icu/impl/TimeZoneGenericNames;->_patternFormatters:[Ljava/text/MessageFormat;
 Landroid/icu/impl/TimeZoneGenericNames;->_region:Ljava/lang/String;
 Landroid/icu/impl/TimeZoneGenericNames;->_tznames:Landroid/icu/text/TimeZoneNames;
-Landroid/icu/impl/Trie$DefaultGetFoldingOffset;
 Landroid/icu/impl/Trie$DefaultGetFoldingOffset;-><init>()V
-Landroid/icu/impl/Trie2$CharSequenceIterator;-><init>(Ljava/lang/CharSequence;I)V
 Landroid/icu/impl/Trie2$CharSequenceIterator;->fResults:Landroid/icu/impl/Trie2$CharSequenceValues;
 Landroid/icu/impl/Trie2$CharSequenceIterator;->index:I
 Landroid/icu/impl/Trie2$CharSequenceIterator;->text:Ljava/lang/CharSequence;
 Landroid/icu/impl/Trie2$CharSequenceIterator;->textLength:I
-Landroid/icu/impl/Trie2$Trie2Iterator;
-Landroid/icu/impl/Trie2$Trie2Iterator;-><init>(CLandroid/icu/impl/Trie2$ValueMapper;)V
-Landroid/icu/impl/Trie2$Trie2Iterator;-><init>(Landroid/icu/impl/Trie2$ValueMapper;)V
 Landroid/icu/impl/Trie2$Trie2Iterator;->doingCodePoints:Z
 Landroid/icu/impl/Trie2$Trie2Iterator;->doLeadSurrogates:Z
 Landroid/icu/impl/Trie2$Trie2Iterator;->limitCP:I
@@ -28388,7 +26517,6 @@
 Landroid/icu/impl/Trie2$Trie2Iterator;->nextStart:I
 Landroid/icu/impl/Trie2$Trie2Iterator;->rangeEndLS(C)I
 Landroid/icu/impl/Trie2$Trie2Iterator;->returnValue:Landroid/icu/impl/Trie2$Range;
-Landroid/icu/impl/Trie2$UTrie2Header;
 Landroid/icu/impl/Trie2$UTrie2Header;-><init>()V
 Landroid/icu/impl/Trie2$UTrie2Header;->dataNullOffset:I
 Landroid/icu/impl/Trie2$UTrie2Header;->index2NullOffset:I
@@ -28397,8 +26525,6 @@
 Landroid/icu/impl/Trie2$UTrie2Header;->shiftedDataLength:I
 Landroid/icu/impl/Trie2$UTrie2Header;->shiftedHighStart:I
 Landroid/icu/impl/Trie2$UTrie2Header;->signature:I
-Landroid/icu/impl/Trie2$ValueWidth;
-Landroid/icu/impl/Trie2$ValueWidth;-><init>()V
 Landroid/icu/impl/Trie2$ValueWidth;->BITS_16:Landroid/icu/impl/Trie2$ValueWidth;
 Landroid/icu/impl/Trie2$ValueWidth;->BITS_32:Landroid/icu/impl/Trie2$ValueWidth;
 Landroid/icu/impl/Trie2$ValueWidth;->valueOf(Ljava/lang/String;)Landroid/icu/impl/Trie2$ValueWidth;
@@ -28498,7 +26624,6 @@
 Landroid/icu/impl/Trie;->HEADER_OPTIONS_SHIFT_MASK_:I
 Landroid/icu/impl/Trie;->m_isLatin1Linear_:Z
 Landroid/icu/impl/Trie;->m_options_:I
-Landroid/icu/impl/UBiDiProps$IsAcceptable;
 Landroid/icu/impl/UBiDiProps$IsAcceptable;-><init>()V
 Landroid/icu/impl/UBiDiProps;-><init>()V
 Landroid/icu/impl/UBiDiProps;->BIDI_CONTROL_SHIFT:I
@@ -28538,7 +26663,6 @@
 Landroid/icu/impl/UBiDiProps;->MIRROR_INDEX_SHIFT:I
 Landroid/icu/impl/UBiDiProps;->readData(Ljava/nio/ByteBuffer;)V
 Landroid/icu/impl/UBiDiProps;->trie:Landroid/icu/impl/Trie2_16;
-Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;
 Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;-><init>()V
 Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->addOffset(I)V
 Landroid/icu/impl/UnicodeSetStringSpan$OffsetList;->addOffsetAndCount(II)V
@@ -28580,7 +26704,6 @@
 Landroid/icu/impl/UResource$Key;->regionMatches(ILjava/lang/CharSequence;I)Z
 Landroid/icu/impl/UResource$Key;->regionMatches([BII)Z
 Landroid/icu/impl/UResource$Key;->s:Ljava/lang/String;
-Landroid/icu/lang/CharSequences;
 Landroid/icu/lang/CharSequences;-><init>()V
 Landroid/icu/lang/CharSequences;->codePointLength(Ljava/lang/CharSequence;)I
 Landroid/icu/lang/CharSequences;->codePoints(Ljava/lang/CharSequence;)[I
@@ -28597,7 +26720,6 @@
 Landroid/icu/lang/CharSequences;->onCharacterBoundary(Ljava/lang/CharSequence;I)Z
 Landroid/icu/lang/UCharacter$BidiPairedBracketType;->COUNT:I
 Landroid/icu/lang/UCharacter$DecompositionType;->COUNT:I
-Landroid/icu/lang/UCharacter$DummyValueIterator;
 Landroid/icu/lang/UCharacter$DummyValueIterator;-><init>()V
 Landroid/icu/lang/UCharacter$EastAsianWidth;->COUNT:I
 Landroid/icu/lang/UCharacter$GraphemeClusterBreak;->COUNT:I
@@ -28607,9 +26729,7 @@
 Landroid/icu/lang/UCharacter$LineBreak;->COUNT:I
 Landroid/icu/lang/UCharacter$NumericType;->COUNT:I
 Landroid/icu/lang/UCharacter$SentenceBreak;->COUNT:I
-Landroid/icu/lang/UCharacter$UCharacterTypeIterator$MaskType;
 Landroid/icu/lang/UCharacter$UCharacterTypeIterator$MaskType;-><init>()V
-Landroid/icu/lang/UCharacter$UCharacterTypeIterator;
 Landroid/icu/lang/UCharacter$UCharacterTypeIterator;-><init>()V
 Landroid/icu/lang/UCharacter$UCharacterTypeIterator;->MASK_TYPE:Landroid/icu/lang/UCharacter$UCharacterTypeIterator$MaskType;
 Landroid/icu/lang/UCharacter$UCharacterTypeIterator;->range:Landroid/icu/impl/Trie2$Range;
@@ -28686,7 +26806,6 @@
 Landroid/icu/lang/UProperty;->STRING_LIMIT:I
 Landroid/icu/lang/UProperty;->UNDEFINED:I
 Landroid/icu/lang/UProperty;->UNICODE_1_NAME:I
-Landroid/icu/lang/UScript$ScriptMetadata;
 Landroid/icu/lang/UScript$ScriptMetadata;-><init>()V
 Landroid/icu/lang/UScript$ScriptMetadata;->CASED:I
 Landroid/icu/lang/UScript$ScriptMetadata;->EXCLUSION:I
@@ -28697,18 +26816,15 @@
 Landroid/icu/lang/UScript$ScriptMetadata;->RTL:I
 Landroid/icu/lang/UScript$ScriptMetadata;->SCRIPT_PROPS:[I
 Landroid/icu/lang/UScript$ScriptMetadata;->UNKNOWN:I
-Landroid/icu/lang/UScript$ScriptUsage;-><init>()V
 Landroid/icu/lang/UScript;-><init>()V
 Landroid/icu/lang/UScript;->CODE_LIMIT:I
 Landroid/icu/lang/UScript;->DUPLOYAN_SHORTAND:I
 Landroid/icu/lang/UScript;->findCodeFromLocale(Landroid/icu/util/ULocale;)[I
 Landroid/icu/lang/UScript;->getCodesFromLocale(Landroid/icu/util/ULocale;)[I
 Landroid/icu/lang/UScript;->usageValues:[Landroid/icu/lang/UScript$ScriptUsage;
-Landroid/icu/lang/UScriptRun$ParenStackEntry;
 Landroid/icu/lang/UScriptRun$ParenStackEntry;-><init>(II)V
 Landroid/icu/lang/UScriptRun$ParenStackEntry;->pairIndex:I
 Landroid/icu/lang/UScriptRun$ParenStackEntry;->scriptCode:I
-Landroid/icu/lang/UScriptRun;
 Landroid/icu/lang/UScriptRun;-><init>()V
 Landroid/icu/lang/UScriptRun;-><init>(Ljava/lang/String;)V
 Landroid/icu/lang/UScriptRun;-><init>(Ljava/lang/String;II)V
@@ -28798,7 +26914,6 @@
 Landroid/icu/math/MathContext;->roundingMode:I
 Landroid/icu/math/MathContext;->ROUNDS:[I
 Landroid/icu/math/MathContext;->ROUNDWORDS:[Ljava/lang/String;
-Landroid/icu/text/AlphabeticIndex$Bucket$LabelType;-><init>()V
 Landroid/icu/text/AlphabeticIndex$Bucket;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/icu/text/AlphabeticIndex$Bucket$LabelType;)V
 Landroid/icu/text/AlphabeticIndex$Bucket;->displayBucket:Landroid/icu/text/AlphabeticIndex$Bucket;
 Landroid/icu/text/AlphabeticIndex$Bucket;->displayIndex:I
@@ -28806,7 +26921,6 @@
 Landroid/icu/text/AlphabeticIndex$Bucket;->labelType:Landroid/icu/text/AlphabeticIndex$Bucket$LabelType;
 Landroid/icu/text/AlphabeticIndex$Bucket;->lowerBoundary:Ljava/lang/String;
 Landroid/icu/text/AlphabeticIndex$Bucket;->records:Ljava/util/List;
-Landroid/icu/text/AlphabeticIndex$BucketList;
 Landroid/icu/text/AlphabeticIndex$BucketList;-><init>(Ljava/util/ArrayList;Ljava/util/ArrayList;)V
 Landroid/icu/text/AlphabeticIndex$BucketList;->bucketList:Ljava/util/ArrayList;
 Landroid/icu/text/AlphabeticIndex$BucketList;->fullIterator()Ljava/util/Iterator;
@@ -28852,7 +26966,6 @@
 Landroid/icu/text/AlphabeticIndex;->recordComparator:Ljava/util/Comparator;
 Landroid/icu/text/AlphabeticIndex;->separated(Ljava/lang/String;)Ljava/lang/String;
 Landroid/icu/text/AlphabeticIndex;->underflowLabel:Ljava/lang/String;
-Landroid/icu/text/ArabicShaping;
 Landroid/icu/text/ArabicShaping;->ALEFTYPE:I
 Landroid/icu/text/ArabicShaping;->araLink:[I
 Landroid/icu/text/ArabicShaping;->calculateSize([CII)I
@@ -28962,30 +27075,24 @@
 Landroid/icu/text/ArabicShaping;->YEHHAMZA_TWOCELL_NEAR:I
 Landroid/icu/text/ArabicShaping;->YEH_HAMZAFE_CHAR:C
 Landroid/icu/text/ArabicShaping;->YEH_HAMZA_CHAR:C
-Landroid/icu/text/ArabicShapingException;
 Landroid/icu/text/ArabicShapingException;-><init>(Ljava/lang/String;)V
-Landroid/icu/text/Bidi$BracketData;
 Landroid/icu/text/Bidi$BracketData;-><init>()V
 Landroid/icu/text/Bidi$BracketData;->isNumbersSpecial:Z
 Landroid/icu/text/Bidi$BracketData;->isoRunLast:I
 Landroid/icu/text/Bidi$BracketData;->isoRuns:[Landroid/icu/text/Bidi$IsoRun;
 Landroid/icu/text/Bidi$BracketData;->openings:[Landroid/icu/text/Bidi$Opening;
-Landroid/icu/text/Bidi$ImpTabPair;
 Landroid/icu/text/Bidi$ImpTabPair;-><init>([[B[[B[S[S)V
 Landroid/icu/text/Bidi$ImpTabPair;->impact:[[S
 Landroid/icu/text/Bidi$ImpTabPair;->imptab:[[[B
-Landroid/icu/text/Bidi$InsertPoints;
 Landroid/icu/text/Bidi$InsertPoints;-><init>()V
 Landroid/icu/text/Bidi$InsertPoints;->confirmed:I
 Landroid/icu/text/Bidi$InsertPoints;->points:[Landroid/icu/text/Bidi$Point;
 Landroid/icu/text/Bidi$InsertPoints;->size:I
-Landroid/icu/text/Bidi$Isolate;
 Landroid/icu/text/Bidi$Isolate;-><init>()V
 Landroid/icu/text/Bidi$Isolate;->start1:I
 Landroid/icu/text/Bidi$Isolate;->startON:I
 Landroid/icu/text/Bidi$Isolate;->state:S
 Landroid/icu/text/Bidi$Isolate;->stateImp:S
-Landroid/icu/text/Bidi$IsoRun;
 Landroid/icu/text/Bidi$IsoRun;-><init>()V
 Landroid/icu/text/Bidi$IsoRun;->contextDir:B
 Landroid/icu/text/Bidi$IsoRun;->contextPos:I
@@ -28994,7 +27101,6 @@
 Landroid/icu/text/Bidi$IsoRun;->level:B
 Landroid/icu/text/Bidi$IsoRun;->limit:S
 Landroid/icu/text/Bidi$IsoRun;->start:S
-Landroid/icu/text/Bidi$LevState;
 Landroid/icu/text/Bidi$LevState;-><init>()V
 Landroid/icu/text/Bidi$LevState;->impAct:[S
 Landroid/icu/text/Bidi$LevState;->impTab:[[B
@@ -29004,18 +27110,15 @@
 Landroid/icu/text/Bidi$LevState;->startL2EN:I
 Landroid/icu/text/Bidi$LevState;->startON:I
 Landroid/icu/text/Bidi$LevState;->state:S
-Landroid/icu/text/Bidi$Opening;
 Landroid/icu/text/Bidi$Opening;-><init>()V
 Landroid/icu/text/Bidi$Opening;->contextDir:B
 Landroid/icu/text/Bidi$Opening;->contextPos:I
 Landroid/icu/text/Bidi$Opening;->flags:S
 Landroid/icu/text/Bidi$Opening;->match:I
 Landroid/icu/text/Bidi$Opening;->position:I
-Landroid/icu/text/Bidi$Point;
 Landroid/icu/text/Bidi$Point;-><init>()V
 Landroid/icu/text/Bidi$Point;->flag:I
 Landroid/icu/text/Bidi$Point;->pos:I
-Landroid/icu/text/Bidi;
 Landroid/icu/text/Bidi;-><init>()V
 Landroid/icu/text/Bidi;-><init>(II)V
 Landroid/icu/text/Bidi;-><init>(Ljava/lang/String;I)V
@@ -29293,13 +27396,11 @@
 Landroid/icu/text/Bidi;->_ON:S
 Landroid/icu/text/Bidi;->_R:S
 Landroid/icu/text/Bidi;->_S:S
-Landroid/icu/text/BidiClassifier;
 Landroid/icu/text/BidiClassifier;-><init>(Ljava/lang/Object;)V
 Landroid/icu/text/BidiClassifier;->classify(I)I
 Landroid/icu/text/BidiClassifier;->context:Ljava/lang/Object;
 Landroid/icu/text/BidiClassifier;->getContext()Ljava/lang/Object;
 Landroid/icu/text/BidiClassifier;->setContext(Ljava/lang/Object;)V
-Landroid/icu/text/BidiRun;
 Landroid/icu/text/BidiRun;-><init>()V
 Landroid/icu/text/BidiRun;-><init>(IIB)V
 Landroid/icu/text/BidiRun;->copyFrom(Landroid/icu/text/BidiRun;)V
@@ -29314,20 +27415,14 @@
 Landroid/icu/text/BidiRun;->level:B
 Landroid/icu/text/BidiRun;->limit:I
 Landroid/icu/text/BidiRun;->start:I
-Landroid/icu/text/BidiTransform$Mirroring;
-Landroid/icu/text/BidiTransform$Mirroring;-><init>()V
 Landroid/icu/text/BidiTransform$Mirroring;->OFF:Landroid/icu/text/BidiTransform$Mirroring;
 Landroid/icu/text/BidiTransform$Mirroring;->ON:Landroid/icu/text/BidiTransform$Mirroring;
 Landroid/icu/text/BidiTransform$Mirroring;->valueOf(Ljava/lang/String;)Landroid/icu/text/BidiTransform$Mirroring;
 Landroid/icu/text/BidiTransform$Mirroring;->values()[Landroid/icu/text/BidiTransform$Mirroring;
-Landroid/icu/text/BidiTransform$Order;
-Landroid/icu/text/BidiTransform$Order;-><init>()V
 Landroid/icu/text/BidiTransform$Order;->LOGICAL:Landroid/icu/text/BidiTransform$Order;
 Landroid/icu/text/BidiTransform$Order;->valueOf(Ljava/lang/String;)Landroid/icu/text/BidiTransform$Order;
 Landroid/icu/text/BidiTransform$Order;->values()[Landroid/icu/text/BidiTransform$Order;
 Landroid/icu/text/BidiTransform$Order;->VISUAL:Landroid/icu/text/BidiTransform$Order;
-Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform$ReorderingScheme;-><init>()V
 Landroid/icu/text/BidiTransform$ReorderingScheme;->doTransform(Landroid/icu/text/BidiTransform;)V
 Landroid/icu/text/BidiTransform$ReorderingScheme;->LOG_LTR_TO_LOG_LTR:Landroid/icu/text/BidiTransform$ReorderingScheme;
 Landroid/icu/text/BidiTransform$ReorderingScheme;->LOG_LTR_TO_LOG_RTL:Landroid/icu/text/BidiTransform$ReorderingScheme;
@@ -29348,7 +27443,6 @@
 Landroid/icu/text/BidiTransform$ReorderingScheme;->VIS_RTL_TO_LOG_RTL:Landroid/icu/text/BidiTransform$ReorderingScheme;
 Landroid/icu/text/BidiTransform$ReorderingScheme;->VIS_RTL_TO_VIS_LTR:Landroid/icu/text/BidiTransform$ReorderingScheme;
 Landroid/icu/text/BidiTransform$ReorderingScheme;->VIS_RTL_TO_VIS_RTL:Landroid/icu/text/BidiTransform$ReorderingScheme;
-Landroid/icu/text/BidiTransform;
 Landroid/icu/text/BidiTransform;-><init>()V
 Landroid/icu/text/BidiTransform;->bidi:Landroid/icu/text/Bidi;
 Landroid/icu/text/BidiTransform;->findMatchingScheme(BLandroid/icu/text/BidiTransform$Order;BLandroid/icu/text/BidiTransform$Order;)Landroid/icu/text/BidiTransform$ReorderingScheme;
@@ -29367,13 +27461,11 @@
 Landroid/icu/text/BidiTransform;->shapingOptions:I
 Landroid/icu/text/BidiTransform;->text:Ljava/lang/String;
 Landroid/icu/text/BidiTransform;->transform(Ljava/lang/CharSequence;BLandroid/icu/text/BidiTransform$Order;BLandroid/icu/text/BidiTransform$Order;Landroid/icu/text/BidiTransform$Mirroring;I)Ljava/lang/String;
-Landroid/icu/text/BreakIterator$BreakIteratorCache;
 Landroid/icu/text/BreakIterator$BreakIteratorCache;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/BreakIterator;)V
 Landroid/icu/text/BreakIterator$BreakIteratorCache;->createBreakInstance()Landroid/icu/text/BreakIterator;
 Landroid/icu/text/BreakIterator$BreakIteratorCache;->getLocale()Landroid/icu/util/ULocale;
 Landroid/icu/text/BreakIterator$BreakIteratorCache;->iter:Landroid/icu/text/BreakIterator;
 Landroid/icu/text/BreakIterator$BreakIteratorCache;->where:Landroid/icu/util/ULocale;
-Landroid/icu/text/BreakIterator$BreakIteratorServiceShim;
 Landroid/icu/text/BreakIterator$BreakIteratorServiceShim;-><init>()V
 Landroid/icu/text/BreakIterator$BreakIteratorServiceShim;->createBreakIterator(Landroid/icu/util/ULocale;I)Landroid/icu/text/BreakIterator;
 Landroid/icu/text/BreakIterator$BreakIteratorServiceShim;->getAvailableLocales()[Ljava/util/Locale;
@@ -29395,7 +27487,6 @@
 Landroid/icu/text/BreakIterator;->shim:Landroid/icu/text/BreakIterator$BreakIteratorServiceShim;
 Landroid/icu/text/BreakIterator;->unregister(Ljava/lang/Object;)Z
 Landroid/icu/text/BreakIterator;->validLocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/CanonicalIterator;
 Landroid/icu/text/CanonicalIterator;-><init>(Ljava/lang/String;)V
 Landroid/icu/text/CanonicalIterator;->buffer:Ljava/lang/StringBuilder;
 Landroid/icu/text/CanonicalIterator;->current:[I
@@ -29415,7 +27506,6 @@
 Landroid/icu/text/CanonicalIterator;->SET_WITH_NULL_STRING:Ljava/util/Set;
 Landroid/icu/text/CanonicalIterator;->SKIP_ZEROS:Z
 Landroid/icu/text/CanonicalIterator;->source:Ljava/lang/String;
-Landroid/icu/text/CaseMap$Fold;
 Landroid/icu/text/CaseMap$Fold;-><init>(I)V
 Landroid/icu/text/CaseMap$Fold;->apply(Ljava/lang/CharSequence;)Ljava/lang/String;
 Landroid/icu/text/CaseMap$Fold;->apply(Ljava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)Ljava/lang/Appendable;
@@ -29425,14 +27515,12 @@
 Landroid/icu/text/CaseMap$Fold;->turkic()Landroid/icu/text/CaseMap$Fold;
 Landroid/icu/text/CaseMap$Fold;->TURKIC:Landroid/icu/text/CaseMap$Fold;
 Landroid/icu/text/CaseMap$Fold;->TURKIC_OMIT_UNCHANGED:Landroid/icu/text/CaseMap$Fold;
-Landroid/icu/text/CaseMap$Lower;
 Landroid/icu/text/CaseMap$Lower;-><init>(I)V
 Landroid/icu/text/CaseMap$Lower;->apply(Ljava/util/Locale;Ljava/lang/CharSequence;)Ljava/lang/String;
 Landroid/icu/text/CaseMap$Lower;->apply(Ljava/util/Locale;Ljava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)Ljava/lang/Appendable;
 Landroid/icu/text/CaseMap$Lower;->DEFAULT:Landroid/icu/text/CaseMap$Lower;
 Landroid/icu/text/CaseMap$Lower;->omitUnchangedText()Landroid/icu/text/CaseMap$Lower;
 Landroid/icu/text/CaseMap$Lower;->OMIT_UNCHANGED:Landroid/icu/text/CaseMap$Lower;
-Landroid/icu/text/CaseMap$Title;
 Landroid/icu/text/CaseMap$Title;-><init>(I)V
 Landroid/icu/text/CaseMap$Title;->adjustToCased()Landroid/icu/text/CaseMap$Title;
 Landroid/icu/text/CaseMap$Title;->apply(Ljava/util/Locale;Landroid/icu/text/BreakIterator;Ljava/lang/CharSequence;)Ljava/lang/String;
@@ -29444,14 +27532,12 @@
 Landroid/icu/text/CaseMap$Title;->OMIT_UNCHANGED:Landroid/icu/text/CaseMap$Title;
 Landroid/icu/text/CaseMap$Title;->sentences()Landroid/icu/text/CaseMap$Title;
 Landroid/icu/text/CaseMap$Title;->wholeString()Landroid/icu/text/CaseMap$Title;
-Landroid/icu/text/CaseMap$Upper;
 Landroid/icu/text/CaseMap$Upper;-><init>(I)V
 Landroid/icu/text/CaseMap$Upper;->apply(Ljava/util/Locale;Ljava/lang/CharSequence;)Ljava/lang/String;
 Landroid/icu/text/CaseMap$Upper;->apply(Ljava/util/Locale;Ljava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/Edits;)Ljava/lang/Appendable;
 Landroid/icu/text/CaseMap$Upper;->DEFAULT:Landroid/icu/text/CaseMap$Upper;
 Landroid/icu/text/CaseMap$Upper;->omitUnchangedText()Landroid/icu/text/CaseMap$Upper;
 Landroid/icu/text/CaseMap$Upper;->OMIT_UNCHANGED:Landroid/icu/text/CaseMap$Upper;
-Landroid/icu/text/CaseMap;
 Landroid/icu/text/CaseMap;-><init>(I)V
 Landroid/icu/text/CaseMap;->fold()Landroid/icu/text/CaseMap$Fold;
 Landroid/icu/text/CaseMap;->getCaseLocale(Ljava/util/Locale;)I
@@ -29460,11 +27546,9 @@
 Landroid/icu/text/CaseMap;->toLower()Landroid/icu/text/CaseMap$Lower;
 Landroid/icu/text/CaseMap;->toTitle()Landroid/icu/text/CaseMap$Title;
 Landroid/icu/text/CaseMap;->toUpper()Landroid/icu/text/CaseMap$Upper;
-Landroid/icu/text/CharsetDetector$CSRecognizerInfo;
 Landroid/icu/text/CharsetDetector$CSRecognizerInfo;-><init>(Landroid/icu/text/CharsetRecognizer;Z)V
 Landroid/icu/text/CharsetDetector$CSRecognizerInfo;->isDefaultEnabled:Z
 Landroid/icu/text/CharsetDetector$CSRecognizerInfo;->recognizer:Landroid/icu/text/CharsetRecognizer;
-Landroid/icu/text/CharsetDetector;
 Landroid/icu/text/CharsetDetector;-><init>()V
 Landroid/icu/text/CharsetDetector;->ALL_CS_RECOGNIZERS:Ljava/util/List;
 Landroid/icu/text/CharsetDetector;->detect()Landroid/icu/text/CharsetMatch;
@@ -29491,7 +27575,6 @@
 Landroid/icu/text/CharsetDetector;->setDetectableCharset(Ljava/lang/String;Z)Landroid/icu/text/CharsetDetector;
 Landroid/icu/text/CharsetDetector;->setText(Ljava/io/InputStream;)Landroid/icu/text/CharsetDetector;
 Landroid/icu/text/CharsetDetector;->setText([B)Landroid/icu/text/CharsetDetector;
-Landroid/icu/text/CharsetMatch;
 Landroid/icu/text/CharsetMatch;-><init>(Landroid/icu/text/CharsetDetector;Landroid/icu/text/CharsetRecognizer;I)V
 Landroid/icu/text/CharsetMatch;-><init>(Landroid/icu/text/CharsetDetector;Landroid/icu/text/CharsetRecognizer;ILjava/lang/String;Ljava/lang/String;)V
 Landroid/icu/text/CharsetMatch;->compareTo(Landroid/icu/text/CharsetMatch;)I
@@ -29507,21 +27590,17 @@
 Landroid/icu/text/CharsetMatch;->getReader()Ljava/io/Reader;
 Landroid/icu/text/CharsetMatch;->getString()Ljava/lang/String;
 Landroid/icu/text/CharsetMatch;->getString(I)Ljava/lang/String;
-Landroid/icu/text/CharsetRecognizer;
 Landroid/icu/text/CharsetRecognizer;-><init>()V
 Landroid/icu/text/CharsetRecognizer;->getLanguage()Ljava/lang/String;
 Landroid/icu/text/CharsetRecognizer;->getName()Ljava/lang/String;
 Landroid/icu/text/CharsetRecognizer;->match(Landroid/icu/text/CharsetDetector;)Landroid/icu/text/CharsetMatch;
-Landroid/icu/text/ChineseDateFormat$Field;
 Landroid/icu/text/ChineseDateFormat$Field;-><init>(Ljava/lang/String;I)V
 Landroid/icu/text/ChineseDateFormat$Field;->IS_LEAP_MONTH:Landroid/icu/text/ChineseDateFormat$Field;
 Landroid/icu/text/ChineseDateFormat$Field;->ofCalendarField(I)Landroid/icu/text/DateFormat$Field;
-Landroid/icu/text/ChineseDateFormat;
 Landroid/icu/text/ChineseDateFormat;-><init>(Ljava/lang/String;Landroid/icu/util/ULocale;)V
 Landroid/icu/text/ChineseDateFormat;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/ULocale;)V
 Landroid/icu/text/ChineseDateFormat;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
 Landroid/icu/text/ChineseDateFormat;->subFormat(Ljava/lang/StringBuffer;CIIILandroid/icu/text/DisplayContext;Ljava/text/FieldPosition;Landroid/icu/util/Calendar;)V
-Landroid/icu/text/ChineseDateFormatSymbols;
 Landroid/icu/text/ChineseDateFormatSymbols;-><init>()V
 Landroid/icu/text/ChineseDateFormatSymbols;-><init>(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;)V
 Landroid/icu/text/ChineseDateFormatSymbols;-><init>(Landroid/icu/util/Calendar;Ljava/util/Locale;)V
@@ -29532,7 +27611,6 @@
 Landroid/icu/text/ChineseDateFormatSymbols;->initializeData(Landroid/icu/util/ULocale;Landroid/icu/impl/ICUResourceBundle;Ljava/lang/String;)V
 Landroid/icu/text/ChineseDateFormatSymbols;->initializeIsLeapMonth()V
 Landroid/icu/text/ChineseDateFormatSymbols;->isLeapMonth:[Ljava/lang/String;
-Landroid/icu/text/CollationElementIterator$MaxExpSink;
 Landroid/icu/text/CollationElementIterator$MaxExpSink;-><init>(Ljava/util/Map;)V
 Landroid/icu/text/CollationElementIterator$MaxExpSink;->maxExpansions:Ljava/util/Map;
 Landroid/icu/text/CollationElementIterator;-><init>(Landroid/icu/text/RuleBasedCollator;)V
@@ -29562,10 +27640,8 @@
 Landroid/icu/text/CollationKey;->m_key_:[B
 Landroid/icu/text/CollationKey;->m_length_:I
 Landroid/icu/text/CollationKey;->m_source_:Ljava/lang/String;
-Landroid/icu/text/Collator$ASCII;
 Landroid/icu/text/Collator$ASCII;-><init>()V
 Landroid/icu/text/Collator$ASCII;->equalIgnoreCase(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
-Landroid/icu/text/Collator$CollatorFactory;
 Landroid/icu/text/Collator$CollatorFactory;-><init>()V
 Landroid/icu/text/Collator$CollatorFactory;->createCollator(Landroid/icu/util/ULocale;)Landroid/icu/text/Collator;
 Landroid/icu/text/Collator$CollatorFactory;->createCollator(Ljava/util/Locale;)Landroid/icu/text/Collator;
@@ -29573,12 +27649,10 @@
 Landroid/icu/text/Collator$CollatorFactory;->getDisplayName(Ljava/util/Locale;Ljava/util/Locale;)Ljava/lang/String;
 Landroid/icu/text/Collator$CollatorFactory;->getSupportedLocaleIDs()Ljava/util/Set;
 Landroid/icu/text/Collator$CollatorFactory;->visible()Z
-Landroid/icu/text/Collator$KeywordsSink;
 Landroid/icu/text/Collator$KeywordsSink;-><init>()V
 Landroid/icu/text/Collator$KeywordsSink;->hasDefault:Z
 Landroid/icu/text/Collator$KeywordsSink;->values:Ljava/util/LinkedList;
 Landroid/icu/text/Collator$ReorderCodes;->LIMIT:I
-Landroid/icu/text/Collator$ServiceShim;
 Landroid/icu/text/Collator$ServiceShim;-><init>()V
 Landroid/icu/text/Collator$ServiceShim;->getAvailableLocales()[Ljava/util/Locale;
 Landroid/icu/text/Collator$ServiceShim;->getAvailableULocales()[Landroid/icu/util/ULocale;
@@ -29591,7 +27665,6 @@
 Landroid/icu/text/Collator;->checkNotFrozen()V
 Landroid/icu/text/Collator;->DEBUG:Z
 Landroid/icu/text/Collator;->doCompare(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I
-Landroid/icu/text/Collator;->getIntValue(Ljava/lang/String;Ljava/lang/String;[[Ljava/lang/String;)I
 Landroid/icu/text/Collator;->getLocale(Landroid/icu/util/ULocale$Type;)Landroid/icu/util/ULocale;
 Landroid/icu/text/Collator;->getRawCollationKey(Ljava/lang/String;Landroid/icu/text/RawCollationKey;)Landroid/icu/text/RawCollationKey;
 Landroid/icu/text/Collator;->getReorderCode(Ljava/lang/String;Ljava/lang/String;)I
@@ -29608,9 +27681,7 @@
 Landroid/icu/text/Collator;->setVariableTop(Ljava/lang/String;)I
 Landroid/icu/text/Collator;->shim:Landroid/icu/text/Collator$ServiceShim;
 Landroid/icu/text/Collator;->unregister(Ljava/lang/Object;)Z
-Landroid/icu/text/CompactDecimalFormat$CompactStyle;-><init>()V
 Landroid/icu/text/CompactDecimalFormat;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/CompactDecimalFormat$CompactStyle;)V
-Landroid/icu/text/ComposedCharIter;
 Landroid/icu/text/ComposedCharIter;-><init>()V
 Landroid/icu/text/ComposedCharIter;-><init>(ZI)V
 Landroid/icu/text/ComposedCharIter;->curChar:I
@@ -29622,7 +27693,6 @@
 Landroid/icu/text/ComposedCharIter;->n2impl:Landroid/icu/impl/Normalizer2Impl;
 Landroid/icu/text/ComposedCharIter;->next()C
 Landroid/icu/text/ComposedCharIter;->nextChar:I
-Landroid/icu/text/CurrencyDisplayNames;
 Landroid/icu/text/CurrencyDisplayNames;-><init>()V
 Landroid/icu/text/CurrencyDisplayNames;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/CurrencyDisplayNames;
 Landroid/icu/text/CurrencyDisplayNames;->getInstance(Landroid/icu/util/ULocale;Z)Landroid/icu/text/CurrencyDisplayNames;
@@ -29635,11 +27705,9 @@
 Landroid/icu/text/CurrencyDisplayNames;->hasData()Z
 Landroid/icu/text/CurrencyDisplayNames;->nameMap()Ljava/util/Map;
 Landroid/icu/text/CurrencyDisplayNames;->symbolMap()Ljava/util/Map;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyDigits;
 Landroid/icu/text/CurrencyMetaInfo$CurrencyDigits;-><init>(II)V
 Landroid/icu/text/CurrencyMetaInfo$CurrencyDigits;->fractionDigits:I
 Landroid/icu/text/CurrencyMetaInfo$CurrencyDigits;->roundingIncrement:I
-Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
 Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;-><init>(Ljava/lang/String;Ljava/lang/String;JJZ)V
 Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->all()Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
 Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->ALL:Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
@@ -29665,7 +27733,6 @@
 Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->withDateRange(Ljava/util/Date;Ljava/util/Date;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
 Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->withRegion(Ljava/lang/String;)Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
 Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;->withTender()Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;
-Landroid/icu/text/CurrencyMetaInfo$CurrencyInfo;
 Landroid/icu/text/CurrencyMetaInfo$CurrencyInfo;-><init>(Ljava/lang/String;Ljava/lang/String;JJI)V
 Landroid/icu/text/CurrencyMetaInfo$CurrencyInfo;-><init>(Ljava/lang/String;Ljava/lang/String;JJIZ)V
 Landroid/icu/text/CurrencyMetaInfo$CurrencyInfo;->code:Ljava/lang/String;
@@ -29675,7 +27742,6 @@
 Landroid/icu/text/CurrencyMetaInfo$CurrencyInfo;->region:Ljava/lang/String;
 Landroid/icu/text/CurrencyMetaInfo$CurrencyInfo;->tender:Z
 Landroid/icu/text/CurrencyMetaInfo$CurrencyInfo;->to:J
-Landroid/icu/text/CurrencyMetaInfo;
 Landroid/icu/text/CurrencyMetaInfo;-><init>()V
 Landroid/icu/text/CurrencyMetaInfo;->currencies(Landroid/icu/text/CurrencyMetaInfo$CurrencyFilter;)Ljava/util/List;
 Landroid/icu/text/CurrencyMetaInfo;->currencyDigits(Ljava/lang/String;)Landroid/icu/text/CurrencyMetaInfo$CurrencyDigits;
@@ -29702,7 +27768,6 @@
 Landroid/icu/text/CurrencyPluralInfo;->tripleCurrencySign:[C
 Landroid/icu/text/CurrencyPluralInfo;->tripleCurrencyStr:Ljava/lang/String;
 Landroid/icu/text/CurrencyPluralInfo;->ulocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/DateFormat$BooleanAttribute;-><init>()V
 Landroid/icu/text/DateFormat$BooleanAttribute;->PARSE_PARTIAL_MATCH:Landroid/icu/text/DateFormat$BooleanAttribute;
 Landroid/icu/text/DateFormat$Field;->calendarField:I
 Landroid/icu/text/DateFormat$Field;->CAL_FIELDS:[Landroid/icu/text/DateFormat$Field;
@@ -29730,15 +27795,12 @@
 Landroid/icu/text/DateFormat;->TIME_SEPARATOR:I
 Landroid/icu/text/DateFormat;->TIME_SKELETONS:Ljava/util/List;
 Landroid/icu/text/DateFormat;->ZONE_SKELETONS:Ljava/util/List;
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;-><init>()V
 Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;->DIFFERENT_CALENDAR:Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;
 Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;->GREGORIAN:Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;
 Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;->NONE:Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;
 Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;->SAME_CALENDAR:Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;
 Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;->valueOf(Ljava/lang/String;)Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;
 Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;->values()[Landroid/icu/text/DateFormatSymbols$CalendarDataSink$AliasType;
-Landroid/icu/text/DateFormatSymbols$CalendarDataSink;
 Landroid/icu/text/DateFormatSymbols$CalendarDataSink;-><init>()V
 Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->aliasPathPairs:Ljava/util/List;
 Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->aliasRelativePath:Ljava/lang/String;
@@ -29752,8 +27814,6 @@
 Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->processResource(Ljava/lang/String;Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
 Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->resourcesToVisit:Ljava/util/Set;
 Landroid/icu/text/DateFormatSymbols$CalendarDataSink;->visitAllResources()V
-Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
-Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;-><init>()V
 Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->DAY_FORMAT:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
 Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->DAY_NARROW:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
 Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;->DAY_STANDALONE:Landroid/icu/text/DateFormatSymbols$CapitalizationContextUsage;
@@ -29848,11 +27908,9 @@
 Landroid/icu/text/DateFormatSymbols;->weekdays:[Ljava/lang/String;
 Landroid/icu/text/DateFormatSymbols;->wideDayPeriods:[Ljava/lang/String;
 Landroid/icu/text/DateFormatSymbols;->zoneStrings:[[Ljava/lang/String;
-Landroid/icu/text/DateIntervalFormat$BestMatchInfo;
 Landroid/icu/text/DateIntervalFormat$BestMatchInfo;-><init>(Ljava/lang/String;I)V
 Landroid/icu/text/DateIntervalFormat$BestMatchInfo;->bestMatchDistanceInfo:I
 Landroid/icu/text/DateIntervalFormat$BestMatchInfo;->bestMatchSkeleton:Ljava/lang/String;
-Landroid/icu/text/DateIntervalFormat$SkeletonAndItsBestMatch;
 Landroid/icu/text/DateIntervalFormat$SkeletonAndItsBestMatch;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/icu/text/DateIntervalFormat$SkeletonAndItsBestMatch;->bestMatchSkeleton:Ljava/lang/String;
 Landroid/icu/text/DateIntervalFormat$SkeletonAndItsBestMatch;->skeleton:Ljava/lang/String;
@@ -29884,7 +27942,6 @@
 Landroid/icu/text/DateIntervalFormat;->initializePattern(Landroid/icu/impl/ICUCache;)V
 Landroid/icu/text/DateIntervalFormat;->isDateIntervalInfoDefault:Z
 Landroid/icu/text/DateIntervalFormat;->LOCAL_PATTERN_CACHE:Landroid/icu/impl/ICUCache;
-Landroid/icu/text/DateIntervalInfo$DateIntervalSink;
 Landroid/icu/text/DateIntervalInfo$DateIntervalSink;-><init>(Landroid/icu/text/DateIntervalInfo;)V
 Landroid/icu/text/DateIntervalInfo$DateIntervalSink;->ACCEPTED_PATTERN_LETTERS:Ljava/lang/String;
 Landroid/icu/text/DateIntervalInfo$DateIntervalSink;->dateIntervalInfo:Landroid/icu/text/DateIntervalInfo;
@@ -29929,14 +27986,7 @@
 Landroid/icu/text/DateIntervalInfo;->setup(Landroid/icu/util/ULocale;)V
 Landroid/icu/text/DateIntervalInfo;->splitPatternInto2Part(Ljava/lang/String;)I
 Landroid/icu/text/DateIntervalInfo;->stringNumeric(IIC)Z
-Landroid/icu/text/DateTimePatternGenerator$AppendItemFormatsSink;
-Landroid/icu/text/DateTimePatternGenerator$AppendItemFormatsSink;-><init>()V
-Landroid/icu/text/DateTimePatternGenerator$AppendItemNamesSink;
-Landroid/icu/text/DateTimePatternGenerator$AppendItemNamesSink;-><init>()V
-Landroid/icu/text/DateTimePatternGenerator$AvailableFormatsSink;
-Landroid/icu/text/DateTimePatternGenerator$AvailableFormatsSink;-><init>(Landroid/icu/text/DateTimePatternGenerator$PatternInfo;)V
 Landroid/icu/text/DateTimePatternGenerator$AvailableFormatsSink;->returnInfo:Landroid/icu/text/DateTimePatternGenerator$PatternInfo;
-Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;
 Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;-><init>()V
 Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->addedDefaultDayPeriod:Z
 Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->baseOriginal:Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;
@@ -29950,23 +28000,18 @@
 Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->set(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$FormatParser;Z)Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;
 Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->toCanonicalString()Ljava/lang/String;
 Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;->type:[I
-Landroid/icu/text/DateTimePatternGenerator$DayPeriodAllowedHoursSink;
 Landroid/icu/text/DateTimePatternGenerator$DayPeriodAllowedHoursSink;-><init>(Ljava/util/HashMap;)V
 Landroid/icu/text/DateTimePatternGenerator$DayPeriodAllowedHoursSink;->tempMap:Ljava/util/HashMap;
-Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;
 Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;->addExtra(I)V
 Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;->addMissing(I)V
 Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;->clear()V
 Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;->extraFieldMask:I
 Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;->missingFieldMask:I
 Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;->setTo(Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;)V
-Landroid/icu/text/DateTimePatternGenerator$DTPGflags;
-Landroid/icu/text/DateTimePatternGenerator$DTPGflags;-><init>()V
 Landroid/icu/text/DateTimePatternGenerator$DTPGflags;->FIX_FRACTIONAL_SECONDS:Landroid/icu/text/DateTimePatternGenerator$DTPGflags;
 Landroid/icu/text/DateTimePatternGenerator$DTPGflags;->SKELETON_USES_CAP_J:Landroid/icu/text/DateTimePatternGenerator$DTPGflags;
 Landroid/icu/text/DateTimePatternGenerator$DTPGflags;->valueOf(Ljava/lang/String;)Landroid/icu/text/DateTimePatternGenerator$DTPGflags;
 Landroid/icu/text/DateTimePatternGenerator$DTPGflags;->values()[Landroid/icu/text/DateTimePatternGenerator$DTPGflags;
-Landroid/icu/text/DateTimePatternGenerator$FormatParser;
 Landroid/icu/text/DateTimePatternGenerator$FormatParser;-><init>()V
 Landroid/icu/text/DateTimePatternGenerator$FormatParser;->addVariable(Ljava/lang/StringBuffer;Z)V
 Landroid/icu/text/DateTimePatternGenerator$FormatParser;->getItems()Ljava/util/List;
@@ -29979,15 +28024,12 @@
 Landroid/icu/text/DateTimePatternGenerator$FormatParser;->SYNTAX_CHARS:Landroid/icu/text/UnicodeSet;
 Landroid/icu/text/DateTimePatternGenerator$FormatParser;->tokenizer:Landroid/icu/impl/PatternTokenizer;
 Landroid/icu/text/DateTimePatternGenerator$FormatParser;->toString(II)Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator$PatternWithMatcher;
 Landroid/icu/text/DateTimePatternGenerator$PatternWithMatcher;-><init>(Ljava/lang/String;Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;)V
 Landroid/icu/text/DateTimePatternGenerator$PatternWithMatcher;->matcherWithSkeleton:Landroid/icu/text/DateTimePatternGenerator$DateTimeMatcher;
 Landroid/icu/text/DateTimePatternGenerator$PatternWithMatcher;->pattern:Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator$PatternWithSkeletonFlag;
 Landroid/icu/text/DateTimePatternGenerator$PatternWithSkeletonFlag;-><init>(Ljava/lang/String;Z)V
 Landroid/icu/text/DateTimePatternGenerator$PatternWithSkeletonFlag;->pattern:Ljava/lang/String;
 Landroid/icu/text/DateTimePatternGenerator$PatternWithSkeletonFlag;->skeletonWasSpecified:Z
-Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;
 Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;-><init>()V
 Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->appendFieldTo(ILjava/lang/StringBuilder;)Ljava/lang/StringBuilder;
 Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->appendFieldTo(ILjava/lang/StringBuilder;Z)Ljava/lang/StringBuilder;
@@ -30009,7 +28051,6 @@
 Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->toCanonicalString()Ljava/lang/String;
 Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->toCanonicalString(Z)Ljava/lang/String;
 Landroid/icu/text/DateTimePatternGenerator$SkeletonFields;->toString(Z)Ljava/lang/String;
-Landroid/icu/text/DateTimePatternGenerator$VariableField;
 Landroid/icu/text/DateTimePatternGenerator$VariableField;-><init>(Ljava/lang/String;)V
 Landroid/icu/text/DateTimePatternGenerator$VariableField;-><init>(Ljava/lang/String;Z)V
 Landroid/icu/text/DateTimePatternGenerator$VariableField;->canonicalIndex:I
@@ -30098,7 +28139,6 @@
 Landroid/icu/text/DateTimePatternGenerator;->types:[[I
 Landroid/icu/text/DateTimePatternGenerator;->TYPE_LIMIT:I
 Landroid/icu/text/DateTimePatternGenerator;->_distanceInfo:Landroid/icu/text/DateTimePatternGenerator$DistanceInfo;
-Landroid/icu/text/DecimalFormat$PropertySetter;
 Landroid/icu/text/DecimalFormat$PropertySetter;->set(Landroid/icu/impl/number/DecimalFormatProperties;)V
 Landroid/icu/text/DecimalFormat;-><init>(Ljava/lang/String;Landroid/icu/text/DecimalFormatSymbols;I)V
 Landroid/icu/text/DecimalFormat;->exportedProperties:Landroid/icu/impl/number/DecimalFormatProperties;
@@ -30124,12 +28164,10 @@
 Landroid/icu/text/DecimalFormat;->threadLocalProperties:Ljava/lang/ThreadLocal;
 Landroid/icu/text/DecimalFormat;->toNumberFormatter()Landroid/icu/number/LocalizedNumberFormatter;
 Landroid/icu/text/DecimalFormat;->useCurrency(Landroid/icu/impl/number/DecimalFormatProperties;)Z
-Landroid/icu/text/DecimalFormatSymbols$CacheData;
 Landroid/icu/text/DecimalFormatSymbols$CacheData;-><init>(Landroid/icu/util/ULocale;[Ljava/lang/String;[Ljava/lang/String;)V
 Landroid/icu/text/DecimalFormatSymbols$CacheData;->digits:[Ljava/lang/String;
 Landroid/icu/text/DecimalFormatSymbols$CacheData;->numberElements:[Ljava/lang/String;
 Landroid/icu/text/DecimalFormatSymbols$CacheData;->validLocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/DecimalFormatSymbols$DecFmtDataSink;
 Landroid/icu/text/DecimalFormatSymbols$DecFmtDataSink;-><init>([Ljava/lang/String;)V
 Landroid/icu/text/DecimalFormatSymbols$DecFmtDataSink;->numberElements:[Ljava/lang/String;
 Landroid/icu/text/DecimalFormatSymbols;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/NumberingSystem;)V
@@ -30199,7 +28237,6 @@
 Landroid/icu/text/DecimalFormatSymbols;->ulocale:Landroid/icu/util/ULocale;
 Landroid/icu/text/DecimalFormatSymbols;->validLocale:Landroid/icu/util/ULocale;
 Landroid/icu/text/DecimalFormatSymbols;->zeroDigit:C
-Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;
 Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
 Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;->getNegPrefix()Ljava/lang/String;
 Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;->getNegSuffix()Ljava/lang/String;
@@ -30211,13 +28248,11 @@
 Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;->patternType:I
 Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;->posPrefixPatternForCurrency:Ljava/lang/String;
 Landroid/icu/text/DecimalFormat_ICU58_Android$AffixForCurrency;->posSuffixPatternForCurrency:Ljava/lang/String;
-Landroid/icu/text/DecimalFormat_ICU58_Android$Unit;
 Landroid/icu/text/DecimalFormat_ICU58_Android$Unit;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/icu/text/DecimalFormat_ICU58_Android$Unit;->prefix:Ljava/lang/String;
 Landroid/icu/text/DecimalFormat_ICU58_Android$Unit;->suffix:Ljava/lang/String;
 Landroid/icu/text/DecimalFormat_ICU58_Android$Unit;->writePrefix(Ljava/lang/StringBuffer;)V
 Landroid/icu/text/DecimalFormat_ICU58_Android$Unit;->writeSuffix(Ljava/lang/StringBuffer;)V
-Landroid/icu/text/DecimalFormat_ICU58_Android;
 Landroid/icu/text/DecimalFormat_ICU58_Android;-><init>()V
 Landroid/icu/text/DecimalFormat_ICU58_Android;-><init>(Ljava/lang/String;)V
 Landroid/icu/text/DecimalFormat_ICU58_Android;-><init>(Ljava/lang/String;Landroid/icu/text/DecimalFormatSymbols;)V
@@ -30439,7 +28474,6 @@
 Landroid/icu/text/DecimalFormat_ICU58_Android;->useExponentialNotation:Z
 Landroid/icu/text/DecimalFormat_ICU58_Android;->useSignificantDigits:Z
 Landroid/icu/text/DecimalFormat_ICU58_Android;->_setMaximumFractionDigits(I)V
-Landroid/icu/text/DictionaryBreakEngine$DequeI;
 Landroid/icu/text/DictionaryBreakEngine$DequeI;-><init>()V
 Landroid/icu/text/DictionaryBreakEngine$DequeI;->contains(I)Z
 Landroid/icu/text/DictionaryBreakEngine$DequeI;->data:[I
@@ -30456,7 +28490,6 @@
 Landroid/icu/text/DictionaryBreakEngine$DequeI;->push(I)V
 Landroid/icu/text/DictionaryBreakEngine$DequeI;->removeAllElements()V
 Landroid/icu/text/DictionaryBreakEngine$DequeI;->size()I
-Landroid/icu/text/DictionaryBreakEngine$PossibleWord;
 Landroid/icu/text/DictionaryBreakEngine$PossibleWord;-><init>()V
 Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->acceptMarked(Ljava/text/CharacterIterator;)I
 Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->backUp(Ljava/text/CharacterIterator;)Z
@@ -30470,20 +28503,16 @@
 Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->offset:I
 Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->POSSIBLE_WORD_LIST_MAX:I
 Landroid/icu/text/DictionaryBreakEngine$PossibleWord;->prefix:I
-Landroid/icu/text/DictionaryBreakEngine;
-Landroid/icu/text/DictionaryBreakEngine;-><init>([[Ljava/lang/Integer;)V
 Landroid/icu/text/DictionaryBreakEngine;->divideUpDictionaryRange(Ljava/text/CharacterIterator;IILandroid/icu/text/DictionaryBreakEngine$DequeI;)I
 Landroid/icu/text/DictionaryBreakEngine;->findBreaks(Ljava/text/CharacterIterator;IIILandroid/icu/text/DictionaryBreakEngine$DequeI;)I
 Landroid/icu/text/DictionaryBreakEngine;->fSet:Landroid/icu/text/UnicodeSet;
 Landroid/icu/text/DictionaryBreakEngine;->fTypes:Ljava/util/BitSet;
 Landroid/icu/text/DictionaryBreakEngine;->handles(II)Z
 Landroid/icu/text/DictionaryBreakEngine;->setCharacters(Landroid/icu/text/UnicodeSet;)V
-Landroid/icu/text/DictionaryMatcher;
 Landroid/icu/text/DictionaryMatcher;-><init>()V
 Landroid/icu/text/DictionaryMatcher;->getType()I
 Landroid/icu/text/DictionaryMatcher;->matches(Ljava/text/CharacterIterator;I[I[II)I
 Landroid/icu/text/DictionaryMatcher;->matches(Ljava/text/CharacterIterator;I[I[II[I)I
-Landroid/icu/text/DigitList_Android;
 Landroid/icu/text/DigitList_Android;-><init>()V
 Landroid/icu/text/DigitList_Android;->append(I)V
 Landroid/icu/text/DigitList_Android;->count:I
@@ -30514,18 +28543,14 @@
 Landroid/icu/text/DigitList_Android;->setBigDecimalDigits(Ljava/lang/String;IZ)V
 Landroid/icu/text/DigitList_Android;->shouldRoundUp(I)Z
 Landroid/icu/text/DigitList_Android;->wasRounded()Z
-Landroid/icu/text/DisplayContext$Type;-><init>()V
-Landroid/icu/text/DisplayContext;-><init>(Landroid/icu/text/DisplayContext$Type;I)V
 Landroid/icu/text/DisplayContext;->type:Landroid/icu/text/DisplayContext$Type;
 Landroid/icu/text/DisplayContext;->value:I
-Landroid/icu/text/DurationFormat;
 Landroid/icu/text/DurationFormat;-><init>()V
 Landroid/icu/text/DurationFormat;-><init>(Landroid/icu/util/ULocale;)V
 Landroid/icu/text/DurationFormat;->formatDurationFrom(JJ)Ljava/lang/String;
 Landroid/icu/text/DurationFormat;->formatDurationFromNow(J)Ljava/lang/String;
 Landroid/icu/text/DurationFormat;->formatDurationFromNowTo(Ljava/util/Date;)Ljava/lang/String;
 Landroid/icu/text/DurationFormat;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/DurationFormat;
-Landroid/icu/text/Edits$Iterator;
 Landroid/icu/text/Edits$Iterator;-><init>([CIZZ)V
 Landroid/icu/text/Edits$Iterator;->array:[C
 Landroid/icu/text/Edits$Iterator;->changed:Z
@@ -30558,7 +28583,6 @@
 Landroid/icu/text/Edits$Iterator;->srcIndex:I
 Landroid/icu/text/Edits$Iterator;->updateNextIndexes()V
 Landroid/icu/text/Edits$Iterator;->updatePreviousIndexes()V
-Landroid/icu/text/Edits;
 Landroid/icu/text/Edits;-><init>()V
 Landroid/icu/text/Edits;->addReplace(II)V
 Landroid/icu/text/Edits;->addUnchanged(I)V
@@ -30588,7 +28612,6 @@
 Landroid/icu/text/Edits;->setLastUnit(I)V
 Landroid/icu/text/Edits;->SHORT_CHANGE_NUM_MASK:I
 Landroid/icu/text/Edits;->STACK_CAPACITY:I
-Landroid/icu/text/FilteredBreakIteratorBuilder;
 Landroid/icu/text/FilteredBreakIteratorBuilder;-><init>()V
 Landroid/icu/text/FilteredBreakIteratorBuilder;->getEmptyInstance()Landroid/icu/text/FilteredBreakIteratorBuilder;
 Landroid/icu/text/FilteredBreakIteratorBuilder;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/text/FilteredBreakIteratorBuilder;
@@ -30596,13 +28619,11 @@
 Landroid/icu/text/FilteredBreakIteratorBuilder;->suppressBreakAfter(Ljava/lang/CharSequence;)Z
 Landroid/icu/text/FilteredBreakIteratorBuilder;->unsuppressBreakAfter(Ljava/lang/CharSequence;)Z
 Landroid/icu/text/FilteredBreakIteratorBuilder;->wrapIteratorWithFilter(Landroid/icu/text/BreakIterator;)Landroid/icu/text/BreakIterator;
-Landroid/icu/text/FilteredNormalizer2;
 Landroid/icu/text/FilteredNormalizer2;-><init>(Landroid/icu/text/Normalizer2;Landroid/icu/text/UnicodeSet;)V
 Landroid/icu/text/FilteredNormalizer2;->norm2:Landroid/icu/text/Normalizer2;
 Landroid/icu/text/FilteredNormalizer2;->normalize(Ljava/lang/CharSequence;Ljava/lang/Appendable;Landroid/icu/text/UnicodeSet$SpanCondition;)Ljava/lang/Appendable;
 Landroid/icu/text/FilteredNormalizer2;->normalizeSecondAndAppend(Ljava/lang/StringBuilder;Ljava/lang/CharSequence;Z)Ljava/lang/StringBuilder;
 Landroid/icu/text/FilteredNormalizer2;->set:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/IDNA$Error;-><init>()V
 Landroid/icu/text/IDNA$Info;->errors:Ljava/util/EnumSet;
 Landroid/icu/text/IDNA$Info;->isBiDi:Z
 Landroid/icu/text/IDNA$Info;->isOkBiDi:Z
@@ -30637,23 +28658,18 @@
 Landroid/icu/text/IDNA;->setBiDi(Landroid/icu/text/IDNA$Info;)V
 Landroid/icu/text/IDNA;->setNotOkBiDi(Landroid/icu/text/IDNA$Info;)V
 Landroid/icu/text/IDNA;->setTransitionalDifferent(Landroid/icu/text/IDNA$Info;)V
-Landroid/icu/text/LanguageBreakEngine;
 Landroid/icu/text/LanguageBreakEngine;->findBreaks(Ljava/text/CharacterIterator;IIILandroid/icu/text/DictionaryBreakEngine$DequeI;)I
 Landroid/icu/text/LanguageBreakEngine;->handles(II)Z
-Landroid/icu/text/ListFormatter$Cache;
 Landroid/icu/text/ListFormatter$Cache;-><init>()V
 Landroid/icu/text/ListFormatter$Cache;->cache:Landroid/icu/impl/ICUCache;
 Landroid/icu/text/ListFormatter$Cache;->get(Landroid/icu/util/ULocale;Ljava/lang/String;)Landroid/icu/text/ListFormatter;
 Landroid/icu/text/ListFormatter$Cache;->load(Landroid/icu/util/ULocale;Ljava/lang/String;)Landroid/icu/text/ListFormatter;
-Landroid/icu/text/ListFormatter$FormattedListBuilder;
 Landroid/icu/text/ListFormatter$FormattedListBuilder;-><init>(Ljava/lang/Object;Z)V
 Landroid/icu/text/ListFormatter$FormattedListBuilder;->append(Ljava/lang/String;Ljava/lang/Object;Z)Landroid/icu/text/ListFormatter$FormattedListBuilder;
 Landroid/icu/text/ListFormatter$FormattedListBuilder;->current:Ljava/lang/StringBuilder;
 Landroid/icu/text/ListFormatter$FormattedListBuilder;->getOffset()I
 Landroid/icu/text/ListFormatter$FormattedListBuilder;->offset:I
 Landroid/icu/text/ListFormatter$FormattedListBuilder;->offsetRecorded()Z
-Landroid/icu/text/ListFormatter$Style;
-Landroid/icu/text/ListFormatter$Style;-><init>(Ljava/lang/String;)V
 Landroid/icu/text/ListFormatter$Style;->DURATION:Landroid/icu/text/ListFormatter$Style;
 Landroid/icu/text/ListFormatter$Style;->DURATION_NARROW:Landroid/icu/text/ListFormatter$Style;
 Landroid/icu/text/ListFormatter$Style;->DURATION_SHORT:Landroid/icu/text/ListFormatter$Style;
@@ -30674,13 +28690,9 @@
 Landroid/icu/text/ListFormatter;->middle:Ljava/lang/String;
 Landroid/icu/text/ListFormatter;->start:Ljava/lang/String;
 Landroid/icu/text/ListFormatter;->two:Ljava/lang/String;
-Landroid/icu/text/LocaleDisplayNames$DialectHandling;-><init>()V
-Landroid/icu/text/LocaleDisplayNames$LastResortLocaleDisplayNames;
 Landroid/icu/text/LocaleDisplayNames$LastResortLocaleDisplayNames;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/LocaleDisplayNames$DialectHandling;)V
-Landroid/icu/text/LocaleDisplayNames$LastResortLocaleDisplayNames;-><init>(Landroid/icu/util/ULocale;[[Landroid/icu/text/DisplayContext;)V
 Landroid/icu/text/LocaleDisplayNames$LastResortLocaleDisplayNames;->contexts:[Landroid/icu/text/DisplayContext;
 Landroid/icu/text/LocaleDisplayNames$LastResortLocaleDisplayNames;->locale:Landroid/icu/util/ULocale;
-Landroid/icu/text/LocaleDisplayNames$UiListItem$UiListItemComparator;
 Landroid/icu/text/LocaleDisplayNames$UiListItem$UiListItemComparator;-><init>(Ljava/util/Comparator;Z)V
 Landroid/icu/text/LocaleDisplayNames$UiListItem$UiListItemComparator;->collator:Ljava/util/Comparator;
 Landroid/icu/text/LocaleDisplayNames$UiListItem$UiListItemComparator;->compare(Landroid/icu/text/LocaleDisplayNames$UiListItem;Landroid/icu/text/LocaleDisplayNames$UiListItem;)I
@@ -30689,13 +28701,11 @@
 Landroid/icu/text/LocaleDisplayNames;->FACTORY_DIALECTHANDLING:Ljava/lang/reflect/Method;
 Landroid/icu/text/LocaleDisplayNames;->FACTORY_DISPLAYCONTEXT:Ljava/lang/reflect/Method;
 Landroid/icu/text/LocaleDisplayNames;->scriptDisplayNameInContext(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/MeasureFormat$FormatWidth;-><init>(Landroid/icu/text/ListFormatter$Style;I)V
 Landroid/icu/text/MeasureFormat$FormatWidth;->currencyStyle:I
 Landroid/icu/text/MeasureFormat$FormatWidth;->getCurrencyStyle()I
 Landroid/icu/text/MeasureFormat$FormatWidth;->getListFormatterStyle()Landroid/icu/text/ListFormatter$Style;
 Landroid/icu/text/MeasureFormat$FormatWidth;->INDEX_COUNT:I
 Landroid/icu/text/MeasureFormat$FormatWidth;->listFormatterStyle:Landroid/icu/text/ListFormatter$Style;
-Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;
 Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;-><init>(Landroid/icu/text/NumberFormat;)V
 Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;->format(Landroid/icu/util/CurrencyAmount;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;
 Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;->format(Ljava/lang/Number;)Ljava/lang/String;
@@ -30704,7 +28714,6 @@
 Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;->getPrefix(Z)Ljava/lang/String;
 Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;->getSuffix(Z)Ljava/lang/String;
 Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;->nf:Landroid/icu/text/NumberFormat;
-Landroid/icu/text/MeasureFormat$MeasureFormatData;
 Landroid/icu/text/MeasureFormat$MeasureFormatData;-><init>()V
 Landroid/icu/text/MeasureFormat$MeasureFormatData;->hasPerFormatter(Landroid/icu/text/MeasureFormat$FormatWidth;)Z
 Landroid/icu/text/MeasureFormat$MeasureFormatData;->PATTERN_COUNT:I
@@ -30713,7 +28722,6 @@
 Landroid/icu/text/MeasureFormat$MeasureFormatData;->unitToStyleToDnam:Ljava/util/Map;
 Landroid/icu/text/MeasureFormat$MeasureFormatData;->unitToStyleToPatterns:Ljava/util/Map;
 Landroid/icu/text/MeasureFormat$MeasureFormatData;->widthFallback:[Landroid/icu/text/MeasureFormat$FormatWidth;
-Landroid/icu/text/MeasureFormat$MeasureProxy;
 Landroid/icu/text/MeasureFormat$MeasureProxy;-><init>()V
 Landroid/icu/text/MeasureFormat$MeasureProxy;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/MeasureFormat$FormatWidth;Landroid/icu/text/NumberFormat;I)V
 Landroid/icu/text/MeasureFormat$MeasureProxy;->createTimeUnitFormat()Landroid/icu/text/TimeUnitFormat;
@@ -30722,7 +28730,6 @@
 Landroid/icu/text/MeasureFormat$MeasureProxy;->locale:Landroid/icu/util/ULocale;
 Landroid/icu/text/MeasureFormat$MeasureProxy;->numberFormat:Landroid/icu/text/NumberFormat;
 Landroid/icu/text/MeasureFormat$MeasureProxy;->subClass:I
-Landroid/icu/text/MeasureFormat$NumericFormatters;
 Landroid/icu/text/MeasureFormat$NumericFormatters;-><init>(Landroid/icu/text/DateFormat;Landroid/icu/text/DateFormat;Landroid/icu/text/DateFormat;)V
 Landroid/icu/text/MeasureFormat$NumericFormatters;->getHourMinute()Landroid/icu/text/DateFormat;
 Landroid/icu/text/MeasureFormat$NumericFormatters;->getHourMinuteSecond()Landroid/icu/text/DateFormat;
@@ -30730,11 +28737,9 @@
 Landroid/icu/text/MeasureFormat$NumericFormatters;->hourMinute:Landroid/icu/text/DateFormat;
 Landroid/icu/text/MeasureFormat$NumericFormatters;->hourMinuteSecond:Landroid/icu/text/DateFormat;
 Landroid/icu/text/MeasureFormat$NumericFormatters;->minuteSecond:Landroid/icu/text/DateFormat;
-Landroid/icu/text/MeasureFormat$PatternData;
 Landroid/icu/text/MeasureFormat$PatternData;-><init>(Ljava/lang/String;)V
 Landroid/icu/text/MeasureFormat$PatternData;->prefix:Ljava/lang/String;
 Landroid/icu/text/MeasureFormat$PatternData;->suffix:Ljava/lang/String;
-Landroid/icu/text/MeasureFormat$UnitDataSink;
 Landroid/icu/text/MeasureFormat$UnitDataSink;-><init>(Landroid/icu/text/MeasureFormat$MeasureFormatData;)V
 Landroid/icu/text/MeasureFormat$UnitDataSink;->cacheData:Landroid/icu/text/MeasureFormat$MeasureFormatData;
 Landroid/icu/text/MeasureFormat$UnitDataSink;->consumeAlias(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
@@ -30761,7 +28766,6 @@
 Landroid/icu/text/MeasureFormat;->formatMeasure(Landroid/icu/util/Measure;Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;)Ljava/lang/String;
 Landroid/icu/text/MeasureFormat;->formatMeasure(Landroid/icu/util/Measure;Landroid/icu/text/MeasureFormat$ImmutableNumberFormat;Ljava/lang/StringBuilder;Ljava/text/FieldPosition;)Ljava/lang/StringBuilder;
 Landroid/icu/text/MeasureFormat;->formatMeasureRange(Landroid/icu/util/Measure;Landroid/icu/util/Measure;)Ljava/lang/String;
-Landroid/icu/text/MeasureFormat;->formatMeasuresSlowTrack(Landroid/icu/text/ListFormatter;Ljava/lang/StringBuilder;Ljava/text/FieldPosition;[[Landroid/icu/util/Measure;)Ljava/lang/StringBuilder;
 Landroid/icu/text/MeasureFormat;->formatNumeric(Ljava/util/Date;Landroid/icu/text/DateFormat;Landroid/icu/text/DateFormat$Field;Ljava/lang/Number;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
 Landroid/icu/text/MeasureFormat;->formatNumeric([Ljava/lang/Number;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
 Landroid/icu/text/MeasureFormat;->formatWidth:Landroid/icu/text/MeasureFormat$FormatWidth;
@@ -30791,7 +28795,6 @@
 Landroid/icu/text/MeasureFormat;->withLocale(Landroid/icu/util/ULocale;)Landroid/icu/text/MeasureFormat;
 Landroid/icu/text/MeasureFormat;->withNumberFormat(Landroid/icu/text/NumberFormat;)Landroid/icu/text/MeasureFormat;
 Landroid/icu/text/MeasureFormat;->withPerUnitAndAppend(Ljava/lang/CharSequence;Landroid/icu/util/MeasureUnit;Ljava/lang/StringBuilder;)I
-Landroid/icu/text/MessageFormat$AppendableWrapper;
 Landroid/icu/text/MessageFormat$AppendableWrapper;-><init>(Ljava/lang/StringBuffer;)V
 Landroid/icu/text/MessageFormat$AppendableWrapper;-><init>(Ljava/lang/StringBuilder;)V
 Landroid/icu/text/MessageFormat$AppendableWrapper;->app:Ljava/lang/Appendable;
@@ -30804,7 +28807,6 @@
 Landroid/icu/text/MessageFormat$AppendableWrapper;->formatAndAppend(Ljava/text/Format;Ljava/lang/Object;Ljava/lang/String;)V
 Landroid/icu/text/MessageFormat$AppendableWrapper;->length:I
 Landroid/icu/text/MessageFormat$AppendableWrapper;->useAttributes()V
-Landroid/icu/text/MessageFormat$AttributeAndPosition;
 Landroid/icu/text/MessageFormat$AttributeAndPosition;-><init>(Ljava/lang/Object;II)V
 Landroid/icu/text/MessageFormat$AttributeAndPosition;-><init>(Ljava/text/AttributedCharacterIterator$Attribute;Ljava/lang/Object;II)V
 Landroid/icu/text/MessageFormat$AttributeAndPosition;->init(Ljava/text/AttributedCharacterIterator$Attribute;Ljava/lang/Object;II)V
@@ -30812,7 +28814,6 @@
 Landroid/icu/text/MessageFormat$AttributeAndPosition;->limit:I
 Landroid/icu/text/MessageFormat$AttributeAndPosition;->start:I
 Landroid/icu/text/MessageFormat$AttributeAndPosition;->value:Ljava/lang/Object;
-Landroid/icu/text/MessageFormat$PluralSelectorContext;
 Landroid/icu/text/MessageFormat$PluralSelectorContext;-><init>(ILjava/lang/String;Ljava/lang/Number;D)V
 Landroid/icu/text/MessageFormat$PluralSelectorContext;->argName:Ljava/lang/String;
 Landroid/icu/text/MessageFormat$PluralSelectorContext;->formatter:Ljava/text/Format;
@@ -30822,7 +28823,6 @@
 Landroid/icu/text/MessageFormat$PluralSelectorContext;->numberString:Ljava/lang/String;
 Landroid/icu/text/MessageFormat$PluralSelectorContext;->offset:D
 Landroid/icu/text/MessageFormat$PluralSelectorContext;->startIndex:I
-Landroid/icu/text/MessageFormat$PluralSelectorProvider;
 Landroid/icu/text/MessageFormat$PluralSelectorProvider;-><init>(Landroid/icu/text/MessageFormat;Landroid/icu/text/PluralRules$PluralType;)V
 Landroid/icu/text/MessageFormat$PluralSelectorProvider;->msgFormat:Landroid/icu/text/MessageFormat;
 Landroid/icu/text/MessageFormat$PluralSelectorProvider;->rules:Landroid/icu/text/PluralRules;
@@ -30885,9 +28885,6 @@
 Landroid/icu/text/MessageFormat;->TYPE_TIME:I
 Landroid/icu/text/MessageFormat;->ulocale:Landroid/icu/util/ULocale;
 Landroid/icu/text/MessageFormat;->updateMetaData(Landroid/icu/text/MessageFormat$AppendableWrapper;ILjava/text/FieldPosition;Ljava/lang/Object;)Ljava/text/FieldPosition;
-Landroid/icu/text/MessagePattern$ApostropheMode;-><init>()V
-Landroid/icu/text/MessagePattern$ArgType;-><init>()V
-Landroid/icu/text/MessagePattern$Part$Type;-><init>()V
 Landroid/icu/text/MessagePattern$Part;-><init>(Landroid/icu/text/MessagePattern$Part$Type;III)V
 Landroid/icu/text/MessagePattern$Part;->index:I
 Landroid/icu/text/MessagePattern$Part;->length:C
@@ -30936,7 +28933,6 @@
 Landroid/icu/text/MessagePattern;->skipDouble(I)I
 Landroid/icu/text/MessagePattern;->skipIdentifier(I)I
 Landroid/icu/text/MessagePattern;->skipWhiteSpace(I)I
-Landroid/icu/text/MessagePatternUtil$ArgNode;
 Landroid/icu/text/MessagePatternUtil$ArgNode;-><init>()V
 Landroid/icu/text/MessagePatternUtil$ArgNode;->argType:Landroid/icu/text/MessagePattern$ArgType;
 Landroid/icu/text/MessagePatternUtil$ArgNode;->complexStyle:Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;
@@ -30951,7 +28947,6 @@
 Landroid/icu/text/MessagePatternUtil$ArgNode;->number:I
 Landroid/icu/text/MessagePatternUtil$ArgNode;->style:Ljava/lang/String;
 Landroid/icu/text/MessagePatternUtil$ArgNode;->typeName:Ljava/lang/String;
-Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;
 Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;-><init>(Landroid/icu/text/MessagePattern$ArgType;)V
 Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->addVariant(Landroid/icu/text/MessagePatternUtil$VariantNode;)V
 Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->argType:Landroid/icu/text/MessagePattern$ArgType;
@@ -30964,31 +28959,24 @@
 Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->hasExplicitOffset()Z
 Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->list:Ljava/util/List;
 Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;->offset:D
-Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;
-Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;-><init>()V
 Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;->ARG:Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;
 Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;->REPLACE_NUMBER:Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;
 Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;->TEXT:Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;
 Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;->valueOf(Ljava/lang/String;)Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;
 Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;->values()[Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;
-Landroid/icu/text/MessagePatternUtil$MessageContentsNode;
 Landroid/icu/text/MessagePatternUtil$MessageContentsNode;-><init>(Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;)V
 Landroid/icu/text/MessagePatternUtil$MessageContentsNode;->createReplaceNumberNode()Landroid/icu/text/MessagePatternUtil$MessageContentsNode;
 Landroid/icu/text/MessagePatternUtil$MessageContentsNode;->getType()Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;
 Landroid/icu/text/MessagePatternUtil$MessageContentsNode;->type:Landroid/icu/text/MessagePatternUtil$MessageContentsNode$Type;
-Landroid/icu/text/MessagePatternUtil$MessageNode;
 Landroid/icu/text/MessagePatternUtil$MessageNode;-><init>()V
 Landroid/icu/text/MessagePatternUtil$MessageNode;->addContentsNode(Landroid/icu/text/MessagePatternUtil$MessageContentsNode;)V
 Landroid/icu/text/MessagePatternUtil$MessageNode;->freeze()Landroid/icu/text/MessagePatternUtil$MessageNode;
 Landroid/icu/text/MessagePatternUtil$MessageNode;->getContents()Ljava/util/List;
 Landroid/icu/text/MessagePatternUtil$MessageNode;->list:Ljava/util/List;
-Landroid/icu/text/MessagePatternUtil$Node;
 Landroid/icu/text/MessagePatternUtil$Node;-><init>()V
-Landroid/icu/text/MessagePatternUtil$TextNode;
 Landroid/icu/text/MessagePatternUtil$TextNode;-><init>(Ljava/lang/String;)V
 Landroid/icu/text/MessagePatternUtil$TextNode;->getText()Ljava/lang/String;
 Landroid/icu/text/MessagePatternUtil$TextNode;->text:Ljava/lang/String;
-Landroid/icu/text/MessagePatternUtil$VariantNode;
 Landroid/icu/text/MessagePatternUtil$VariantNode;-><init>()V
 Landroid/icu/text/MessagePatternUtil$VariantNode;->getMessage()Landroid/icu/text/MessagePatternUtil$MessageNode;
 Landroid/icu/text/MessagePatternUtil$VariantNode;->getSelector()Ljava/lang/String;
@@ -30997,7 +28985,6 @@
 Landroid/icu/text/MessagePatternUtil$VariantNode;->msgNode:Landroid/icu/text/MessagePatternUtil$MessageNode;
 Landroid/icu/text/MessagePatternUtil$VariantNode;->numericValue:D
 Landroid/icu/text/MessagePatternUtil$VariantNode;->selector:Ljava/lang/String;
-Landroid/icu/text/MessagePatternUtil;
 Landroid/icu/text/MessagePatternUtil;-><init>()V
 Landroid/icu/text/MessagePatternUtil;->buildArgNode(Landroid/icu/text/MessagePattern;II)Landroid/icu/text/MessagePatternUtil$ArgNode;
 Landroid/icu/text/MessagePatternUtil;->buildChoiceStyleNode(Landroid/icu/text/MessagePattern;II)Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;
@@ -31006,7 +28993,6 @@
 Landroid/icu/text/MessagePatternUtil;->buildMessageNode(Ljava/lang/String;)Landroid/icu/text/MessagePatternUtil$MessageNode;
 Landroid/icu/text/MessagePatternUtil;->buildPluralStyleNode(Landroid/icu/text/MessagePattern;IILandroid/icu/text/MessagePattern$ArgType;)Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;
 Landroid/icu/text/MessagePatternUtil;->buildSelectStyleNode(Landroid/icu/text/MessagePattern;II)Landroid/icu/text/MessagePatternUtil$ComplexArgStyleNode;
-Landroid/icu/text/NFRule;
 Landroid/icu/text/NFRule;-><init>(Landroid/icu/text/RuleBasedNumberFormat;Ljava/lang/String;)V
 Landroid/icu/text/NFRule;->allIgnorable(Ljava/lang/String;)Z
 Landroid/icu/text/NFRule;->baseValue:J
@@ -31046,7 +29032,6 @@
 Landroid/icu/text/NFRule;->sub1:Landroid/icu/text/NFSubstitution;
 Landroid/icu/text/NFRule;->sub2:Landroid/icu/text/NFSubstitution;
 Landroid/icu/text/NFRule;->ZERO:Ljava/lang/Long;
-Landroid/icu/text/NFRuleSet;
 Landroid/icu/text/NFRuleSet;-><init>(Landroid/icu/text/RuleBasedNumberFormat;[Ljava/lang/String;I)V
 Landroid/icu/text/NFRuleSet;->findFractionRuleSetRule(D)Landroid/icu/text/NFRule;
 Landroid/icu/text/NFRuleSet;->findNormalRule(J)Landroid/icu/text/NFRule;
@@ -31078,7 +29063,6 @@
 Landroid/icu/text/NFRuleSet;->setBestFractionRule(ILandroid/icu/text/NFRule;Z)V
 Landroid/icu/text/NFRuleSet;->setDecimalFormatSymbols(Landroid/icu/text/DecimalFormatSymbols;)V
 Landroid/icu/text/NFRuleSet;->setNonNumericalRule(Landroid/icu/text/NFRule;)V
-Landroid/icu/text/NFSubstitution;
 Landroid/icu/text/NFSubstitution;-><init>(ILandroid/icu/text/NFRuleSet;Ljava/lang/String;)V
 Landroid/icu/text/NFSubstitution;->calcUpperBound(D)D
 Landroid/icu/text/NFSubstitution;->composeRuleValue(DD)D
@@ -31097,76 +29081,54 @@
 Landroid/icu/text/NFSubstitution;->tokenChar()C
 Landroid/icu/text/NFSubstitution;->transformNumber(D)D
 Landroid/icu/text/NFSubstitution;->transformNumber(J)J
-Landroid/icu/text/Normalizer$CharsAppendable;
 Landroid/icu/text/Normalizer$CharsAppendable;-><init>([CII)V
 Landroid/icu/text/Normalizer$CharsAppendable;->chars:[C
 Landroid/icu/text/Normalizer$CharsAppendable;->length()I
 Landroid/icu/text/Normalizer$CharsAppendable;->limit:I
 Landroid/icu/text/Normalizer$CharsAppendable;->offset:I
 Landroid/icu/text/Normalizer$CharsAppendable;->start:I
-Landroid/icu/text/Normalizer$CmpEquivLevel;
 Landroid/icu/text/Normalizer$CmpEquivLevel;-><init>()V
 Landroid/icu/text/Normalizer$CmpEquivLevel;->cs:Ljava/lang/CharSequence;
 Landroid/icu/text/Normalizer$CmpEquivLevel;->s:I
-Landroid/icu/text/Normalizer$FCD32ModeImpl;
 Landroid/icu/text/Normalizer$FCD32ModeImpl;-><init>()V
 Landroid/icu/text/Normalizer$FCD32ModeImpl;->INSTANCE:Landroid/icu/text/Normalizer$ModeImpl;
-Landroid/icu/text/Normalizer$FCDMode;
 Landroid/icu/text/Normalizer$FCDMode;-><init>()V
 Landroid/icu/text/Normalizer$FCDMode;->getNormalizer2(I)Landroid/icu/text/Normalizer2;
-Landroid/icu/text/Normalizer$FCDModeImpl;
 Landroid/icu/text/Normalizer$FCDModeImpl;-><init>()V
 Landroid/icu/text/Normalizer$FCDModeImpl;->INSTANCE:Landroid/icu/text/Normalizer$ModeImpl;
-Landroid/icu/text/Normalizer$Mode;
 Landroid/icu/text/Normalizer$Mode;-><init>()V
 Landroid/icu/text/Normalizer$Mode;->getNormalizer2(I)Landroid/icu/text/Normalizer2;
-Landroid/icu/text/Normalizer$ModeImpl;
 Landroid/icu/text/Normalizer$ModeImpl;-><init>(Landroid/icu/text/Normalizer2;)V
 Landroid/icu/text/Normalizer$ModeImpl;->normalizer2:Landroid/icu/text/Normalizer2;
-Landroid/icu/text/Normalizer$NFC32ModeImpl;
 Landroid/icu/text/Normalizer$NFC32ModeImpl;-><init>()V
 Landroid/icu/text/Normalizer$NFC32ModeImpl;->INSTANCE:Landroid/icu/text/Normalizer$ModeImpl;
-Landroid/icu/text/Normalizer$NFCMode;
 Landroid/icu/text/Normalizer$NFCMode;-><init>()V
 Landroid/icu/text/Normalizer$NFCMode;->getNormalizer2(I)Landroid/icu/text/Normalizer2;
-Landroid/icu/text/Normalizer$NFCModeImpl;
 Landroid/icu/text/Normalizer$NFCModeImpl;-><init>()V
 Landroid/icu/text/Normalizer$NFCModeImpl;->INSTANCE:Landroid/icu/text/Normalizer$ModeImpl;
-Landroid/icu/text/Normalizer$NFD32ModeImpl;
 Landroid/icu/text/Normalizer$NFD32ModeImpl;-><init>()V
 Landroid/icu/text/Normalizer$NFD32ModeImpl;->INSTANCE:Landroid/icu/text/Normalizer$ModeImpl;
-Landroid/icu/text/Normalizer$NFDMode;
 Landroid/icu/text/Normalizer$NFDMode;-><init>()V
 Landroid/icu/text/Normalizer$NFDMode;->getNormalizer2(I)Landroid/icu/text/Normalizer2;
-Landroid/icu/text/Normalizer$NFDModeImpl;
 Landroid/icu/text/Normalizer$NFDModeImpl;-><init>()V
 Landroid/icu/text/Normalizer$NFDModeImpl;->INSTANCE:Landroid/icu/text/Normalizer$ModeImpl;
-Landroid/icu/text/Normalizer$NFKC32ModeImpl;
 Landroid/icu/text/Normalizer$NFKC32ModeImpl;-><init>()V
 Landroid/icu/text/Normalizer$NFKC32ModeImpl;->INSTANCE:Landroid/icu/text/Normalizer$ModeImpl;
-Landroid/icu/text/Normalizer$NFKCMode;
 Landroid/icu/text/Normalizer$NFKCMode;-><init>()V
 Landroid/icu/text/Normalizer$NFKCMode;->getNormalizer2(I)Landroid/icu/text/Normalizer2;
-Landroid/icu/text/Normalizer$NFKCModeImpl;
 Landroid/icu/text/Normalizer$NFKCModeImpl;-><init>()V
 Landroid/icu/text/Normalizer$NFKCModeImpl;->INSTANCE:Landroid/icu/text/Normalizer$ModeImpl;
-Landroid/icu/text/Normalizer$NFKD32ModeImpl;
 Landroid/icu/text/Normalizer$NFKD32ModeImpl;-><init>()V
 Landroid/icu/text/Normalizer$NFKD32ModeImpl;->INSTANCE:Landroid/icu/text/Normalizer$ModeImpl;
-Landroid/icu/text/Normalizer$NFKDMode;
 Landroid/icu/text/Normalizer$NFKDMode;-><init>()V
 Landroid/icu/text/Normalizer$NFKDMode;->getNormalizer2(I)Landroid/icu/text/Normalizer2;
-Landroid/icu/text/Normalizer$NFKDModeImpl;
 Landroid/icu/text/Normalizer$NFKDModeImpl;-><init>()V
 Landroid/icu/text/Normalizer$NFKDModeImpl;->INSTANCE:Landroid/icu/text/Normalizer$ModeImpl;
-Landroid/icu/text/Normalizer$NONEMode;
 Landroid/icu/text/Normalizer$NONEMode;-><init>()V
 Landroid/icu/text/Normalizer$NONEMode;->getNormalizer2(I)Landroid/icu/text/Normalizer2;
 Landroid/icu/text/Normalizer$QuickCheckResult;-><init>(I)V
-Landroid/icu/text/Normalizer$Unicode32;
 Landroid/icu/text/Normalizer$Unicode32;-><init>()V
 Landroid/icu/text/Normalizer$Unicode32;->INSTANCE:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/Normalizer2$Mode;-><init>()V
 Landroid/icu/text/Normalizer2;-><init>()V
 Landroid/icu/text/Normalizer;-><init>(Landroid/icu/text/UCharacterIterator;Landroid/icu/text/Normalizer$Mode;I)V
 Landroid/icu/text/Normalizer;-><init>(Ljava/lang/String;Landroid/icu/text/Normalizer$Mode;I)V
@@ -31255,7 +29217,6 @@
 Landroid/icu/text/Normalizer;->startIndex()I
 Landroid/icu/text/Normalizer;->text:Landroid/icu/text/UCharacterIterator;
 Landroid/icu/text/Normalizer;->UNICODE_3_2:I
-Landroid/icu/text/NumberFormat$NumberFormatFactory;
 Landroid/icu/text/NumberFormat$NumberFormatFactory;-><init>()V
 Landroid/icu/text/NumberFormat$NumberFormatFactory;->createFormat(Landroid/icu/util/ULocale;I)Landroid/icu/text/NumberFormat;
 Landroid/icu/text/NumberFormat$NumberFormatFactory;->createFormat(Ljava/util/Locale;I)Landroid/icu/text/NumberFormat;
@@ -31266,14 +29227,12 @@
 Landroid/icu/text/NumberFormat$NumberFormatFactory;->FORMAT_SCIENTIFIC:I
 Landroid/icu/text/NumberFormat$NumberFormatFactory;->getSupportedLocaleNames()Ljava/util/Set;
 Landroid/icu/text/NumberFormat$NumberFormatFactory;->visible()Z
-Landroid/icu/text/NumberFormat$NumberFormatShim;
 Landroid/icu/text/NumberFormat$NumberFormatShim;-><init>()V
 Landroid/icu/text/NumberFormat$NumberFormatShim;->createInstance(Landroid/icu/util/ULocale;I)Landroid/icu/text/NumberFormat;
 Landroid/icu/text/NumberFormat$NumberFormatShim;->getAvailableLocales()[Ljava/util/Locale;
 Landroid/icu/text/NumberFormat$NumberFormatShim;->getAvailableULocales()[Landroid/icu/util/ULocale;
 Landroid/icu/text/NumberFormat$NumberFormatShim;->registerFactory(Landroid/icu/text/NumberFormat$NumberFormatFactory;)Ljava/lang/Object;
 Landroid/icu/text/NumberFormat$NumberFormatShim;->unregister(Ljava/lang/Object;)Z
-Landroid/icu/text/NumberFormat$SimpleNumberFormatFactory;
 Landroid/icu/text/NumberFormat$SimpleNumberFormatFactory;-><init>(Landroid/icu/util/ULocale;)V
 Landroid/icu/text/NumberFormat$SimpleNumberFormatFactory;-><init>(Landroid/icu/util/ULocale;Z)V
 Landroid/icu/text/NumberFormat$SimpleNumberFormatFactory;-><init>(Ljava/util/Locale;)V
@@ -31309,7 +29268,6 @@
 Landroid/icu/text/NumberFormat;->serialVersionOnStream:I
 Landroid/icu/text/NumberFormat;->shim:Landroid/icu/text/NumberFormat$NumberFormatShim;
 Landroid/icu/text/NumberFormat;->unregister(Ljava/lang/Object;)Z
-Landroid/icu/text/NumberingSystem$LocaleLookupData;
 Landroid/icu/text/NumberingSystem$LocaleLookupData;-><init>(Landroid/icu/util/ULocale;Ljava/lang/String;)V
 Landroid/icu/text/NumberingSystem$LocaleLookupData;->locale:Landroid/icu/util/ULocale;
 Landroid/icu/text/NumberingSystem$LocaleLookupData;->numbersKeyword:Ljava/lang/String;
@@ -31324,10 +29282,7 @@
 Landroid/icu/text/NumberingSystem;->name:Ljava/lang/String;
 Landroid/icu/text/NumberingSystem;->OTHER_NS_KEYWORDS:[Ljava/lang/String;
 Landroid/icu/text/NumberingSystem;->radix:I
-Landroid/icu/text/PluralFormat$PluralSelector;
 Landroid/icu/text/PluralFormat$PluralSelector;->select(Ljava/lang/Object;D)Ljava/lang/String;
-Landroid/icu/text/PluralFormat$PluralSelectorAdapter;
-Landroid/icu/text/PluralFormat$PluralSelectorAdapter;-><init>()V
 Landroid/icu/text/PluralFormat$PluralSelectorAdapter;->select(Ljava/lang/Object;D)Ljava/lang/String;
 Landroid/icu/text/PluralFormat;-><init>(Landroid/icu/util/ULocale;Landroid/icu/text/PluralRules$PluralType;Ljava/lang/String;Landroid/icu/text/NumberFormat;)V
 Landroid/icu/text/PluralFormat;->findSubMessage(Landroid/icu/text/MessagePattern;ILandroid/icu/text/PluralFormat$PluralSelector;Ljava/lang/Object;D)I
@@ -31344,7 +29299,6 @@
 Landroid/icu/text/PluralFormat;->resetPattern()V
 Landroid/icu/text/PluralFormat;->setLocale(Landroid/icu/util/ULocale;)V
 Landroid/icu/text/PluralFormat;->ulocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/PluralRanges$Matrix;
 Landroid/icu/text/PluralRanges$Matrix;-><init>()V
 Landroid/icu/text/PluralRanges$Matrix;->compareTo(Landroid/icu/text/PluralRanges$Matrix;)I
 Landroid/icu/text/PluralRanges$Matrix;->data:[B
@@ -31353,7 +29307,6 @@
 Landroid/icu/text/PluralRanges$Matrix;->set(Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;)V
 Landroid/icu/text/PluralRanges$Matrix;->setIfNew(Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;)V
 Landroid/icu/text/PluralRanges$Matrix;->startSame(Landroid/icu/impl/StandardPlural;Ljava/util/EnumSet;Landroid/icu/util/Output;)Landroid/icu/impl/StandardPlural;
-Landroid/icu/text/PluralRanges;
 Landroid/icu/text/PluralRanges;-><init>()V
 Landroid/icu/text/PluralRanges;->add(Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;Landroid/icu/impl/StandardPlural;)V
 Landroid/icu/text/PluralRanges;->compareTo(Landroid/icu/text/PluralRanges;)I
@@ -31363,18 +29316,14 @@
 Landroid/icu/text/PluralRanges;->isExplicitlySet(Landroid/icu/impl/StandardPlural;)Z
 Landroid/icu/text/PluralRanges;->isFrozen:Z
 Landroid/icu/text/PluralRanges;->matrix:Landroid/icu/text/PluralRanges$Matrix;
-Landroid/icu/text/PluralRules$AndConstraint;
 Landroid/icu/text/PluralRules$AndConstraint;-><init>(Landroid/icu/text/PluralRules$Constraint;Landroid/icu/text/PluralRules$Constraint;)V
 Landroid/icu/text/PluralRules$AndConstraint;->isFulfilled(Landroid/icu/text/PluralRules$IFixedDecimal;)Z
 Landroid/icu/text/PluralRules$AndConstraint;->isLimited(Landroid/icu/text/PluralRules$SampleType;)Z
-Landroid/icu/text/PluralRules$BinaryConstraint;
 Landroid/icu/text/PluralRules$BinaryConstraint;-><init>(Landroid/icu/text/PluralRules$Constraint;Landroid/icu/text/PluralRules$Constraint;)V
 Landroid/icu/text/PluralRules$BinaryConstraint;->a:Landroid/icu/text/PluralRules$Constraint;
 Landroid/icu/text/PluralRules$BinaryConstraint;->b:Landroid/icu/text/PluralRules$Constraint;
-Landroid/icu/text/PluralRules$Constraint;
 Landroid/icu/text/PluralRules$Constraint;->isFulfilled(Landroid/icu/text/PluralRules$IFixedDecimal;)Z
 Landroid/icu/text/PluralRules$Constraint;->isLimited(Landroid/icu/text/PluralRules$SampleType;)Z
-Landroid/icu/text/PluralRules$Factory;
 Landroid/icu/text/PluralRules$Factory;-><init>()V
 Landroid/icu/text/PluralRules$Factory;->forLocale(Landroid/icu/util/ULocale;)Landroid/icu/text/PluralRules;
 Landroid/icu/text/PluralRules$Factory;->forLocale(Landroid/icu/util/ULocale;Landroid/icu/text/PluralRules$PluralType;)Landroid/icu/text/PluralRules;
@@ -31382,7 +29331,6 @@
 Landroid/icu/text/PluralRules$Factory;->getDefaultFactory()Landroid/icu/impl/PluralRulesLoader;
 Landroid/icu/text/PluralRules$Factory;->getFunctionalEquivalent(Landroid/icu/util/ULocale;[Z)Landroid/icu/util/ULocale;
 Landroid/icu/text/PluralRules$Factory;->hasOverride(Landroid/icu/util/ULocale;)Z
-Landroid/icu/text/PluralRules$FixedDecimal;
 Landroid/icu/text/PluralRules$FixedDecimal;-><init>(D)V
 Landroid/icu/text/PluralRules$FixedDecimal;-><init>(DI)V
 Landroid/icu/text/PluralRules$FixedDecimal;-><init>(DIJ)V
@@ -31418,11 +29366,9 @@
 Landroid/icu/text/PluralRules$FixedDecimal;->source:D
 Landroid/icu/text/PluralRules$FixedDecimal;->visibleDecimalDigitCount:I
 Landroid/icu/text/PluralRules$FixedDecimal;->visibleDecimalDigitCountWithoutTrailingZeros:I
-Landroid/icu/text/PluralRules$FixedDecimalRange;
 Landroid/icu/text/PluralRules$FixedDecimalRange;-><init>(Landroid/icu/text/PluralRules$FixedDecimal;Landroid/icu/text/PluralRules$FixedDecimal;)V
 Landroid/icu/text/PluralRules$FixedDecimalRange;->end:Landroid/icu/text/PluralRules$FixedDecimal;
 Landroid/icu/text/PluralRules$FixedDecimalRange;->start:Landroid/icu/text/PluralRules$FixedDecimal;
-Landroid/icu/text/PluralRules$FixedDecimalSamples;
 Landroid/icu/text/PluralRules$FixedDecimalSamples;-><init>(Landroid/icu/text/PluralRules$SampleType;Ljava/util/Set;Z)V
 Landroid/icu/text/PluralRules$FixedDecimalSamples;->addSamples(Ljava/util/Set;)Ljava/util/Set;
 Landroid/icu/text/PluralRules$FixedDecimalSamples;->bounded:Z
@@ -31432,12 +29378,9 @@
 Landroid/icu/text/PluralRules$FixedDecimalSamples;->parse(Ljava/lang/String;)Landroid/icu/text/PluralRules$FixedDecimalSamples;
 Landroid/icu/text/PluralRules$FixedDecimalSamples;->samples:Ljava/util/Set;
 Landroid/icu/text/PluralRules$FixedDecimalSamples;->sampleType:Landroid/icu/text/PluralRules$SampleType;
-Landroid/icu/text/PluralRules$IFixedDecimal;
 Landroid/icu/text/PluralRules$IFixedDecimal;->getPluralOperand(Landroid/icu/text/PluralRules$Operand;)D
 Landroid/icu/text/PluralRules$IFixedDecimal;->isInfinite()Z
 Landroid/icu/text/PluralRules$IFixedDecimal;->isNaN()Z
-Landroid/icu/text/PluralRules$KeywordStatus;
-Landroid/icu/text/PluralRules$KeywordStatus;-><init>()V
 Landroid/icu/text/PluralRules$KeywordStatus;->BOUNDED:Landroid/icu/text/PluralRules$KeywordStatus;
 Landroid/icu/text/PluralRules$KeywordStatus;->INVALID:Landroid/icu/text/PluralRules$KeywordStatus;
 Landroid/icu/text/PluralRules$KeywordStatus;->SUPPRESSED:Landroid/icu/text/PluralRules$KeywordStatus;
@@ -31445,8 +29388,6 @@
 Landroid/icu/text/PluralRules$KeywordStatus;->UNIQUE:Landroid/icu/text/PluralRules$KeywordStatus;
 Landroid/icu/text/PluralRules$KeywordStatus;->valueOf(Ljava/lang/String;)Landroid/icu/text/PluralRules$KeywordStatus;
 Landroid/icu/text/PluralRules$KeywordStatus;->values()[Landroid/icu/text/PluralRules$KeywordStatus;
-Landroid/icu/text/PluralRules$Operand;
-Landroid/icu/text/PluralRules$Operand;-><init>()V
 Landroid/icu/text/PluralRules$Operand;->f:Landroid/icu/text/PluralRules$Operand;
 Landroid/icu/text/PluralRules$Operand;->i:Landroid/icu/text/PluralRules$Operand;
 Landroid/icu/text/PluralRules$Operand;->j:Landroid/icu/text/PluralRules$Operand;
@@ -31456,12 +29397,9 @@
 Landroid/icu/text/PluralRules$Operand;->valueOf(Ljava/lang/String;)Landroid/icu/text/PluralRules$Operand;
 Landroid/icu/text/PluralRules$Operand;->values()[Landroid/icu/text/PluralRules$Operand;
 Landroid/icu/text/PluralRules$Operand;->w:Landroid/icu/text/PluralRules$Operand;
-Landroid/icu/text/PluralRules$OrConstraint;
 Landroid/icu/text/PluralRules$OrConstraint;-><init>(Landroid/icu/text/PluralRules$Constraint;Landroid/icu/text/PluralRules$Constraint;)V
 Landroid/icu/text/PluralRules$OrConstraint;->isFulfilled(Landroid/icu/text/PluralRules$IFixedDecimal;)Z
 Landroid/icu/text/PluralRules$OrConstraint;->isLimited(Landroid/icu/text/PluralRules$SampleType;)Z
-Landroid/icu/text/PluralRules$PluralType;-><init>()V
-Landroid/icu/text/PluralRules$RangeConstraint;
 Landroid/icu/text/PluralRules$RangeConstraint;-><init>(IZLandroid/icu/text/PluralRules$Operand;ZDD[J)V
 Landroid/icu/text/PluralRules$RangeConstraint;->inRange:Z
 Landroid/icu/text/PluralRules$RangeConstraint;->integersOnly:Z
@@ -31472,7 +29410,6 @@
 Landroid/icu/text/PluralRules$RangeConstraint;->operand:Landroid/icu/text/PluralRules$Operand;
 Landroid/icu/text/PluralRules$RangeConstraint;->range_list:[J
 Landroid/icu/text/PluralRules$RangeConstraint;->upperBound:D
-Landroid/icu/text/PluralRules$Rule;
 Landroid/icu/text/PluralRules$Rule;-><init>(Ljava/lang/String;Landroid/icu/text/PluralRules$Constraint;Landroid/icu/text/PluralRules$FixedDecimalSamples;Landroid/icu/text/PluralRules$FixedDecimalSamples;)V
 Landroid/icu/text/PluralRules$Rule;->and(Landroid/icu/text/PluralRules$Constraint;)Landroid/icu/text/PluralRules$Rule;
 Landroid/icu/text/PluralRules$Rule;->appliesTo(Landroid/icu/text/PluralRules$IFixedDecimal;)Z
@@ -31484,7 +29421,6 @@
 Landroid/icu/text/PluralRules$Rule;->isLimited(Landroid/icu/text/PluralRules$SampleType;)Z
 Landroid/icu/text/PluralRules$Rule;->keyword:Ljava/lang/String;
 Landroid/icu/text/PluralRules$Rule;->or(Landroid/icu/text/PluralRules$Constraint;)Landroid/icu/text/PluralRules$Rule;
-Landroid/icu/text/PluralRules$RuleList;
 Landroid/icu/text/PluralRules$RuleList;-><init>()V
 Landroid/icu/text/PluralRules$RuleList;->addRule(Landroid/icu/text/PluralRules$Rule;)Landroid/icu/text/PluralRules$RuleList;
 Landroid/icu/text/PluralRules$RuleList;->computeLimited(Ljava/lang/String;Landroid/icu/text/PluralRules$SampleType;)Z
@@ -31498,13 +29434,10 @@
 Landroid/icu/text/PluralRules$RuleList;->select(Landroid/icu/text/PluralRules$IFixedDecimal;)Ljava/lang/String;
 Landroid/icu/text/PluralRules$RuleList;->select(Landroid/icu/text/PluralRules$IFixedDecimal;Ljava/lang/String;)Z
 Landroid/icu/text/PluralRules$RuleList;->selectRule(Landroid/icu/text/PluralRules$IFixedDecimal;)Landroid/icu/text/PluralRules$Rule;
-Landroid/icu/text/PluralRules$SampleType;
-Landroid/icu/text/PluralRules$SampleType;-><init>()V
 Landroid/icu/text/PluralRules$SampleType;->DECIMAL:Landroid/icu/text/PluralRules$SampleType;
 Landroid/icu/text/PluralRules$SampleType;->INTEGER:Landroid/icu/text/PluralRules$SampleType;
 Landroid/icu/text/PluralRules$SampleType;->valueOf(Ljava/lang/String;)Landroid/icu/text/PluralRules$SampleType;
 Landroid/icu/text/PluralRules$SampleType;->values()[Landroid/icu/text/PluralRules$SampleType;
-Landroid/icu/text/PluralRules$SimpleTokenizer;
 Landroid/icu/text/PluralRules$SimpleTokenizer;-><init>()V
 Landroid/icu/text/PluralRules$SimpleTokenizer;->BREAK_AND_IGNORE:Landroid/icu/text/UnicodeSet;
 Landroid/icu/text/PluralRules$SimpleTokenizer;->BREAK_AND_KEEP:Landroid/icu/text/UnicodeSet;
@@ -31549,7 +29482,6 @@
 Landroid/icu/text/PluralRules;->SEMI_SEPARATED:Ljava/util/regex/Pattern;
 Landroid/icu/text/PluralRules;->TILDE_SEPARATED:Ljava/util/regex/Pattern;
 Landroid/icu/text/PluralRules;->unexpected(Ljava/lang/String;Ljava/lang/String;)Ljava/text/ParseException;
-Landroid/icu/text/PluralSamples;
 Landroid/icu/text/PluralSamples;-><init>(Landroid/icu/text/PluralRules;)V
 Landroid/icu/text/PluralSamples;->addIfNotPresent(DLjava/util/Set;Ljava/util/Map;)Z
 Landroid/icu/text/PluralSamples;->addRelation(Ljava/util/Map;Ljava/lang/String;Landroid/icu/text/PluralRules$FixedDecimal;)V
@@ -31568,15 +29500,12 @@
 Landroid/icu/text/PluralSamples;->_keyFractionSamplesMap:Ljava/util/Map;
 Landroid/icu/text/PluralSamples;->_keyLimitedMap:Ljava/util/Map;
 Landroid/icu/text/PluralSamples;->_keySamplesMap:Ljava/util/Map;
-Landroid/icu/text/RawCollationKey;
 Landroid/icu/text/RawCollationKey;-><init>()V
 Landroid/icu/text/RawCollationKey;-><init>(I)V
 Landroid/icu/text/RawCollationKey;-><init>([B)V
 Landroid/icu/text/RawCollationKey;-><init>([BI)V
 Landroid/icu/text/RawCollationKey;->compareTo(Landroid/icu/text/RawCollationKey;)I
-Landroid/icu/text/RBBIDataWrapper$IsAcceptable;
 Landroid/icu/text/RBBIDataWrapper$IsAcceptable;-><init>()V
-Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;
 Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;-><init>()V
 Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fCatCount:I
 Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fFormatVersion:[B
@@ -31596,7 +29525,6 @@
 Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fStatusTableLen:I
 Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fTrie:I
 Landroid/icu/text/RBBIDataWrapper$RBBIDataHeader;->fTrieLen:I
-Landroid/icu/text/RBBIDataWrapper;
 Landroid/icu/text/RBBIDataWrapper;-><init>()V
 Landroid/icu/text/RBBIDataWrapper;->ACCEPTING:I
 Landroid/icu/text/RBBIDataWrapper;->DATA_FORMAT:I
@@ -31650,37 +29578,25 @@
 Landroid/icu/text/RBBIDataWrapper;->ROWLEN:I
 Landroid/icu/text/RBBIDataWrapper;->ROW_DATA:I
 Landroid/icu/text/RBBIDataWrapper;->TAGIDX:I
-Landroid/icu/text/RbnfLenientScanner;
 Landroid/icu/text/RbnfLenientScanner;->allIgnorable(Ljava/lang/String;)Z
 Landroid/icu/text/RbnfLenientScanner;->findText(Ljava/lang/String;Ljava/lang/String;I)[I
 Landroid/icu/text/RbnfLenientScanner;->prefixLength(Ljava/lang/String;Ljava/lang/String;)I
-Landroid/icu/text/RbnfLenientScannerProvider;
 Landroid/icu/text/RbnfLenientScannerProvider;->get(Landroid/icu/util/ULocale;Ljava/lang/String;)Landroid/icu/text/RbnfLenientScanner;
-Landroid/icu/text/RBNFPostProcessor;
 Landroid/icu/text/RBNFPostProcessor;->init(Landroid/icu/text/RuleBasedNumberFormat;Ljava/lang/String;)V
 Landroid/icu/text/RBNFPostProcessor;->process(Ljava/lang/StringBuilder;Landroid/icu/text/NFRuleSet;)V
-Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;-><init>()V
 Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;->QUARTER:Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$Cache;
 Landroid/icu/text/RelativeDateTimeFormatter$Cache;-><init>()V
 Landroid/icu/text/RelativeDateTimeFormatter$Cache;->cache:Landroid/icu/impl/CacheBase;
 Landroid/icu/text/RelativeDateTimeFormatter$Cache;->get(Landroid/icu/util/ULocale;)Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData;
-Landroid/icu/text/RelativeDateTimeFormatter$Direction;-><init>()V
-Landroid/icu/text/RelativeDateTimeFormatter$Loader;
 Landroid/icu/text/RelativeDateTimeFormatter$Loader;-><init>(Landroid/icu/util/ULocale;)V
 Landroid/icu/text/RelativeDateTimeFormatter$Loader;->getDateTimePattern(Landroid/icu/impl/ICUResourceBundle;)Ljava/lang/String;
 Landroid/icu/text/RelativeDateTimeFormatter$Loader;->load()Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData;
 Landroid/icu/text/RelativeDateTimeFormatter$Loader;->ulocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData;
 Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData;-><init>(Ljava/util/EnumMap;Ljava/util/EnumMap;Ljava/lang/String;)V
 Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData;->dateTimePattern:Ljava/lang/String;
 Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData;->qualitativeUnitMap:Ljava/util/EnumMap;
 Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeFormatterData;->relUnitPatternMap:Ljava/util/EnumMap;
-Landroid/icu/text/RelativeDateTimeFormatter$RelativeDateTimeUnit;-><init>()V
-Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;-><init>()V
 Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;->QUARTERS:Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;-><init>(Landroid/icu/text/RelativeDateTimeFormatter$RelativeUnit;Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;)V
 Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->absUnit:Landroid/icu/text/RelativeDateTimeFormatter$AbsoluteUnit;
 Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->DAY:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
 Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->FRIDAY:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
@@ -31701,7 +29617,6 @@
 Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->WEDNESDAY:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
 Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->WEEK:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
 Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;->YEAR:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;
 Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;-><init>()V
 Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->consumeTableRelative(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
 Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->consumeTableRelativeTime(Landroid/icu/impl/UResource$Key;Landroid/icu/impl/UResource$Value;)V
@@ -31718,7 +29633,6 @@
 Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->styleRelUnitPatterns:Ljava/util/EnumMap;
 Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->styleSuffixLength(Landroid/icu/text/RelativeDateTimeFormatter$Style;)I
 Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink;->unit:Landroid/icu/text/RelativeDateTimeFormatter$RelDateTimeDataSink$DateTimeUnit;
-Landroid/icu/text/RelativeDateTimeFormatter$Style;-><init>()V
 Landroid/icu/text/RelativeDateTimeFormatter$Style;->INDEX_COUNT:I
 Landroid/icu/text/RelativeDateTimeFormatter;-><init>(Ljava/util/EnumMap;Ljava/util/EnumMap;Ljava/lang/String;Landroid/icu/text/PluralRules;Landroid/icu/text/NumberFormat;Landroid/icu/text/RelativeDateTimeFormatter$Style;Landroid/icu/text/DisplayContext;Landroid/icu/text/BreakIterator;Landroid/icu/util/ULocale;)V
 Landroid/icu/text/RelativeDateTimeFormatter;->adjustForContext(Ljava/lang/String;)Ljava/lang/String;
@@ -31739,15 +29653,11 @@
 Landroid/icu/text/RelativeDateTimeFormatter;->qualitativeUnitMap:Ljava/util/EnumMap;
 Landroid/icu/text/RelativeDateTimeFormatter;->style:Landroid/icu/text/RelativeDateTimeFormatter$Style;
 Landroid/icu/text/RelativeDateTimeFormatter;->styleToDateFormatSymbolsWidth:[I
-Landroid/icu/text/ReplaceableString;
 Landroid/icu/text/ReplaceableString;-><init>()V
 Landroid/icu/text/ReplaceableString;-><init>(Ljava/lang/String;)V
 Landroid/icu/text/ReplaceableString;-><init>(Ljava/lang/StringBuffer;)V
 Landroid/icu/text/ReplaceableString;->buf:Ljava/lang/StringBuffer;
 Landroid/icu/text/ReplaceableString;->substring(II)Ljava/lang/String;
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;-><init>()V
-Landroid/icu/text/RuleBasedBreakIterator$BreakCache;-><init>(Landroid/icu/text/RuleBasedBreakIterator$BreakCache;)V
 Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->addFollowing(IIZ)V
 Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->addPreceding(IIZ)Z
 Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->CACHE_SIZE:I
@@ -31773,9 +29683,6 @@
 Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->RetainCachePosition:Z
 Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->seek(I)Z
 Landroid/icu/text/RuleBasedBreakIterator$BreakCache;->UpdateCachePosition:Z
-Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;
-Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;-><init>()V
-Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;-><init>(Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;)V
 Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->fBoundary:I
 Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->fBreaks:Landroid/icu/text/DictionaryBreakEngine$DequeI;
 Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->fFirstRuleStatusIndex:I
@@ -31788,7 +29695,6 @@
 Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->populateDictionary(IIII)V
 Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->preceding(I)Z
 Landroid/icu/text/RuleBasedBreakIterator$DictionaryCache;->reset()V
-Landroid/icu/text/RuleBasedBreakIterator$LookAheadResults;
 Landroid/icu/text/RuleBasedBreakIterator$LookAheadResults;-><init>()V
 Landroid/icu/text/RuleBasedBreakIterator$LookAheadResults;->fKeys:[I
 Landroid/icu/text/RuleBasedBreakIterator$LookAheadResults;->fPositions:[I
@@ -31796,7 +29702,6 @@
 Landroid/icu/text/RuleBasedBreakIterator$LookAheadResults;->getPosition(I)I
 Landroid/icu/text/RuleBasedBreakIterator$LookAheadResults;->reset()V
 Landroid/icu/text/RuleBasedBreakIterator$LookAheadResults;->setPosition(II)V
-Landroid/icu/text/RuleBasedBreakIterator;
 Landroid/icu/text/RuleBasedBreakIterator;-><init>()V
 Landroid/icu/text/RuleBasedBreakIterator;-><init>(Ljava/lang/String;)V
 Landroid/icu/text/RuleBasedBreakIterator;->checkOffset(ILjava/text/CharacterIterator;)V
@@ -31832,7 +29737,6 @@
 Landroid/icu/text/RuleBasedBreakIterator;->START_STATE:I
 Landroid/icu/text/RuleBasedBreakIterator;->STOP_STATE:I
 Landroid/icu/text/RuleBasedBreakIterator;->TRACE:Z
-Landroid/icu/text/RuleBasedCollator$CollationBuffer;
 Landroid/icu/text/RuleBasedCollator$CollationBuffer;-><init>(Landroid/icu/impl/coll/CollationData;)V
 Landroid/icu/text/RuleBasedCollator$CollationBuffer;->leftFCDUTF16Iter:Landroid/icu/impl/coll/FCDUTF16CollationIterator;
 Landroid/icu/text/RuleBasedCollator$CollationBuffer;->leftFCDUTF16NFDIter:Landroid/icu/text/RuleBasedCollator$FCDUTF16NFDIterator;
@@ -31843,14 +29747,11 @@
 Landroid/icu/text/RuleBasedCollator$CollationBuffer;->rightFCDUTF16NFDIter:Landroid/icu/text/RuleBasedCollator$FCDUTF16NFDIterator;
 Landroid/icu/text/RuleBasedCollator$CollationBuffer;->rightUTF16CollIter:Landroid/icu/impl/coll/UTF16CollationIterator;
 Landroid/icu/text/RuleBasedCollator$CollationBuffer;->rightUTF16NFDIter:Landroid/icu/text/RuleBasedCollator$UTF16NFDIterator;
-Landroid/icu/text/RuleBasedCollator$CollationKeyByteSink;
 Landroid/icu/text/RuleBasedCollator$CollationKeyByteSink;-><init>(Landroid/icu/text/RawCollationKey;)V
 Landroid/icu/text/RuleBasedCollator$CollationKeyByteSink;->key_:Landroid/icu/text/RawCollationKey;
-Landroid/icu/text/RuleBasedCollator$FCDUTF16NFDIterator;
 Landroid/icu/text/RuleBasedCollator$FCDUTF16NFDIterator;-><init>()V
 Landroid/icu/text/RuleBasedCollator$FCDUTF16NFDIterator;->setText(Landroid/icu/impl/Normalizer2Impl;Ljava/lang/CharSequence;I)V
 Landroid/icu/text/RuleBasedCollator$FCDUTF16NFDIterator;->str:Ljava/lang/StringBuilder;
-Landroid/icu/text/RuleBasedCollator$NFDIterator;
 Landroid/icu/text/RuleBasedCollator$NFDIterator;-><init>()V
 Landroid/icu/text/RuleBasedCollator$NFDIterator;->decomp:Ljava/lang/String;
 Landroid/icu/text/RuleBasedCollator$NFDIterator;->index:I
@@ -31858,7 +29759,6 @@
 Landroid/icu/text/RuleBasedCollator$NFDIterator;->nextDecomposedCodePoint(Landroid/icu/impl/Normalizer2Impl;I)I
 Landroid/icu/text/RuleBasedCollator$NFDIterator;->nextRawCodePoint()I
 Landroid/icu/text/RuleBasedCollator$NFDIterator;->reset()V
-Landroid/icu/text/RuleBasedCollator$UTF16NFDIterator;
 Landroid/icu/text/RuleBasedCollator$UTF16NFDIterator;-><init>()V
 Landroid/icu/text/RuleBasedCollator$UTF16NFDIterator;->nextRawCodePoint()I
 Landroid/icu/text/RuleBasedCollator$UTF16NFDIterator;->pos:I
@@ -31899,7 +29799,6 @@
 Landroid/icu/text/RuleBasedCollator;->validLocale:Landroid/icu/util/ULocale;
 Landroid/icu/text/RuleBasedCollator;->writeIdenticalLevel(Ljava/lang/CharSequence;Landroid/icu/text/RuleBasedCollator$CollationKeyByteSink;)V
 Landroid/icu/text/RuleBasedCollator;->writeSortKey(Ljava/lang/CharSequence;Landroid/icu/text/RuleBasedCollator$CollationKeyByteSink;Landroid/icu/text/RuleBasedCollator$CollationBuffer;)V
-Landroid/icu/text/RuleBasedNumberFormat;
 Landroid/icu/text/RuleBasedNumberFormat;-><init>(I)V
 Landroid/icu/text/RuleBasedNumberFormat;-><init>(Landroid/icu/util/ULocale;I)V
 Landroid/icu/text/RuleBasedNumberFormat;-><init>(Ljava/lang/String;)V
@@ -31971,7 +29870,6 @@
 Landroid/icu/text/RuleBasedNumberFormat;->setLenientScannerProvider(Landroid/icu/text/RbnfLenientScannerProvider;)V
 Landroid/icu/text/RuleBasedNumberFormat;->SPELLOUT:I
 Landroid/icu/text/RuleBasedNumberFormat;->stripWhitespace(Ljava/lang/String;)Ljava/lang/StringBuilder;
-Landroid/icu/text/RuleBasedTransliterator$Data;
 Landroid/icu/text/RuleBasedTransliterator$Data;-><init>()V
 Landroid/icu/text/RuleBasedTransliterator$Data;->lookupMatcher(I)Landroid/icu/text/UnicodeMatcher;
 Landroid/icu/text/RuleBasedTransliterator$Data;->lookupReplacer(I)Landroid/icu/text/UnicodeReplacer;
@@ -31979,23 +29877,19 @@
 Landroid/icu/text/RuleBasedTransliterator$Data;->variableNames:Ljava/util/Map;
 Landroid/icu/text/RuleBasedTransliterator$Data;->variables:[Ljava/lang/Object;
 Landroid/icu/text/RuleBasedTransliterator$Data;->variablesBase:C
-Landroid/icu/text/RuleBasedTransliterator;
 Landroid/icu/text/RuleBasedTransliterator;-><init>(Ljava/lang/String;Landroid/icu/text/RuleBasedTransliterator$Data;Landroid/icu/text/UnicodeFilter;)V
 Landroid/icu/text/RuleBasedTransliterator;->addSourceTargetSet(Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet;)V
 Landroid/icu/text/RuleBasedTransliterator;->data:Landroid/icu/text/RuleBasedTransliterator$Data;
 Landroid/icu/text/RuleBasedTransliterator;->handleTransliterate(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;Z)V
 Landroid/icu/text/RuleBasedTransliterator;->safeClone()Landroid/icu/text/Transliterator;
 Landroid/icu/text/RuleBasedTransliterator;->toRules(Z)Ljava/lang/String;
-Landroid/icu/text/ScientificNumberFormatter$MarkupStyle;
 Landroid/icu/text/ScientificNumberFormatter$MarkupStyle;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/icu/text/ScientificNumberFormatter$MarkupStyle;->beginMarkup:Ljava/lang/String;
 Landroid/icu/text/ScientificNumberFormatter$MarkupStyle;->endMarkup:Ljava/lang/String;
 Landroid/icu/text/ScientificNumberFormatter$MarkupStyle;->format(Ljava/text/AttributedCharacterIterator;Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/ScientificNumberFormatter$Style;
 Landroid/icu/text/ScientificNumberFormatter$Style;-><init>()V
 Landroid/icu/text/ScientificNumberFormatter$Style;->append(Ljava/text/AttributedCharacterIterator;IILjava/lang/StringBuilder;)V
 Landroid/icu/text/ScientificNumberFormatter$Style;->format(Ljava/text/AttributedCharacterIterator;Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/ScientificNumberFormatter$SuperscriptStyle;
 Landroid/icu/text/ScientificNumberFormatter$SuperscriptStyle;-><init>()V
 Landroid/icu/text/ScientificNumberFormatter$SuperscriptStyle;->char32AtAndAdvance(Ljava/text/AttributedCharacterIterator;)I
 Landroid/icu/text/ScientificNumberFormatter$SuperscriptStyle;->copyAsSuperscript(Ljava/text/AttributedCharacterIterator;IILjava/lang/StringBuilder;)V
@@ -32011,7 +29905,6 @@
 Landroid/icu/text/ScientificNumberFormatter;->preExponent:Ljava/lang/String;
 Landroid/icu/text/ScientificNumberFormatter;->style:Landroid/icu/text/ScientificNumberFormatter$Style;
 Landroid/icu/text/ScientificNumberFormatter;->SUPER_SCRIPT:Landroid/icu/text/ScientificNumberFormatter$Style;
-Landroid/icu/text/SCSU;
 Landroid/icu/text/SCSU;->ARMENIANINDEX:I
 Landroid/icu/text/SCSU;->COMPRESSIONOFFSET:I
 Landroid/icu/text/SCSU;->GREEKINDEX:I
@@ -32077,9 +29970,6 @@
 Landroid/icu/text/SCSU;->UNICODEMODE:I
 Landroid/icu/text/SCSU;->UQUOTEU:I
 Landroid/icu/text/SCSU;->URESERVED:I
-Landroid/icu/text/SearchIterator$ElementComparisonType;-><init>()V
-Landroid/icu/text/SearchIterator$Search;
-Landroid/icu/text/SearchIterator$Search;-><init>()V
 Landroid/icu/text/SearchIterator$Search;->beginIndex()I
 Landroid/icu/text/SearchIterator$Search;->breakIter()Landroid/icu/text/BreakIterator;
 Landroid/icu/text/SearchIterator$Search;->elementComparisonType_:Landroid/icu/text/SearchIterator$ElementComparisonType;
@@ -32101,8 +29991,6 @@
 Landroid/icu/text/SelectFormat;->msgPattern:Landroid/icu/text/MessagePattern;
 Landroid/icu/text/SelectFormat;->pattern:Ljava/lang/String;
 Landroid/icu/text/SelectFormat;->reset()V
-Landroid/icu/text/SimpleDateFormat$ContextValue;
-Landroid/icu/text/SimpleDateFormat$ContextValue;-><init>()V
 Landroid/icu/text/SimpleDateFormat$ContextValue;->CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE:Landroid/icu/text/SimpleDateFormat$ContextValue;
 Landroid/icu/text/SimpleDateFormat$ContextValue;->CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE:Landroid/icu/text/SimpleDateFormat$ContextValue;
 Landroid/icu/text/SimpleDateFormat$ContextValue;->CAPITALIZATION_FOR_STANDALONE:Landroid/icu/text/SimpleDateFormat$ContextValue;
@@ -32110,7 +29998,6 @@
 Landroid/icu/text/SimpleDateFormat$ContextValue;->UNKNOWN:Landroid/icu/text/SimpleDateFormat$ContextValue;
 Landroid/icu/text/SimpleDateFormat$ContextValue;->valueOf(Ljava/lang/String;)Landroid/icu/text/SimpleDateFormat$ContextValue;
 Landroid/icu/text/SimpleDateFormat$ContextValue;->values()[Landroid/icu/text/SimpleDateFormat$ContextValue;
-Landroid/icu/text/SimpleDateFormat$PatternItem;
 Landroid/icu/text/SimpleDateFormat$PatternItem;-><init>(CI)V
 Landroid/icu/text/SimpleDateFormat$PatternItem;->isNumeric:Z
 Landroid/icu/text/SimpleDateFormat$PatternItem;->length:I
@@ -32201,25 +30088,18 @@
 Landroid/icu/text/SimpleDateFormat;->useFastFormat:Z
 Landroid/icu/text/SimpleDateFormat;->useLocalZeroPaddingNumberFormat:Z
 Landroid/icu/text/SimpleDateFormat;->zeroPaddingNumber(Landroid/icu/text/NumberFormat;Ljava/lang/StringBuffer;III)V
-Landroid/icu/text/SimpleFormatter;
 Landroid/icu/text/SimpleFormatter;-><init>(Ljava/lang/String;)V
 Landroid/icu/text/SimpleFormatter;->compile(Ljava/lang/CharSequence;)Landroid/icu/text/SimpleFormatter;
 Landroid/icu/text/SimpleFormatter;->compiledPattern:Ljava/lang/String;
 Landroid/icu/text/SimpleFormatter;->compileMinMaxArguments(Ljava/lang/CharSequence;II)Landroid/icu/text/SimpleFormatter;
-Landroid/icu/text/SimpleFormatter;->format([[Ljava/lang/CharSequence;)Ljava/lang/String;
-Landroid/icu/text/SimpleFormatter;->formatAndAppend(Ljava/lang/StringBuilder;[I[[Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
-Landroid/icu/text/SimpleFormatter;->formatAndReplace(Ljava/lang/StringBuilder;[I[[Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
 Landroid/icu/text/SimpleFormatter;->getArgumentLimit()I
 Landroid/icu/text/SimpleFormatter;->getTextWithNoArguments()Ljava/lang/String;
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUString;
 Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUString;-><init>(Ljava/lang/String;)V
 Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUString;->fCharOrStrTableIndex:I
 Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUString;->fStr:Ljava/lang/String;
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringComparator;
 Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringComparator;-><init>()V
 Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringComparator;->compare(Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUString;Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUString;)I
 Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringComparator;->INSTANCE:Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringComparator;
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringPool;
 Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringPool;-><init>()V
 Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringPool;->addString(Ljava/lang/String;)Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUString;
 Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringPool;->fHash:Ljava/util/Hashtable;
@@ -32227,7 +30107,6 @@
 Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringPool;->getByIndex(I)Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUString;
 Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringPool;->size()I
 Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringPool;->sort()V
-Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;
 Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;-><init>()V
 Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->build(Ljava/io/Reader;Landroid/icu/text/SpoofChecker$SpoofData;)V
 Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->buildConfusableData(Ljava/io/Reader;Landroid/icu/text/SpoofChecker$SpoofData;)V
@@ -32240,7 +30119,6 @@
 Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->fTable:Ljava/util/Hashtable;
 Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->fValueVec:Ljava/util/ArrayList;
 Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder;->stringPool:Landroid/icu/text/SpoofChecker$Builder$ConfusabledataBuilder$SPUStringPool;
-Landroid/icu/text/SpoofChecker$Builder;
 Landroid/icu/text/SpoofChecker$Builder;-><init>()V
 Landroid/icu/text/SpoofChecker$Builder;-><init>(Landroid/icu/text/SpoofChecker;)V
 Landroid/icu/text/SpoofChecker$Builder;->addScriptChars(Landroid/icu/util/ULocale;Landroid/icu/text/UnicodeSet;)V
@@ -32257,20 +30135,16 @@
 Landroid/icu/text/SpoofChecker$Builder;->setData(Ljava/io/Reader;)Landroid/icu/text/SpoofChecker$Builder;
 Landroid/icu/text/SpoofChecker$Builder;->setData(Ljava/io/Reader;Ljava/io/Reader;)Landroid/icu/text/SpoofChecker$Builder;
 Landroid/icu/text/SpoofChecker$Builder;->setRestrictionLevel(Landroid/icu/text/SpoofChecker$RestrictionLevel;)Landroid/icu/text/SpoofChecker$Builder;
-Landroid/icu/text/SpoofChecker$CheckResult;
 Landroid/icu/text/SpoofChecker$CheckResult;-><init>()V
 Landroid/icu/text/SpoofChecker$CheckResult;->checks:I
 Landroid/icu/text/SpoofChecker$CheckResult;->numerics:Landroid/icu/text/UnicodeSet;
 Landroid/icu/text/SpoofChecker$CheckResult;->position:I
 Landroid/icu/text/SpoofChecker$CheckResult;->restrictionLevel:Landroid/icu/text/SpoofChecker$RestrictionLevel;
-Landroid/icu/text/SpoofChecker$ConfusableDataUtils;
 Landroid/icu/text/SpoofChecker$ConfusableDataUtils;-><init>()V
 Landroid/icu/text/SpoofChecker$ConfusableDataUtils;->codePointAndLengthToKey(II)I
 Landroid/icu/text/SpoofChecker$ConfusableDataUtils;->FORMAT_VERSION:I
 Landroid/icu/text/SpoofChecker$ConfusableDataUtils;->keyToCodePoint(I)I
 Landroid/icu/text/SpoofChecker$ConfusableDataUtils;->keyToLength(I)I
-Landroid/icu/text/SpoofChecker$RestrictionLevel;
-Landroid/icu/text/SpoofChecker$RestrictionLevel;-><init>()V
 Landroid/icu/text/SpoofChecker$RestrictionLevel;->ASCII:Landroid/icu/text/SpoofChecker$RestrictionLevel;
 Landroid/icu/text/SpoofChecker$RestrictionLevel;->HIGHLY_RESTRICTIVE:Landroid/icu/text/SpoofChecker$RestrictionLevel;
 Landroid/icu/text/SpoofChecker$RestrictionLevel;->MINIMALLY_RESTRICTIVE:Landroid/icu/text/SpoofChecker$RestrictionLevel;
@@ -32279,15 +30153,11 @@
 Landroid/icu/text/SpoofChecker$RestrictionLevel;->UNRESTRICTIVE:Landroid/icu/text/SpoofChecker$RestrictionLevel;
 Landroid/icu/text/SpoofChecker$RestrictionLevel;->valueOf(Ljava/lang/String;)Landroid/icu/text/SpoofChecker$RestrictionLevel;
 Landroid/icu/text/SpoofChecker$RestrictionLevel;->values()[Landroid/icu/text/SpoofChecker$RestrictionLevel;
-Landroid/icu/text/SpoofChecker$ScriptSet;
 Landroid/icu/text/SpoofChecker$ScriptSet;->appendStringTo(Ljava/lang/StringBuilder;)V
-Landroid/icu/text/SpoofChecker$SpoofData$DefaultData;
 Landroid/icu/text/SpoofChecker$SpoofData$DefaultData;-><init>()V
 Landroid/icu/text/SpoofChecker$SpoofData$DefaultData;->EXCEPTION:Ljava/io/IOException;
 Landroid/icu/text/SpoofChecker$SpoofData$DefaultData;->INSTANCE:Landroid/icu/text/SpoofChecker$SpoofData;
-Landroid/icu/text/SpoofChecker$SpoofData$IsAcceptable;
 Landroid/icu/text/SpoofChecker$SpoofData$IsAcceptable;-><init>()V
-Landroid/icu/text/SpoofChecker$SpoofData;
 Landroid/icu/text/SpoofChecker$SpoofData;-><init>()V
 Landroid/icu/text/SpoofChecker$SpoofData;-><init>(Ljava/nio/ByteBuffer;)V
 Landroid/icu/text/SpoofChecker$SpoofData;->appendValueTo(ILjava/lang/StringBuilder;)V
@@ -32301,7 +30171,6 @@
 Landroid/icu/text/SpoofChecker$SpoofData;->IS_ACCEPTABLE:Landroid/icu/text/SpoofChecker$SpoofData$IsAcceptable;
 Landroid/icu/text/SpoofChecker$SpoofData;->length()I
 Landroid/icu/text/SpoofChecker$SpoofData;->readData(Ljava/nio/ByteBuffer;)V
-Landroid/icu/text/SpoofChecker;
 Landroid/icu/text/SpoofChecker;-><init>()V
 Landroid/icu/text/SpoofChecker;->ALL_CHECKS:I
 Landroid/icu/text/SpoofChecker;->ANY_CASE:I
@@ -32338,7 +30207,6 @@
 Landroid/icu/text/SpoofChecker;->SINGLE_SCRIPT:I
 Landroid/icu/text/SpoofChecker;->SINGLE_SCRIPT_CONFUSABLE:I
 Landroid/icu/text/SpoofChecker;->WHOLE_SCRIPT_CONFUSABLE:I
-Landroid/icu/text/StringCharacterIterator;
 Landroid/icu/text/StringCharacterIterator;-><init>(Ljava/lang/String;)V
 Landroid/icu/text/StringCharacterIterator;-><init>(Ljava/lang/String;I)V
 Landroid/icu/text/StringCharacterIterator;-><init>(Ljava/lang/String;III)V
@@ -32347,7 +30215,6 @@
 Landroid/icu/text/StringCharacterIterator;->pos:I
 Landroid/icu/text/StringCharacterIterator;->setText(Ljava/lang/String;)V
 Landroid/icu/text/StringCharacterIterator;->text:Ljava/lang/String;
-Landroid/icu/text/StringMatcher;
 Landroid/icu/text/StringMatcher;-><init>(Ljava/lang/String;IIILandroid/icu/text/RuleBasedTransliterator$Data;)V
 Landroid/icu/text/StringMatcher;-><init>(Ljava/lang/String;ILandroid/icu/text/RuleBasedTransliterator$Data;)V
 Landroid/icu/text/StringMatcher;->addReplacementSetTo(Landroid/icu/text/UnicodeSet;)V
@@ -32359,13 +30226,11 @@
 Landroid/icu/text/StringMatcher;->resetMatch()V
 Landroid/icu/text/StringMatcher;->segmentNumber:I
 Landroid/icu/text/StringMatcher;->toReplacerPattern(Z)Ljava/lang/String;
-Landroid/icu/text/StringPrep$Values;
 Landroid/icu/text/StringPrep$Values;-><init>()V
 Landroid/icu/text/StringPrep$Values;->isIndex:Z
 Landroid/icu/text/StringPrep$Values;->reset()V
 Landroid/icu/text/StringPrep$Values;->type:I
 Landroid/icu/text/StringPrep$Values;->value:I
-Landroid/icu/text/StringPrep;
 Landroid/icu/text/StringPrep;-><init>(Ljava/io/InputStream;)V
 Landroid/icu/text/StringPrep;-><init>(Ljava/nio/ByteBuffer;)V
 Landroid/icu/text/StringPrep;->ALLOW_UNASSIGNED:I
@@ -32431,7 +30296,6 @@
 Landroid/icu/text/StringPrepParseException;->setPostContext([CI)V
 Landroid/icu/text/StringPrepParseException;->setPreContext(Ljava/lang/String;I)V
 Landroid/icu/text/StringPrepParseException;->setPreContext([CI)V
-Landroid/icu/text/StringSearch$CEBuffer;
 Landroid/icu/text/StringSearch$CEBuffer;-><init>(Landroid/icu/text/StringSearch;)V
 Landroid/icu/text/StringSearch$CEBuffer;->bufSize_:I
 Landroid/icu/text/StringSearch$CEBuffer;->buf_:[Landroid/icu/text/StringSearch$CEI;
@@ -32444,12 +30308,10 @@
 Landroid/icu/text/StringSearch$CEBuffer;->MAX_TARGET_IGNORABLES_PER_PAT_OTHER:I
 Landroid/icu/text/StringSearch$CEBuffer;->MIGHT_BE_JAMO_L(C)Z
 Landroid/icu/text/StringSearch$CEBuffer;->strSearch_:Landroid/icu/text/StringSearch;
-Landroid/icu/text/StringSearch$CEI;
 Landroid/icu/text/StringSearch$CEI;-><init>()V
 Landroid/icu/text/StringSearch$CEI;->ce_:J
 Landroid/icu/text/StringSearch$CEI;->highIndex_:I
 Landroid/icu/text/StringSearch$CEI;->lowIndex_:I
-Landroid/icu/text/StringSearch$CollationPCE$PCEBuffer;
 Landroid/icu/text/StringSearch$CollationPCE$PCEBuffer;-><init>()V
 Landroid/icu/text/StringSearch$CollationPCE$PCEBuffer;->bufferIndex_:I
 Landroid/icu/text/StringSearch$CollationPCE$PCEBuffer;->buffer_:[Landroid/icu/text/StringSearch$CollationPCE$PCEI;
@@ -32457,28 +30319,23 @@
 Landroid/icu/text/StringSearch$CollationPCE$PCEBuffer;->get()Landroid/icu/text/StringSearch$CollationPCE$PCEI;
 Landroid/icu/text/StringSearch$CollationPCE$PCEBuffer;->put(JII)V
 Landroid/icu/text/StringSearch$CollationPCE$PCEBuffer;->reset()V
-Landroid/icu/text/StringSearch$CollationPCE$PCEI;
 Landroid/icu/text/StringSearch$CollationPCE$PCEI;-><init>()V
 Landroid/icu/text/StringSearch$CollationPCE$PCEI;->ce_:J
 Landroid/icu/text/StringSearch$CollationPCE$PCEI;->high_:I
 Landroid/icu/text/StringSearch$CollationPCE$PCEI;->low_:I
-Landroid/icu/text/StringSearch$CollationPCE$Range;
 Landroid/icu/text/StringSearch$CollationPCE$Range;-><init>()V
 Landroid/icu/text/StringSearch$CollationPCE$Range;->ixHigh_:I
 Landroid/icu/text/StringSearch$CollationPCE$Range;->ixLow_:I
-Landroid/icu/text/StringSearch$CollationPCE$RCEBuffer;
 Landroid/icu/text/StringSearch$CollationPCE$RCEBuffer;-><init>()V
 Landroid/icu/text/StringSearch$CollationPCE$RCEBuffer;->bufferIndex_:I
 Landroid/icu/text/StringSearch$CollationPCE$RCEBuffer;->buffer_:[Landroid/icu/text/StringSearch$CollationPCE$RCEI;
 Landroid/icu/text/StringSearch$CollationPCE$RCEBuffer;->empty()Z
 Landroid/icu/text/StringSearch$CollationPCE$RCEBuffer;->get()Landroid/icu/text/StringSearch$CollationPCE$RCEI;
 Landroid/icu/text/StringSearch$CollationPCE$RCEBuffer;->put(III)V
-Landroid/icu/text/StringSearch$CollationPCE$RCEI;
 Landroid/icu/text/StringSearch$CollationPCE$RCEI;-><init>()V
 Landroid/icu/text/StringSearch$CollationPCE$RCEI;->ce_:I
 Landroid/icu/text/StringSearch$CollationPCE$RCEI;->high_:I
 Landroid/icu/text/StringSearch$CollationPCE$RCEI;->low_:I
-Landroid/icu/text/StringSearch$CollationPCE;
 Landroid/icu/text/StringSearch$CollationPCE;-><init>(Landroid/icu/text/CollationElementIterator;)V
 Landroid/icu/text/StringSearch$CollationPCE;->BUFFER_GROW:I
 Landroid/icu/text/StringSearch$CollationPCE;->cei_:Landroid/icu/text/CollationElementIterator;
@@ -32497,11 +30354,9 @@
 Landroid/icu/text/StringSearch$CollationPCE;->strength_:I
 Landroid/icu/text/StringSearch$CollationPCE;->toShift_:Z
 Landroid/icu/text/StringSearch$CollationPCE;->variableTop_:I
-Landroid/icu/text/StringSearch$Match;
 Landroid/icu/text/StringSearch$Match;-><init>()V
 Landroid/icu/text/StringSearch$Match;->limit_:I
 Landroid/icu/text/StringSearch$Match;->start_:I
-Landroid/icu/text/StringSearch$Pattern;
 Landroid/icu/text/StringSearch$Pattern;-><init>(Ljava/lang/String;)V
 Landroid/icu/text/StringSearch$Pattern;->CELength_:I
 Landroid/icu/text/StringSearch$Pattern;->CE_:[I
@@ -32554,16 +30409,13 @@
 Landroid/icu/text/StringSearch;->toShift_:Z
 Landroid/icu/text/StringSearch;->utilIter_:Landroid/icu/text/CollationElementIterator;
 Landroid/icu/text/StringSearch;->variableTop_:I
-Landroid/icu/text/StringTransform;
 Landroid/icu/text/StringTransform;->transform(Ljava/lang/String;)Ljava/lang/String;
-Landroid/icu/text/TimeUnitFormat$TimeUnitFormatSetupSink;
 Landroid/icu/text/TimeUnitFormat$TimeUnitFormatSetupSink;-><init>(Ljava/util/Map;ILjava/util/Set;Landroid/icu/util/ULocale;)V
 Landroid/icu/text/TimeUnitFormat$TimeUnitFormatSetupSink;->beenHere:Z
 Landroid/icu/text/TimeUnitFormat$TimeUnitFormatSetupSink;->locale:Landroid/icu/util/ULocale;
 Landroid/icu/text/TimeUnitFormat$TimeUnitFormatSetupSink;->pluralKeywords:Ljava/util/Set;
 Landroid/icu/text/TimeUnitFormat$TimeUnitFormatSetupSink;->style:I
 Landroid/icu/text/TimeUnitFormat$TimeUnitFormatSetupSink;->timeUnitToCountToPatterns:Ljava/util/Map;
-Landroid/icu/text/TimeUnitFormat;
 Landroid/icu/text/TimeUnitFormat;-><init>()V
 Landroid/icu/text/TimeUnitFormat;-><init>(Landroid/icu/util/ULocale;)V
 Landroid/icu/text/TimeUnitFormat;-><init>(Landroid/icu/util/ULocale;I)V
@@ -32593,32 +30445,24 @@
 Landroid/icu/text/TimeUnitFormat;->style:I
 Landroid/icu/text/TimeUnitFormat;->timeUnitToCountToPatterns:Ljava/util/Map;
 Landroid/icu/text/TimeUnitFormat;->TOTAL_STYLES:I
-Landroid/icu/text/TimeZoneFormat$GMTOffsetField;
 Landroid/icu/text/TimeZoneFormat$GMTOffsetField;-><init>(CI)V
 Landroid/icu/text/TimeZoneFormat$GMTOffsetField;->getType()C
 Landroid/icu/text/TimeZoneFormat$GMTOffsetField;->getWidth()I
 Landroid/icu/text/TimeZoneFormat$GMTOffsetField;->isValid(CI)Z
 Landroid/icu/text/TimeZoneFormat$GMTOffsetField;->_type:C
 Landroid/icu/text/TimeZoneFormat$GMTOffsetField;->_width:I
-Landroid/icu/text/TimeZoneFormat$GMTOffsetPatternType;-><init>(Ljava/lang/String;Ljava/lang/String;Z)V
 Landroid/icu/text/TimeZoneFormat$GMTOffsetPatternType;->defaultPattern()Ljava/lang/String;
 Landroid/icu/text/TimeZoneFormat$GMTOffsetPatternType;->isPositive()Z
 Landroid/icu/text/TimeZoneFormat$GMTOffsetPatternType;->required()Ljava/lang/String;
 Landroid/icu/text/TimeZoneFormat$GMTOffsetPatternType;->_defaultPattern:Ljava/lang/String;
 Landroid/icu/text/TimeZoneFormat$GMTOffsetPatternType;->_isPositive:Z
 Landroid/icu/text/TimeZoneFormat$GMTOffsetPatternType;->_required:Ljava/lang/String;
-Landroid/icu/text/TimeZoneFormat$OffsetFields;
-Landroid/icu/text/TimeZoneFormat$OffsetFields;-><init>()V
 Landroid/icu/text/TimeZoneFormat$OffsetFields;->H:Landroid/icu/text/TimeZoneFormat$OffsetFields;
 Landroid/icu/text/TimeZoneFormat$OffsetFields;->HM:Landroid/icu/text/TimeZoneFormat$OffsetFields;
 Landroid/icu/text/TimeZoneFormat$OffsetFields;->HMS:Landroid/icu/text/TimeZoneFormat$OffsetFields;
 Landroid/icu/text/TimeZoneFormat$OffsetFields;->valueOf(Ljava/lang/String;)Landroid/icu/text/TimeZoneFormat$OffsetFields;
 Landroid/icu/text/TimeZoneFormat$OffsetFields;->values()[Landroid/icu/text/TimeZoneFormat$OffsetFields;
-Landroid/icu/text/TimeZoneFormat$ParseOption;-><init>()V
-Landroid/icu/text/TimeZoneFormat$Style;-><init>(I)V
 Landroid/icu/text/TimeZoneFormat$Style;->flag:I
-Landroid/icu/text/TimeZoneFormat$TimeType;-><init>()V
-Landroid/icu/text/TimeZoneFormat$TimeZoneFormatCache;
 Landroid/icu/text/TimeZoneFormat$TimeZoneFormatCache;-><init>()V
 Landroid/icu/text/TimeZoneFormat$TimeZoneFormatCache;->createInstance(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)Landroid/icu/text/TimeZoneFormat;
 Landroid/icu/text/TimeZoneFormat;->ALL_GENERIC_NAME_TYPES:Ljava/util/EnumSet;
@@ -32698,19 +30542,14 @@
 Landroid/icu/text/TimeZoneFormat;->_tzdbNames:Landroid/icu/text/TimeZoneNames;
 Landroid/icu/text/TimeZoneFormat;->_tzfCache:Landroid/icu/text/TimeZoneFormat$TimeZoneFormatCache;
 Landroid/icu/text/TimeZoneFormat;->_tznames:Landroid/icu/text/TimeZoneNames;
-Landroid/icu/text/TimeZoneNames$Cache;
 Landroid/icu/text/TimeZoneNames$Cache;-><init>()V
 Landroid/icu/text/TimeZoneNames$Cache;->createInstance(Ljava/lang/String;Landroid/icu/util/ULocale;)Landroid/icu/text/TimeZoneNames;
-Landroid/icu/text/TimeZoneNames$DefaultTimeZoneNames$FactoryImpl;
 Landroid/icu/text/TimeZoneNames$DefaultTimeZoneNames$FactoryImpl;->getTimeZoneNames(Landroid/icu/util/ULocale;)Landroid/icu/text/TimeZoneNames;
-Landroid/icu/text/TimeZoneNames$DefaultTimeZoneNames;
 Landroid/icu/text/TimeZoneNames$DefaultTimeZoneNames;-><init>()V
 Landroid/icu/text/TimeZoneNames$DefaultTimeZoneNames;->find(Ljava/lang/CharSequence;ILjava/util/EnumSet;)Ljava/util/Collection;
 Landroid/icu/text/TimeZoneNames$DefaultTimeZoneNames;->INSTANCE:Landroid/icu/text/TimeZoneNames$DefaultTimeZoneNames;
-Landroid/icu/text/TimeZoneNames$Factory;
 Landroid/icu/text/TimeZoneNames$Factory;-><init>()V
 Landroid/icu/text/TimeZoneNames$Factory;->getTimeZoneNames(Landroid/icu/util/ULocale;)Landroid/icu/text/TimeZoneNames;
-Landroid/icu/text/TimeZoneNames$MatchInfo;
 Landroid/icu/text/TimeZoneNames$MatchInfo;-><init>(Landroid/icu/text/TimeZoneNames$NameType;Ljava/lang/String;Ljava/lang/String;I)V
 Landroid/icu/text/TimeZoneNames$MatchInfo;->matchLength()I
 Landroid/icu/text/TimeZoneNames$MatchInfo;->mzID()Ljava/lang/String;
@@ -32720,7 +30559,6 @@
 Landroid/icu/text/TimeZoneNames$MatchInfo;->_mzID:Ljava/lang/String;
 Landroid/icu/text/TimeZoneNames$MatchInfo;->_nameType:Landroid/icu/text/TimeZoneNames$NameType;
 Landroid/icu/text/TimeZoneNames$MatchInfo;->_tzID:Ljava/lang/String;
-Landroid/icu/text/TimeZoneNames$NameType;-><init>()V
 Landroid/icu/text/TimeZoneNames;-><init>()V
 Landroid/icu/text/TimeZoneNames;->DEFAULT_FACTORY_CLASS:Ljava/lang/String;
 Landroid/icu/text/TimeZoneNames;->FACTORY_NAME_PROP:Ljava/lang/String;
@@ -32729,9 +30567,7 @@
 Landroid/icu/text/TimeZoneNames;->loadAllDisplayNames()V
 Landroid/icu/text/TimeZoneNames;->TZNAMES_CACHE:Landroid/icu/text/TimeZoneNames$Cache;
 Landroid/icu/text/TimeZoneNames;->TZNAMES_FACTORY:Landroid/icu/text/TimeZoneNames$Factory;
-Landroid/icu/text/Transform;
 Landroid/icu/text/Transform;->transform(Ljava/lang/Object;)Ljava/lang/Object;
-Landroid/icu/text/TransliterationRule;
 Landroid/icu/text/TransliterationRule;-><init>(Ljava/lang/String;IILjava/lang/String;II[Landroid/icu/text/UnicodeMatcher;ZZLandroid/icu/text/RuleBasedTransliterator$Data;)V
 Landroid/icu/text/TransliterationRule;->addSourceTargetSet(Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet;)V
 Landroid/icu/text/TransliterationRule;->ANCHOR_END:I
@@ -32754,7 +30590,6 @@
 Landroid/icu/text/TransliterationRule;->postContext:Landroid/icu/text/StringMatcher;
 Landroid/icu/text/TransliterationRule;->segments:[Landroid/icu/text/UnicodeMatcher;
 Landroid/icu/text/TransliterationRule;->toRule(Z)Ljava/lang/String;
-Landroid/icu/text/TransliterationRuleSet;
 Landroid/icu/text/TransliterationRuleSet;-><init>()V
 Landroid/icu/text/TransliterationRuleSet;->addRule(Landroid/icu/text/TransliterationRule;)V
 Landroid/icu/text/TransliterationRuleSet;->addSourceTargetSet(Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet;)V
@@ -32766,9 +30601,7 @@
 Landroid/icu/text/TransliterationRuleSet;->ruleVector:Ljava/util/List;
 Landroid/icu/text/TransliterationRuleSet;->toRules(Z)Ljava/lang/String;
 Landroid/icu/text/TransliterationRuleSet;->transliterate(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;Z)Z
-Landroid/icu/text/Transliterator$Factory;
 Landroid/icu/text/Transliterator$Factory;->getInstance(Ljava/lang/String;)Landroid/icu/text/Transliterator;
-Landroid/icu/text/Transliterator$Position;
 Landroid/icu/text/Transliterator$Position;-><init>()V
 Landroid/icu/text/Transliterator$Position;-><init>(III)V
 Landroid/icu/text/Transliterator$Position;-><init>(IIII)V
@@ -32779,7 +30612,6 @@
 Landroid/icu/text/Transliterator$Position;->set(Landroid/icu/text/Transliterator$Position;)V
 Landroid/icu/text/Transliterator$Position;->start:I
 Landroid/icu/text/Transliterator$Position;->validate(I)V
-Landroid/icu/text/Transliterator;
 Landroid/icu/text/Transliterator;-><init>(Ljava/lang/String;Landroid/icu/text/UnicodeFilter;)V
 Landroid/icu/text/Transliterator;->addSourceTargetSet(Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet;Landroid/icu/text/UnicodeSet;)V
 Landroid/icu/text/Transliterator;->baseToRules(Z)Ljava/lang/String;
@@ -32837,28 +30669,22 @@
 Landroid/icu/text/Transliterator;->transliterate(Landroid/icu/text/Replaceable;Landroid/icu/text/Transliterator$Position;I)V
 Landroid/icu/text/Transliterator;->unregister(Ljava/lang/String;)V
 Landroid/icu/text/Transliterator;->VARIANT_SEP:C
-Landroid/icu/text/TransliteratorRegistry$AliasEntry;
 Landroid/icu/text/TransliteratorRegistry$AliasEntry;-><init>(Ljava/lang/String;)V
 Landroid/icu/text/TransliteratorRegistry$AliasEntry;->alias:Ljava/lang/String;
-Landroid/icu/text/TransliteratorRegistry$CompoundRBTEntry;
 Landroid/icu/text/TransliteratorRegistry$CompoundRBTEntry;-><init>(Ljava/lang/String;Ljava/util/List;Ljava/util/List;Landroid/icu/text/UnicodeSet;)V
 Landroid/icu/text/TransliteratorRegistry$CompoundRBTEntry;->compoundFilter:Landroid/icu/text/UnicodeSet;
 Landroid/icu/text/TransliteratorRegistry$CompoundRBTEntry;->dataVector:Ljava/util/List;
 Landroid/icu/text/TransliteratorRegistry$CompoundRBTEntry;->getInstance()Landroid/icu/text/Transliterator;
 Landroid/icu/text/TransliteratorRegistry$CompoundRBTEntry;->ID:Ljava/lang/String;
 Landroid/icu/text/TransliteratorRegistry$CompoundRBTEntry;->idBlockVector:Ljava/util/List;
-Landroid/icu/text/TransliteratorRegistry$IDEnumeration;
 Landroid/icu/text/TransliteratorRegistry$IDEnumeration;-><init>(Ljava/util/Enumeration;)V
 Landroid/icu/text/TransliteratorRegistry$IDEnumeration;->en:Ljava/util/Enumeration;
-Landroid/icu/text/TransliteratorRegistry$LocaleEntry;
 Landroid/icu/text/TransliteratorRegistry$LocaleEntry;-><init>(Ljava/lang/String;I)V
 Landroid/icu/text/TransliteratorRegistry$LocaleEntry;->direction:I
 Landroid/icu/text/TransliteratorRegistry$LocaleEntry;->rule:Ljava/lang/String;
-Landroid/icu/text/TransliteratorRegistry$ResourceEntry;
 Landroid/icu/text/TransliteratorRegistry$ResourceEntry;-><init>(Ljava/lang/String;I)V
 Landroid/icu/text/TransliteratorRegistry$ResourceEntry;->direction:I
 Landroid/icu/text/TransliteratorRegistry$ResourceEntry;->resource:Ljava/lang/String;
-Landroid/icu/text/TransliteratorRegistry$Spec;
 Landroid/icu/text/TransliteratorRegistry$Spec;-><init>(Ljava/lang/String;)V
 Landroid/icu/text/TransliteratorRegistry$Spec;->get()Ljava/lang/String;
 Landroid/icu/text/TransliteratorRegistry$Spec;->getBundle()Ljava/util/ResourceBundle;
@@ -32875,7 +30701,6 @@
 Landroid/icu/text/TransliteratorRegistry$Spec;->setupNext()V
 Landroid/icu/text/TransliteratorRegistry$Spec;->spec:Ljava/lang/String;
 Landroid/icu/text/TransliteratorRegistry$Spec;->top:Ljava/lang/String;
-Landroid/icu/text/TransliteratorRegistry;
 Landroid/icu/text/TransliteratorRegistry;-><init>()V
 Landroid/icu/text/TransliteratorRegistry;->ANY:Ljava/lang/String;
 Landroid/icu/text/TransliteratorRegistry;->availableIDs:Ljava/util/List;
@@ -32906,7 +30731,6 @@
 Landroid/icu/text/TransliteratorRegistry;->remove(Ljava/lang/String;)V
 Landroid/icu/text/TransliteratorRegistry;->removeSTV(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/icu/text/TransliteratorRegistry;->specDAG:Ljava/util/Map;
-Landroid/icu/text/UFieldPosition;
 Landroid/icu/text/UFieldPosition;-><init>()V
 Landroid/icu/text/UFieldPosition;-><init>(I)V
 Landroid/icu/text/UFieldPosition;-><init>(Ljava/text/Format$Field;)V
@@ -32919,16 +30743,13 @@
 Landroid/icu/text/UFormat;->actualLocale:Landroid/icu/util/ULocale;
 Landroid/icu/text/UFormat;->setLocale(Landroid/icu/util/ULocale;Landroid/icu/util/ULocale;)V
 Landroid/icu/text/UFormat;->validLocale:Landroid/icu/util/ULocale;
-Landroid/icu/text/UForwardCharacterIterator;
 Landroid/icu/text/UForwardCharacterIterator;->next()I
 Landroid/icu/text/UForwardCharacterIterator;->nextCodePoint()I
-Landroid/icu/text/UnhandledBreakEngine;
 Landroid/icu/text/UnhandledBreakEngine;-><init>()V
 Landroid/icu/text/UnhandledBreakEngine;->fHandled:Ljava/util/concurrent/atomic/AtomicReferenceArray;
 Landroid/icu/text/UnhandledBreakEngine;->findBreaks(Ljava/text/CharacterIterator;IIILandroid/icu/text/DictionaryBreakEngine$DequeI;)I
 Landroid/icu/text/UnhandledBreakEngine;->handleChar(II)V
 Landroid/icu/text/UnhandledBreakEngine;->handles(II)Z
-Landroid/icu/text/UnicodeCompressor;
 Landroid/icu/text/UnicodeCompressor;-><init>()V
 Landroid/icu/text/UnicodeCompressor;->compress(Ljava/lang/String;)[B
 Landroid/icu/text/UnicodeCompressor;->compress([CII)[B
@@ -32949,7 +30770,6 @@
 Landroid/icu/text/UnicodeCompressor;->reset()V
 Landroid/icu/text/UnicodeCompressor;->sSingleTagTable:[Z
 Landroid/icu/text/UnicodeCompressor;->sUnicodeTagTable:[Z
-Landroid/icu/text/UnicodeDecompressor;
 Landroid/icu/text/UnicodeDecompressor;-><init>()V
 Landroid/icu/text/UnicodeDecompressor;->BUFSIZE:I
 Landroid/icu/text/UnicodeDecompressor;->decompress([B)Ljava/lang/String;
@@ -32962,39 +30782,26 @@
 Landroid/icu/text/UnicodeDecompressor;->fOffsets:[I
 Landroid/icu/text/UnicodeDecompressor;->reset()V
 Landroid/icu/text/UnicodeFilter;-><init>()V
-Landroid/icu/text/UnicodeReplacer;
 Landroid/icu/text/UnicodeReplacer;->addReplacementSetTo(Landroid/icu/text/UnicodeSet;)V
 Landroid/icu/text/UnicodeReplacer;->replace(Landroid/icu/text/Replaceable;II[I)I
 Landroid/icu/text/UnicodeReplacer;->toReplacerPattern(Z)Ljava/lang/String;
-Landroid/icu/text/UnicodeSet$ComparisonStyle;-><init>()V
 Landroid/icu/text/UnicodeSet$EntryRange;-><init>()V
-Landroid/icu/text/UnicodeSet$EntryRangeIterable;
-Landroid/icu/text/UnicodeSet$EntryRangeIterable;-><init>()V
-Landroid/icu/text/UnicodeSet$EntryRangeIterator;
-Landroid/icu/text/UnicodeSet$EntryRangeIterator;-><init>()V
 Landroid/icu/text/UnicodeSet$EntryRangeIterator;->pos:I
 Landroid/icu/text/UnicodeSet$EntryRangeIterator;->result:Landroid/icu/text/UnicodeSet$EntryRange;
-Landroid/icu/text/UnicodeSet$Filter;
 Landroid/icu/text/UnicodeSet$Filter;->contains(I)Z
-Landroid/icu/text/UnicodeSet$GeneralCategoryMaskFilter;
 Landroid/icu/text/UnicodeSet$GeneralCategoryMaskFilter;-><init>(I)V
 Landroid/icu/text/UnicodeSet$GeneralCategoryMaskFilter;->contains(I)Z
 Landroid/icu/text/UnicodeSet$GeneralCategoryMaskFilter;->mask:I
-Landroid/icu/text/UnicodeSet$IntPropertyFilter;
 Landroid/icu/text/UnicodeSet$IntPropertyFilter;-><init>(II)V
 Landroid/icu/text/UnicodeSet$IntPropertyFilter;->contains(I)Z
 Landroid/icu/text/UnicodeSet$IntPropertyFilter;->prop:I
 Landroid/icu/text/UnicodeSet$IntPropertyFilter;->value:I
-Landroid/icu/text/UnicodeSet$NumericValueFilter;
 Landroid/icu/text/UnicodeSet$NumericValueFilter;-><init>(D)V
 Landroid/icu/text/UnicodeSet$NumericValueFilter;->contains(I)Z
 Landroid/icu/text/UnicodeSet$NumericValueFilter;->value:D
-Landroid/icu/text/UnicodeSet$ScriptExtensionsFilter;
 Landroid/icu/text/UnicodeSet$ScriptExtensionsFilter;-><init>(I)V
 Landroid/icu/text/UnicodeSet$ScriptExtensionsFilter;->contains(I)Z
 Landroid/icu/text/UnicodeSet$ScriptExtensionsFilter;->script:I
-Landroid/icu/text/UnicodeSet$SpanCondition;-><init>()V
-Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;
 Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;-><init>(Landroid/icu/text/UnicodeSet;)V
 Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;->buffer:[C
 Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;->current:I
@@ -33004,11 +30811,9 @@
 Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;->sourceList:[I
 Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;->sourceStrings:Ljava/util/TreeSet;
 Landroid/icu/text/UnicodeSet$UnicodeSetIterator2;->stringIterator:Ljava/util/Iterator;
-Landroid/icu/text/UnicodeSet$VersionFilter;
 Landroid/icu/text/UnicodeSet$VersionFilter;-><init>(Landroid/icu/util/VersionInfo;)V
 Landroid/icu/text/UnicodeSet$VersionFilter;->contains(I)Z
 Landroid/icu/text/UnicodeSet$VersionFilter;->version:Landroid/icu/util/VersionInfo;
-Landroid/icu/text/UnicodeSet$XSymbolTable;
 Landroid/icu/text/UnicodeSet$XSymbolTable;-><init>()V
 Landroid/icu/text/UnicodeSet$XSymbolTable;->applyPropertyAlias(Ljava/lang/String;Ljava/lang/String;Landroid/icu/text/UnicodeSet;)Z
 Landroid/icu/text/UnicodeSet;->add([III)Landroid/icu/text/UnicodeSet;
@@ -33100,10 +30905,7 @@
 Landroid/icu/text/UnicodeSetIterator;->range:I
 Landroid/icu/text/UnicodeSetIterator;->set:Landroid/icu/text/UnicodeSet;
 Landroid/icu/text/UnicodeSetIterator;->stringIterator:Ljava/util/Iterator;
-Landroid/icu/text/UnicodeSetSpanner$CountMethod;-><init>()V
-Landroid/icu/text/UnicodeSetSpanner$TrimOption;-><init>()V
 Landroid/icu/text/UnicodeSetSpanner;->unicodeSet:Landroid/icu/text/UnicodeSet;
-Landroid/icu/text/UTF16$StringComparator;
 Landroid/icu/text/UTF16$StringComparator;-><init>()V
 Landroid/icu/text/UTF16$StringComparator;-><init>(ZZI)V
 Landroid/icu/text/UTF16$StringComparator;->CODE_POINT_COMPARE_SURROGATE_OFFSET_:I
@@ -33120,7 +30922,6 @@
 Landroid/icu/text/UTF16$StringComparator;->m_ignoreCase_:Z
 Landroid/icu/text/UTF16$StringComparator;->setCodePointCompare(Z)V
 Landroid/icu/text/UTF16$StringComparator;->setIgnoreCase(ZI)V
-Landroid/icu/text/UTF16;
 Landroid/icu/text/UTF16;-><init>()V
 Landroid/icu/text/UTF16;->append(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
 Landroid/icu/text/UTF16;->append([CII)I
@@ -33202,7 +31003,6 @@
 Landroid/icu/text/UTF16;->valueOf([CIII)Ljava/lang/String;
 Landroid/icu/text/UTF16;->_charAt(Ljava/lang/CharSequence;IC)I
 Landroid/icu/text/UTF16;->_charAt(Ljava/lang/String;IC)I
-Landroid/icu/util/AnnualTimeZoneRule;
 Landroid/icu/util/AnnualTimeZoneRule;-><init>(Ljava/lang/String;IILandroid/icu/util/DateTimeRule;II)V
 Landroid/icu/util/AnnualTimeZoneRule;->dateTimeRule:Landroid/icu/util/DateTimeRule;
 Landroid/icu/util/AnnualTimeZoneRule;->endYear:I
@@ -33218,7 +31018,6 @@
 Landroid/icu/util/AnnualTimeZoneRule;->isTransitionRule()Z
 Landroid/icu/util/AnnualTimeZoneRule;->MAX_YEAR:I
 Landroid/icu/util/AnnualTimeZoneRule;->startYear:I
-Landroid/icu/util/BasicTimeZone;
 Landroid/icu/util/BasicTimeZone;-><init>()V
 Landroid/icu/util/BasicTimeZone;-><init>(Ljava/lang/String;)V
 Landroid/icu/util/BasicTimeZone;->FORMER_LATTER_MASK:I
@@ -33238,7 +31037,6 @@
 Landroid/icu/util/BasicTimeZone;->STD_DST_MASK:I
 Landroid/icu/util/BuddhistCalendar;->BUDDHIST_ERA_START:I
 Landroid/icu/util/BuddhistCalendar;->GREGORIAN_EPOCH:I
-Landroid/icu/util/ByteArrayWrapper;
 Landroid/icu/util/ByteArrayWrapper;-><init>()V
 Landroid/icu/util/ByteArrayWrapper;-><init>(Ljava/nio/ByteBuffer;)V
 Landroid/icu/util/ByteArrayWrapper;-><init>([BI)V
@@ -33250,7 +31048,6 @@
 Landroid/icu/util/ByteArrayWrapper;->releaseBytes()[B
 Landroid/icu/util/ByteArrayWrapper;->set([BII)Landroid/icu/util/ByteArrayWrapper;
 Landroid/icu/util/ByteArrayWrapper;->size:I
-Landroid/icu/util/BytesTrie$Entry;
 Landroid/icu/util/BytesTrie$Entry;-><init>(I)V
 Landroid/icu/util/BytesTrie$Entry;->append(B)V
 Landroid/icu/util/BytesTrie$Entry;->append([BII)V
@@ -33263,7 +31060,6 @@
 Landroid/icu/util/BytesTrie$Entry;->length:I
 Landroid/icu/util/BytesTrie$Entry;->truncateString(I)V
 Landroid/icu/util/BytesTrie$Entry;->value:I
-Landroid/icu/util/BytesTrie$Iterator;
 Landroid/icu/util/BytesTrie$Iterator;-><init>([BIII)V
 Landroid/icu/util/BytesTrie$Iterator;->branchNext(II)I
 Landroid/icu/util/BytesTrie$Iterator;->bytes_:[B
@@ -33276,8 +31072,6 @@
 Landroid/icu/util/BytesTrie$Iterator;->reset()Landroid/icu/util/BytesTrie$Iterator;
 Landroid/icu/util/BytesTrie$Iterator;->stack_:Ljava/util/ArrayList;
 Landroid/icu/util/BytesTrie$Iterator;->truncateAndStop()Landroid/icu/util/BytesTrie$Entry;
-Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/BytesTrie$Result;-><init>()V
 Landroid/icu/util/BytesTrie$Result;->FINAL_VALUE:Landroid/icu/util/BytesTrie$Result;
 Landroid/icu/util/BytesTrie$Result;->hasNext()Z
 Landroid/icu/util/BytesTrie$Result;->hasValue()Z
@@ -33287,13 +31081,11 @@
 Landroid/icu/util/BytesTrie$Result;->NO_VALUE:Landroid/icu/util/BytesTrie$Result;
 Landroid/icu/util/BytesTrie$Result;->valueOf(Ljava/lang/String;)Landroid/icu/util/BytesTrie$Result;
 Landroid/icu/util/BytesTrie$Result;->values()[Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/BytesTrie$State;
 Landroid/icu/util/BytesTrie$State;-><init>()V
 Landroid/icu/util/BytesTrie$State;->bytes:[B
 Landroid/icu/util/BytesTrie$State;->pos:I
 Landroid/icu/util/BytesTrie$State;->remainingMatchLength:I
 Landroid/icu/util/BytesTrie$State;->root:I
-Landroid/icu/util/BytesTrie;
 Landroid/icu/util/BytesTrie;-><init>([BI)V
 Landroid/icu/util/BytesTrie;->append(Ljava/lang/Appendable;I)V
 Landroid/icu/util/BytesTrie;->branchNext(III)Landroid/icu/util/BytesTrie$Result;
@@ -33344,11 +31136,9 @@
 Landroid/icu/util/BytesTrie;->skipValue([BI)I
 Landroid/icu/util/BytesTrie;->stop()V
 Landroid/icu/util/BytesTrie;->valueResults_:[Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/BytesTrieBuilder$BytesAsCharSequence;
 Landroid/icu/util/BytesTrieBuilder$BytesAsCharSequence;-><init>([BI)V
 Landroid/icu/util/BytesTrieBuilder$BytesAsCharSequence;->len:I
 Landroid/icu/util/BytesTrieBuilder$BytesAsCharSequence;->s:[B
-Landroid/icu/util/BytesTrieBuilder;
 Landroid/icu/util/BytesTrieBuilder;-><init>()V
 Landroid/icu/util/BytesTrieBuilder;->add([BII)Landroid/icu/util/BytesTrieBuilder;
 Landroid/icu/util/BytesTrieBuilder;->build(Landroid/icu/util/StringTrieBuilder$Option;)Landroid/icu/util/BytesTrie;
@@ -33369,8 +31159,6 @@
 Landroid/icu/util/BytesTrieBuilder;->writeDeltaTo(I)I
 Landroid/icu/util/BytesTrieBuilder;->writeValueAndFinal(IZ)I
 Landroid/icu/util/BytesTrieBuilder;->writeValueAndType(ZII)I
-Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$CalType;-><init>(Ljava/lang/String;)V
 Landroid/icu/util/Calendar$CalType;->BUDDHIST:Landroid/icu/util/Calendar$CalType;
 Landroid/icu/util/Calendar$CalType;->CHINESE:Landroid/icu/util/Calendar$CalType;
 Landroid/icu/util/Calendar$CalType;->COPTIC:Landroid/icu/util/Calendar$CalType;
@@ -33393,7 +31181,6 @@
 Landroid/icu/util/Calendar$CalType;->UNKNOWN:Landroid/icu/util/Calendar$CalType;
 Landroid/icu/util/Calendar$CalType;->valueOf(Ljava/lang/String;)Landroid/icu/util/Calendar$CalType;
 Landroid/icu/util/Calendar$CalType;->values()[Landroid/icu/util/Calendar$CalType;
-Landroid/icu/util/Calendar$FormatConfiguration;
 Landroid/icu/util/Calendar$FormatConfiguration;-><init>()V
 Landroid/icu/util/Calendar$FormatConfiguration;->cal:Landroid/icu/util/Calendar;
 Landroid/icu/util/Calendar$FormatConfiguration;->formatData:Landroid/icu/text/DateFormatSymbols;
@@ -33405,14 +31192,12 @@
 Landroid/icu/util/Calendar$FormatConfiguration;->loc:Landroid/icu/util/ULocale;
 Landroid/icu/util/Calendar$FormatConfiguration;->override:Ljava/lang/String;
 Landroid/icu/util/Calendar$FormatConfiguration;->pattern:Ljava/lang/String;
-Landroid/icu/util/Calendar$PatternData;
 Landroid/icu/util/Calendar$PatternData;-><init>([Ljava/lang/String;[Ljava/lang/String;)V
 Landroid/icu/util/Calendar$PatternData;->getDateTimePattern(I)Ljava/lang/String;
 Landroid/icu/util/Calendar$PatternData;->make(Landroid/icu/util/Calendar;Landroid/icu/util/ULocale;)Landroid/icu/util/Calendar$PatternData;
 Landroid/icu/util/Calendar$PatternData;->make(Landroid/icu/util/ULocale;Ljava/lang/String;)Landroid/icu/util/Calendar$PatternData;
 Landroid/icu/util/Calendar$PatternData;->overrides:[Ljava/lang/String;
 Landroid/icu/util/Calendar$PatternData;->patterns:[Ljava/lang/String;
-Landroid/icu/util/Calendar$WeekDataCache;
 Landroid/icu/util/Calendar$WeekDataCache;-><init>()V
 Landroid/icu/util/Calendar$WeekDataCache;->createInstance(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/Calendar$WeekData;
 Landroid/icu/util/Calendar;->actualLocale:Landroid/icu/util/ULocale;
@@ -33494,7 +31279,6 @@
 Landroid/icu/util/Calendar;->WEEKEND_ONSET:I
 Landroid/icu/util/Calendar;->WEEK_DATA_CACHE:Landroid/icu/util/Calendar$WeekDataCache;
 Landroid/icu/util/Calendar;->zone:Landroid/icu/util/TimeZone;
-Landroid/icu/util/CaseInsensitiveString;
 Landroid/icu/util/CaseInsensitiveString;-><init>(Ljava/lang/String;)V
 Landroid/icu/util/CaseInsensitiveString;->foldCase(Ljava/lang/String;)Ljava/lang/String;
 Landroid/icu/util/CaseInsensitiveString;->folded:Ljava/lang/String;
@@ -33502,7 +31286,6 @@
 Landroid/icu/util/CaseInsensitiveString;->getString()Ljava/lang/String;
 Landroid/icu/util/CaseInsensitiveString;->hash:I
 Landroid/icu/util/CaseInsensitiveString;->string:Ljava/lang/String;
-Landroid/icu/util/CECalendar;
 Landroid/icu/util/CECalendar;-><init>()V
 Landroid/icu/util/CECalendar;-><init>(III)V
 Landroid/icu/util/CECalendar;-><init>(IIIIII)V
@@ -33516,11 +31299,9 @@
 Landroid/icu/util/CECalendar;->getJDEpochOffset()I
 Landroid/icu/util/CECalendar;->jdToCE(II[I)V
 Landroid/icu/util/CECalendar;->LIMITS:[[I
-Landroid/icu/util/CharsTrie$Entry;
 Landroid/icu/util/CharsTrie$Entry;-><init>()V
 Landroid/icu/util/CharsTrie$Entry;->chars:Ljava/lang/CharSequence;
 Landroid/icu/util/CharsTrie$Entry;->value:I
-Landroid/icu/util/CharsTrie$Iterator;
 Landroid/icu/util/CharsTrie$Iterator;-><init>(Ljava/lang/CharSequence;III)V
 Landroid/icu/util/CharsTrie$Iterator;->branchNext(II)I
 Landroid/icu/util/CharsTrie$Iterator;->chars_:Ljava/lang/CharSequence;
@@ -33535,13 +31316,11 @@
 Landroid/icu/util/CharsTrie$Iterator;->stack_:Ljava/util/ArrayList;
 Landroid/icu/util/CharsTrie$Iterator;->str_:Ljava/lang/StringBuilder;
 Landroid/icu/util/CharsTrie$Iterator;->truncateAndStop()Landroid/icu/util/CharsTrie$Entry;
-Landroid/icu/util/CharsTrie$State;
 Landroid/icu/util/CharsTrie$State;-><init>()V
 Landroid/icu/util/CharsTrie$State;->chars:Ljava/lang/CharSequence;
 Landroid/icu/util/CharsTrie$State;->pos:I
 Landroid/icu/util/CharsTrie$State;->remainingMatchLength:I
 Landroid/icu/util/CharsTrie$State;->root:I
-Landroid/icu/util/CharsTrie;
 Landroid/icu/util/CharsTrie;-><init>(Ljava/lang/CharSequence;I)V
 Landroid/icu/util/CharsTrie;->append(Ljava/lang/Appendable;I)V
 Landroid/icu/util/CharsTrie;->branchNext(III)Landroid/icu/util/BytesTrie$Result;
@@ -33594,7 +31373,6 @@
 Landroid/icu/util/CharsTrie;->skipValue(Ljava/lang/CharSequence;I)I
 Landroid/icu/util/CharsTrie;->stop()V
 Landroid/icu/util/CharsTrie;->valueResults_:[Landroid/icu/util/BytesTrie$Result;
-Landroid/icu/util/CharsTrieBuilder;
 Landroid/icu/util/CharsTrieBuilder;-><init>()V
 Landroid/icu/util/CharsTrieBuilder;->add(Ljava/lang/CharSequence;I)Landroid/icu/util/CharsTrieBuilder;
 Landroid/icu/util/CharsTrieBuilder;->build(Landroid/icu/util/StringTrieBuilder$Option;)Landroid/icu/util/CharsTrie;
@@ -33639,7 +31417,6 @@
 Landroid/icu/util/ChineseCalendar;->winterSolstice(I)I
 Landroid/icu/util/ChineseCalendar;->winterSolsticeCache:Landroid/icu/impl/CalendarCache;
 Landroid/icu/util/ChineseCalendar;->zoneAstro:Landroid/icu/util/TimeZone;
-Landroid/icu/util/CompactByteArray;
 Landroid/icu/util/CompactByteArray;-><init>()V
 Landroid/icu/util/CompactByteArray;-><init>(B)V
 Landroid/icu/util/CompactByteArray;-><init>(Ljava/lang/String;Ljava/lang/String;)V
@@ -33666,7 +31443,6 @@
 Landroid/icu/util/CompactByteArray;->touchBlock(II)V
 Landroid/icu/util/CompactByteArray;->UNICODECOUNT:I
 Landroid/icu/util/CompactByteArray;->values:[B
-Landroid/icu/util/CompactCharArray;
 Landroid/icu/util/CompactCharArray;-><init>()V
 Landroid/icu/util/CompactCharArray;-><init>(C)V
 Landroid/icu/util/CompactCharArray;-><init>(Ljava/lang/String;Ljava/lang/String;)V
@@ -33699,26 +31475,20 @@
 Landroid/icu/util/CopticCalendar;->copticToJD(JII)I
 Landroid/icu/util/CopticCalendar;->getJDEpochOffset()I
 Landroid/icu/util/CopticCalendar;->JD_EPOCH_OFFSET:I
-Landroid/icu/util/Currency$CurrencyNameResultHandler;
 Landroid/icu/util/Currency$CurrencyNameResultHandler;-><init>()V
 Landroid/icu/util/Currency$CurrencyNameResultHandler;->bestCurrencyISOCode:Ljava/lang/String;
 Landroid/icu/util/Currency$CurrencyNameResultHandler;->bestMatchLength:I
 Landroid/icu/util/Currency$CurrencyNameResultHandler;->getBestCurrencyISOCode()Ljava/lang/String;
 Landroid/icu/util/Currency$CurrencyNameResultHandler;->getBestMatchLength()I
 Landroid/icu/util/Currency$CurrencyNameResultHandler;->handlePrefixMatch(ILjava/util/Iterator;)Z
-Landroid/icu/util/Currency$CurrencyStringInfo;
 Landroid/icu/util/Currency$CurrencyStringInfo;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/icu/util/Currency$CurrencyStringInfo;->currencyString:Ljava/lang/String;
 Landroid/icu/util/Currency$CurrencyStringInfo;->getCurrencyString()Ljava/lang/String;
 Landroid/icu/util/Currency$CurrencyStringInfo;->getISOCode()Ljava/lang/String;
 Landroid/icu/util/Currency$CurrencyStringInfo;->isoCode:Ljava/lang/String;
-Landroid/icu/util/Currency$CurrencyUsage;-><init>()V
-Landroid/icu/util/Currency$EquivalenceRelation;
 Landroid/icu/util/Currency$EquivalenceRelation;-><init>()V
-Landroid/icu/util/Currency$EquivalenceRelation;->add([[Ljava/lang/Object;)Landroid/icu/util/Currency$EquivalenceRelation;
 Landroid/icu/util/Currency$EquivalenceRelation;->data:Ljava/util/Map;
 Landroid/icu/util/Currency$EquivalenceRelation;->get(Ljava/lang/Object;)Ljava/util/Set;
-Landroid/icu/util/Currency$ServiceShim;
 Landroid/icu/util/Currency$ServiceShim;-><init>()V
 Landroid/icu/util/Currency$ServiceShim;->createInstance(Landroid/icu/util/ULocale;)Landroid/icu/util/Currency;
 Landroid/icu/util/Currency$ServiceShim;->getAvailableLocales()[Ljava/util/Locale;
@@ -33755,7 +31525,6 @@
 Landroid/icu/util/Currency;->unregister(Ljava/lang/Object;)Z
 Landroid/icu/util/CurrencyAmount;-><init>(DLjava/util/Currency;)V
 Landroid/icu/util/CurrencyAmount;-><init>(Ljava/lang/Number;Ljava/util/Currency;)V
-Landroid/icu/util/DangiCalendar;
 Landroid/icu/util/DangiCalendar;-><init>()V
 Landroid/icu/util/DangiCalendar;-><init>(Landroid/icu/util/TimeZone;Landroid/icu/util/ULocale;)V
 Landroid/icu/util/DangiCalendar;-><init>(Ljava/util/Date;)V
@@ -33763,12 +31532,10 @@
 Landroid/icu/util/DangiCalendar;->KOREA_ZONE:Landroid/icu/util/TimeZone;
 Landroid/icu/util/DateInterval;->fromDate:J
 Landroid/icu/util/DateInterval;->toDate:J
-Landroid/icu/util/DateRule;
 Landroid/icu/util/DateRule;->firstAfter(Ljava/util/Date;)Ljava/util/Date;
 Landroid/icu/util/DateRule;->firstBetween(Ljava/util/Date;Ljava/util/Date;)Ljava/util/Date;
 Landroid/icu/util/DateRule;->isBetween(Ljava/util/Date;Ljava/util/Date;)Z
 Landroid/icu/util/DateRule;->isOn(Ljava/util/Date;)Z
-Landroid/icu/util/DateTimeRule;
 Landroid/icu/util/DateTimeRule;-><init>(IIII)V
 Landroid/icu/util/DateTimeRule;-><init>(IIIII)V
 Landroid/icu/util/DateTimeRule;-><init>(IIIZII)V
@@ -33795,7 +31562,6 @@
 Landroid/icu/util/DateTimeRule;->UTC_TIME:I
 Landroid/icu/util/DateTimeRule;->WALL_TIME:I
 Landroid/icu/util/DateTimeRule;->weekInMonth:I
-Landroid/icu/util/EasterHoliday;
 Landroid/icu/util/EasterHoliday;-><init>(ILjava/lang/String;)V
 Landroid/icu/util/EasterHoliday;-><init>(IZLjava/lang/String;)V
 Landroid/icu/util/EasterHoliday;-><init>(Ljava/lang/String;)V
@@ -33821,20 +31587,15 @@
 Landroid/icu/util/EthiopicCalendar;->getJDEpochOffset()I
 Landroid/icu/util/EthiopicCalendar;->JD_EPOCH_OFFSET_AMETE_MIHRET:I
 Landroid/icu/util/EthiopicCalendar;->setCalcTypeForLocale(Landroid/icu/util/ULocale;)V
-Landroid/icu/util/GenderInfo$Cache;
 Landroid/icu/util/GenderInfo$Cache;-><init>()V
 Landroid/icu/util/GenderInfo$Cache;->cache:Landroid/icu/impl/ICUCache;
 Landroid/icu/util/GenderInfo$Cache;->get(Landroid/icu/util/ULocale;)Landroid/icu/util/GenderInfo;
 Landroid/icu/util/GenderInfo$Cache;->load(Landroid/icu/util/ULocale;)Landroid/icu/util/GenderInfo;
-Landroid/icu/util/GenderInfo$Gender;
-Landroid/icu/util/GenderInfo$Gender;-><init>()V
 Landroid/icu/util/GenderInfo$Gender;->FEMALE:Landroid/icu/util/GenderInfo$Gender;
 Landroid/icu/util/GenderInfo$Gender;->MALE:Landroid/icu/util/GenderInfo$Gender;
 Landroid/icu/util/GenderInfo$Gender;->OTHER:Landroid/icu/util/GenderInfo$Gender;
 Landroid/icu/util/GenderInfo$Gender;->valueOf(Ljava/lang/String;)Landroid/icu/util/GenderInfo$Gender;
 Landroid/icu/util/GenderInfo$Gender;->values()[Landroid/icu/util/GenderInfo$Gender;
-Landroid/icu/util/GenderInfo$ListGenderStyle;
-Landroid/icu/util/GenderInfo$ListGenderStyle;-><init>()V
 Landroid/icu/util/GenderInfo$ListGenderStyle;->fromName(Ljava/lang/String;)Landroid/icu/util/GenderInfo$ListGenderStyle;
 Landroid/icu/util/GenderInfo$ListGenderStyle;->fromNameMap:Ljava/util/Map;
 Landroid/icu/util/GenderInfo$ListGenderStyle;->MALE_TAINTS:Landroid/icu/util/GenderInfo$ListGenderStyle;
@@ -33842,16 +31603,13 @@
 Landroid/icu/util/GenderInfo$ListGenderStyle;->NEUTRAL:Landroid/icu/util/GenderInfo$ListGenderStyle;
 Landroid/icu/util/GenderInfo$ListGenderStyle;->valueOf(Ljava/lang/String;)Landroid/icu/util/GenderInfo$ListGenderStyle;
 Landroid/icu/util/GenderInfo$ListGenderStyle;->values()[Landroid/icu/util/GenderInfo$ListGenderStyle;
-Landroid/icu/util/GenderInfo;
 Landroid/icu/util/GenderInfo;-><init>(Landroid/icu/util/GenderInfo$ListGenderStyle;)V
 Landroid/icu/util/GenderInfo;->genderInfoCache:Landroid/icu/util/GenderInfo$Cache;
 Landroid/icu/util/GenderInfo;->getInstance(Landroid/icu/util/ULocale;)Landroid/icu/util/GenderInfo;
 Landroid/icu/util/GenderInfo;->getInstance(Ljava/util/Locale;)Landroid/icu/util/GenderInfo;
 Landroid/icu/util/GenderInfo;->getListGender(Ljava/util/List;)Landroid/icu/util/GenderInfo$Gender;
-Landroid/icu/util/GenderInfo;->getListGender([[Landroid/icu/util/GenderInfo$Gender;)Landroid/icu/util/GenderInfo$Gender;
 Landroid/icu/util/GenderInfo;->neutral:Landroid/icu/util/GenderInfo;
 Landroid/icu/util/GenderInfo;->style:Landroid/icu/util/GenderInfo$ListGenderStyle;
-Landroid/icu/util/GlobalizationPreferences;
 Landroid/icu/util/GlobalizationPreferences;-><init>()V
 Landroid/icu/util/GlobalizationPreferences;->available_locales:Ljava/util/HashMap;
 Landroid/icu/util/GlobalizationPreferences;->BI_CHARACTER:I
@@ -33964,7 +31722,6 @@
 Landroid/icu/util/HebrewCalendar;->MONTH_START:[[I
 Landroid/icu/util/HebrewCalendar;->startOfYear(I)J
 Landroid/icu/util/HebrewCalendar;->yearType(I)I
-Landroid/icu/util/HebrewHoliday;
 Landroid/icu/util/HebrewHoliday;-><init>(IIILjava/lang/String;)V
 Landroid/icu/util/HebrewHoliday;-><init>(IILjava/lang/String;)V
 Landroid/icu/util/HebrewHoliday;->ESTHER:Landroid/icu/util/HebrewHoliday;
@@ -33992,7 +31749,6 @@
 Landroid/icu/util/HebrewHoliday;->YOM_HAZIKARON:Landroid/icu/util/HebrewHoliday;
 Landroid/icu/util/HebrewHoliday;->YOM_KIPPUR:Landroid/icu/util/HebrewHoliday;
 Landroid/icu/util/HebrewHoliday;->YOM_YERUSHALAYIM:Landroid/icu/util/HebrewHoliday;
-Landroid/icu/util/Holiday;
 Landroid/icu/util/Holiday;-><init>(Ljava/lang/String;Landroid/icu/util/DateRule;)V
 Landroid/icu/util/Holiday;->firstAfter(Ljava/util/Date;)Ljava/util/Date;
 Landroid/icu/util/Holiday;->firstBetween(Ljava/util/Date;Ljava/util/Date;)Ljava/util/Date;
@@ -34009,12 +31765,10 @@
 Landroid/icu/util/Holiday;->noHolidays:[Landroid/icu/util/Holiday;
 Landroid/icu/util/Holiday;->rule:Landroid/icu/util/DateRule;
 Landroid/icu/util/Holiday;->setRule(Landroid/icu/util/DateRule;)V
-Landroid/icu/util/ICUCloneNotSupportedException;
 Landroid/icu/util/ICUCloneNotSupportedException;-><init>()V
 Landroid/icu/util/ICUCloneNotSupportedException;-><init>(Ljava/lang/String;)V
 Landroid/icu/util/ICUCloneNotSupportedException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
 Landroid/icu/util/ICUCloneNotSupportedException;-><init>(Ljava/lang/Throwable;)V
-Landroid/icu/util/ICUException;
 Landroid/icu/util/ICUException;-><init>()V
 Landroid/icu/util/ICUException;-><init>(Ljava/lang/String;)V
 Landroid/icu/util/ICUException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
@@ -34027,7 +31781,6 @@
 Landroid/icu/util/IndianCalendar;->isGregorianLeap(I)Z
 Landroid/icu/util/IndianCalendar;->jdToGregorian(D)[I
 Landroid/icu/util/IndianCalendar;->LIMITS:[[I
-Landroid/icu/util/InitialTimeZoneRule;
 Landroid/icu/util/InitialTimeZoneRule;-><init>(Ljava/lang/String;II)V
 Landroid/icu/util/InitialTimeZoneRule;->getFinalStart(II)Ljava/util/Date;
 Landroid/icu/util/InitialTimeZoneRule;->getFirstStart(II)Ljava/util/Date;
@@ -34035,7 +31788,6 @@
 Landroid/icu/util/InitialTimeZoneRule;->getPreviousStart(JIIZ)Ljava/util/Date;
 Landroid/icu/util/InitialTimeZoneRule;->isEquivalentTo(Landroid/icu/util/TimeZoneRule;)Z
 Landroid/icu/util/InitialTimeZoneRule;->isTransitionRule()Z
-Landroid/icu/util/IslamicCalendar$CalculationType;-><init>(Ljava/lang/String;)V
 Landroid/icu/util/IslamicCalendar$CalculationType;->bcpType()Ljava/lang/String;
 Landroid/icu/util/IslamicCalendar$CalculationType;->bcpType:Ljava/lang/String;
 Landroid/icu/util/IslamicCalendar;->astro:Landroid/icu/impl/CalendarAstronomer;
@@ -34091,7 +31843,6 @@
 Landroid/icu/util/LocaleData;->PAPER_SIZE:Ljava/lang/String;
 Landroid/icu/util/LocaleData;->PATTERN:Ljava/lang/String;
 Landroid/icu/util/LocaleData;->SEPARATOR:Ljava/lang/String;
-Landroid/icu/util/LocaleMatcher$LanguageMatcherData;
 Landroid/icu/util/LocaleMatcher$LanguageMatcherData;-><init>()V
 Landroid/icu/util/LocaleMatcher$LanguageMatcherData;->addDistance(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Landroid/icu/util/LocaleMatcher$LanguageMatcherData;
 Landroid/icu/util/LocaleMatcher$LanguageMatcherData;->addDistance(Ljava/lang/String;Ljava/lang/String;IZ)Landroid/icu/util/LocaleMatcher$LanguageMatcherData;
@@ -34103,15 +31854,12 @@
 Landroid/icu/util/LocaleMatcher$LanguageMatcherData;->matchingLanguages:Landroid/icu/impl/Relation;
 Landroid/icu/util/LocaleMatcher$LanguageMatcherData;->regionScores:Landroid/icu/util/LocaleMatcher$ScoreData;
 Landroid/icu/util/LocaleMatcher$LanguageMatcherData;->scriptScores:Landroid/icu/util/LocaleMatcher$ScoreData;
-Landroid/icu/util/LocaleMatcher$Level;
-Landroid/icu/util/LocaleMatcher$Level;-><init>(D)V
 Landroid/icu/util/LocaleMatcher$Level;->language:Landroid/icu/util/LocaleMatcher$Level;
 Landroid/icu/util/LocaleMatcher$Level;->region:Landroid/icu/util/LocaleMatcher$Level;
 Landroid/icu/util/LocaleMatcher$Level;->script:Landroid/icu/util/LocaleMatcher$Level;
 Landroid/icu/util/LocaleMatcher$Level;->valueOf(Ljava/lang/String;)Landroid/icu/util/LocaleMatcher$Level;
 Landroid/icu/util/LocaleMatcher$Level;->values()[Landroid/icu/util/LocaleMatcher$Level;
 Landroid/icu/util/LocaleMatcher$Level;->worst:D
-Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;
 Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;-><init>(Ljava/lang/String;)V
 Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;->getLanguage()Ljava/lang/String;
 Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;->getLevel()Landroid/icu/util/LocaleMatcher$Level;
@@ -34123,10 +31871,8 @@
 Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;->pattern:Ljava/util/regex/Pattern;
 Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;->region:Ljava/lang/String;
 Landroid/icu/util/LocaleMatcher$LocalePatternMatcher;->script:Ljava/lang/String;
-Landroid/icu/util/LocaleMatcher$OutputDouble;
 Landroid/icu/util/LocaleMatcher$OutputDouble;-><init>()V
 Landroid/icu/util/LocaleMatcher$OutputDouble;->value:D
-Landroid/icu/util/LocaleMatcher$ScoreData;
 Landroid/icu/util/LocaleMatcher$ScoreData;-><init>(Landroid/icu/util/LocaleMatcher$Level;)V
 Landroid/icu/util/LocaleMatcher$ScoreData;->addDataToScores(Ljava/lang/String;Ljava/lang/String;Landroid/icu/impl/Row$R3;)V
 Landroid/icu/util/LocaleMatcher$ScoreData;->frozen:Z
@@ -34137,7 +31883,6 @@
 Landroid/icu/util/LocaleMatcher$ScoreData;->maxUnequal_changeD_sameS:D
 Landroid/icu/util/LocaleMatcher$ScoreData;->maxUnequal_changeEqual:D
 Landroid/icu/util/LocaleMatcher$ScoreData;->scores:Ljava/util/LinkedHashSet;
-Landroid/icu/util/LocaleMatcher;
 Landroid/icu/util/LocaleMatcher;-><init>(Landroid/icu/util/LocalePriorityList;)V
 Landroid/icu/util/LocaleMatcher;-><init>(Landroid/icu/util/LocalePriorityList;Landroid/icu/util/LocaleMatcher$LanguageMatcherData;)V
 Landroid/icu/util/LocaleMatcher;-><init>(Landroid/icu/util/LocalePriorityList;Landroid/icu/util/LocaleMatcher$LanguageMatcherData;D)V
@@ -34157,7 +31902,6 @@
 Landroid/icu/util/LocaleMatcher;->getBestMatch(Landroid/icu/util/ULocale;)Landroid/icu/util/ULocale;
 Landroid/icu/util/LocaleMatcher;->getBestMatch(Ljava/lang/String;)Landroid/icu/util/ULocale;
 Landroid/icu/util/LocaleMatcher;->getBestMatch(Ljava/util/LinkedHashSet;Landroid/icu/util/Output;)Landroid/icu/util/ULocale;
-Landroid/icu/util/LocaleMatcher;->getBestMatch([[Landroid/icu/util/ULocale;)Landroid/icu/util/ULocale;
 Landroid/icu/util/LocaleMatcher;->getBestMatchInternal(Landroid/icu/util/ULocale;Landroid/icu/util/LocaleMatcher$OutputDouble;)Landroid/icu/util/ULocale;
 Landroid/icu/util/LocaleMatcher;->getICUSupplementalData()Landroid/icu/impl/ICUResourceBundle;
 Landroid/icu/util/LocaleMatcher;->getLocaleMatcher()Landroid/icu/impl/locale/XLocaleMatcher;
@@ -34174,22 +31918,18 @@
 Landroid/icu/util/LocaleMatcher;->xDefaultLanguage:Landroid/icu/util/ULocale;
 Landroid/icu/util/LocaleMatcher;->xFavorScript:Z
 Landroid/icu/util/LocaleMatcher;->xLocaleMatcher:Landroid/icu/impl/locale/XLocaleMatcher;
-Landroid/icu/util/LocalePriorityList$Builder;
 Landroid/icu/util/LocalePriorityList$Builder;-><init>()V
 Landroid/icu/util/LocalePriorityList$Builder;->add(Landroid/icu/util/LocalePriorityList;)Landroid/icu/util/LocalePriorityList$Builder;
 Landroid/icu/util/LocalePriorityList$Builder;->add(Landroid/icu/util/ULocale;)Landroid/icu/util/LocalePriorityList$Builder;
 Landroid/icu/util/LocalePriorityList$Builder;->add(Landroid/icu/util/ULocale;D)Landroid/icu/util/LocalePriorityList$Builder;
 Landroid/icu/util/LocalePriorityList$Builder;->add(Ljava/lang/String;)Landroid/icu/util/LocalePriorityList$Builder;
-Landroid/icu/util/LocalePriorityList$Builder;->add([[Landroid/icu/util/ULocale;)Landroid/icu/util/LocalePriorityList$Builder;
 Landroid/icu/util/LocalePriorityList$Builder;->build()Landroid/icu/util/LocalePriorityList;
 Landroid/icu/util/LocalePriorityList$Builder;->build(Z)Landroid/icu/util/LocalePriorityList;
 Landroid/icu/util/LocalePriorityList$Builder;->languageToWeight:Ljava/util/Map;
-Landroid/icu/util/LocalePriorityList;
 Landroid/icu/util/LocalePriorityList;-><init>(Ljava/util/Map;)V
 Landroid/icu/util/LocalePriorityList;->add(Landroid/icu/util/LocalePriorityList;)Landroid/icu/util/LocalePriorityList$Builder;
 Landroid/icu/util/LocalePriorityList;->add(Landroid/icu/util/ULocale;D)Landroid/icu/util/LocalePriorityList$Builder;
 Landroid/icu/util/LocalePriorityList;->add(Ljava/lang/String;)Landroid/icu/util/LocalePriorityList$Builder;
-Landroid/icu/util/LocalePriorityList;->add([[Landroid/icu/util/ULocale;)Landroid/icu/util/LocalePriorityList$Builder;
 Landroid/icu/util/LocalePriorityList;->D0:D
 Landroid/icu/util/LocalePriorityList;->D1:Ljava/lang/Double;
 Landroid/icu/util/LocalePriorityList;->getWeight(Landroid/icu/util/ULocale;)Ljava/lang/Double;
@@ -34200,16 +31940,12 @@
 Landroid/icu/util/Measure;->number:Ljava/lang/Number;
 Landroid/icu/util/Measure;->numbersEqual(Ljava/lang/Number;Ljava/lang/Number;)Z
 Landroid/icu/util/Measure;->unit:Landroid/icu/util/MeasureUnit;
-Landroid/icu/util/MeasureUnit$CurrencyNumericCodeSink;
 Landroid/icu/util/MeasureUnit$CurrencyNumericCodeSink;-><init>()V
-Landroid/icu/util/MeasureUnit$Factory;
 Landroid/icu/util/MeasureUnit$Factory;->create(Ljava/lang/String;Ljava/lang/String;)Landroid/icu/util/MeasureUnit;
-Landroid/icu/util/MeasureUnit$MeasureUnitProxy;
 Landroid/icu/util/MeasureUnit$MeasureUnitProxy;-><init>()V
 Landroid/icu/util/MeasureUnit$MeasureUnitProxy;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/icu/util/MeasureUnit$MeasureUnitProxy;->subType:Ljava/lang/String;
 Landroid/icu/util/MeasureUnit$MeasureUnitProxy;->type:Ljava/lang/String;
-Landroid/icu/util/MeasureUnit$MeasureUnitSink;
 Landroid/icu/util/MeasureUnit$MeasureUnitSink;-><init>()V
 Landroid/icu/util/MeasureUnit;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/icu/util/MeasureUnit;->addUnit(Ljava/lang/String;Ljava/lang/String;Landroid/icu/util/MeasureUnit$Factory;)Landroid/icu/util/MeasureUnit;
@@ -34228,16 +31964,13 @@
 Landroid/icu/util/MeasureUnit;->type:Ljava/lang/String;
 Landroid/icu/util/MeasureUnit;->unitPerUnitToSingleUnit:Ljava/util/HashMap;
 Landroid/icu/util/MeasureUnit;->UNIT_FACTORY:Landroid/icu/util/MeasureUnit$Factory;
-Landroid/icu/util/NoUnit;
 Landroid/icu/util/NoUnit;-><init>(Ljava/lang/String;)V
 Landroid/icu/util/NoUnit;->BASE:Landroid/icu/util/NoUnit;
 Landroid/icu/util/NoUnit;->PERCENT:Landroid/icu/util/NoUnit;
 Landroid/icu/util/NoUnit;->PERMILLE:Landroid/icu/util/NoUnit;
-Landroid/icu/util/OutputInt;
 Landroid/icu/util/OutputInt;-><init>()V
 Landroid/icu/util/OutputInt;-><init>(I)V
 Landroid/icu/util/OutputInt;->value:I
-Landroid/icu/util/PersianCalendar;
 Landroid/icu/util/PersianCalendar;-><init>()V
 Landroid/icu/util/PersianCalendar;-><init>(III)V
 Landroid/icu/util/PersianCalendar;-><init>(IIIIII)V
@@ -34250,11 +31983,9 @@
 Landroid/icu/util/PersianCalendar;->LIMITS:[[I
 Landroid/icu/util/PersianCalendar;->MONTH_COUNT:[[I
 Landroid/icu/util/PersianCalendar;->PERSIAN_EPOCH:I
-Landroid/icu/util/Range;
 Landroid/icu/util/Range;-><init>(Ljava/util/Date;Landroid/icu/util/DateRule;)V
 Landroid/icu/util/Range;->rule:Landroid/icu/util/DateRule;
 Landroid/icu/util/Range;->start:Ljava/util/Date;
-Landroid/icu/util/RangeDateRule;
 Landroid/icu/util/RangeDateRule;-><init>()V
 Landroid/icu/util/RangeDateRule;->add(Landroid/icu/util/DateRule;)V
 Landroid/icu/util/RangeDateRule;->add(Ljava/util/Date;Landroid/icu/util/DateRule;)V
@@ -34265,8 +31996,6 @@
 Landroid/icu/util/RangeDateRule;->rangeAt(I)Landroid/icu/util/Range;
 Landroid/icu/util/RangeDateRule;->ranges:Ljava/util/List;
 Landroid/icu/util/RangeDateRule;->startIndex(Ljava/util/Date;)I
-Landroid/icu/util/Region$RegionType;
-Landroid/icu/util/Region$RegionType;-><init>()V
 Landroid/icu/util/Region$RegionType;->CONTINENT:Landroid/icu/util/Region$RegionType;
 Landroid/icu/util/Region$RegionType;->DEPRECATED:Landroid/icu/util/Region$RegionType;
 Landroid/icu/util/Region$RegionType;->GROUPING:Landroid/icu/util/Region$RegionType;
@@ -34276,7 +32005,6 @@
 Landroid/icu/util/Region$RegionType;->valueOf(Ljava/lang/String;)Landroid/icu/util/Region$RegionType;
 Landroid/icu/util/Region$RegionType;->values()[Landroid/icu/util/Region$RegionType;
 Landroid/icu/util/Region$RegionType;->WORLD:Landroid/icu/util/Region$RegionType;
-Landroid/icu/util/Region;
 Landroid/icu/util/Region;-><init>()V
 Landroid/icu/util/Region;->availableRegions:Ljava/util/ArrayList;
 Landroid/icu/util/Region;->code:I
@@ -34306,7 +32034,6 @@
 Landroid/icu/util/Region;->type:Landroid/icu/util/Region$RegionType;
 Landroid/icu/util/Region;->UNKNOWN_REGION_ID:Ljava/lang/String;
 Landroid/icu/util/Region;->WORLD_ID:Ljava/lang/String;
-Landroid/icu/util/RuleBasedTimeZone;
 Landroid/icu/util/RuleBasedTimeZone;-><init>(Ljava/lang/String;Landroid/icu/util/InitialTimeZoneRule;)V
 Landroid/icu/util/RuleBasedTimeZone;->addTransitionRule(Landroid/icu/util/TimeZoneRule;)V
 Landroid/icu/util/RuleBasedTimeZone;->complete()V
@@ -34324,7 +32051,6 @@
 Landroid/icu/util/RuleBasedTimeZone;->initialRule:Landroid/icu/util/InitialTimeZoneRule;
 Landroid/icu/util/RuleBasedTimeZone;->isFrozen:Z
 Landroid/icu/util/RuleBasedTimeZone;->upToDate:Z
-Landroid/icu/util/SimpleDateRule;
 Landroid/icu/util/SimpleDateRule;-><init>(II)V
 Landroid/icu/util/SimpleDateRule;-><init>(IIIZ)V
 Landroid/icu/util/SimpleDateRule;-><init>(IILandroid/icu/util/Calendar;)V
@@ -34338,7 +32064,6 @@
 Landroid/icu/util/SimpleDateRule;->isBetween(Ljava/util/Date;Ljava/util/Date;)Z
 Landroid/icu/util/SimpleDateRule;->isOn(Ljava/util/Date;)Z
 Landroid/icu/util/SimpleDateRule;->month:I
-Landroid/icu/util/SimpleHoliday;
 Landroid/icu/util/SimpleHoliday;-><init>(IIILjava/lang/String;)V
 Landroid/icu/util/SimpleHoliday;-><init>(IIILjava/lang/String;I)V
 Landroid/icu/util/SimpleHoliday;-><init>(IIILjava/lang/String;II)V
@@ -34358,7 +32083,6 @@
 Landroid/icu/util/SimpleHoliday;->NEW_YEARS_EVE:Landroid/icu/util/SimpleHoliday;
 Landroid/icu/util/SimpleHoliday;->rangeRule(IILandroid/icu/util/DateRule;)Landroid/icu/util/DateRule;
 Landroid/icu/util/SimpleHoliday;->ST_STEPHENS_DAY:Landroid/icu/util/SimpleHoliday;
-Landroid/icu/util/SimpleTimeZone;
 Landroid/icu/util/SimpleTimeZone;-><init>(ILjava/lang/String;)V
 Landroid/icu/util/SimpleTimeZone;-><init>(ILjava/lang/String;IIIIIIII)V
 Landroid/icu/util/SimpleTimeZone;-><init>(ILjava/lang/String;IIIIIIIII)V
@@ -34419,7 +32143,6 @@
 Landroid/icu/util/SimpleTimeZone;->UTC_TIME:I
 Landroid/icu/util/SimpleTimeZone;->WALL_TIME:I
 Landroid/icu/util/SimpleTimeZone;->xinfo:Landroid/icu/util/STZInfo;
-Landroid/icu/util/StringTokenizer;
 Landroid/icu/util/StringTokenizer;-><init>(Ljava/lang/String;)V
 Landroid/icu/util/StringTokenizer;-><init>(Ljava/lang/String;Landroid/icu/text/UnicodeSet;)V
 Landroid/icu/util/StringTokenizer;-><init>(Ljava/lang/String;Landroid/icu/text/UnicodeSet;Z)V
@@ -34449,17 +32172,14 @@
 Landroid/icu/util/StringTokenizer;->nextToken(Landroid/icu/text/UnicodeSet;)Ljava/lang/String;
 Landroid/icu/util/StringTokenizer;->nextToken(Ljava/lang/String;)Ljava/lang/String;
 Landroid/icu/util/StringTokenizer;->TOKEN_SIZE_:I
-Landroid/icu/util/StringTrieBuilder$BranchHeadNode;
 Landroid/icu/util/StringTrieBuilder$BranchHeadNode;-><init>(ILandroid/icu/util/StringTrieBuilder$Node;)V
 Landroid/icu/util/StringTrieBuilder$BranchHeadNode;->length:I
 Landroid/icu/util/StringTrieBuilder$BranchHeadNode;->markRightEdgesFirst(I)I
 Landroid/icu/util/StringTrieBuilder$BranchHeadNode;->next:Landroid/icu/util/StringTrieBuilder$Node;
 Landroid/icu/util/StringTrieBuilder$BranchHeadNode;->write(Landroid/icu/util/StringTrieBuilder;)V
-Landroid/icu/util/StringTrieBuilder$BranchNode;
 Landroid/icu/util/StringTrieBuilder$BranchNode;-><init>()V
 Landroid/icu/util/StringTrieBuilder$BranchNode;->firstEdgeNumber:I
 Landroid/icu/util/StringTrieBuilder$BranchNode;->hash:I
-Landroid/icu/util/StringTrieBuilder$DynamicBranchNode;
 Landroid/icu/util/StringTrieBuilder$DynamicBranchNode;-><init>()V
 Landroid/icu/util/StringTrieBuilder$DynamicBranchNode;->add(CLandroid/icu/util/StringTrieBuilder$Node;)V
 Landroid/icu/util/StringTrieBuilder$DynamicBranchNode;->add(Landroid/icu/util/StringTrieBuilder;Ljava/lang/CharSequence;II)Landroid/icu/util/StringTrieBuilder$Node;
@@ -34468,12 +32188,10 @@
 Landroid/icu/util/StringTrieBuilder$DynamicBranchNode;->find(C)I
 Landroid/icu/util/StringTrieBuilder$DynamicBranchNode;->register(Landroid/icu/util/StringTrieBuilder;)Landroid/icu/util/StringTrieBuilder$Node;
 Landroid/icu/util/StringTrieBuilder$DynamicBranchNode;->register(Landroid/icu/util/StringTrieBuilder;II)Landroid/icu/util/StringTrieBuilder$Node;
-Landroid/icu/util/StringTrieBuilder$IntermediateValueNode;
 Landroid/icu/util/StringTrieBuilder$IntermediateValueNode;-><init>(ILandroid/icu/util/StringTrieBuilder$Node;)V
 Landroid/icu/util/StringTrieBuilder$IntermediateValueNode;->markRightEdgesFirst(I)I
 Landroid/icu/util/StringTrieBuilder$IntermediateValueNode;->next:Landroid/icu/util/StringTrieBuilder$Node;
 Landroid/icu/util/StringTrieBuilder$IntermediateValueNode;->write(Landroid/icu/util/StringTrieBuilder;)V
-Landroid/icu/util/StringTrieBuilder$LinearMatchNode;
 Landroid/icu/util/StringTrieBuilder$LinearMatchNode;-><init>(Ljava/lang/CharSequence;IILandroid/icu/util/StringTrieBuilder$Node;)V
 Landroid/icu/util/StringTrieBuilder$LinearMatchNode;->add(Landroid/icu/util/StringTrieBuilder;Ljava/lang/CharSequence;II)Landroid/icu/util/StringTrieBuilder$Node;
 Landroid/icu/util/StringTrieBuilder$LinearMatchNode;->hash:I
@@ -34485,7 +32203,6 @@
 Landroid/icu/util/StringTrieBuilder$LinearMatchNode;->stringOffset:I
 Landroid/icu/util/StringTrieBuilder$LinearMatchNode;->strings:Ljava/lang/CharSequence;
 Landroid/icu/util/StringTrieBuilder$LinearMatchNode;->write(Landroid/icu/util/StringTrieBuilder;)V
-Landroid/icu/util/StringTrieBuilder$ListBranchNode;
 Landroid/icu/util/StringTrieBuilder$ListBranchNode;-><init>(I)V
 Landroid/icu/util/StringTrieBuilder$ListBranchNode;->add(II)V
 Landroid/icu/util/StringTrieBuilder$ListBranchNode;->add(ILandroid/icu/util/StringTrieBuilder$Node;)V
@@ -34495,7 +32212,6 @@
 Landroid/icu/util/StringTrieBuilder$ListBranchNode;->units:[C
 Landroid/icu/util/StringTrieBuilder$ListBranchNode;->values:[I
 Landroid/icu/util/StringTrieBuilder$ListBranchNode;->write(Landroid/icu/util/StringTrieBuilder;)V
-Landroid/icu/util/StringTrieBuilder$Node;
 Landroid/icu/util/StringTrieBuilder$Node;-><init>()V
 Landroid/icu/util/StringTrieBuilder$Node;->add(Landroid/icu/util/StringTrieBuilder;Ljava/lang/CharSequence;II)Landroid/icu/util/StringTrieBuilder$Node;
 Landroid/icu/util/StringTrieBuilder$Node;->getOffset()I
@@ -34504,28 +32220,22 @@
 Landroid/icu/util/StringTrieBuilder$Node;->register(Landroid/icu/util/StringTrieBuilder;)Landroid/icu/util/StringTrieBuilder$Node;
 Landroid/icu/util/StringTrieBuilder$Node;->write(Landroid/icu/util/StringTrieBuilder;)V
 Landroid/icu/util/StringTrieBuilder$Node;->writeUnlessInsideRightEdge(IILandroid/icu/util/StringTrieBuilder;)V
-Landroid/icu/util/StringTrieBuilder$Option;
-Landroid/icu/util/StringTrieBuilder$Option;-><init>()V
 Landroid/icu/util/StringTrieBuilder$Option;->FAST:Landroid/icu/util/StringTrieBuilder$Option;
 Landroid/icu/util/StringTrieBuilder$Option;->SMALL:Landroid/icu/util/StringTrieBuilder$Option;
 Landroid/icu/util/StringTrieBuilder$Option;->valueOf(Ljava/lang/String;)Landroid/icu/util/StringTrieBuilder$Option;
 Landroid/icu/util/StringTrieBuilder$Option;->values()[Landroid/icu/util/StringTrieBuilder$Option;
-Landroid/icu/util/StringTrieBuilder$SplitBranchNode;
 Landroid/icu/util/StringTrieBuilder$SplitBranchNode;-><init>(CLandroid/icu/util/StringTrieBuilder$Node;Landroid/icu/util/StringTrieBuilder$Node;)V
 Landroid/icu/util/StringTrieBuilder$SplitBranchNode;->greaterOrEqual:Landroid/icu/util/StringTrieBuilder$Node;
 Landroid/icu/util/StringTrieBuilder$SplitBranchNode;->lessThan:Landroid/icu/util/StringTrieBuilder$Node;
 Landroid/icu/util/StringTrieBuilder$SplitBranchNode;->markRightEdgesFirst(I)I
 Landroid/icu/util/StringTrieBuilder$SplitBranchNode;->unit:C
 Landroid/icu/util/StringTrieBuilder$SplitBranchNode;->write(Landroid/icu/util/StringTrieBuilder;)V
-Landroid/icu/util/StringTrieBuilder$State;
-Landroid/icu/util/StringTrieBuilder$State;-><init>()V
 Landroid/icu/util/StringTrieBuilder$State;->ADDING:Landroid/icu/util/StringTrieBuilder$State;
 Landroid/icu/util/StringTrieBuilder$State;->BUILDING_FAST:Landroid/icu/util/StringTrieBuilder$State;
 Landroid/icu/util/StringTrieBuilder$State;->BUILDING_SMALL:Landroid/icu/util/StringTrieBuilder$State;
 Landroid/icu/util/StringTrieBuilder$State;->BUILT:Landroid/icu/util/StringTrieBuilder$State;
 Landroid/icu/util/StringTrieBuilder$State;->valueOf(Ljava/lang/String;)Landroid/icu/util/StringTrieBuilder$State;
 Landroid/icu/util/StringTrieBuilder$State;->values()[Landroid/icu/util/StringTrieBuilder$State;
-Landroid/icu/util/StringTrieBuilder$ValueNode;
 Landroid/icu/util/StringTrieBuilder$ValueNode;-><init>()V
 Landroid/icu/util/StringTrieBuilder$ValueNode;-><init>(I)V
 Landroid/icu/util/StringTrieBuilder$ValueNode;->add(Landroid/icu/util/StringTrieBuilder;Ljava/lang/CharSequence;II)Landroid/icu/util/StringTrieBuilder$Node;
@@ -34534,7 +32244,6 @@
 Landroid/icu/util/StringTrieBuilder$ValueNode;->setValue(I)V
 Landroid/icu/util/StringTrieBuilder$ValueNode;->value:I
 Landroid/icu/util/StringTrieBuilder$ValueNode;->write(Landroid/icu/util/StringTrieBuilder;)V
-Landroid/icu/util/StringTrieBuilder;
 Landroid/icu/util/StringTrieBuilder;-><init>()V
 Landroid/icu/util/StringTrieBuilder;->addImpl(Ljava/lang/CharSequence;I)V
 Landroid/icu/util/StringTrieBuilder;->buildImpl(Landroid/icu/util/StringTrieBuilder$Option;)V
@@ -34556,7 +32265,6 @@
 Landroid/icu/util/StringTrieBuilder;->writeDeltaTo(I)I
 Landroid/icu/util/StringTrieBuilder;->writeValueAndFinal(IZ)I
 Landroid/icu/util/StringTrieBuilder;->writeValueAndType(ZII)I
-Landroid/icu/util/STZInfo;
 Landroid/icu/util/STZInfo;-><init>()V
 Landroid/icu/util/STZInfo;->applyTo(Landroid/icu/util/SimpleTimeZone;)V
 Landroid/icu/util/STZInfo;->ea:Z
@@ -34576,7 +32284,6 @@
 Landroid/icu/util/STZInfo;->sy:I
 Landroid/icu/util/TaiwanCalendar;->GREGORIAN_EPOCH:I
 Landroid/icu/util/TaiwanCalendar;->Taiwan_ERA_START:I
-Landroid/icu/util/TimeArrayTimeZoneRule;
 Landroid/icu/util/TimeArrayTimeZoneRule;-><init>(Ljava/lang/String;II[JI)V
 Landroid/icu/util/TimeArrayTimeZoneRule;->getFinalStart(II)Ljava/util/Date;
 Landroid/icu/util/TimeArrayTimeZoneRule;->getFirstStart(II)Ljava/util/Date;
@@ -34591,15 +32298,12 @@
 Landroid/icu/util/TimeArrayTimeZoneRule;->timeType:I
 Landroid/icu/util/TimeUnit;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/icu/util/TimeUnit;->index:I
-Landroid/icu/util/TimeUnitAmount;
 Landroid/icu/util/TimeUnitAmount;-><init>(DLandroid/icu/util/TimeUnit;)V
 Landroid/icu/util/TimeUnitAmount;-><init>(Ljava/lang/Number;Landroid/icu/util/TimeUnit;)V
 Landroid/icu/util/TimeUnitAmount;->getTimeUnit()Landroid/icu/util/TimeUnit;
-Landroid/icu/util/TimeZone$ConstantZone;
 Landroid/icu/util/TimeZone$ConstantZone;-><init>(ILjava/lang/String;)V
 Landroid/icu/util/TimeZone$ConstantZone;->isFrozen:Z
 Landroid/icu/util/TimeZone$ConstantZone;->rawOffset:I
-Landroid/icu/util/TimeZone$SystemTimeZoneType;-><init>()V
 Landroid/icu/util/TimeZone;-><init>(Ljava/lang/String;)V
 Landroid/icu/util/TimeZone;->defaultZone:Landroid/icu/util/TimeZone;
 Landroid/icu/util/TimeZone;->getDefaultTimeZoneType()I
@@ -34616,7 +32320,6 @@
 Landroid/icu/util/TimeZone;->TZIMPL_CONFIG_KEY:Ljava/lang/String;
 Landroid/icu/util/TimeZone;->TZ_IMPL:I
 Landroid/icu/util/TimeZone;->_getDisplayName(IZLandroid/icu/util/ULocale;)Ljava/lang/String;
-Landroid/icu/util/TimeZoneRule;
 Landroid/icu/util/TimeZoneRule;-><init>(Ljava/lang/String;II)V
 Landroid/icu/util/TimeZoneRule;->dstSavings:I
 Landroid/icu/util/TimeZoneRule;->getDSTSavings()I
@@ -34630,7 +32333,6 @@
 Landroid/icu/util/TimeZoneRule;->isTransitionRule()Z
 Landroid/icu/util/TimeZoneRule;->name:Ljava/lang/String;
 Landroid/icu/util/TimeZoneRule;->rawOffset:I
-Landroid/icu/util/TimeZoneTransition;
 Landroid/icu/util/TimeZoneTransition;-><init>(JLandroid/icu/util/TimeZoneRule;Landroid/icu/util/TimeZoneRule;)V
 Landroid/icu/util/TimeZoneTransition;->from:Landroid/icu/util/TimeZoneRule;
 Landroid/icu/util/TimeZoneTransition;->getFrom()Landroid/icu/util/TimeZoneRule;
@@ -34639,8 +32341,6 @@
 Landroid/icu/util/TimeZoneTransition;->time:J
 Landroid/icu/util/TimeZoneTransition;->to:Landroid/icu/util/TimeZoneRule;
 Landroid/icu/util/ULocale$Builder;->_locbld:Landroid/icu/impl/locale/InternalLocaleBuilder;
-Landroid/icu/util/ULocale$Category;-><init>()V
-Landroid/icu/util/ULocale$JDKLocaleHelper;
 Landroid/icu/util/ULocale$JDKLocaleHelper;-><init>()V
 Landroid/icu/util/ULocale$JDKLocaleHelper;->eDISPLAY:Ljava/lang/Object;
 Landroid/icu/util/ULocale$JDKLocaleHelper;->eFORMAT:Ljava/lang/Object;
@@ -34667,13 +32367,10 @@
 Landroid/icu/util/ULocale$JDKLocaleHelper;->toULocale(Ljava/util/Locale;)Landroid/icu/util/ULocale;
 Landroid/icu/util/ULocale$JDKLocaleHelper;->toULocale6(Ljava/util/Locale;)Landroid/icu/util/ULocale;
 Landroid/icu/util/ULocale$JDKLocaleHelper;->toULocale7(Ljava/util/Locale;)Landroid/icu/util/ULocale;
-Landroid/icu/util/ULocale$Minimize;
-Landroid/icu/util/ULocale$Minimize;-><init>()V
 Landroid/icu/util/ULocale$Minimize;->FAVOR_REGION:Landroid/icu/util/ULocale$Minimize;
 Landroid/icu/util/ULocale$Minimize;->FAVOR_SCRIPT:Landroid/icu/util/ULocale$Minimize;
 Landroid/icu/util/ULocale$Minimize;->valueOf(Ljava/lang/String;)Landroid/icu/util/ULocale$Minimize;
 Landroid/icu/util/ULocale$Minimize;->values()[Landroid/icu/util/ULocale$Minimize;
-Landroid/icu/util/ULocale$Type;
 Landroid/icu/util/ULocale$Type;-><init>()V
 Landroid/icu/util/ULocale;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
 Landroid/icu/util/ULocale;-><init>(Ljava/util/Locale;)V
@@ -34730,7 +32427,6 @@
 Landroid/icu/util/ULocale;->UNDERSCORE:C
 Landroid/icu/util/ULocale;->VALID_LOCALE:Landroid/icu/util/ULocale$Type;
 Landroid/icu/util/ULocale;->variantsToKeywords:[[Ljava/lang/String;
-Landroid/icu/util/UniversalTimeScale$TimeScaleData;
 Landroid/icu/util/UniversalTimeScale$TimeScaleData;-><init>(JJJJJJ)V
 Landroid/icu/util/UniversalTimeScale$TimeScaleData;->epochOffset:J
 Landroid/icu/util/UniversalTimeScale$TimeScaleData;->epochOffsetM1:J
@@ -34761,14 +32457,11 @@
 Landroid/icu/util/UniversalTimeScale;->toBigDecimalTrunc(Landroid/icu/math/BigDecimal;I)Landroid/icu/math/BigDecimal;
 Landroid/icu/util/UniversalTimeScale;->toRangeCheck(JI)Landroid/icu/util/UniversalTimeScale$TimeScaleData;
 Landroid/icu/util/UniversalTimeScale;->UNITS_ROUND_VALUE:I
-Landroid/icu/util/UResourceBundle$RootType;
-Landroid/icu/util/UResourceBundle$RootType;-><init>()V
 Landroid/icu/util/UResourceBundle$RootType;->ICU:Landroid/icu/util/UResourceBundle$RootType;
 Landroid/icu/util/UResourceBundle$RootType;->JAVA:Landroid/icu/util/UResourceBundle$RootType;
 Landroid/icu/util/UResourceBundle$RootType;->MISSING:Landroid/icu/util/UResourceBundle$RootType;
 Landroid/icu/util/UResourceBundle$RootType;->valueOf(Ljava/lang/String;)Landroid/icu/util/UResourceBundle$RootType;
 Landroid/icu/util/UResourceBundle$RootType;->values()[Landroid/icu/util/UResourceBundle$RootType;
-Landroid/icu/util/UResourceBundle;
 Landroid/icu/util/UResourceBundle;-><init>()V
 Landroid/icu/util/UResourceBundle;->ARRAY:I
 Landroid/icu/util/UResourceBundle;->BINARY:I
@@ -34814,14 +32507,12 @@
 Landroid/icu/util/UResourceBundle;->setRootType(Ljava/lang/String;Landroid/icu/util/UResourceBundle$RootType;)V
 Landroid/icu/util/UResourceBundle;->STRING:I
 Landroid/icu/util/UResourceBundle;->TABLE:I
-Landroid/icu/util/UResourceBundleIterator;
 Landroid/icu/util/UResourceBundleIterator;-><init>(Landroid/icu/util/UResourceBundle;)V
 Landroid/icu/util/UResourceBundleIterator;->bundle:Landroid/icu/util/UResourceBundle;
 Landroid/icu/util/UResourceBundleIterator;->index:I
 Landroid/icu/util/UResourceBundleIterator;->nextString()Ljava/lang/String;
 Landroid/icu/util/UResourceBundleIterator;->reset()V
 Landroid/icu/util/UResourceBundleIterator;->size:I
-Landroid/icu/util/UResourceTypeMismatchException;
 Landroid/icu/util/UResourceTypeMismatchException;-><init>(Ljava/lang/String;)V
 Landroid/icu/util/VersionInfo;-><init>(I)V
 Landroid/icu/util/VersionInfo;->getInt(IIII)I
@@ -34839,7 +32530,6 @@
 Landroid/icu/util/VersionInfo;->TZDATA_VERSION:Ljava/lang/String;
 Landroid/icu/util/VersionInfo;->UCOL_TAILORINGS_VERSION:Landroid/icu/util/VersionInfo;
 Landroid/icu/util/VersionInfo;->UNICODE_VERSION:Landroid/icu/util/VersionInfo;
-Landroid/icu/util/VTimeZone;
 Landroid/icu/util/VTimeZone;-><init>()V
 Landroid/icu/util/VTimeZone;-><init>(Ljava/lang/String;)V
 Landroid/icu/util/VTimeZone;->appendUNTIL(Ljava/io/Writer;Ljava/lang/String;)V
@@ -34935,7 +32625,6 @@
 Landroid/inputmethodservice/AbstractInputMethodService;->exposeContent(Landroid/view/inputmethod/InputContentInfo;Landroid/view/inputmethod/InputConnection;)V
 Landroid/inputmethodservice/AbstractInputMethodService;->mDispatcherState:Landroid/view/KeyEvent$DispatcherState;
 Landroid/inputmethodservice/AbstractInputMethodService;->mInputMethod:Landroid/view/inputmethod/InputMethod;
-Landroid/inputmethodservice/CompactExtractEditLayout;
 Landroid/inputmethodservice/CompactExtractEditLayout;-><init>(Landroid/content/Context;)V
 Landroid/inputmethodservice/CompactExtractEditLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/inputmethodservice/CompactExtractEditLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
@@ -34947,7 +32636,6 @@
 Landroid/inputmethodservice/CompactExtractEditLayout;->mPerformLayoutChanges:Z
 Landroid/inputmethodservice/CompactExtractEditLayout;->setLayoutHeight(Landroid/view/View;I)V
 Landroid/inputmethodservice/CompactExtractEditLayout;->setLayoutMarginBottom(Landroid/view/View;I)V
-Landroid/inputmethodservice/ExtractEditLayout;
 Landroid/inputmethodservice/ExtractEditLayout;-><init>(Landroid/content/Context;)V
 Landroid/inputmethodservice/ExtractEditLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/inputmethodservice/ExtractEditLayout;->mExtractActionButton:Landroid/widget/Button;
@@ -34960,13 +32648,10 @@
 Landroid/inputmethodservice/ExtractEditText;->setIME(Landroid/inputmethodservice/InputMethodService;)V
 Landroid/inputmethodservice/ExtractEditText;->setSpan_internal(Ljava/lang/Object;III)V
 Landroid/inputmethodservice/ExtractEditText;->viewClicked(Landroid/view/inputmethod/InputMethodManager;)V
-Landroid/inputmethodservice/InputMethodService$BackDispositionMode;
 Landroid/inputmethodservice/InputMethodService$InputMethodImpl;->dispatchStartInputWithToken(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;ZLandroid/os/IBinder;)V
-Landroid/inputmethodservice/InputMethodService$SettingsObserver$ShowImeWithHardKeyboardType;
 Landroid/inputmethodservice/InputMethodService$SettingsObserver$ShowImeWithHardKeyboardType;->FALSE:I
 Landroid/inputmethodservice/InputMethodService$SettingsObserver$ShowImeWithHardKeyboardType;->TRUE:I
 Landroid/inputmethodservice/InputMethodService$SettingsObserver$ShowImeWithHardKeyboardType;->UNKNOWN:I
-Landroid/inputmethodservice/InputMethodService$SettingsObserver;
 Landroid/inputmethodservice/InputMethodService$SettingsObserver;-><init>(Landroid/inputmethodservice/InputMethodService;)V
 Landroid/inputmethodservice/InputMethodService$SettingsObserver;->createAndRegister(Landroid/inputmethodservice/InputMethodService;)Landroid/inputmethodservice/InputMethodService$SettingsObserver;
 Landroid/inputmethodservice/InputMethodService$SettingsObserver;->mService:Landroid/inputmethodservice/InputMethodService;
@@ -35087,7 +32772,6 @@
 Landroid/inputmethodservice/Keyboard;->TAG_KEY:Ljava/lang/String;
 Landroid/inputmethodservice/Keyboard;->TAG_KEYBOARD:Ljava/lang/String;
 Landroid/inputmethodservice/Keyboard;->TAG_ROW:Ljava/lang/String;
-Landroid/inputmethodservice/KeyboardView$SwipeTracker;
 Landroid/inputmethodservice/KeyboardView$SwipeTracker;-><init>()V
 Landroid/inputmethodservice/KeyboardView$SwipeTracker;->addMovement(Landroid/view/MotionEvent;)V
 Landroid/inputmethodservice/KeyboardView$SwipeTracker;->addPoint(FFJ)V
@@ -35209,9 +32893,7 @@
 Landroid/inputmethodservice/KeyboardView;->resetMultiTap()V
 Landroid/inputmethodservice/KeyboardView;->sendAccessibilityEventForUnicodeCharacter(II)V
 Landroid/inputmethodservice/KeyboardView;->showPreview(I)V
-Landroid/inputmethodservice/SoftInputWindow$Callback;
 Landroid/inputmethodservice/SoftInputWindow$Callback;->onBackPressed()V
-Landroid/inputmethodservice/SoftInputWindow;
 Landroid/inputmethodservice/SoftInputWindow;-><init>(Landroid/content/Context;Ljava/lang/String;ILandroid/inputmethodservice/SoftInputWindow$Callback;Landroid/view/KeyEvent$Callback;Landroid/view/KeyEvent$DispatcherState;IIZ)V
 Landroid/inputmethodservice/SoftInputWindow;->getGravity()I
 Landroid/inputmethodservice/SoftInputWindow;->initDockWindow()V
@@ -35247,16 +32929,12 @@
 Landroid/location/Address;->mSubThoroughfare:Ljava/lang/String;
 Landroid/location/Address;->mThoroughfare:Ljava/lang/String;
 Landroid/location/Address;->mUrl:Ljava/lang/String;
-Landroid/location/BatchedLocationCallbackTransport$CallbackTransport;
-Landroid/location/BatchedLocationCallbackTransport$CallbackTransport;-><init>()V
 Landroid/location/BatchedLocationCallbackTransport$CallbackTransport;->onLocationBatch(Ljava/util/List;)V
-Landroid/location/BatchedLocationCallbackTransport;
 Landroid/location/BatchedLocationCallbackTransport;-><init>(Landroid/content/Context;Landroid/location/ILocationManager;)V
 Landroid/location/BatchedLocationCallbackTransport;->mCallbackTransport:Landroid/location/IBatchedLocationCallback;
 Landroid/location/BatchedLocationCallbackTransport;->mLocationManager:Landroid/location/ILocationManager;
 Landroid/location/BatchedLocationCallbackTransport;->registerWithServer()Z
 Landroid/location/BatchedLocationCallbackTransport;->unregisterFromServer()V
-Landroid/location/Country;
 Landroid/location/Country;-><init>(Landroid/location/Country;)V
 Landroid/location/Country;-><init>(Ljava/lang/String;IJ)V
 Landroid/location/Country;->COUNTRY_SOURCE_LOCALE:I
@@ -35270,16 +32948,13 @@
 Landroid/location/Country;->mHashCode:I
 Landroid/location/Country;->mSource:I
 Landroid/location/Country;->mTimestamp:J
-Landroid/location/CountryDetector$ListenerTransport;
 Landroid/location/CountryDetector$ListenerTransport;-><init>(Landroid/location/CountryListener;Landroid/os/Looper;)V
 Landroid/location/CountryDetector$ListenerTransport;->mHandler:Landroid/os/Handler;
 Landroid/location/CountryDetector$ListenerTransport;->mListener:Landroid/location/CountryListener;
 Landroid/location/CountryDetector$ListenerTransport;->onCountryDetected(Landroid/location/Country;)V
-Landroid/location/CountryDetector;
 Landroid/location/CountryDetector;->mListeners:Ljava/util/HashMap;
 Landroid/location/CountryDetector;->mService:Landroid/location/ICountryDetector;
 Landroid/location/CountryDetector;->TAG:Ljava/lang/String;
-Landroid/location/CountryListener;
 Landroid/location/Criteria;->accuracyToString(I)Ljava/lang/String;
 Landroid/location/Criteria;->mAltitudeRequired:Z
 Landroid/location/Criteria;->mBearingAccuracy:I
@@ -35291,18 +32966,15 @@
 Landroid/location/Criteria;->mSpeedRequired:Z
 Landroid/location/Criteria;->mVerticalAccuracy:I
 Landroid/location/Criteria;->powerToString(I)Ljava/lang/String;
-Landroid/location/FusedBatchOptions$BatchFlags;
 Landroid/location/FusedBatchOptions$BatchFlags;-><init>()V
 Landroid/location/FusedBatchOptions$BatchFlags;->CALLBACK_ON_LOCATION_FIX:I
 Landroid/location/FusedBatchOptions$BatchFlags;->WAKEUP_ON_FIFO_FULL:I
-Landroid/location/FusedBatchOptions$SourceTechnologies;
 Landroid/location/FusedBatchOptions$SourceTechnologies;-><init>()V
 Landroid/location/FusedBatchOptions$SourceTechnologies;->BLUETOOTH:I
 Landroid/location/FusedBatchOptions$SourceTechnologies;->CELL:I
 Landroid/location/FusedBatchOptions$SourceTechnologies;->GNSS:I
 Landroid/location/FusedBatchOptions$SourceTechnologies;->SENSORS:I
 Landroid/location/FusedBatchOptions$SourceTechnologies;->WIFI:I
-Landroid/location/FusedBatchOptions;
 Landroid/location/FusedBatchOptions;-><init>()V
 Landroid/location/FusedBatchOptions;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/location/FusedBatchOptions;->getFlags()I
@@ -35327,13 +32999,11 @@
 Landroid/location/Geocoder;->mParams:Landroid/location/GeocoderParams;
 Landroid/location/Geocoder;->mService:Landroid/location/ILocationManager;
 Landroid/location/Geocoder;->TAG:Ljava/lang/String;
-Landroid/location/GeocoderParams;
 Landroid/location/GeocoderParams;-><init>()V
 Landroid/location/GeocoderParams;-><init>(Landroid/content/Context;Ljava/util/Locale;)V
 Landroid/location/GeocoderParams;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/location/GeocoderParams;->mLocale:Ljava/util/Locale;
 Landroid/location/GeocoderParams;->mPackageName:Ljava/lang/String;
-Landroid/location/Geofence;
 Landroid/location/Geofence;-><init>(DDF)V
 Landroid/location/Geofence;->checkLatLong(DD)V
 Landroid/location/Geofence;->checkRadius(F)V
@@ -35371,9 +33041,6 @@
 Landroid/location/GnssClock;->mTimeUncertaintyNanos:D
 Landroid/location/GnssClock;->resetFlag(I)V
 Landroid/location/GnssClock;->setFlag(I)V
-Landroid/location/GnssMeasurement$AdrState;
-Landroid/location/GnssMeasurement$MultipathIndicator;
-Landroid/location/GnssMeasurement$State;
 Landroid/location/GnssMeasurement;->getAccumulatedDeltaRangeStateString()Ljava/lang/String;
 Landroid/location/GnssMeasurement;->getMultipathIndicatorString()Ljava/lang/String;
 Landroid/location/GnssMeasurement;->getStateString()Ljava/lang/String;
@@ -35409,21 +33076,15 @@
 Landroid/location/GnssMeasurement;->resetFlag(I)V
 Landroid/location/GnssMeasurement;->setFlag(I)V
 Landroid/location/GnssMeasurement;->STATE_ALL:I
-Landroid/location/GnssMeasurementCallbackTransport$ListenerTransport;
-Landroid/location/GnssMeasurementCallbackTransport$ListenerTransport;-><init>()V
 Landroid/location/GnssMeasurementCallbackTransport$ListenerTransport;->onGnssMeasurementsReceived(Landroid/location/GnssMeasurementsEvent;)V
 Landroid/location/GnssMeasurementCallbackTransport$ListenerTransport;->onStatusChanged(I)V
-Landroid/location/GnssMeasurementCallbackTransport;
 Landroid/location/GnssMeasurementCallbackTransport;-><init>(Landroid/content/Context;Landroid/location/ILocationManager;)V
 Landroid/location/GnssMeasurementCallbackTransport;->mListenerTransport:Landroid/location/IGnssMeasurementsListener;
 Landroid/location/GnssMeasurementCallbackTransport;->mLocationManager:Landroid/location/ILocationManager;
 Landroid/location/GnssMeasurementCallbackTransport;->registerWithServer()Z
 Landroid/location/GnssMeasurementCallbackTransport;->unregisterFromServer()V
-Landroid/location/GnssMeasurementsEvent$Callback$GnssMeasurementsStatus;
 Landroid/location/GnssMeasurementsEvent;->mClock:Landroid/location/GnssClock;
 Landroid/location/GnssMeasurementsEvent;->mReadOnlyMeasurements:Ljava/util/Collection;
-Landroid/location/GnssNavigationMessage$Callback$GnssNavigationMessageStatus;
-Landroid/location/GnssNavigationMessage$GnssNavigationMessageType;
 Landroid/location/GnssNavigationMessage;->EMPTY_ARRAY:[B
 Landroid/location/GnssNavigationMessage;->getStatusString()Ljava/lang/String;
 Landroid/location/GnssNavigationMessage;->getTypeString()Ljava/lang/String;
@@ -35434,17 +33095,13 @@
 Landroid/location/GnssNavigationMessage;->mSubmessageId:I
 Landroid/location/GnssNavigationMessage;->mSvid:I
 Landroid/location/GnssNavigationMessage;->mType:I
-Landroid/location/GnssNavigationMessageCallbackTransport$ListenerTransport;
-Landroid/location/GnssNavigationMessageCallbackTransport$ListenerTransport;-><init>()V
 Landroid/location/GnssNavigationMessageCallbackTransport$ListenerTransport;->onGnssNavigationMessageReceived(Landroid/location/GnssNavigationMessage;)V
 Landroid/location/GnssNavigationMessageCallbackTransport$ListenerTransport;->onStatusChanged(I)V
-Landroid/location/GnssNavigationMessageCallbackTransport;
 Landroid/location/GnssNavigationMessageCallbackTransport;-><init>(Landroid/content/Context;Landroid/location/ILocationManager;)V
 Landroid/location/GnssNavigationMessageCallbackTransport;->mListenerTransport:Landroid/location/IGnssNavigationMessageListener;
 Landroid/location/GnssNavigationMessageCallbackTransport;->mLocationManager:Landroid/location/ILocationManager;
 Landroid/location/GnssNavigationMessageCallbackTransport;->registerWithServer()Z
 Landroid/location/GnssNavigationMessageCallbackTransport;->unregisterFromServer()V
-Landroid/location/GnssStatus$ConstellationType;
 Landroid/location/GnssStatus;-><init>(I[I[F[F[F[F)V
 Landroid/location/GnssStatus;->CONSTELLATION_TYPE_MASK:I
 Landroid/location/GnssStatus;->CONSTELLATION_TYPE_SHIFT_WIDTH:I
@@ -35571,8 +33228,6 @@
 Landroid/location/GpsSatellite;->mUsedInFix:Z
 Landroid/location/GpsSatellite;->mValid:Z
 Landroid/location/GpsSatellite;->setStatus(Landroid/location/GpsSatellite;)V
-Landroid/location/GpsStatus$SatelliteIterator;
-Landroid/location/GpsStatus$SatelliteIterator;-><init>()V
 Landroid/location/GpsStatus$SatelliteIterator;->mIndex:I
 Landroid/location/GpsStatus$SatelliteIterator;->mSatellitesCount:I
 Landroid/location/GpsStatus;-><init>()V
@@ -35586,47 +33241,37 @@
 Landroid/location/GpsStatus;->SBAS_SVID_OFFSET:I
 Landroid/location/GpsStatus;->setStatus(I[I[F[F[F)V
 Landroid/location/GpsStatus;->setStatus(Landroid/location/GnssStatus;I)V
-Landroid/location/IBatchedLocationCallback$Stub$Proxy;
 Landroid/location/IBatchedLocationCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/location/IBatchedLocationCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/location/IBatchedLocationCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/location/IBatchedLocationCallback$Stub$Proxy;->onLocationBatch(Ljava/util/List;)V
-Landroid/location/IBatchedLocationCallback$Stub;
 Landroid/location/IBatchedLocationCallback$Stub;-><init>()V
 Landroid/location/IBatchedLocationCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/IBatchedLocationCallback;
 Landroid/location/IBatchedLocationCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/location/IBatchedLocationCallback$Stub;->TRANSACTION_onLocationBatch:I
-Landroid/location/IBatchedLocationCallback;
 Landroid/location/IBatchedLocationCallback;->onLocationBatch(Ljava/util/List;)V
-Landroid/location/ICountryDetector$Stub$Proxy;
 Landroid/location/ICountryDetector$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/location/ICountryDetector$Stub$Proxy;->addCountryListener(Landroid/location/ICountryListener;)V
 Landroid/location/ICountryDetector$Stub$Proxy;->detectCountry()Landroid/location/Country;
 Landroid/location/ICountryDetector$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/location/ICountryDetector$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/location/ICountryDetector$Stub$Proxy;->removeCountryListener(Landroid/location/ICountryListener;)V
-Landroid/location/ICountryDetector$Stub;
 Landroid/location/ICountryDetector$Stub;-><init>()V
 Landroid/location/ICountryDetector$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/location/ICountryDetector$Stub;->TRANSACTION_addCountryListener:I
 Landroid/location/ICountryDetector$Stub;->TRANSACTION_detectCountry:I
 Landroid/location/ICountryDetector$Stub;->TRANSACTION_removeCountryListener:I
-Landroid/location/ICountryDetector;
 Landroid/location/ICountryDetector;->addCountryListener(Landroid/location/ICountryListener;)V
 Landroid/location/ICountryDetector;->detectCountry()Landroid/location/Country;
 Landroid/location/ICountryDetector;->removeCountryListener(Landroid/location/ICountryListener;)V
-Landroid/location/ICountryListener$Stub$Proxy;
 Landroid/location/ICountryListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/location/ICountryListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/location/ICountryListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/location/ICountryListener$Stub$Proxy;->onCountryDetected(Landroid/location/Country;)V
-Landroid/location/ICountryListener$Stub;
 Landroid/location/ICountryListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/ICountryListener;
 Landroid/location/ICountryListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/location/ICountryListener$Stub;->TRANSACTION_onCountryDetected:I
-Landroid/location/ICountryListener;
 Landroid/location/ICountryListener;->onCountryDetected(Landroid/location/Country;)V
-Landroid/location/IFusedGeofenceHardware$Stub$Proxy;
 Landroid/location/IFusedGeofenceHardware$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/location/IFusedGeofenceHardware$Stub$Proxy;->addGeofences([Landroid/hardware/location/GeofenceHardwareRequestParcelable;)V
 Landroid/location/IFusedGeofenceHardware$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -35636,7 +33281,6 @@
 Landroid/location/IFusedGeofenceHardware$Stub$Proxy;->pauseMonitoringGeofence(I)V
 Landroid/location/IFusedGeofenceHardware$Stub$Proxy;->removeGeofences([I)V
 Landroid/location/IFusedGeofenceHardware$Stub$Proxy;->resumeMonitoringGeofence(II)V
-Landroid/location/IFusedGeofenceHardware$Stub;
 Landroid/location/IFusedGeofenceHardware$Stub;-><init>()V
 Landroid/location/IFusedGeofenceHardware$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/IFusedGeofenceHardware;
 Landroid/location/IFusedGeofenceHardware$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -35646,65 +33290,51 @@
 Landroid/location/IFusedGeofenceHardware$Stub;->TRANSACTION_pauseMonitoringGeofence:I
 Landroid/location/IFusedGeofenceHardware$Stub;->TRANSACTION_removeGeofences:I
 Landroid/location/IFusedGeofenceHardware$Stub;->TRANSACTION_resumeMonitoringGeofence:I
-Landroid/location/IFusedGeofenceHardware;
 Landroid/location/IFusedGeofenceHardware;->addGeofences([Landroid/hardware/location/GeofenceHardwareRequestParcelable;)V
 Landroid/location/IFusedGeofenceHardware;->isSupported()Z
 Landroid/location/IFusedGeofenceHardware;->modifyGeofenceOptions(IIIIII)V
 Landroid/location/IFusedGeofenceHardware;->pauseMonitoringGeofence(I)V
 Landroid/location/IFusedGeofenceHardware;->removeGeofences([I)V
 Landroid/location/IFusedGeofenceHardware;->resumeMonitoringGeofence(II)V
-Landroid/location/IGeocodeProvider$Stub$Proxy;
 Landroid/location/IGeocodeProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/location/IGeocodeProvider$Stub$Proxy;->getFromLocation(DDILandroid/location/GeocoderParams;Ljava/util/List;)Ljava/lang/String;
 Landroid/location/IGeocodeProvider$Stub$Proxy;->getFromLocationName(Ljava/lang/String;DDDDILandroid/location/GeocoderParams;Ljava/util/List;)Ljava/lang/String;
 Landroid/location/IGeocodeProvider$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/location/IGeocodeProvider$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/location/IGeocodeProvider$Stub;
 Landroid/location/IGeocodeProvider$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/location/IGeocodeProvider$Stub;->TRANSACTION_getFromLocation:I
 Landroid/location/IGeocodeProvider$Stub;->TRANSACTION_getFromLocationName:I
-Landroid/location/IGeocodeProvider;
-Landroid/location/IGeofenceProvider$Stub$Proxy;
 Landroid/location/IGeofenceProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/location/IGeofenceProvider$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/location/IGeofenceProvider$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/location/IGeofenceProvider$Stub$Proxy;->setGeofenceHardware(Landroid/hardware/location/IGeofenceHardware;)V
-Landroid/location/IGeofenceProvider$Stub;
 Landroid/location/IGeofenceProvider$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/IGeofenceProvider;
 Landroid/location/IGeofenceProvider$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/location/IGeofenceProvider$Stub;->TRANSACTION_setGeofenceHardware:I
-Landroid/location/IGeofenceProvider;
-Landroid/location/IGnssMeasurementsListener$Stub$Proxy;
 Landroid/location/IGnssMeasurementsListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/location/IGnssMeasurementsListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/location/IGnssMeasurementsListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/location/IGnssMeasurementsListener$Stub$Proxy;->onGnssMeasurementsReceived(Landroid/location/GnssMeasurementsEvent;)V
 Landroid/location/IGnssMeasurementsListener$Stub$Proxy;->onStatusChanged(I)V
-Landroid/location/IGnssMeasurementsListener$Stub;
 Landroid/location/IGnssMeasurementsListener$Stub;-><init>()V
 Landroid/location/IGnssMeasurementsListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/IGnssMeasurementsListener;
 Landroid/location/IGnssMeasurementsListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/location/IGnssMeasurementsListener$Stub;->TRANSACTION_onGnssMeasurementsReceived:I
 Landroid/location/IGnssMeasurementsListener$Stub;->TRANSACTION_onStatusChanged:I
-Landroid/location/IGnssMeasurementsListener;
 Landroid/location/IGnssMeasurementsListener;->onGnssMeasurementsReceived(Landroid/location/GnssMeasurementsEvent;)V
 Landroid/location/IGnssMeasurementsListener;->onStatusChanged(I)V
-Landroid/location/IGnssNavigationMessageListener$Stub$Proxy;
 Landroid/location/IGnssNavigationMessageListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/location/IGnssNavigationMessageListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/location/IGnssNavigationMessageListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/location/IGnssNavigationMessageListener$Stub$Proxy;->onGnssNavigationMessageReceived(Landroid/location/GnssNavigationMessage;)V
 Landroid/location/IGnssNavigationMessageListener$Stub$Proxy;->onStatusChanged(I)V
-Landroid/location/IGnssNavigationMessageListener$Stub;
 Landroid/location/IGnssNavigationMessageListener$Stub;-><init>()V
 Landroid/location/IGnssNavigationMessageListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/IGnssNavigationMessageListener;
 Landroid/location/IGnssNavigationMessageListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/location/IGnssNavigationMessageListener$Stub;->TRANSACTION_onGnssNavigationMessageReceived:I
 Landroid/location/IGnssNavigationMessageListener$Stub;->TRANSACTION_onStatusChanged:I
-Landroid/location/IGnssNavigationMessageListener;
 Landroid/location/IGnssNavigationMessageListener;->onGnssNavigationMessageReceived(Landroid/location/GnssNavigationMessage;)V
 Landroid/location/IGnssNavigationMessageListener;->onStatusChanged(I)V
-Landroid/location/IGnssStatusListener$Stub$Proxy;
 Landroid/location/IGnssStatusListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/location/IGnssStatusListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/location/IGnssStatusListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -35713,7 +33343,6 @@
 Landroid/location/IGnssStatusListener$Stub$Proxy;->onGnssStopped()V
 Landroid/location/IGnssStatusListener$Stub$Proxy;->onNmeaReceived(JLjava/lang/String;)V
 Landroid/location/IGnssStatusListener$Stub$Proxy;->onSvStatusChanged(I[I[F[F[F[F)V
-Landroid/location/IGnssStatusListener$Stub;
 Landroid/location/IGnssStatusListener$Stub;-><init>()V
 Landroid/location/IGnssStatusListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/IGnssStatusListener;
 Landroid/location/IGnssStatusListener$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -35722,28 +33351,23 @@
 Landroid/location/IGnssStatusListener$Stub;->TRANSACTION_onGnssStopped:I
 Landroid/location/IGnssStatusListener$Stub;->TRANSACTION_onNmeaReceived:I
 Landroid/location/IGnssStatusListener$Stub;->TRANSACTION_onSvStatusChanged:I
-Landroid/location/IGnssStatusListener;
 Landroid/location/IGnssStatusListener;->onFirstFix(I)V
 Landroid/location/IGnssStatusListener;->onGnssStarted()V
 Landroid/location/IGnssStatusListener;->onGnssStopped()V
 Landroid/location/IGnssStatusListener;->onNmeaReceived(JLjava/lang/String;)V
 Landroid/location/IGnssStatusListener;->onSvStatusChanged(I[I[F[F[F[F)V
-Landroid/location/IGnssStatusProvider$Stub$Proxy;
 Landroid/location/IGnssStatusProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/location/IGnssStatusProvider$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/location/IGnssStatusProvider$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/location/IGnssStatusProvider$Stub$Proxy;->registerGnssStatusCallback(Landroid/location/IGnssStatusListener;)V
 Landroid/location/IGnssStatusProvider$Stub$Proxy;->unregisterGnssStatusCallback(Landroid/location/IGnssStatusListener;)V
-Landroid/location/IGnssStatusProvider$Stub;
 Landroid/location/IGnssStatusProvider$Stub;-><init>()V
 Landroid/location/IGnssStatusProvider$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/IGnssStatusProvider;
 Landroid/location/IGnssStatusProvider$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/location/IGnssStatusProvider$Stub;->TRANSACTION_registerGnssStatusCallback:I
 Landroid/location/IGnssStatusProvider$Stub;->TRANSACTION_unregisterGnssStatusCallback:I
-Landroid/location/IGnssStatusProvider;
 Landroid/location/IGnssStatusProvider;->registerGnssStatusCallback(Landroid/location/IGnssStatusListener;)V
 Landroid/location/IGnssStatusProvider;->unregisterGnssStatusCallback(Landroid/location/IGnssStatusListener;)V
-Landroid/location/IGpsGeofenceHardware$Stub$Proxy;
 Landroid/location/IGpsGeofenceHardware$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/location/IGpsGeofenceHardware$Stub$Proxy;->addCircularHardwareGeofence(IDDDIIII)Z
 Landroid/location/IGpsGeofenceHardware$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -35752,7 +33376,6 @@
 Landroid/location/IGpsGeofenceHardware$Stub$Proxy;->pauseHardwareGeofence(I)Z
 Landroid/location/IGpsGeofenceHardware$Stub$Proxy;->removeHardwareGeofence(I)Z
 Landroid/location/IGpsGeofenceHardware$Stub$Proxy;->resumeHardwareGeofence(II)Z
-Landroid/location/IGpsGeofenceHardware$Stub;
 Landroid/location/IGpsGeofenceHardware$Stub;-><init>()V
 Landroid/location/IGpsGeofenceHardware$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/IGpsGeofenceHardware;
 Landroid/location/IGpsGeofenceHardware$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -35761,26 +33384,21 @@
 Landroid/location/IGpsGeofenceHardware$Stub;->TRANSACTION_pauseHardwareGeofence:I
 Landroid/location/IGpsGeofenceHardware$Stub;->TRANSACTION_removeHardwareGeofence:I
 Landroid/location/IGpsGeofenceHardware$Stub;->TRANSACTION_resumeHardwareGeofence:I
-Landroid/location/IGpsGeofenceHardware;
 Landroid/location/IGpsGeofenceHardware;->addCircularHardwareGeofence(IDDDIIII)Z
 Landroid/location/IGpsGeofenceHardware;->isHardwareGeofenceSupported()Z
 Landroid/location/IGpsGeofenceHardware;->pauseHardwareGeofence(I)Z
 Landroid/location/IGpsGeofenceHardware;->removeHardwareGeofence(I)Z
 Landroid/location/IGpsGeofenceHardware;->resumeHardwareGeofence(II)Z
-Landroid/location/ILocationListener$Stub$Proxy;
 Landroid/location/ILocationListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/location/ILocationListener$Stub$Proxy;->onLocationChanged(Landroid/location/Location;)V
 Landroid/location/ILocationListener$Stub$Proxy;->onProviderDisabled(Ljava/lang/String;)V
 Landroid/location/ILocationListener$Stub$Proxy;->onProviderEnabled(Ljava/lang/String;)V
 Landroid/location/ILocationListener$Stub$Proxy;->onStatusChanged(Ljava/lang/String;ILandroid/os/Bundle;)V
-Landroid/location/ILocationListener$Stub;
 Landroid/location/ILocationListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/location/ILocationListener$Stub;->TRANSACTION_onLocationChanged:I
 Landroid/location/ILocationListener$Stub;->TRANSACTION_onProviderDisabled:I
 Landroid/location/ILocationListener$Stub;->TRANSACTION_onProviderEnabled:I
 Landroid/location/ILocationListener$Stub;->TRANSACTION_onStatusChanged:I
-Landroid/location/ILocationListener;
-Landroid/location/ILocationManager$Stub$Proxy;
 Landroid/location/ILocationManager$Stub$Proxy;->addGnssBatchingCallback(Landroid/location/IBatchedLocationCallback;Ljava/lang/String;)Z
 Landroid/location/ILocationManager$Stub$Proxy;->addGnssMeasurementsListener(Landroid/location/IGnssMeasurementsListener;Ljava/lang/String;)Z
 Landroid/location/ILocationManager$Stub$Proxy;->addGnssNavigationMessageListener(Landroid/location/IGnssNavigationMessageListener;Ljava/lang/String;)Z
@@ -35830,7 +33448,6 @@
 Landroid/location/ILocationManager$Stub$Proxy;->startGnssBatch(JZLjava/lang/String;)Z
 Landroid/location/ILocationManager$Stub$Proxy;->stopGnssBatch()Z
 Landroid/location/ILocationManager$Stub$Proxy;->unregisterGnssStatusCallback(Landroid/location/IGnssStatusListener;)V
-Landroid/location/ILocationManager$Stub;
 Landroid/location/ILocationManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/location/ILocationManager$Stub;->TRANSACTION_addGnssBatchingCallback:I
 Landroid/location/ILocationManager$Stub;->TRANSACTION_addGnssMeasurementsListener:I
@@ -35878,7 +33495,6 @@
 Landroid/location/ILocationManager$Stub;->TRANSACTION_startGnssBatch:I
 Landroid/location/ILocationManager$Stub;->TRANSACTION_stopGnssBatch:I
 Landroid/location/ILocationManager$Stub;->TRANSACTION_unregisterGnssStatusCallback:I
-Landroid/location/ILocationManager;
 Landroid/location/ILocationManager;->addGnssBatchingCallback(Landroid/location/IBatchedLocationCallback;Ljava/lang/String;)Z
 Landroid/location/ILocationManager;->addGnssMeasurementsListener(Landroid/location/IGnssMeasurementsListener;Ljava/lang/String;)Z
 Landroid/location/ILocationManager;->addGnssNavigationMessageListener(Landroid/location/IGnssNavigationMessageListener;Ljava/lang/String;)Z
@@ -35923,19 +33539,14 @@
 Landroid/location/ILocationManager;->startGnssBatch(JZLjava/lang/String;)Z
 Landroid/location/ILocationManager;->stopGnssBatch()Z
 Landroid/location/ILocationManager;->unregisterGnssStatusCallback(Landroid/location/IGnssStatusListener;)V
-Landroid/location/INetInitiatedListener$Stub$Proxy;
 Landroid/location/INetInitiatedListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/location/INetInitiatedListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/location/INetInitiatedListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/location/INetInitiatedListener$Stub$Proxy;->sendNiResponse(II)Z
-Landroid/location/INetInitiatedListener$Stub;
 Landroid/location/INetInitiatedListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/INetInitiatedListener;
 Landroid/location/INetInitiatedListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/location/INetInitiatedListener$Stub;->TRANSACTION_sendNiResponse:I
-Landroid/location/INetInitiatedListener;
-Landroid/location/LocalListenerHelper$ListenerOperation;
 Landroid/location/LocalListenerHelper$ListenerOperation;->execute(Ljava/lang/Object;)V
-Landroid/location/LocalListenerHelper;
 Landroid/location/LocalListenerHelper;-><init>(Landroid/content/Context;Ljava/lang/String;)V
 Landroid/location/LocalListenerHelper;->add(Ljava/lang/Object;Landroid/os/Handler;)Z
 Landroid/location/LocalListenerHelper;->executeOperation(Landroid/location/LocalListenerHelper$ListenerOperation;Ljava/lang/Object;)V
@@ -35947,7 +33558,6 @@
 Landroid/location/LocalListenerHelper;->registerWithServer()Z
 Landroid/location/LocalListenerHelper;->remove(Ljava/lang/Object;)V
 Landroid/location/LocalListenerHelper;->unregisterFromServer()V
-Landroid/location/Location$BearingDistanceCache;
 Landroid/location/Location$BearingDistanceCache;-><init>()V
 Landroid/location/Location$BearingDistanceCache;->mDistance:F
 Landroid/location/Location$BearingDistanceCache;->mFinalBearing:F
@@ -35981,21 +33591,8 @@
 Landroid/location/Location;->mTime:J
 Landroid/location/Location;->mVerticalAccuracyMeters:F
 Landroid/location/Location;->sBearingDistanceCache:Ljava/lang/ThreadLocal;
-Landroid/location/LocationManager$GnssStatusListenerTransport$GnssHandler;
-Landroid/location/LocationManager$GnssStatusListenerTransport$GnssHandler;-><init>(Landroid/os/Handler;)V
-Landroid/location/LocationManager$GnssStatusListenerTransport$Nmea;
-Landroid/location/LocationManager$GnssStatusListenerTransport$Nmea;-><init>(JLjava/lang/String;)V
 Landroid/location/LocationManager$GnssStatusListenerTransport$Nmea;->mNmea:Ljava/lang/String;
 Landroid/location/LocationManager$GnssStatusListenerTransport$Nmea;->mTimestamp:J
-Landroid/location/LocationManager$GnssStatusListenerTransport;
-Landroid/location/LocationManager$GnssStatusListenerTransport;-><init>(Landroid/location/GnssStatus$Callback;)V
-Landroid/location/LocationManager$GnssStatusListenerTransport;-><init>(Landroid/location/GnssStatus$Callback;Landroid/os/Handler;)V
-Landroid/location/LocationManager$GnssStatusListenerTransport;-><init>(Landroid/location/GpsStatus$Listener;)V
-Landroid/location/LocationManager$GnssStatusListenerTransport;-><init>(Landroid/location/GpsStatus$Listener;Landroid/os/Handler;)V
-Landroid/location/LocationManager$GnssStatusListenerTransport;-><init>(Landroid/location/GpsStatus$NmeaListener;)V
-Landroid/location/LocationManager$GnssStatusListenerTransport;-><init>(Landroid/location/GpsStatus$NmeaListener;Landroid/os/Handler;)V
-Landroid/location/LocationManager$GnssStatusListenerTransport;-><init>(Landroid/location/OnNmeaMessageListener;)V
-Landroid/location/LocationManager$GnssStatusListenerTransport;-><init>(Landroid/location/OnNmeaMessageListener;Landroid/os/Handler;)V
 Landroid/location/LocationManager$GnssStatusListenerTransport;->mGnssCallback:Landroid/location/GnssStatus$Callback;
 Landroid/location/LocationManager$GnssStatusListenerTransport;->mGnssHandler:Landroid/os/Handler;
 Landroid/location/LocationManager$GnssStatusListenerTransport;->mGnssNmeaListener:Landroid/location/OnNmeaMessageListener;
@@ -36008,8 +33605,6 @@
 Landroid/location/LocationManager$GnssStatusListenerTransport;->onGnssStopped()V
 Landroid/location/LocationManager$GnssStatusListenerTransport;->onNmeaReceived(JLjava/lang/String;)V
 Landroid/location/LocationManager$GnssStatusListenerTransport;->onSvStatusChanged(I[I[F[F[F[F)V
-Landroid/location/LocationManager$ListenerTransport;
-Landroid/location/LocationManager$ListenerTransport;-><init>(Landroid/location/LocationListener;Landroid/os/Looper;)V
 Landroid/location/LocationManager$ListenerTransport;->mListener:Landroid/location/LocationListener;
 Landroid/location/LocationManager$ListenerTransport;->mListenerHandler:Landroid/os/Handler;
 Landroid/location/LocationManager$ListenerTransport;->onLocationChanged(Landroid/location/Location;)V
@@ -36219,7 +33814,6 @@
 Landroid/Manifest$permission;->WRITE_SMS:Ljava/lang/String;
 Landroid/Manifest$permission;->WRITE_SOCIAL_STREAM:Ljava/lang/String;
 Landroid/Manifest$permission;->WRITE_USER_DICTIONARY:Ljava/lang/String;
-Landroid/media/AmrInputStream;
 Landroid/media/AmrInputStream;->mBuf:[B
 Landroid/media/AmrInputStream;->mBufIn:I
 Landroid/media/AmrInputStream;->mBufOut:I
@@ -36231,7 +33825,6 @@
 Landroid/media/AmrInputStream;->mSawOutputEOS:Z
 Landroid/media/AmrInputStream;->SAMPLES_PER_FRAME:I
 Landroid/media/AmrInputStream;->TAG:Ljava/lang/String;
-Landroid/media/AsyncPlayer$Command;
 Landroid/media/AsyncPlayer$Command;-><init>()V
 Landroid/media/AsyncPlayer$Command;->attributes:Landroid/media/AudioAttributes;
 Landroid/media/AsyncPlayer$Command;->code:I
@@ -36239,8 +33832,6 @@
 Landroid/media/AsyncPlayer$Command;->looping:Z
 Landroid/media/AsyncPlayer$Command;->requestTime:J
 Landroid/media/AsyncPlayer$Command;->uri:Landroid/net/Uri;
-Landroid/media/AsyncPlayer$Thread;
-Landroid/media/AsyncPlayer$Thread;-><init>()V
 Landroid/media/AsyncPlayer;->acquireWakeLock()V
 Landroid/media/AsyncPlayer;->enqueueLocked(Landroid/media/AsyncPlayer$Command;)V
 Landroid/media/AsyncPlayer;->mCmdQueue:Ljava/util/LinkedList;
@@ -36254,8 +33845,6 @@
 Landroid/media/AsyncPlayer;->releaseWakeLock()V
 Landroid/media/AsyncPlayer;->startSound(Landroid/media/AsyncPlayer$Command;)V
 Landroid/media/AsyncPlayer;->STOP:I
-Landroid/media/AudioAttributes$AttributeContentType;
-Landroid/media/AudioAttributes$AttributeUsage;
 Landroid/media/AudioAttributes$Builder;->mBundle:Landroid/os/Bundle;
 Landroid/media/AudioAttributes$Builder;->mContentType:I
 Landroid/media/AudioAttributes$Builder;->mFlags:I
@@ -36263,7 +33852,6 @@
 Landroid/media/AudioAttributes$Builder;->mTags:Ljava/util/HashSet;
 Landroid/media/AudioAttributes$Builder;->mUsage:I
 Landroid/media/AudioAttributes$Builder;->replaceFlags(I)Landroid/media/AudioAttributes$Builder;
-Landroid/media/Audioattributes;
 Landroid/media/AudioAttributes;-><init>()V
 Landroid/media/Audioattributes;-><init>()V
 Landroid/media/AudioAttributes;-><init>(Landroid/os/Parcel;)V
@@ -36317,13 +33905,11 @@
 Landroid/media/Audioattributes;->VOICE_COMMUNICATION:I
 Landroid/media/Audioattributes;->VOICE_COMMUNICATION_SIGNALLING:I
 Landroid/media/AudioAttributes;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/media/AudioAttributesProto;
 Landroid/media/AudioAttributesProto;-><init>()V
 Landroid/media/AudioAttributesProto;->CONTENT_TYPE:J
 Landroid/media/AudioAttributesProto;->FLAGS:J
 Landroid/media/AudioAttributesProto;->TAGS:J
 Landroid/media/AudioAttributesProto;->USAGE:J
-Landroid/media/AudioDeviceInfo$AudioDeviceTypeOut;
 Landroid/media/AudioDeviceInfo;-><init>(Landroid/media/AudioDevicePort;)V
 Landroid/media/AudioDeviceInfo;->convertDeviceTypeToInternalDevice(I)I
 Landroid/media/AudioDeviceInfo;->convertInternalDeviceToDeviceType(I)I
@@ -36332,12 +33918,10 @@
 Landroid/media/AudioDeviceInfo;->INT_TO_EXT_DEVICE_MAPPING:Landroid/util/SparseIntArray;
 Landroid/media/AudioDeviceInfo;->isValidAudioDeviceTypeOut(I)Z
 Landroid/media/AudioDeviceInfo;->mPort:Landroid/media/AudioDevicePort;
-Landroid/media/AudioDevicePort;
 Landroid/media/AudioDevicePort;->address()Ljava/lang/String;
 Landroid/media/AudioDevicePort;->buildConfig(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioDevicePortConfig;
 Landroid/media/AudioDevicePort;->mAddress:Ljava/lang/String;
 Landroid/media/AudioDevicePort;->mType:I
-Landroid/media/AudioDevicePortConfig;
 Landroid/media/AudioDevicePortConfig;-><init>(Landroid/media/AudioDevicePortConfig;)V
 Landroid/media/AudioDevicePortConfig;->port()Landroid/media/AudioDevicePort;
 Landroid/media/AudioFocusInfo;-><init>(Landroid/media/AudioAttributes;ILjava/lang/String;Ljava/lang/String;IIII)V
@@ -36379,8 +33963,6 @@
 Landroid/media/AudioFormat$Builder;->mEncoding:I
 Landroid/media/AudioFormat$Builder;->mPropertySetMask:I
 Landroid/media/AudioFormat$Builder;->mSampleRate:I
-Landroid/media/AudioFormat$Encoding;
-Landroid/media/AudioFormat$SurroundSoundEncoding;
 Landroid/media/AudioFormat;-><init>(I)V
 Landroid/media/AudioFormat;-><init>(Landroid/os/Parcel;)V
 Landroid/media/AudioFormat;->AUDIO_FORMAT_HAS_PROPERTY_CHANNEL_INDEX_MASK:I
@@ -36416,15 +33998,12 @@
 Landroid/media/AudioFormat;->toLogFriendlyString()Ljava/lang/String;
 Landroid/media/audiofx/AcousticEchoCanceler;-><init>(I)V
 Landroid/media/audiofx/AcousticEchoCanceler;->TAG:Ljava/lang/String;
-Landroid/media/audiofx/AudioEffect$NativeEventHandler;
-Landroid/media/audiofx/AudioEffect$NativeEventHandler;-><init>(Landroid/media/audiofx/AudioEffect;Landroid/os/Looper;)V
 Landroid/media/audiofx/AudioEffect$NativeEventHandler;->mAudioEffect:Landroid/media/audiofx/AudioEffect;
 Landroid/media/audiofx/AudioEffect;->byteArrayToFloat([B)F
 Landroid/media/audiofx/AudioEffect;->byteArrayToFloat([BI)F
 Landroid/media/audiofx/AudioEffect;->byteArrayToInt([BI)I
 Landroid/media/audiofx/AudioEffect;->byteArrayToShort([BI)S
 Landroid/media/audiofx/AudioEffect;->checkStatus(I)V
-Landroid/media/audiofx/AudioEffect;->concatArrays([[[B)[B
 Landroid/media/audiofx/AudioEffect;->createNativeEventHandler()V
 Landroid/media/audiofx/AudioEffect;->EFFECT_PRE_PROCESSING:Ljava/lang/String;
 Landroid/media/audiofx/AudioEffect;->floatToByteArray(F)[B
@@ -36461,8 +34040,6 @@
 Landroid/media/audiofx/AudioEffect;->TAG:Ljava/lang/String;
 Landroid/media/audiofx/AutomaticGainControl;-><init>(I)V
 Landroid/media/audiofx/AutomaticGainControl;->TAG:Ljava/lang/String;
-Landroid/media/audiofx/BassBoost$BaseParameterListener;
-Landroid/media/audiofx/BassBoost$BaseParameterListener;-><init>()V
 Landroid/media/audiofx/BassBoost;->mBaseParamListener:Landroid/media/audiofx/BassBoost$BaseParameterListener;
 Landroid/media/audiofx/BassBoost;->mParamListener:Landroid/media/audiofx/BassBoost$OnParameterChangeListener;
 Landroid/media/audiofx/BassBoost;->mParamListenerLock:Ljava/lang/Object;
@@ -36471,8 +34048,6 @@
 Landroid/media/audiofx/DynamicsProcessing$BandBase;->mCutoffFrequency:F
 Landroid/media/audiofx/DynamicsProcessing$BandBase;->mEnabled:Z
 Landroid/media/audiofx/DynamicsProcessing$BandStage;->mBandCount:I
-Landroid/media/audiofx/DynamicsProcessing$BaseParameterListener;
-Landroid/media/audiofx/DynamicsProcessing$BaseParameterListener;-><init>()V
 Landroid/media/audiofx/DynamicsProcessing$Channel;->mInputGain:F
 Landroid/media/audiofx/DynamicsProcessing$Channel;->mLimiter:Landroid/media/audiofx/DynamicsProcessing$Limiter;
 Landroid/media/audiofx/DynamicsProcessing$Channel;->mMbc:Landroid/media/audiofx/DynamicsProcessing$Mbc;
@@ -36525,9 +34100,7 @@
 Landroid/media/audiofx/DynamicsProcessing$MbcBand;->mRatio:F
 Landroid/media/audiofx/DynamicsProcessing$MbcBand;->mReleaseTime:F
 Landroid/media/audiofx/DynamicsProcessing$MbcBand;->mThreshold:F
-Landroid/media/audiofx/DynamicsProcessing$OnParameterChangeListener;
 Landroid/media/audiofx/DynamicsProcessing$OnParameterChangeListener;->onParameterChange(Landroid/media/audiofx/DynamicsProcessing;II)V
-Landroid/media/audiofx/DynamicsProcessing$Settings;
 Landroid/media/audiofx/DynamicsProcessing$Settings;-><init>()V
 Landroid/media/audiofx/DynamicsProcessing$Settings;-><init>(Ljava/lang/String;)V
 Landroid/media/audiofx/DynamicsProcessing$Settings;->channelCount:I
@@ -36608,16 +34181,12 @@
 Landroid/media/audiofx/DynamicsProcessing;->updateEngineLimiterByChannelIndex(ILandroid/media/audiofx/DynamicsProcessing$Limiter;)V
 Landroid/media/audiofx/DynamicsProcessing;->updateEngineMbcBandByChannelIndex(IILandroid/media/audiofx/DynamicsProcessing$MbcBand;)V
 Landroid/media/audiofx/DynamicsProcessing;->updateEngineMbcByChannelIndex(ILandroid/media/audiofx/DynamicsProcessing$Mbc;)V
-Landroid/media/audiofx/EnvironmentalReverb$BaseParameterListener;
-Landroid/media/audiofx/EnvironmentalReverb$BaseParameterListener;-><init>()V
 Landroid/media/audiofx/EnvironmentalReverb;->mBaseParamListener:Landroid/media/audiofx/EnvironmentalReverb$BaseParameterListener;
 Landroid/media/audiofx/EnvironmentalReverb;->mParamListener:Landroid/media/audiofx/EnvironmentalReverb$OnParameterChangeListener;
 Landroid/media/audiofx/EnvironmentalReverb;->mParamListenerLock:Ljava/lang/Object;
 Landroid/media/audiofx/EnvironmentalReverb;->PARAM_PROPERTIES:I
 Landroid/media/audiofx/EnvironmentalReverb;->PROPERTY_SIZE:I
 Landroid/media/audiofx/EnvironmentalReverb;->TAG:Ljava/lang/String;
-Landroid/media/audiofx/Equalizer$BaseParameterListener;
-Landroid/media/audiofx/Equalizer$BaseParameterListener;-><init>()V
 Landroid/media/audiofx/Equalizer;->mBaseParamListener:Landroid/media/audiofx/Equalizer$BaseParameterListener;
 Landroid/media/audiofx/Equalizer;->mNumBands:S
 Landroid/media/audiofx/Equalizer;->mNumPresets:I
@@ -36626,11 +34195,7 @@
 Landroid/media/audiofx/Equalizer;->mPresetNames:[Ljava/lang/String;
 Landroid/media/audiofx/Equalizer;->PARAM_PROPERTIES:I
 Landroid/media/audiofx/Equalizer;->TAG:Ljava/lang/String;
-Landroid/media/audiofx/LoudnessEnhancer$BaseParameterListener;
-Landroid/media/audiofx/LoudnessEnhancer$BaseParameterListener;-><init>()V
-Landroid/media/audiofx/LoudnessEnhancer$OnParameterChangeListener;
 Landroid/media/audiofx/LoudnessEnhancer$OnParameterChangeListener;->onParameterChange(Landroid/media/audiofx/LoudnessEnhancer;II)V
-Landroid/media/audiofx/LoudnessEnhancer$Settings;
 Landroid/media/audiofx/LoudnessEnhancer$Settings;-><init>()V
 Landroid/media/audiofx/LoudnessEnhancer$Settings;-><init>(Ljava/lang/String;)V
 Landroid/media/audiofx/LoudnessEnhancer$Settings;->targetGainmB:I
@@ -36644,16 +34209,10 @@
 Landroid/media/audiofx/LoudnessEnhancer;->TAG:Ljava/lang/String;
 Landroid/media/audiofx/NoiseSuppressor;-><init>(I)V
 Landroid/media/audiofx/NoiseSuppressor;->TAG:Ljava/lang/String;
-Landroid/media/audiofx/PresetReverb$BaseParameterListener;
-Landroid/media/audiofx/PresetReverb$BaseParameterListener;-><init>()V
 Landroid/media/audiofx/PresetReverb;->mBaseParamListener:Landroid/media/audiofx/PresetReverb$BaseParameterListener;
 Landroid/media/audiofx/PresetReverb;->mParamListener:Landroid/media/audiofx/PresetReverb$OnParameterChangeListener;
 Landroid/media/audiofx/PresetReverb;->mParamListenerLock:Ljava/lang/Object;
 Landroid/media/audiofx/PresetReverb;->TAG:Ljava/lang/String;
-Landroid/media/audiofx/Virtualizer$BaseParameterListener;
-Landroid/media/audiofx/Virtualizer$BaseParameterListener;-><init>()V
-Landroid/media/audiofx/Virtualizer$ForceVirtualizationMode;
-Landroid/media/audiofx/Virtualizer$VirtualizationMode;
 Landroid/media/audiofx/Virtualizer;->DEBUG:Z
 Landroid/media/audiofx/Virtualizer;->deviceToMode(I)I
 Landroid/media/audiofx/Virtualizer;->getAnglesInt(II[I)Z
@@ -36667,12 +34226,9 @@
 Landroid/media/audiofx/Virtualizer;->PARAM_VIRTUALIZATION_MODE:I
 Landroid/media/audiofx/Virtualizer;->PARAM_VIRTUAL_SPEAKER_ANGLES:I
 Landroid/media/audiofx/Virtualizer;->TAG:Ljava/lang/String;
-Landroid/media/audiofx/Visualizer$NativeEventHandler;
-Landroid/media/audiofx/Visualizer$NativeEventHandler;-><init>(Landroid/media/audiofx/Visualizer;Landroid/os/Looper;)V
 Landroid/media/audiofx/Visualizer$NativeEventHandler;->handleCaptureMessage(Landroid/os/Message;)V
 Landroid/media/audiofx/Visualizer$NativeEventHandler;->handleServerDiedMessage(Landroid/os/Message;)V
 Landroid/media/audiofx/Visualizer$NativeEventHandler;->mVisualizer:Landroid/media/audiofx/Visualizer;
-Landroid/media/audiofx/Visualizer$OnServerDiedListener;
 Landroid/media/audiofx/Visualizer$OnServerDiedListener;->onServerDied()V
 Landroid/media/audiofx/Visualizer;->mCaptureListener:Landroid/media/audiofx/Visualizer$OnDataCaptureListener;
 Landroid/media/audiofx/Visualizer;->mJniData:J
@@ -36705,7 +34261,6 @@
 Landroid/media/audiofx/Visualizer;->postEventFromNative(Ljava/lang/Object;IIILjava/lang/Object;)V
 Landroid/media/audiofx/Visualizer;->setServerDiedListener(Landroid/media/audiofx/Visualizer$OnServerDiedListener;)I
 Landroid/media/audiofx/Visualizer;->TAG:Ljava/lang/String;
-Landroid/media/AudioGain;
 Landroid/media/AudioGain;->buildConfig(II[II)Landroid/media/AudioGainConfig;
 Landroid/media/AudioGain;->channelMask()I
 Landroid/media/AudioGain;->defaultValue()I
@@ -36727,24 +34282,19 @@
 Landroid/media/AudioGain;->rampDurationMaxMs()I
 Landroid/media/AudioGain;->rampDurationMinMs()I
 Landroid/media/AudioGain;->stepValue()I
-Landroid/media/AudioGainConfig;
 Landroid/media/AudioGainConfig;->channelMask()I
 Landroid/media/AudioGainConfig;->index()I
 Landroid/media/AudioGainConfig;->mGain:Landroid/media/AudioGain;
 Landroid/media/AudioGainConfig;->mode()I
 Landroid/media/AudioGainConfig;->rampDurationMs()I
 Landroid/media/AudioGainConfig;->values()[I
-Landroid/media/AudioHandle;
 Landroid/media/AudioHandle;->id()I
-Landroid/media/AudioManager$AudioPlaybackCallbackInfo;
 Landroid/media/AudioManager$AudioPlaybackCallbackInfo;-><init>(Landroid/media/AudioManager$AudioPlaybackCallback;Landroid/os/Handler;)V
 Landroid/media/AudioManager$AudioPlaybackCallbackInfo;->mCb:Landroid/media/AudioManager$AudioPlaybackCallback;
 Landroid/media/AudioManager$AudioPlaybackCallbackInfo;->mHandler:Landroid/os/Handler;
-Landroid/media/AudioManager$AudioRecordingCallbackInfo;
 Landroid/media/AudioManager$AudioRecordingCallbackInfo;-><init>(Landroid/media/AudioManager$AudioRecordingCallback;Landroid/os/Handler;)V
 Landroid/media/AudioManager$AudioRecordingCallbackInfo;->mCb:Landroid/media/AudioManager$AudioRecordingCallback;
 Landroid/media/AudioManager$AudioRecordingCallbackInfo;->mHandler:Landroid/os/Handler;
-Landroid/media/AudioManager$BlockingFocusResultReceiver;
 Landroid/media/AudioManager$BlockingFocusResultReceiver;-><init>(Ljava/lang/String;)V
 Landroid/media/AudioManager$BlockingFocusResultReceiver;->mFocusClientId:Ljava/lang/String;
 Landroid/media/AudioManager$BlockingFocusResultReceiver;->mFocusRequestResult:I
@@ -36754,44 +34304,30 @@
 Landroid/media/AudioManager$BlockingFocusResultReceiver;->receivedResult()Z
 Landroid/media/AudioManager$BlockingFocusResultReceiver;->requestResult()I
 Landroid/media/AudioManager$BlockingFocusResultReceiver;->waitForResult(J)V
-Landroid/media/AudioManager$FocusRequestInfo;
 Landroid/media/AudioManager$FocusRequestInfo;-><init>(Landroid/media/AudioFocusRequest;Landroid/os/Handler;)V
 Landroid/media/AudioManager$FocusRequestInfo;->mHandler:Landroid/os/Handler;
 Landroid/media/AudioManager$FocusRequestInfo;->mRequest:Landroid/media/AudioFocusRequest;
-Landroid/media/AudioManager$FocusRequestResult;
-Landroid/media/AudioManager$NativeEventHandlerDelegate;
-Landroid/media/AudioManager$NativeEventHandlerDelegate;-><init>(Landroid/media/AudioDeviceCallback;Landroid/os/Handler;)V
 Landroid/media/AudioManager$NativeEventHandlerDelegate;->getHandler()Landroid/os/Handler;
 Landroid/media/AudioManager$NativeEventHandlerDelegate;->mHandler:Landroid/os/Handler;
-Landroid/media/AudioManager$OnAmPortUpdateListener;
-Landroid/media/AudioManager$OnAmPortUpdateListener;-><init>()V
 Landroid/media/AudioManager$OnAmPortUpdateListener;->onAudioPatchListUpdate([Landroid/media/AudioPatch;)V
 Landroid/media/AudioManager$OnAmPortUpdateListener;->onAudioPortListUpdate([Landroid/media/AudioPort;)V
 Landroid/media/AudioManager$OnAmPortUpdateListener;->onServiceDied()V
 Landroid/media/AudioManager$OnAmPortUpdateListener;->TAG:Ljava/lang/String;
-Landroid/media/AudioManager$OnAudioPortUpdateListener;
 Landroid/media/AudioManager$OnAudioPortUpdateListener;->onAudioPatchListUpdate([Landroid/media/AudioPatch;)V
 Landroid/media/AudioManager$OnAudioPortUpdateListener;->onAudioPortListUpdate([Landroid/media/AudioPort;)V
 Landroid/media/AudioManager$OnAudioPortUpdateListener;->onServiceDied()V
-Landroid/media/AudioManager$PlaybackConfigChangeCallbackData;
 Landroid/media/AudioManager$PlaybackConfigChangeCallbackData;-><init>(Landroid/media/AudioManager$AudioPlaybackCallback;Ljava/util/List;)V
 Landroid/media/AudioManager$PlaybackConfigChangeCallbackData;->mCb:Landroid/media/AudioManager$AudioPlaybackCallback;
 Landroid/media/AudioManager$PlaybackConfigChangeCallbackData;->mConfigs:Ljava/util/List;
-Landroid/media/AudioManager$PublicStreamTypes;
-Landroid/media/AudioManager$RecordConfigChangeCallbackData;
 Landroid/media/AudioManager$RecordConfigChangeCallbackData;-><init>(Landroid/media/AudioManager$AudioRecordingCallback;Ljava/util/List;)V
 Landroid/media/AudioManager$RecordConfigChangeCallbackData;->mCb:Landroid/media/AudioManager$AudioRecordingCallback;
 Landroid/media/AudioManager$RecordConfigChangeCallbackData;->mConfigs:Ljava/util/List;
-Landroid/media/AudioManager$SafeWaitObject;
 Landroid/media/AudioManager$SafeWaitObject;-><init>()V
 Landroid/media/AudioManager$SafeWaitObject;->mQuit:Z
 Landroid/media/AudioManager$SafeWaitObject;->safeNotify()V
 Landroid/media/AudioManager$SafeWaitObject;->safeWait(J)V
-Landroid/media/AudioManager$ServiceEventHandlerDelegate;
-Landroid/media/AudioManager$ServiceEventHandlerDelegate;-><init>(Landroid/os/Handler;)V
 Landroid/media/AudioManager$ServiceEventHandlerDelegate;->getHandler()Landroid/os/Handler;
 Landroid/media/AudioManager$ServiceEventHandlerDelegate;->mHandler:Landroid/os/Handler;
-Landroid/media/AudioManager$VolumeAdjustment;
 Landroid/media/AudioManager;->addMicrophonesFromAudioDeviceInfo(Ljava/util/ArrayList;Ljava/util/HashSet;)V
 Landroid/media/AudioManager;->adjustToString(I)Ljava/lang/String;
 Landroid/media/AudioManager;->AUDIOFOCUS_FLAGS_APPS:I
@@ -36951,12 +34487,10 @@
 Landroid/media/AudioManager;->updateAudioPortCache(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)I
 Landroid/media/AudioManager;->updatePortConfig(Landroid/media/AudioPortConfig;Ljava/util/ArrayList;)Landroid/media/AudioPortConfig;
 Landroid/media/AudioManager;->VOLUME_MIN_DB:F
-Landroid/media/AudioManagerInternal$RingerModeDelegate;
 Landroid/media/AudioManagerInternal$RingerModeDelegate;->canVolumeDownEnterSilent()Z
 Landroid/media/AudioManagerInternal$RingerModeDelegate;->getRingerModeAffectedStreams(I)I
 Landroid/media/AudioManagerInternal$RingerModeDelegate;->onSetRingerModeExternal(IILjava/lang/String;ILandroid/media/VolumePolicy;)I
 Landroid/media/AudioManagerInternal$RingerModeDelegate;->onSetRingerModeInternal(IILjava/lang/String;ILandroid/media/VolumePolicy;)I
-Landroid/media/AudioManagerInternal;
 Landroid/media/AudioManagerInternal;-><init>()V
 Landroid/media/AudioManagerInternal;->adjustStreamVolumeForUid(IIILjava/lang/String;I)V
 Landroid/media/AudioManagerInternal;->adjustSuggestedStreamVolumeForUid(IIILjava/lang/String;I)V
@@ -36967,26 +34501,19 @@
 Landroid/media/AudioManagerInternal;->setStreamVolumeForUid(IIILjava/lang/String;I)V
 Landroid/media/AudioManagerInternal;->silenceRingerModeInternal(Ljava/lang/String;)V
 Landroid/media/AudioManagerInternal;->updateRingerModeAffectedStreamsInternal()V
-Landroid/media/AudioMixPort;
 Landroid/media/AudioMixPort;->buildConfig(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioMixPortConfig;
 Landroid/media/AudioMixPort;->mIoHandle:I
-Landroid/media/AudioMixPortConfig;
 Landroid/media/AudioMixPortConfig;->port()Landroid/media/AudioMixPort;
-Landroid/media/AudioPatch;
 Landroid/media/AudioPatch;->id()I
 Landroid/media/AudioPatch;->mSinks:[Landroid/media/AudioPortConfig;
 Landroid/media/AudioPatch;->mSources:[Landroid/media/AudioPortConfig;
-Landroid/media/AudioPlaybackConfiguration$IPlayerShell;
 Landroid/media/AudioPlaybackConfiguration$IPlayerShell;-><init>(Landroid/media/AudioPlaybackConfiguration;Landroid/media/IPlayer;)V
 Landroid/media/AudioPlaybackConfiguration$IPlayerShell;->getIPlayer()Landroid/media/IPlayer;
 Landroid/media/AudioPlaybackConfiguration$IPlayerShell;->mIPlayer:Landroid/media/IPlayer;
 Landroid/media/AudioPlaybackConfiguration$IPlayerShell;->mMonitor:Landroid/media/AudioPlaybackConfiguration;
 Landroid/media/AudioPlaybackConfiguration$IPlayerShell;->monitorDeath()V
 Landroid/media/AudioPlaybackConfiguration$IPlayerShell;->release()V
-Landroid/media/AudioPlaybackConfiguration$PlayerDeathMonitor;
 Landroid/media/AudioPlaybackConfiguration$PlayerDeathMonitor;->playerDeath(I)V
-Landroid/media/AudioPlaybackConfiguration$PlayerState;
-Landroid/media/AudioPlaybackConfiguration$PlayerType;
 Landroid/media/AudioPlaybackConfiguration;-><init>(I)V
 Landroid/media/AudioPlaybackConfiguration;-><init>(Landroid/media/PlayerBase$PlayerIdCard;III)V
 Landroid/media/AudioPlaybackConfiguration;-><init>(Landroid/os/Parcel;)V
@@ -37027,7 +34554,6 @@
 Landroid/media/audiopolicy/AudioMix$Builder;->setCallbackFlags(I)Landroid/media/audiopolicy/AudioMix$Builder;
 Landroid/media/audiopolicy/AudioMix$Builder;->setDevice(ILjava/lang/String;)Landroid/media/audiopolicy/AudioMix$Builder;
 Landroid/media/audiopolicy/AudioMix$Builder;->setMixingRule(Landroid/media/audiopolicy/AudioMixingRule;)Landroid/media/audiopolicy/AudioMix$Builder;
-Landroid/media/audiopolicy/AudioMix$RouteFlags;
 Landroid/media/audiopolicy/AudioMix;-><init>(Landroid/media/audiopolicy/AudioMixingRule;Landroid/media/AudioFormat;IIILjava/lang/String;)V
 Landroid/media/audiopolicy/AudioMix;->CALLBACK_FLAGS_ALL:I
 Landroid/media/audiopolicy/AudioMix;->CALLBACK_FLAG_NOTIFY_ACTIVITY:I
@@ -37043,7 +34569,6 @@
 Landroid/media/audiopolicy/AudioMix;->mMixState:I
 Landroid/media/audiopolicy/AudioMix;->ROUTE_FLAG_SUPPORTED:I
 Landroid/media/audiopolicy/AudioMix;->setRegistration(Ljava/lang/String;)V
-Landroid/media/audiopolicy/AudioMixingRule$AudioMixMatchCriterion;
 Landroid/media/audiopolicy/AudioMixingRule$AudioMixMatchCriterion;-><init>(Landroid/media/AudioAttributes;I)V
 Landroid/media/audiopolicy/AudioMixingRule$AudioMixMatchCriterion;-><init>(Ljava/lang/Integer;I)V
 Landroid/media/audiopolicy/AudioMixingRule$AudioMixMatchCriterion;->writeToParcel(Landroid/os/Parcel;)V
@@ -37075,9 +34600,6 @@
 Landroid/media/audiopolicy/AudioPolicy$Builder;->mMixes:Ljava/util/ArrayList;
 Landroid/media/audiopolicy/AudioPolicy$Builder;->mStatusListener:Landroid/media/audiopolicy/AudioPolicy$AudioPolicyStatusListener;
 Landroid/media/audiopolicy/AudioPolicy$Builder;->mVolCb:Landroid/media/audiopolicy/AudioPolicy$AudioPolicyVolumeCallback;
-Landroid/media/audiopolicy/AudioPolicy$EventHandler;
-Landroid/media/audiopolicy/AudioPolicy$EventHandler;-><init>(Landroid/media/audiopolicy/AudioPolicy;Landroid/os/Looper;)V
-Landroid/media/audiopolicy/AudioPolicy$PolicyStatus;
 Landroid/media/audiopolicy/AudioPolicy;-><init>(Landroid/media/audiopolicy/AudioPolicyConfig;Landroid/content/Context;Landroid/os/Looper;Landroid/media/audiopolicy/AudioPolicy$AudioPolicyFocusListener;Landroid/media/audiopolicy/AudioPolicy$AudioPolicyStatusListener;ZLandroid/media/audiopolicy/AudioPolicy$AudioPolicyVolumeCallback;)V
 Landroid/media/audiopolicy/AudioPolicy;->addressForTag(Landroid/media/audiopolicy/AudioMix;)Ljava/lang/String;
 Landroid/media/audiopolicy/AudioPolicy;->cb()Landroid/media/audiopolicy/IAudioPolicyCallback;
@@ -37112,7 +34634,6 @@
 Landroid/media/audiopolicy/AudioPolicy;->sendMsg(ILjava/lang/Object;I)V
 Landroid/media/audiopolicy/AudioPolicy;->sService:Landroid/media/IAudioService;
 Landroid/media/audiopolicy/AudioPolicy;->TAG:Ljava/lang/String;
-Landroid/media/audiopolicy/AudioPolicyConfig;
 Landroid/media/audiopolicy/AudioPolicyConfig;-><init>(Landroid/media/audiopolicy/AudioPolicyConfig;)V
 Landroid/media/audiopolicy/AudioPolicyConfig;-><init>(Landroid/os/Parcel;)V
 Landroid/media/audiopolicy/AudioPolicyConfig;-><init>(Ljava/util/ArrayList;)V
@@ -37131,7 +34652,6 @@
 Landroid/media/audiopolicy/AudioPolicyConfig;->setRegistration(Ljava/lang/String;)V
 Landroid/media/audiopolicy/AudioPolicyConfig;->TAG:Ljava/lang/String;
 Landroid/media/audiopolicy/AudioPolicyConfig;->toLogFriendlyString()Ljava/lang/String;
-Landroid/media/audiopolicy/IAudioPolicyCallback$Stub$Proxy;
 Landroid/media/audiopolicy/IAudioPolicyCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/audiopolicy/IAudioPolicyCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/audiopolicy/IAudioPolicyCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -37141,7 +34661,6 @@
 Landroid/media/audiopolicy/IAudioPolicyCallback$Stub$Proxy;->notifyAudioFocusRequest(Landroid/media/AudioFocusInfo;I)V
 Landroid/media/audiopolicy/IAudioPolicyCallback$Stub$Proxy;->notifyMixStateUpdate(Ljava/lang/String;I)V
 Landroid/media/audiopolicy/IAudioPolicyCallback$Stub$Proxy;->notifyVolumeAdjust(I)V
-Landroid/media/audiopolicy/IAudioPolicyCallback$Stub;
 Landroid/media/audiopolicy/IAudioPolicyCallback$Stub;-><init>()V
 Landroid/media/audiopolicy/IAudioPolicyCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/audiopolicy/IAudioPolicyCallback;
 Landroid/media/audiopolicy/IAudioPolicyCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -37151,14 +34670,12 @@
 Landroid/media/audiopolicy/IAudioPolicyCallback$Stub;->TRANSACTION_notifyAudioFocusRequest:I
 Landroid/media/audiopolicy/IAudioPolicyCallback$Stub;->TRANSACTION_notifyMixStateUpdate:I
 Landroid/media/audiopolicy/IAudioPolicyCallback$Stub;->TRANSACTION_notifyVolumeAdjust:I
-Landroid/media/audiopolicy/IAudioPolicyCallback;
 Landroid/media/audiopolicy/IAudioPolicyCallback;->notifyAudioFocusAbandon(Landroid/media/AudioFocusInfo;)V
 Landroid/media/audiopolicy/IAudioPolicyCallback;->notifyAudioFocusGrant(Landroid/media/AudioFocusInfo;I)V
 Landroid/media/audiopolicy/IAudioPolicyCallback;->notifyAudioFocusLoss(Landroid/media/AudioFocusInfo;Z)V
 Landroid/media/audiopolicy/IAudioPolicyCallback;->notifyAudioFocusRequest(Landroid/media/AudioFocusInfo;I)V
 Landroid/media/audiopolicy/IAudioPolicyCallback;->notifyMixStateUpdate(Ljava/lang/String;I)V
 Landroid/media/audiopolicy/IAudioPolicyCallback;->notifyVolumeAdjust(I)V
-Landroid/media/AudioPort;
 Landroid/media/AudioPort;->activeConfig()Landroid/media/AudioPortConfig;
 Landroid/media/AudioPort;->buildConfig(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioPortConfig;
 Landroid/media/AudioPort;->channelIndexMasks()[I
@@ -37182,7 +34699,6 @@
 Landroid/media/AudioPort;->TYPE_NONE:I
 Landroid/media/AudioPort;->TYPE_SESSION:I
 Landroid/media/AudioPort;->TYPE_SUBMIX:I
-Landroid/media/AudioPortConfig;
 Landroid/media/AudioPortConfig;->channelMask()I
 Landroid/media/AudioPortConfig;->CHANNEL_MASK:I
 Landroid/media/AudioPortConfig;->format()I
@@ -37191,7 +34707,6 @@
 Landroid/media/AudioPortConfig;->GAIN:I
 Landroid/media/AudioPortConfig;->SAMPLE_RATE:I
 Landroid/media/AudioPortConfig;->samplingRate()I
-Landroid/media/AudioPortEventHandler;
 Landroid/media/AudioPortEventHandler;-><init>()V
 Landroid/media/AudioPortEventHandler;->AUDIOPORT_EVENT_NEW_LISTENER:I
 Landroid/media/AudioPortEventHandler;->AUDIOPORT_EVENT_PATCH_LIST_UPDATED:I
@@ -37208,7 +34723,6 @@
 Landroid/media/AudioPortEventHandler;->RESCHEDULE_MESSAGE_DELAY_MS:J
 Landroid/media/AudioPortEventHandler;->TAG:Ljava/lang/String;
 Landroid/media/AudioPortEventHandler;->unregisterListener(Landroid/media/AudioManager$OnAudioPortUpdateListener;)V
-Landroid/media/AudioPresentation$MasteringIndicationType;
 Landroid/media/AudioPresentation;->mAudioDescriptionAvailable:Z
 Landroid/media/AudioPresentation;->mDialogueEnhancementAvailable:Z
 Landroid/media/AudioPresentation;->mLabels:Ljava/util/Map;
@@ -37222,10 +34736,7 @@
 Landroid/media/AudioRecord$Builder;->mFormat:Landroid/media/AudioFormat;
 Landroid/media/AudioRecord$Builder;->mSessionId:I
 Landroid/media/AudioRecord$MetricsConstants;-><init>()V
-Landroid/media/AudioRecord$NativeEventHandler;
-Landroid/media/AudioRecord$NativeEventHandler;-><init>(Landroid/media/AudioRecord;Landroid/os/Looper;)V
 Landroid/media/AudioRecord$NativeEventHandler;->mAudioRecord:Landroid/media/AudioRecord;
-Landroid/media/AudioRecord$ReadMode;
 Landroid/media/AudioRecord;-><init>(J)V
 Landroid/media/AudioRecord;->audioBuffSizeCheck(I)V
 Landroid/media/AudioRecord;->audioParamCheck(III)V
@@ -37284,7 +34795,6 @@
 Landroid/media/AudioRecord;->TAG:Ljava/lang/String;
 Landroid/media/AudioRecord;->testDisableNativeRoutingCallbacksLocked()V
 Landroid/media/AudioRecord;->testEnableNativeRoutingCallbacksLocked()V
-Landroid/media/AudioRecordingConfiguration$AudioSource;
 Landroid/media/AudioRecordingConfiguration;-><init>(IIILandroid/media/AudioFormat;Landroid/media/AudioFormat;ILjava/lang/String;)V
 Landroid/media/AudioRecordingConfiguration;-><init>(Landroid/os/Parcel;)V
 Landroid/media/AudioRecordingConfiguration;->anonymizedCopy(Landroid/media/AudioRecordingConfiguration;)Landroid/media/AudioRecordingConfiguration;
@@ -37298,7 +34808,6 @@
 Landroid/media/AudioRecordingConfiguration;->mSessionId:I
 Landroid/media/AudioRecordingConfiguration;->TAG:Ljava/lang/String;
 Landroid/media/AudioRecordingConfiguration;->toLogFriendlyString(Landroid/media/AudioRecordingConfiguration;)Ljava/lang/String;
-Landroid/media/AudioRoutesInfo;
 Landroid/media/AudioRoutesInfo;-><init>()V
 Landroid/media/AudioRoutesInfo;-><init>(Landroid/media/AudioRoutesInfo;)V
 Landroid/media/AudioRoutesInfo;-><init>(Landroid/os/Parcel;)V
@@ -37312,13 +34821,9 @@
 Landroid/media/AudioRoutesInfo;->MAIN_SPEAKER:I
 Landroid/media/AudioRoutesInfo;->MAIN_USB:I
 Landroid/media/AudioRoutesInfo;->typeToString(I)Ljava/lang/String;
-Landroid/media/AudioSystem$AudioRecordingCallback;
 Landroid/media/AudioSystem$AudioRecordingCallback;->onRecordingConfigurationChanged(IIII[ILjava/lang/String;)V
-Landroid/media/AudioSystem$DynamicPolicyCallback;
 Landroid/media/AudioSystem$DynamicPolicyCallback;->onDynamicPolicyMixStateUpdate(Ljava/lang/String;I)V
-Landroid/media/AudioSystem$ErrorCallback;
 Landroid/media/AudioSystem$ErrorCallback;->onError(I)V
-Landroid/media/AudioSystem;
 Landroid/media/AudioSystem;-><init>()V
 Landroid/media/AudioSystem;->AUDIO_HW_SYNC_INVALID:I
 Landroid/media/AudioSystem;->AUDIO_SESSION_ALLOCATE:I
@@ -37526,7 +35031,6 @@
 Landroid/media/AudioSystem;->systemReady()I
 Landroid/media/AudioSystem;->TAG:Ljava/lang/String;
 Landroid/media/AudioSystem;->WOULD_BLOCK:I
-Landroid/media/AudioTimestamp$Timebase;
 Landroid/media/AudioTrack$Builder;->mAttributes:Landroid/media/AudioAttributes;
 Landroid/media/AudioTrack$Builder;->mBufferSizeInBytes:I
 Landroid/media/AudioTrack$Builder;->mFormat:Landroid/media/AudioFormat;
@@ -37536,18 +35040,12 @@
 Landroid/media/AudioTrack$Builder;->mSessionId:I
 Landroid/media/AudioTrack$Builder;->setOffloadedPlayback(Z)Landroid/media/AudioTrack$Builder;
 Landroid/media/AudioTrack$MetricsConstants;-><init>()V
-Landroid/media/AudioTrack$NativePositionEventHandlerDelegate;
-Landroid/media/AudioTrack$NativePositionEventHandlerDelegate;-><init>(Landroid/media/AudioTrack;Landroid/media/AudioTrack$OnPlaybackPositionUpdateListener;Landroid/os/Handler;)V
 Landroid/media/AudioTrack$NativePositionEventHandlerDelegate;->getHandler()Landroid/os/Handler;
 Landroid/media/AudioTrack$NativePositionEventHandlerDelegate;->mHandler:Landroid/os/Handler;
-Landroid/media/AudioTrack$PerformanceMode;
-Landroid/media/AudioTrack$StreamEventCallback;
 Landroid/media/AudioTrack$StreamEventCallback;-><init>()V
 Landroid/media/AudioTrack$StreamEventCallback;->onStreamDataRequest(Landroid/media/AudioTrack;)V
 Landroid/media/AudioTrack$StreamEventCallback;->onStreamPresentationEnd(Landroid/media/AudioTrack;)V
 Landroid/media/AudioTrack$StreamEventCallback;->onTearDown(Landroid/media/AudioTrack;)V
-Landroid/media/AudioTrack$TransferMode;
-Landroid/media/AudioTrack$WriteMode;
 Landroid/media/AudioTrack;-><init>(J)V
 Landroid/media/AudioTrack;-><init>(Landroid/media/AudioAttributes;Landroid/media/AudioFormat;IIIZ)V
 Landroid/media/AudioTrack;->audioBuffSizeCheck(I)V
@@ -37656,22 +35154,17 @@
 Landroid/media/AudioTrack;->TAG:Ljava/lang/String;
 Landroid/media/AudioTrack;->testDisableNativeRoutingCallbacksLocked()V
 Landroid/media/AudioTrack;->testEnableNativeRoutingCallbacksLocked()V
-Landroid/media/browse/MediaBrowser$MediaItem$Flags;
 Landroid/media/browse/MediaBrowser$MediaItem;-><init>(Landroid/os/Parcel;)V
 Landroid/media/browse/MediaBrowser$MediaItem;->mDescription:Landroid/media/MediaDescription;
 Landroid/media/browse/MediaBrowser$MediaItem;->mFlags:I
-Landroid/media/browse/MediaBrowser$MediaServiceConnection;
-Landroid/media/browse/MediaBrowser$MediaServiceConnection;-><init>()V
 Landroid/media/browse/MediaBrowser$MediaServiceConnection;->isCurrent(Ljava/lang/String;)Z
 Landroid/media/browse/MediaBrowser$MediaServiceConnection;->postOrRun(Ljava/lang/Runnable;)V
-Landroid/media/browse/MediaBrowser$ServiceCallbacks;
 Landroid/media/browse/MediaBrowser$ServiceCallbacks;-><init>(Landroid/media/browse/MediaBrowser;)V
 Landroid/media/browse/MediaBrowser$ServiceCallbacks;->mMediaBrowser:Ljava/lang/ref/WeakReference;
 Landroid/media/browse/MediaBrowser$ServiceCallbacks;->onConnect(Ljava/lang/String;Landroid/media/session/MediaSession$Token;Landroid/os/Bundle;)V
 Landroid/media/browse/MediaBrowser$ServiceCallbacks;->onConnectFailed()V
 Landroid/media/browse/MediaBrowser$ServiceCallbacks;->onLoadChildren(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
 Landroid/media/browse/MediaBrowser$ServiceCallbacks;->onLoadChildrenWithOptions(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;Landroid/os/Bundle;)V
-Landroid/media/browse/MediaBrowser$Subscription;
 Landroid/media/browse/MediaBrowser$Subscription;-><init>()V
 Landroid/media/browse/MediaBrowser$Subscription;->getCallback(Landroid/content/Context;Landroid/os/Bundle;)Landroid/media/browse/MediaBrowser$SubscriptionCallback;
 Landroid/media/browse/MediaBrowser$Subscription;->getCallbacks()Ljava/util/List;
@@ -37711,7 +35204,6 @@
 Landroid/media/browse/MediaBrowser;->subscribeInternal(Ljava/lang/String;Landroid/os/Bundle;Landroid/media/browse/MediaBrowser$SubscriptionCallback;)V
 Landroid/media/browse/MediaBrowser;->TAG:Ljava/lang/String;
 Landroid/media/browse/MediaBrowser;->unsubscribeInternal(Ljava/lang/String;Landroid/media/browse/MediaBrowser$SubscriptionCallback;)V
-Landroid/media/browse/MediaBrowserUtils;
 Landroid/media/browse/MediaBrowserUtils;-><init>()V
 Landroid/media/browse/MediaBrowserUtils;->areSameOptions(Landroid/os/Bundle;Landroid/os/Bundle;)Z
 Landroid/media/browse/MediaBrowserUtils;->hasDuplicatedItems(Landroid/os/Bundle;Landroid/os/Bundle;)Z
@@ -37735,7 +35227,6 @@
 Landroid/media/CameraProfile;->native_get_num_image_encoding_quality_levels(I)I
 Landroid/media/CameraProfile;->native_init()V
 Landroid/media/CameraProfile;->sCache:Ljava/util/HashMap;
-Landroid/media/Cea608CCParser$CCData;
 Landroid/media/Cea608CCParser$CCData;-><init>(BBB)V
 Landroid/media/Cea608CCParser$CCData;->ctrlCodeToString(I)Ljava/lang/String;
 Landroid/media/Cea608CCParser$CCData;->fromByteArray([B)[Landroid/media/Cea608CCParser$CCData;
@@ -37759,7 +35250,6 @@
 Landroid/media/Cea608CCParser$CCData;->mSpanishCharMap:[Ljava/lang/String;
 Landroid/media/Cea608CCParser$CCData;->mSpecialCharMap:[Ljava/lang/String;
 Landroid/media/Cea608CCParser$CCData;->mType:B
-Landroid/media/Cea608CCParser$CCLineBuilder;
 Landroid/media/Cea608CCParser$CCLineBuilder;-><init>(Ljava/lang/String;)V
 Landroid/media/Cea608CCParser$CCLineBuilder;->applyStyleSpan(Landroid/text/SpannableStringBuilder;Landroid/media/Cea608CCParser$StyleCode;II)V
 Landroid/media/Cea608CCParser$CCLineBuilder;->charAt(I)C
@@ -37771,7 +35261,6 @@
 Landroid/media/Cea608CCParser$CCLineBuilder;->setCharAt(IC)V
 Landroid/media/Cea608CCParser$CCLineBuilder;->setMidRowAt(ILandroid/media/Cea608CCParser$StyleCode;)V
 Landroid/media/Cea608CCParser$CCLineBuilder;->setPACAt(ILandroid/media/Cea608CCParser$PAC;)V
-Landroid/media/Cea608CCParser$CCMemory;
 Landroid/media/Cea608CCParser$CCMemory;-><init>()V
 Landroid/media/Cea608CCParser$CCMemory;->bs()V
 Landroid/media/Cea608CCParser$CCMemory;->clamp(III)I
@@ -37793,15 +35282,12 @@
 Landroid/media/Cea608CCParser$CCMemory;->writeMidRowCode(Landroid/media/Cea608CCParser$StyleCode;)V
 Landroid/media/Cea608CCParser$CCMemory;->writePAC(Landroid/media/Cea608CCParser$PAC;)V
 Landroid/media/Cea608CCParser$CCMemory;->writeText(Ljava/lang/String;)V
-Landroid/media/Cea608CCParser$DisplayListener;
 Landroid/media/Cea608CCParser$DisplayListener;->getCaptionStyle()Landroid/view/accessibility/CaptioningManager$CaptionStyle;
 Landroid/media/Cea608CCParser$DisplayListener;->onDisplayChanged([Landroid/text/SpannableStringBuilder;)V
-Landroid/media/Cea608CCParser$MutableBackgroundColorSpan;
 Landroid/media/Cea608CCParser$MutableBackgroundColorSpan;-><init>(I)V
 Landroid/media/Cea608CCParser$MutableBackgroundColorSpan;->getBackgroundColor()I
 Landroid/media/Cea608CCParser$MutableBackgroundColorSpan;->mColor:I
 Landroid/media/Cea608CCParser$MutableBackgroundColorSpan;->setBackgroundColor(I)V
-Landroid/media/Cea608CCParser$PAC;
 Landroid/media/Cea608CCParser$PAC;-><init>(IIII)V
 Landroid/media/Cea608CCParser$PAC;->fromBytes(BB)Landroid/media/Cea608CCParser$PAC;
 Landroid/media/Cea608CCParser$PAC;->getCol()I
@@ -37809,7 +35295,6 @@
 Landroid/media/Cea608CCParser$PAC;->isIndentPAC()Z
 Landroid/media/Cea608CCParser$PAC;->mCol:I
 Landroid/media/Cea608CCParser$PAC;->mRow:I
-Landroid/media/Cea608CCParser$StyleCode;
 Landroid/media/Cea608CCParser$StyleCode;-><init>(II)V
 Landroid/media/Cea608CCParser$StyleCode;->COLOR_BLUE:I
 Landroid/media/Cea608CCParser$StyleCode;->COLOR_CYAN:I
@@ -37828,7 +35313,6 @@
 Landroid/media/Cea608CCParser$StyleCode;->mStyle:I
 Landroid/media/Cea608CCParser$StyleCode;->STYLE_ITALICS:I
 Landroid/media/Cea608CCParser$StyleCode;->STYLE_UNDERLINE:I
-Landroid/media/Cea608CCParser;
 Landroid/media/Cea608CCParser;-><init>(Landroid/media/Cea608CCParser$DisplayListener;)V
 Landroid/media/Cea608CCParser;->AOF:I
 Landroid/media/Cea608CCParser;->AON:I
@@ -37873,7 +35357,6 @@
 Landroid/media/Cea608CCParser;->TR:I
 Landroid/media/Cea608CCParser;->TS:C
 Landroid/media/Cea608CCParser;->updateDisplay()V
-Landroid/media/Cea608CCWidget$CCLayout;
 Landroid/media/Cea608CCWidget$CCLayout;-><init>(Landroid/content/Context;)V
 Landroid/media/Cea608CCWidget$CCLayout;->MAX_ROWS:I
 Landroid/media/Cea608CCWidget$CCLayout;->mLineBoxes:[Landroid/media/Cea608CCWidget$CCLineBox;
@@ -37881,7 +35364,6 @@
 Landroid/media/Cea608CCWidget$CCLayout;->setCaptionStyle(Landroid/view/accessibility/CaptioningManager$CaptionStyle;)V
 Landroid/media/Cea608CCWidget$CCLayout;->setFontScale(F)V
 Landroid/media/Cea608CCWidget$CCLayout;->update([Landroid/text/SpannableStringBuilder;)V
-Landroid/media/Cea608CCWidget$CCLineBox;
 Landroid/media/Cea608CCWidget$CCLineBox;-><init>(Landroid/content/Context;)V
 Landroid/media/Cea608CCWidget$CCLineBox;->drawEdgeOutline(Landroid/graphics/Canvas;)V
 Landroid/media/Cea608CCWidget$CCLineBox;->drawEdgeRaisedOrDepressed(Landroid/graphics/Canvas;)V
@@ -37897,7 +35379,6 @@
 Landroid/media/Cea608CCWidget$CCLineBox;->mTextColor:I
 Landroid/media/Cea608CCWidget$CCLineBox;->setBackgroundSpans(I)V
 Landroid/media/Cea608CCWidget$CCLineBox;->setCaptionStyle(Landroid/view/accessibility/CaptioningManager$CaptionStyle;)V
-Landroid/media/Cea608CCWidget;
 Landroid/media/Cea608CCWidget;-><init>(Landroid/content/Context;)V
 Landroid/media/Cea608CCWidget;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/media/Cea608CCWidget;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
@@ -37907,13 +35388,11 @@
 Landroid/media/Cea608CCWidget;->mDummyText:Ljava/lang/String;
 Landroid/media/Cea608CCWidget;->mTextBounds:Landroid/graphics/Rect;
 Landroid/media/Cea608CCWidget;->onDisplayChanged([Landroid/text/SpannableStringBuilder;)V
-Landroid/media/Cea708CaptionRenderer;
 Landroid/media/Cea708CaptionRenderer;-><init>(Landroid/content/Context;)V
 Landroid/media/Cea708CaptionRenderer;->createTrack(Landroid/media/MediaFormat;)Landroid/media/SubtitleTrack;
 Landroid/media/Cea708CaptionRenderer;->mCCWidget:Landroid/media/Cea708CCWidget;
 Landroid/media/Cea708CaptionRenderer;->mContext:Landroid/content/Context;
 Landroid/media/Cea708CaptionRenderer;->supports(Landroid/media/MediaFormat;)Z
-Landroid/media/Cea708CCParser$CaptionColor;
 Landroid/media/Cea708CCParser$CaptionColor;-><init>(IIII)V
 Landroid/media/Cea708CCParser$CaptionColor;->blue:I
 Landroid/media/Cea708CCParser$CaptionColor;->COLOR_MAP:[I
@@ -37926,11 +35405,9 @@
 Landroid/media/Cea708CCParser$CaptionColor;->OPACITY_TRANSLUCENT:I
 Landroid/media/Cea708CCParser$CaptionColor;->OPACITY_TRANSPARENT:I
 Landroid/media/Cea708CCParser$CaptionColor;->red:I
-Landroid/media/Cea708CCParser$CaptionEvent;
 Landroid/media/Cea708CCParser$CaptionEvent;-><init>(ILjava/lang/Object;)V
 Landroid/media/Cea708CCParser$CaptionEvent;->obj:Ljava/lang/Object;
 Landroid/media/Cea708CCParser$CaptionEvent;->type:I
-Landroid/media/Cea708CCParser$CaptionPenAttr;
 Landroid/media/Cea708CCParser$CaptionPenAttr;-><init>(IIIIIZZ)V
 Landroid/media/Cea708CCParser$CaptionPenAttr;->edgeType:I
 Landroid/media/Cea708CCParser$CaptionPenAttr;->fontTag:I
@@ -37945,16 +35422,13 @@
 Landroid/media/Cea708CCParser$CaptionPenAttr;->PEN_SIZE_STANDARD:I
 Landroid/media/Cea708CCParser$CaptionPenAttr;->textTag:I
 Landroid/media/Cea708CCParser$CaptionPenAttr;->underline:Z
-Landroid/media/Cea708CCParser$CaptionPenColor;
 Landroid/media/Cea708CCParser$CaptionPenColor;-><init>(Landroid/media/Cea708CCParser$CaptionColor;Landroid/media/Cea708CCParser$CaptionColor;Landroid/media/Cea708CCParser$CaptionColor;)V
 Landroid/media/Cea708CCParser$CaptionPenColor;->backgroundColor:Landroid/media/Cea708CCParser$CaptionColor;
 Landroid/media/Cea708CCParser$CaptionPenColor;->edgeColor:Landroid/media/Cea708CCParser$CaptionColor;
 Landroid/media/Cea708CCParser$CaptionPenColor;->foregroundColor:Landroid/media/Cea708CCParser$CaptionColor;
-Landroid/media/Cea708CCParser$CaptionPenLocation;
 Landroid/media/Cea708CCParser$CaptionPenLocation;-><init>(II)V
 Landroid/media/Cea708CCParser$CaptionPenLocation;->column:I
 Landroid/media/Cea708CCParser$CaptionPenLocation;->row:I
-Landroid/media/Cea708CCParser$CaptionWindow;
 Landroid/media/Cea708CCParser$CaptionWindow;-><init>(IZZZIZIIIIIII)V
 Landroid/media/Cea708CCParser$CaptionWindow;->anchorHorizontal:I
 Landroid/media/Cea708CCParser$CaptionWindow;->anchorId:I
@@ -37969,7 +35443,6 @@
 Landroid/media/Cea708CCParser$CaptionWindow;->rowLock:Z
 Landroid/media/Cea708CCParser$CaptionWindow;->visible:Z
 Landroid/media/Cea708CCParser$CaptionWindow;->windowStyle:I
-Landroid/media/Cea708CCParser$CaptionWindowAttr;
 Landroid/media/Cea708CCParser$CaptionWindowAttr;-><init>(Landroid/media/Cea708CCParser$CaptionColor;Landroid/media/Cea708CCParser$CaptionColor;IZIIIIII)V
 Landroid/media/Cea708CCParser$CaptionWindowAttr;->borderColor:Landroid/media/Cea708CCParser$CaptionColor;
 Landroid/media/Cea708CCParser$CaptionWindowAttr;->borderType:I
@@ -37981,7 +35454,6 @@
 Landroid/media/Cea708CCParser$CaptionWindowAttr;->printDirection:I
 Landroid/media/Cea708CCParser$CaptionWindowAttr;->scrollDirection:I
 Landroid/media/Cea708CCParser$CaptionWindowAttr;->wordWrap:Z
-Landroid/media/Cea708CCParser$Const;
 Landroid/media/Cea708CCParser$Const;-><init>()V
 Landroid/media/Cea708CCParser$Const;->CODE_C0_BS:I
 Landroid/media/Cea708CCParser$Const;->CODE_C0_CR:I
@@ -38056,9 +35528,7 @@
 Landroid/media/Cea708CCParser$Const;->CODE_G3_CC:I
 Landroid/media/Cea708CCParser$Const;->CODE_G3_RANGE_END:I
 Landroid/media/Cea708CCParser$Const;->CODE_G3_RANGE_START:I
-Landroid/media/Cea708CCParser$DisplayListener;
 Landroid/media/Cea708CCParser$DisplayListener;->emitEvent(Landroid/media/Cea708CCParser$CaptionEvent;)V
-Landroid/media/Cea708CCParser;
 Landroid/media/Cea708CCParser;-><init>(Landroid/media/Cea708CCParser$DisplayListener;)V
 Landroid/media/Cea708CCParser;->CAPTION_EMIT_TYPE_BUFFER:I
 Landroid/media/Cea708CCParser;->CAPTION_EMIT_TYPE_COMMAND_CLW:I
@@ -38095,7 +35565,6 @@
 Landroid/media/Cea708CCParser;->parseG3([BI)I
 Landroid/media/Cea708CCParser;->parseServiceBlockData([BI)I
 Landroid/media/Cea708CCParser;->TAG:Ljava/lang/String;
-Landroid/media/Cea708CCWidget$CCHandler;
 Landroid/media/Cea708CCWidget$CCHandler;-><init>(Landroid/media/Cea708CCWidget$CCLayout;)V
 Landroid/media/Cea708CCWidget$CCHandler;->CAPTION_ALL_WINDOWS_BITMAP:I
 Landroid/media/Cea708CCWidget$CCHandler;->CAPTION_CLEAR_INTERVAL_MS:J
@@ -38130,7 +35599,6 @@
 Landroid/media/Cea708CCWidget$CCHandler;->TAG:Ljava/lang/String;
 Landroid/media/Cea708CCWidget$CCHandler;->TENTHS_OF_SECOND_IN_MILLIS:I
 Landroid/media/Cea708CCWidget$CCHandler;->toggleWindows(I)V
-Landroid/media/Cea708CCWidget$CCLayout;
 Landroid/media/Cea708CCWidget$CCLayout;-><init>(Landroid/content/Context;)V
 Landroid/media/Cea708CCWidget$CCLayout;->addOrUpdateViewToSafeTitleArea(Landroid/media/Cea708CCWidget$CCWindowLayout;Landroid/media/Cea708CCWidget$ScaledLayout$ScaledLayoutParams;)V
 Landroid/media/Cea708CCWidget$CCLayout;->mSafeTitleAreaLayout:Landroid/media/Cea708CCWidget$ScaledLayout;
@@ -38141,14 +35609,12 @@
 Landroid/media/Cea708CCWidget$CCLayout;->SAFE_TITLE_AREA_SCALE_START_Y:F
 Landroid/media/Cea708CCWidget$CCLayout;->setCaptionStyle(Landroid/view/accessibility/CaptioningManager$CaptionStyle;)V
 Landroid/media/Cea708CCWidget$CCLayout;->setFontScale(F)V
-Landroid/media/Cea708CCWidget$CCView;
 Landroid/media/Cea708CCWidget$CCView;-><init>(Landroid/content/Context;)V
 Landroid/media/Cea708CCWidget$CCView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/media/Cea708CCWidget$CCView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 Landroid/media/Cea708CCWidget$CCView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
 Landroid/media/Cea708CCWidget$CCView;->DEFAULT_CAPTION_STYLE:Landroid/view/accessibility/CaptioningManager$CaptionStyle;
 Landroid/media/Cea708CCWidget$CCView;->setCaptionStyle(Landroid/view/accessibility/CaptioningManager$CaptionStyle;)V
-Landroid/media/Cea708CCWidget$CCWindowLayout;
 Landroid/media/Cea708CCWidget$CCWindowLayout;-><init>(Landroid/content/Context;)V
 Landroid/media/Cea708CCWidget$CCWindowLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/media/Cea708CCWidget$CCWindowLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
@@ -38203,7 +35669,6 @@
 Landroid/media/Cea708CCWidget$CCWindowLayout;->updateText(Ljava/lang/String;Z)V
 Landroid/media/Cea708CCWidget$CCWindowLayout;->updateTextSize()V
 Landroid/media/Cea708CCWidget$CCWindowLayout;->updateWidestChar()V
-Landroid/media/Cea708CCWidget$ScaledLayout$ScaledLayoutParams;
 Landroid/media/Cea708CCWidget$ScaledLayout$ScaledLayoutParams;-><init>(FFFF)V
 Landroid/media/Cea708CCWidget$ScaledLayout$ScaledLayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/media/Cea708CCWidget$ScaledLayout$ScaledLayoutParams;->scaleEndCol:F
@@ -38211,13 +35676,11 @@
 Landroid/media/Cea708CCWidget$ScaledLayout$ScaledLayoutParams;->scaleStartCol:F
 Landroid/media/Cea708CCWidget$ScaledLayout$ScaledLayoutParams;->scaleStartRow:F
 Landroid/media/Cea708CCWidget$ScaledLayout$ScaledLayoutParams;->SCALE_UNSPECIFIED:F
-Landroid/media/Cea708CCWidget$ScaledLayout;
 Landroid/media/Cea708CCWidget$ScaledLayout;-><init>(Landroid/content/Context;)V
 Landroid/media/Cea708CCWidget$ScaledLayout;->DEBUG:Z
 Landroid/media/Cea708CCWidget$ScaledLayout;->mRectArray:[Landroid/graphics/Rect;
 Landroid/media/Cea708CCWidget$ScaledLayout;->mRectTopLeftSorter:Ljava/util/Comparator;
 Landroid/media/Cea708CCWidget$ScaledLayout;->TAG:Ljava/lang/String;
-Landroid/media/Cea708CCWidget;
 Landroid/media/Cea708CCWidget;-><init>(Landroid/content/Context;)V
 Landroid/media/Cea708CCWidget;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/media/Cea708CCWidget;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
@@ -38225,16 +35688,13 @@
 Landroid/media/Cea708CCWidget;->createCaptionLayout(Landroid/content/Context;)Landroid/media/ClosedCaptionWidget$ClosedCaptionLayout;
 Landroid/media/Cea708CCWidget;->emitEvent(Landroid/media/Cea708CCParser$CaptionEvent;)V
 Landroid/media/Cea708CCWidget;->mCCHandler:Landroid/media/Cea708CCWidget$CCHandler;
-Landroid/media/ClosedCaptionRenderer;
 Landroid/media/ClosedCaptionRenderer;-><init>(Landroid/content/Context;)V
 Landroid/media/ClosedCaptionRenderer;->createTrack(Landroid/media/MediaFormat;)Landroid/media/SubtitleTrack;
 Landroid/media/ClosedCaptionRenderer;->mCCWidget:Landroid/media/Cea608CCWidget;
 Landroid/media/ClosedCaptionRenderer;->mContext:Landroid/content/Context;
 Landroid/media/ClosedCaptionRenderer;->supports(Landroid/media/MediaFormat;)Z
-Landroid/media/ClosedCaptionWidget$ClosedCaptionLayout;
 Landroid/media/ClosedCaptionWidget$ClosedCaptionLayout;->setCaptionStyle(Landroid/view/accessibility/CaptioningManager$CaptionStyle;)V
 Landroid/media/ClosedCaptionWidget$ClosedCaptionLayout;->setFontScale(F)V
-Landroid/media/ClosedCaptionWidget;
 Landroid/media/ClosedCaptionWidget;-><init>(Landroid/content/Context;)V
 Landroid/media/ClosedCaptionWidget;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/media/ClosedCaptionWidget;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
@@ -38251,7 +35711,6 @@
 Landroid/media/ClosedCaptionWidget;->setOnChangedListener(Landroid/media/SubtitleTrack$RenderingWidget$OnChangedListener;)V
 Landroid/media/ClosedCaptionWidget;->setSize(II)V
 Landroid/media/ClosedCaptionWidget;->setVisible(Z)V
-Landroid/media/DataSourceDesc$Builder;
 Landroid/media/DataSourceDesc$Builder;-><init>()V
 Landroid/media/DataSourceDesc$Builder;-><init>(Landroid/media/DataSourceDesc;)V
 Landroid/media/DataSourceDesc$Builder;->build()Landroid/media/DataSourceDesc;
@@ -38276,7 +35735,6 @@
 Landroid/media/DataSourceDesc$Builder;->setEndPosition(J)Landroid/media/DataSourceDesc$Builder;
 Landroid/media/DataSourceDesc$Builder;->setMediaId(Ljava/lang/String;)Landroid/media/DataSourceDesc$Builder;
 Landroid/media/DataSourceDesc$Builder;->setStartPosition(J)Landroid/media/DataSourceDesc$Builder;
-Landroid/media/DataSourceDesc;
 Landroid/media/DataSourceDesc;-><init>()V
 Landroid/media/DataSourceDesc;->getEndPosition()J
 Landroid/media/DataSourceDesc;->getFileDescriptor()Ljava/io/FileDescriptor;
@@ -38307,15 +35765,10 @@
 Landroid/media/DataSourceDesc;->TYPE_FD:I
 Landroid/media/DataSourceDesc;->TYPE_NONE:I
 Landroid/media/DataSourceDesc;->TYPE_URI:I
-Landroid/media/DecoderCapabilities$AudioDecoder;
-Landroid/media/DecoderCapabilities$AudioDecoder;-><init>()V
 Landroid/media/DecoderCapabilities$AudioDecoder;->valueOf(Ljava/lang/String;)Landroid/media/DecoderCapabilities$AudioDecoder;
 Landroid/media/DecoderCapabilities$AudioDecoder;->values()[Landroid/media/DecoderCapabilities$AudioDecoder;
-Landroid/media/DecoderCapabilities$VideoDecoder;
-Landroid/media/DecoderCapabilities$VideoDecoder;-><init>()V
 Landroid/media/DecoderCapabilities$VideoDecoder;->valueOf(Ljava/lang/String;)Landroid/media/DecoderCapabilities$VideoDecoder;
 Landroid/media/DecoderCapabilities$VideoDecoder;->values()[Landroid/media/DecoderCapabilities$VideoDecoder;
-Landroid/media/DecoderCapabilities;
 Landroid/media/DecoderCapabilities;-><init>()V
 Landroid/media/DecoderCapabilities;->native_get_audio_decoder_type(I)I
 Landroid/media/DecoderCapabilities;->native_get_num_audio_decoders()I
@@ -38342,7 +35795,6 @@
 Landroid/media/effect/EffectFactory;->getEffectClassByName(Ljava/lang/String;)Ljava/lang/Class;
 Landroid/media/effect/EffectFactory;->instantiateEffect(Ljava/lang/Class;Ljava/lang/String;)Landroid/media/effect/Effect;
 Landroid/media/effect/EffectFactory;->mEffectContext:Landroid/media/effect/EffectContext;
-Landroid/media/effect/FilterEffect;
 Landroid/media/effect/FilterEffect;-><init>(Landroid/media/effect/EffectContext;Ljava/lang/String;)V
 Landroid/media/effect/FilterEffect;->beginGLEffect()V
 Landroid/media/effect/FilterEffect;->endGLEffect()V
@@ -38350,7 +35802,6 @@
 Landroid/media/effect/FilterEffect;->getFilterContext()Landroid/filterfw/core/FilterContext;
 Landroid/media/effect/FilterEffect;->mEffectContext:Landroid/media/effect/EffectContext;
 Landroid/media/effect/FilterEffect;->mName:Ljava/lang/String;
-Landroid/media/effect/FilterGraphEffect;
 Landroid/media/effect/FilterGraphEffect;-><init>(Landroid/media/effect/EffectContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Class;)V
 Landroid/media/effect/FilterGraphEffect;->createGraph(Ljava/lang/String;)V
 Landroid/media/effect/FilterGraphEffect;->mGraph:Landroid/filterfw/core/FilterGraph;
@@ -38359,14 +35810,9 @@
 Landroid/media/effect/FilterGraphEffect;->mRunner:Landroid/filterfw/core/GraphRunner;
 Landroid/media/effect/FilterGraphEffect;->mSchedulerClass:Ljava/lang/Class;
 Landroid/media/effect/FilterGraphEffect;->TAG:Ljava/lang/String;
-Landroid/media/effect/SingleFilterEffect;
-Landroid/media/effect/SingleFilterEffect;-><init>(Landroid/media/effect/EffectContext;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;[[Ljava/lang/Object;)V
 Landroid/media/effect/SingleFilterEffect;->mFunction:Landroid/filterfw/core/FilterFunction;
 Landroid/media/effect/SingleFilterEffect;->mInputName:Ljava/lang/String;
 Landroid/media/effect/SingleFilterEffect;->mOutputName:Ljava/lang/String;
-Landroid/media/effect/SizeChangeEffect;
-Landroid/media/effect/SizeChangeEffect;-><init>(Landroid/media/effect/EffectContext;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;[[Ljava/lang/Object;)V
-Landroid/media/EncoderCapabilities$AudioEncoderCap;
 Landroid/media/EncoderCapabilities$AudioEncoderCap;-><init>(IIIIIII)V
 Landroid/media/EncoderCapabilities$AudioEncoderCap;->mCodec:I
 Landroid/media/EncoderCapabilities$AudioEncoderCap;->mMaxBitRate:I
@@ -38375,13 +35821,11 @@
 Landroid/media/EncoderCapabilities$AudioEncoderCap;->mMinBitRate:I
 Landroid/media/EncoderCapabilities$AudioEncoderCap;->mMinChannels:I
 Landroid/media/EncoderCapabilities$AudioEncoderCap;->mMinSampleRate:I
-Landroid/media/EncoderCapabilities$VideoEncoderCap;
 Landroid/media/EncoderCapabilities$VideoEncoderCap;-><init>(IIIIIIIII)V
 Landroid/media/EncoderCapabilities$VideoEncoderCap;->mMaxBitRate:I
 Landroid/media/EncoderCapabilities$VideoEncoderCap;->mMaxFrameRate:I
 Landroid/media/EncoderCapabilities$VideoEncoderCap;->mMinBitRate:I
 Landroid/media/EncoderCapabilities$VideoEncoderCap;->mMinFrameRate:I
-Landroid/media/EncoderCapabilities;
 Landroid/media/EncoderCapabilities;-><init>()V
 Landroid/media/EncoderCapabilities;->getAudioEncoders()Ljava/util/List;
 Landroid/media/EncoderCapabilities;->getOutputFileFormats()[I
@@ -38393,7 +35837,6 @@
 Landroid/media/EncoderCapabilities;->native_get_video_encoder_cap(I)Landroid/media/EncoderCapabilities$VideoEncoderCap;
 Landroid/media/EncoderCapabilities;->native_init()V
 Landroid/media/EncoderCapabilities;->TAG:Ljava/lang/String;
-Landroid/media/ExifInterface$ByteOrderedDataInputStream;
 Landroid/media/ExifInterface$ByteOrderedDataInputStream;-><init>(Ljava/io/InputStream;)V
 Landroid/media/ExifInterface$ByteOrderedDataInputStream;-><init>([B)V
 Landroid/media/ExifInterface$ByteOrderedDataInputStream;->BIG_ENDIAN:Ljava/nio/ByteOrder;
@@ -38407,7 +35850,6 @@
 Landroid/media/ExifInterface$ByteOrderedDataInputStream;->readUnsignedInt()J
 Landroid/media/ExifInterface$ByteOrderedDataInputStream;->seek(J)V
 Landroid/media/ExifInterface$ByteOrderedDataInputStream;->setByteOrder(Ljava/nio/ByteOrder;)V
-Landroid/media/ExifInterface$ByteOrderedDataOutputStream;
 Landroid/media/ExifInterface$ByteOrderedDataOutputStream;-><init>(Ljava/io/OutputStream;Ljava/nio/ByteOrder;)V
 Landroid/media/ExifInterface$ByteOrderedDataOutputStream;->mByteOrder:Ljava/nio/ByteOrder;
 Landroid/media/ExifInterface$ByteOrderedDataOutputStream;->mOutputStream:Ljava/io/OutputStream;
@@ -38417,7 +35859,6 @@
 Landroid/media/ExifInterface$ByteOrderedDataOutputStream;->writeShort(S)V
 Landroid/media/ExifInterface$ByteOrderedDataOutputStream;->writeUnsignedInt(J)V
 Landroid/media/ExifInterface$ByteOrderedDataOutputStream;->writeUnsignedShort(I)V
-Landroid/media/ExifInterface$ExifAttribute;
 Landroid/media/ExifInterface$ExifAttribute;-><init>(II[B)V
 Landroid/media/ExifInterface$ExifAttribute;->bytes:[B
 Landroid/media/ExifInterface$ExifAttribute;->createByte(Ljava/lang/String;)Landroid/media/ExifInterface$ExifAttribute;
@@ -38441,15 +35882,12 @@
 Landroid/media/ExifInterface$ExifAttribute;->getValue(Ljava/nio/ByteOrder;)Ljava/lang/Object;
 Landroid/media/ExifInterface$ExifAttribute;->numberOfComponents:I
 Landroid/media/ExifInterface$ExifAttribute;->size()I
-Landroid/media/ExifInterface$ExifTag;
 Landroid/media/ExifInterface$ExifTag;-><init>(Ljava/lang/String;II)V
 Landroid/media/ExifInterface$ExifTag;-><init>(Ljava/lang/String;III)V
 Landroid/media/ExifInterface$ExifTag;->name:Ljava/lang/String;
 Landroid/media/ExifInterface$ExifTag;->number:I
 Landroid/media/ExifInterface$ExifTag;->primaryFormat:I
 Landroid/media/ExifInterface$ExifTag;->secondaryFormat:I
-Landroid/media/ExifInterface$IfdType;
-Landroid/media/ExifInterface$Rational;
 Landroid/media/ExifInterface$Rational;-><init>(JJ)V
 Landroid/media/ExifInterface$Rational;->calculate()D
 Landroid/media/ExifInterface$Rational;->denominator:J
@@ -38638,10 +36076,8 @@
 Landroid/media/ExifInterface;->updateImageSizeValues(Landroid/media/ExifInterface$ByteOrderedDataInputStream;I)V
 Landroid/media/ExifInterface;->validateImages(Ljava/io/InputStream;)V
 Landroid/media/ExifInterface;->writeExifSegment(Landroid/media/ExifInterface$ByteOrderedDataOutputStream;I)I
-Landroid/media/ExternalRingtonesCursorWrapper;
 Landroid/media/ExternalRingtonesCursorWrapper;-><init>(Landroid/database/Cursor;I)V
 Landroid/media/ExternalRingtonesCursorWrapper;->mUserId:I
-Landroid/media/FaceDetector$Face;-><init>()V
 Landroid/media/FaceDetector$Face;->mConfidence:F
 Landroid/media/FaceDetector$Face;->mEyesDist:F
 Landroid/media/FaceDetector$Face;->mMidPointX:F
@@ -38662,44 +36098,34 @@
 Landroid/media/FaceDetector;->mWidth:I
 Landroid/media/FaceDetector;->nativeClassInit()V
 Landroid/media/FaceDetector;->sInitialized:Z
-Landroid/media/IAudioFocusDispatcher$Stub$Proxy;
 Landroid/media/IAudioFocusDispatcher$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/IAudioFocusDispatcher$Stub$Proxy;->dispatchAudioFocusChange(ILjava/lang/String;)V
 Landroid/media/IAudioFocusDispatcher$Stub$Proxy;->dispatchFocusResultFromExtPolicy(ILjava/lang/String;)V
 Landroid/media/IAudioFocusDispatcher$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/IAudioFocusDispatcher$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/media/IAudioFocusDispatcher$Stub;
 Landroid/media/IAudioFocusDispatcher$Stub;-><init>()V
 Landroid/media/IAudioFocusDispatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IAudioFocusDispatcher;
 Landroid/media/IAudioFocusDispatcher$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/IAudioFocusDispatcher$Stub;->TRANSACTION_dispatchAudioFocusChange:I
 Landroid/media/IAudioFocusDispatcher$Stub;->TRANSACTION_dispatchFocusResultFromExtPolicy:I
-Landroid/media/IAudioFocusDispatcher;
 Landroid/media/IAudioFocusDispatcher;->dispatchFocusResultFromExtPolicy(ILjava/lang/String;)V
-Landroid/media/IAudioRoutesObserver$Stub$Proxy;
 Landroid/media/IAudioRoutesObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/IAudioRoutesObserver$Stub$Proxy;->dispatchAudioRoutesChanged(Landroid/media/AudioRoutesInfo;)V
 Landroid/media/IAudioRoutesObserver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/IAudioRoutesObserver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/media/IAudioRoutesObserver$Stub;
 Landroid/media/IAudioRoutesObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IAudioRoutesObserver;
 Landroid/media/IAudioRoutesObserver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/IAudioRoutesObserver$Stub;->TRANSACTION_dispatchAudioRoutesChanged:I
-Landroid/media/IAudioRoutesObserver;
 Landroid/media/IAudioRoutesObserver;->dispatchAudioRoutesChanged(Landroid/media/AudioRoutesInfo;)V
-Landroid/media/IAudioServerStateDispatcher$Stub$Proxy;
 Landroid/media/IAudioServerStateDispatcher$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/IAudioServerStateDispatcher$Stub$Proxy;->dispatchAudioServerStateChange(Z)V
 Landroid/media/IAudioServerStateDispatcher$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/IAudioServerStateDispatcher$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/media/IAudioServerStateDispatcher$Stub;
 Landroid/media/IAudioServerStateDispatcher$Stub;-><init>()V
 Landroid/media/IAudioServerStateDispatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IAudioServerStateDispatcher;
 Landroid/media/IAudioServerStateDispatcher$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/IAudioServerStateDispatcher$Stub;->TRANSACTION_dispatchAudioServerStateChange:I
-Landroid/media/IAudioServerStateDispatcher;
 Landroid/media/IAudioServerStateDispatcher;->dispatchAudioServerStateChange(Z)V
-Landroid/media/IAudioService$Stub$Proxy;
 Landroid/media/IAudioService$Stub$Proxy;->abandonAudioFocus(Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Landroid/media/AudioAttributes;Ljava/lang/String;)I
 Landroid/media/IAudioService$Stub$Proxy;->addMixForPolicy(Landroid/media/audiopolicy/AudioPolicyConfig;Landroid/media/audiopolicy/IAudioPolicyCallback;)I
 Landroid/media/IAudioService$Stub$Proxy;->adjustStreamVolume(IIILjava/lang/String;)V
@@ -38785,7 +36211,6 @@
 Landroid/media/IAudioService$Stub$Proxy;->unregisterAudioServerStateDispatcher(Landroid/media/IAudioServerStateDispatcher;)V
 Landroid/media/IAudioService$Stub$Proxy;->unregisterPlaybackCallback(Landroid/media/IPlaybackConfigDispatcher;)V
 Landroid/media/IAudioService$Stub$Proxy;->unregisterRecordingCallback(Landroid/media/IRecordingConfigDispatcher;)V
-Landroid/media/IAudioService$Stub;
 Landroid/media/IAudioService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/IAudioService$Stub;->TRANSACTION_abandonAudioFocus:I
 Landroid/media/IAudioService$Stub;->TRANSACTION_addMixForPolicy:I
@@ -38870,7 +36295,6 @@
 Landroid/media/IAudioService$Stub;->TRANSACTION_unregisterAudioServerStateDispatcher:I
 Landroid/media/IAudioService$Stub;->TRANSACTION_unregisterPlaybackCallback:I
 Landroid/media/IAudioService$Stub;->TRANSACTION_unregisterRecordingCallback:I
-Landroid/media/IAudioService;
 Landroid/media/IAudioService;->abandonAudioFocus(Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Landroid/media/AudioAttributes;Ljava/lang/String;)I
 Landroid/media/IAudioService;->addMixForPolicy(Landroid/media/audiopolicy/AudioPolicyConfig;Landroid/media/audiopolicy/IAudioPolicyCallback;)I
 Landroid/media/IAudioService;->adjustStreamVolume(IIILjava/lang/String;)V
@@ -38958,16 +36382,10 @@
 Landroid/media/Image;->mCropRect:Landroid/graphics/Rect;
 Landroid/media/Image;->mIsImageValid:Z
 Landroid/media/Image;->throwISEIfImageIsInvalid()V
-Landroid/media/ImageReader$ListenerHandler;
-Landroid/media/ImageReader$ListenerHandler;-><init>(Landroid/os/Looper;)V
-Landroid/media/ImageReader$SurfaceImage$SurfacePlane;
-Landroid/media/ImageReader$SurfaceImage$SurfacePlane;-><init>(IILjava/nio/ByteBuffer;)V
 Landroid/media/ImageReader$SurfaceImage$SurfacePlane;->clearBuffer()V
 Landroid/media/ImageReader$SurfaceImage$SurfacePlane;->mBuffer:Ljava/nio/ByteBuffer;
 Landroid/media/ImageReader$SurfaceImage$SurfacePlane;->mPixelStride:I
 Landroid/media/ImageReader$SurfaceImage$SurfacePlane;->mRowStride:I
-Landroid/media/ImageReader$SurfaceImage;
-Landroid/media/ImageReader$SurfaceImage;-><init>(I)V
 Landroid/media/ImageReader$SurfaceImage;->clearSurfacePlanes()V
 Landroid/media/ImageReader$SurfaceImage;->getNativeContext()J
 Landroid/media/ImageReader$SurfaceImage;->getOwner()Landroid/media/ImageReader;
@@ -39023,15 +36441,10 @@
 Landroid/media/ImageReader;->newInstance(IIIIJ)Landroid/media/ImageReader;
 Landroid/media/ImageReader;->postEventFromNative(Ljava/lang/Object;)V
 Landroid/media/ImageReader;->releaseImage(Landroid/media/Image;)V
-Landroid/media/ImageWriter$ListenerHandler;
-Landroid/media/ImageWriter$ListenerHandler;-><init>(Landroid/os/Looper;)V
-Landroid/media/ImageWriter$WriterSurfaceImage$SurfacePlane;
-Landroid/media/ImageWriter$WriterSurfaceImage$SurfacePlane;-><init>(IILjava/nio/ByteBuffer;)V
 Landroid/media/ImageWriter$WriterSurfaceImage$SurfacePlane;->clearBuffer()V
 Landroid/media/ImageWriter$WriterSurfaceImage$SurfacePlane;->mBuffer:Ljava/nio/ByteBuffer;
 Landroid/media/ImageWriter$WriterSurfaceImage$SurfacePlane;->mPixelStride:I
 Landroid/media/ImageWriter$WriterSurfaceImage$SurfacePlane;->mRowStride:I
-Landroid/media/ImageWriter$WriterSurfaceImage;
 Landroid/media/ImageWriter$WriterSurfaceImage;-><init>(Landroid/media/ImageWriter;)V
 Landroid/media/ImageWriter$WriterSurfaceImage;->clearSurfacePlanes()V
 Landroid/media/ImageWriter$WriterSurfaceImage;->DEFAULT_TIMESTAMP:J
@@ -39076,7 +36489,6 @@
 Landroid/media/ImageWriter;->nativeQueueInputImage(JLandroid/media/Image;JIIIIII)V
 Landroid/media/ImageWriter;->newInstance(Landroid/view/Surface;II)Landroid/media/ImageWriter;
 Landroid/media/ImageWriter;->postEventFromNative(Ljava/lang/Object;)V
-Landroid/media/IMediaHTTPConnection$Stub$Proxy;
 Landroid/media/IMediaHTTPConnection$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/IMediaHTTPConnection$Stub$Proxy;->connect(Ljava/lang/String;Ljava/lang/String;)Landroid/os/IBinder;
 Landroid/media/IMediaHTTPConnection$Stub$Proxy;->disconnect()V
@@ -39086,7 +36498,6 @@
 Landroid/media/IMediaHTTPConnection$Stub$Proxy;->getUri()Ljava/lang/String;
 Landroid/media/IMediaHTTPConnection$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/media/IMediaHTTPConnection$Stub$Proxy;->readAt(JI)I
-Landroid/media/IMediaHTTPConnection$Stub;
 Landroid/media/IMediaHTTPConnection$Stub;-><init>()V
 Landroid/media/IMediaHTTPConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IMediaHTTPConnection;
 Landroid/media/IMediaHTTPConnection$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -39096,53 +36507,42 @@
 Landroid/media/IMediaHTTPConnection$Stub;->TRANSACTION_getSize:I
 Landroid/media/IMediaHTTPConnection$Stub;->TRANSACTION_getUri:I
 Landroid/media/IMediaHTTPConnection$Stub;->TRANSACTION_readAt:I
-Landroid/media/IMediaHTTPConnection;
 Landroid/media/IMediaHTTPConnection;->connect(Ljava/lang/String;Ljava/lang/String;)Landroid/os/IBinder;
 Landroid/media/IMediaHTTPConnection;->disconnect()V
 Landroid/media/IMediaHTTPConnection;->getMIMEType()Ljava/lang/String;
 Landroid/media/IMediaHTTPConnection;->getSize()J
 Landroid/media/IMediaHTTPConnection;->getUri()Ljava/lang/String;
 Landroid/media/IMediaHTTPConnection;->readAt(JI)I
-Landroid/media/IMediaHTTPService$Stub$Proxy;
 Landroid/media/IMediaHTTPService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/IMediaHTTPService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/IMediaHTTPService$Stub$Proxy;->makeHTTPConnection()Landroid/media/IMediaHTTPConnection;
 Landroid/media/IMediaHTTPService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/media/IMediaHTTPService$Stub;
 Landroid/media/IMediaHTTPService$Stub;-><init>()V
 Landroid/media/IMediaHTTPService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IMediaHTTPService;
 Landroid/media/IMediaHTTPService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/IMediaHTTPService$Stub;->TRANSACTION_makeHTTPConnection:I
-Landroid/media/IMediaHTTPService;
 Landroid/media/IMediaHTTPService;->makeHTTPConnection()Landroid/media/IMediaHTTPConnection;
-Landroid/media/IMediaResourceMonitor$Stub$Proxy;
 Landroid/media/IMediaResourceMonitor$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/IMediaResourceMonitor$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/IMediaResourceMonitor$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/media/IMediaResourceMonitor$Stub$Proxy;->notifyResourceGranted(II)V
-Landroid/media/IMediaResourceMonitor$Stub;
 Landroid/media/IMediaResourceMonitor$Stub;-><init>()V
 Landroid/media/IMediaResourceMonitor$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IMediaResourceMonitor;
 Landroid/media/IMediaResourceMonitor$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/IMediaResourceMonitor$Stub;->TRANSACTION_notifyResourceGranted:I
-Landroid/media/IMediaResourceMonitor;
 Landroid/media/IMediaResourceMonitor;->notifyResourceGranted(II)V
-Landroid/media/IMediaRouterClient$Stub$Proxy;
 Landroid/media/IMediaRouterClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/IMediaRouterClient$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/IMediaRouterClient$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/media/IMediaRouterClient$Stub$Proxy;->onRestoreRoute()V
 Landroid/media/IMediaRouterClient$Stub$Proxy;->onStateChanged()V
-Landroid/media/IMediaRouterClient$Stub;
 Landroid/media/IMediaRouterClient$Stub;-><init>()V
 Landroid/media/IMediaRouterClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IMediaRouterClient;
 Landroid/media/IMediaRouterClient$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/IMediaRouterClient$Stub;->TRANSACTION_onRestoreRoute:I
 Landroid/media/IMediaRouterClient$Stub;->TRANSACTION_onStateChanged:I
-Landroid/media/IMediaRouterClient;
 Landroid/media/IMediaRouterClient;->onRestoreRoute()V
 Landroid/media/IMediaRouterClient;->onStateChanged()V
-Landroid/media/IMediaRouterService$Stub$Proxy;
 Landroid/media/IMediaRouterService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/IMediaRouterService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/IMediaRouterService$Stub$Proxy;->getState(Landroid/media/IMediaRouterClient;)Landroid/media/MediaRouterClientState;
@@ -39154,7 +36554,6 @@
 Landroid/media/IMediaRouterService$Stub$Proxy;->setDiscoveryRequest(Landroid/media/IMediaRouterClient;IZ)V
 Landroid/media/IMediaRouterService$Stub$Proxy;->setSelectedRoute(Landroid/media/IMediaRouterClient;Ljava/lang/String;Z)V
 Landroid/media/IMediaRouterService$Stub$Proxy;->unregisterClient(Landroid/media/IMediaRouterClient;)V
-Landroid/media/IMediaRouterService$Stub;
 Landroid/media/IMediaRouterService$Stub;-><init>()V
 Landroid/media/IMediaRouterService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/IMediaRouterService$Stub;->TRANSACTION_getState:I
@@ -39165,7 +36564,6 @@
 Landroid/media/IMediaRouterService$Stub;->TRANSACTION_setDiscoveryRequest:I
 Landroid/media/IMediaRouterService$Stub;->TRANSACTION_setSelectedRoute:I
 Landroid/media/IMediaRouterService$Stub;->TRANSACTION_unregisterClient:I
-Landroid/media/IMediaRouterService;
 Landroid/media/IMediaRouterService;->getState(Landroid/media/IMediaRouterClient;)Landroid/media/MediaRouterClientState;
 Landroid/media/IMediaRouterService;->isPlaybackActive(Landroid/media/IMediaRouterClient;)Z
 Landroid/media/IMediaRouterService;->registerClientAsUser(Landroid/media/IMediaRouterClient;Ljava/lang/String;I)V
@@ -39174,42 +36572,32 @@
 Landroid/media/IMediaRouterService;->setDiscoveryRequest(Landroid/media/IMediaRouterClient;IZ)V
 Landroid/media/IMediaRouterService;->setSelectedRoute(Landroid/media/IMediaRouterClient;Ljava/lang/String;Z)V
 Landroid/media/IMediaRouterService;->unregisterClient(Landroid/media/IMediaRouterClient;)V
-Landroid/media/IMediaScannerListener$Stub$Proxy;
 Landroid/media/IMediaScannerListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/IMediaScannerListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/IMediaScannerListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/media/IMediaScannerListener$Stub$Proxy;->scanCompleted(Ljava/lang/String;Landroid/net/Uri;)V
-Landroid/media/IMediaScannerListener$Stub;
 Landroid/media/IMediaScannerListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IMediaScannerListener;
 Landroid/media/IMediaScannerListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/IMediaScannerListener$Stub;->TRANSACTION_scanCompleted:I
-Landroid/media/IMediaScannerListener;
 Landroid/media/IMediaScannerListener;->scanCompleted(Ljava/lang/String;Landroid/net/Uri;)V
-Landroid/media/IMediaScannerService$Stub$Proxy;
 Landroid/media/IMediaScannerService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/IMediaScannerService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/IMediaScannerService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/media/IMediaScannerService$Stub$Proxy;->requestScanFile(Ljava/lang/String;Ljava/lang/String;Landroid/media/IMediaScannerListener;)V
 Landroid/media/IMediaScannerService$Stub$Proxy;->scanFile(Ljava/lang/String;Ljava/lang/String;)V
-Landroid/media/IMediaScannerService$Stub;
 Landroid/media/IMediaScannerService$Stub;-><init>()V
 Landroid/media/IMediaScannerService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/IMediaScannerService$Stub;->TRANSACTION_requestScanFile:I
 Landroid/media/IMediaScannerService$Stub;->TRANSACTION_scanFile:I
-Landroid/media/IMediaScannerService;
-Landroid/media/IPlaybackConfigDispatcher$Stub$Proxy;
 Landroid/media/IPlaybackConfigDispatcher$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/IPlaybackConfigDispatcher$Stub$Proxy;->dispatchPlaybackConfigChange(Ljava/util/List;Z)V
 Landroid/media/IPlaybackConfigDispatcher$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/IPlaybackConfigDispatcher$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/media/IPlaybackConfigDispatcher$Stub;
 Landroid/media/IPlaybackConfigDispatcher$Stub;-><init>()V
 Landroid/media/IPlaybackConfigDispatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IPlaybackConfigDispatcher;
 Landroid/media/IPlaybackConfigDispatcher$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/IPlaybackConfigDispatcher$Stub;->TRANSACTION_dispatchPlaybackConfigChange:I
-Landroid/media/IPlaybackConfigDispatcher;
 Landroid/media/IPlaybackConfigDispatcher;->dispatchPlaybackConfigChange(Ljava/util/List;Z)V
-Landroid/media/IPlayer$Stub$Proxy;
 Landroid/media/IPlayer$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/IPlayer$Stub$Proxy;->applyVolumeShaper(Landroid/media/VolumeShaper$Configuration;Landroid/media/VolumeShaper$Operation;)V
 Landroid/media/IPlayer$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -39220,7 +36608,6 @@
 Landroid/media/IPlayer$Stub$Proxy;->setVolume(F)V
 Landroid/media/IPlayer$Stub$Proxy;->start()V
 Landroid/media/IPlayer$Stub$Proxy;->stop()V
-Landroid/media/IPlayer$Stub;
 Landroid/media/IPlayer$Stub;-><init>()V
 Landroid/media/IPlayer$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IPlayer;
 Landroid/media/IPlayer$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -39231,7 +36618,6 @@
 Landroid/media/IPlayer$Stub;->TRANSACTION_setVolume:I
 Landroid/media/IPlayer$Stub;->TRANSACTION_start:I
 Landroid/media/IPlayer$Stub;->TRANSACTION_stop:I
-Landroid/media/IPlayer;
 Landroid/media/IPlayer;->applyVolumeShaper(Landroid/media/VolumeShaper$Configuration;Landroid/media/VolumeShaper$Operation;)V
 Landroid/media/IPlayer;->pause()V
 Landroid/media/IPlayer;->setPan(F)V
@@ -39239,30 +36625,23 @@
 Landroid/media/IPlayer;->setVolume(F)V
 Landroid/media/IPlayer;->start()V
 Landroid/media/IPlayer;->stop()V
-Landroid/media/IRecordingConfigDispatcher$Stub$Proxy;
 Landroid/media/IRecordingConfigDispatcher$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/IRecordingConfigDispatcher$Stub$Proxy;->dispatchRecordingConfigChange(Ljava/util/List;)V
 Landroid/media/IRecordingConfigDispatcher$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/IRecordingConfigDispatcher$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/media/IRecordingConfigDispatcher$Stub;
 Landroid/media/IRecordingConfigDispatcher$Stub;-><init>()V
 Landroid/media/IRecordingConfigDispatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IRecordingConfigDispatcher;
 Landroid/media/IRecordingConfigDispatcher$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/IRecordingConfigDispatcher$Stub;->TRANSACTION_dispatchRecordingConfigChange:I
-Landroid/media/IRecordingConfigDispatcher;
 Landroid/media/IRecordingConfigDispatcher;->dispatchRecordingConfigChange(Ljava/util/List;)V
-Landroid/media/IRemoteDisplayCallback$Stub$Proxy;
 Landroid/media/IRemoteDisplayCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/IRemoteDisplayCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/IRemoteDisplayCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/media/IRemoteDisplayCallback$Stub$Proxy;->onStateChanged(Landroid/media/RemoteDisplayState;)V
-Landroid/media/IRemoteDisplayCallback$Stub;
 Landroid/media/IRemoteDisplayCallback$Stub;-><init>()V
 Landroid/media/IRemoteDisplayCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IRemoteDisplayCallback;
 Landroid/media/IRemoteDisplayCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/IRemoteDisplayCallback$Stub;->TRANSACTION_onStateChanged:I
-Landroid/media/IRemoteDisplayCallback;
-Landroid/media/IRemoteDisplayProvider$Stub$Proxy;
 Landroid/media/IRemoteDisplayProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/IRemoteDisplayProvider$Stub$Proxy;->adjustVolume(Ljava/lang/String;I)V
 Landroid/media/IRemoteDisplayProvider$Stub$Proxy;->connect(Ljava/lang/String;)V
@@ -39272,7 +36651,6 @@
 Landroid/media/IRemoteDisplayProvider$Stub$Proxy;->setCallback(Landroid/media/IRemoteDisplayCallback;)V
 Landroid/media/IRemoteDisplayProvider$Stub$Proxy;->setDiscoveryMode(I)V
 Landroid/media/IRemoteDisplayProvider$Stub$Proxy;->setVolume(Ljava/lang/String;I)V
-Landroid/media/IRemoteDisplayProvider$Stub;
 Landroid/media/IRemoteDisplayProvider$Stub;-><init>()V
 Landroid/media/IRemoteDisplayProvider$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IRemoteDisplayProvider;
 Landroid/media/IRemoteDisplayProvider$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -39282,41 +36660,33 @@
 Landroid/media/IRemoteDisplayProvider$Stub;->TRANSACTION_setCallback:I
 Landroid/media/IRemoteDisplayProvider$Stub;->TRANSACTION_setDiscoveryMode:I
 Landroid/media/IRemoteDisplayProvider$Stub;->TRANSACTION_setVolume:I
-Landroid/media/IRemoteDisplayProvider;
 Landroid/media/IRemoteDisplayProvider;->adjustVolume(Ljava/lang/String;I)V
 Landroid/media/IRemoteDisplayProvider;->connect(Ljava/lang/String;)V
 Landroid/media/IRemoteDisplayProvider;->disconnect(Ljava/lang/String;)V
 Landroid/media/IRemoteDisplayProvider;->setCallback(Landroid/media/IRemoteDisplayCallback;)V
 Landroid/media/IRemoteDisplayProvider;->setDiscoveryMode(I)V
 Landroid/media/IRemoteDisplayProvider;->setVolume(Ljava/lang/String;I)V
-Landroid/media/IRemoteVolumeController$Stub$Proxy;
 Landroid/media/IRemoteVolumeController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/IRemoteVolumeController$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/IRemoteVolumeController$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/media/IRemoteVolumeController$Stub$Proxy;->remoteVolumeChanged(Landroid/media/session/ISessionController;I)V
 Landroid/media/IRemoteVolumeController$Stub$Proxy;->updateRemoteController(Landroid/media/session/ISessionController;)V
-Landroid/media/IRemoteVolumeController$Stub;
 Landroid/media/IRemoteVolumeController$Stub;-><init>()V
 Landroid/media/IRemoteVolumeController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IRemoteVolumeController;
 Landroid/media/IRemoteVolumeController$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/IRemoteVolumeController$Stub;->TRANSACTION_remoteVolumeChanged:I
 Landroid/media/IRemoteVolumeController$Stub;->TRANSACTION_updateRemoteController:I
-Landroid/media/IRemoteVolumeController;
 Landroid/media/IRemoteVolumeController;->remoteVolumeChanged(Landroid/media/session/ISessionController;I)V
 Landroid/media/IRemoteVolumeController;->updateRemoteController(Landroid/media/session/ISessionController;)V
-Landroid/media/IRemoteVolumeObserver$Stub$Proxy;
 Landroid/media/IRemoteVolumeObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/IRemoteVolumeObserver$Stub$Proxy;->dispatchRemoteVolumeUpdate(II)V
 Landroid/media/IRemoteVolumeObserver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/IRemoteVolumeObserver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/media/IRemoteVolumeObserver$Stub;
 Landroid/media/IRemoteVolumeObserver$Stub;-><init>()V
 Landroid/media/IRemoteVolumeObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IRemoteVolumeObserver;
 Landroid/media/IRemoteVolumeObserver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/IRemoteVolumeObserver$Stub;->TRANSACTION_dispatchRemoteVolumeUpdate:I
-Landroid/media/IRemoteVolumeObserver;
 Landroid/media/IRemoteVolumeObserver;->dispatchRemoteVolumeUpdate(II)V
-Landroid/media/IRingtonePlayer$Stub$Proxy;
 Landroid/media/IRingtonePlayer$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/IRingtonePlayer$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/IRingtonePlayer$Stub$Proxy;->getTitle(Landroid/net/Uri;)Ljava/lang/String;
@@ -39328,7 +36698,6 @@
 Landroid/media/IRingtonePlayer$Stub$Proxy;->setPlaybackProperties(Landroid/os/IBinder;FZ)V
 Landroid/media/IRingtonePlayer$Stub$Proxy;->stop(Landroid/os/IBinder;)V
 Landroid/media/IRingtonePlayer$Stub$Proxy;->stopAsync()V
-Landroid/media/IRingtonePlayer$Stub;
 Landroid/media/IRingtonePlayer$Stub;-><init>()V
 Landroid/media/IRingtonePlayer$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IRingtonePlayer;
 Landroid/media/IRingtonePlayer$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -39340,7 +36709,6 @@
 Landroid/media/IRingtonePlayer$Stub;->TRANSACTION_setPlaybackProperties:I
 Landroid/media/IRingtonePlayer$Stub;->TRANSACTION_stop:I
 Landroid/media/IRingtonePlayer$Stub;->TRANSACTION_stopAsync:I
-Landroid/media/IRingtonePlayer;
 Landroid/media/IRingtonePlayer;->getTitle(Landroid/net/Uri;)Ljava/lang/String;
 Landroid/media/IRingtonePlayer;->isPlaying(Landroid/os/IBinder;)Z
 Landroid/media/IRingtonePlayer;->openRingtone(Landroid/net/Uri;)Landroid/os/ParcelFileDescriptor;
@@ -39348,19 +36716,15 @@
 Landroid/media/IRingtonePlayer;->setPlaybackProperties(Landroid/os/IBinder;FZ)V
 Landroid/media/IRingtonePlayer;->stop(Landroid/os/IBinder;)V
 Landroid/media/IRingtonePlayer;->stopAsync()V
-Landroid/media/ISessionTokensListener$Stub$Proxy;
 Landroid/media/ISessionTokensListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/ISessionTokensListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/ISessionTokensListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/media/ISessionTokensListener$Stub$Proxy;->onSessionTokensChanged(Ljava/util/List;)V
-Landroid/media/ISessionTokensListener$Stub;
 Landroid/media/ISessionTokensListener$Stub;-><init>()V
 Landroid/media/ISessionTokensListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/ISessionTokensListener;
 Landroid/media/ISessionTokensListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/ISessionTokensListener$Stub;->TRANSACTION_onSessionTokensChanged:I
-Landroid/media/ISessionTokensListener;
 Landroid/media/ISessionTokensListener;->onSessionTokensChanged(Ljava/util/List;)V
-Landroid/media/IVolumeController$Stub$Proxy;
 Landroid/media/IVolumeController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/IVolumeController$Stub$Proxy;->dismiss()V
 Landroid/media/IVolumeController$Stub$Proxy;->displaySafeVolumeWarning(I)V
@@ -39370,7 +36734,6 @@
 Landroid/media/IVolumeController$Stub$Proxy;->setA11yMode(I)V
 Landroid/media/IVolumeController$Stub$Proxy;->setLayoutDirection(I)V
 Landroid/media/IVolumeController$Stub$Proxy;->volumeChanged(II)V
-Landroid/media/IVolumeController$Stub;
 Landroid/media/IVolumeController$Stub;-><init>()V
 Landroid/media/IVolumeController$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/IVolumeController$Stub;->TRANSACTION_dismiss:I
@@ -39379,15 +36742,12 @@
 Landroid/media/IVolumeController$Stub;->TRANSACTION_setA11yMode:I
 Landroid/media/IVolumeController$Stub;->TRANSACTION_setLayoutDirection:I
 Landroid/media/IVolumeController$Stub;->TRANSACTION_volumeChanged:I
-Landroid/media/IVolumeController;
 Landroid/media/IVolumeController;->dismiss()V
 Landroid/media/IVolumeController;->displaySafeVolumeWarning(I)V
 Landroid/media/IVolumeController;->masterMuteChanged(I)V
 Landroid/media/IVolumeController;->setA11yMode(I)V
 Landroid/media/IVolumeController;->setLayoutDirection(I)V
 Landroid/media/IVolumeController;->volumeChanged(II)V
-Landroid/media/JetPlayer$NativeEventHandler;
-Landroid/media/JetPlayer$NativeEventHandler;-><init>(Landroid/media/JetPlayer;Landroid/os/Looper;)V
 Landroid/media/JetPlayer$NativeEventHandler;->mJet:Landroid/media/JetPlayer;
 Landroid/media/JetPlayer;-><init>()V
 Landroid/media/JetPlayer;->JET_EVENT:I
@@ -39429,11 +36789,9 @@
 Landroid/media/JetPlayer;->native_triggerClip(I)Z
 Landroid/media/JetPlayer;->singletonRef:Landroid/media/JetPlayer;
 Landroid/media/JetPlayer;->TAG:Ljava/lang/String;
-Landroid/media/Media2DataSource;
 Landroid/media/Media2DataSource;-><init>()V
 Landroid/media/Media2DataSource;->getSize()J
 Landroid/media/Media2DataSource;->readAt(J[BII)I
-Landroid/media/Media2HTTPConnection;
 Landroid/media/Media2HTTPConnection;-><init>()V
 Landroid/media/Media2HTTPConnection;->connect(Ljava/lang/String;Ljava/lang/String;)Z
 Landroid/media/Media2HTTPConnection;->CONNECT_TIMEOUT_MS:I
@@ -39460,7 +36818,6 @@
 Landroid/media/Media2HTTPConnection;->TAG:Ljava/lang/String;
 Landroid/media/Media2HTTPConnection;->teardownConnection()V
 Landroid/media/Media2HTTPConnection;->VERBOSE:Z
-Landroid/media/Media2HTTPService;
 Landroid/media/Media2HTTPService;-><init>(Ljava/util/List;)V
 Landroid/media/Media2HTTPService;->createHTTPService(Ljava/lang/String;)Landroid/media/Media2HTTPService;
 Landroid/media/Media2HTTPService;->createHTTPService(Ljava/lang/String;Ljava/util/List;)Landroid/media/Media2HTTPService;
@@ -39468,8 +36825,6 @@
 Landroid/media/Media2HTTPService;->mCookies:Ljava/util/List;
 Landroid/media/Media2HTTPService;->mCookieStoreInitialized:Ljava/lang/Boolean;
 Landroid/media/Media2HTTPService;->TAG:Ljava/lang/String;
-Landroid/media/MediaActionSound$SoundState;
-Landroid/media/MediaActionSound$SoundState;-><init>(I)V
 Landroid/media/MediaActionSound$SoundState;->id:I
 Landroid/media/MediaActionSound$SoundState;->name:I
 Landroid/media/MediaActionSound$SoundState;->state:I
@@ -39485,7 +36840,6 @@
 Landroid/media/MediaActionSound;->STATE_LOADING_PLAY_REQUESTED:I
 Landroid/media/MediaActionSound;->STATE_NOT_LOADED:I
 Landroid/media/MediaActionSound;->TAG:Ljava/lang/String;
-Landroid/media/MediaBrowser2$BrowserCallback;
 Landroid/media/MediaBrowser2$BrowserCallback;-><init>()V
 Landroid/media/MediaBrowser2$BrowserCallback;->onChildrenChanged(Landroid/media/MediaBrowser2;Ljava/lang/String;ILandroid/os/Bundle;)V
 Landroid/media/MediaBrowser2$BrowserCallback;->onGetChildrenDone(Landroid/media/MediaBrowser2;Ljava/lang/String;IILjava/util/List;Landroid/os/Bundle;)V
@@ -39493,7 +36847,6 @@
 Landroid/media/MediaBrowser2$BrowserCallback;->onGetLibraryRootDone(Landroid/media/MediaBrowser2;Landroid/os/Bundle;Ljava/lang/String;Landroid/os/Bundle;)V
 Landroid/media/MediaBrowser2$BrowserCallback;->onGetSearchResultDone(Landroid/media/MediaBrowser2;Ljava/lang/String;IILjava/util/List;Landroid/os/Bundle;)V
 Landroid/media/MediaBrowser2$BrowserCallback;->onSearchResultChanged(Landroid/media/MediaBrowser2;Ljava/lang/String;ILandroid/os/Bundle;)V
-Landroid/media/MediaBrowser2;
 Landroid/media/MediaBrowser2;-><init>(Landroid/content/Context;Landroid/media/SessionToken2;Ljava/util/concurrent/Executor;Landroid/media/MediaBrowser2$BrowserCallback;)V
 Landroid/media/MediaBrowser2;->createProvider(Landroid/content/Context;Landroid/media/SessionToken2;Ljava/util/concurrent/Executor;Landroid/media/MediaController2$ControllerCallback;)Landroid/media/update/MediaBrowser2Provider;
 Landroid/media/MediaBrowser2;->getChildren(Ljava/lang/String;IILandroid/os/Bundle;)V
@@ -39504,18 +36857,13 @@
 Landroid/media/MediaBrowser2;->search(Ljava/lang/String;Landroid/os/Bundle;)V
 Landroid/media/MediaBrowser2;->subscribe(Ljava/lang/String;Landroid/os/Bundle;)V
 Landroid/media/MediaBrowser2;->unsubscribe(Ljava/lang/String;)V
-Landroid/media/MediaCas$EventHandler;
-Landroid/media/MediaCas$EventHandler;-><init>(Landroid/os/Looper;)V
 Landroid/media/MediaCas$EventHandler;->MSG_CAS_EVENT:I
-Landroid/media/MediaCas$OpenSessionCallback;
-Landroid/media/MediaCas$OpenSessionCallback;-><init>()V
 Landroid/media/MediaCas$OpenSessionCallback;->mSession:Landroid/media/MediaCas$Session;
 Landroid/media/MediaCas$OpenSessionCallback;->mStatus:I
 Landroid/media/MediaCas$PluginDescriptor;-><init>()V
 Landroid/media/MediaCas$PluginDescriptor;-><init>(Landroid/hardware/cas/V1_0/HidlCasPluginDescriptor;)V
 Landroid/media/MediaCas$PluginDescriptor;->mCASystemId:I
 Landroid/media/MediaCas$PluginDescriptor;->mName:Ljava/lang/String;
-Landroid/media/MediaCas$Session;-><init>(Ljava/util/ArrayList;)V
 Landroid/media/MediaCas$Session;->mSessionId:Ljava/util/ArrayList;
 Landroid/media/MediaCas;->cleanupAndRethrowIllegalState()V
 Landroid/media/MediaCas;->createFromSessionId(Ljava/util/ArrayList;)Landroid/media/MediaCas$Session;
@@ -39544,46 +36892,35 @@
 Landroid/media/MediaCasStateException;->mErrorCode:I
 Landroid/media/MediaCasStateException;->throwExceptionIfNeeded(I)V
 Landroid/media/MediaCasStateException;->throwExceptionIfNeeded(ILjava/lang/String;)V
-Landroid/media/MediaCodec$BufferFlag;
 Landroid/media/MediaCodec$BufferInfo;->dup()Landroid/media/MediaCodec$BufferInfo;
-Landroid/media/MediaCodec$BufferMap$CodecBuffer;
 Landroid/media/MediaCodec$BufferMap$CodecBuffer;-><init>()V
 Landroid/media/MediaCodec$BufferMap$CodecBuffer;->free()V
 Landroid/media/MediaCodec$BufferMap$CodecBuffer;->mByteBuffer:Ljava/nio/ByteBuffer;
 Landroid/media/MediaCodec$BufferMap$CodecBuffer;->mImage:Landroid/media/Image;
 Landroid/media/MediaCodec$BufferMap$CodecBuffer;->setByteBuffer(Ljava/nio/ByteBuffer;)V
 Landroid/media/MediaCodec$BufferMap$CodecBuffer;->setImage(Landroid/media/Image;)V
-Landroid/media/MediaCodec$BufferMap;
 Landroid/media/MediaCodec$BufferMap;-><init>()V
 Landroid/media/MediaCodec$BufferMap;->clear()V
 Landroid/media/MediaCodec$BufferMap;->mMap:Ljava/util/Map;
 Landroid/media/MediaCodec$BufferMap;->put(ILandroid/media/Image;)V
 Landroid/media/MediaCodec$BufferMap;->put(ILjava/nio/ByteBuffer;)V
 Landroid/media/MediaCodec$BufferMap;->remove(I)V
-Landroid/media/MediaCodec$CodecException$ReasonCode;
 Landroid/media/MediaCodec$CodecException;->ACTION_RECOVERABLE:I
 Landroid/media/MediaCodec$CodecException;->ACTION_TRANSIENT:I
 Landroid/media/MediaCodec$CodecException;->mActionCode:I
 Landroid/media/MediaCodec$CodecException;->mDiagnosticInfo:Ljava/lang/String;
 Landroid/media/MediaCodec$CodecException;->mErrorCode:I
-Landroid/media/MediaCodec$ConfigureFlag;
-Landroid/media/MediaCodec$CryptoException$CryptoErrorCode;
 Landroid/media/MediaCodec$CryptoException;->mErrorCode:I
 Landroid/media/MediaCodec$CryptoInfo$Pattern;->mEncryptBlocks:I
 Landroid/media/MediaCodec$CryptoInfo$Pattern;->mSkipBlocks:I
 Landroid/media/MediaCodec$CryptoInfo;->pattern:Landroid/media/MediaCodec$CryptoInfo$Pattern;
 Landroid/media/MediaCodec$CryptoInfo;->setPattern(II)V
 Landroid/media/MediaCodec$CryptoInfo;->zeroPattern:Landroid/media/MediaCodec$CryptoInfo$Pattern;
-Landroid/media/MediaCodec$EventHandler;
-Landroid/media/MediaCodec$EventHandler;-><init>(Landroid/media/MediaCodec;Landroid/os/Looper;)V
 Landroid/media/MediaCodec$EventHandler;->handleCallback(Landroid/os/Message;)V
 Landroid/media/MediaCodec$EventHandler;->mCodec:Landroid/media/MediaCodec;
-Landroid/media/MediaCodec$MediaImage$MediaPlane;
-Landroid/media/MediaCodec$MediaImage$MediaPlane;-><init>(Ljava/nio/ByteBuffer;II)V
 Landroid/media/MediaCodec$MediaImage$MediaPlane;->mColInc:I
 Landroid/media/MediaCodec$MediaImage$MediaPlane;->mData:Ljava/nio/ByteBuffer;
 Landroid/media/MediaCodec$MediaImage$MediaPlane;->mRowInc:I
-Landroid/media/MediaCodec$MediaImage;
 Landroid/media/MediaCodec$MediaImage;-><init>(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;ZJIILandroid/graphics/Rect;)V
 Landroid/media/MediaCodec$MediaImage;->getScalingMode()I
 Landroid/media/MediaCodec$MediaImage;->getTransform()I
@@ -39601,11 +36938,8 @@
 Landroid/media/MediaCodec$MediaImage;->mYOffset:I
 Landroid/media/MediaCodec$MediaImage;->TYPE_YUV:I
 Landroid/media/MediaCodec$MetricsConstants;-><init>()V
-Landroid/media/MediaCodec$OutputBufferInfo;
-Landroid/media/MediaCodec$PersistentSurface;
 Landroid/media/MediaCodec$PersistentSurface;-><init>()V
 Landroid/media/MediaCodec$PersistentSurface;->mPersistentObject:J
-Landroid/media/MediaCodec$VideoScalingMode;
 Landroid/media/MediaCodec;-><init>(Ljava/lang/String;ZZ)V
 Landroid/media/MediaCodec;->BUFFER_FLAG_MUXER_DATA:I
 Landroid/media/MediaCodec;->cacheBuffers(Z)V
@@ -39731,7 +37065,6 @@
 Landroid/media/MediaCodecInfo$EncoderCapabilities;->parseFromInfo(Landroid/media/MediaFormat;)V
 Landroid/media/MediaCodecInfo$EncoderCapabilities;->supports(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)Z
 Landroid/media/MediaCodecInfo$EncoderCapabilities;->supportsFormat(Landroid/media/MediaFormat;)Z
-Landroid/media/MediaCodecInfo$Feature;
 Landroid/media/MediaCodecInfo$Feature;-><init>(Ljava/lang/String;IZ)V
 Landroid/media/MediaCodecInfo$Feature;->mDefault:Z
 Landroid/media/MediaCodecInfo$Feature;->mName:Ljava/lang/String;
@@ -39815,7 +37148,6 @@
 Landroid/media/MediaCodecList;->sInitLock:Ljava/lang/Object;
 Landroid/media/MediaCodecList;->sRegularCodecInfos:[Landroid/media/MediaCodecInfo;
 Landroid/media/MediaCodecList;->TAG:Ljava/lang/String;
-Landroid/media/MediaController2$ControllerCallback;
 Landroid/media/MediaController2$ControllerCallback;-><init>()V
 Landroid/media/MediaController2$ControllerCallback;->onAllowedCommandsChanged(Landroid/media/MediaController2;Landroid/media/SessionCommandGroup2;)V
 Landroid/media/MediaController2$ControllerCallback;->onBufferingStateChanged(Landroid/media/MediaController2;Landroid/media/MediaItem2;I)V
@@ -39833,7 +37165,6 @@
 Landroid/media/MediaController2$ControllerCallback;->onRepeatModeChanged(Landroid/media/MediaController2;I)V
 Landroid/media/MediaController2$ControllerCallback;->onSeekCompleted(Landroid/media/MediaController2;J)V
 Landroid/media/MediaController2$ControllerCallback;->onShuffleModeChanged(Landroid/media/MediaController2;I)V
-Landroid/media/MediaController2$PlaybackInfo;
 Landroid/media/MediaController2$PlaybackInfo;-><init>(Landroid/media/update/MediaController2Provider$PlaybackInfoProvider;)V
 Landroid/media/MediaController2$PlaybackInfo;->getAudioAttributes()Landroid/media/AudioAttributes;
 Landroid/media/MediaController2$PlaybackInfo;->getControlType()I
@@ -39844,7 +37175,6 @@
 Landroid/media/MediaController2$PlaybackInfo;->mProvider:Landroid/media/update/MediaController2Provider$PlaybackInfoProvider;
 Landroid/media/MediaController2$PlaybackInfo;->PLAYBACK_TYPE_LOCAL:I
 Landroid/media/MediaController2$PlaybackInfo;->PLAYBACK_TYPE_REMOTE:I
-Landroid/media/MediaController2;
 Landroid/media/MediaController2;-><init>(Landroid/content/Context;Landroid/media/SessionToken2;Ljava/util/concurrent/Executor;Landroid/media/MediaController2$ControllerCallback;)V
 Landroid/media/MediaController2;->addPlaylistItem(ILandroid/media/MediaItem2;)V
 Landroid/media/MediaController2;->adjustVolume(II)V
@@ -39927,32 +37257,21 @@
 Landroid/media/MediaDescription;->mMediaUri:Landroid/net/Uri;
 Landroid/media/MediaDescription;->mSubtitle:Ljava/lang/CharSequence;
 Landroid/media/MediaDescription;->mTitle:Ljava/lang/CharSequence;
-Landroid/media/MediaDrm$ArrayProperty;
-Landroid/media/MediaDrm$Certificate;
 Landroid/media/MediaDrm$Certificate;-><init>()V
 Landroid/media/MediaDrm$Certificate;->mCertificateData:[B
 Landroid/media/MediaDrm$Certificate;->mWrappedKey:[B
-Landroid/media/MediaDrm$CertificateRequest;
 Landroid/media/MediaDrm$CertificateRequest;-><init>([BLjava/lang/String;)V
 Landroid/media/MediaDrm$CertificateRequest;->mData:[B
 Landroid/media/MediaDrm$CertificateRequest;->mDefaultUrl:Ljava/lang/String;
-Landroid/media/MediaDrm$CertificateType;
-Landroid/media/MediaDrm$CryptoSession;-><init>([BLjava/lang/String;Ljava/lang/String;)V
 Landroid/media/MediaDrm$CryptoSession;->mSessionId:[B
-Landroid/media/MediaDrm$DrmEvent;
-Landroid/media/MediaDrm$EventHandler;
-Landroid/media/MediaDrm$EventHandler;-><init>(Landroid/media/MediaDrm;Landroid/os/Looper;)V
 Landroid/media/MediaDrm$EventHandler;->mMediaDrm:Landroid/media/MediaDrm;
-Landroid/media/MediaDrm$KeyRequest$RequestType;
 Landroid/media/MediaDrm$KeyRequest;-><init>()V
 Landroid/media/MediaDrm$KeyRequest;->mData:[B
 Landroid/media/MediaDrm$KeyRequest;->mDefaultUrl:Ljava/lang/String;
 Landroid/media/MediaDrm$KeyRequest;->mRequestType:I
-Landroid/media/MediaDrm$KeyStatus$KeyStatusCode;
 Landroid/media/MediaDrm$KeyStatus;-><init>([BI)V
 Landroid/media/MediaDrm$KeyStatus;->mKeyId:[B
 Landroid/media/MediaDrm$KeyStatus;->mStatusCode:I
-Landroid/media/MediaDrm$KeyType;
 Landroid/media/MediaDrm$MediaDrmStateException;-><init>(ILjava/lang/String;)V
 Landroid/media/MediaDrm$MediaDrmStateException;->getErrorCode()I
 Landroid/media/MediaDrm$MediaDrmStateException;->mDiagnosticInfo:Ljava/lang/String;
@@ -39961,7 +37280,6 @@
 Landroid/media/MediaDrm$ProvisionRequest;-><init>()V
 Landroid/media/MediaDrm$ProvisionRequest;->mData:[B
 Landroid/media/MediaDrm$ProvisionRequest;->mDefaultUrl:Ljava/lang/String;
-Landroid/media/MediaDrm$StringProperty;
 Landroid/media/MediaDrm;->CERTIFICATE_TYPE_NONE:I
 Landroid/media/MediaDrm;->CERTIFICATE_TYPE_X509:I
 Landroid/media/MediaDrm;->decryptNative(Landroid/media/MediaDrm;[B[B[B[B)[B
@@ -40000,8 +37318,6 @@
 Landroid/media/MediaExtractor$CasInfo;->mSession:Landroid/media/MediaCas$Session;
 Landroid/media/MediaExtractor$CasInfo;->mSystemId:I
 Landroid/media/MediaExtractor$MetricsConstants;-><init>()V
-Landroid/media/MediaExtractor$SampleFlag;
-Landroid/media/MediaExtractor$SeekMode;
 Landroid/media/MediaExtractor;->getFileFormatNative()Ljava/util/Map;
 Landroid/media/MediaExtractor;->getTrackFormatNative(I)Ljava/util/Map;
 Landroid/media/MediaExtractor;->mMediaCas:Landroid/media/MediaCas;
@@ -40013,9 +37329,7 @@
 Landroid/media/MediaExtractor;->native_init()V
 Landroid/media/MediaExtractor;->native_setup()V
 Landroid/media/MediaExtractor;->toByteArray([B)Ljava/util/ArrayList;
-Landroid/media/MediaFile$MediaFileType;
 Landroid/media/MediaFile$MediaFileType;-><init>(ILjava/lang/String;)V
-Landroid/media/MediaFile;
 Landroid/media/MediaFile;->addFileType(Ljava/lang/String;ILjava/lang/String;IZ)V
 Landroid/media/MediaFile;->FILE_TYPE_3GPP2:I
 Landroid/media/MediaFile;->FILE_TYPE_3GPP:I
@@ -40093,9 +37407,6 @@
 Landroid/media/MediaFile;->LAST_VIDEO_FILE_TYPE2:I
 Landroid/media/MediaFile;->LAST_VIDEO_FILE_TYPE:I
 Landroid/media/MediaFile;->sMimeTypeMap:Ljava/util/HashMap;
-Landroid/media/MediaFormat$ColorRange;
-Landroid/media/MediaFormat$ColorStandard;
-Landroid/media/MediaFormat$ColorTransfer;
 Landroid/media/MediaFormat;-><init>(Ljava/util/Map;)V
 Landroid/media/MediaFormat;->getInteger(Ljava/lang/String;I)I
 Landroid/media/MediaFormat;->KEY_CA_SESSION_ID:Ljava/lang/String;
@@ -40103,7 +37414,6 @@
 Landroid/media/MediaFormat;->KEY_FEATURE_:Ljava/lang/String;
 Landroid/media/MediaFormat;->KEY_IS_TIMED_TEXT:Ljava/lang/String;
 Landroid/media/MediaFormat;->KEY_MAX_BIT_RATE:Ljava/lang/String;
-Landroid/media/MediaHTTPConnection;
 Landroid/media/MediaHTTPConnection;->CONNECT_TIMEOUT_MS:I
 Landroid/media/MediaHTTPConnection;->convertHeaderStringToMap(Ljava/lang/String;)Ljava/util/Map;
 Landroid/media/MediaHTTPConnection;->filterOutInternalHeaders(Ljava/lang/String;Ljava/lang/String;)Z
@@ -40124,14 +37434,12 @@
 Landroid/media/MediaHTTPConnection;->TAG:Ljava/lang/String;
 Landroid/media/MediaHTTPConnection;->teardownConnection()V
 Landroid/media/MediaHTTPConnection;->VERBOSE:Z
-Landroid/media/MediaHTTPService;
 Landroid/media/MediaHTTPService;-><init>(Ljava/util/List;)V
 Landroid/media/MediaHTTPService;->createHttpServiceBinderIfNecessary(Ljava/lang/String;Ljava/util/List;)Landroid/os/IBinder;
 Landroid/media/MediaHTTPService;->makeHTTPConnection()Landroid/media/IMediaHTTPConnection;
 Landroid/media/MediaHTTPService;->mCookies:Ljava/util/List;
 Landroid/media/MediaHTTPService;->mCookieStoreInitialized:Ljava/lang/Boolean;
 Landroid/media/MediaHTTPService;->TAG:Ljava/lang/String;
-Landroid/media/MediaInserter;
 Landroid/media/MediaInserter;-><init>(Landroid/content/ContentProviderClient;I)V
 Landroid/media/MediaInserter;->flush(Landroid/net/Uri;Ljava/util/List;)V
 Landroid/media/MediaInserter;->flushAllPriority()V
@@ -40142,15 +37450,12 @@
 Landroid/media/MediaInserter;->mPriorityRowMap:Ljava/util/HashMap;
 Landroid/media/MediaInserter;->mProvider:Landroid/content/ContentProviderClient;
 Landroid/media/MediaInserter;->mRowMap:Ljava/util/HashMap;
-Landroid/media/MediaItem2$Builder;
 Landroid/media/MediaItem2$Builder;-><init>(I)V
 Landroid/media/MediaItem2$Builder;->build()Landroid/media/MediaItem2;
 Landroid/media/MediaItem2$Builder;->mProvider:Landroid/media/update/MediaItem2Provider$BuilderProvider;
 Landroid/media/MediaItem2$Builder;->setDataSourceDesc(Landroid/media/DataSourceDesc;)Landroid/media/MediaItem2$Builder;
 Landroid/media/MediaItem2$Builder;->setMediaId(Ljava/lang/String;)Landroid/media/MediaItem2$Builder;
 Landroid/media/MediaItem2$Builder;->setMetadata(Landroid/media/MediaMetadata2;)Landroid/media/MediaItem2$Builder;
-Landroid/media/MediaItem2$Flags;
-Landroid/media/MediaItem2;
 Landroid/media/MediaItem2;-><init>(Landroid/media/update/MediaItem2Provider;)V
 Landroid/media/MediaItem2;->FLAG_BROWSABLE:I
 Landroid/media/MediaItem2;->FLAG_PLAYABLE:I
@@ -40165,7 +37470,6 @@
 Landroid/media/MediaItem2;->mProvider:Landroid/media/update/MediaItem2Provider;
 Landroid/media/MediaItem2;->setMetadata(Landroid/media/MediaMetadata2;)V
 Landroid/media/MediaItem2;->toBundle()Landroid/os/Bundle;
-Landroid/media/MediaLibraryService2$LibraryRoot;
 Landroid/media/MediaLibraryService2$LibraryRoot;-><init>(Ljava/lang/String;Landroid/os/Bundle;)V
 Landroid/media/MediaLibraryService2$LibraryRoot;->EXTRA_OFFLINE:Ljava/lang/String;
 Landroid/media/MediaLibraryService2$LibraryRoot;->EXTRA_RECENT:Ljava/lang/String;
@@ -40173,7 +37477,6 @@
 Landroid/media/MediaLibraryService2$LibraryRoot;->getExtras()Landroid/os/Bundle;
 Landroid/media/MediaLibraryService2$LibraryRoot;->getRootId()Ljava/lang/String;
 Landroid/media/MediaLibraryService2$LibraryRoot;->mProvider:Landroid/media/update/MediaLibraryService2Provider$LibraryRootProvider;
-Landroid/media/MediaLibraryService2$MediaLibrarySession$Builder;
 Landroid/media/MediaLibraryService2$MediaLibrarySession$Builder;-><init>(Landroid/media/MediaLibraryService2;Ljava/util/concurrent/Executor;Landroid/media/MediaLibraryService2$MediaLibrarySession$MediaLibrarySessionCallback;)V
 Landroid/media/MediaLibraryService2$MediaLibrarySession$Builder;->build()Landroid/media/MediaLibraryService2$MediaLibrarySession;
 Landroid/media/MediaLibraryService2$MediaLibrarySession$Builder;->setId(Ljava/lang/String;)Landroid/media/MediaLibraryService2$MediaLibrarySession$Builder;
@@ -40182,7 +37485,6 @@
 Landroid/media/MediaLibraryService2$MediaLibrarySession$Builder;->setSessionActivity(Landroid/app/PendingIntent;)Landroid/media/MediaLibraryService2$MediaLibrarySession$Builder;
 Landroid/media/MediaLibraryService2$MediaLibrarySession$Builder;->setSessionCallback(Ljava/util/concurrent/Executor;Landroid/media/MediaLibraryService2$MediaLibrarySession$MediaLibrarySessionCallback;)Landroid/media/MediaLibraryService2$MediaLibrarySession$Builder;
 Landroid/media/MediaLibraryService2$MediaLibrarySession$Builder;->setVolumeProvider(Landroid/media/VolumeProvider2;)Landroid/media/MediaLibraryService2$MediaLibrarySession$Builder;
-Landroid/media/MediaLibraryService2$MediaLibrarySession$MediaLibrarySessionCallback;
 Landroid/media/MediaLibraryService2$MediaLibrarySession$MediaLibrarySessionCallback;-><init>()V
 Landroid/media/MediaLibraryService2$MediaLibrarySession$MediaLibrarySessionCallback;->onGetChildren(Landroid/media/MediaLibraryService2$MediaLibrarySession;Landroid/media/MediaSession2$ControllerInfo;Ljava/lang/String;IILandroid/os/Bundle;)Ljava/util/List;
 Landroid/media/MediaLibraryService2$MediaLibrarySession$MediaLibrarySessionCallback;->onGetItem(Landroid/media/MediaLibraryService2$MediaLibrarySession;Landroid/media/MediaSession2$ControllerInfo;Ljava/lang/String;)Landroid/media/MediaItem2;
@@ -40191,26 +37493,18 @@
 Landroid/media/MediaLibraryService2$MediaLibrarySession$MediaLibrarySessionCallback;->onSearch(Landroid/media/MediaLibraryService2$MediaLibrarySession;Landroid/media/MediaSession2$ControllerInfo;Ljava/lang/String;Landroid/os/Bundle;)V
 Landroid/media/MediaLibraryService2$MediaLibrarySession$MediaLibrarySessionCallback;->onSubscribe(Landroid/media/MediaLibraryService2$MediaLibrarySession;Landroid/media/MediaSession2$ControllerInfo;Ljava/lang/String;Landroid/os/Bundle;)V
 Landroid/media/MediaLibraryService2$MediaLibrarySession$MediaLibrarySessionCallback;->onUnsubscribe(Landroid/media/MediaLibraryService2$MediaLibrarySession;Landroid/media/MediaSession2$ControllerInfo;Ljava/lang/String;)V
-Landroid/media/MediaLibraryService2$MediaLibrarySession;
 Landroid/media/MediaLibraryService2$MediaLibrarySession;-><init>(Landroid/media/update/MediaLibraryService2Provider$MediaLibrarySessionProvider;)V
 Landroid/media/MediaLibraryService2$MediaLibrarySession;->mProvider:Landroid/media/update/MediaLibraryService2Provider$MediaLibrarySessionProvider;
 Landroid/media/MediaLibraryService2$MediaLibrarySession;->notifyChildrenChanged(Landroid/media/MediaSession2$ControllerInfo;Ljava/lang/String;ILandroid/os/Bundle;)V
 Landroid/media/MediaLibraryService2$MediaLibrarySession;->notifyChildrenChanged(Ljava/lang/String;ILandroid/os/Bundle;)V
 Landroid/media/MediaLibraryService2$MediaLibrarySession;->notifySearchResultChanged(Landroid/media/MediaSession2$ControllerInfo;Ljava/lang/String;ILandroid/os/Bundle;)V
-Landroid/media/MediaLibraryService2;
 Landroid/media/MediaLibraryService2;-><init>()V
 Landroid/media/MediaLibraryService2;->createProvider()Landroid/media/update/MediaSessionService2Provider;
 Landroid/media/MediaLibraryService2;->onCreateSession(Ljava/lang/String;)Landroid/media/MediaLibraryService2$MediaLibrarySession;
 Landroid/media/MediaLibraryService2;->SERVICE_INTERFACE:Ljava/lang/String;
-Landroid/media/MediaMetadata$BitmapKey;
 Landroid/media/MediaMetadata$Builder;-><init>(Landroid/media/MediaMetadata;I)V
 Landroid/media/MediaMetadata$Builder;->mBundle:Landroid/os/Bundle;
 Landroid/media/MediaMetadata$Builder;->scaleBitmap(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;
-Landroid/media/MediaMetadata$LongKey;
-Landroid/media/MediaMetadata$RatingKey;
-Landroid/media/MediaMetadata$TextKey;
-Landroid/media/MediaMetadata2$BitmapKey;
-Landroid/media/MediaMetadata2$Builder;
 Landroid/media/MediaMetadata2$Builder;-><init>()V
 Landroid/media/MediaMetadata2$Builder;-><init>(Landroid/media/MediaMetadata2;)V
 Landroid/media/MediaMetadata2$Builder;-><init>(Landroid/media/update/MediaMetadata2Provider$BuilderProvider;)V
@@ -40223,11 +37517,6 @@
 Landroid/media/MediaMetadata2$Builder;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/media/MediaMetadata2$Builder;
 Landroid/media/MediaMetadata2$Builder;->putText(Ljava/lang/String;Ljava/lang/CharSequence;)Landroid/media/MediaMetadata2$Builder;
 Landroid/media/MediaMetadata2$Builder;->setExtras(Landroid/os/Bundle;)Landroid/media/MediaMetadata2$Builder;
-Landroid/media/MediaMetadata2$FloatKey;
-Landroid/media/MediaMetadata2$LongKey;
-Landroid/media/MediaMetadata2$RatingKey;
-Landroid/media/MediaMetadata2$TextKey;
-Landroid/media/MediaMetadata2;
 Landroid/media/MediaMetadata2;-><init>(Landroid/media/update/MediaMetadata2Provider;)V
 Landroid/media/MediaMetadata2;->BT_FOLDER_TYPE_ALBUMS:J
 Landroid/media/MediaMetadata2;->BT_FOLDER_TYPE_ARTISTS:J
@@ -40318,7 +37607,6 @@
 Landroid/media/MediaMetadataEditor;->TAG:Ljava/lang/String;
 Landroid/media/MediaMetadataRetriever$BitmapParams;->inPreferredConfig:Landroid/graphics/Bitmap$Config;
 Landroid/media/MediaMetadataRetriever$BitmapParams;->outActualConfig:Landroid/graphics/Bitmap$Config;
-Landroid/media/MediaMetadataRetriever$Option;
 Landroid/media/MediaMetadataRetriever;->EMBEDDED_PICTURE_TYPE_ANY:I
 Landroid/media/MediaMetadataRetriever;->getFramesAtIndexInternal(IILandroid/media/MediaMetadataRetriever$BitmapParams;)Ljava/util/List;
 Landroid/media/MediaMetadataRetriever;->getImageAtIndexInternal(ILandroid/media/MediaMetadataRetriever$BitmapParams;)Landroid/graphics/Bitmap;
@@ -40333,7 +37621,6 @@
 Landroid/media/MediaMetadataRetriever;->_getImageAtIndex(ILandroid/media/MediaMetadataRetriever$BitmapParams;)Landroid/graphics/Bitmap;
 Landroid/media/MediaMetadataRetriever;->_setDataSource(Landroid/media/MediaDataSource;)V
 Landroid/media/MediaMetadataRetriever;->_setDataSource(Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V
-Landroid/media/MediaMuxer$Format;
 Landroid/media/MediaMuxer$OutputFormat;-><init>()V
 Landroid/media/MediaMuxer$OutputFormat;->MUXER_OUTPUT_FIRST:I
 Landroid/media/MediaMuxer$OutputFormat;->MUXER_OUTPUT_LAST:I
@@ -40354,26 +37641,16 @@
 Landroid/media/MediaPlayer$DrmInfo;->mapPssh:Ljava/util/Map;
 Landroid/media/MediaPlayer$DrmInfo;->parsePSSH([BI)Ljava/util/Map;
 Landroid/media/MediaPlayer$DrmInfo;->supportedSchemes:[Ljava/util/UUID;
-Landroid/media/MediaPlayer$EventHandler;
-Landroid/media/MediaPlayer$EventHandler;-><init>(Landroid/media/MediaPlayer;Landroid/os/Looper;)V
 Landroid/media/MediaPlayer$EventHandler;->mMediaPlayer:Landroid/media/MediaPlayer;
 Landroid/media/MediaPlayer$MetricsConstants;-><init>()V
-Landroid/media/MediaPlayer$OnDrmInfoHandlerDelegate;
-Landroid/media/MediaPlayer$OnDrmInfoHandlerDelegate;-><init>(Landroid/media/MediaPlayer;Landroid/media/MediaPlayer$OnDrmInfoListener;Landroid/os/Handler;)V
 Landroid/media/MediaPlayer$OnDrmInfoHandlerDelegate;->mHandler:Landroid/os/Handler;
 Landroid/media/MediaPlayer$OnDrmInfoHandlerDelegate;->mMediaPlayer:Landroid/media/MediaPlayer;
 Landroid/media/MediaPlayer$OnDrmInfoHandlerDelegate;->mOnDrmInfoListener:Landroid/media/MediaPlayer$OnDrmInfoListener;
 Landroid/media/MediaPlayer$OnDrmInfoHandlerDelegate;->notifyClient(Landroid/media/MediaPlayer$DrmInfo;)V
-Landroid/media/MediaPlayer$OnDrmPreparedHandlerDelegate;
-Landroid/media/MediaPlayer$OnDrmPreparedHandlerDelegate;-><init>(Landroid/media/MediaPlayer;Landroid/media/MediaPlayer$OnDrmPreparedListener;Landroid/os/Handler;)V
 Landroid/media/MediaPlayer$OnDrmPreparedHandlerDelegate;->mHandler:Landroid/os/Handler;
 Landroid/media/MediaPlayer$OnDrmPreparedHandlerDelegate;->mMediaPlayer:Landroid/media/MediaPlayer;
 Landroid/media/MediaPlayer$OnDrmPreparedHandlerDelegate;->mOnDrmPreparedListener:Landroid/media/MediaPlayer$OnDrmPreparedListener;
 Landroid/media/MediaPlayer$OnDrmPreparedHandlerDelegate;->notifyClient(I)V
-Landroid/media/MediaPlayer$PlaybackRateAudioMode;
-Landroid/media/MediaPlayer$PrepareDrmStatusCode;
-Landroid/media/MediaPlayer$ProvisioningThread;
-Landroid/media/MediaPlayer$ProvisioningThread;-><init>()V
 Landroid/media/MediaPlayer$ProvisioningThread;->drmLock:Ljava/lang/Object;
 Landroid/media/MediaPlayer$ProvisioningThread;->finished:Z
 Landroid/media/MediaPlayer$ProvisioningThread;->initialize(Landroid/media/MediaDrm$ProvisionRequest;Ljava/util/UUID;Landroid/media/MediaPlayer;)Landroid/media/MediaPlayer$ProvisioningThread;
@@ -40384,10 +37661,6 @@
 Landroid/media/MediaPlayer$ProvisioningThread;->TIMEOUT_MS:I
 Landroid/media/MediaPlayer$ProvisioningThread;->urlStr:Ljava/lang/String;
 Landroid/media/MediaPlayer$ProvisioningThread;->uuid:Ljava/util/UUID;
-Landroid/media/MediaPlayer$SeekMode;
-Landroid/media/MediaPlayer$TimeProvider$EventHandler;
-Landroid/media/MediaPlayer$TimeProvider$EventHandler;-><init>(Landroid/os/Looper;)V
-Landroid/media/MediaPlayer$TimeProvider;
 Landroid/media/MediaPlayer$TimeProvider;-><init>(Landroid/media/MediaPlayer;)V
 Landroid/media/MediaPlayer$TimeProvider;->cancelNotifications(Landroid/media/MediaTimeProvider$OnMediaTimeListener;)V
 Landroid/media/MediaPlayer$TimeProvider;->close()V
@@ -40428,24 +37701,16 @@
 Landroid/media/MediaPlayer$TimeProvider;->scheduleUpdate(Landroid/media/MediaTimeProvider$OnMediaTimeListener;)V
 Landroid/media/MediaPlayer$TimeProvider;->TAG:Ljava/lang/String;
 Landroid/media/MediaPlayer$TimeProvider;->TIME_ADJUSTMENT_RATE:J
-Landroid/media/MediaPlayer$TrackInfo$TrackType;
 Landroid/media/MediaPlayer$TrackInfo;-><init>(ILandroid/media/MediaFormat;)V
 Landroid/media/MediaPlayer$TrackInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/media/MediaPlayer$TrackInfo;->mFormat:Landroid/media/MediaFormat;
 Landroid/media/MediaPlayer$TrackInfo;->mTrackType:I
-Landroid/media/MediaPlayer2$CallCompleted;
-Landroid/media/MediaPlayer2$CallStatus;
-Landroid/media/MediaPlayer2$DrmEventCallback;
 Landroid/media/MediaPlayer2$DrmEventCallback;-><init>()V
 Landroid/media/MediaPlayer2$DrmEventCallback;->onDrmInfo(Landroid/media/MediaPlayer2;Landroid/media/DataSourceDesc;Landroid/media/MediaPlayer2$DrmInfo;)V
 Landroid/media/MediaPlayer2$DrmEventCallback;->onDrmPrepared(Landroid/media/MediaPlayer2;Landroid/media/DataSourceDesc;I)V
-Landroid/media/MediaPlayer2$DrmInfo;
 Landroid/media/MediaPlayer2$DrmInfo;-><init>()V
 Landroid/media/MediaPlayer2$DrmInfo;->getPssh()Ljava/util/Map;
 Landroid/media/MediaPlayer2$DrmInfo;->getSupportedSchemes()Ljava/util/List;
-Landroid/media/MediaPlayer2$MediaError;
-Landroid/media/MediaPlayer2$MediaInfo;
-Landroid/media/MediaPlayer2$MediaPlayer2EventCallback;
 Landroid/media/MediaPlayer2$MediaPlayer2EventCallback;-><init>()V
 Landroid/media/MediaPlayer2$MediaPlayer2EventCallback;->onCallCompleted(Landroid/media/MediaPlayer2;Landroid/media/DataSourceDesc;II)V
 Landroid/media/MediaPlayer2$MediaPlayer2EventCallback;->onCommandLabelReached(Landroid/media/MediaPlayer2;Ljava/lang/Object;)V
@@ -40455,8 +37720,6 @@
 Landroid/media/MediaPlayer2$MediaPlayer2EventCallback;->onTimedMetaDataAvailable(Landroid/media/MediaPlayer2;Landroid/media/DataSourceDesc;Landroid/media/TimedMetaData;)V
 Landroid/media/MediaPlayer2$MediaPlayer2EventCallback;->onTimedText(Landroid/media/MediaPlayer2;Landroid/media/DataSourceDesc;Landroid/media/TimedText;)V
 Landroid/media/MediaPlayer2$MediaPlayer2EventCallback;->onVideoSizeChanged(Landroid/media/MediaPlayer2;Landroid/media/DataSourceDesc;II)V
-Landroid/media/MediaPlayer2$MediaPlayer2State;
-Landroid/media/MediaPlayer2$MetricsConstants;
 Landroid/media/MediaPlayer2$MetricsConstants;-><init>()V
 Landroid/media/MediaPlayer2$MetricsConstants;->CODEC_AUDIO:Ljava/lang/String;
 Landroid/media/MediaPlayer2$MetricsConstants;->CODEC_VIDEO:Ljava/lang/String;
@@ -40470,20 +37733,11 @@
 Landroid/media/MediaPlayer2$MetricsConstants;->MIME_TYPE_VIDEO:Ljava/lang/String;
 Landroid/media/MediaPlayer2$MetricsConstants;->PLAYING:Ljava/lang/String;
 Landroid/media/MediaPlayer2$MetricsConstants;->WIDTH:Ljava/lang/String;
-Landroid/media/MediaPlayer2$NoDrmSchemeException;
 Landroid/media/MediaPlayer2$NoDrmSchemeException;-><init>(Ljava/lang/String;)V
-Landroid/media/MediaPlayer2$OnDrmConfigHelper;
 Landroid/media/MediaPlayer2$OnDrmConfigHelper;->onDrmConfig(Landroid/media/MediaPlayer2;Landroid/media/DataSourceDesc;)V
-Landroid/media/MediaPlayer2$OnSubtitleDataListener;
 Landroid/media/MediaPlayer2$OnSubtitleDataListener;->onSubtitleData(Landroid/media/MediaPlayer2;Landroid/media/SubtitleData;)V
-Landroid/media/MediaPlayer2$PlaybackRateAudioMode;
-Landroid/media/MediaPlayer2$PrepareDrmStatusCode;
-Landroid/media/MediaPlayer2$ProvisioningNetworkErrorException;
 Landroid/media/MediaPlayer2$ProvisioningNetworkErrorException;-><init>(Ljava/lang/String;)V
-Landroid/media/MediaPlayer2$ProvisioningServerErrorException;
 Landroid/media/MediaPlayer2$ProvisioningServerErrorException;-><init>(Ljava/lang/String;)V
-Landroid/media/MediaPlayer2$SeekMode;
-Landroid/media/MediaPlayer2$TrackInfo;
 Landroid/media/MediaPlayer2$TrackInfo;-><init>()V
 Landroid/media/MediaPlayer2$TrackInfo;->getFormat()Landroid/media/MediaFormat;
 Landroid/media/MediaPlayer2$TrackInfo;->MEDIA_TRACK_TYPE_AUDIO:I
@@ -40492,7 +37746,6 @@
 Landroid/media/MediaPlayer2$TrackInfo;->MEDIA_TRACK_TYPE_TIMEDTEXT:I
 Landroid/media/MediaPlayer2$TrackInfo;->MEDIA_TRACK_TYPE_UNKNOWN:I
 Landroid/media/MediaPlayer2$TrackInfo;->MEDIA_TRACK_TYPE_VIDEO:I
-Landroid/media/MediaPlayer2;
 Landroid/media/MediaPlayer2;-><init>()V
 Landroid/media/MediaPlayer2;->addSubtitleSource(Ljava/io/InputStream;Landroid/media/MediaFormat;)V
 Landroid/media/MediaPlayer2;->addTimedTextSource(Landroid/content/Context;Landroid/net/Uri;Ljava/lang/String;)V
@@ -40667,7 +37920,6 @@
 Landroid/media/MediaPlayer2;->unregisterPlayerEventCallback(Landroid/media/MediaPlayerBase$PlayerEventCallback;)V
 Landroid/media/MediaPlayer2;->VIDEO_SCALING_MODE_SCALE_TO_FIT:I
 Landroid/media/MediaPlayer2;->VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING:I
-Landroid/media/MediaPlayer2Impl$DrmInfoImpl;
 Landroid/media/MediaPlayer2Impl$DrmInfoImpl;-><init>(Landroid/os/Parcel;)V
 Landroid/media/MediaPlayer2Impl$DrmInfoImpl;-><init>(Ljava/util/Map;[Ljava/util/UUID;)V
 Landroid/media/MediaPlayer2Impl$DrmInfoImpl;->arrToHex([B)Ljava/lang/String;
@@ -40678,18 +37930,11 @@
 Landroid/media/MediaPlayer2Impl$DrmInfoImpl;->mapPssh:Ljava/util/Map;
 Landroid/media/MediaPlayer2Impl$DrmInfoImpl;->parsePSSH([BI)Ljava/util/Map;
 Landroid/media/MediaPlayer2Impl$DrmInfoImpl;->supportedSchemes:[Ljava/util/UUID;
-Landroid/media/MediaPlayer2Impl$EventHandler;
-Landroid/media/MediaPlayer2Impl$EventHandler;-><init>(Landroid/media/MediaPlayer2Impl;Landroid/os/Looper;)V
 Landroid/media/MediaPlayer2Impl$EventHandler;->handleMessage(Landroid/os/Message;J)V
 Landroid/media/MediaPlayer2Impl$EventHandler;->mMediaPlayer:Landroid/media/MediaPlayer2Impl;
-Landroid/media/MediaPlayer2Impl$NoDrmSchemeExceptionImpl;
 Landroid/media/MediaPlayer2Impl$NoDrmSchemeExceptionImpl;-><init>(Ljava/lang/String;)V
-Landroid/media/MediaPlayer2Impl$ProvisioningNetworkErrorExceptionImpl;
 Landroid/media/MediaPlayer2Impl$ProvisioningNetworkErrorExceptionImpl;-><init>(Ljava/lang/String;)V
-Landroid/media/MediaPlayer2Impl$ProvisioningServerErrorExceptionImpl;
 Landroid/media/MediaPlayer2Impl$ProvisioningServerErrorExceptionImpl;-><init>(Ljava/lang/String;)V
-Landroid/media/MediaPlayer2Impl$ProvisioningThread;
-Landroid/media/MediaPlayer2Impl$ProvisioningThread;-><init>()V
 Landroid/media/MediaPlayer2Impl$ProvisioningThread;->drmLock:Ljava/lang/Object;
 Landroid/media/MediaPlayer2Impl$ProvisioningThread;->finished:Z
 Landroid/media/MediaPlayer2Impl$ProvisioningThread;->initialize(Landroid/media/MediaDrm$ProvisionRequest;Ljava/util/UUID;Landroid/media/MediaPlayer2Impl;)Landroid/media/MediaPlayer2Impl$ProvisioningThread;
@@ -40699,7 +37944,6 @@
 Landroid/media/MediaPlayer2Impl$ProvisioningThread;->TIMEOUT_MS:I
 Landroid/media/MediaPlayer2Impl$ProvisioningThread;->urlStr:Ljava/lang/String;
 Landroid/media/MediaPlayer2Impl$ProvisioningThread;->uuid:Ljava/util/UUID;
-Landroid/media/MediaPlayer2Impl$StreamEventCallback;
 Landroid/media/MediaPlayer2Impl$StreamEventCallback;-><init>(JJJ)V
 Landroid/media/MediaPlayer2Impl$StreamEventCallback;->mJAudioTrackPtr:J
 Landroid/media/MediaPlayer2Impl$StreamEventCallback;->mNativeCallbackPtr:J
@@ -40707,16 +37951,11 @@
 Landroid/media/MediaPlayer2Impl$StreamEventCallback;->onStreamDataRequest(Landroid/media/AudioTrack;)V
 Landroid/media/MediaPlayer2Impl$StreamEventCallback;->onStreamPresentationEnd(Landroid/media/AudioTrack;)V
 Landroid/media/MediaPlayer2Impl$StreamEventCallback;->onTearDown(Landroid/media/AudioTrack;)V
-Landroid/media/MediaPlayer2Impl$Task;
-Landroid/media/MediaPlayer2Impl$Task;-><init>(IZ)V
 Landroid/media/MediaPlayer2Impl$Task;->mDSD:Landroid/media/DataSourceDesc;
 Landroid/media/MediaPlayer2Impl$Task;->mMediaCallType:I
 Landroid/media/MediaPlayer2Impl$Task;->mNeedToWaitForEventToComplete:Z
 Landroid/media/MediaPlayer2Impl$Task;->process()V
 Landroid/media/MediaPlayer2Impl$Task;->sendCompleteNotification(I)V
-Landroid/media/MediaPlayer2Impl$TimeProvider$EventHandler;
-Landroid/media/MediaPlayer2Impl$TimeProvider$EventHandler;-><init>(Landroid/os/Looper;)V
-Landroid/media/MediaPlayer2Impl$TimeProvider;
 Landroid/media/MediaPlayer2Impl$TimeProvider;-><init>(Landroid/media/MediaPlayer2Impl;)V
 Landroid/media/MediaPlayer2Impl$TimeProvider;->cancelNotifications(Landroid/media/MediaTimeProvider$OnMediaTimeListener;)V
 Landroid/media/MediaPlayer2Impl$TimeProvider;->close()V
@@ -40758,7 +37997,6 @@
 Landroid/media/MediaPlayer2Impl$TimeProvider;->scheduleUpdate(Landroid/media/MediaTimeProvider$OnMediaTimeListener;)V
 Landroid/media/MediaPlayer2Impl$TimeProvider;->TAG:Ljava/lang/String;
 Landroid/media/MediaPlayer2Impl$TimeProvider;->TIME_ADJUSTMENT_RATE:J
-Landroid/media/MediaPlayer2Impl$TrackInfoImpl;
 Landroid/media/MediaPlayer2Impl$TrackInfoImpl;-><init>(ILandroid/media/MediaFormat;)V
 Landroid/media/MediaPlayer2Impl$TrackInfoImpl;-><init>(Landroid/os/Parcel;)V
 Landroid/media/MediaPlayer2Impl$TrackInfoImpl;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -40768,7 +38006,6 @@
 Landroid/media/MediaPlayer2Impl$TrackInfoImpl;->mFormat:Landroid/media/MediaFormat;
 Landroid/media/MediaPlayer2Impl$TrackInfoImpl;->mTrackType:I
 Landroid/media/MediaPlayer2Impl$TrackInfoImpl;->writeToParcel(Landroid/os/Parcel;I)V
-Landroid/media/MediaPlayer2Impl;
 Landroid/media/MediaPlayer2Impl;-><init>()V
 Landroid/media/MediaPlayer2Impl;->addSubtitleSource(Ljava/io/InputStream;Landroid/media/MediaFormat;)V
 Landroid/media/MediaPlayer2Impl;->addTask(Landroid/media/MediaPlayer2Impl$Task;)V
@@ -41158,8 +38395,6 @@
 Landroid/media/MediaPlayer;->_setVolume(FF)V
 Landroid/media/MediaPlayer;->_start()V
 Landroid/media/MediaPlayer;->_stop()V
-Landroid/media/MediaPlayerBase$BuffState;
-Landroid/media/MediaPlayerBase$PlayerEventCallback;
 Landroid/media/MediaPlayerBase$PlayerEventCallback;-><init>()V
 Landroid/media/MediaPlayerBase$PlayerEventCallback;->onBufferingStateChanged(Landroid/media/MediaPlayerBase;Landroid/media/DataSourceDesc;I)V
 Landroid/media/MediaPlayerBase$PlayerEventCallback;->onCurrentDataSourceChanged(Landroid/media/MediaPlayerBase;Landroid/media/DataSourceDesc;)V
@@ -41167,8 +38402,6 @@
 Landroid/media/MediaPlayerBase$PlayerEventCallback;->onPlaybackSpeedChanged(Landroid/media/MediaPlayerBase;F)V
 Landroid/media/MediaPlayerBase$PlayerEventCallback;->onPlayerStateChanged(Landroid/media/MediaPlayerBase;I)V
 Landroid/media/MediaPlayerBase$PlayerEventCallback;->onSeekCompleted(Landroid/media/MediaPlayerBase;J)V
-Landroid/media/MediaPlayerBase$PlayerState;
-Landroid/media/MediaPlayerBase;
 Landroid/media/MediaPlayerBase;-><init>()V
 Landroid/media/MediaPlayerBase;->BUFFERING_STATE_BUFFERING_AND_PLAYABLE:I
 Landroid/media/MediaPlayerBase;->BUFFERING_STATE_BUFFERING_AND_STARVED:I
@@ -41205,15 +38438,11 @@
 Landroid/media/MediaPlayerBase;->skipToNext()V
 Landroid/media/MediaPlayerBase;->UNKNOWN_TIME:J
 Landroid/media/MediaPlayerBase;->unregisterPlayerEventCallback(Landroid/media/MediaPlayerBase$PlayerEventCallback;)V
-Landroid/media/MediaPlaylistAgent$PlaylistEventCallback;
 Landroid/media/MediaPlaylistAgent$PlaylistEventCallback;-><init>()V
 Landroid/media/MediaPlaylistAgent$PlaylistEventCallback;->onPlaylistChanged(Landroid/media/MediaPlaylistAgent;Ljava/util/List;Landroid/media/MediaMetadata2;)V
 Landroid/media/MediaPlaylistAgent$PlaylistEventCallback;->onPlaylistMetadataChanged(Landroid/media/MediaPlaylistAgent;Landroid/media/MediaMetadata2;)V
 Landroid/media/MediaPlaylistAgent$PlaylistEventCallback;->onRepeatModeChanged(Landroid/media/MediaPlaylistAgent;I)V
 Landroid/media/MediaPlaylistAgent$PlaylistEventCallback;->onShuffleModeChanged(Landroid/media/MediaPlaylistAgent;I)V
-Landroid/media/MediaPlaylistAgent$RepeatMode;
-Landroid/media/MediaPlaylistAgent$ShuffleMode;
-Landroid/media/MediaPlaylistAgent;
 Landroid/media/MediaPlaylistAgent;-><init>()V
 Landroid/media/MediaPlaylistAgent;->addPlaylistItem(ILandroid/media/MediaItem2;)V
 Landroid/media/MediaPlaylistAgent;->getMediaItem(Landroid/media/DataSourceDesc;)Landroid/media/MediaItem2;
@@ -41244,11 +38473,7 @@
 Landroid/media/MediaPlaylistAgent;->skipToPreviousItem()V
 Landroid/media/MediaPlaylistAgent;->unregisterPlaylistEventCallback(Landroid/media/MediaPlaylistAgent$PlaylistEventCallback;)V
 Landroid/media/MediaPlaylistAgent;->updatePlaylistMetadata(Landroid/media/MediaMetadata2;)V
-Landroid/media/MediaRecorder$AudioEncoder;-><init>()V
-Landroid/media/MediaRecorder$AudioSource;-><init>()V
 Landroid/media/MediaRecorder$AudioSource;->AUDIO_SOURCE_INVALID:I
-Landroid/media/MediaRecorder$EventHandler;
-Landroid/media/MediaRecorder$EventHandler;-><init>(Landroid/media/MediaRecorder;Landroid/os/Looper;)V
 Landroid/media/MediaRecorder$EventHandler;->MEDIA_RECORDER_AUDIO_ROUTING_CHANGED:I
 Landroid/media/MediaRecorder$EventHandler;->MEDIA_RECORDER_EVENT_ERROR:I
 Landroid/media/MediaRecorder$EventHandler;->MEDIA_RECORDER_EVENT_INFO:I
@@ -41260,11 +38485,8 @@
 Landroid/media/MediaRecorder$EventHandler;->MEDIA_RECORDER_TRACK_EVENT_LIST_START:I
 Landroid/media/MediaRecorder$EventHandler;->mMediaRecorder:Landroid/media/MediaRecorder;
 Landroid/media/MediaRecorder$MetricsConstants;-><init>()V
-Landroid/media/MediaRecorder$OutputFormat;-><init>()V
 Landroid/media/MediaRecorder$OutputFormat;->AAC_ADIF:I
 Landroid/media/MediaRecorder$OutputFormat;->OUTPUT_FORMAT_RTP_AVP:I
-Landroid/media/MediaRecorder$VideoEncoder;-><init>()V
-Landroid/media/MediaRecorder$VideoSource;-><init>()V
 Landroid/media/MediaRecorder;->enableNativeRoutingCallbacksLocked(Z)V
 Landroid/media/MediaRecorder;->isSystemOnlyAudioSource(I)Z
 Landroid/media/MediaRecorder;->mChannelCount:I
@@ -41297,7 +38519,6 @@
 Landroid/media/MediaRecorder;->toLogFriendlyAudioSource(I)Ljava/lang/String;
 Landroid/media/MediaRecorder;->_setNextOutputFile(Ljava/io/FileDescriptor;)V
 Landroid/media/MediaRecorder;->_setOutputFile(Ljava/io/FileDescriptor;)V
-Landroid/media/MediaRouter$CallbackInfo;
 Landroid/media/MediaRouter$CallbackInfo;-><init>(Landroid/media/MediaRouter$Callback;IILandroid/media/MediaRouter;)V
 Landroid/media/MediaRouter$CallbackInfo;->cb:Landroid/media/MediaRouter$Callback;
 Landroid/media/MediaRouter$CallbackInfo;->filterRouteEvent(I)Z
@@ -41324,9 +38545,6 @@
 Landroid/media/MediaRouter$RouteGroup;->routeUpdated()V
 Landroid/media/MediaRouter$RouteGroup;->updateName()V
 Landroid/media/MediaRouter$RouteGroup;->updateVolume()V
-Landroid/media/MediaRouter$RouteInfo$DeviceType;
-Landroid/media/MediaRouter$RouteInfo$PlaybackType;
-Landroid/media/MediaRouter$RouteInfo$PlaybackVolume;
 Landroid/media/MediaRouter$RouteInfo;-><init>(Landroid/media/MediaRouter$RouteCategory;)V
 Landroid/media/MediaRouter$RouteInfo;->choosePresentationDisplay()Landroid/view/Display;
 Landroid/media/MediaRouter$RouteInfo;->isBluetooth()Z
@@ -41364,11 +38582,8 @@
 Landroid/media/MediaRouter$RouteInfo;->STATUS_NOT_AVAILABLE:I
 Landroid/media/MediaRouter$RouteInfo;->STATUS_SCANNING:I
 Landroid/media/MediaRouter$RouteInfo;->updatePresentationDisplay()Z
-Landroid/media/MediaRouter$Static$Client;
-Landroid/media/MediaRouter$Static$Client;-><init>()V
 Landroid/media/MediaRouter$Static$Client;->onRestoreRoute()V
 Landroid/media/MediaRouter$Static$Client;->onStateChanged()V
-Landroid/media/MediaRouter$Static;
 Landroid/media/MediaRouter$Static;-><init>(Landroid/content/Context;)V
 Landroid/media/MediaRouter$Static;->findGlobalRoute(Ljava/lang/String;)Landroid/media/MediaRouter$RouteInfo;
 Landroid/media/MediaRouter$Static;->getAllPresentationDisplays()[Landroid/view/Display;
@@ -41410,20 +38625,15 @@
 Landroid/media/MediaRouter$Static;->updateDiscoveryRequest()V
 Landroid/media/MediaRouter$Static;->updateGlobalRoute(Landroid/media/MediaRouter$RouteInfo;Landroid/media/MediaRouterClientState$RouteInfo;)V
 Landroid/media/MediaRouter$Static;->updatePresentationDisplays(I)V
-Landroid/media/MediaRouter$UserRouteInfo$SessionVolumeProvider;
-Landroid/media/MediaRouter$UserRouteInfo$SessionVolumeProvider;-><init>(III)V
 Landroid/media/MediaRouter$UserRouteInfo;-><init>(Landroid/media/MediaRouter$RouteCategory;)V
 Landroid/media/MediaRouter$UserRouteInfo;->configureSessionVolume()V
 Landroid/media/MediaRouter$UserRouteInfo;->mRcc:Landroid/media/RemoteControlClient;
 Landroid/media/MediaRouter$UserRouteInfo;->mSvp:Landroid/media/MediaRouter$UserRouteInfo$SessionVolumeProvider;
 Landroid/media/MediaRouter$UserRouteInfo;->updatePlaybackInfoOnRcc()V
-Landroid/media/MediaRouter$VolumeCallbackInfo;
 Landroid/media/MediaRouter$VolumeCallbackInfo;-><init>(Landroid/media/MediaRouter$VolumeCallback;Landroid/media/MediaRouter$RouteInfo;)V
 Landroid/media/MediaRouter$VolumeCallbackInfo;->route:Landroid/media/MediaRouter$RouteInfo;
 Landroid/media/MediaRouter$VolumeCallbackInfo;->vcb:Landroid/media/MediaRouter$VolumeCallback;
-Landroid/media/MediaRouter$VolumeChangeReceiver;
 Landroid/media/MediaRouter$VolumeChangeReceiver;-><init>()V
-Landroid/media/MediaRouter$WifiDisplayStatusChangedReceiver;
 Landroid/media/MediaRouter$WifiDisplayStatusChangedReceiver;-><init>()V
 Landroid/media/MediaRouter;-><init>(Landroid/content/Context;)V
 Landroid/media/MediaRouter;->addRouteInt(Landroid/media/MediaRouter$RouteInfo;)V
@@ -41470,7 +38680,6 @@
 Landroid/media/MediaRouter;->updateRoute(Landroid/media/MediaRouter$RouteInfo;)V
 Landroid/media/MediaRouter;->updateWifiDisplayRoute(Landroid/media/MediaRouter$RouteInfo;Landroid/hardware/display/WifiDisplay;Landroid/hardware/display/WifiDisplayStatus;Z)V
 Landroid/media/MediaRouter;->updateWifiDisplayStatus(Landroid/hardware/display/WifiDisplayStatus;)V
-Landroid/media/MediaRouterClientState$RouteInfo;
 Landroid/media/MediaRouterClientState$RouteInfo;-><init>(Landroid/media/MediaRouterClientState$RouteInfo;)V
 Landroid/media/MediaRouterClientState$RouteInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/media/MediaRouterClientState$RouteInfo;-><init>(Ljava/lang/String;)V
@@ -41488,17 +38697,14 @@
 Landroid/media/MediaRouterClientState$RouteInfo;->volume:I
 Landroid/media/MediaRouterClientState$RouteInfo;->volumeHandling:I
 Landroid/media/MediaRouterClientState$RouteInfo;->volumeMax:I
-Landroid/media/MediaRouterClientState;
 Landroid/media/MediaRouterClientState;-><init>()V
 Landroid/media/MediaRouterClientState;-><init>(Landroid/os/Parcel;)V
 Landroid/media/MediaRouterClientState;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/media/MediaRouterClientState;->getRoute(Ljava/lang/String;)Landroid/media/MediaRouterClientState$RouteInfo;
 Landroid/media/MediaRouterClientState;->routes:Ljava/util/ArrayList;
-Landroid/media/MediaScanner$FileEntry;
 Landroid/media/MediaScanner$FileEntry;->mFormat:I
 Landroid/media/MediaScanner$FileEntry;->mLastModified:J
 Landroid/media/MediaScanner$FileEntry;->mPath:Ljava/lang/String;
-Landroid/media/MediaScanner$MediaBulkDeleter;
 Landroid/media/MediaScanner$MediaBulkDeleter;-><init>(Landroid/content/ContentProviderClient;Landroid/net/Uri;)V
 Landroid/media/MediaScanner$MediaBulkDeleter;->delete(J)V
 Landroid/media/MediaScanner$MediaBulkDeleter;->flush()V
@@ -41506,8 +38712,6 @@
 Landroid/media/MediaScanner$MediaBulkDeleter;->mProvider:Landroid/content/ContentProviderClient;
 Landroid/media/MediaScanner$MediaBulkDeleter;->whereArgs:Ljava/util/ArrayList;
 Landroid/media/MediaScanner$MediaBulkDeleter;->whereClause:Ljava/lang/StringBuilder;
-Landroid/media/MediaScanner$MyMediaScannerClient;
-Landroid/media/MediaScanner$MyMediaScannerClient;-><init>()V
 Landroid/media/MediaScanner$MyMediaScannerClient;->convertGenreCode(Ljava/lang/String;Ljava/lang/String;)Z
 Landroid/media/MediaScanner$MyMediaScannerClient;->doesPathHaveFilename(Ljava/lang/String;Ljava/lang/String;)Z
 Landroid/media/MediaScanner$MyMediaScannerClient;->getGenreName(Ljava/lang/String;)Ljava/lang/String;
@@ -41534,17 +38738,13 @@
 Landroid/media/MediaScanner$MyMediaScannerClient;->processImageFile(Ljava/lang/String;)Z
 Landroid/media/MediaScanner$MyMediaScannerClient;->setRingtoneIfNotSet(Ljava/lang/String;Landroid/net/Uri;J)V
 Landroid/media/MediaScanner$MyMediaScannerClient;->testGenreNameConverter()V
-Landroid/media/MediaScanner$PlaylistEntry;
 Landroid/media/MediaScanner$PlaylistEntry;-><init>()V
 Landroid/media/MediaScanner$PlaylistEntry;->bestmatchid:J
 Landroid/media/MediaScanner$PlaylistEntry;->bestmatchlevel:I
 Landroid/media/MediaScanner$PlaylistEntry;->path:Ljava/lang/String;
-Landroid/media/MediaScanner$WplHandler;
-Landroid/media/MediaScanner$WplHandler;-><init>(Ljava/lang/String;Landroid/net/Uri;Landroid/database/Cursor;)V
 Landroid/media/MediaScanner$WplHandler;->getContentHandler()Lorg/xml/sax/ContentHandler;
 Landroid/media/MediaScanner$WplHandler;->handler:Lorg/xml/sax/ContentHandler;
 Landroid/media/MediaScanner$WplHandler;->playListDirectory:Ljava/lang/String;
-Landroid/media/MediaScanner;
 Landroid/media/MediaScanner;->ALARMS_DIR:Ljava/lang/String;
 Landroid/media/MediaScanner;->cachePlaylistEntry(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/media/MediaScanner;->clearMediaPathCache(ZZ)V
@@ -41614,11 +38814,9 @@
 Landroid/media/MediaScanner;->SYSTEM_SOUNDS_DIR:Ljava/lang/String;
 Landroid/media/MediaScanner;->TAG:Ljava/lang/String;
 Landroid/media/MediaScanner;->wasRingtoneAlreadySet(Ljava/lang/String;)Z
-Landroid/media/MediaScannerClient;
 Landroid/media/MediaScannerClient;->handleStringTag(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/media/MediaScannerClient;->scanFile(Ljava/lang/String;JJZZ)V
 Landroid/media/MediaScannerClient;->setMimeType(Ljava/lang/String;)V
-Landroid/media/MediaScannerConnection$ClientProxy;
 Landroid/media/MediaScannerConnection$ClientProxy;-><init>([Ljava/lang/String;[Ljava/lang/String;Landroid/media/MediaScannerConnection$OnScanCompletedListener;)V
 Landroid/media/MediaScannerConnection$ClientProxy;->mClient:Landroid/media/MediaScannerConnection$OnScanCompletedListener;
 Landroid/media/MediaScannerConnection$ClientProxy;->mConnection:Landroid/media/MediaScannerConnection;
@@ -41632,7 +38830,6 @@
 Landroid/media/MediaScannerConnection;->mListener:Landroid/media/IMediaScannerListener$Stub;
 Landroid/media/MediaScannerConnection;->mService:Landroid/media/IMediaScannerService;
 Landroid/media/MediaScannerConnection;->TAG:Ljava/lang/String;
-Landroid/media/MediaSession2$Builder;
 Landroid/media/MediaSession2$Builder;-><init>(Landroid/content/Context;)V
 Landroid/media/MediaSession2$Builder;->build()Landroid/media/MediaSession2;
 Landroid/media/MediaSession2$Builder;->setId(Ljava/lang/String;)Landroid/media/MediaSession2$Builder;
@@ -41641,7 +38838,6 @@
 Landroid/media/MediaSession2$Builder;->setSessionActivity(Landroid/app/PendingIntent;)Landroid/media/MediaSession2$Builder;
 Landroid/media/MediaSession2$Builder;->setSessionCallback(Ljava/util/concurrent/Executor;Landroid/media/MediaSession2$SessionCallback;)Landroid/media/MediaSession2$Builder;
 Landroid/media/MediaSession2$Builder;->setVolumeProvider(Landroid/media/VolumeProvider2;)Landroid/media/MediaSession2$Builder;
-Landroid/media/MediaSession2$BuilderBase;
 Landroid/media/MediaSession2$BuilderBase;-><init>(Landroid/media/update/ProviderCreator;)V
 Landroid/media/MediaSession2$BuilderBase;->build()Landroid/media/MediaSession2;
 Landroid/media/MediaSession2$BuilderBase;->mProvider:Landroid/media/update/MediaSession2Provider$BuilderBaseProvider;
@@ -41651,7 +38847,6 @@
 Landroid/media/MediaSession2$BuilderBase;->setSessionActivity(Landroid/app/PendingIntent;)Landroid/media/MediaSession2$BuilderBase;
 Landroid/media/MediaSession2$BuilderBase;->setSessionCallback(Ljava/util/concurrent/Executor;Landroid/media/MediaSession2$SessionCallback;)Landroid/media/MediaSession2$BuilderBase;
 Landroid/media/MediaSession2$BuilderBase;->setVolumeProvider(Landroid/media/VolumeProvider2;)Landroid/media/MediaSession2$BuilderBase;
-Landroid/media/MediaSession2$CommandButton$Builder;
 Landroid/media/MediaSession2$CommandButton$Builder;-><init>()V
 Landroid/media/MediaSession2$CommandButton$Builder;->build()Landroid/media/MediaSession2$CommandButton;
 Landroid/media/MediaSession2$CommandButton$Builder;->mProvider:Landroid/media/update/MediaSession2Provider$CommandButtonProvider$BuilderProvider;
@@ -41660,7 +38855,6 @@
 Landroid/media/MediaSession2$CommandButton$Builder;->setEnabled(Z)Landroid/media/MediaSession2$CommandButton$Builder;
 Landroid/media/MediaSession2$CommandButton$Builder;->setExtras(Landroid/os/Bundle;)Landroid/media/MediaSession2$CommandButton$Builder;
 Landroid/media/MediaSession2$CommandButton$Builder;->setIconResId(I)Landroid/media/MediaSession2$CommandButton$Builder;
-Landroid/media/MediaSession2$CommandButton;
 Landroid/media/MediaSession2$CommandButton;-><init>(Landroid/media/update/MediaSession2Provider$CommandButtonProvider;)V
 Landroid/media/MediaSession2$CommandButton;->getCommand()Landroid/media/SessionCommand2;
 Landroid/media/MediaSession2$CommandButton;->getDisplayName()Ljava/lang/String;
@@ -41669,17 +38863,13 @@
 Landroid/media/MediaSession2$CommandButton;->getProvider()Landroid/media/update/MediaSession2Provider$CommandButtonProvider;
 Landroid/media/MediaSession2$CommandButton;->isEnabled()Z
 Landroid/media/MediaSession2$CommandButton;->mProvider:Landroid/media/update/MediaSession2Provider$CommandButtonProvider;
-Landroid/media/MediaSession2$ControllerInfo;
 Landroid/media/MediaSession2$ControllerInfo;-><init>(Landroid/content/Context;IILjava/lang/String;Landroid/os/IInterface;)V
 Landroid/media/MediaSession2$ControllerInfo;->getPackageName()Ljava/lang/String;
 Landroid/media/MediaSession2$ControllerInfo;->getProvider()Landroid/media/update/MediaSession2Provider$ControllerInfoProvider;
 Landroid/media/MediaSession2$ControllerInfo;->getUid()I
 Landroid/media/MediaSession2$ControllerInfo;->isTrusted()Z
 Landroid/media/MediaSession2$ControllerInfo;->mProvider:Landroid/media/update/MediaSession2Provider$ControllerInfoProvider;
-Landroid/media/MediaSession2$ErrorCode;
-Landroid/media/MediaSession2$OnDataSourceMissingHelper;
 Landroid/media/MediaSession2$OnDataSourceMissingHelper;->onDataSourceMissing(Landroid/media/MediaSession2;Landroid/media/MediaItem2;)Landroid/media/DataSourceDesc;
-Landroid/media/MediaSession2$SessionCallback;
 Landroid/media/MediaSession2$SessionCallback;-><init>()V
 Landroid/media/MediaSession2$SessionCallback;->onBufferingStateChanged(Landroid/media/MediaSession2;Landroid/media/MediaPlayerBase;Landroid/media/MediaItem2;I)V
 Landroid/media/MediaSession2$SessionCallback;->onCommandRequest(Landroid/media/MediaSession2;Landroid/media/MediaSession2$ControllerInfo;Landroid/media/SessionCommand2;)Z
@@ -41704,7 +38894,6 @@
 Landroid/media/MediaSession2$SessionCallback;->onSeekCompleted(Landroid/media/MediaSession2;Landroid/media/MediaPlayerBase;J)V
 Landroid/media/MediaSession2$SessionCallback;->onSetRating(Landroid/media/MediaSession2;Landroid/media/MediaSession2$ControllerInfo;Ljava/lang/String;Landroid/media/Rating2;)V
 Landroid/media/MediaSession2$SessionCallback;->onShuffleModeChanged(Landroid/media/MediaSession2;Landroid/media/MediaPlaylistAgent;I)V
-Landroid/media/MediaSession2;
 Landroid/media/MediaSession2;-><init>(Landroid/media/update/MediaSession2Provider;)V
 Landroid/media/MediaSession2;->addPlaylistItem(ILandroid/media/MediaItem2;)V
 Landroid/media/MediaSession2;->clearOnDataSourceMissingHelper()V
@@ -41763,12 +38952,10 @@
 Landroid/media/MediaSession2;->stop()V
 Landroid/media/MediaSession2;->updatePlayer(Landroid/media/MediaPlayerBase;Landroid/media/MediaPlaylistAgent;Landroid/media/VolumeProvider2;)V
 Landroid/media/MediaSession2;->updatePlaylistMetadata(Landroid/media/MediaMetadata2;)V
-Landroid/media/MediaSessionService2$MediaNotification;
 Landroid/media/MediaSessionService2$MediaNotification;-><init>(ILandroid/app/Notification;)V
 Landroid/media/MediaSessionService2$MediaNotification;->getNotification()Landroid/app/Notification;
 Landroid/media/MediaSessionService2$MediaNotification;->getNotificationId()I
 Landroid/media/MediaSessionService2$MediaNotification;->mProvider:Landroid/media/update/MediaSessionService2Provider$MediaNotificationProvider;
-Landroid/media/MediaSessionService2;
 Landroid/media/MediaSessionService2;-><init>()V
 Landroid/media/MediaSessionService2;->createProvider()Landroid/media/update/MediaSessionService2Provider;
 Landroid/media/MediaSessionService2;->getSession()Landroid/media/MediaSession2;
@@ -41777,7 +38964,6 @@
 Landroid/media/MediaSessionService2;->onUpdateNotification()Landroid/media/MediaSessionService2$MediaNotification;
 Landroid/media/MediaSessionService2;->SERVICE_INTERFACE:Ljava/lang/String;
 Landroid/media/MediaSessionService2;->SERVICE_META_DATA:Ljava/lang/String;
-Landroid/media/MediaSync$AudioBuffer;
 Landroid/media/MediaSync$AudioBuffer;-><init>(Ljava/nio/ByteBuffer;IJ)V
 Landroid/media/MediaSync$AudioBuffer;->mBufferIndex:I
 Landroid/media/MediaSync$AudioBuffer;->mByteBuffer:Ljava/nio/ByteBuffer;
@@ -41820,11 +39006,9 @@
 Landroid/media/MediaSyncEvent;->isValidType(I)Z
 Landroid/media/MediaSyncEvent;->mAudioSession:I
 Landroid/media/MediaSyncEvent;->mType:I
-Landroid/media/MediaTimeProvider$OnMediaTimeListener;
 Landroid/media/MediaTimeProvider$OnMediaTimeListener;->onSeek(J)V
 Landroid/media/MediaTimeProvider$OnMediaTimeListener;->onStop()V
 Landroid/media/MediaTimeProvider$OnMediaTimeListener;->onTimedEvent(J)V
-Landroid/media/MediaTimeProvider;
 Landroid/media/MediaTimeProvider;->cancelNotifications(Landroid/media/MediaTimeProvider$OnMediaTimeListener;)V
 Landroid/media/MediaTimeProvider;->getCurrentTimeUs(ZZ)J
 Landroid/media/MediaTimeProvider;->notifyAt(JLandroid/media/MediaTimeProvider$OnMediaTimeListener;)V
@@ -41835,7 +39019,6 @@
 Landroid/media/MediaTimestamp;->clockRate:F
 Landroid/media/MediaTimestamp;->mediaTimeUs:J
 Landroid/media/MediaTimestamp;->nanoTime:J
-Landroid/media/Metadata;
 Landroid/media/Metadata;->ALBUM:I
 Landroid/media/Metadata;->ALBUM_ART:I
 Landroid/media/Metadata;->ANY:I
@@ -41890,8 +39073,6 @@
 Landroid/media/Metadata;->VIDEO_HEIGHT:I
 Landroid/media/Metadata;->VIDEO_WIDTH:I
 Landroid/media/MicrophoneInfo$Coordinate3F;-><init>(FFF)V
-Landroid/media/MicrophoneInfo$MicrophoneDirectionality;
-Landroid/media/MicrophoneInfo$MicrophoneLocation;
 Landroid/media/MicrophoneInfo;->getInternalDeviceType()I
 Landroid/media/MicrophoneInfo;->mAddress:Ljava/lang/String;
 Landroid/media/MicrophoneInfo;->mChannelMapping:Ljava/util/List;
@@ -41910,49 +39091,39 @@
 Landroid/media/MicrophoneInfo;->mType:I
 Landroid/media/MicrophoneInfo;->setChannelMapping(Ljava/util/List;)V
 Landroid/media/MicrophoneInfo;->setId(I)V
-Landroid/media/midi/IBluetoothMidiService$Stub$Proxy;
 Landroid/media/midi/IBluetoothMidiService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/midi/IBluetoothMidiService$Stub$Proxy;->addBluetoothDevice(Landroid/bluetooth/BluetoothDevice;)Landroid/os/IBinder;
 Landroid/media/midi/IBluetoothMidiService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/midi/IBluetoothMidiService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/media/midi/IBluetoothMidiService$Stub;
 Landroid/media/midi/IBluetoothMidiService$Stub;-><init>()V
 Landroid/media/midi/IBluetoothMidiService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/midi/IBluetoothMidiService;
 Landroid/media/midi/IBluetoothMidiService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/midi/IBluetoothMidiService$Stub;->TRANSACTION_addBluetoothDevice:I
-Landroid/media/midi/IBluetoothMidiService;
 Landroid/media/midi/IBluetoothMidiService;->addBluetoothDevice(Landroid/bluetooth/BluetoothDevice;)Landroid/os/IBinder;
-Landroid/media/midi/IMidiDeviceListener$Stub$Proxy;
 Landroid/media/midi/IMidiDeviceListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/midi/IMidiDeviceListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/midi/IMidiDeviceListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/media/midi/IMidiDeviceListener$Stub$Proxy;->onDeviceAdded(Landroid/media/midi/MidiDeviceInfo;)V
 Landroid/media/midi/IMidiDeviceListener$Stub$Proxy;->onDeviceRemoved(Landroid/media/midi/MidiDeviceInfo;)V
 Landroid/media/midi/IMidiDeviceListener$Stub$Proxy;->onDeviceStatusChanged(Landroid/media/midi/MidiDeviceStatus;)V
-Landroid/media/midi/IMidiDeviceListener$Stub;
 Landroid/media/midi/IMidiDeviceListener$Stub;-><init>()V
 Landroid/media/midi/IMidiDeviceListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/midi/IMidiDeviceListener;
 Landroid/media/midi/IMidiDeviceListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/midi/IMidiDeviceListener$Stub;->TRANSACTION_onDeviceAdded:I
 Landroid/media/midi/IMidiDeviceListener$Stub;->TRANSACTION_onDeviceRemoved:I
 Landroid/media/midi/IMidiDeviceListener$Stub;->TRANSACTION_onDeviceStatusChanged:I
-Landroid/media/midi/IMidiDeviceListener;
 Landroid/media/midi/IMidiDeviceListener;->onDeviceAdded(Landroid/media/midi/MidiDeviceInfo;)V
 Landroid/media/midi/IMidiDeviceListener;->onDeviceRemoved(Landroid/media/midi/MidiDeviceInfo;)V
 Landroid/media/midi/IMidiDeviceListener;->onDeviceStatusChanged(Landroid/media/midi/MidiDeviceStatus;)V
-Landroid/media/midi/IMidiDeviceOpenCallback$Stub$Proxy;
 Landroid/media/midi/IMidiDeviceOpenCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/midi/IMidiDeviceOpenCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/midi/IMidiDeviceOpenCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/media/midi/IMidiDeviceOpenCallback$Stub$Proxy;->onDeviceOpened(Landroid/media/midi/IMidiDeviceServer;Landroid/os/IBinder;)V
-Landroid/media/midi/IMidiDeviceOpenCallback$Stub;
 Landroid/media/midi/IMidiDeviceOpenCallback$Stub;-><init>()V
 Landroid/media/midi/IMidiDeviceOpenCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/midi/IMidiDeviceOpenCallback;
 Landroid/media/midi/IMidiDeviceOpenCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/midi/IMidiDeviceOpenCallback$Stub;->TRANSACTION_onDeviceOpened:I
-Landroid/media/midi/IMidiDeviceOpenCallback;
 Landroid/media/midi/IMidiDeviceOpenCallback;->onDeviceOpened(Landroid/media/midi/IMidiDeviceServer;Landroid/os/IBinder;)V
-Landroid/media/midi/IMidiDeviceServer$Stub$Proxy;
 Landroid/media/midi/IMidiDeviceServer$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/midi/IMidiDeviceServer$Stub$Proxy;->closeDevice()V
 Landroid/media/midi/IMidiDeviceServer$Stub$Proxy;->closePort(Landroid/os/IBinder;)V
@@ -41963,7 +39134,6 @@
 Landroid/media/midi/IMidiDeviceServer$Stub$Proxy;->openInputPort(Landroid/os/IBinder;I)Ljava/io/FileDescriptor;
 Landroid/media/midi/IMidiDeviceServer$Stub$Proxy;->openOutputPort(Landroid/os/IBinder;I)Ljava/io/FileDescriptor;
 Landroid/media/midi/IMidiDeviceServer$Stub$Proxy;->setDeviceInfo(Landroid/media/midi/MidiDeviceInfo;)V
-Landroid/media/midi/IMidiDeviceServer$Stub;
 Landroid/media/midi/IMidiDeviceServer$Stub;-><init>()V
 Landroid/media/midi/IMidiDeviceServer$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/midi/IMidiDeviceServer;
 Landroid/media/midi/IMidiDeviceServer$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -41974,7 +39144,6 @@
 Landroid/media/midi/IMidiDeviceServer$Stub;->TRANSACTION_openInputPort:I
 Landroid/media/midi/IMidiDeviceServer$Stub;->TRANSACTION_openOutputPort:I
 Landroid/media/midi/IMidiDeviceServer$Stub;->TRANSACTION_setDeviceInfo:I
-Landroid/media/midi/IMidiDeviceServer;
 Landroid/media/midi/IMidiDeviceServer;->closeDevice()V
 Landroid/media/midi/IMidiDeviceServer;->closePort(Landroid/os/IBinder;)V
 Landroid/media/midi/IMidiDeviceServer;->connectPorts(Landroid/os/IBinder;Ljava/io/FileDescriptor;I)I
@@ -41982,7 +39151,6 @@
 Landroid/media/midi/IMidiDeviceServer;->openInputPort(Landroid/os/IBinder;I)Ljava/io/FileDescriptor;
 Landroid/media/midi/IMidiDeviceServer;->openOutputPort(Landroid/os/IBinder;I)Ljava/io/FileDescriptor;
 Landroid/media/midi/IMidiDeviceServer;->setDeviceInfo(Landroid/media/midi/MidiDeviceInfo;)V
-Landroid/media/midi/IMidiManager$Stub$Proxy;
 Landroid/media/midi/IMidiManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/midi/IMidiManager$Stub$Proxy;->closeDevice(Landroid/os/IBinder;Landroid/os/IBinder;)V
 Landroid/media/midi/IMidiManager$Stub$Proxy;->getDevices()[Landroid/media/midi/MidiDeviceInfo;
@@ -41997,7 +39165,6 @@
 Landroid/media/midi/IMidiManager$Stub$Proxy;->setDeviceStatus(Landroid/media/midi/IMidiDeviceServer;Landroid/media/midi/MidiDeviceStatus;)V
 Landroid/media/midi/IMidiManager$Stub$Proxy;->unregisterDeviceServer(Landroid/media/midi/IMidiDeviceServer;)V
 Landroid/media/midi/IMidiManager$Stub$Proxy;->unregisterListener(Landroid/os/IBinder;Landroid/media/midi/IMidiDeviceListener;)V
-Landroid/media/midi/IMidiManager$Stub;
 Landroid/media/midi/IMidiManager$Stub;-><init>()V
 Landroid/media/midi/IMidiManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/midi/IMidiManager;
 Landroid/media/midi/IMidiManager$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -42012,7 +39179,6 @@
 Landroid/media/midi/IMidiManager$Stub;->TRANSACTION_setDeviceStatus:I
 Landroid/media/midi/IMidiManager$Stub;->TRANSACTION_unregisterDeviceServer:I
 Landroid/media/midi/IMidiManager$Stub;->TRANSACTION_unregisterListener:I
-Landroid/media/midi/IMidiManager;
 Landroid/media/midi/IMidiManager;->closeDevice(Landroid/os/IBinder;Landroid/os/IBinder;)V
 Landroid/media/midi/IMidiManager;->getDevices()[Landroid/media/midi/MidiDeviceInfo;
 Landroid/media/midi/IMidiManager;->getDeviceStatus(Landroid/media/midi/MidiDeviceInfo;)Landroid/media/midi/MidiDeviceStatus;
@@ -42024,7 +39190,6 @@
 Landroid/media/midi/IMidiManager;->setDeviceStatus(Landroid/media/midi/IMidiDeviceServer;Landroid/media/midi/MidiDeviceStatus;)V
 Landroid/media/midi/IMidiManager;->unregisterDeviceServer(Landroid/media/midi/IMidiDeviceServer;)V
 Landroid/media/midi/IMidiManager;->unregisterListener(Landroid/os/IBinder;Landroid/media/midi/IMidiDeviceListener;)V
-Landroid/media/midi/MidiDevice$MidiConnection;-><init>(Landroid/os/IBinder;Landroid/media/midi/MidiInputPort;)V
 Landroid/media/midi/MidiDevice$MidiConnection;->mGuard:Ldalvik/system/CloseGuard;
 Landroid/media/midi/MidiDevice$MidiConnection;->mInputPortDeviceServer:Landroid/media/midi/IMidiDeviceServer;
 Landroid/media/midi/MidiDevice$MidiConnection;->mInputPortToken:Landroid/os/IBinder;
@@ -42063,24 +39228,16 @@
 Landroid/media/midi/MidiDeviceInfo;->PROPERTY_ALSA_DEVICE:Ljava/lang/String;
 Landroid/media/midi/MidiDeviceInfo;->PROPERTY_SERVICE_INFO:Ljava/lang/String;
 Landroid/media/midi/MidiDeviceInfo;->TAG:Ljava/lang/String;
-Landroid/media/midi/MidiDeviceServer$Callback;
 Landroid/media/midi/MidiDeviceServer$Callback;->onClose()V
 Landroid/media/midi/MidiDeviceServer$Callback;->onDeviceStatusChanged(Landroid/media/midi/MidiDeviceServer;Landroid/media/midi/MidiDeviceStatus;)V
-Landroid/media/midi/MidiDeviceServer$InputPortClient;
-Landroid/media/midi/MidiDeviceServer$InputPortClient;-><init>(Landroid/os/IBinder;Landroid/media/midi/MidiOutputPort;)V
 Landroid/media/midi/MidiDeviceServer$InputPortClient;->close()V
 Landroid/media/midi/MidiDeviceServer$InputPortClient;->mOutputPort:Landroid/media/midi/MidiOutputPort;
-Landroid/media/midi/MidiDeviceServer$OutputPortClient;
-Landroid/media/midi/MidiDeviceServer$OutputPortClient;-><init>(Landroid/os/IBinder;Landroid/media/midi/MidiInputPort;)V
 Landroid/media/midi/MidiDeviceServer$OutputPortClient;->close()V
 Landroid/media/midi/MidiDeviceServer$OutputPortClient;->getInputPort()Landroid/media/midi/MidiInputPort;
 Landroid/media/midi/MidiDeviceServer$OutputPortClient;->mInputPort:Landroid/media/midi/MidiInputPort;
-Landroid/media/midi/MidiDeviceServer$PortClient;
-Landroid/media/midi/MidiDeviceServer$PortClient;-><init>(Landroid/os/IBinder;)V
 Landroid/media/midi/MidiDeviceServer$PortClient;->close()V
 Landroid/media/midi/MidiDeviceServer$PortClient;->getInputPort()Landroid/media/midi/MidiInputPort;
 Landroid/media/midi/MidiDeviceServer$PortClient;->mToken:Landroid/os/IBinder;
-Landroid/media/midi/MidiDeviceServer;
 Landroid/media/midi/MidiDeviceServer;-><init>(Landroid/media/midi/IMidiManager;[Landroid/media/midi/MidiReceiver;ILandroid/media/midi/MidiDeviceServer$Callback;)V
 Landroid/media/midi/MidiDeviceServer;-><init>(Landroid/media/midi/IMidiManager;[Landroid/media/midi/MidiReceiver;Landroid/media/midi/MidiDeviceInfo;Landroid/media/midi/MidiDeviceServer$Callback;)V
 Landroid/media/midi/MidiDeviceServer;->asBinder()Landroid/os/IBinder;
@@ -42131,8 +39288,6 @@
 Landroid/media/midi/MidiInputPort;->mPortNumber:I
 Landroid/media/midi/MidiInputPort;->mToken:Landroid/os/IBinder;
 Landroid/media/midi/MidiInputPort;->TAG:Ljava/lang/String;
-Landroid/media/midi/MidiManager$DeviceListener;
-Landroid/media/midi/MidiManager$DeviceListener;-><init>(Landroid/media/midi/MidiManager$DeviceCallback;Landroid/os/Handler;)V
 Landroid/media/midi/MidiManager$DeviceListener;->mCallback:Landroid/media/midi/MidiManager$DeviceCallback;
 Landroid/media/midi/MidiManager$DeviceListener;->mHandler:Landroid/os/Handler;
 Landroid/media/midi/MidiManager$DeviceListener;->onDeviceAdded(Landroid/media/midi/MidiDeviceInfo;)V
@@ -42160,7 +39315,6 @@
 Landroid/media/midi/MidiOutputPort;->mToken:Landroid/os/IBinder;
 Landroid/media/midi/MidiOutputPort;->TAG:Ljava/lang/String;
 Landroid/media/midi/MidiReceiver;->mMaxMessageSize:I
-Landroid/media/MiniThumbFile;
 Landroid/media/MiniThumbFile;-><init>(Landroid/net/Uri;)V
 Landroid/media/MiniThumbFile;->BYTES_PER_MINTHUMB:I
 Landroid/media/MiniThumbFile;->deactivate()V
@@ -42181,22 +39335,17 @@
 Landroid/media/MiniThumbFile;->saveMiniThumbToFile([BJJ)V
 Landroid/media/MiniThumbFile;->sThumbFiles:Ljava/util/Hashtable;
 Landroid/media/MiniThumbFile;->TAG:Ljava/lang/String;
-Landroid/media/NativeRoutingEventHandlerDelegate;
 Landroid/media/NativeRoutingEventHandlerDelegate;-><init>(Landroid/media/AudioRouting;Landroid/media/AudioRouting$OnRoutingChangedListener;Landroid/os/Handler;)V
 Landroid/media/NativeRoutingEventHandlerDelegate;->mAudioRouting:Landroid/media/AudioRouting;
 Landroid/media/NativeRoutingEventHandlerDelegate;->mHandler:Landroid/os/Handler;
 Landroid/media/NativeRoutingEventHandlerDelegate;->mOnRoutingChangedListener:Landroid/media/AudioRouting$OnRoutingChangedListener;
 Landroid/media/NativeRoutingEventHandlerDelegate;->notifyClient()V
-Landroid/media/PlaybackParams$AudioFallbackMode;
-Landroid/media/PlaybackParams$AudioStretchMode;
 Landroid/media/PlaybackParams;-><init>(Landroid/os/Parcel;)V
 Landroid/media/PlaybackParams;->AUDIO_STRETCH_MODE_DEFAULT:I
 Landroid/media/PlaybackParams;->AUDIO_STRETCH_MODE_VOICE:I
-Landroid/media/PlayerBase$IAppOpsCallbackWrapper;
 Landroid/media/PlayerBase$IAppOpsCallbackWrapper;-><init>(Landroid/media/PlayerBase;)V
 Landroid/media/PlayerBase$IAppOpsCallbackWrapper;->mWeakPB:Ljava/lang/ref/WeakReference;
 Landroid/media/PlayerBase$IAppOpsCallbackWrapper;->opChanged(IILjava/lang/String;)V
-Landroid/media/PlayerBase$IPlayerWrapper;
 Landroid/media/PlayerBase$IPlayerWrapper;-><init>(Landroid/media/PlayerBase;)V
 Landroid/media/PlayerBase$IPlayerWrapper;->applyVolumeShaper(Landroid/media/VolumeShaper$Configuration;Landroid/media/VolumeShaper$Operation;)V
 Landroid/media/PlayerBase$IPlayerWrapper;->mWeakPB:Ljava/lang/ref/WeakReference;
@@ -42206,7 +39355,6 @@
 Landroid/media/PlayerBase$IPlayerWrapper;->setVolume(F)V
 Landroid/media/PlayerBase$IPlayerWrapper;->start()V
 Landroid/media/PlayerBase$IPlayerWrapper;->stop()V
-Landroid/media/PlayerBase$PlayerIdCard;
 Landroid/media/PlayerBase$PlayerIdCard;-><init>(ILandroid/media/AudioAttributes;Landroid/media/IPlayer;)V
 Landroid/media/PlayerBase$PlayerIdCard;-><init>(Landroid/os/Parcel;)V
 Landroid/media/PlayerBase$PlayerIdCard;->AUDIO_ATTRIBUTES_DEFINED:I
@@ -42215,7 +39363,6 @@
 Landroid/media/PlayerBase$PlayerIdCard;->mAttributes:Landroid/media/AudioAttributes;
 Landroid/media/PlayerBase$PlayerIdCard;->mIPlayer:Landroid/media/IPlayer;
 Landroid/media/PlayerBase$PlayerIdCard;->mPlayerType:I
-Landroid/media/PlayerBase;
 Landroid/media/PlayerBase;-><init>(Landroid/media/AudioAttributes;I)V
 Landroid/media/PlayerBase;->basePause()V
 Landroid/media/PlayerBase;->baseRegisterPlayer()V
@@ -42265,7 +39412,6 @@
 Landroid/media/PlayerProxy;->DEBUG:Z
 Landroid/media/PlayerProxy;->mConf:Landroid/media/AudioPlaybackConfiguration;
 Landroid/media/PlayerProxy;->TAG:Ljava/lang/String;
-Landroid/media/projection/IMediaProjection$Stub$Proxy;
 Landroid/media/projection/IMediaProjection$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/projection/IMediaProjection$Stub$Proxy;->applyVirtualDisplayFlags(I)I
 Landroid/media/projection/IMediaProjection$Stub$Proxy;->canProjectAudio()Z
@@ -42277,7 +39423,6 @@
 Landroid/media/projection/IMediaProjection$Stub$Proxy;->start(Landroid/media/projection/IMediaProjectionCallback;)V
 Landroid/media/projection/IMediaProjection$Stub$Proxy;->stop()V
 Landroid/media/projection/IMediaProjection$Stub$Proxy;->unregisterCallback(Landroid/media/projection/IMediaProjectionCallback;)V
-Landroid/media/projection/IMediaProjection$Stub;
 Landroid/media/projection/IMediaProjection$Stub;-><init>()V
 Landroid/media/projection/IMediaProjection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/projection/IMediaProjection;
 Landroid/media/projection/IMediaProjection$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -42289,7 +39434,6 @@
 Landroid/media/projection/IMediaProjection$Stub;->TRANSACTION_start:I
 Landroid/media/projection/IMediaProjection$Stub;->TRANSACTION_stop:I
 Landroid/media/projection/IMediaProjection$Stub;->TRANSACTION_unregisterCallback:I
-Landroid/media/projection/IMediaProjection;
 Landroid/media/projection/IMediaProjection;->applyVirtualDisplayFlags(I)I
 Landroid/media/projection/IMediaProjection;->canProjectAudio()Z
 Landroid/media/projection/IMediaProjection;->canProjectSecureVideo()Z
@@ -42298,19 +39442,15 @@
 Landroid/media/projection/IMediaProjection;->start(Landroid/media/projection/IMediaProjectionCallback;)V
 Landroid/media/projection/IMediaProjection;->stop()V
 Landroid/media/projection/IMediaProjection;->unregisterCallback(Landroid/media/projection/IMediaProjectionCallback;)V
-Landroid/media/projection/IMediaProjectionCallback$Stub$Proxy;
 Landroid/media/projection/IMediaProjectionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/projection/IMediaProjectionCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/projection/IMediaProjectionCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/media/projection/IMediaProjectionCallback$Stub$Proxy;->onStop()V
-Landroid/media/projection/IMediaProjectionCallback$Stub;
 Landroid/media/projection/IMediaProjectionCallback$Stub;-><init>()V
 Landroid/media/projection/IMediaProjectionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/projection/IMediaProjectionCallback;
 Landroid/media/projection/IMediaProjectionCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/projection/IMediaProjectionCallback$Stub;->TRANSACTION_onStop:I
-Landroid/media/projection/IMediaProjectionCallback;
 Landroid/media/projection/IMediaProjectionCallback;->onStop()V
-Landroid/media/projection/IMediaProjectionManager$Stub$Proxy;
 Landroid/media/projection/IMediaProjectionManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/projection/IMediaProjectionManager$Stub$Proxy;->addCallback(Landroid/media/projection/IMediaProjectionWatcherCallback;)V
 Landroid/media/projection/IMediaProjectionManager$Stub$Proxy;->createProjection(ILjava/lang/String;IZ)Landroid/media/projection/IMediaProjection;
@@ -42321,7 +39461,6 @@
 Landroid/media/projection/IMediaProjectionManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/media/projection/IMediaProjectionManager$Stub$Proxy;->removeCallback(Landroid/media/projection/IMediaProjectionWatcherCallback;)V
 Landroid/media/projection/IMediaProjectionManager$Stub$Proxy;->stopActiveProjection()V
-Landroid/media/projection/IMediaProjectionManager$Stub;
 Landroid/media/projection/IMediaProjectionManager$Stub;-><init>()V
 Landroid/media/projection/IMediaProjectionManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/projection/IMediaProjectionManager;
 Landroid/media/projection/IMediaProjectionManager$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -42332,35 +39471,28 @@
 Landroid/media/projection/IMediaProjectionManager$Stub;->TRANSACTION_isValidMediaProjection:I
 Landroid/media/projection/IMediaProjectionManager$Stub;->TRANSACTION_removeCallback:I
 Landroid/media/projection/IMediaProjectionManager$Stub;->TRANSACTION_stopActiveProjection:I
-Landroid/media/projection/IMediaProjectionManager;
 Landroid/media/projection/IMediaProjectionManager;->addCallback(Landroid/media/projection/IMediaProjectionWatcherCallback;)V
 Landroid/media/projection/IMediaProjectionManager;->createProjection(ILjava/lang/String;IZ)Landroid/media/projection/IMediaProjection;
 Landroid/media/projection/IMediaProjectionManager;->getActiveProjectionInfo()Landroid/media/projection/MediaProjectionInfo;
 Landroid/media/projection/IMediaProjectionManager;->isValidMediaProjection(Landroid/media/projection/IMediaProjection;)Z
 Landroid/media/projection/IMediaProjectionManager;->removeCallback(Landroid/media/projection/IMediaProjectionWatcherCallback;)V
 Landroid/media/projection/IMediaProjectionManager;->stopActiveProjection()V
-Landroid/media/projection/IMediaProjectionWatcherCallback$Stub$Proxy;
 Landroid/media/projection/IMediaProjectionWatcherCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/projection/IMediaProjectionWatcherCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/projection/IMediaProjectionWatcherCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/media/projection/IMediaProjectionWatcherCallback$Stub$Proxy;->onStart(Landroid/media/projection/MediaProjectionInfo;)V
 Landroid/media/projection/IMediaProjectionWatcherCallback$Stub$Proxy;->onStop(Landroid/media/projection/MediaProjectionInfo;)V
-Landroid/media/projection/IMediaProjectionWatcherCallback$Stub;
 Landroid/media/projection/IMediaProjectionWatcherCallback$Stub;-><init>()V
 Landroid/media/projection/IMediaProjectionWatcherCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/projection/IMediaProjectionWatcherCallback;
 Landroid/media/projection/IMediaProjectionWatcherCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/projection/IMediaProjectionWatcherCallback$Stub;->TRANSACTION_onStart:I
 Landroid/media/projection/IMediaProjectionWatcherCallback$Stub;->TRANSACTION_onStop:I
-Landroid/media/projection/IMediaProjectionWatcherCallback;
 Landroid/media/projection/IMediaProjectionWatcherCallback;->onStart(Landroid/media/projection/MediaProjectionInfo;)V
 Landroid/media/projection/IMediaProjectionWatcherCallback;->onStop(Landroid/media/projection/MediaProjectionInfo;)V
-Landroid/media/projection/MediaProjection$CallbackRecord;
 Landroid/media/projection/MediaProjection$CallbackRecord;-><init>(Landroid/media/projection/MediaProjection$Callback;Landroid/os/Handler;)V
 Landroid/media/projection/MediaProjection$CallbackRecord;->mCallback:Landroid/media/projection/MediaProjection$Callback;
 Landroid/media/projection/MediaProjection$CallbackRecord;->mHandler:Landroid/os/Handler;
 Landroid/media/projection/MediaProjection$CallbackRecord;->onStop()V
-Landroid/media/projection/MediaProjection$MediaProjectionCallback;
-Landroid/media/projection/MediaProjection$MediaProjectionCallback;-><init>()V
 Landroid/media/projection/MediaProjection$MediaProjectionCallback;->onStop()V
 Landroid/media/projection/MediaProjection;-><init>(Landroid/content/Context;Landroid/media/projection/IMediaProjection;)V
 Landroid/media/projection/MediaProjection;->createAudioRecord(IIII)Landroid/media/AudioRecord;
@@ -42370,7 +39502,6 @@
 Landroid/media/projection/MediaProjection;->mContext:Landroid/content/Context;
 Landroid/media/projection/MediaProjection;->mImpl:Landroid/media/projection/IMediaProjection;
 Landroid/media/projection/MediaProjection;->TAG:Ljava/lang/String;
-Landroid/media/projection/MediaProjectionInfo;
 Landroid/media/projection/MediaProjectionInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/media/projection/MediaProjectionInfo;-><init>(Ljava/lang/String;Landroid/os/UserHandle;)V
 Landroid/media/projection/MediaProjectionInfo;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -42378,11 +39509,9 @@
 Landroid/media/projection/MediaProjectionInfo;->getUserHandle()Landroid/os/UserHandle;
 Landroid/media/projection/MediaProjectionInfo;->mPackageName:Ljava/lang/String;
 Landroid/media/projection/MediaProjectionInfo;->mUserHandle:Landroid/os/UserHandle;
-Landroid/media/projection/MediaProjectionManager$Callback;
 Landroid/media/projection/MediaProjectionManager$Callback;-><init>()V
 Landroid/media/projection/MediaProjectionManager$Callback;->onStart(Landroid/media/projection/MediaProjectionInfo;)V
 Landroid/media/projection/MediaProjectionManager$Callback;->onStop(Landroid/media/projection/MediaProjectionInfo;)V
-Landroid/media/projection/MediaProjectionManager$CallbackDelegate;
 Landroid/media/projection/MediaProjectionManager$CallbackDelegate;-><init>(Landroid/media/projection/MediaProjectionManager$Callback;Landroid/os/Handler;)V
 Landroid/media/projection/MediaProjectionManager$CallbackDelegate;->mCallback:Landroid/media/projection/MediaProjectionManager$Callback;
 Landroid/media/projection/MediaProjectionManager$CallbackDelegate;->mHandler:Landroid/os/Handler;
@@ -42402,11 +39531,6 @@
 Landroid/media/projection/MediaProjectionManager;->TYPE_MIRRORING:I
 Landroid/media/projection/MediaProjectionManager;->TYPE_PRESENTATION:I
 Landroid/media/projection/MediaProjectionManager;->TYPE_SCREEN_CAPTURE:I
-Landroid/media/Rating$StarStyle;
-Landroid/media/Rating$Style;
-Landroid/media/Rating2$StarStyle;
-Landroid/media/Rating2$Style;
-Landroid/media/Rating2;
 Landroid/media/Rating2;-><init>(Landroid/media/update/Rating2Provider;)V
 Landroid/media/Rating2;->fromBundle(Landroid/os/Bundle;)Landroid/media/Rating2;
 Landroid/media/Rating2;->getPercentRating()F
@@ -42435,7 +39559,6 @@
 Landroid/media/Rating;->mRatingValue:F
 Landroid/media/Rating;->RATING_NOT_RATED:F
 Landroid/media/Rating;->TAG:Ljava/lang/String;
-Landroid/media/RemoteControlClient$MetadataEditor;-><init>()V
 Landroid/media/RemoteControlClient$MetadataEditor;->METADATA_KEY_ARTWORK:I
 Landroid/media/RemoteControlClient;->DEBUG:Z
 Landroid/media/RemoteControlClient;->DEFAULT_PLAYBACK_VOLUME:I
@@ -42492,21 +39615,12 @@
 Landroid/media/RemoteControlClient;->setPlaybackStateInt(IJFZ)V
 Landroid/media/RemoteControlClient;->TAG:Ljava/lang/String;
 Landroid/media/RemoteControlClient;->unregisterWithSession(Landroid/media/session/MediaSessionLegacyHelper;)V
-Landroid/media/RemoteController$EventHandler;
-Landroid/media/RemoteController$EventHandler;-><init>(Landroid/media/RemoteController;Landroid/os/Looper;)V
-Landroid/media/RemoteController$MediaControllerCallback;
-Landroid/media/RemoteController$MediaControllerCallback;-><init>()V
-Landroid/media/RemoteController$MetadataEditor;-><init>()V
-Landroid/media/RemoteController$MetadataEditor;-><init>(Landroid/os/Bundle;J)V
 Landroid/media/RemoteController$MetadataEditor;->cleanupBitmapFromBundle(I)V
-Landroid/media/RemoteController$PlaybackInfo;
 Landroid/media/RemoteController$PlaybackInfo;-><init>(IJJF)V
 Landroid/media/RemoteController$PlaybackInfo;->mCurrentPosMs:J
 Landroid/media/RemoteController$PlaybackInfo;->mSpeed:F
 Landroid/media/RemoteController$PlaybackInfo;->mState:I
 Landroid/media/RemoteController$PlaybackInfo;->mStateChangeTimeMs:J
-Landroid/media/RemoteController$TopTransportSessionListener;
-Landroid/media/RemoteController$TopTransportSessionListener;-><init>()V
 Landroid/media/RemoteController;->DEBUG:Z
 Landroid/media/RemoteController;->mArtworkHeight:I
 Landroid/media/RemoteController;->mArtworkWidth:I
@@ -42537,11 +39651,9 @@
 Landroid/media/RemoteController;->stopListeningToSessions()V
 Landroid/media/RemoteController;->TAG:Ljava/lang/String;
 Landroid/media/RemoteController;->updateController(Landroid/media/session/MediaController;)V
-Landroid/media/RemoteDisplay$Listener;
 Landroid/media/RemoteDisplay$Listener;->onDisplayConnected(Landroid/view/Surface;IIII)V
 Landroid/media/RemoteDisplay$Listener;->onDisplayDisconnected()V
 Landroid/media/RemoteDisplay$Listener;->onDisplayError(I)V
-Landroid/media/RemoteDisplay;
 Landroid/media/RemoteDisplay;-><init>(Landroid/media/RemoteDisplay$Listener;Landroid/os/Handler;Ljava/lang/String;)V
 Landroid/media/RemoteDisplay;->DISPLAY_ERROR_CONNECTION_DROPPED:I
 Landroid/media/RemoteDisplay;->DISPLAY_ERROR_UNKOWN:I
@@ -42560,7 +39672,6 @@
 Landroid/media/RemoteDisplay;->pause()V
 Landroid/media/RemoteDisplay;->resume()V
 Landroid/media/RemoteDisplay;->startListening(Ljava/lang/String;)V
-Landroid/media/RemoteDisplayState$RemoteDisplayInfo;
 Landroid/media/RemoteDisplayState$RemoteDisplayInfo;-><init>(Landroid/media/RemoteDisplayState$RemoteDisplayInfo;)V
 Landroid/media/RemoteDisplayState$RemoteDisplayInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/media/RemoteDisplayState$RemoteDisplayInfo;-><init>(Ljava/lang/String;)V
@@ -42581,7 +39692,6 @@
 Landroid/media/RemoteDisplayState$RemoteDisplayInfo;->volume:I
 Landroid/media/RemoteDisplayState$RemoteDisplayInfo;->volumeHandling:I
 Landroid/media/RemoteDisplayState$RemoteDisplayInfo;->volumeMax:I
-Landroid/media/RemoteDisplayState;
 Landroid/media/RemoteDisplayState;-><init>(Landroid/os/Parcel;)V
 Landroid/media/RemoteDisplayState;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/media/RemoteDisplayState;->DISCOVERY_MODE_ACTIVE:I
@@ -42589,7 +39699,6 @@
 Landroid/media/RemoteDisplayState;->DISCOVERY_MODE_PASSIVE:I
 Landroid/media/RemoteDisplayState;->isValid()Z
 Landroid/media/RemoteDisplayState;->SERVICE_INTERFACE:Ljava/lang/String;
-Landroid/media/ResampleInputStream;
 Landroid/media/ResampleInputStream;-><init>(Ljava/io/InputStream;II)V
 Landroid/media/ResampleInputStream;->fir21([BI[BII)V
 Landroid/media/ResampleInputStream;->mBuf:[B
@@ -42600,8 +39709,6 @@
 Landroid/media/ResampleInputStream;->mRateIn:I
 Landroid/media/ResampleInputStream;->mRateOut:I
 Landroid/media/ResampleInputStream;->TAG:Ljava/lang/String;
-Landroid/media/Ringtone$MyOnCompletionListener;
-Landroid/media/Ringtone$MyOnCompletionListener;-><init>()V
 Landroid/media/Ringtone;->applyPlaybackProperties_sync()V
 Landroid/media/Ringtone;->destroyLocalPlayer()V
 Landroid/media/Ringtone;->getTitle(Landroid/content/Context;Landroid/net/Uri;ZZ)Ljava/lang/String;
@@ -42624,8 +39731,6 @@
 Landroid/media/Ringtone;->setTitle(Ljava/lang/String;)V
 Landroid/media/Ringtone;->startLocalPlayer()V
 Landroid/media/Ringtone;->TAG:Ljava/lang/String;
-Landroid/media/RingtoneManager$NewRingtoneScanner;
-Landroid/media/RingtoneManager$NewRingtoneScanner;-><init>(Ljava/io/File;)V
 Landroid/media/RingtoneManager$NewRingtoneScanner;->mFile:Ljava/io/File;
 Landroid/media/RingtoneManager$NewRingtoneScanner;->mMediaScannerConnection:Landroid/media/MediaScannerConnection;
 Landroid/media/RingtoneManager$NewRingtoneScanner;->mQueue:Ljava/util/concurrent/LinkedBlockingQueue;
@@ -42667,19 +39772,15 @@
 Landroid/media/RingtoneManager;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/content/Context;)Landroid/database/Cursor;
 Landroid/media/RingtoneManager;->setFilterColumnsList(I)V
 Landroid/media/RingtoneManager;->TAG:Ljava/lang/String;
-Landroid/media/session/IActiveSessionsListener$Stub$Proxy;
 Landroid/media/session/IActiveSessionsListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/session/IActiveSessionsListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/session/IActiveSessionsListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/media/session/IActiveSessionsListener$Stub$Proxy;->onActiveSessionsChanged(Ljava/util/List;)V
-Landroid/media/session/IActiveSessionsListener$Stub;
 Landroid/media/session/IActiveSessionsListener$Stub;-><init>()V
 Landroid/media/session/IActiveSessionsListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/IActiveSessionsListener;
 Landroid/media/session/IActiveSessionsListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/session/IActiveSessionsListener$Stub;->TRANSACTION_onActiveSessionsChanged:I
-Landroid/media/session/IActiveSessionsListener;
 Landroid/media/session/IActiveSessionsListener;->onActiveSessionsChanged(Ljava/util/List;)V
-Landroid/media/session/ICallback$Stub$Proxy;
 Landroid/media/session/ICallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/session/ICallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/session/ICallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -42687,7 +39788,6 @@
 Landroid/media/session/ICallback$Stub$Proxy;->onAddressedPlayerChangedToMediaSession(Landroid/media/session/MediaSession$Token;)V
 Landroid/media/session/ICallback$Stub$Proxy;->onMediaKeyEventDispatchedToMediaButtonReceiver(Landroid/view/KeyEvent;Landroid/content/ComponentName;)V
 Landroid/media/session/ICallback$Stub$Proxy;->onMediaKeyEventDispatchedToMediaSession(Landroid/view/KeyEvent;Landroid/media/session/MediaSession$Token;)V
-Landroid/media/session/ICallback$Stub;
 Landroid/media/session/ICallback$Stub;-><init>()V
 Landroid/media/session/ICallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ICallback;
 Landroid/media/session/ICallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -42695,36 +39795,28 @@
 Landroid/media/session/ICallback$Stub;->TRANSACTION_onAddressedPlayerChangedToMediaSession:I
 Landroid/media/session/ICallback$Stub;->TRANSACTION_onMediaKeyEventDispatchedToMediaButtonReceiver:I
 Landroid/media/session/ICallback$Stub;->TRANSACTION_onMediaKeyEventDispatchedToMediaSession:I
-Landroid/media/session/ICallback;
 Landroid/media/session/ICallback;->onAddressedPlayerChangedToMediaButtonReceiver(Landroid/content/ComponentName;)V
 Landroid/media/session/ICallback;->onAddressedPlayerChangedToMediaSession(Landroid/media/session/MediaSession$Token;)V
 Landroid/media/session/ICallback;->onMediaKeyEventDispatchedToMediaButtonReceiver(Landroid/view/KeyEvent;Landroid/content/ComponentName;)V
 Landroid/media/session/ICallback;->onMediaKeyEventDispatchedToMediaSession(Landroid/view/KeyEvent;Landroid/media/session/MediaSession$Token;)V
-Landroid/media/session/IOnMediaKeyListener$Stub$Proxy;
 Landroid/media/session/IOnMediaKeyListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/session/IOnMediaKeyListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/session/IOnMediaKeyListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/media/session/IOnMediaKeyListener$Stub$Proxy;->onMediaKey(Landroid/view/KeyEvent;Landroid/os/ResultReceiver;)V
-Landroid/media/session/IOnMediaKeyListener$Stub;
 Landroid/media/session/IOnMediaKeyListener$Stub;-><init>()V
 Landroid/media/session/IOnMediaKeyListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/IOnMediaKeyListener;
 Landroid/media/session/IOnMediaKeyListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/session/IOnMediaKeyListener$Stub;->TRANSACTION_onMediaKey:I
-Landroid/media/session/IOnMediaKeyListener;
 Landroid/media/session/IOnMediaKeyListener;->onMediaKey(Landroid/view/KeyEvent;Landroid/os/ResultReceiver;)V
-Landroid/media/session/IOnVolumeKeyLongPressListener$Stub$Proxy;
 Landroid/media/session/IOnVolumeKeyLongPressListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/session/IOnVolumeKeyLongPressListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/session/IOnVolumeKeyLongPressListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/media/session/IOnVolumeKeyLongPressListener$Stub$Proxy;->onVolumeKeyLongPress(Landroid/view/KeyEvent;)V
-Landroid/media/session/IOnVolumeKeyLongPressListener$Stub;
 Landroid/media/session/IOnVolumeKeyLongPressListener$Stub;-><init>()V
 Landroid/media/session/IOnVolumeKeyLongPressListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/IOnVolumeKeyLongPressListener;
 Landroid/media/session/IOnVolumeKeyLongPressListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/session/IOnVolumeKeyLongPressListener$Stub;->TRANSACTION_onVolumeKeyLongPress:I
-Landroid/media/session/IOnVolumeKeyLongPressListener;
 Landroid/media/session/IOnVolumeKeyLongPressListener;->onVolumeKeyLongPress(Landroid/view/KeyEvent;)V
-Landroid/media/session/ISession$Stub$Proxy;
 Landroid/media/session/ISession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/session/ISession$Stub$Proxy;->destroy()V
 Landroid/media/session/ISession$Stub$Proxy;->getController()Landroid/media/session/ISessionController;
@@ -42744,7 +39836,6 @@
 Landroid/media/session/ISession$Stub$Proxy;->setQueue(Landroid/content/pm/ParceledListSlice;)V
 Landroid/media/session/ISession$Stub$Proxy;->setQueueTitle(Ljava/lang/CharSequence;)V
 Landroid/media/session/ISession$Stub$Proxy;->setRatingType(I)V
-Landroid/media/session/ISession$Stub;
 Landroid/media/session/ISession$Stub;-><init>()V
 Landroid/media/session/ISession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISession;
 Landroid/media/session/ISession$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -42764,7 +39855,6 @@
 Landroid/media/session/ISession$Stub;->TRANSACTION_setQueue:I
 Landroid/media/session/ISession$Stub;->TRANSACTION_setQueueTitle:I
 Landroid/media/session/ISession$Stub;->TRANSACTION_setRatingType:I
-Landroid/media/session/ISession;
 Landroid/media/session/ISession;->destroy()V
 Landroid/media/session/ISession;->getController()Landroid/media/session/ISessionController;
 Landroid/media/session/ISession;->sendEvent(Ljava/lang/String;Landroid/os/Bundle;)V
@@ -42781,7 +39871,6 @@
 Landroid/media/session/ISession;->setQueue(Landroid/content/pm/ParceledListSlice;)V
 Landroid/media/session/ISession;->setQueueTitle(Ljava/lang/CharSequence;)V
 Landroid/media/session/ISession;->setRatingType(I)V
-Landroid/media/session/ISessionCallback$Stub$Proxy;
 Landroid/media/session/ISessionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/session/ISessionCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/session/ISessionCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -42808,7 +39897,6 @@
 Landroid/media/session/ISessionCallback$Stub$Proxy;->onSetVolumeTo(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;I)V
 Landroid/media/session/ISessionCallback$Stub$Proxy;->onSkipToTrack(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;J)V
 Landroid/media/session/ISessionCallback$Stub$Proxy;->onStop(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
-Landroid/media/session/ISessionCallback$Stub;
 Landroid/media/session/ISessionCallback$Stub;-><init>()V
 Landroid/media/session/ISessionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISessionCallback;
 Landroid/media/session/ISessionCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -42835,7 +39923,6 @@
 Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onSetVolumeTo:I
 Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onSkipToTrack:I
 Landroid/media/session/ISessionCallback$Stub;->TRANSACTION_onStop:I
-Landroid/media/session/ISessionCallback;
 Landroid/media/session/ISessionCallback;->onAdjustVolume(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;I)V
 Landroid/media/session/ISessionCallback;->onCommand(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ResultReceiver;)V
 Landroid/media/session/ISessionCallback;->onCustomAction(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;Ljava/lang/String;Landroid/os/Bundle;)V
@@ -42859,7 +39946,6 @@
 Landroid/media/session/ISessionCallback;->onSetVolumeTo(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;I)V
 Landroid/media/session/ISessionCallback;->onSkipToTrack(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;J)V
 Landroid/media/session/ISessionCallback;->onStop(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
-Landroid/media/session/ISessionController$Stub$Proxy;
 Landroid/media/session/ISessionController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/session/ISessionController$Stub$Proxy;->adjustVolume(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;ZII)V
 Landroid/media/session/ISessionController$Stub$Proxy;->fastForward(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
@@ -42899,7 +39985,6 @@
 Landroid/media/session/ISessionController$Stub$Proxy;->skipToQueueItem(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;J)V
 Landroid/media/session/ISessionController$Stub$Proxy;->stop(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
 Landroid/media/session/ISessionController$Stub$Proxy;->unregisterCallbackListener(Landroid/media/session/ISessionControllerCallback;)V
-Landroid/media/session/ISessionController$Stub;
 Landroid/media/session/ISessionController$Stub;-><init>()V
 Landroid/media/session/ISessionController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISessionController;
 Landroid/media/session/ISessionController$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -42939,7 +40024,6 @@
 Landroid/media/session/ISessionController$Stub;->TRANSACTION_skipToQueueItem:I
 Landroid/media/session/ISessionController$Stub;->TRANSACTION_stop:I
 Landroid/media/session/ISessionController$Stub;->TRANSACTION_unregisterCallbackListener:I
-Landroid/media/session/ISessionController;
 Landroid/media/session/ISessionController;->adjustVolume(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;ZII)V
 Landroid/media/session/ISessionController;->fastForward(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
 Landroid/media/session/ISessionController;->getExtras()Landroid/os/Bundle;
@@ -42976,7 +40060,6 @@
 Landroid/media/session/ISessionController;->skipToQueueItem(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;J)V
 Landroid/media/session/ISessionController;->stop(Ljava/lang/String;Landroid/media/session/ISessionControllerCallback;)V
 Landroid/media/session/ISessionController;->unregisterCallbackListener(Landroid/media/session/ISessionControllerCallback;)V
-Landroid/media/session/ISessionControllerCallback$Stub$Proxy;
 Landroid/media/session/ISessionControllerCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/session/ISessionControllerCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/session/ISessionControllerCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -42988,7 +40071,6 @@
 Landroid/media/session/ISessionControllerCallback$Stub$Proxy;->onQueueTitleChanged(Ljava/lang/CharSequence;)V
 Landroid/media/session/ISessionControllerCallback$Stub$Proxy;->onSessionDestroyed()V
 Landroid/media/session/ISessionControllerCallback$Stub$Proxy;->onVolumeInfoChanged(Landroid/media/session/ParcelableVolumeInfo;)V
-Landroid/media/session/ISessionControllerCallback$Stub;
 Landroid/media/session/ISessionControllerCallback$Stub;-><init>()V
 Landroid/media/session/ISessionControllerCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISessionControllerCallback;
 Landroid/media/session/ISessionControllerCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -43000,7 +40082,6 @@
 Landroid/media/session/ISessionControllerCallback$Stub;->TRANSACTION_onQueueTitleChanged:I
 Landroid/media/session/ISessionControllerCallback$Stub;->TRANSACTION_onSessionDestroyed:I
 Landroid/media/session/ISessionControllerCallback$Stub;->TRANSACTION_onVolumeInfoChanged:I
-Landroid/media/session/ISessionControllerCallback;
 Landroid/media/session/ISessionControllerCallback;->onEvent(Ljava/lang/String;Landroid/os/Bundle;)V
 Landroid/media/session/ISessionControllerCallback;->onExtrasChanged(Landroid/os/Bundle;)V
 Landroid/media/session/ISessionControllerCallback;->onMetadataChanged(Landroid/media/MediaMetadata;)V
@@ -43009,7 +40090,6 @@
 Landroid/media/session/ISessionControllerCallback;->onQueueTitleChanged(Ljava/lang/CharSequence;)V
 Landroid/media/session/ISessionControllerCallback;->onSessionDestroyed()V
 Landroid/media/session/ISessionControllerCallback;->onVolumeInfoChanged(Landroid/media/session/ParcelableVolumeInfo;)V
-Landroid/media/session/ISessionManager$Stub$Proxy;
 Landroid/media/session/ISessionManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/session/ISessionManager$Stub$Proxy;->addSessionsListener(Landroid/media/session/IActiveSessionsListener;Landroid/content/ComponentName;I)V
 Landroid/media/session/ISessionManager$Stub$Proxy;->addSessionTokensListener(Landroid/media/ISessionTokensListener;ILjava/lang/String;)V
@@ -43031,7 +40111,6 @@
 Landroid/media/session/ISessionManager$Stub$Proxy;->setOnMediaKeyListener(Landroid/media/session/IOnMediaKeyListener;)V
 Landroid/media/session/ISessionManager$Stub$Proxy;->setOnVolumeKeyLongPressListener(Landroid/media/session/IOnVolumeKeyLongPressListener;)V
 Landroid/media/session/ISessionManager$Stub$Proxy;->setRemoteVolumeController(Landroid/media/IRemoteVolumeController;)V
-Landroid/media/session/ISessionManager$Stub;
 Landroid/media/session/ISessionManager$Stub;-><init>()V
 Landroid/media/session/ISessionManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/session/ISessionManager$Stub;->TRANSACTION_addSessionsListener:I
@@ -43052,7 +40131,6 @@
 Landroid/media/session/ISessionManager$Stub;->TRANSACTION_setOnMediaKeyListener:I
 Landroid/media/session/ISessionManager$Stub;->TRANSACTION_setOnVolumeKeyLongPressListener:I
 Landroid/media/session/ISessionManager$Stub;->TRANSACTION_setRemoteVolumeController:I
-Landroid/media/session/ISessionManager;
 Landroid/media/session/ISessionManager;->addSessionsListener(Landroid/media/session/IActiveSessionsListener;Landroid/content/ComponentName;I)V
 Landroid/media/session/ISessionManager;->addSessionTokensListener(Landroid/media/ISessionTokensListener;ILjava/lang/String;)V
 Landroid/media/session/ISessionManager;->createSession(Ljava/lang/String;Landroid/media/session/ISessionCallback;Ljava/lang/String;I)Landroid/media/session/ISession;
@@ -43071,7 +40149,6 @@
 Landroid/media/session/ISessionManager;->setOnMediaKeyListener(Landroid/media/session/IOnMediaKeyListener;)V
 Landroid/media/session/ISessionManager;->setOnVolumeKeyLongPressListener(Landroid/media/session/IOnVolumeKeyLongPressListener;)V
 Landroid/media/session/ISessionManager;->setRemoteVolumeController(Landroid/media/IRemoteVolumeController;)V
-Landroid/media/session/MediaController$CallbackStub;
 Landroid/media/session/MediaController$CallbackStub;-><init>(Landroid/media/session/MediaController;)V
 Landroid/media/session/MediaController$CallbackStub;->mController:Ljava/lang/ref/WeakReference;
 Landroid/media/session/MediaController$CallbackStub;->onEvent(Ljava/lang/String;Landroid/os/Bundle;)V
@@ -43082,7 +40159,6 @@
 Landroid/media/session/MediaController$CallbackStub;->onQueueTitleChanged(Ljava/lang/CharSequence;)V
 Landroid/media/session/MediaController$CallbackStub;->onSessionDestroyed()V
 Landroid/media/session/MediaController$CallbackStub;->onVolumeInfoChanged(Landroid/media/session/ParcelableVolumeInfo;)V
-Landroid/media/session/MediaController$MessageHandler;
 Landroid/media/session/MediaController$MessageHandler;-><init>(Landroid/os/Looper;Landroid/media/session/MediaController$Callback;)V
 Landroid/media/session/MediaController$MessageHandler;->mCallback:Landroid/media/session/MediaController$Callback;
 Landroid/media/session/MediaController$MessageHandler;->mRegistered:Z
@@ -43093,7 +40169,6 @@
 Landroid/media/session/MediaController$PlaybackInfo;->mMaxVolume:I
 Landroid/media/session/MediaController$PlaybackInfo;->mVolumeControl:I
 Landroid/media/session/MediaController$PlaybackInfo;->mVolumeType:I
-Landroid/media/session/MediaController$TransportControls;-><init>()V
 Landroid/media/session/MediaController$TransportControls;->TAG:Ljava/lang/String;
 Landroid/media/session/MediaController;-><init>(Landroid/content/Context;Landroid/media/session/ISessionController;)V
 Landroid/media/session/MediaController;->addCallbackLocked(Landroid/media/session/MediaController$Callback;Landroid/os/Handler;)V
@@ -43128,8 +40203,6 @@
 Landroid/media/session/MediaSession$Callback;->mHandler:Landroid/media/session/MediaSession$CallbackMessageHandler;
 Landroid/media/session/MediaSession$Callback;->mMediaPlayPauseKeyPending:Z
 Landroid/media/session/MediaSession$Callback;->mSession:Landroid/media/session/MediaSession;
-Landroid/media/session/MediaSession$CallbackMessageHandler;
-Landroid/media/session/MediaSession$CallbackMessageHandler;-><init>(Landroid/os/Looper;Landroid/media/session/MediaSession$Callback;)V
 Landroid/media/session/MediaSession$CallbackMessageHandler;->mCallback:Landroid/media/session/MediaSession$Callback;
 Landroid/media/session/MediaSession$CallbackMessageHandler;->mCurrentControllerInfo:Landroid/media/session/MediaSessionManager$RemoteUserInfo;
 Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_ADJUST_VOLUME:I
@@ -43156,7 +40229,6 @@
 Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_SKIP_TO_ITEM:I
 Landroid/media/session/MediaSession$CallbackMessageHandler;->MSG_STOP:I
 Landroid/media/session/MediaSession$CallbackMessageHandler;->post(Landroid/media/session/MediaSessionManager$RemoteUserInfo;ILjava/lang/Object;Landroid/os/Bundle;J)V
-Landroid/media/session/MediaSession$CallbackStub;
 Landroid/media/session/MediaSession$CallbackStub;-><init>(Landroid/media/session/MediaSession;)V
 Landroid/media/session/MediaSession$CallbackStub;->createRemoteUserInfo(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)Landroid/media/session/MediaSessionManager$RemoteUserInfo;
 Landroid/media/session/MediaSession$CallbackStub;->mMediaSession:Ljava/lang/ref/WeakReference;
@@ -43183,14 +40255,12 @@
 Landroid/media/session/MediaSession$CallbackStub;->onSetVolumeTo(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;I)V
 Landroid/media/session/MediaSession$CallbackStub;->onSkipToTrack(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;J)V
 Landroid/media/session/MediaSession$CallbackStub;->onStop(Ljava/lang/String;IILandroid/media/session/ISessionControllerCallback;)V
-Landroid/media/session/MediaSession$Command;
 Landroid/media/session/MediaSession$Command;-><init>(Ljava/lang/String;Landroid/os/Bundle;Landroid/os/ResultReceiver;)V
 Landroid/media/session/MediaSession$Command;->command:Ljava/lang/String;
 Landroid/media/session/MediaSession$Command;->extras:Landroid/os/Bundle;
 Landroid/media/session/MediaSession$Command;->stub:Landroid/os/ResultReceiver;
 Landroid/media/session/MediaSession$QueueItem;-><init>(Landroid/os/Parcel;)V
 Landroid/media/session/MediaSession$QueueItem;->mDescription:Landroid/media/MediaDescription;
-Landroid/media/session/MediaSession$SessionFlags;
 Landroid/media/session/MediaSession$Token;-><init>(Landroid/media/session/ISessionController;)V
 Landroid/media/session/MediaSession$Token;->getBinder()Landroid/media/session/ISessionController;
 Landroid/media/session/MediaSession$Token;->mBinder:Landroid/media/session/ISessionController;
@@ -43235,15 +40305,10 @@
 Landroid/media/session/MediaSession;->postToCallback(Landroid/media/session/MediaSessionManager$RemoteUserInfo;ILjava/lang/Object;Landroid/os/Bundle;)V
 Landroid/media/session/MediaSession;->postToCallbackDelayed(Landroid/media/session/MediaSessionManager$RemoteUserInfo;ILjava/lang/Object;Landroid/os/Bundle;J)V
 Landroid/media/session/MediaSession;->TAG:Ljava/lang/String;
-Landroid/media/session/MediaSessionLegacyHelper$MediaButtonListener;
 Landroid/media/session/MediaSessionLegacyHelper$MediaButtonListener;-><init>(Landroid/app/PendingIntent;Landroid/content/Context;)V
 Landroid/media/session/MediaSessionLegacyHelper$MediaButtonListener;->mContext:Landroid/content/Context;
 Landroid/media/session/MediaSessionLegacyHelper$MediaButtonListener;->mPendingIntent:Landroid/app/PendingIntent;
 Landroid/media/session/MediaSessionLegacyHelper$MediaButtonListener;->sendKeyEvent(I)V
-Landroid/media/session/MediaSessionLegacyHelper$SessionHolder$SessionCallback;
-Landroid/media/session/MediaSessionLegacyHelper$SessionHolder$SessionCallback;-><init>()V
-Landroid/media/session/MediaSessionLegacyHelper$SessionHolder;
-Landroid/media/session/MediaSessionLegacyHelper$SessionHolder;-><init>(Landroid/media/session/MediaSession;Landroid/app/PendingIntent;)V
 Landroid/media/session/MediaSessionLegacyHelper$SessionHolder;->mCb:Landroid/media/session/MediaSessionLegacyHelper$SessionHolder$SessionCallback;
 Landroid/media/session/MediaSessionLegacyHelper$SessionHolder;->mFlags:I
 Landroid/media/session/MediaSessionLegacyHelper$SessionHolder;->mMediaButtonListener:Landroid/media/session/MediaSessionLegacyHelper$MediaButtonListener;
@@ -43251,7 +40316,6 @@
 Landroid/media/session/MediaSessionLegacyHelper$SessionHolder;->mRccListener:Landroid/media/session/MediaSession$Callback;
 Landroid/media/session/MediaSessionLegacyHelper$SessionHolder;->mSession:Landroid/media/session/MediaSession;
 Landroid/media/session/MediaSessionLegacyHelper$SessionHolder;->update()V
-Landroid/media/session/MediaSessionLegacyHelper;
 Landroid/media/session/MediaSessionLegacyHelper;-><init>(Landroid/content/Context;)V
 Landroid/media/session/MediaSessionLegacyHelper;->addMediaButtonListener(Landroid/app/PendingIntent;Landroid/content/ComponentName;Landroid/content/Context;)V
 Landroid/media/session/MediaSessionLegacyHelper;->addRccListener(Landroid/app/PendingIntent;Landroid/media/session/MediaSession$Callback;)V
@@ -43274,13 +40338,11 @@
 Landroid/media/session/MediaSessionLegacyHelper;->sInstance:Landroid/media/session/MediaSessionLegacyHelper;
 Landroid/media/session/MediaSessionLegacyHelper;->sLock:Ljava/lang/Object;
 Landroid/media/session/MediaSessionLegacyHelper;->TAG:Ljava/lang/String;
-Landroid/media/session/MediaSessionManager$Callback;
 Landroid/media/session/MediaSessionManager$Callback;-><init>()V
 Landroid/media/session/MediaSessionManager$Callback;->onAddressedPlayerChanged(Landroid/content/ComponentName;)V
 Landroid/media/session/MediaSessionManager$Callback;->onAddressedPlayerChanged(Landroid/media/session/MediaSession$Token;)V
 Landroid/media/session/MediaSessionManager$Callback;->onMediaKeyEventDispatched(Landroid/view/KeyEvent;Landroid/content/ComponentName;)V
 Landroid/media/session/MediaSessionManager$Callback;->onMediaKeyEventDispatched(Landroid/view/KeyEvent;Landroid/media/session/MediaSession$Token;)V
-Landroid/media/session/MediaSessionManager$CallbackImpl;
 Landroid/media/session/MediaSessionManager$CallbackImpl;-><init>(Landroid/media/session/MediaSessionManager$Callback;Landroid/os/Handler;)V
 Landroid/media/session/MediaSessionManager$CallbackImpl;->mCallback:Landroid/media/session/MediaSessionManager$Callback;
 Landroid/media/session/MediaSessionManager$CallbackImpl;->mHandler:Landroid/os/Handler;
@@ -43288,14 +40350,11 @@
 Landroid/media/session/MediaSessionManager$CallbackImpl;->onAddressedPlayerChangedToMediaSession(Landroid/media/session/MediaSession$Token;)V
 Landroid/media/session/MediaSessionManager$CallbackImpl;->onMediaKeyEventDispatchedToMediaButtonReceiver(Landroid/view/KeyEvent;Landroid/content/ComponentName;)V
 Landroid/media/session/MediaSessionManager$CallbackImpl;->onMediaKeyEventDispatchedToMediaSession(Landroid/view/KeyEvent;Landroid/media/session/MediaSession$Token;)V
-Landroid/media/session/MediaSessionManager$OnMediaKeyListenerImpl;
 Landroid/media/session/MediaSessionManager$OnMediaKeyListenerImpl;-><init>(Landroid/media/session/MediaSessionManager$OnMediaKeyListener;Landroid/os/Handler;)V
 Landroid/media/session/MediaSessionManager$OnMediaKeyListenerImpl;->mHandler:Landroid/os/Handler;
 Landroid/media/session/MediaSessionManager$OnMediaKeyListenerImpl;->mListener:Landroid/media/session/MediaSessionManager$OnMediaKeyListener;
 Landroid/media/session/MediaSessionManager$OnMediaKeyListenerImpl;->onMediaKey(Landroid/view/KeyEvent;Landroid/os/ResultReceiver;)V
-Landroid/media/session/MediaSessionManager$OnSessionTokensChangedListener;
 Landroid/media/session/MediaSessionManager$OnSessionTokensChangedListener;->onSessionTokensChanged(Ljava/util/List;)V
-Landroid/media/session/MediaSessionManager$OnVolumeKeyLongPressListenerImpl;
 Landroid/media/session/MediaSessionManager$OnVolumeKeyLongPressListenerImpl;-><init>(Landroid/media/session/MediaSessionManager$OnVolumeKeyLongPressListener;Landroid/os/Handler;)V
 Landroid/media/session/MediaSessionManager$OnVolumeKeyLongPressListenerImpl;->mHandler:Landroid/os/Handler;
 Landroid/media/session/MediaSessionManager$OnVolumeKeyLongPressListenerImpl;->mListener:Landroid/media/session/MediaSessionManager$OnVolumeKeyLongPressListener;
@@ -43305,14 +40364,12 @@
 Landroid/media/session/MediaSessionManager$RemoteUserInfo;->mPackageName:Ljava/lang/String;
 Landroid/media/session/MediaSessionManager$RemoteUserInfo;->mPid:I
 Landroid/media/session/MediaSessionManager$RemoteUserInfo;->mUid:I
-Landroid/media/session/MediaSessionManager$SessionsChangedWrapper;
 Landroid/media/session/MediaSessionManager$SessionsChangedWrapper;-><init>(Landroid/content/Context;Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener;Landroid/os/Handler;)V
 Landroid/media/session/MediaSessionManager$SessionsChangedWrapper;->mContext:Landroid/content/Context;
 Landroid/media/session/MediaSessionManager$SessionsChangedWrapper;->mHandler:Landroid/os/Handler;
 Landroid/media/session/MediaSessionManager$SessionsChangedWrapper;->mListener:Landroid/media/session/MediaSessionManager$OnActiveSessionsChangedListener;
 Landroid/media/session/MediaSessionManager$SessionsChangedWrapper;->mStub:Landroid/media/session/IActiveSessionsListener$Stub;
 Landroid/media/session/MediaSessionManager$SessionsChangedWrapper;->release()V
-Landroid/media/session/MediaSessionManager$SessionTokensChangedWrapper;
 Landroid/media/session/MediaSessionManager$SessionTokensChangedWrapper;-><init>(Landroid/content/Context;Ljava/util/concurrent/Executor;Landroid/media/session/MediaSessionManager$OnSessionTokensChangedListener;)V
 Landroid/media/session/MediaSessionManager$SessionTokensChangedWrapper;->mContext:Landroid/content/Context;
 Landroid/media/session/MediaSessionManager$SessionTokensChangedWrapper;->mExecutor:Ljava/util/concurrent/Executor;
@@ -43353,7 +40410,6 @@
 Landroid/media/session/MediaSessionManager;->setRemoteVolumeController(Landroid/media/IRemoteVolumeController;)V
 Landroid/media/session/MediaSessionManager;->TAG:Ljava/lang/String;
 Landroid/media/session/MediaSessionManager;->toTokenList(Ljava/util/List;)Ljava/util/List;
-Landroid/media/session/ParcelableVolumeInfo;
 Landroid/media/session/ParcelableVolumeInfo;-><init>(ILandroid/media/AudioAttributes;III)V
 Landroid/media/session/ParcelableVolumeInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/media/session/ParcelableVolumeInfo;->audioAttrs:Landroid/media/AudioAttributes;
@@ -43362,7 +40418,6 @@
 Landroid/media/session/ParcelableVolumeInfo;->currentVolume:I
 Landroid/media/session/ParcelableVolumeInfo;->maxVolume:I
 Landroid/media/session/ParcelableVolumeInfo;->volumeType:I
-Landroid/media/session/PlaybackState$Actions;
 Landroid/media/session/PlaybackState$Builder;->mActions:J
 Landroid/media/session/PlaybackState$Builder;->mActiveItemId:J
 Landroid/media/session/PlaybackState$Builder;->mBufferedPosition:J
@@ -43383,7 +40438,6 @@
 Landroid/media/session/PlaybackState$CustomAction;->mExtras:Landroid/os/Bundle;
 Landroid/media/session/PlaybackState$CustomAction;->mIcon:I
 Landroid/media/session/PlaybackState$CustomAction;->mName:Ljava/lang/CharSequence;
-Landroid/media/session/PlaybackState$State;
 Landroid/media/session/PlaybackState;-><init>(IJJFJJLjava/util/List;JLjava/lang/CharSequence;Landroid/os/Bundle;)V
 Landroid/media/session/PlaybackState;-><init>(Landroid/os/Parcel;)V
 Landroid/media/session/PlaybackState;->getActionForRccFlag(I)J
@@ -43403,7 +40457,6 @@
 Landroid/media/session/PlaybackState;->mState:I
 Landroid/media/session/PlaybackState;->mUpdateTime:J
 Landroid/media/session/PlaybackState;->TAG:Ljava/lang/String;
-Landroid/media/SessionCommand2;
 Landroid/media/SessionCommand2;-><init>(I)V
 Landroid/media/SessionCommand2;-><init>(Ljava/lang/String;Landroid/os/Bundle;)V
 Landroid/media/SessionCommand2;->COMMAND_CODE_ADJUST_VOLUME:I
@@ -43449,7 +40502,6 @@
 Landroid/media/SessionCommand2;->getProvider()Landroid/media/update/MediaSession2Provider$CommandProvider;
 Landroid/media/SessionCommand2;->mProvider:Landroid/media/update/MediaSession2Provider$CommandProvider;
 Landroid/media/SessionCommand2;->toBundle()Landroid/os/Bundle;
-Landroid/media/SessionCommandGroup2;
 Landroid/media/SessionCommandGroup2;-><init>()V
 Landroid/media/SessionCommandGroup2;-><init>(Landroid/media/SessionCommandGroup2;)V
 Landroid/media/SessionCommandGroup2;-><init>(Landroid/media/update/MediaSession2Provider$CommandGroupProvider;)V
@@ -43465,8 +40517,6 @@
 Landroid/media/SessionCommandGroup2;->removeCommand(I)V
 Landroid/media/SessionCommandGroup2;->removeCommand(Landroid/media/SessionCommand2;)V
 Landroid/media/SessionCommandGroup2;->toBundle()Landroid/os/Bundle;
-Landroid/media/SessionToken2$TokenType;
-Landroid/media/SessionToken2;
 Landroid/media/SessionToken2;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/media/SessionToken2;-><init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;I)V
 Landroid/media/SessionToken2;-><init>(Landroid/media/update/SessionToken2Provider;)V
@@ -43484,8 +40534,6 @@
 Landroid/media/SessionToken2;->UID_UNKNOWN:I
 Landroid/media/SoundPool$Builder;->mAudioAttributes:Landroid/media/AudioAttributes;
 Landroid/media/SoundPool$Builder;->mMaxStreams:I
-Landroid/media/SoundPool$EventHandler;
-Landroid/media/SoundPool$EventHandler;-><init>(Landroid/os/Looper;)V
 Landroid/media/SoundPool;-><init>(ILandroid/media/AudioAttributes;)V
 Landroid/media/SoundPool;->DEBUG:Z
 Landroid/media/SoundPool;->mAttributes:Landroid/media/AudioAttributes;
@@ -43511,7 +40559,6 @@
 Landroid/media/SoundPool;->_mute(Z)V
 Landroid/media/SoundPool;->_play(IFFIIF)I
 Landroid/media/SoundPool;->_setVolume(IFF)V
-Landroid/media/soundtrigger/ISoundTriggerDetectionService$Stub$Proxy;
 Landroid/media/soundtrigger/ISoundTriggerDetectionService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/soundtrigger/ISoundTriggerDetectionService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/soundtrigger/ISoundTriggerDetectionService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -43520,7 +40567,6 @@
 Landroid/media/soundtrigger/ISoundTriggerDetectionService$Stub$Proxy;->onStopOperation(Landroid/os/ParcelUuid;I)V
 Landroid/media/soundtrigger/ISoundTriggerDetectionService$Stub$Proxy;->removeClient(Landroid/os/ParcelUuid;)V
 Landroid/media/soundtrigger/ISoundTriggerDetectionService$Stub$Proxy;->setClient(Landroid/os/ParcelUuid;Landroid/os/Bundle;Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient;)V
-Landroid/media/soundtrigger/ISoundTriggerDetectionService$Stub;
 Landroid/media/soundtrigger/ISoundTriggerDetectionService$Stub;-><init>()V
 Landroid/media/soundtrigger/ISoundTriggerDetectionService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/soundtrigger/ISoundTriggerDetectionService;
 Landroid/media/soundtrigger/ISoundTriggerDetectionService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -43529,23 +40575,19 @@
 Landroid/media/soundtrigger/ISoundTriggerDetectionService$Stub;->TRANSACTION_onStopOperation:I
 Landroid/media/soundtrigger/ISoundTriggerDetectionService$Stub;->TRANSACTION_removeClient:I
 Landroid/media/soundtrigger/ISoundTriggerDetectionService$Stub;->TRANSACTION_setClient:I
-Landroid/media/soundtrigger/ISoundTriggerDetectionService;
 Landroid/media/soundtrigger/ISoundTriggerDetectionService;->onError(Landroid/os/ParcelUuid;II)V
 Landroid/media/soundtrigger/ISoundTriggerDetectionService;->onGenericRecognitionEvent(Landroid/os/ParcelUuid;ILandroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent;)V
 Landroid/media/soundtrigger/ISoundTriggerDetectionService;->onStopOperation(Landroid/os/ParcelUuid;I)V
 Landroid/media/soundtrigger/ISoundTriggerDetectionService;->removeClient(Landroid/os/ParcelUuid;)V
 Landroid/media/soundtrigger/ISoundTriggerDetectionService;->setClient(Landroid/os/ParcelUuid;Landroid/os/Bundle;Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient;)V
-Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient$Stub$Proxy;
 Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient$Stub$Proxy;->onOpFinished(I)V
-Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient$Stub;
 Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient$Stub;-><init>()V
 Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient;
 Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient$Stub;->TRANSACTION_onOpFinished:I
-Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient;
 Landroid/media/soundtrigger/ISoundTriggerDetectionServiceClient;->onOpFinished(I)V
 Landroid/media/soundtrigger/SoundTriggerDetectionService;->DEBUG:Z
 Landroid/media/soundtrigger/SoundTriggerDetectionService;->LOG_TAG:Ljava/lang/String;
@@ -43560,17 +40602,11 @@
 Landroid/media/soundtrigger/SoundTriggerDetector$EventPayload;->mCaptureSession:I
 Landroid/media/soundtrigger/SoundTriggerDetector$EventPayload;->mData:[B
 Landroid/media/soundtrigger/SoundTriggerDetector$EventPayload;->mTriggerAvailable:Z
-Landroid/media/soundtrigger/SoundTriggerDetector$MyHandler;
-Landroid/media/soundtrigger/SoundTriggerDetector$MyHandler;-><init>()V
-Landroid/media/soundtrigger/SoundTriggerDetector$MyHandler;-><init>(Landroid/os/Looper;)V
-Landroid/media/soundtrigger/SoundTriggerDetector$RecognitionCallback;
-Landroid/media/soundtrigger/SoundTriggerDetector$RecognitionCallback;-><init>()V
 Landroid/media/soundtrigger/SoundTriggerDetector$RecognitionCallback;->onError(I)V
 Landroid/media/soundtrigger/SoundTriggerDetector$RecognitionCallback;->onGenericSoundTriggerDetected(Landroid/hardware/soundtrigger/SoundTrigger$GenericRecognitionEvent;)V
 Landroid/media/soundtrigger/SoundTriggerDetector$RecognitionCallback;->onKeyphraseDetected(Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseRecognitionEvent;)V
 Landroid/media/soundtrigger/SoundTriggerDetector$RecognitionCallback;->onRecognitionPaused()V
 Landroid/media/soundtrigger/SoundTriggerDetector$RecognitionCallback;->onRecognitionResumed()V
-Landroid/media/soundtrigger/SoundTriggerDetector$RecognitionFlags;
 Landroid/media/soundtrigger/SoundTriggerDetector;-><init>(Lcom/android/internal/app/ISoundTriggerService;Ljava/util/UUID;Landroid/media/soundtrigger/SoundTriggerDetector$Callback;Landroid/os/Handler;)V
 Landroid/media/soundtrigger/SoundTriggerDetector;->DBG:Z
 Landroid/media/soundtrigger/SoundTriggerDetector;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
@@ -43604,7 +40640,6 @@
 Landroid/media/soundtrigger/SoundTriggerManager;->mReceiverInstanceMap:Ljava/util/HashMap;
 Landroid/media/soundtrigger/SoundTriggerManager;->mSoundTriggerService:Lcom/android/internal/app/ISoundTriggerService;
 Landroid/media/soundtrigger/SoundTriggerManager;->TAG:Ljava/lang/String;
-Landroid/media/SRTRenderer;
 Landroid/media/SRTRenderer;-><init>(Landroid/content/Context;)V
 Landroid/media/SRTRenderer;-><init>(Landroid/content/Context;Landroid/os/Handler;)V
 Landroid/media/SRTRenderer;->createTrack(Landroid/media/MediaFormat;)Landroid/media/SubtitleTrack;
@@ -43613,16 +40648,12 @@
 Landroid/media/SRTRenderer;->mRender:Z
 Landroid/media/SRTRenderer;->mRenderingWidget:Landroid/media/WebVttRenderingWidget;
 Landroid/media/SRTRenderer;->supports(Landroid/media/MediaFormat;)Z
-Landroid/media/SubtitleController$Anchor;
 Landroid/media/SubtitleController$Anchor;->getSubtitleLooper()Landroid/os/Looper;
 Landroid/media/SubtitleController$Anchor;->setSubtitleWidget(Landroid/media/SubtitleTrack$RenderingWidget;)V
-Landroid/media/SubtitleController$Listener;
 Landroid/media/SubtitleController$Listener;->onSubtitleTrackSelected(Landroid/media/SubtitleTrack;)V
-Landroid/media/SubtitleController$Renderer;
 Landroid/media/SubtitleController$Renderer;-><init>()V
 Landroid/media/SubtitleController$Renderer;->createTrack(Landroid/media/MediaFormat;)Landroid/media/SubtitleTrack;
 Landroid/media/SubtitleController$Renderer;->supports(Landroid/media/MediaFormat;)Z
-Landroid/media/SubtitleController;
 Landroid/media/SubtitleController;->addTrack(Landroid/media/MediaFormat;)Landroid/media/SubtitleTrack;
 Landroid/media/SubtitleController;->checkAnchorLooper()V
 Landroid/media/SubtitleController;->doHide()V
@@ -43661,7 +40692,6 @@
 Landroid/media/SubtitleData;->mTrackIndex:I
 Landroid/media/SubtitleData;->parseParcel(Landroid/os/Parcel;)Z
 Landroid/media/SubtitleData;->TAG:Ljava/lang/String;
-Landroid/media/SubtitleTrack$Cue;
 Landroid/media/SubtitleTrack$Cue;-><init>()V
 Landroid/media/SubtitleTrack$Cue;->mEndTimeMs:J
 Landroid/media/SubtitleTrack$Cue;->mInnerTimesMs:[J
@@ -43669,8 +40699,6 @@
 Landroid/media/SubtitleTrack$Cue;->mRunID:J
 Landroid/media/SubtitleTrack$Cue;->mStartTimeMs:J
 Landroid/media/SubtitleTrack$Cue;->onTime(J)V
-Landroid/media/SubtitleTrack$CueList$EntryIterator;
-Landroid/media/SubtitleTrack$CueList$EntryIterator;-><init>(Ljava/util/SortedMap;)V
 Landroid/media/SubtitleTrack$CueList$EntryIterator;->mCurrentTimeMs:J
 Landroid/media/SubtitleTrack$CueList$EntryIterator;->mDone:Z
 Landroid/media/SubtitleTrack$CueList$EntryIterator;->mLastEntry:Landroid/util/Pair;
@@ -43678,7 +40706,6 @@
 Landroid/media/SubtitleTrack$CueList$EntryIterator;->mListIterator:Ljava/util/Iterator;
 Landroid/media/SubtitleTrack$CueList$EntryIterator;->mRemainingCues:Ljava/util/SortedMap;
 Landroid/media/SubtitleTrack$CueList$EntryIterator;->nextKey()V
-Landroid/media/SubtitleTrack$CueList;
 Landroid/media/SubtitleTrack$CueList;-><init>()V
 Landroid/media/SubtitleTrack$CueList;->add(Landroid/media/SubtitleTrack$Cue;)V
 Landroid/media/SubtitleTrack$CueList;->addEvent(Landroid/media/SubtitleTrack$Cue;J)Z
@@ -43689,11 +40716,8 @@
 Landroid/media/SubtitleTrack$CueList;->remove(Landroid/media/SubtitleTrack$Cue;)V
 Landroid/media/SubtitleTrack$CueList;->removeEvent(Landroid/media/SubtitleTrack$Cue;J)V
 Landroid/media/SubtitleTrack$CueList;->TAG:Ljava/lang/String;
-Landroid/media/SubtitleTrack$RenderingWidget$OnChangedListener;
 Landroid/media/SubtitleTrack$RenderingWidget$OnChangedListener;->onChanged(Landroid/media/SubtitleTrack$RenderingWidget;)V
-Landroid/media/SubtitleTrack$RenderingWidget;
 Landroid/media/SubtitleTrack$RenderingWidget;->setVisible(Z)V
-Landroid/media/SubtitleTrack$Run;
 Landroid/media/SubtitleTrack$Run;-><init>()V
 Landroid/media/SubtitleTrack$Run;->mEndTimeMs:J
 Landroid/media/SubtitleTrack$Run;->mFirstCue:Landroid/media/SubtitleTrack$Cue;
@@ -43703,7 +40727,6 @@
 Landroid/media/SubtitleTrack$Run;->mStoredEndTimeMs:J
 Landroid/media/SubtitleTrack$Run;->removeAtEndTimeMs()V
 Landroid/media/SubtitleTrack$Run;->storeByEndTimeMs(Landroid/util/LongSparseArray;)V
-Landroid/media/SubtitleTrack;
 Landroid/media/SubtitleTrack;-><init>(Landroid/media/MediaFormat;)V
 Landroid/media/SubtitleTrack;->addCue(Landroid/media/SubtitleTrack$Cue;)Z
 Landroid/media/SubtitleTrack;->clearActiveCues()V
@@ -43739,8 +40762,6 @@
 Landroid/media/SubtitleTrack;->takeTime(J)V
 Landroid/media/SubtitleTrack;->updateActiveCues(ZJ)V
 Landroid/media/SubtitleTrack;->updateView(Ljava/util/Vector;)V
-Landroid/media/SyncParams$AudioAdjustMode;
-Landroid/media/SyncParams$SyncSource;
 Landroid/media/SyncParams;->mAudioAdjustMode:I
 Landroid/media/SyncParams;->mFrameRate:F
 Landroid/media/SyncParams;->mSet:I
@@ -43750,7 +40771,6 @@
 Landroid/media/SyncParams;->SET_FRAME_RATE:I
 Landroid/media/SyncParams;->SET_SYNC_SOURCE:I
 Landroid/media/SyncParams;->SET_TOLERANCE:I
-Landroid/media/TextTrackCue;
 Landroid/media/TextTrackCue;-><init>()V
 Landroid/media/TextTrackCue;->ALIGNMENT_END:I
 Landroid/media/TextTrackCue;->ALIGNMENT_LEFT:I
@@ -43777,12 +40797,10 @@
 Landroid/media/TextTrackCue;->WRITING_DIRECTION_HORIZONTAL:I
 Landroid/media/TextTrackCue;->WRITING_DIRECTION_VERTICAL_LR:I
 Landroid/media/TextTrackCue;->WRITING_DIRECTION_VERTICAL_RL:I
-Landroid/media/TextTrackCueSpan;
 Landroid/media/TextTrackCueSpan;-><init>(Ljava/lang/String;J)V
 Landroid/media/TextTrackCueSpan;->mEnabled:Z
 Landroid/media/TextTrackCueSpan;->mText:Ljava/lang/String;
 Landroid/media/TextTrackCueSpan;->mTimestampMs:J
-Landroid/media/TextTrackRegion;
 Landroid/media/TextTrackRegion;-><init>()V
 Landroid/media/TextTrackRegion;->mAnchorPointX:F
 Landroid/media/TextTrackRegion;->mAnchorPointY:F
@@ -43794,7 +40812,6 @@
 Landroid/media/TextTrackRegion;->mWidth:F
 Landroid/media/TextTrackRegion;->SCROLL_VALUE_NONE:I
 Landroid/media/TextTrackRegion;->SCROLL_VALUE_SCROLL_UP:I
-Landroid/media/ThumbnailUtils$SizedThumbnailBitmap;
 Landroid/media/ThumbnailUtils$SizedThumbnailBitmap;-><init>()V
 Landroid/media/ThumbnailUtils$SizedThumbnailBitmap;->mBitmap:Landroid/graphics/Bitmap;
 Landroid/media/ThumbnailUtils$SizedThumbnailBitmap;->mThumbnailData:[B
@@ -43815,31 +40832,25 @@
 Landroid/media/TimedMetaData;->mTimestampUs:J
 Landroid/media/TimedMetaData;->parseParcel(Landroid/os/Parcel;)Z
 Landroid/media/TimedMetaData;->TAG:Ljava/lang/String;
-Landroid/media/TimedText$CharPos;
 Landroid/media/TimedText$CharPos;-><init>(II)V
 Landroid/media/TimedText$CharPos;->endChar:I
 Landroid/media/TimedText$CharPos;->startChar:I
-Landroid/media/TimedText$Font;
 Landroid/media/TimedText$Font;-><init>(ILjava/lang/String;)V
 Landroid/media/TimedText$Font;->ID:I
 Landroid/media/TimedText$Font;->name:Ljava/lang/String;
-Landroid/media/TimedText$HyperText;
 Landroid/media/TimedText$HyperText;-><init>(IILjava/lang/String;Ljava/lang/String;)V
 Landroid/media/TimedText$HyperText;->altString:Ljava/lang/String;
 Landroid/media/TimedText$HyperText;->endChar:I
 Landroid/media/TimedText$HyperText;->startChar:I
 Landroid/media/TimedText$HyperText;->URL:Ljava/lang/String;
-Landroid/media/TimedText$Justification;
 Landroid/media/TimedText$Justification;-><init>(II)V
 Landroid/media/TimedText$Justification;->horizontalJustification:I
 Landroid/media/TimedText$Justification;->verticalJustification:I
-Landroid/media/TimedText$Karaoke;
 Landroid/media/TimedText$Karaoke;-><init>(IIII)V
 Landroid/media/TimedText$Karaoke;->endChar:I
 Landroid/media/TimedText$Karaoke;->endTimeMs:I
 Landroid/media/TimedText$Karaoke;->startChar:I
 Landroid/media/TimedText$Karaoke;->startTimeMs:I
-Landroid/media/TimedText$Style;
 Landroid/media/TimedText$Style;-><init>(IIIZZZII)V
 Landroid/media/TimedText$Style;->colorRGBA:I
 Landroid/media/TimedText$Style;->endChar:I
@@ -43906,13 +40917,11 @@
 Landroid/media/ToneGenerator;->native_finalize()V
 Landroid/media/ToneGenerator;->native_setup(II)V
 Landroid/media/ToneGenerator;->TONE_UNKNOWN:I
-Landroid/media/TtmlRenderer;
 Landroid/media/TtmlRenderer;->createTrack(Landroid/media/MediaFormat;)Landroid/media/SubtitleTrack;
 Landroid/media/TtmlRenderer;->mContext:Landroid/content/Context;
 Landroid/media/TtmlRenderer;->MEDIA_MIMETYPE_TEXT_TTML:Ljava/lang/String;
 Landroid/media/TtmlRenderer;->mRenderingWidget:Landroid/media/TtmlRenderingWidget;
 Landroid/media/TtmlRenderer;->supports(Landroid/media/MediaFormat;)Z
-Landroid/media/TtmlRenderingWidget;
 Landroid/media/TtmlRenderingWidget;-><init>(Landroid/content/Context;)V
 Landroid/media/TtmlRenderingWidget;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/media/TtmlRenderingWidget;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
@@ -43923,7 +40932,6 @@
 Landroid/media/TtmlRenderingWidget;->setOnChangedListener(Landroid/media/SubtitleTrack$RenderingWidget$OnChangedListener;)V
 Landroid/media/TtmlRenderingWidget;->setSize(II)V
 Landroid/media/TtmlRenderingWidget;->setVisible(Z)V
-Landroid/media/tv/DvbDeviceInfo;
 Landroid/media/tv/DvbDeviceInfo;-><init>(II)V
 Landroid/media/tv/DvbDeviceInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/media/tv/DvbDeviceInfo;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -43932,7 +40940,6 @@
 Landroid/media/tv/DvbDeviceInfo;->mAdapterId:I
 Landroid/media/tv/DvbDeviceInfo;->mDeviceId:I
 Landroid/media/tv/DvbDeviceInfo;->TAG:Ljava/lang/String;
-Landroid/media/tv/ITvInputClient$Stub$Proxy;
 Landroid/media/tv/ITvInputClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/tv/ITvInputClient$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/tv/ITvInputClient$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -43953,7 +40960,6 @@
 Landroid/media/tv/ITvInputClient$Stub$Proxy;->onTuned(ILandroid/net/Uri;)V
 Landroid/media/tv/ITvInputClient$Stub$Proxy;->onVideoAvailable(I)V
 Landroid/media/tv/ITvInputClient$Stub$Proxy;->onVideoUnavailable(II)V
-Landroid/media/tv/ITvInputClient$Stub;
 Landroid/media/tv/ITvInputClient$Stub;-><init>()V
 Landroid/media/tv/ITvInputClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/tv/ITvInputClient;
 Landroid/media/tv/ITvInputClient$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -43974,7 +40980,6 @@
 Landroid/media/tv/ITvInputClient$Stub;->TRANSACTION_onTuned:I
 Landroid/media/tv/ITvInputClient$Stub;->TRANSACTION_onVideoAvailable:I
 Landroid/media/tv/ITvInputClient$Stub;->TRANSACTION_onVideoUnavailable:I
-Landroid/media/tv/ITvInputClient;
 Landroid/media/tv/ITvInputClient;->onChannelRetuned(Landroid/net/Uri;I)V
 Landroid/media/tv/ITvInputClient;->onContentAllowed(I)V
 Landroid/media/tv/ITvInputClient;->onContentBlocked(Ljava/lang/String;I)V
@@ -43992,40 +40997,33 @@
 Landroid/media/tv/ITvInputClient;->onTuned(ILandroid/net/Uri;)V
 Landroid/media/tv/ITvInputClient;->onVideoAvailable(I)V
 Landroid/media/tv/ITvInputClient;->onVideoUnavailable(II)V
-Landroid/media/tv/ITvInputHardware$Stub$Proxy;
 Landroid/media/tv/ITvInputHardware$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/tv/ITvInputHardware$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/tv/ITvInputHardware$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/media/tv/ITvInputHardware$Stub$Proxy;->overrideAudioSink(ILjava/lang/String;III)V
 Landroid/media/tv/ITvInputHardware$Stub$Proxy;->setStreamVolume(F)V
 Landroid/media/tv/ITvInputHardware$Stub$Proxy;->setSurface(Landroid/view/Surface;Landroid/media/tv/TvStreamConfig;)Z
-Landroid/media/tv/ITvInputHardware$Stub;
 Landroid/media/tv/ITvInputHardware$Stub;-><init>()V
 Landroid/media/tv/ITvInputHardware$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/tv/ITvInputHardware;
 Landroid/media/tv/ITvInputHardware$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/tv/ITvInputHardware$Stub;->TRANSACTION_overrideAudioSink:I
 Landroid/media/tv/ITvInputHardware$Stub;->TRANSACTION_setStreamVolume:I
 Landroid/media/tv/ITvInputHardware$Stub;->TRANSACTION_setSurface:I
-Landroid/media/tv/ITvInputHardware;
 Landroid/media/tv/ITvInputHardware;->overrideAudioSink(ILjava/lang/String;III)V
 Landroid/media/tv/ITvInputHardware;->setStreamVolume(F)V
 Landroid/media/tv/ITvInputHardware;->setSurface(Landroid/view/Surface;Landroid/media/tv/TvStreamConfig;)Z
-Landroid/media/tv/ITvInputHardwareCallback$Stub$Proxy;
 Landroid/media/tv/ITvInputHardwareCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/tv/ITvInputHardwareCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/tv/ITvInputHardwareCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/media/tv/ITvInputHardwareCallback$Stub$Proxy;->onReleased()V
 Landroid/media/tv/ITvInputHardwareCallback$Stub$Proxy;->onStreamConfigChanged([Landroid/media/tv/TvStreamConfig;)V
-Landroid/media/tv/ITvInputHardwareCallback$Stub;
 Landroid/media/tv/ITvInputHardwareCallback$Stub;-><init>()V
 Landroid/media/tv/ITvInputHardwareCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/tv/ITvInputHardwareCallback;
 Landroid/media/tv/ITvInputHardwareCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/tv/ITvInputHardwareCallback$Stub;->TRANSACTION_onReleased:I
 Landroid/media/tv/ITvInputHardwareCallback$Stub;->TRANSACTION_onStreamConfigChanged:I
-Landroid/media/tv/ITvInputHardwareCallback;
 Landroid/media/tv/ITvInputHardwareCallback;->onReleased()V
 Landroid/media/tv/ITvInputHardwareCallback;->onStreamConfigChanged([Landroid/media/tv/TvStreamConfig;)V
-Landroid/media/tv/ITvInputManager$Stub$Proxy;
 Landroid/media/tv/ITvInputManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/tv/ITvInputManager$Stub$Proxy;->acquireTvInputHardware(ILandroid/media/tv/ITvInputHardwareCallback;Landroid/media/tv/TvInputInfo;I)Landroid/media/tv/ITvInputHardware;
 Landroid/media/tv/ITvInputManager$Stub$Proxy;->addBlockedRating(Ljava/lang/String;I)V
@@ -44074,7 +41072,6 @@
 Landroid/media/tv/ITvInputManager$Stub$Proxy;->unblockContent(Landroid/os/IBinder;Ljava/lang/String;I)V
 Landroid/media/tv/ITvInputManager$Stub$Proxy;->unregisterCallback(Landroid/media/tv/ITvInputManagerCallback;I)V
 Landroid/media/tv/ITvInputManager$Stub$Proxy;->updateTvInputInfo(Landroid/media/tv/TvInputInfo;I)V
-Landroid/media/tv/ITvInputManager$Stub;
 Landroid/media/tv/ITvInputManager$Stub;-><init>()V
 Landroid/media/tv/ITvInputManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/tv/ITvInputManager;
 Landroid/media/tv/ITvInputManager$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -44123,7 +41120,6 @@
 Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_unblockContent:I
 Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_unregisterCallback:I
 Landroid/media/tv/ITvInputManager$Stub;->TRANSACTION_updateTvInputInfo:I
-Landroid/media/tv/ITvInputManager;
 Landroid/media/tv/ITvInputManager;->acquireTvInputHardware(ILandroid/media/tv/ITvInputHardwareCallback;Landroid/media/tv/TvInputInfo;I)Landroid/media/tv/ITvInputHardware;
 Landroid/media/tv/ITvInputManager;->addBlockedRating(Ljava/lang/String;I)V
 Landroid/media/tv/ITvInputManager;->captureFrame(Ljava/lang/String;Landroid/view/Surface;Landroid/media/tv/TvStreamConfig;I)Z
@@ -44169,7 +41165,6 @@
 Landroid/media/tv/ITvInputManager;->unblockContent(Landroid/os/IBinder;Ljava/lang/String;I)V
 Landroid/media/tv/ITvInputManager;->unregisterCallback(Landroid/media/tv/ITvInputManagerCallback;I)V
 Landroid/media/tv/ITvInputManager;->updateTvInputInfo(Landroid/media/tv/TvInputInfo;I)V
-Landroid/media/tv/ITvInputManagerCallback$Stub$Proxy;
 Landroid/media/tv/ITvInputManagerCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/tv/ITvInputManagerCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/tv/ITvInputManagerCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -44178,7 +41173,6 @@
 Landroid/media/tv/ITvInputManagerCallback$Stub$Proxy;->onInputStateChanged(Ljava/lang/String;I)V
 Landroid/media/tv/ITvInputManagerCallback$Stub$Proxy;->onInputUpdated(Ljava/lang/String;)V
 Landroid/media/tv/ITvInputManagerCallback$Stub$Proxy;->onTvInputInfoUpdated(Landroid/media/tv/TvInputInfo;)V
-Landroid/media/tv/ITvInputManagerCallback$Stub;
 Landroid/media/tv/ITvInputManagerCallback$Stub;-><init>()V
 Landroid/media/tv/ITvInputManagerCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/tv/ITvInputManagerCallback;
 Landroid/media/tv/ITvInputManagerCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -44187,13 +41181,11 @@
 Landroid/media/tv/ITvInputManagerCallback$Stub;->TRANSACTION_onInputStateChanged:I
 Landroid/media/tv/ITvInputManagerCallback$Stub;->TRANSACTION_onInputUpdated:I
 Landroid/media/tv/ITvInputManagerCallback$Stub;->TRANSACTION_onTvInputInfoUpdated:I
-Landroid/media/tv/ITvInputManagerCallback;
 Landroid/media/tv/ITvInputManagerCallback;->onInputAdded(Ljava/lang/String;)V
 Landroid/media/tv/ITvInputManagerCallback;->onInputRemoved(Ljava/lang/String;)V
 Landroid/media/tv/ITvInputManagerCallback;->onInputStateChanged(Ljava/lang/String;I)V
 Landroid/media/tv/ITvInputManagerCallback;->onInputUpdated(Ljava/lang/String;)V
 Landroid/media/tv/ITvInputManagerCallback;->onTvInputInfoUpdated(Landroid/media/tv/TvInputInfo;)V
-Landroid/media/tv/ITvInputService$Stub$Proxy;
 Landroid/media/tv/ITvInputService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/tv/ITvInputService$Stub$Proxy;->createRecordingSession(Landroid/media/tv/ITvInputSessionCallback;Ljava/lang/String;)V
 Landroid/media/tv/ITvInputService$Stub$Proxy;->createSession(Landroid/view/InputChannel;Landroid/media/tv/ITvInputSessionCallback;Ljava/lang/String;)V
@@ -44205,7 +41197,6 @@
 Landroid/media/tv/ITvInputService$Stub$Proxy;->notifyHdmiDeviceRemoved(Landroid/hardware/hdmi/HdmiDeviceInfo;)V
 Landroid/media/tv/ITvInputService$Stub$Proxy;->registerCallback(Landroid/media/tv/ITvInputServiceCallback;)V
 Landroid/media/tv/ITvInputService$Stub$Proxy;->unregisterCallback(Landroid/media/tv/ITvInputServiceCallback;)V
-Landroid/media/tv/ITvInputService$Stub;
 Landroid/media/tv/ITvInputService$Stub;-><init>()V
 Landroid/media/tv/ITvInputService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/tv/ITvInputService;
 Landroid/media/tv/ITvInputService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -44217,7 +41208,6 @@
 Landroid/media/tv/ITvInputService$Stub;->TRANSACTION_notifyHdmiDeviceRemoved:I
 Landroid/media/tv/ITvInputService$Stub;->TRANSACTION_registerCallback:I
 Landroid/media/tv/ITvInputService$Stub;->TRANSACTION_unregisterCallback:I
-Landroid/media/tv/ITvInputService;
 Landroid/media/tv/ITvInputService;->createRecordingSession(Landroid/media/tv/ITvInputSessionCallback;Ljava/lang/String;)V
 Landroid/media/tv/ITvInputService;->createSession(Landroid/view/InputChannel;Landroid/media/tv/ITvInputSessionCallback;Ljava/lang/String;)V
 Landroid/media/tv/ITvInputService;->notifyHardwareAdded(Landroid/media/tv/TvInputHardwareInfo;)V
@@ -44226,25 +41216,21 @@
 Landroid/media/tv/ITvInputService;->notifyHdmiDeviceRemoved(Landroid/hardware/hdmi/HdmiDeviceInfo;)V
 Landroid/media/tv/ITvInputService;->registerCallback(Landroid/media/tv/ITvInputServiceCallback;)V
 Landroid/media/tv/ITvInputService;->unregisterCallback(Landroid/media/tv/ITvInputServiceCallback;)V
-Landroid/media/tv/ITvInputServiceCallback$Stub$Proxy;
 Landroid/media/tv/ITvInputServiceCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/tv/ITvInputServiceCallback$Stub$Proxy;->addHardwareInput(ILandroid/media/tv/TvInputInfo;)V
 Landroid/media/tv/ITvInputServiceCallback$Stub$Proxy;->addHdmiInput(ILandroid/media/tv/TvInputInfo;)V
 Landroid/media/tv/ITvInputServiceCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/tv/ITvInputServiceCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/media/tv/ITvInputServiceCallback$Stub$Proxy;->removeHardwareInput(Ljava/lang/String;)V
-Landroid/media/tv/ITvInputServiceCallback$Stub;
 Landroid/media/tv/ITvInputServiceCallback$Stub;-><init>()V
 Landroid/media/tv/ITvInputServiceCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/tv/ITvInputServiceCallback;
 Landroid/media/tv/ITvInputServiceCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/tv/ITvInputServiceCallback$Stub;->TRANSACTION_addHardwareInput:I
 Landroid/media/tv/ITvInputServiceCallback$Stub;->TRANSACTION_addHdmiInput:I
 Landroid/media/tv/ITvInputServiceCallback$Stub;->TRANSACTION_removeHardwareInput:I
-Landroid/media/tv/ITvInputServiceCallback;
 Landroid/media/tv/ITvInputServiceCallback;->addHardwareInput(ILandroid/media/tv/TvInputInfo;)V
 Landroid/media/tv/ITvInputServiceCallback;->addHdmiInput(ILandroid/media/tv/TvInputInfo;)V
 Landroid/media/tv/ITvInputServiceCallback;->removeHardwareInput(Ljava/lang/String;)V
-Landroid/media/tv/ITvInputSession$Stub$Proxy;
 Landroid/media/tv/ITvInputSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/tv/ITvInputSession$Stub$Proxy;->appPrivateCommand(Ljava/lang/String;Landroid/os/Bundle;)V
 Landroid/media/tv/ITvInputSession$Stub$Proxy;->createOverlayView(Landroid/os/IBinder;Landroid/graphics/Rect;)V
@@ -44269,7 +41255,6 @@
 Landroid/media/tv/ITvInputSession$Stub$Proxy;->timeShiftSetPlaybackParams(Landroid/media/PlaybackParams;)V
 Landroid/media/tv/ITvInputSession$Stub$Proxy;->tune(Landroid/net/Uri;Landroid/os/Bundle;)V
 Landroid/media/tv/ITvInputSession$Stub$Proxy;->unblockContent(Ljava/lang/String;)V
-Landroid/media/tv/ITvInputSession$Stub;
 Landroid/media/tv/ITvInputSession$Stub;-><init>()V
 Landroid/media/tv/ITvInputSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/tv/ITvInputSession;
 Landroid/media/tv/ITvInputSession$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -44294,7 +41279,6 @@
 Landroid/media/tv/ITvInputSession$Stub;->TRANSACTION_timeShiftSetPlaybackParams:I
 Landroid/media/tv/ITvInputSession$Stub;->TRANSACTION_tune:I
 Landroid/media/tv/ITvInputSession$Stub;->TRANSACTION_unblockContent:I
-Landroid/media/tv/ITvInputSession;
 Landroid/media/tv/ITvInputSession;->appPrivateCommand(Ljava/lang/String;Landroid/os/Bundle;)V
 Landroid/media/tv/ITvInputSession;->createOverlayView(Landroid/os/IBinder;Landroid/graphics/Rect;)V
 Landroid/media/tv/ITvInputSession;->dispatchSurfaceChanged(III)V
@@ -44316,7 +41300,6 @@
 Landroid/media/tv/ITvInputSession;->timeShiftSetPlaybackParams(Landroid/media/PlaybackParams;)V
 Landroid/media/tv/ITvInputSession;->tune(Landroid/net/Uri;Landroid/os/Bundle;)V
 Landroid/media/tv/ITvInputSession;->unblockContent(Ljava/lang/String;)V
-Landroid/media/tv/ITvInputSessionCallback$Stub$Proxy;
 Landroid/media/tv/ITvInputSessionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/tv/ITvInputSessionCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/tv/ITvInputSessionCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -44336,7 +41319,6 @@
 Landroid/media/tv/ITvInputSessionCallback$Stub$Proxy;->onTuned(Landroid/net/Uri;)V
 Landroid/media/tv/ITvInputSessionCallback$Stub$Proxy;->onVideoAvailable()V
 Landroid/media/tv/ITvInputSessionCallback$Stub$Proxy;->onVideoUnavailable(I)V
-Landroid/media/tv/ITvInputSessionCallback$Stub;
 Landroid/media/tv/ITvInputSessionCallback$Stub;-><init>()V
 Landroid/media/tv/ITvInputSessionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/tv/ITvInputSessionCallback;
 Landroid/media/tv/ITvInputSessionCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -44356,7 +41338,6 @@
 Landroid/media/tv/ITvInputSessionCallback$Stub;->TRANSACTION_onTuned:I
 Landroid/media/tv/ITvInputSessionCallback$Stub;->TRANSACTION_onVideoAvailable:I
 Landroid/media/tv/ITvInputSessionCallback$Stub;->TRANSACTION_onVideoUnavailable:I
-Landroid/media/tv/ITvInputSessionCallback;
 Landroid/media/tv/ITvInputSessionCallback;->onChannelRetuned(Landroid/net/Uri;)V
 Landroid/media/tv/ITvInputSessionCallback;->onContentAllowed()V
 Landroid/media/tv/ITvInputSessionCallback;->onContentBlocked(Ljava/lang/String;)V
@@ -44373,10 +41354,7 @@
 Landroid/media/tv/ITvInputSessionCallback;->onTuned(Landroid/net/Uri;)V
 Landroid/media/tv/ITvInputSessionCallback;->onVideoAvailable()V
 Landroid/media/tv/ITvInputSessionCallback;->onVideoUnavailable(I)V
-Landroid/media/tv/ITvInputSessionWrapper$TvInputEventReceiver;
-Landroid/media/tv/ITvInputSessionWrapper$TvInputEventReceiver;-><init>(Landroid/view/InputChannel;Landroid/os/Looper;)V
 Landroid/media/tv/ITvInputSessionWrapper$TvInputEventReceiver;->onInputEvent(Landroid/view/InputEvent;I)V
-Landroid/media/tv/ITvInputSessionWrapper;
 Landroid/media/tv/ITvInputSessionWrapper;-><init>(Landroid/content/Context;Landroid/media/tv/TvInputService$RecordingSession;)V
 Landroid/media/tv/ITvInputSessionWrapper;-><init>(Landroid/content/Context;Landroid/media/tv/TvInputService$Session;Landroid/view/InputChannel;)V
 Landroid/media/tv/ITvInputSessionWrapper;->appPrivateCommand(Ljava/lang/String;Landroid/os/Bundle;)V
@@ -44432,21 +41410,17 @@
 Landroid/media/tv/ITvInputSessionWrapper;->timeShiftSetPlaybackParams(Landroid/media/PlaybackParams;)V
 Landroid/media/tv/ITvInputSessionWrapper;->tune(Landroid/net/Uri;Landroid/os/Bundle;)V
 Landroid/media/tv/ITvInputSessionWrapper;->unblockContent(Ljava/lang/String;)V
-Landroid/media/tv/ITvRemoteProvider$Stub$Proxy;
 Landroid/media/tv/ITvRemoteProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/tv/ITvRemoteProvider$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/media/tv/ITvRemoteProvider$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/media/tv/ITvRemoteProvider$Stub$Proxy;->onInputBridgeConnected(Landroid/os/IBinder;)V
 Landroid/media/tv/ITvRemoteProvider$Stub$Proxy;->setRemoteServiceInputSink(Landroid/media/tv/ITvRemoteServiceInput;)V
-Landroid/media/tv/ITvRemoteProvider$Stub;
 Landroid/media/tv/ITvRemoteProvider$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/tv/ITvRemoteProvider;
 Landroid/media/tv/ITvRemoteProvider$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/media/tv/ITvRemoteProvider$Stub;->TRANSACTION_onInputBridgeConnected:I
 Landroid/media/tv/ITvRemoteProvider$Stub;->TRANSACTION_setRemoteServiceInputSink:I
-Landroid/media/tv/ITvRemoteProvider;
 Landroid/media/tv/ITvRemoteProvider;->onInputBridgeConnected(Landroid/os/IBinder;)V
 Landroid/media/tv/ITvRemoteProvider;->setRemoteServiceInputSink(Landroid/media/tv/ITvRemoteServiceInput;)V
-Landroid/media/tv/ITvRemoteServiceInput$Stub$Proxy;
 Landroid/media/tv/ITvRemoteServiceInput$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/media/tv/ITvRemoteServiceInput$Stub$Proxy;->clearInputBridge(Landroid/os/IBinder;)V
 Landroid/media/tv/ITvRemoteServiceInput$Stub$Proxy;->closeInputBridge(Landroid/os/IBinder;)V
@@ -44459,7 +41433,6 @@
 Landroid/media/tv/ITvRemoteServiceInput$Stub$Proxy;->sendPointerSync(Landroid/os/IBinder;)V
 Landroid/media/tv/ITvRemoteServiceInput$Stub$Proxy;->sendPointerUp(Landroid/os/IBinder;I)V
 Landroid/media/tv/ITvRemoteServiceInput$Stub$Proxy;->sendTimestamp(Landroid/os/IBinder;J)V
-Landroid/media/tv/ITvRemoteServiceInput$Stub;
 Landroid/media/tv/ITvRemoteServiceInput$Stub;-><init>()V
 Landroid/media/tv/ITvRemoteServiceInput$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/tv/ITvRemoteServiceInput;
 Landroid/media/tv/ITvRemoteServiceInput$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -44472,7 +41445,6 @@
 Landroid/media/tv/ITvRemoteServiceInput$Stub;->TRANSACTION_sendPointerSync:I
 Landroid/media/tv/ITvRemoteServiceInput$Stub;->TRANSACTION_sendPointerUp:I
 Landroid/media/tv/ITvRemoteServiceInput$Stub;->TRANSACTION_sendTimestamp:I
-Landroid/media/tv/ITvRemoteServiceInput;
 Landroid/media/tv/TvContentRating;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
 Landroid/media/tv/TvContentRating;->DELIMITER:Ljava/lang/String;
 Landroid/media/tv/TvContentRating;->mDomain:Ljava/lang/String;
@@ -44486,21 +41458,9 @@
 Landroid/media/tv/TvContentRatingSystemInfo;->mApplicationInfo:Landroid/content/pm/ApplicationInfo;
 Landroid/media/tv/TvContentRatingSystemInfo;->mXmlUri:Landroid/net/Uri;
 Landroid/media/tv/TvContract$Channels$Logo;-><init>()V
-Landroid/media/tv/TvContract$Channels$ServiceType;
-Landroid/media/tv/TvContract$Channels$Type;
-Landroid/media/tv/TvContract$Channels$VideoFormat;
-Landroid/media/tv/TvContract$Channels$VideoResolution;
 Landroid/media/tv/TvContract$Channels;-><init>()V
 Landroid/media/tv/TvContract$Channels;->VIDEO_FORMAT_TO_RESOLUTION_MAP:Ljava/util/Map;
-Landroid/media/tv/TvContract$PreviewProgramColumns$AspectRatio;
-Landroid/media/tv/TvContract$PreviewProgramColumns$Availability;
-Landroid/media/tv/TvContract$PreviewProgramColumns$InteractionType;
-Landroid/media/tv/TvContract$PreviewProgramColumns$Type;
-Landroid/media/tv/TvContract$PreviewProgramColumns;
 Landroid/media/tv/TvContract$PreviewPrograms;-><init>()V
-Landroid/media/tv/TvContract$ProgramColumns$ReviewRatingStyle;
-Landroid/media/tv/TvContract$ProgramColumns;
-Landroid/media/tv/TvContract$Programs$Genres$Genre;
 Landroid/media/tv/TvContract$Programs$Genres;-><init>()V
 Landroid/media/tv/TvContract$Programs$Genres;->CANONICAL_GENRES:Landroid/util/ArraySet;
 Landroid/media/tv/TvContract$Programs$Genres;->COMMA:C
@@ -44511,7 +41471,6 @@
 Landroid/media/tv/TvContract$Programs;-><init>()V
 Landroid/media/tv/TvContract$RecordedPrograms;-><init>()V
 Landroid/media/tv/TvContract$WatchedPrograms;-><init>()V
-Landroid/media/tv/TvContract$WatchNextPrograms$WatchNextType;
 Landroid/media/tv/TvContract$WatchNextPrograms;-><init>()V
 Landroid/media/tv/TvContract;-><init>()V
 Landroid/media/tv/TvContract;->buildWatchedProgramUri(J)Landroid/net/Uri;
@@ -44538,7 +41497,6 @@
 Landroid/media/tv/TvInputHardwareInfo$Builder;->mDeviceId:Ljava/lang/Integer;
 Landroid/media/tv/TvInputHardwareInfo$Builder;->mHdmiPortId:Ljava/lang/Integer;
 Landroid/media/tv/TvInputHardwareInfo$Builder;->mType:Ljava/lang/Integer;
-Landroid/media/tv/TvInputHardwareInfo$CableConnectionStatus;
 Landroid/media/tv/TvInputHardwareInfo;-><init>()V
 Landroid/media/tv/TvInputHardwareInfo;->mAudioAddress:Ljava/lang/String;
 Landroid/media/tv/TvInputHardwareInfo;->mAudioType:I
@@ -44579,7 +41537,6 @@
 Landroid/media/tv/TvInputInfo$TvInputSettings;->getCustomLabel(Landroid/content/Context;Ljava/lang/String;I)Ljava/lang/String;
 Landroid/media/tv/TvInputInfo$TvInputSettings;->isHidden(Landroid/content/Context;Ljava/lang/String;I)Z
 Landroid/media/tv/TvInputInfo$TvInputSettings;->TV_INPUT_SEPARATOR:Ljava/lang/String;
-Landroid/media/tv/TvInputInfo$Type;
 Landroid/media/tv/TvInputInfo;-><init>(Landroid/content/pm/ResolveInfo;Ljava/lang/String;IZLjava/lang/CharSequence;ILandroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;Ljava/lang/String;ZILandroid/hardware/hdmi/HdmiDeviceInfo;ZLjava/lang/String;Landroid/os/Bundle;)V
 Landroid/media/tv/TvInputInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/media/tv/TvInputInfo;->DEBUG:Z
@@ -44605,27 +41562,17 @@
 Landroid/media/tv/TvInputManager$Hardware;-><init>(Landroid/media/tv/ITvInputHardware;)V
 Landroid/media/tv/TvInputManager$Hardware;->getInterface()Landroid/media/tv/ITvInputHardware;
 Landroid/media/tv/TvInputManager$Hardware;->mInterface:Landroid/media/tv/ITvInputHardware;
-Landroid/media/tv/TvInputManager$InputState;
-Landroid/media/tv/TvInputManager$RecordingError;
-Landroid/media/tv/TvInputManager$Session$FinishedInputEventCallback;
 Landroid/media/tv/TvInputManager$Session$FinishedInputEventCallback;->onFinishedInputEvent(Ljava/lang/Object;Z)V
-Landroid/media/tv/TvInputManager$Session$InputEventHandler;
-Landroid/media/tv/TvInputManager$Session$InputEventHandler;-><init>(Landroid/os/Looper;)V
 Landroid/media/tv/TvInputManager$Session$InputEventHandler;->MSG_FLUSH_INPUT_EVENT:I
 Landroid/media/tv/TvInputManager$Session$InputEventHandler;->MSG_SEND_INPUT_EVENT:I
 Landroid/media/tv/TvInputManager$Session$InputEventHandler;->MSG_TIMEOUT_INPUT_EVENT:I
-Landroid/media/tv/TvInputManager$Session$PendingEvent;
-Landroid/media/tv/TvInputManager$Session$PendingEvent;-><init>()V
 Landroid/media/tv/TvInputManager$Session$PendingEvent;->mCallback:Landroid/media/tv/TvInputManager$Session$FinishedInputEventCallback;
 Landroid/media/tv/TvInputManager$Session$PendingEvent;->mEvent:Landroid/view/InputEvent;
 Landroid/media/tv/TvInputManager$Session$PendingEvent;->mEventHandler:Landroid/os/Handler;
 Landroid/media/tv/TvInputManager$Session$PendingEvent;->mEventToken:Ljava/lang/Object;
 Landroid/media/tv/TvInputManager$Session$PendingEvent;->mHandled:Z
 Landroid/media/tv/TvInputManager$Session$PendingEvent;->recycle()V
-Landroid/media/tv/TvInputManager$Session$TvInputEventSender;
-Landroid/media/tv/TvInputManager$Session$TvInputEventSender;-><init>(Landroid/view/InputChannel;Landroid/os/Looper;)V
 Landroid/media/tv/TvInputManager$Session$TvInputEventSender;->onInputEventFinished(IZ)V
-Landroid/media/tv/TvInputManager$Session;
 Landroid/media/tv/TvInputManager$Session;-><init>(Landroid/os/IBinder;Landroid/view/InputChannel;Landroid/media/tv/ITvInputManager;IILandroid/util/SparseArray;)V
 Landroid/media/tv/TvInputManager$Session;->containsTrack(Ljava/util/List;Ljava/lang/String;)Z
 Landroid/media/tv/TvInputManager$Session;->createOverlayView(Landroid/view/View;Landroid/graphics/Rect;)V
@@ -44688,7 +41635,6 @@
 Landroid/media/tv/TvInputManager$Session;->unblockContent(Landroid/media/tv/TvContentRating;)V
 Landroid/media/tv/TvInputManager$Session;->updateTracks(Ljava/util/List;)Z
 Landroid/media/tv/TvInputManager$Session;->updateTrackSelection(ILjava/lang/String;)Z
-Landroid/media/tv/TvInputManager$SessionCallback;
 Landroid/media/tv/TvInputManager$SessionCallback;-><init>()V
 Landroid/media/tv/TvInputManager$SessionCallback;->onChannelRetuned(Landroid/media/tv/TvInputManager$Session;Landroid/net/Uri;)V
 Landroid/media/tv/TvInputManager$SessionCallback;->onContentAllowed(Landroid/media/tv/TvInputManager$Session;)V
@@ -44708,7 +41654,6 @@
 Landroid/media/tv/TvInputManager$SessionCallback;->onVideoAvailable(Landroid/media/tv/TvInputManager$Session;)V
 Landroid/media/tv/TvInputManager$SessionCallback;->onVideoSizeChanged(Landroid/media/tv/TvInputManager$Session;II)V
 Landroid/media/tv/TvInputManager$SessionCallback;->onVideoUnavailable(Landroid/media/tv/TvInputManager$Session;I)V
-Landroid/media/tv/TvInputManager$SessionCallbackRecord;
 Landroid/media/tv/TvInputManager$SessionCallbackRecord;-><init>(Landroid/media/tv/TvInputManager$SessionCallback;Landroid/os/Handler;)V
 Landroid/media/tv/TvInputManager$SessionCallbackRecord;->mHandler:Landroid/os/Handler;
 Landroid/media/tv/TvInputManager$SessionCallbackRecord;->mSession:Landroid/media/tv/TvInputManager$Session;
@@ -44731,8 +41676,6 @@
 Landroid/media/tv/TvInputManager$SessionCallbackRecord;->postVideoAvailable()V
 Landroid/media/tv/TvInputManager$SessionCallbackRecord;->postVideoSizeChanged(II)V
 Landroid/media/tv/TvInputManager$SessionCallbackRecord;->postVideoUnavailable(I)V
-Landroid/media/tv/TvInputManager$TimeShiftStatus;
-Landroid/media/tv/TvInputManager$TvInputCallbackRecord;
 Landroid/media/tv/TvInputManager$TvInputCallbackRecord;-><init>(Landroid/media/tv/TvInputManager$TvInputCallback;Landroid/os/Handler;)V
 Landroid/media/tv/TvInputManager$TvInputCallbackRecord;->getCallback()Landroid/media/tv/TvInputManager$TvInputCallback;
 Landroid/media/tv/TvInputManager$TvInputCallbackRecord;->mCallback:Landroid/media/tv/TvInputManager$TvInputCallback;
@@ -44742,7 +41685,6 @@
 Landroid/media/tv/TvInputManager$TvInputCallbackRecord;->postInputStateChanged(Ljava/lang/String;I)V
 Landroid/media/tv/TvInputManager$TvInputCallbackRecord;->postInputUpdated(Ljava/lang/String;)V
 Landroid/media/tv/TvInputManager$TvInputCallbackRecord;->postTvInputInfoUpdated(Landroid/media/tv/TvInputInfo;)V
-Landroid/media/tv/TvInputManager$VideoUnavailableReason;
 Landroid/media/tv/TvInputManager;-><init>(Landroid/media/tv/ITvInputManager;I)V
 Landroid/media/tv/TvInputManager;->createRecordingSession(Ljava/lang/String;Landroid/media/tv/TvInputManager$SessionCallback;Landroid/os/Handler;)V
 Landroid/media/tv/TvInputManager;->createSession(Ljava/lang/String;Landroid/media/tv/TvInputManager$SessionCallback;Landroid/os/Handler;)V
@@ -44774,9 +41716,7 @@
 Landroid/media/tv/TvInputService$HardwareSession;->mProxySessionCallback:Landroid/media/tv/ITvInputSessionCallback;
 Landroid/media/tv/TvInputService$HardwareSession;->mServiceHandler:Landroid/os/Handler;
 Landroid/media/tv/TvInputService$HardwareSession;->release()V
-Landroid/media/tv/TvInputService$OverlayViewCleanUpTask;
 Landroid/media/tv/TvInputService$OverlayViewCleanUpTask;-><init>()V
-Landroid/media/tv/TvInputService$OverlayViewCleanUpTask;->doInBackground([[Landroid/view/View;)Ljava/lang/Void;
 Landroid/media/tv/TvInputService$RecordingSession;->appPrivateCommand(Ljava/lang/String;Landroid/os/Bundle;)V
 Landroid/media/tv/TvInputService$RecordingSession;->executeOrPostRunnableOnMainThread(Ljava/lang/Runnable;)V
 Landroid/media/tv/TvInputService$RecordingSession;->initialize(Landroid/media/tv/ITvInputSessionCallback;)V
@@ -44788,8 +41728,6 @@
 Landroid/media/tv/TvInputService$RecordingSession;->startRecording(Landroid/net/Uri;)V
 Landroid/media/tv/TvInputService$RecordingSession;->stopRecording()V
 Landroid/media/tv/TvInputService$RecordingSession;->tune(Landroid/net/Uri;Landroid/os/Bundle;)V
-Landroid/media/tv/TvInputService$ServiceHandler;
-Landroid/media/tv/TvInputService$ServiceHandler;-><init>()V
 Landroid/media/tv/TvInputService$ServiceHandler;->broadcastAddHardwareInput(ILandroid/media/tv/TvInputInfo;)V
 Landroid/media/tv/TvInputService$ServiceHandler;->broadcastAddHdmiInput(ILandroid/media/tv/TvInputInfo;)V
 Landroid/media/tv/TvInputService$ServiceHandler;->broadcastRemoveHardwareInput(Ljava/lang/String;)V
@@ -44800,8 +41738,6 @@
 Landroid/media/tv/TvInputService$ServiceHandler;->DO_NOTIFY_SESSION_CREATED:I
 Landroid/media/tv/TvInputService$ServiceHandler;->DO_REMOVE_HARDWARE_INPUT:I
 Landroid/media/tv/TvInputService$ServiceHandler;->DO_REMOVE_HDMI_INPUT:I
-Landroid/media/tv/TvInputService$Session$TimeShiftPositionTrackingRunnable;
-Landroid/media/tv/TvInputService$Session$TimeShiftPositionTrackingRunnable;-><init>()V
 Landroid/media/tv/TvInputService$Session;->appPrivateCommand(Ljava/lang/String;Landroid/os/Bundle;)V
 Landroid/media/tv/TvInputService$Session;->createOverlayView(Landroid/os/IBinder;Landroid/graphics/Rect;)V
 Landroid/media/tv/TvInputService$Session;->dispatchInputEvent(Landroid/view/InputEvent;Landroid/view/InputEventReceiver;)I
@@ -44853,8 +41789,6 @@
 Landroid/media/tv/TvInputService;->mServiceHandler:Landroid/os/Handler;
 Landroid/media/tv/TvInputService;->mTvInputManager:Landroid/media/tv/TvInputManager;
 Landroid/media/tv/TvInputService;->TAG:Ljava/lang/String;
-Landroid/media/tv/TvRecordingClient$MySessionCallback;
-Landroid/media/tv/TvRecordingClient$MySessionCallback;-><init>(Ljava/lang/String;Landroid/net/Uri;Landroid/os/Bundle;)V
 Landroid/media/tv/TvRecordingClient$MySessionCallback;->mChannelUri:Landroid/net/Uri;
 Landroid/media/tv/TvRecordingClient$MySessionCallback;->mConnectionParams:Landroid/os/Bundle;
 Landroid/media/tv/TvRecordingClient$MySessionCallback;->mInputId:Ljava/lang/String;
@@ -44899,7 +41833,6 @@
 Landroid/media/tv/TvTrackInfo$Builder;->mVideoHeight:I
 Landroid/media/tv/TvTrackInfo$Builder;->mVideoPixelAspectRatio:F
 Landroid/media/tv/TvTrackInfo$Builder;->mVideoWidth:I
-Landroid/media/tv/TvTrackInfo$Type;
 Landroid/media/tv/TvTrackInfo;-><init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/CharSequence;IIIIFFBLandroid/os/Bundle;)V
 Landroid/media/tv/TvTrackInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/media/tv/TvTrackInfo;->mAudioChannelCount:I
@@ -44914,9 +41847,6 @@
 Landroid/media/tv/TvTrackInfo;->mVideoHeight:I
 Landroid/media/tv/TvTrackInfo;->mVideoPixelAspectRatio:F
 Landroid/media/tv/TvTrackInfo;->mVideoWidth:I
-Landroid/media/tv/TvView$MySessionCallback;
-Landroid/media/tv/TvView$MySessionCallback;-><init>(Ljava/lang/String;Landroid/net/Uri;)V
-Landroid/media/tv/TvView$MySessionCallback;-><init>(Ljava/lang/String;Landroid/net/Uri;Landroid/os/Bundle;)V
 Landroid/media/tv/TvView$MySessionCallback;->mChannelUri:Landroid/net/Uri;
 Landroid/media/tv/TvView$MySessionCallback;->mInputId:Ljava/lang/String;
 Landroid/media/tv/TvView$MySessionCallback;->mRecordedProgramUri:Landroid/net/Uri;
@@ -44982,7 +41912,6 @@
 Landroid/media/tv/TvView;->ZORDER_MEDIA:I
 Landroid/media/tv/TvView;->ZORDER_MEDIA_OVERLAY:I
 Landroid/media/tv/TvView;->ZORDER_ON_TOP:I
-Landroid/media/VolumePolicy;
 Landroid/media/VolumePolicy;-><init>(ZZZI)V
 Landroid/media/VolumePolicy;->A11Y_MODE_INDEPENDENT_A11Y_VOLUME:I
 Landroid/media/VolumePolicy;->A11Y_MODE_MEDIA_A11Y_VOLUME:I
@@ -44992,12 +41921,8 @@
 Landroid/media/VolumePolicy;->vibrateToSilentDebounce:I
 Landroid/media/VolumePolicy;->volumeDownToEnterSilent:Z
 Landroid/media/VolumePolicy;->volumeUpToExitSilent:Z
-Landroid/media/VolumeProvider$Callback;
 Landroid/media/VolumeProvider$Callback;-><init>()V
 Landroid/media/VolumeProvider$Callback;->onVolumeChanged(Landroid/media/VolumeProvider;)V
-Landroid/media/VolumeProvider$ControlType;
-Landroid/media/VolumeProvider2$ControlType;
-Landroid/media/VolumeProvider2;
 Landroid/media/VolumeProvider2;-><init>(III)V
 Landroid/media/VolumeProvider2;->getControlType()I
 Landroid/media/VolumeProvider2;->getCurrentVolume()I
@@ -45023,9 +41948,6 @@
 Landroid/media/VolumeShaper$Configuration$Builder;->mType:I
 Landroid/media/VolumeShaper$Configuration$Builder;->mVolumes:[F
 Landroid/media/VolumeShaper$Configuration$Builder;->setId(I)Landroid/media/VolumeShaper$Configuration$Builder;
-Landroid/media/VolumeShaper$Configuration$InterpolatorType;
-Landroid/media/VolumeShaper$Configuration$OptionFlag;
-Landroid/media/VolumeShaper$Configuration$Type;
 Landroid/media/VolumeShaper$Configuration;-><init>(I)V
 Landroid/media/VolumeShaper$Configuration;->checkCurveForErrors([F[FZ)Ljava/lang/String;
 Landroid/media/VolumeShaper$Configuration;->checkCurveForErrorsAndThrowException([F[FZZ)V
@@ -45041,7 +41963,6 @@
 Landroid/media/VolumeShaper$Configuration;->OPTION_FLAG_VOLUME_IN_DBFS:I
 Landroid/media/VolumeShaper$Configuration;->TYPE_ID:I
 Landroid/media/VolumeShaper$Configuration;->TYPE_SCALE:I
-Landroid/media/VolumeShaper$Operation$Builder;
 Landroid/media/VolumeShaper$Operation$Builder;-><init>()V
 Landroid/media/VolumeShaper$Operation$Builder;-><init>(Landroid/media/VolumeShaper$Operation;)V
 Landroid/media/VolumeShaper$Operation$Builder;->build()Landroid/media/VolumeShaper$Operation;
@@ -45055,7 +41976,6 @@
 Landroid/media/VolumeShaper$Operation$Builder;->setFlags(I)Landroid/media/VolumeShaper$Operation$Builder;
 Landroid/media/VolumeShaper$Operation$Builder;->setXOffset(F)Landroid/media/VolumeShaper$Operation$Builder;
 Landroid/media/VolumeShaper$Operation$Builder;->terminate()Landroid/media/VolumeShaper$Operation$Builder;
-Landroid/media/VolumeShaper$Operation$Flag;
 Landroid/media/VolumeShaper$Operation;->FLAG_CREATE_IF_NEEDED:I
 Landroid/media/VolumeShaper$Operation;->FLAG_DEFER:I
 Landroid/media/VolumeShaper$Operation;->FLAG_JOIN:I
@@ -45063,7 +41983,6 @@
 Landroid/media/VolumeShaper$Operation;->FLAG_PUBLIC_ALL:I
 Landroid/media/VolumeShaper$Operation;->FLAG_REVERSE:I
 Landroid/media/VolumeShaper$Operation;->FLAG_TERMINATE:I
-Landroid/media/VolumeShaper$State;
 Landroid/media/VolumeShaper$State;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/media/VolumeShaper$State;->getVolume()F
 Landroid/media/VolumeShaper$State;->getXOffset()F
@@ -45073,12 +41992,10 @@
 Landroid/media/VolumeShaper;->getStatePlayer(I)Landroid/media/VolumeShaper$State;
 Landroid/media/VolumeShaper;->mId:I
 Landroid/media/VolumeShaper;->mWeakPlayerBase:Ljava/lang/ref/WeakReference;
-Landroid/media/WebVttRenderer;
 Landroid/media/WebVttRenderer;->createTrack(Landroid/media/MediaFormat;)Landroid/media/SubtitleTrack;
 Landroid/media/WebVttRenderer;->mContext:Landroid/content/Context;
 Landroid/media/WebVttRenderer;->mRenderingWidget:Landroid/media/WebVttRenderingWidget;
 Landroid/media/WebVttRenderer;->supports(Landroid/media/MediaFormat;)Z
-Landroid/media/WebVttRenderingWidget$CueLayout;
 Landroid/media/WebVttRenderingWidget$CueLayout;-><init>(Landroid/content/Context;Landroid/media/TextTrackCue;Landroid/view/accessibility/CaptioningManager$CaptionStyle;F)V
 Landroid/media/WebVttRenderingWidget$CueLayout;->getCue()Landroid/media/TextTrackCue;
 Landroid/media/WebVttRenderingWidget$CueLayout;->isActive()Z
@@ -45092,7 +42009,6 @@
 Landroid/media/WebVttRenderingWidget$CueLayout;->setCaptionStyle(Landroid/view/accessibility/CaptioningManager$CaptionStyle;F)V
 Landroid/media/WebVttRenderingWidget$CueLayout;->setOrder(I)V
 Landroid/media/WebVttRenderingWidget$CueLayout;->update()V
-Landroid/media/WebVttRenderingWidget$RegionLayout;
 Landroid/media/WebVttRenderingWidget$RegionLayout;-><init>(Landroid/content/Context;Landroid/media/TextTrackRegion;Landroid/view/accessibility/CaptioningManager$CaptionStyle;F)V
 Landroid/media/WebVttRenderingWidget$RegionLayout;->getRegion()Landroid/media/TextTrackRegion;
 Landroid/media/WebVttRenderingWidget$RegionLayout;->mCaptionStyle:Landroid/view/accessibility/CaptioningManager$CaptionStyle;
@@ -45104,13 +42020,11 @@
 Landroid/media/WebVttRenderingWidget$RegionLayout;->prune()Z
 Landroid/media/WebVttRenderingWidget$RegionLayout;->put(Landroid/media/TextTrackCue;)V
 Landroid/media/WebVttRenderingWidget$RegionLayout;->setCaptionStyle(Landroid/view/accessibility/CaptioningManager$CaptionStyle;F)V
-Landroid/media/WebVttRenderingWidget$SpanLayout;
 Landroid/media/WebVttRenderingWidget$SpanLayout;-><init>(Landroid/content/Context;[Landroid/media/TextTrackCueSpan;)V
 Landroid/media/WebVttRenderingWidget$SpanLayout;->mBuilder:Landroid/text/SpannableStringBuilder;
 Landroid/media/WebVttRenderingWidget$SpanLayout;->mSpans:[Landroid/media/TextTrackCueSpan;
 Landroid/media/WebVttRenderingWidget$SpanLayout;->setCaptionStyle(Landroid/view/accessibility/CaptioningManager$CaptionStyle;F)V
 Landroid/media/WebVttRenderingWidget$SpanLayout;->update()V
-Landroid/media/WebVttRenderingWidget;
 Landroid/media/WebVttRenderingWidget;-><init>(Landroid/content/Context;)V
 Landroid/media/WebVttRenderingWidget;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/media/WebVttRenderingWidget;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
@@ -45155,7 +42069,6 @@
 Landroid/metrics/LogMaker;->setTimestamp(J)Landroid/metrics/LogMaker;
 Landroid/metrics/LogMaker;->setUid(I)Landroid/metrics/LogMaker;
 Landroid/metrics/LogMaker;->TAG:Ljava/lang/String;
-Landroid/metrics/MetricsReader$Event;
 Landroid/metrics/MetricsReader$Event;-><init>(JIILjava/lang/Object;)V
 Landroid/metrics/MetricsReader$Event;-><init>(Landroid/util/EventLog$Event;)V
 Landroid/metrics/MetricsReader$Event;->getData()Ljava/lang/Object;
@@ -45167,7 +42080,6 @@
 Landroid/metrics/MetricsReader$Event;->mTimeMillis:J
 Landroid/metrics/MetricsReader$Event;->mUid:I
 Landroid/metrics/MetricsReader$Event;->setData(Ljava/lang/Object;)V
-Landroid/metrics/MetricsReader$LogReader;
 Landroid/metrics/MetricsReader$LogReader;-><init>()V
 Landroid/metrics/MetricsReader$LogReader;->readEvents([IJLjava/util/Collection;)V
 Landroid/metrics/MetricsReader$LogReader;->writeCheckpoint(I)V
@@ -45368,7 +42280,6 @@
 Landroid/mtp/MtpConstants;->TYPE_UINT64:I
 Landroid/mtp/MtpConstants;->TYPE_UINT8:I
 Landroid/mtp/MtpConstants;->TYPE_UNDEFINED:I
-Landroid/mtp/MtpDatabase;
 Landroid/mtp/MtpDatabase;-><init>(Landroid/content/Context;Ljava/lang/String;[Ljava/lang/String;)V
 Landroid/mtp/MtpDatabase;->addStorage(Landroid/os/storage/StorageVolume;)V
 Landroid/mtp/MtpDatabase;->AUDIO_PROPERTIES:[I
@@ -45469,7 +42380,6 @@
 Landroid/mtp/MtpDeviceInfo;->mOperationsSupported:[I
 Landroid/mtp/MtpDeviceInfo;->mSerialNumber:Ljava/lang/String;
 Landroid/mtp/MtpDeviceInfo;->mVersion:Ljava/lang/String;
-Landroid/mtp/MtpEvent$IllegalParameterAccess;
 Landroid/mtp/MtpEvent$IllegalParameterAccess;-><init>(Ljava/lang/String;I)V
 Landroid/mtp/MtpEvent;-><init>()V
 Landroid/mtp/MtpEvent;->mEventCode:I
@@ -45500,12 +42410,9 @@
 Landroid/mtp/MtpObjectInfo;->mThumbPixHeight:I
 Landroid/mtp/MtpObjectInfo;->mThumbPixWidth:I
 Landroid/mtp/MtpObjectInfo;->uint32ToLong(I)J
-Landroid/mtp/MtpPropertyGroup$Property;
-Landroid/mtp/MtpPropertyGroup$Property;-><init>(III)V
 Landroid/mtp/MtpPropertyGroup$Property;->code:I
 Landroid/mtp/MtpPropertyGroup$Property;->column:I
 Landroid/mtp/MtpPropertyGroup$Property;->type:I
-Landroid/mtp/MtpPropertyGroup;
 Landroid/mtp/MtpPropertyGroup;-><init>(Landroid/content/ContentProviderClient;Ljava/lang/String;[I)V
 Landroid/mtp/MtpPropertyGroup;->createProperty(ILjava/util/ArrayList;)Landroid/mtp/MtpPropertyGroup$Property;
 Landroid/mtp/MtpPropertyGroup;->format_date_time(J)Ljava/lang/String;
@@ -45519,7 +42426,6 @@
 Landroid/mtp/MtpPropertyGroup;->queryAudio(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 Landroid/mtp/MtpPropertyGroup;->queryGenre(Ljava/lang/String;)Ljava/lang/String;
 Landroid/mtp/MtpPropertyGroup;->TAG:Ljava/lang/String;
-Landroid/mtp/MtpPropertyList;
 Landroid/mtp/MtpPropertyList;-><init>(I)V
 Landroid/mtp/MtpPropertyList;->getCode()I
 Landroid/mtp/MtpPropertyList;->getCount()I
@@ -45534,7 +42440,6 @@
 Landroid/mtp/MtpPropertyList;->mObjectHandles:Ljava/util/List;
 Landroid/mtp/MtpPropertyList;->mPropertyCodes:Ljava/util/List;
 Landroid/mtp/MtpPropertyList;->mStringValues:Ljava/util/List;
-Landroid/mtp/MtpServer;
 Landroid/mtp/MtpServer;-><init>(Landroid/mtp/MtpDatabase;Ljava/io/FileDescriptor;ZLjava/lang/Runnable;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/mtp/MtpServer;->addStorage(Landroid/mtp/MtpStorage;)V
 Landroid/mtp/MtpServer;->configure(Z)V
@@ -45555,7 +42460,6 @@
 Landroid/mtp/MtpServer;->sendObjectAdded(I)V
 Landroid/mtp/MtpServer;->sendObjectRemoved(I)V
 Landroid/mtp/MtpServer;->start()V
-Landroid/mtp/MtpStorage;
 Landroid/mtp/MtpStorage;-><init>(Landroid/os/storage/StorageVolume;I)V
 Landroid/mtp/MtpStorage;->getDescription()Ljava/lang/String;
 Landroid/mtp/MtpStorage;->getMaxFileSize()J
@@ -45571,11 +42475,9 @@
 Landroid/mtp/MtpStorageInfo;->mMaxCapacity:J
 Landroid/mtp/MtpStorageInfo;->mStorageId:I
 Landroid/mtp/MtpStorageInfo;->mVolumeIdentifier:Ljava/lang/String;
-Landroid/mtp/MtpStorageManager$MtpNotifier;
 Landroid/mtp/MtpStorageManager$MtpNotifier;-><init>()V
 Landroid/mtp/MtpStorageManager$MtpNotifier;->sendObjectAdded(I)V
 Landroid/mtp/MtpStorageManager$MtpNotifier;->sendObjectRemoved(I)V
-Landroid/mtp/MtpStorageManager$MtpObject;
 Landroid/mtp/MtpStorageManager$MtpObject;-><init>(Ljava/lang/String;ILandroid/mtp/MtpStorageManager$MtpObject;Z)V
 Landroid/mtp/MtpStorageManager$MtpObject;->addChild(Landroid/mtp/MtpStorageManager$MtpObject;)V
 Landroid/mtp/MtpStorageManager$MtpObject;->copy(Z)Landroid/mtp/MtpStorageManager$MtpObject;
@@ -45614,11 +42516,7 @@
 Landroid/mtp/MtpStorageManager$MtpObject;->setParent(Landroid/mtp/MtpStorageManager$MtpObject;)V
 Landroid/mtp/MtpStorageManager$MtpObject;->setState(Landroid/mtp/MtpStorageManager$MtpObjectState;)V
 Landroid/mtp/MtpStorageManager$MtpObject;->setVisited(Z)V
-Landroid/mtp/MtpStorageManager$MtpObjectObserver;
-Landroid/mtp/MtpStorageManager$MtpObjectObserver;-><init>(Landroid/mtp/MtpStorageManager$MtpObject;)V
 Landroid/mtp/MtpStorageManager$MtpObjectObserver;->mObject:Landroid/mtp/MtpStorageManager$MtpObject;
-Landroid/mtp/MtpStorageManager$MtpObjectState;
-Landroid/mtp/MtpStorageManager$MtpObjectState;-><init>()V
 Landroid/mtp/MtpStorageManager$MtpObjectState;->FROZEN:Landroid/mtp/MtpStorageManager$MtpObjectState;
 Landroid/mtp/MtpStorageManager$MtpObjectState;->FROZEN_ADDED:Landroid/mtp/MtpStorageManager$MtpObjectState;
 Landroid/mtp/MtpStorageManager$MtpObjectState;->FROZEN_ONESHOT_ADD:Landroid/mtp/MtpStorageManager$MtpObjectState;
@@ -45627,8 +42525,6 @@
 Landroid/mtp/MtpStorageManager$MtpObjectState;->NORMAL:Landroid/mtp/MtpStorageManager$MtpObjectState;
 Landroid/mtp/MtpStorageManager$MtpObjectState;->valueOf(Ljava/lang/String;)Landroid/mtp/MtpStorageManager$MtpObjectState;
 Landroid/mtp/MtpStorageManager$MtpObjectState;->values()[Landroid/mtp/MtpStorageManager$MtpObjectState;
-Landroid/mtp/MtpStorageManager$MtpOperation;
-Landroid/mtp/MtpStorageManager$MtpOperation;-><init>()V
 Landroid/mtp/MtpStorageManager$MtpOperation;->ADD:Landroid/mtp/MtpStorageManager$MtpOperation;
 Landroid/mtp/MtpStorageManager$MtpOperation;->COPY:Landroid/mtp/MtpStorageManager$MtpOperation;
 Landroid/mtp/MtpStorageManager$MtpOperation;->DELETE:Landroid/mtp/MtpStorageManager$MtpOperation;
@@ -45636,7 +42532,6 @@
 Landroid/mtp/MtpStorageManager$MtpOperation;->RENAME:Landroid/mtp/MtpStorageManager$MtpOperation;
 Landroid/mtp/MtpStorageManager$MtpOperation;->valueOf(Ljava/lang/String;)Landroid/mtp/MtpStorageManager$MtpOperation;
 Landroid/mtp/MtpStorageManager$MtpOperation;->values()[Landroid/mtp/MtpStorageManager$MtpOperation;
-Landroid/mtp/MtpStorageManager;
 Landroid/mtp/MtpStorageManager;-><init>(Landroid/mtp/MtpStorageManager$MtpNotifier;Ljava/util/Set;)V
 Landroid/mtp/MtpStorageManager;->addMtpStorage(Landroid/os/storage/StorageVolume;)Landroid/mtp/MtpStorage;
 Landroid/mtp/MtpStorageManager;->addObjectToCache(Landroid/mtp/MtpStorageManager$MtpObject;Ljava/lang/String;Z)Landroid/mtp/MtpStorageManager$MtpObject;
@@ -45695,15 +42590,10 @@
 Landroid/net/CaptivePortal;->APP_RETURN_WANTED_AS_IS:I
 Landroid/net/CaptivePortal;->mBinder:Landroid/os/IBinder;
 Landroid/net/CaptivePortal;->useNetwork()V
-Landroid/net/ConnectivityManager$CallbackHandler;
-Landroid/net/ConnectivityManager$CallbackHandler;-><init>(Landroid/os/Handler;)V
-Landroid/net/ConnectivityManager$CallbackHandler;-><init>(Landroid/os/Looper;)V
 Landroid/net/ConnectivityManager$CallbackHandler;->DBG:Z
 Landroid/net/ConnectivityManager$CallbackHandler;->getObject(Landroid/os/Message;Ljava/lang/Class;)Ljava/lang/Object;
 Landroid/net/ConnectivityManager$CallbackHandler;->TAG:Ljava/lang/String;
-Landroid/net/ConnectivityManager$Errors;
 Landroid/net/ConnectivityManager$Errors;->TOO_MANY_REQUESTS:I
-Landroid/net/ConnectivityManager$LegacyRequest;
 Landroid/net/ConnectivityManager$LegacyRequest;-><init>()V
 Landroid/net/ConnectivityManager$LegacyRequest;->clearDnsBinding()V
 Landroid/net/ConnectivityManager$LegacyRequest;->currentNetwork:Landroid/net/Network;
@@ -45712,14 +42602,11 @@
 Landroid/net/ConnectivityManager$LegacyRequest;->networkCallback:Landroid/net/ConnectivityManager$NetworkCallback;
 Landroid/net/ConnectivityManager$LegacyRequest;->networkCapabilities:Landroid/net/NetworkCapabilities;
 Landroid/net/ConnectivityManager$LegacyRequest;->networkRequest:Landroid/net/NetworkRequest;
-Landroid/net/ConnectivityManager$MultipathPreference;
 Landroid/net/ConnectivityManager$NetworkCallback;->networkRequest:Landroid/net/NetworkRequest;
 Landroid/net/ConnectivityManager$NetworkCallback;->onAvailable(Landroid/net/Network;Landroid/net/NetworkCapabilities;Landroid/net/LinkProperties;)V
 Landroid/net/ConnectivityManager$NetworkCallback;->onNetworkResumed(Landroid/net/Network;)V
 Landroid/net/ConnectivityManager$NetworkCallback;->onNetworkSuspended(Landroid/net/Network;)V
 Landroid/net/ConnectivityManager$NetworkCallback;->onPreCheck(Landroid/net/Network;)V
-Landroid/net/ConnectivityManager$PacketKeepalive;
-Landroid/net/ConnectivityManager$PacketKeepalive;-><init>(Landroid/net/Network;Landroid/net/ConnectivityManager$PacketKeepaliveCallback;)V
 Landroid/net/ConnectivityManager$PacketKeepalive;->BINDER_DIED:I
 Landroid/net/ConnectivityManager$PacketKeepalive;->ERROR_HARDWARE_ERROR:I
 Landroid/net/ConnectivityManager$PacketKeepalive;->ERROR_HARDWARE_UNSUPPORTED:I
@@ -45739,9 +42626,6 @@
 Landroid/net/ConnectivityManager$PacketKeepalive;->stopLooper()V
 Landroid/net/ConnectivityManager$PacketKeepalive;->SUCCESS:I
 Landroid/net/ConnectivityManager$PacketKeepalive;->TAG:Ljava/lang/String;
-Landroid/net/ConnectivityManager$PacketKeepaliveCallback;
-Landroid/net/ConnectivityManager$RestrictBackgroundStatus;
-Landroid/net/ConnectivityManager$TooManyRequestsException;
 Landroid/net/ConnectivityManager$TooManyRequestsException;-><init>()V
 Landroid/net/ConnectivityManager;-><init>(Landroid/content/Context;Landroid/net/IConnectivityManager;)V
 Landroid/net/ConnectivityManager;->ACTION_CAPTIVE_PORTAL_TEST_COMPLETED:Ljava/lang/String;
@@ -45853,7 +42737,6 @@
 Landroid/net/ConnectivityManager;->TETHER_ERROR_UNTETHER_IFACE_ERROR:I
 Landroid/net/ConnectivityManager;->unsupportedStartingFrom(I)V
 Landroid/net/ConnectivityManager;->updateLockdownVpn()Z
-Landroid/net/ConnectivityMetricsEvent;
 Landroid/net/ConnectivityMetricsEvent;-><init>()V
 Landroid/net/ConnectivityMetricsEvent;-><init>(Landroid/os/Parcel;)V
 Landroid/net/ConnectivityMetricsEvent;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -45862,10 +42745,8 @@
 Landroid/net/ConnectivityMetricsEvent;->netId:I
 Landroid/net/ConnectivityMetricsEvent;->timestamp:J
 Landroid/net/ConnectivityMetricsEvent;->transports:J
-Landroid/net/ConnectivityThread$Singleton;
 Landroid/net/ConnectivityThread$Singleton;-><init>()V
 Landroid/net/ConnectivityThread$Singleton;->INSTANCE:Landroid/net/ConnectivityThread;
-Landroid/net/ConnectivityThread;
 Landroid/net/ConnectivityThread;-><init>()V
 Landroid/net/ConnectivityThread;->createInstance()Landroid/net/ConnectivityThread;
 Landroid/net/ConnectivityThread;->get()Landroid/net/ConnectivityThread;
@@ -45873,7 +42754,6 @@
 Landroid/net/Credentials;->gid:I
 Landroid/net/Credentials;->pid:I
 Landroid/net/Credentials;->uid:I
-Landroid/net/DataUsageRequest;
 Landroid/net/DataUsageRequest;-><init>(ILandroid/net/NetworkTemplate;J)V
 Landroid/net/DataUsageRequest;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/DataUsageRequest;->PARCELABLE_KEY:Ljava/lang/String;
@@ -45884,7 +42764,6 @@
 Landroid/net/DhcpInfo;-><init>(Landroid/net/DhcpInfo;)V
 Landroid/net/DhcpInfo;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/DhcpInfo;->putAddress(Ljava/lang/StringBuffer;I)V
-Landroid/net/DhcpResults;
 Landroid/net/DhcpResults;->addDns(Ljava/lang/String;)Z
 Landroid/net/DhcpResults;->clear()V
 Landroid/net/DhcpResults;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -45897,8 +42776,6 @@
 Landroid/net/DhcpResults;->setServerAddress(Ljava/lang/String;)Z
 Landroid/net/DhcpResults;->setVendorInfo(Ljava/lang/String;)V
 Landroid/net/DhcpResults;->TAG:Ljava/lang/String;
-Landroid/net/EthernetManager$Listener;
-Landroid/net/EthernetManager;
 Landroid/net/EthernetManager;-><init>(Landroid/content/Context;Landroid/net/IEthernetManager;)V
 Landroid/net/EthernetManager;->mContext:Landroid/content/Context;
 Landroid/net/EthernetManager;->mHandler:Landroid/os/Handler;
@@ -45907,7 +42784,6 @@
 Landroid/net/EthernetManager;->mServiceListener:Landroid/net/IEthernetServiceListener$Stub;
 Landroid/net/EthernetManager;->MSG_AVAILABILITY_CHANGED:I
 Landroid/net/EthernetManager;->TAG:Ljava/lang/String;
-Landroid/net/EventLogTags;
 Landroid/net/EventLogTags;-><init>()V
 Landroid/net/EventLogTags;->NTP_FAILURE:I
 Landroid/net/EventLogTags;->NTP_SUCCESS:I
@@ -45941,19 +42817,15 @@
 Landroid/net/http/X509TrustManagerExtensions;->mDelegate:Lcom/android/org/conscrypt/TrustManagerImpl;
 Landroid/net/http/X509TrustManagerExtensions;->mIsSameTrustConfiguration:Ljava/lang/reflect/Method;
 Landroid/net/http/X509TrustManagerExtensions;->mTrustManager:Ljavax/net/ssl/X509TrustManager;
-Landroid/net/ICaptivePortal$Stub$Proxy;
 Landroid/net/ICaptivePortal$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/ICaptivePortal$Stub$Proxy;->appResponse(I)V
 Landroid/net/ICaptivePortal$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/net/ICaptivePortal$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/net/ICaptivePortal$Stub;
 Landroid/net/ICaptivePortal$Stub;-><init>()V
 Landroid/net/ICaptivePortal$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/ICaptivePortal;
 Landroid/net/ICaptivePortal$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/ICaptivePortal$Stub;->TRANSACTION_appResponse:I
-Landroid/net/ICaptivePortal;
 Landroid/net/ICaptivePortal;->appResponse(I)V
-Landroid/net/IConnectivityManager$Stub$Proxy;
 Landroid/net/IConnectivityManager$Stub$Proxy;->addVpnAddress(Ljava/lang/String;I)Z
 Landroid/net/IConnectivityManager$Stub$Proxy;->checkMobileProvisioning(I)I
 Landroid/net/IConnectivityManager$Stub$Proxy;->establishVpn(Lcom/android/internal/net/VpnConfig;)Landroid/os/ParcelFileDescriptor;
@@ -46024,7 +42896,6 @@
 Landroid/net/IConnectivityManager$Stub$Proxy;->unregisterNetworkFactory(Landroid/os/Messenger;)V
 Landroid/net/IConnectivityManager$Stub$Proxy;->untether(Ljava/lang/String;Ljava/lang/String;)I
 Landroid/net/IConnectivityManager$Stub$Proxy;->updateLockdownVpn()Z
-Landroid/net/IConnectivityManager$Stub;
 Landroid/net/IConnectivityManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/IConnectivityManager$Stub;->TRANSACTION_addVpnAddress:I
 Landroid/net/IConnectivityManager$Stub;->TRANSACTION_checkMobileProvisioning:I
@@ -46102,7 +42973,6 @@
 Landroid/net/IConnectivityManager$Stub;->TRANSACTION_unregisterNetworkFactory:I
 Landroid/net/IConnectivityManager$Stub;->TRANSACTION_untether:I
 Landroid/net/IConnectivityManager$Stub;->TRANSACTION_updateLockdownVpn:I
-Landroid/net/IConnectivityManager;
 Landroid/net/IConnectivityManager;->addVpnAddress(Ljava/lang/String;I)Z
 Landroid/net/IConnectivityManager;->checkMobileProvisioning(I)I
 Landroid/net/IConnectivityManager;->establishVpn(Lcom/android/internal/net/VpnConfig;)Landroid/os/ParcelFileDescriptor;
@@ -46165,7 +43035,6 @@
 Landroid/net/IConnectivityManager;->unregisterNetworkFactory(Landroid/os/Messenger;)V
 Landroid/net/IConnectivityManager;->untether(Ljava/lang/String;Ljava/lang/String;)I
 Landroid/net/IConnectivityManager;->updateLockdownVpn()Z
-Landroid/net/IEthernetManager$Stub$Proxy;
 Landroid/net/IEthernetManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/IEthernetManager$Stub$Proxy;->addListener(Landroid/net/IEthernetServiceListener;)V
 Landroid/net/IEthernetManager$Stub$Proxy;->getAvailableInterfaces()[Ljava/lang/String;
@@ -46175,7 +43044,6 @@
 Landroid/net/IEthernetManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/net/IEthernetManager$Stub$Proxy;->removeListener(Landroid/net/IEthernetServiceListener;)V
 Landroid/net/IEthernetManager$Stub$Proxy;->setConfiguration(Ljava/lang/String;Landroid/net/IpConfiguration;)V
-Landroid/net/IEthernetManager$Stub;
 Landroid/net/IEthernetManager$Stub;-><init>()V
 Landroid/net/IEthernetManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/IEthernetManager;
 Landroid/net/IEthernetManager$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -46185,44 +43053,36 @@
 Landroid/net/IEthernetManager$Stub;->TRANSACTION_isAvailable:I
 Landroid/net/IEthernetManager$Stub;->TRANSACTION_removeListener:I
 Landroid/net/IEthernetManager$Stub;->TRANSACTION_setConfiguration:I
-Landroid/net/IEthernetManager;
 Landroid/net/IEthernetManager;->addListener(Landroid/net/IEthernetServiceListener;)V
 Landroid/net/IEthernetManager;->getAvailableInterfaces()[Ljava/lang/String;
 Landroid/net/IEthernetManager;->getConfiguration(Ljava/lang/String;)Landroid/net/IpConfiguration;
 Landroid/net/IEthernetManager;->isAvailable(Ljava/lang/String;)Z
 Landroid/net/IEthernetManager;->removeListener(Landroid/net/IEthernetServiceListener;)V
 Landroid/net/IEthernetManager;->setConfiguration(Ljava/lang/String;Landroid/net/IpConfiguration;)V
-Landroid/net/IEthernetServiceListener$Stub$Proxy;
 Landroid/net/IEthernetServiceListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/IEthernetServiceListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/net/IEthernetServiceListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/net/IEthernetServiceListener$Stub$Proxy;->onAvailabilityChanged(Ljava/lang/String;Z)V
-Landroid/net/IEthernetServiceListener$Stub;
 Landroid/net/IEthernetServiceListener$Stub;-><init>()V
 Landroid/net/IEthernetServiceListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/IEthernetServiceListener;
 Landroid/net/IEthernetServiceListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/IEthernetServiceListener$Stub;->TRANSACTION_onAvailabilityChanged:I
-Landroid/net/IEthernetServiceListener;
 Landroid/net/IEthernetServiceListener;->onAvailabilityChanged(Ljava/lang/String;Z)V
-Landroid/net/IIpConnectivityMetrics$Stub$Proxy;
 Landroid/net/IIpConnectivityMetrics$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/IIpConnectivityMetrics$Stub$Proxy;->addNetdEventCallback(ILandroid/net/INetdEventCallback;)Z
 Landroid/net/IIpConnectivityMetrics$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/net/IIpConnectivityMetrics$Stub$Proxy;->logEvent(Landroid/net/ConnectivityMetricsEvent;)I
 Landroid/net/IIpConnectivityMetrics$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/net/IIpConnectivityMetrics$Stub$Proxy;->removeNetdEventCallback(I)Z
-Landroid/net/IIpConnectivityMetrics$Stub;
 Landroid/net/IIpConnectivityMetrics$Stub;-><init>()V
 Landroid/net/IIpConnectivityMetrics$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/IIpConnectivityMetrics;
 Landroid/net/IIpConnectivityMetrics$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/IIpConnectivityMetrics$Stub;->TRANSACTION_addNetdEventCallback:I
 Landroid/net/IIpConnectivityMetrics$Stub;->TRANSACTION_logEvent:I
 Landroid/net/IIpConnectivityMetrics$Stub;->TRANSACTION_removeNetdEventCallback:I
-Landroid/net/IIpConnectivityMetrics;
 Landroid/net/IIpConnectivityMetrics;->addNetdEventCallback(ILandroid/net/INetdEventCallback;)Z
 Landroid/net/IIpConnectivityMetrics;->logEvent(Landroid/net/ConnectivityMetricsEvent;)I
 Landroid/net/IIpConnectivityMetrics;->removeNetdEventCallback(I)Z
-Landroid/net/IIpSecService$Stub$Proxy;
 Landroid/net/IIpSecService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/IIpSecService$Stub$Proxy;->addAddressToTunnelInterface(ILandroid/net/LinkAddress;Ljava/lang/String;)V
 Landroid/net/IIpSecService$Stub$Proxy;->allocateSecurityParameterIndex(Ljava/lang/String;ILandroid/os/IBinder;)Landroid/net/IpSecSpiResponse;
@@ -46239,7 +43099,6 @@
 Landroid/net/IIpSecService$Stub$Proxy;->releaseSecurityParameterIndex(I)V
 Landroid/net/IIpSecService$Stub$Proxy;->removeAddressFromTunnelInterface(ILandroid/net/LinkAddress;Ljava/lang/String;)V
 Landroid/net/IIpSecService$Stub$Proxy;->removeTransportModeTransforms(Landroid/os/ParcelFileDescriptor;)V
-Landroid/net/IIpSecService$Stub;
 Landroid/net/IIpSecService$Stub;-><init>()V
 Landroid/net/IIpSecService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/IIpSecService;
 Landroid/net/IIpSecService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -46256,7 +43115,6 @@
 Landroid/net/IIpSecService$Stub;->TRANSACTION_releaseSecurityParameterIndex:I
 Landroid/net/IIpSecService$Stub;->TRANSACTION_removeAddressFromTunnelInterface:I
 Landroid/net/IIpSecService$Stub;->TRANSACTION_removeTransportModeTransforms:I
-Landroid/net/IIpSecService;
 Landroid/net/IIpSecService;->addAddressToTunnelInterface(ILandroid/net/LinkAddress;Ljava/lang/String;)V
 Landroid/net/IIpSecService;->allocateSecurityParameterIndex(Ljava/lang/String;ILandroid/os/IBinder;)Landroid/net/IpSecSpiResponse;
 Landroid/net/IIpSecService;->applyTransportModeTransform(Landroid/os/ParcelFileDescriptor;II)V
@@ -46270,7 +43128,6 @@
 Landroid/net/IIpSecService;->releaseSecurityParameterIndex(I)V
 Landroid/net/IIpSecService;->removeAddressFromTunnelInterface(ILandroid/net/LinkAddress;Ljava/lang/String;)V
 Landroid/net/IIpSecService;->removeTransportModeTransforms(Landroid/os/ParcelFileDescriptor;)V
-Landroid/net/INetd$Stub$Proxy;
 Landroid/net/INetd$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/INetd$Stub$Proxy;->addVirtualTunnelInterface(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V
 Landroid/net/INetd$Stub$Proxy;->bandwidthEnableDataSaver(Z)Z
@@ -46311,7 +43168,6 @@
 Landroid/net/INetd$Stub$Proxy;->updateVirtualTunnelInterface(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V
 Landroid/net/INetd$Stub$Proxy;->wakeupAddInterface(Ljava/lang/String;Ljava/lang/String;II)V
 Landroid/net/INetd$Stub$Proxy;->wakeupDelInterface(Ljava/lang/String;Ljava/lang/String;II)V
-Landroid/net/INetd$Stub;
 Landroid/net/INetd$Stub;-><init>()V
 Landroid/net/INetd$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/INetd$Stub;->TRANSACTION_addVirtualTunnelInterface:I
@@ -46351,7 +43207,6 @@
 Landroid/net/INetd$Stub;->TRANSACTION_updateVirtualTunnelInterface:I
 Landroid/net/INetd$Stub;->TRANSACTION_wakeupAddInterface:I
 Landroid/net/INetd$Stub;->TRANSACTION_wakeupDelInterface:I
-Landroid/net/INetd;
 Landroid/net/INetd;->addVirtualTunnelInterface(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V
 Landroid/net/INetd;->bandwidthEnableDataSaver(Z)Z
 Landroid/net/INetd;->CONF:I
@@ -46418,28 +43273,24 @@
 Landroid/net/INetd;->updateVirtualTunnelInterface(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V
 Landroid/net/INetd;->wakeupAddInterface(Ljava/lang/String;Ljava/lang/String;II)V
 Landroid/net/INetd;->wakeupDelInterface(Ljava/lang/String;Ljava/lang/String;II)V
-Landroid/net/INetdEventCallback$Stub$Proxy;
 Landroid/net/INetdEventCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/INetdEventCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/net/INetdEventCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/net/INetdEventCallback$Stub$Proxy;->onConnectEvent(Ljava/lang/String;IJI)V
 Landroid/net/INetdEventCallback$Stub$Proxy;->onDnsEvent(Ljava/lang/String;[Ljava/lang/String;IJI)V
 Landroid/net/INetdEventCallback$Stub$Proxy;->onPrivateDnsValidationEvent(ILjava/lang/String;Ljava/lang/String;Z)V
-Landroid/net/INetdEventCallback$Stub;
 Landroid/net/INetdEventCallback$Stub;-><init>()V
 Landroid/net/INetdEventCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetdEventCallback;
 Landroid/net/INetdEventCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/INetdEventCallback$Stub;->TRANSACTION_onConnectEvent:I
 Landroid/net/INetdEventCallback$Stub;->TRANSACTION_onDnsEvent:I
 Landroid/net/INetdEventCallback$Stub;->TRANSACTION_onPrivateDnsValidationEvent:I
-Landroid/net/INetdEventCallback;
 Landroid/net/INetdEventCallback;->CALLBACK_CALLER_CONNECTIVITY_SERVICE:I
 Landroid/net/INetdEventCallback;->CALLBACK_CALLER_DEVICE_POLICY:I
 Landroid/net/INetdEventCallback;->CALLBACK_CALLER_NETWORK_WATCHLIST:I
 Landroid/net/INetdEventCallback;->onConnectEvent(Ljava/lang/String;IJI)V
 Landroid/net/INetdEventCallback;->onDnsEvent(Ljava/lang/String;[Ljava/lang/String;IJI)V
 Landroid/net/INetdEventCallback;->onPrivateDnsValidationEvent(ILjava/lang/String;Ljava/lang/String;Z)V
-Landroid/net/INetworkManagementEventObserver$Stub$Proxy;
 Landroid/net/INetworkManagementEventObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/INetworkManagementEventObserver$Stub$Proxy;->addressRemoved(Ljava/lang/String;Landroid/net/LinkAddress;)V
 Landroid/net/INetworkManagementEventObserver$Stub$Proxy;->addressUpdated(Ljava/lang/String;Landroid/net/LinkAddress;)V
@@ -46454,7 +43305,6 @@
 Landroid/net/INetworkManagementEventObserver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/net/INetworkManagementEventObserver$Stub$Proxy;->routeRemoved(Landroid/net/RouteInfo;)V
 Landroid/net/INetworkManagementEventObserver$Stub$Proxy;->routeUpdated(Landroid/net/RouteInfo;)V
-Landroid/net/INetworkManagementEventObserver$Stub;
 Landroid/net/INetworkManagementEventObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkManagementEventObserver;
 Landroid/net/INetworkManagementEventObserver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/INetworkManagementEventObserver$Stub;->TRANSACTION_addressRemoved:I
@@ -46468,7 +43318,6 @@
 Landroid/net/INetworkManagementEventObserver$Stub;->TRANSACTION_limitReached:I
 Landroid/net/INetworkManagementEventObserver$Stub;->TRANSACTION_routeRemoved:I
 Landroid/net/INetworkManagementEventObserver$Stub;->TRANSACTION_routeUpdated:I
-Landroid/net/INetworkManagementEventObserver;
 Landroid/net/INetworkManagementEventObserver;->addressRemoved(Ljava/lang/String;Landroid/net/LinkAddress;)V
 Landroid/net/INetworkManagementEventObserver;->addressUpdated(Ljava/lang/String;Landroid/net/LinkAddress;)V
 Landroid/net/INetworkManagementEventObserver;->interfaceAdded(Ljava/lang/String;)V
@@ -46480,7 +43329,6 @@
 Landroid/net/INetworkManagementEventObserver;->limitReached(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/net/INetworkManagementEventObserver;->routeRemoved(Landroid/net/RouteInfo;)V
 Landroid/net/INetworkManagementEventObserver;->routeUpdated(Landroid/net/RouteInfo;)V
-Landroid/net/INetworkPolicyListener$Stub$Proxy;
 Landroid/net/INetworkPolicyListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/INetworkPolicyListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/net/INetworkPolicyListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -46489,7 +43337,6 @@
 Landroid/net/INetworkPolicyListener$Stub$Proxy;->onSubscriptionOverride(III)V
 Landroid/net/INetworkPolicyListener$Stub$Proxy;->onUidPoliciesChanged(II)V
 Landroid/net/INetworkPolicyListener$Stub$Proxy;->onUidRulesChanged(II)V
-Landroid/net/INetworkPolicyListener$Stub;
 Landroid/net/INetworkPolicyListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkPolicyListener;
 Landroid/net/INetworkPolicyListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/INetworkPolicyListener$Stub;->TRANSACTION_onMeteredIfacesChanged:I
@@ -46497,13 +43344,11 @@
 Landroid/net/INetworkPolicyListener$Stub;->TRANSACTION_onSubscriptionOverride:I
 Landroid/net/INetworkPolicyListener$Stub;->TRANSACTION_onUidPoliciesChanged:I
 Landroid/net/INetworkPolicyListener$Stub;->TRANSACTION_onUidRulesChanged:I
-Landroid/net/INetworkPolicyListener;
 Landroid/net/INetworkPolicyListener;->onMeteredIfacesChanged([Ljava/lang/String;)V
 Landroid/net/INetworkPolicyListener;->onRestrictBackgroundChanged(Z)V
 Landroid/net/INetworkPolicyListener;->onSubscriptionOverride(III)V
 Landroid/net/INetworkPolicyListener;->onUidPoliciesChanged(II)V
 Landroid/net/INetworkPolicyListener;->onUidRulesChanged(II)V
-Landroid/net/INetworkPolicyManager$Stub$Proxy;
 Landroid/net/INetworkPolicyManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/INetworkPolicyManager$Stub$Proxy;->addUidPolicy(II)V
 Landroid/net/INetworkPolicyManager$Stub$Proxy;->factoryReset(Ljava/lang/String;)V
@@ -46530,7 +43375,6 @@
 Landroid/net/INetworkPolicyManager$Stub$Proxy;->setWifiMeteredOverride(Ljava/lang/String;I)V
 Landroid/net/INetworkPolicyManager$Stub$Proxy;->snoozeLimit(Landroid/net/NetworkTemplate;)V
 Landroid/net/INetworkPolicyManager$Stub$Proxy;->unregisterListener(Landroid/net/INetworkPolicyListener;)V
-Landroid/net/INetworkPolicyManager$Stub;
 Landroid/net/INetworkPolicyManager$Stub;-><init>()V
 Landroid/net/INetworkPolicyManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_addUidPolicy:I
@@ -46556,7 +43400,6 @@
 Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_setWifiMeteredOverride:I
 Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_snoozeLimit:I
 Landroid/net/INetworkPolicyManager$Stub;->TRANSACTION_unregisterListener:I
-Landroid/net/INetworkPolicyManager;
 Landroid/net/INetworkPolicyManager;->addUidPolicy(II)V
 Landroid/net/INetworkPolicyManager;->factoryReset(Ljava/lang/String;)V
 Landroid/net/INetworkPolicyManager;->getNetworkPolicies(Ljava/lang/String;)[Landroid/net/NetworkPolicy;
@@ -46573,34 +43416,27 @@
 Landroid/net/INetworkPolicyManager;->setSubscriptionPlans(I[Landroid/telephony/SubscriptionPlan;Ljava/lang/String;)V
 Landroid/net/INetworkPolicyManager;->setWifiMeteredOverride(Ljava/lang/String;I)V
 Landroid/net/INetworkPolicyManager;->unregisterListener(Landroid/net/INetworkPolicyListener;)V
-Landroid/net/INetworkRecommendationProvider$Stub$Proxy;
 Landroid/net/INetworkRecommendationProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/INetworkRecommendationProvider$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/net/INetworkRecommendationProvider$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/net/INetworkRecommendationProvider$Stub$Proxy;->requestScores([Landroid/net/NetworkKey;)V
-Landroid/net/INetworkRecommendationProvider$Stub;
 Landroid/net/INetworkRecommendationProvider$Stub;-><init>()V
 Landroid/net/INetworkRecommendationProvider$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkRecommendationProvider;
 Landroid/net/INetworkRecommendationProvider$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/INetworkRecommendationProvider$Stub;->TRANSACTION_requestScores:I
-Landroid/net/INetworkRecommendationProvider;
 Landroid/net/INetworkRecommendationProvider;->requestScores([Landroid/net/NetworkKey;)V
-Landroid/net/INetworkScoreCache$Stub$Proxy;
 Landroid/net/INetworkScoreCache$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/INetworkScoreCache$Stub$Proxy;->clearScores()V
 Landroid/net/INetworkScoreCache$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/net/INetworkScoreCache$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/net/INetworkScoreCache$Stub$Proxy;->updateScores(Ljava/util/List;)V
-Landroid/net/INetworkScoreCache$Stub;
 Landroid/net/INetworkScoreCache$Stub;-><init>()V
 Landroid/net/INetworkScoreCache$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkScoreCache;
 Landroid/net/INetworkScoreCache$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/INetworkScoreCache$Stub;->TRANSACTION_clearScores:I
 Landroid/net/INetworkScoreCache$Stub;->TRANSACTION_updateScores:I
-Landroid/net/INetworkScoreCache;
 Landroid/net/INetworkScoreCache;->clearScores()V
 Landroid/net/INetworkScoreCache;->updateScores(Ljava/util/List;)V
-Landroid/net/INetworkScoreService$Stub$Proxy;
 Landroid/net/INetworkScoreService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/INetworkScoreService$Stub$Proxy;->clearScores()Z
 Landroid/net/INetworkScoreService$Stub$Proxy;->disableScoring()V
@@ -46615,7 +43451,6 @@
 Landroid/net/INetworkScoreService$Stub$Proxy;->setActiveScorer(Ljava/lang/String;)Z
 Landroid/net/INetworkScoreService$Stub$Proxy;->unregisterNetworkScoreCache(ILandroid/net/INetworkScoreCache;)V
 Landroid/net/INetworkScoreService$Stub$Proxy;->updateScores([Landroid/net/ScoredNetwork;)Z
-Landroid/net/INetworkScoreService$Stub;
 Landroid/net/INetworkScoreService$Stub;-><init>()V
 Landroid/net/INetworkScoreService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/INetworkScoreService$Stub;->TRANSACTION_clearScores:I
@@ -46629,7 +43464,6 @@
 Landroid/net/INetworkScoreService$Stub;->TRANSACTION_setActiveScorer:I
 Landroid/net/INetworkScoreService$Stub;->TRANSACTION_unregisterNetworkScoreCache:I
 Landroid/net/INetworkScoreService$Stub;->TRANSACTION_updateScores:I
-Landroid/net/INetworkScoreService;
 Landroid/net/INetworkScoreService;->clearScores()Z
 Landroid/net/INetworkScoreService;->disableScoring()V
 Landroid/net/INetworkScoreService;->getActiveScorer()Landroid/net/NetworkScorerAppData;
@@ -46641,7 +43475,6 @@
 Landroid/net/INetworkScoreService;->setActiveScorer(Ljava/lang/String;)Z
 Landroid/net/INetworkScoreService;->unregisterNetworkScoreCache(ILandroid/net/INetworkScoreCache;)V
 Landroid/net/INetworkScoreService;->updateScores([Landroid/net/ScoredNetwork;)Z
-Landroid/net/INetworkStatsService$Stub$Proxy;
 Landroid/net/INetworkStatsService$Stub$Proxy;->forceUpdate()V
 Landroid/net/INetworkStatsService$Stub$Proxy;->forceUpdateIfaces([Landroid/net/Network;)V
 Landroid/net/INetworkStatsService$Stub$Proxy;->getDataLayerSnapshotForUid(I)Landroid/net/NetworkStats;
@@ -46656,7 +43489,6 @@
 Landroid/net/INetworkStatsService$Stub$Proxy;->openSessionForUsageStats(ILjava/lang/String;)Landroid/net/INetworkStatsSession;
 Landroid/net/INetworkStatsService$Stub$Proxy;->registerUsageCallback(Ljava/lang/String;Landroid/net/DataUsageRequest;Landroid/os/Messenger;Landroid/os/IBinder;)Landroid/net/DataUsageRequest;
 Landroid/net/INetworkStatsService$Stub$Proxy;->unregisterUsageRequest(Landroid/net/DataUsageRequest;)V
-Landroid/net/INetworkStatsService$Stub;
 Landroid/net/INetworkStatsService$Stub;-><init>()V
 Landroid/net/INetworkStatsService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/INetworkStatsService$Stub;->TRANSACTION_forceUpdate:I
@@ -46672,7 +43504,6 @@
 Landroid/net/INetworkStatsService$Stub;->TRANSACTION_openSessionForUsageStats:I
 Landroid/net/INetworkStatsService$Stub;->TRANSACTION_registerUsageCallback:I
 Landroid/net/INetworkStatsService$Stub;->TRANSACTION_unregisterUsageRequest:I
-Landroid/net/INetworkStatsService;
 Landroid/net/INetworkStatsService;->forceUpdateIfaces([Landroid/net/Network;)V
 Landroid/net/INetworkStatsService;->getDetailedUidStats([Ljava/lang/String;)Landroid/net/NetworkStats;
 Landroid/net/INetworkStatsService;->getIfaceStats(Ljava/lang/String;I)J
@@ -46681,7 +43512,6 @@
 Landroid/net/INetworkStatsService;->incrementOperationCount(III)V
 Landroid/net/INetworkStatsService;->registerUsageCallback(Ljava/lang/String;Landroid/net/DataUsageRequest;Landroid/os/Messenger;Landroid/os/IBinder;)Landroid/net/DataUsageRequest;
 Landroid/net/INetworkStatsService;->unregisterUsageRequest(Landroid/net/DataUsageRequest;)V
-Landroid/net/INetworkStatsSession$Stub$Proxy;
 Landroid/net/INetworkStatsSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/INetworkStatsSession$Stub$Proxy;->close()V
 Landroid/net/INetworkStatsSession$Stub$Proxy;->getDeviceSummaryForNetwork(Landroid/net/NetworkTemplate;JJ)Landroid/net/NetworkStats;
@@ -46693,7 +43523,6 @@
 Landroid/net/INetworkStatsSession$Stub$Proxy;->getSummaryForAllUid(Landroid/net/NetworkTemplate;JJZ)Landroid/net/NetworkStats;
 Landroid/net/INetworkStatsSession$Stub$Proxy;->getSummaryForNetwork(Landroid/net/NetworkTemplate;JJ)Landroid/net/NetworkStats;
 Landroid/net/INetworkStatsSession$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/net/INetworkStatsSession$Stub;
 Landroid/net/INetworkStatsSession$Stub;-><init>()V
 Landroid/net/INetworkStatsSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkStatsSession;
 Landroid/net/INetworkStatsSession$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -46705,11 +43534,9 @@
 Landroid/net/INetworkStatsSession$Stub;->TRANSACTION_getRelevantUids:I
 Landroid/net/INetworkStatsSession$Stub;->TRANSACTION_getSummaryForAllUid:I
 Landroid/net/INetworkStatsSession$Stub;->TRANSACTION_getSummaryForNetwork:I
-Landroid/net/INetworkStatsSession;
 Landroid/net/INetworkStatsSession;->getDeviceSummaryForNetwork(Landroid/net/NetworkTemplate;JJ)Landroid/net/NetworkStats;
 Landroid/net/INetworkStatsSession;->getHistoryIntervalForUid(Landroid/net/NetworkTemplate;IIIIJJ)Landroid/net/NetworkStatsHistory;
 Landroid/net/INetworkStatsSession;->getRelevantUids()[I
-Landroid/net/InterfaceConfiguration;
 Landroid/net/InterfaceConfiguration;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/InterfaceConfiguration;->FLAG_DOWN:Ljava/lang/String;
 Landroid/net/InterfaceConfiguration;->FLAG_UP:Ljava/lang/String;
@@ -46724,20 +43551,15 @@
 Landroid/net/InterfaceConfiguration;->mHwAddr:Ljava/lang/String;
 Landroid/net/InterfaceConfiguration;->setHardwareAddress(Ljava/lang/String;)V
 Landroid/net/InterfaceConfiguration;->validateFlag(Ljava/lang/String;)V
-Landroid/net/IpConfiguration$IpAssignment;
-Landroid/net/IpConfiguration$IpAssignment;-><init>()V
 Landroid/net/IpConfiguration$IpAssignment;->DHCP:Landroid/net/IpConfiguration$IpAssignment;
 Landroid/net/IpConfiguration$IpAssignment;->UNASSIGNED:Landroid/net/IpConfiguration$IpAssignment;
 Landroid/net/IpConfiguration$IpAssignment;->valueOf(Ljava/lang/String;)Landroid/net/IpConfiguration$IpAssignment;
 Landroid/net/IpConfiguration$IpAssignment;->values()[Landroid/net/IpConfiguration$IpAssignment;
-Landroid/net/IpConfiguration$ProxySettings;
-Landroid/net/IpConfiguration$ProxySettings;-><init>()V
 Landroid/net/IpConfiguration$ProxySettings;->PAC:Landroid/net/IpConfiguration$ProxySettings;
 Landroid/net/IpConfiguration$ProxySettings;->STATIC:Landroid/net/IpConfiguration$ProxySettings;
 Landroid/net/IpConfiguration$ProxySettings;->UNASSIGNED:Landroid/net/IpConfiguration$ProxySettings;
 Landroid/net/IpConfiguration$ProxySettings;->valueOf(Ljava/lang/String;)Landroid/net/IpConfiguration$ProxySettings;
 Landroid/net/IpConfiguration$ProxySettings;->values()[Landroid/net/IpConfiguration$ProxySettings;
-Landroid/net/IpConfiguration;
 Landroid/net/IpConfiguration;-><init>()V
 Landroid/net/IpConfiguration;-><init>(Landroid/net/IpConfiguration;)V
 Landroid/net/IpConfiguration;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -46764,7 +43586,6 @@
 Landroid/net/IpPrefix;->isIPv6()Z
 Landroid/net/IpPrefix;->lengthComparator()Ljava/util/Comparator;
 Landroid/net/IpPrefix;->prefixLength:I
-Landroid/net/IpSecAlgorithm$AlgorithmName;
 Landroid/net/IpSecAlgorithm;->checkValidOrThrow(Ljava/lang/String;II)V
 Landroid/net/IpSecAlgorithm;->CRYPT_NULL:Ljava/lang/String;
 Landroid/net/IpSecAlgorithm;->equals(Landroid/net/IpSecAlgorithm;Landroid/net/IpSecAlgorithm;)Z
@@ -46776,7 +43597,6 @@
 Landroid/net/IpSecAlgorithm;->mName:Ljava/lang/String;
 Landroid/net/IpSecAlgorithm;->mTruncLenBits:I
 Landroid/net/IpSecAlgorithm;->TAG:Ljava/lang/String;
-Landroid/net/IpSecConfig;
 Landroid/net/IpSecConfig;-><init>()V
 Landroid/net/IpSecConfig;-><init>(Landroid/net/IpSecConfig;)V
 Landroid/net/IpSecConfig;-><init>(Landroid/os/Parcel;)V
@@ -46825,7 +43645,6 @@
 Landroid/net/IpSecConfig;->setSourceAddress(Ljava/lang/String;)V
 Landroid/net/IpSecConfig;->setSpiResourceId(I)V
 Landroid/net/IpSecConfig;->TAG:Ljava/lang/String;
-Landroid/net/IpSecManager$IpSecTunnelInterface;
 Landroid/net/IpSecManager$IpSecTunnelInterface;-><init>(Landroid/content/Context;Landroid/net/IIpSecService;Ljava/net/InetAddress;Ljava/net/InetAddress;Landroid/net/Network;)V
 Landroid/net/IpSecManager$IpSecTunnelInterface;->addAddress(Ljava/net/InetAddress;I)V
 Landroid/net/IpSecManager$IpSecTunnelInterface;->getInterfaceName()Ljava/lang/String;
@@ -46839,7 +43658,6 @@
 Landroid/net/IpSecManager$IpSecTunnelInterface;->mService:Landroid/net/IIpSecService;
 Landroid/net/IpSecManager$IpSecTunnelInterface;->mUnderlyingNetwork:Landroid/net/Network;
 Landroid/net/IpSecManager$IpSecTunnelInterface;->removeAddress(Ljava/net/InetAddress;I)V
-Landroid/net/IpSecManager$PolicyDirection;
 Landroid/net/IpSecManager$ResourceUnavailableException;-><init>(Ljava/lang/String;)V
 Landroid/net/IpSecManager$SecurityParameterIndex;-><init>(Landroid/net/IIpSecService;Ljava/net/InetAddress;I)V
 Landroid/net/IpSecManager$SecurityParameterIndex;->getResourceId()I
@@ -46850,7 +43668,6 @@
 Landroid/net/IpSecManager$SecurityParameterIndex;->mSpi:I
 Landroid/net/IpSecManager$SpiUnavailableException;-><init>(Ljava/lang/String;I)V
 Landroid/net/IpSecManager$SpiUnavailableException;->mSpi:I
-Landroid/net/IpSecManager$Status;
 Landroid/net/IpSecManager$Status;->OK:I
 Landroid/net/IpSecManager$Status;->RESOURCE_UNAVAILABLE:I
 Landroid/net/IpSecManager$Status;->SPI_UNAVAILABLE:I
@@ -46872,7 +43689,6 @@
 Landroid/net/IpSecManager;->rethrowCheckedExceptionFromServiceSpecificException(Landroid/os/ServiceSpecificException;)Ljava/io/IOException;
 Landroid/net/IpSecManager;->rethrowUncheckedExceptionFromServiceSpecificException(Landroid/os/ServiceSpecificException;)Ljava/lang/RuntimeException;
 Landroid/net/IpSecManager;->TAG:Ljava/lang/String;
-Landroid/net/IpSecSpiResponse;
 Landroid/net/IpSecSpiResponse;-><init>(I)V
 Landroid/net/IpSecSpiResponse;-><init>(III)V
 Landroid/net/IpSecSpiResponse;-><init>(Landroid/os/Parcel;)V
@@ -46884,8 +43700,6 @@
 Landroid/net/IpSecTransform$Builder;->buildTunnelModeTransform(Ljava/net/InetAddress;Landroid/net/IpSecManager$SecurityParameterIndex;)Landroid/net/IpSecTransform;
 Landroid/net/IpSecTransform$Builder;->mConfig:Landroid/net/IpSecConfig;
 Landroid/net/IpSecTransform$Builder;->mContext:Landroid/content/Context;
-Landroid/net/IpSecTransform$EncapType;
-Landroid/net/IpSecTransform$NattKeepaliveCallback;
 Landroid/net/IpSecTransform$NattKeepaliveCallback;-><init>()V
 Landroid/net/IpSecTransform$NattKeepaliveCallback;->ERROR_HARDWARE_ERROR:I
 Landroid/net/IpSecTransform$NattKeepaliveCallback;->ERROR_HARDWARE_UNSUPPORTED:I
@@ -46916,7 +43730,6 @@
 Landroid/net/IpSecTransform;->startNattKeepalive(Landroid/net/IpSecTransform$NattKeepaliveCallback;ILandroid/os/Handler;)V
 Landroid/net/IpSecTransform;->stopNattKeepalive()V
 Landroid/net/IpSecTransform;->TAG:Ljava/lang/String;
-Landroid/net/IpSecTransformResponse;
 Landroid/net/IpSecTransformResponse;-><init>(I)V
 Landroid/net/IpSecTransformResponse;-><init>(II)V
 Landroid/net/IpSecTransformResponse;-><init>(Landroid/os/Parcel;)V
@@ -46924,7 +43737,6 @@
 Landroid/net/IpSecTransformResponse;->resourceId:I
 Landroid/net/IpSecTransformResponse;->status:I
 Landroid/net/IpSecTransformResponse;->TAG:Ljava/lang/String;
-Landroid/net/IpSecTunnelInterfaceResponse;
 Landroid/net/IpSecTunnelInterfaceResponse;-><init>(I)V
 Landroid/net/IpSecTunnelInterfaceResponse;-><init>(IILjava/lang/String;)V
 Landroid/net/IpSecTunnelInterfaceResponse;-><init>(Landroid/os/Parcel;)V
@@ -46933,7 +43745,6 @@
 Landroid/net/IpSecTunnelInterfaceResponse;->resourceId:I
 Landroid/net/IpSecTunnelInterfaceResponse;->status:I
 Landroid/net/IpSecTunnelInterfaceResponse;->TAG:Ljava/lang/String;
-Landroid/net/IpSecUdpEncapResponse;
 Landroid/net/IpSecUdpEncapResponse;-><init>(I)V
 Landroid/net/IpSecUdpEncapResponse;-><init>(IIILjava/io/FileDescriptor;)V
 Landroid/net/IpSecUdpEncapResponse;-><init>(Landroid/os/Parcel;)V
@@ -46943,26 +43754,21 @@
 Landroid/net/IpSecUdpEncapResponse;->resourceId:I
 Landroid/net/IpSecUdpEncapResponse;->status:I
 Landroid/net/IpSecUdpEncapResponse;->TAG:Ljava/lang/String;
-Landroid/net/ITetheringStatsProvider$Stub$Proxy;
 Landroid/net/ITetheringStatsProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/ITetheringStatsProvider$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/net/ITetheringStatsProvider$Stub$Proxy;->getTetherStats(I)Landroid/net/NetworkStats;
 Landroid/net/ITetheringStatsProvider$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/net/ITetheringStatsProvider$Stub$Proxy;->setInterfaceQuota(Ljava/lang/String;J)V
-Landroid/net/ITetheringStatsProvider$Stub;
 Landroid/net/ITetheringStatsProvider$Stub;-><init>()V
 Landroid/net/ITetheringStatsProvider$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/ITetheringStatsProvider;
 Landroid/net/ITetheringStatsProvider$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/ITetheringStatsProvider$Stub;->TRANSACTION_getTetherStats:I
 Landroid/net/ITetheringStatsProvider$Stub;->TRANSACTION_setInterfaceQuota:I
-Landroid/net/ITetheringStatsProvider;
 Landroid/net/ITetheringStatsProvider;->getTetherStats(I)Landroid/net/NetworkStats;
 Landroid/net/ITetheringStatsProvider;->QUOTA_UNLIMITED:I
 Landroid/net/ITetheringStatsProvider;->setInterfaceQuota(Ljava/lang/String;J)V
-Landroid/net/KeepalivePacketData$InvalidPacketException;
 Landroid/net/KeepalivePacketData$InvalidPacketException;-><init>(I)V
 Landroid/net/KeepalivePacketData$InvalidPacketException;->error:I
-Landroid/net/KeepalivePacketData;
 Landroid/net/KeepalivePacketData;-><init>(Landroid/os/Parcel;)V
 Landroid/net/KeepalivePacketData;-><init>(Ljava/net/InetAddress;ILjava/net/InetAddress;I[B)V
 Landroid/net/KeepalivePacketData;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -46986,13 +43792,10 @@
 Landroid/net/LinkAddress;->isIPv6ULA()Z
 Landroid/net/LinkAddress;->scope:I
 Landroid/net/LinkAddress;->scopeForUnicastAddress(Ljava/net/InetAddress;)I
-Landroid/net/LinkProperties$CompareResult;
 Landroid/net/LinkProperties$CompareResult;-><init>()V
 Landroid/net/LinkProperties$CompareResult;-><init>(Ljava/util/Collection;Ljava/util/Collection;)V
 Landroid/net/LinkProperties$CompareResult;->added:Ljava/util/List;
 Landroid/net/LinkProperties$CompareResult;->removed:Ljava/util/List;
-Landroid/net/LinkProperties$ProvisioningChange;
-Landroid/net/LinkProperties$ProvisioningChange;-><init>()V
 Landroid/net/LinkProperties$ProvisioningChange;->valueOf(Ljava/lang/String;)Landroid/net/LinkProperties$ProvisioningChange;
 Landroid/net/LinkProperties;->addValidatedPrivateDnsServer(Ljava/net/InetAddress;)Z
 Landroid/net/LinkProperties;->compareAddresses(Landroid/net/LinkProperties;)Landroid/net/LinkProperties$CompareResult;
@@ -47031,7 +43834,6 @@
 Landroid/net/LinkProperties;->setPrivateDnsServerName(Ljava/lang/String;)V
 Landroid/net/LinkProperties;->setUsePrivateDns(Z)V
 Landroid/net/LinkProperties;->setValidatedPrivateDnsServers(Ljava/util/Collection;)V
-Landroid/net/LinkQualityInfo;
 Landroid/net/LinkQualityInfo;-><init>()V
 Landroid/net/LinkQualityInfo;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/LinkQualityInfo;->getDataSampleDuration()I
@@ -47081,16 +43883,10 @@
 Landroid/net/LocalSocket;->localAddress:Landroid/net/LocalSocketAddress;
 Landroid/net/LocalSocket;->SOCKET_UNKNOWN:I
 Landroid/net/LocalSocket;->sockType:I
-Landroid/net/LocalSocketAddress$Namespace;-><init>(I)V
 Landroid/net/LocalSocketAddress$Namespace;->getId()I
 Landroid/net/LocalSocketAddress$Namespace;->id:I
 Landroid/net/LocalSocketAddress;->name:Ljava/lang/String;
 Landroid/net/LocalSocketAddress;->namespace:Landroid/net/LocalSocketAddress$Namespace;
-Landroid/net/LocalSocketImpl$SocketInputStream;
-Landroid/net/LocalSocketImpl$SocketInputStream;-><init>()V
-Landroid/net/LocalSocketImpl$SocketOutputStream;
-Landroid/net/LocalSocketImpl$SocketOutputStream;-><init>()V
-Landroid/net/LocalSocketImpl;
 Landroid/net/LocalSocketImpl;-><init>(Ljava/io/FileDescriptor;)V
 Landroid/net/LocalSocketImpl;->accept(Landroid/net/LocalSocketImpl;)V
 Landroid/net/LocalSocketImpl;->available()I
@@ -47126,9 +43922,7 @@
 Landroid/net/LocalSocketImpl;->writeba_native([BIILjava/io/FileDescriptor;)V
 Landroid/net/LocalSocketImpl;->writeMonitor:Ljava/lang/Object;
 Landroid/net/LocalSocketImpl;->write_native(ILjava/io/FileDescriptor;)V
-Landroid/net/MacAddress$MacAddressType;
 Landroid/net/MacAddress;-><init>(J)V
-Landroid/net/MacAddress;->addr([[I)[B
 Landroid/net/MacAddress;->BASE_GOOGLE_MAC:Landroid/net/MacAddress;
 Landroid/net/MacAddress;->byteAddrFromLongAddr(J)[B
 Landroid/net/MacAddress;->byteAddrFromStringAddr(Ljava/lang/String;)[B
@@ -47157,25 +43951,19 @@
 Landroid/net/MailTo;->mHeaders:Ljava/util/HashMap;
 Landroid/net/MailTo;->SUBJECT:Ljava/lang/String;
 Landroid/net/MailTo;->TO:Ljava/lang/String;
-Landroid/net/MatchAllNetworkSpecifier;
 Landroid/net/MatchAllNetworkSpecifier;-><init>()V
 Landroid/net/MatchAllNetworkSpecifier;->checkNotMatchAllNetworkSpecifier(Landroid/net/NetworkSpecifier;)V
 Landroid/net/MatchAllNetworkSpecifier;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/MatchAllNetworkSpecifier;->satisfiedBy(Landroid/net/NetworkSpecifier;)Z
-Landroid/net/metrics/ApfProgramEvent$Decoder;
 Landroid/net/metrics/ApfProgramEvent$Decoder;-><init>()V
 Landroid/net/metrics/ApfProgramEvent$Decoder;->constants:Landroid/util/SparseArray;
-Landroid/net/metrics/ApfProgramEvent$Flags;
-Landroid/net/metrics/ApfProgramEvent;
 Landroid/net/metrics/ApfProgramEvent;-><init>(Landroid/os/Parcel;)V
 Landroid/net/metrics/ApfProgramEvent;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/metrics/ApfProgramEvent;->FLAG_HAS_IPV4_ADDRESS:I
 Landroid/net/metrics/ApfProgramEvent;->FLAG_MULTICAST_FILTER_ON:I
 Landroid/net/metrics/ApfProgramEvent;->namesOf(I)Ljava/lang/String;
-Landroid/net/metrics/ApfStats;
 Landroid/net/metrics/ApfStats;-><init>(Landroid/os/Parcel;)V
 Landroid/net/metrics/ApfStats;->CREATOR:Landroid/os/Parcelable$Creator;
-Landroid/net/metrics/ConnectStats;
 Landroid/net/metrics/ConnectStats;-><init>(IJLcom/android/internal/util/TokenBucket;I)V
 Landroid/net/metrics/ConnectStats;->addEvent(IILjava/lang/String;)Z
 Landroid/net/metrics/ConnectStats;->connectBlockingCount:I
@@ -47196,7 +43984,6 @@
 Landroid/net/metrics/ConnectStats;->mMaxLatencyRecords:I
 Landroid/net/metrics/ConnectStats;->netId:I
 Landroid/net/metrics/ConnectStats;->transports:J
-Landroid/net/metrics/DefaultNetworkEvent;
 Landroid/net/metrics/DefaultNetworkEvent;-><init>(J)V
 Landroid/net/metrics/DefaultNetworkEvent;->creationTimeMs:J
 Landroid/net/metrics/DefaultNetworkEvent;->durationMs:J
@@ -47210,17 +43997,14 @@
 Landroid/net/metrics/DefaultNetworkEvent;->transports:I
 Landroid/net/metrics/DefaultNetworkEvent;->updateDuration(J)V
 Landroid/net/metrics/DefaultNetworkEvent;->validatedMs:J
-Landroid/net/metrics/DhcpClientEvent;
 Landroid/net/metrics/DhcpClientEvent;-><init>(Landroid/os/Parcel;)V
 Landroid/net/metrics/DhcpClientEvent;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/metrics/DhcpClientEvent;->durationMs:I
 Landroid/net/metrics/DhcpClientEvent;->INITIAL_BOUND:Ljava/lang/String;
 Landroid/net/metrics/DhcpClientEvent;->msg:Ljava/lang/String;
 Landroid/net/metrics/DhcpClientEvent;->RENEWING_BOUND:Ljava/lang/String;
-Landroid/net/metrics/DhcpErrorEvent$Decoder;
 Landroid/net/metrics/DhcpErrorEvent$Decoder;-><init>()V
 Landroid/net/metrics/DhcpErrorEvent$Decoder;->constants:Landroid/util/SparseArray;
-Landroid/net/metrics/DhcpErrorEvent;
 Landroid/net/metrics/DhcpErrorEvent;-><init>(Landroid/os/Parcel;)V
 Landroid/net/metrics/DhcpErrorEvent;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/metrics/DhcpErrorEvent;->DHCP_ERROR:I
@@ -47230,7 +44014,6 @@
 Landroid/net/metrics/DhcpErrorEvent;->L4_ERROR:I
 Landroid/net/metrics/DhcpErrorEvent;->makeErrorCode(II)I
 Landroid/net/metrics/DhcpErrorEvent;->MISC_ERROR:I
-Landroid/net/metrics/DnsEvent;
 Landroid/net/metrics/DnsEvent;-><init>(IJI)V
 Landroid/net/metrics/DnsEvent;->addResult(BBI)Z
 Landroid/net/metrics/DnsEvent;->eventCount:I
@@ -47242,7 +44025,6 @@
 Landroid/net/metrics/DnsEvent;->SIZE_LIMIT:I
 Landroid/net/metrics/DnsEvent;->successCount:I
 Landroid/net/metrics/DnsEvent;->transports:J
-Landroid/net/metrics/IpConnectivityLog;
 Landroid/net/metrics/IpConnectivityLog;-><init>(Landroid/net/IIpConnectivityMetrics;)V
 Landroid/net/metrics/IpConnectivityLog;->checkLoggerService()Z
 Landroid/net/metrics/IpConnectivityLog;->DBG:Z
@@ -47253,11 +44035,8 @@
 Landroid/net/metrics/IpConnectivityLog;->mService:Landroid/net/IIpConnectivityMetrics;
 Landroid/net/metrics/IpConnectivityLog;->SERVICE_NAME:Ljava/lang/String;
 Landroid/net/metrics/IpConnectivityLog;->TAG:Ljava/lang/String;
-Landroid/net/metrics/IpManagerEvent$Decoder;
 Landroid/net/metrics/IpManagerEvent$Decoder;-><init>()V
 Landroid/net/metrics/IpManagerEvent$Decoder;->constants:Landroid/util/SparseArray;
-Landroid/net/metrics/IpManagerEvent$EventType;
-Landroid/net/metrics/IpManagerEvent;
 Landroid/net/metrics/IpManagerEvent;-><init>(Landroid/os/Parcel;)V
 Landroid/net/metrics/IpManagerEvent;->COMPLETE_LIFECYCLE:I
 Landroid/net/metrics/IpManagerEvent;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -47270,10 +44049,8 @@
 Landroid/net/metrics/IpManagerEvent;->eventType:I
 Landroid/net/metrics/IpManagerEvent;->PROVISIONING_FAIL:I
 Landroid/net/metrics/IpManagerEvent;->PROVISIONING_OK:I
-Landroid/net/metrics/IpReachabilityEvent$Decoder;
 Landroid/net/metrics/IpReachabilityEvent$Decoder;-><init>()V
 Landroid/net/metrics/IpReachabilityEvent$Decoder;->constants:Landroid/util/SparseArray;
-Landroid/net/metrics/IpReachabilityEvent;
 Landroid/net/metrics/IpReachabilityEvent;-><init>(Landroid/os/Parcel;)V
 Landroid/net/metrics/IpReachabilityEvent;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/metrics/IpReachabilityEvent;->eventType:I
@@ -47282,11 +44059,8 @@
 Landroid/net/metrics/IpReachabilityEvent;->PROBE:I
 Landroid/net/metrics/IpReachabilityEvent;->PROVISIONING_LOST:I
 Landroid/net/metrics/IpReachabilityEvent;->PROVISIONING_LOST_ORGANIC:I
-Landroid/net/metrics/NetworkEvent$Decoder;
 Landroid/net/metrics/NetworkEvent$Decoder;-><init>()V
 Landroid/net/metrics/NetworkEvent$Decoder;->constants:Landroid/util/SparseArray;
-Landroid/net/metrics/NetworkEvent$EventType;
-Landroid/net/metrics/NetworkEvent;
 Landroid/net/metrics/NetworkEvent;-><init>(I)V
 Landroid/net/metrics/NetworkEvent;-><init>(IJ)V
 Landroid/net/metrics/NetworkEvent;-><init>(Landroid/os/Parcel;)V
@@ -47304,7 +44078,6 @@
 Landroid/net/metrics/NetworkEvent;->NETWORK_UNLINGER:I
 Landroid/net/metrics/NetworkEvent;->NETWORK_VALIDATED:I
 Landroid/net/metrics/NetworkEvent;->NETWORK_VALIDATION_FAILED:I
-Landroid/net/metrics/NetworkMetrics$Metrics;
 Landroid/net/metrics/NetworkMetrics$Metrics;-><init>()V
 Landroid/net/metrics/NetworkMetrics$Metrics;->average()D
 Landroid/net/metrics/NetworkMetrics$Metrics;->count(D)V
@@ -47313,7 +44086,6 @@
 Landroid/net/metrics/NetworkMetrics$Metrics;->max:D
 Landroid/net/metrics/NetworkMetrics$Metrics;->merge(Landroid/net/metrics/NetworkMetrics$Metrics;)V
 Landroid/net/metrics/NetworkMetrics$Metrics;->sum:D
-Landroid/net/metrics/NetworkMetrics$Summary;
 Landroid/net/metrics/NetworkMetrics$Summary;-><init>(IJ)V
 Landroid/net/metrics/NetworkMetrics$Summary;->connectErrorRate:Landroid/net/metrics/NetworkMetrics$Metrics;
 Landroid/net/metrics/NetworkMetrics$Summary;->connectLatencies:Landroid/net/metrics/NetworkMetrics$Metrics;
@@ -47325,7 +44097,6 @@
 Landroid/net/metrics/NetworkMetrics$Summary;->sentAckTimeDiffenceMs:Landroid/net/metrics/NetworkMetrics$Metrics;
 Landroid/net/metrics/NetworkMetrics$Summary;->tcpLossRate:Landroid/net/metrics/NetworkMetrics$Metrics;
 Landroid/net/metrics/NetworkMetrics$Summary;->transports:J
-Landroid/net/metrics/NetworkMetrics;
 Landroid/net/metrics/NetworkMetrics;-><init>(IJLcom/android/internal/util/TokenBucket;)V
 Landroid/net/metrics/NetworkMetrics;->addConnectResult(IILjava/lang/String;)V
 Landroid/net/metrics/NetworkMetrics;->addDnsResult(III)V
@@ -47339,7 +44110,6 @@
 Landroid/net/metrics/NetworkMetrics;->pendingSummary:Landroid/net/metrics/NetworkMetrics$Summary;
 Landroid/net/metrics/NetworkMetrics;->summary:Landroid/net/metrics/NetworkMetrics$Summary;
 Landroid/net/metrics/NetworkMetrics;->transports:J
-Landroid/net/metrics/RaEvent$Builder;
 Landroid/net/metrics/RaEvent$Builder;->dnsslLifetime:J
 Landroid/net/metrics/RaEvent$Builder;->prefixPreferredLifetime:J
 Landroid/net/metrics/RaEvent$Builder;->prefixValidLifetime:J
@@ -47347,7 +44117,6 @@
 Landroid/net/metrics/RaEvent$Builder;->routeInfoLifetime:J
 Landroid/net/metrics/RaEvent$Builder;->routerLifetime:J
 Landroid/net/metrics/RaEvent$Builder;->updateLifetime(JJ)J
-Landroid/net/metrics/RaEvent;
 Landroid/net/metrics/RaEvent;-><init>(JJJJJJ)V
 Landroid/net/metrics/RaEvent;-><init>(Landroid/os/Parcel;)V
 Landroid/net/metrics/RaEvent;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -47358,11 +44127,8 @@
 Landroid/net/metrics/RaEvent;->rdnssLifetime:J
 Landroid/net/metrics/RaEvent;->routeInfoLifetime:J
 Landroid/net/metrics/RaEvent;->routerLifetime:J
-Landroid/net/metrics/ValidationProbeEvent$Decoder;
 Landroid/net/metrics/ValidationProbeEvent$Decoder;-><init>()V
 Landroid/net/metrics/ValidationProbeEvent$Decoder;->constants:Landroid/util/SparseArray;
-Landroid/net/metrics/ValidationProbeEvent$ReturnCode;
-Landroid/net/metrics/ValidationProbeEvent;
 Landroid/net/metrics/ValidationProbeEvent;-><init>()V
 Landroid/net/metrics/ValidationProbeEvent;-><init>(Landroid/os/Parcel;)V
 Landroid/net/metrics/ValidationProbeEvent;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -47381,7 +44147,6 @@
 Landroid/net/metrics/ValidationProbeEvent;->PROBE_PAC:I
 Landroid/net/metrics/ValidationProbeEvent;->returnCode:I
 Landroid/net/metrics/ValidationProbeEvent;->REVALIDATION:I
-Landroid/net/metrics/WakeupEvent;
 Landroid/net/metrics/WakeupEvent;-><init>()V
 Landroid/net/metrics/WakeupEvent;->dstHwAddr:Landroid/net/MacAddress;
 Landroid/net/metrics/WakeupEvent;->dstIp:Ljava/lang/String;
@@ -47393,7 +44158,6 @@
 Landroid/net/metrics/WakeupEvent;->srcPort:I
 Landroid/net/metrics/WakeupEvent;->timestampMs:J
 Landroid/net/metrics/WakeupEvent;->uid:I
-Landroid/net/metrics/WakeupStats;
 Landroid/net/metrics/WakeupStats;-><init>(Ljava/lang/String;)V
 Landroid/net/metrics/WakeupStats;->applicationWakeups:J
 Landroid/net/metrics/WakeupStats;->countEvent(Landroid/net/metrics/WakeupEvent;)V
@@ -47413,7 +44177,6 @@
 Landroid/net/metrics/WakeupStats;->systemWakeups:J
 Landroid/net/metrics/WakeupStats;->totalWakeups:J
 Landroid/net/metrics/WakeupStats;->updateDuration()V
-Landroid/net/MobileLinkQualityInfo;
 Landroid/net/MobileLinkQualityInfo;->createFromParcelBody(Landroid/os/Parcel;)Landroid/net/MobileLinkQualityInfo;
 Landroid/net/MobileLinkQualityInfo;->getCdmaDbm()I
 Landroid/net/MobileLinkQualityInfo;->getCdmaEcio()I
@@ -47440,8 +44203,6 @@
 Landroid/net/MobileLinkQualityInfo;->mLteSignalStrength:I
 Landroid/net/MobileLinkQualityInfo;->mMobileNetworkType:I
 Landroid/net/MobileLinkQualityInfo;->mRssi:I
-Landroid/net/Network$NetworkBoundSocketFactory;
-Landroid/net/Network$NetworkBoundSocketFactory;-><init>(I)V
 Landroid/net/Network$NetworkBoundSocketFactory;->connectToHost(Ljava/lang/String;ILjava/net/SocketAddress;)Ljava/net/Socket;
 Landroid/net/Network$NetworkBoundSocketFactory;->mNetId:I
 Landroid/net/Network;-><init>(Landroid/net/Network;)V
@@ -47458,7 +44219,6 @@
 Landroid/net/Network;->mUrlConnectionFactory:Lcom/android/okhttp/internalandroidapi/HttpURLConnectionFactory;
 Landroid/net/Network;->setPrivateDnsBypass(Z)V
 Landroid/net/Network;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/net/NetworkAgent;
 Landroid/net/NetworkAgent;-><init>(Landroid/os/Looper;Landroid/content/Context;Ljava/lang/String;Landroid/net/NetworkInfo;Landroid/net/NetworkCapabilities;Landroid/net/LinkProperties;I)V
 Landroid/net/NetworkAgent;-><init>(Landroid/os/Looper;Landroid/content/Context;Ljava/lang/String;Landroid/net/NetworkInfo;Landroid/net/NetworkCapabilities;Landroid/net/LinkProperties;ILandroid/net/NetworkMisc;)V
 Landroid/net/NetworkAgent;->BASE:I
@@ -47512,10 +44272,7 @@
 Landroid/net/NetworkBadging;-><init>()V
 Landroid/net/NetworkBadging;->getBadgedWifiSignalResource(I)I
 Landroid/net/NetworkBadging;->getWifiSignalResource(I)I
-Landroid/net/NetworkCapabilities$NameOf;
 Landroid/net/NetworkCapabilities$NameOf;->nameOf(I)Ljava/lang/String;
-Landroid/net/NetworkCapabilities$NetCapability;
-Landroid/net/NetworkCapabilities$Transport;
 Landroid/net/NetworkCapabilities;->addUnwantedCapability(I)V
 Landroid/net/NetworkCapabilities;->appendStringRepresentationOfBitMaskToStringBuilder(Ljava/lang/StringBuilder;JLandroid/net/NetworkCapabilities$NameOf;Ljava/lang/String;)V
 Landroid/net/NetworkCapabilities;->appliesToUid(I)Z
@@ -47602,7 +44359,6 @@
 Landroid/net/NetworkCapabilities;->TRANSPORT_NAMES:[Ljava/lang/String;
 Landroid/net/NetworkCapabilities;->UNRESTRICTED_CAPABILITIES:J
 Landroid/net/NetworkCapabilities;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/net/NetworkCapabilitiesProto;
 Landroid/net/NetworkCapabilitiesProto;-><init>()V
 Landroid/net/NetworkCapabilitiesProto;->CAN_REPORT_SIGNAL_STRENGTH:J
 Landroid/net/NetworkCapabilitiesProto;->CAPABILITIES:J
@@ -47638,7 +44394,6 @@
 Landroid/net/NetworkCapabilitiesProto;->TRANSPORT_VPN:I
 Landroid/net/NetworkCapabilitiesProto;->TRANSPORT_WIFI:I
 Landroid/net/NetworkCapabilitiesProto;->TRANSPORT_WIFI_AWARE:I
-Landroid/net/NetworkConfig;
 Landroid/net/NetworkConfig;-><init>(Ljava/lang/String;)V
 Landroid/net/NetworkConfig;->dependencyMet:Z
 Landroid/net/NetworkConfig;->isDefault()Z
@@ -47647,12 +44402,9 @@
 Landroid/net/NetworkConfig;->radio:I
 Landroid/net/NetworkConfig;->restoreTime:I
 Landroid/net/NetworkConfig;->type:I
-Landroid/net/NetworkFactory$NetworkRequestInfo;
-Landroid/net/NetworkFactory$NetworkRequestInfo;-><init>(Landroid/net/NetworkRequest;I)V
 Landroid/net/NetworkFactory$NetworkRequestInfo;->request:Landroid/net/NetworkRequest;
 Landroid/net/NetworkFactory$NetworkRequestInfo;->requested:Z
 Landroid/net/NetworkFactory$NetworkRequestInfo;->score:I
-Landroid/net/NetworkFactory;
 Landroid/net/NetworkFactory;->acceptRequest(Landroid/net/NetworkRequest;I)Z
 Landroid/net/NetworkFactory;->addNetworkRequest(Landroid/net/NetworkRequest;I)V
 Landroid/net/NetworkFactory;->BASE:I
@@ -47686,7 +44438,6 @@
 Landroid/net/NetworkFactory;->stopNetwork()V
 Landroid/net/NetworkFactory;->unregister()V
 Landroid/net/NetworkFactory;->VDBG:Z
-Landroid/net/NetworkIdentity;
 Landroid/net/NetworkIdentity;-><init>(IILjava/lang/String;Ljava/lang/String;ZZZ)V
 Landroid/net/NetworkIdentity;->buildNetworkIdentity(Landroid/content/Context;Landroid/net/NetworkState;Z)Landroid/net/NetworkIdentity;
 Landroid/net/NetworkIdentity;->COMBINE_SUBTYPE_ENABLED:Z
@@ -47710,8 +44461,6 @@
 Landroid/net/NetworkIdentity;->SUBTYPE_COMBINED:I
 Landroid/net/NetworkIdentity;->TAG:Ljava/lang/String;
 Landroid/net/NetworkIdentity;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/net/NetworkInfo$DetailedState;-><init>()V
-Landroid/net/NetworkInfo$State;-><init>()V
 Landroid/net/NetworkInfo;->mDetailedState:Landroid/net/NetworkInfo$DetailedState;
 Landroid/net/NetworkInfo;->mExtraInfo:Ljava/lang/String;
 Landroid/net/NetworkInfo;->mIsAvailable:Z
@@ -47730,7 +44479,6 @@
 Landroid/net/NetworkKey;->createFromScanResult(Landroid/net/wifi/ScanResult;)Landroid/net/NetworkKey;
 Landroid/net/NetworkKey;->createFromWifiInfo(Landroid/net/wifi/WifiInfo;)Landroid/net/NetworkKey;
 Landroid/net/NetworkKey;->TAG:Ljava/lang/String;
-Landroid/net/NetworkMisc;
 Landroid/net/NetworkMisc;-><init>()V
 Landroid/net/NetworkMisc;-><init>(Landroid/net/NetworkMisc;)V
 Landroid/net/NetworkMisc;->acceptUnvalidated:Z
@@ -47739,7 +44487,6 @@
 Landroid/net/NetworkMisc;->explicitlySelected:Z
 Landroid/net/NetworkMisc;->provisioningNotificationDisabled:Z
 Landroid/net/NetworkMisc;->subscriberId:Ljava/lang/String;
-Landroid/net/NetworkPolicy;
 Landroid/net/NetworkPolicy;-><init>(Landroid/net/NetworkTemplate;ILjava/lang/String;JJZ)V
 Landroid/net/NetworkPolicy;-><init>(Landroid/net/NetworkTemplate;Landroid/util/RecurrenceRule;JJJJJZZ)V
 Landroid/net/NetworkPolicy;-><init>(Landroid/net/NetworkTemplate;Landroid/util/RecurrenceRule;JJJJZZ)V
@@ -47761,14 +44508,12 @@
 Landroid/net/NetworkPolicy;->VERSION_RAPID:I
 Landroid/net/NetworkPolicy;->VERSION_RULE:I
 Landroid/net/NetworkPolicy;->WARNING_DISABLED:J
-Landroid/net/NetworkPolicyManager$Listener;
 Landroid/net/NetworkPolicyManager$Listener;-><init>()V
 Landroid/net/NetworkPolicyManager$Listener;->onMeteredIfacesChanged([Ljava/lang/String;)V
 Landroid/net/NetworkPolicyManager$Listener;->onRestrictBackgroundChanged(Z)V
 Landroid/net/NetworkPolicyManager$Listener;->onSubscriptionOverride(III)V
 Landroid/net/NetworkPolicyManager$Listener;->onUidPoliciesChanged(II)V
 Landroid/net/NetworkPolicyManager$Listener;->onUidRulesChanged(II)V
-Landroid/net/NetworkPolicyManager;
 Landroid/net/NetworkPolicyManager;-><init>(Landroid/content/Context;Landroid/net/INetworkPolicyManager;)V
 Landroid/net/NetworkPolicyManager;->addUidPolicy(II)V
 Landroid/net/NetworkPolicyManager;->ALLOW_PLATFORM_APP_POLICY:Z
@@ -47812,15 +44557,11 @@
 Landroid/net/NetworkPolicyManager;->setNetworkPolicies([Landroid/net/NetworkPolicy;)V
 Landroid/net/NetworkPolicyManager;->uidPoliciesToString(I)Ljava/lang/String;
 Landroid/net/NetworkPolicyManager;->uidRulesToString(I)Ljava/lang/String;
-Landroid/net/NetworkProto;
 Landroid/net/NetworkProto;-><init>()V
 Landroid/net/NetworkProto;->NET_ID:J
-Landroid/net/NetworkQuotaInfo;
 Landroid/net/NetworkQuotaInfo;-><init>()V
 Landroid/net/NetworkQuotaInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/net/NetworkQuotaInfo;->NO_LIMIT:J
-Landroid/net/NetworkRecommendationProvider$ServiceWrapper;
-Landroid/net/NetworkRecommendationProvider$ServiceWrapper;-><init>(Landroid/content/Context;Ljava/util/concurrent/Executor;)V
 Landroid/net/NetworkRecommendationProvider$ServiceWrapper;->enforceCallingPermission()V
 Landroid/net/NetworkRecommendationProvider$ServiceWrapper;->execute(Ljava/lang/Runnable;)V
 Landroid/net/NetworkRecommendationProvider$ServiceWrapper;->mContext:Landroid/content/Context;
@@ -47836,8 +44577,6 @@
 Landroid/net/NetworkRequest$Builder;->setLinkDownstreamBandwidthKbps(I)Landroid/net/NetworkRequest$Builder;
 Landroid/net/NetworkRequest$Builder;->setLinkUpstreamBandwidthKbps(I)Landroid/net/NetworkRequest$Builder;
 Landroid/net/NetworkRequest$Builder;->setUids(Ljava/util/Set;)Landroid/net/NetworkRequest$Builder;
-Landroid/net/NetworkRequest$Type;
-Landroid/net/NetworkRequest$Type;-><init>()V
 Landroid/net/NetworkRequest$Type;->BACKGROUND_REQUEST:Landroid/net/NetworkRequest$Type;
 Landroid/net/NetworkRequest$Type;->LISTEN:Landroid/net/NetworkRequest$Type;
 Landroid/net/NetworkRequest$Type;->NONE:Landroid/net/NetworkRequest$Type;
@@ -47855,7 +44594,6 @@
 Landroid/net/NetworkRequest;->type:Landroid/net/NetworkRequest$Type;
 Landroid/net/NetworkRequest;->typeToProtoEnum(Landroid/net/NetworkRequest$Type;)I
 Landroid/net/NetworkRequest;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/net/NetworkRequestProto;
 Landroid/net/NetworkRequestProto;-><init>()V
 Landroid/net/NetworkRequestProto;->LEGACY_TYPE:J
 Landroid/net/NetworkRequestProto;->NETWORK_CAPABILITIES:J
@@ -47867,8 +44605,6 @@
 Landroid/net/NetworkRequestProto;->TYPE_REQUEST:I
 Landroid/net/NetworkRequestProto;->TYPE_TRACK_DEFAULT:I
 Landroid/net/NetworkRequestProto;->TYPE_UNKNOWN:I
-Landroid/net/NetworkScoreManager$CacheUpdateFilter;
-Landroid/net/NetworkScoreManager$RecommendationsEnabledSetting;
 Landroid/net/NetworkScoreManager;-><init>(Landroid/content/Context;)V
 Landroid/net/NetworkScoreManager;->CACHE_FILTER_CURRENT_NETWORK:I
 Landroid/net/NetworkScoreManager;->CACHE_FILTER_NONE:I
@@ -47888,7 +44624,6 @@
 Landroid/net/NetworkScoreManager;->requestScores([Landroid/net/NetworkKey;)Z
 Landroid/net/NetworkScoreManager;->unregisterNetworkScoreCache(ILandroid/net/INetworkScoreCache;)V
 Landroid/net/NetworkScoreManager;->USE_OPEN_WIFI_PACKAGE_META_DATA:Ljava/lang/String;
-Landroid/net/NetworkScorerAppData;
 Landroid/net/NetworkScorerAppData;-><init>(ILandroid/content/ComponentName;Ljava/lang/String;Landroid/content/ComponentName;Ljava/lang/String;)V
 Landroid/net/NetworkScorerAppData;-><init>(Landroid/os/Parcel;)V
 Landroid/net/NetworkScorerAppData;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -47905,7 +44640,6 @@
 Landroid/net/NetworkSpecifier;-><init>()V
 Landroid/net/NetworkSpecifier;->assertValidFromUid(I)V
 Landroid/net/NetworkSpecifier;->satisfiedBy(Landroid/net/NetworkSpecifier;)Z
-Landroid/net/NetworkState;
 Landroid/net/NetworkState;-><init>(Landroid/net/NetworkInfo;Landroid/net/LinkProperties;Landroid/net/NetworkCapabilities;Landroid/net/Network;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/net/NetworkState;->EMPTY:Landroid/net/NetworkState;
 Landroid/net/NetworkState;->linkProperties:Landroid/net/LinkProperties;
@@ -47914,7 +44648,6 @@
 Landroid/net/NetworkState;->networkInfo:Landroid/net/NetworkInfo;
 Landroid/net/NetworkState;->SANITY_CHECK_ROAMING:Z
 Landroid/net/NetworkState;->subscriberId:Ljava/lang/String;
-Landroid/net/NetworkStats$Entry;
 Landroid/net/NetworkStats$Entry;-><init>(JJJJJ)V
 Landroid/net/NetworkStats$Entry;-><init>(Ljava/lang/String;IIIIIIJJJJJ)V
 Landroid/net/NetworkStats$Entry;-><init>(Ljava/lang/String;IIIJJJJJ)V
@@ -47925,10 +44658,8 @@
 Landroid/net/NetworkStats$Entry;->metered:I
 Landroid/net/NetworkStats$Entry;->operations:J
 Landroid/net/NetworkStats$Entry;->roaming:I
-Landroid/net/NetworkStats$NonMonotonicObserver;
 Landroid/net/NetworkStats$NonMonotonicObserver;->foundNonMonotonic(Landroid/net/NetworkStats;ILandroid/net/NetworkStats;ILjava/lang/Object;)V
 Landroid/net/NetworkStats$NonMonotonicObserver;->foundNonMonotonic(Landroid/net/NetworkStats;ILjava/lang/Object;)V
-Landroid/net/NetworkStats;
 Landroid/net/NetworkStats;->addIfaceValues(Ljava/lang/String;JJJJ)Landroid/net/NetworkStats;
 Landroid/net/NetworkStats;->addTrafficToApplications(ILjava/lang/String;Ljava/lang/String;Landroid/net/NetworkStats$Entry;Landroid/net/NetworkStats$Entry;)Landroid/net/NetworkStats$Entry;
 Landroid/net/NetworkStats;->addValues(Landroid/net/NetworkStats$Entry;)Landroid/net/NetworkStats;
@@ -47997,23 +44728,19 @@
 Landroid/net/NetworkStats;->tunSubtract(ILandroid/net/NetworkStats;Landroid/net/NetworkStats$Entry;)V
 Landroid/net/NetworkStats;->UID_ALL:I
 Landroid/net/NetworkStats;->withoutUids([I)Landroid/net/NetworkStats;
-Landroid/net/NetworkStatsHistory$DataStreamUtils;
 Landroid/net/NetworkStatsHistory$DataStreamUtils;-><init>()V
 Landroid/net/NetworkStatsHistory$DataStreamUtils;->readFullLongArray(Ljava/io/DataInputStream;)[J
 Landroid/net/NetworkStatsHistory$DataStreamUtils;->readVarLong(Ljava/io/DataInputStream;)J
 Landroid/net/NetworkStatsHistory$DataStreamUtils;->readVarLongArray(Ljava/io/DataInputStream;)[J
 Landroid/net/NetworkStatsHistory$DataStreamUtils;->writeVarLong(Ljava/io/DataOutputStream;J)V
 Landroid/net/NetworkStatsHistory$DataStreamUtils;->writeVarLongArray(Ljava/io/DataOutputStream;[JI)V
-Landroid/net/NetworkStatsHistory$Entry;
 Landroid/net/NetworkStatsHistory$Entry;-><init>()V
 Landroid/net/NetworkStatsHistory$Entry;->activeTime:J
 Landroid/net/NetworkStatsHistory$Entry;->operations:J
 Landroid/net/NetworkStatsHistory$Entry;->UNKNOWN:J
-Landroid/net/NetworkStatsHistory$ParcelUtils;
 Landroid/net/NetworkStatsHistory$ParcelUtils;-><init>()V
 Landroid/net/NetworkStatsHistory$ParcelUtils;->readLongArray(Landroid/os/Parcel;)[J
 Landroid/net/NetworkStatsHistory$ParcelUtils;->writeLongArray(Landroid/os/Parcel;[JI)V
-Landroid/net/NetworkStatsHistory;
 Landroid/net/NetworkStatsHistory;-><init>(JI)V
 Landroid/net/NetworkStatsHistory;-><init>(JII)V
 Landroid/net/NetworkStatsHistory;-><init>(Landroid/net/NetworkStatsHistory;J)V
@@ -48062,7 +44789,6 @@
 Landroid/net/NetworkStatsHistory;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
 Landroid/net/NetworkStatsHistory;->writeToProto(Landroid/util/proto/ProtoOutputStream;J[JI)V
 Landroid/net/NetworkStatsHistory;->writeToStream(Ljava/io/DataOutputStream;)V
-Landroid/net/NetworkTemplate;
 Landroid/net/NetworkTemplate;-><init>(ILjava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
 Landroid/net/NetworkTemplate;-><init>(ILjava/lang/String;[Ljava/lang/String;Ljava/lang/String;III)V
 Landroid/net/NetworkTemplate;-><init>(Landroid/os/Parcel;)V
@@ -48106,7 +44832,6 @@
 Landroid/net/NetworkTemplate;->mSubscriberId:Ljava/lang/String;
 Landroid/net/NetworkTemplate;->sForceAllNetworkTypes:Z
 Landroid/net/NetworkTemplate;->TAG:Ljava/lang/String;
-Landroid/net/NetworkUtils;
 Landroid/net/NetworkUtils;-><init>()V
 Landroid/net/NetworkUtils;->addressTypeMatches(Ljava/net/InetAddress;Ljava/net/InetAddress;)Z
 Landroid/net/NetworkUtils;->bindProcessToNetwork(I)Z
@@ -48129,7 +44854,6 @@
 Landroid/net/NetworkUtils;->setupRaSocket(Ljava/io/FileDescriptor;I)V
 Landroid/net/NetworkUtils;->TAG:Ljava/lang/String;
 Landroid/net/NetworkUtils;->unparcelInetAddress(Landroid/os/Parcel;)Ljava/net/InetAddress;
-Landroid/net/NetworkWatchlistManager;
 Landroid/net/NetworkWatchlistManager;-><init>(Landroid/content/Context;)V
 Landroid/net/NetworkWatchlistManager;-><init>(Landroid/content/Context;Lcom/android/internal/net/INetworkWatchlistManager;)V
 Landroid/net/NetworkWatchlistManager;->getWatchlistConfigHash()[B
@@ -48139,7 +44863,6 @@
 Landroid/net/NetworkWatchlistManager;->reportWatchlistIfNecessary()V
 Landroid/net/NetworkWatchlistManager;->SHARED_MEMORY_TAG:Ljava/lang/String;
 Landroid/net/NetworkWatchlistManager;->TAG:Ljava/lang/String;
-Landroid/net/nsd/DnsSdTxtRecord;
 Landroid/net/nsd/DnsSdTxtRecord;-><init>()V
 Landroid/net/nsd/DnsSdTxtRecord;-><init>(Landroid/net/nsd/DnsSdTxtRecord;)V
 Landroid/net/nsd/DnsSdTxtRecord;-><init>([B)V
@@ -48158,21 +44881,16 @@
 Landroid/net/nsd/DnsSdTxtRecord;->remove(Ljava/lang/String;)I
 Landroid/net/nsd/DnsSdTxtRecord;->set(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/net/nsd/DnsSdTxtRecord;->size()I
-Landroid/net/nsd/INsdManager$Stub$Proxy;
 Landroid/net/nsd/INsdManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/nsd/INsdManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/net/nsd/INsdManager$Stub$Proxy;->getMessenger()Landroid/os/Messenger;
 Landroid/net/nsd/INsdManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/net/nsd/INsdManager$Stub$Proxy;->setEnabled(Z)V
-Landroid/net/nsd/INsdManager$Stub;
 Landroid/net/nsd/INsdManager$Stub;-><init>()V
 Landroid/net/nsd/INsdManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/nsd/INsdManager$Stub;->TRANSACTION_getMessenger:I
 Landroid/net/nsd/INsdManager$Stub;->TRANSACTION_setEnabled:I
-Landroid/net/nsd/INsdManager;
 Landroid/net/nsd/INsdManager;->setEnabled(Z)V
-Landroid/net/nsd/NsdManager$ServiceHandler;
-Landroid/net/nsd/NsdManager$ServiceHandler;-><init>(Landroid/os/Looper;)V
 Landroid/net/nsd/NsdManager;-><init>(Landroid/content/Context;Landroid/net/nsd/INsdManager;)V
 Landroid/net/nsd/NsdManager;->BASE:I
 Landroid/net/nsd/NsdManager;->checkListener(Ljava/lang/Object;)V
@@ -48232,7 +44950,6 @@
 Landroid/net/nsd/NsdServiceInfo;->mTxtRecord:Landroid/util/ArrayMap;
 Landroid/net/nsd/NsdServiceInfo;->setTxtRecords(Ljava/lang/String;)V
 Landroid/net/nsd/NsdServiceInfo;->TAG:Ljava/lang/String;
-Landroid/net/PacProxySelector;
 Landroid/net/PacProxySelector;-><init>()V
 Landroid/net/PacProxySelector;->mDefaultList:Ljava/util/List;
 Landroid/net/PacProxySelector;->mProxyService:Lcom/android/net/IProxyService;
@@ -48330,7 +45047,6 @@
 Landroid/net/ScoredNetwork;->bundleEquals(Landroid/os/Bundle;Landroid/os/Bundle;)Z
 Landroid/net/ScoredNetwork;->calculateRankingScore(I)I
 Landroid/net/ScoredNetwork;->hasRankingScore()Z
-Landroid/net/sip/ISipService$Stub$Proxy;
 Landroid/net/sip/ISipService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/sip/ISipService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/net/sip/ISipService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -48344,7 +45060,6 @@
 Landroid/net/sip/ISipService$Stub;->TRANSACTION_open3:I
 Landroid/net/sip/ISipService$Stub;->TRANSACTION_open:I
 Landroid/net/sip/ISipService$Stub;->TRANSACTION_setRegistrationListener:I
-Landroid/net/sip/ISipSession$Stub$Proxy;
 Landroid/net/sip/ISipSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/sip/ISipSession$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/net/sip/ISipSession$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -48362,7 +45077,6 @@
 Landroid/net/sip/ISipSession$Stub;->TRANSACTION_register:I
 Landroid/net/sip/ISipSession$Stub;->TRANSACTION_setListener:I
 Landroid/net/sip/ISipSession$Stub;->TRANSACTION_unregister:I
-Landroid/net/sip/ISipSessionListener$Stub$Proxy;
 Landroid/net/sip/ISipSessionListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/sip/ISipSessionListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/net/sip/ISipSessionListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -48380,7 +45094,6 @@
 Landroid/net/sip/ISipSessionListener$Stub;->TRANSACTION_onRegistrationTimeout:I
 Landroid/net/sip/ISipSessionListener$Stub;->TRANSACTION_onRinging:I
 Landroid/net/sip/ISipSessionListener$Stub;->TRANSACTION_onRingingBack:I
-Landroid/net/sip/SimpleSessionDescription$Fields;
 Landroid/net/sip/SimpleSessionDescription$Fields;-><init>(Ljava/lang/String;)V
 Landroid/net/sip/SimpleSessionDescription$Fields;->cut(Ljava/lang/String;C)[Ljava/lang/String;
 Landroid/net/sip/SimpleSessionDescription$Fields;->find(Ljava/lang/String;C)I
@@ -48401,7 +45114,6 @@
 Landroid/net/sip/SimpleSessionDescription$Fields;->setBandwidth(Ljava/lang/String;I)V
 Landroid/net/sip/SimpleSessionDescription$Fields;->setEncryption(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/net/sip/SimpleSessionDescription$Fields;->write(Ljava/lang/StringBuilder;)V
-Landroid/net/sip/SimpleSessionDescription$Media;
 Landroid/net/sip/SimpleSessionDescription$Media;-><init>(Ljava/lang/String;IILjava/lang/String;)V
 Landroid/net/sip/SimpleSessionDescription$Media;->getFmtp(I)Ljava/lang/String;
 Landroid/net/sip/SimpleSessionDescription$Media;->getFmtp(Ljava/lang/String;)Ljava/lang/String;
@@ -48422,7 +45134,6 @@
 Landroid/net/sip/SimpleSessionDescription$Media;->setFormat(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/net/sip/SimpleSessionDescription$Media;->setRtpPayload(ILjava/lang/String;Ljava/lang/String;)V
 Landroid/net/sip/SimpleSessionDescription$Media;->write(Ljava/lang/StringBuilder;)V
-Landroid/net/sip/SimpleSessionDescription;
 Landroid/net/sip/SimpleSessionDescription;-><init>(JLjava/lang/String;)V
 Landroid/net/sip/SimpleSessionDescription;-><init>(Ljava/lang/String;)V
 Landroid/net/sip/SimpleSessionDescription;->encode()Ljava/lang/String;
@@ -48488,7 +45199,6 @@
 Landroid/net/sip/SipAudioCall;->transferToNewSession()V
 Landroid/net/sip/SipAudioCall;->TRANSFER_TIMEOUT:I
 Landroid/net/sip/SipErrorCode;-><init>()V
-Landroid/net/sip/SipManager$ListenerRelay;
 Landroid/net/sip/SipManager$ListenerRelay;-><init>(Landroid/net/sip/SipRegistrationListener;Ljava/lang/String;)V
 Landroid/net/sip/SipManager$ListenerRelay;->getUri(Landroid/net/sip/ISipSession;)Ljava/lang/String;
 Landroid/net/sip/SipManager$ListenerRelay;->mListener:Landroid/net/sip/SipRegistrationListener;
@@ -48545,11 +45255,8 @@
 Landroid/net/sip/SipSession;->mListener:Landroid/net/sip/SipSession$Listener;
 Landroid/net/sip/SipSession;->mSession:Landroid/net/sip/ISipSession;
 Landroid/net/sip/SipSession;->TAG:Ljava/lang/String;
-Landroid/net/sip/SipSessionAdapter;
 Landroid/net/sip/SipSessionAdapter;-><init>()V
-Landroid/net/SntpClient$InvalidServerReplyException;
 Landroid/net/SntpClient$InvalidServerReplyException;-><init>(Ljava/lang/String;)V
-Landroid/net/SntpClient;
 Landroid/net/SntpClient;->checkValidServerReply(BBIJ)V
 Landroid/net/SntpClient;->DBG:Z
 Landroid/net/SntpClient;->mNtpTime:J
@@ -48575,17 +45282,14 @@
 Landroid/net/SntpClient;->TAG:Ljava/lang/String;
 Landroid/net/SntpClient;->TRANSMIT_TIME_OFFSET:I
 Landroid/net/SntpClient;->writeTimeStamp([BIJ)V
-Landroid/net/SSLCertificateSocketFactory;->toLengthPrefixedList([[[B)[B
 Landroid/net/SSLSessionCache;-><init>(Ljava/lang/Object;)V
 Landroid/net/SSLSessionCache;->install(Landroid/net/SSLSessionCache;Ljavax/net/ssl/SSLContext;)V
 Landroid/net/SSLSessionCache;->TAG:Ljava/lang/String;
-Landroid/net/StaticIpConfiguration;
 Landroid/net/StaticIpConfiguration;-><init>(Landroid/net/StaticIpConfiguration;)V
 Landroid/net/StaticIpConfiguration;->clear()V
 Landroid/net/StaticIpConfiguration;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/StaticIpConfiguration;->readFromParcel(Landroid/net/StaticIpConfiguration;Landroid/os/Parcel;)V
 Landroid/net/StaticIpConfiguration;->toLinkProperties(Ljava/lang/String;)Landroid/net/LinkProperties;
-Landroid/net/StringNetworkSpecifier;
 Landroid/net/StringNetworkSpecifier;-><init>(Ljava/lang/String;)V
 Landroid/net/StringNetworkSpecifier;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/StringNetworkSpecifier;->satisfiedBy(Landroid/net/NetworkSpecifier;)Z
@@ -48624,7 +45328,6 @@
 Landroid/net/TrafficStats;->TYPE_TX_PACKETS:I
 Landroid/net/TrafficStats;->UID_REMOVED:I
 Landroid/net/TrafficStats;->UID_TETHERING:I
-Landroid/net/UidRange;
 Landroid/net/UidRange;-><init>(II)V
 Landroid/net/UidRange;->contains(I)Z
 Landroid/net/UidRange;->containsRange(Landroid/net/UidRange;)Z
@@ -48634,7 +45337,6 @@
 Landroid/net/UidRange;->getStartUser()I
 Landroid/net/UidRange;->start:I
 Landroid/net/UidRange;->stop:I
-Landroid/net/Uri$AbstractHierarchicalUri;
 Landroid/net/Uri$AbstractHierarchicalUri;-><init>()V
 Landroid/net/Uri$AbstractHierarchicalUri;->getUserInfoPart()Landroid/net/Uri$Part;
 Landroid/net/Uri$AbstractHierarchicalUri;->host:Ljava/lang/String;
@@ -48643,12 +45345,10 @@
 Landroid/net/Uri$AbstractHierarchicalUri;->parseUserInfo()Ljava/lang/String;
 Landroid/net/Uri$AbstractHierarchicalUri;->port:I
 Landroid/net/Uri$AbstractHierarchicalUri;->userInfo:Landroid/net/Uri$Part;
-Landroid/net/Uri$AbstractPart$Representation;
 Landroid/net/Uri$AbstractPart$Representation;-><init>()V
 Landroid/net/Uri$AbstractPart$Representation;->BOTH:I
 Landroid/net/Uri$AbstractPart$Representation;->DECODED:I
 Landroid/net/Uri$AbstractPart$Representation;->ENCODED:I
-Landroid/net/Uri$AbstractPart;
 Landroid/net/Uri$AbstractPart;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/net/Uri$AbstractPart;->decoded:Ljava/lang/String;
 Landroid/net/Uri$AbstractPart;->encoded:Ljava/lang/String;
@@ -48667,7 +45367,6 @@
 Landroid/net/Uri$Builder;->query(Landroid/net/Uri$Part;)Landroid/net/Uri$Builder;
 Landroid/net/Uri$Builder;->query:Landroid/net/Uri$Part;
 Landroid/net/Uri$Builder;->scheme:Ljava/lang/String;
-Landroid/net/Uri$HierarchicalUri;
 Landroid/net/Uri$HierarchicalUri;-><init>(Ljava/lang/String;Landroid/net/Uri$Part;Landroid/net/Uri$PathPart;Landroid/net/Uri$Part;Landroid/net/Uri$Part;)V
 Landroid/net/Uri$HierarchicalUri;->appendSspTo(Ljava/lang/StringBuilder;)V
 Landroid/net/Uri$HierarchicalUri;->authority:Landroid/net/Uri$Part;
@@ -48682,7 +45381,6 @@
 Landroid/net/Uri$HierarchicalUri;->ssp:Landroid/net/Uri$Part;
 Landroid/net/Uri$HierarchicalUri;->TYPE_ID:I
 Landroid/net/Uri$HierarchicalUri;->uriString:Ljava/lang/String;
-Landroid/net/Uri$OpaqueUri;
 Landroid/net/Uri$OpaqueUri;-><init>(Ljava/lang/String;Landroid/net/Uri$Part;Landroid/net/Uri$Part;)V
 Landroid/net/Uri$OpaqueUri;->cachedString:Ljava/lang/String;
 Landroid/net/Uri$OpaqueUri;->fragment:Landroid/net/Uri$Part;
@@ -48690,10 +45388,8 @@
 Landroid/net/Uri$OpaqueUri;->scheme:Ljava/lang/String;
 Landroid/net/Uri$OpaqueUri;->ssp:Landroid/net/Uri$Part;
 Landroid/net/Uri$OpaqueUri;->TYPE_ID:I
-Landroid/net/Uri$Part$EmptyPart;
 Landroid/net/Uri$Part$EmptyPart;-><init>(Ljava/lang/String;)V
 Landroid/net/Uri$Part$EmptyPart;->isEmpty()Z
-Landroid/net/Uri$Part;
 Landroid/net/Uri$Part;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/net/Uri$Part;->EMPTY:Landroid/net/Uri$Part;
 Landroid/net/Uri$Part;->from(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Part;
@@ -48704,7 +45400,6 @@
 Landroid/net/Uri$Part;->nonNull(Landroid/net/Uri$Part;)Landroid/net/Uri$Part;
 Landroid/net/Uri$Part;->NULL:Landroid/net/Uri$Part;
 Landroid/net/Uri$Part;->readFrom(Landroid/os/Parcel;)Landroid/net/Uri$Part;
-Landroid/net/Uri$PathPart;
 Landroid/net/Uri$PathPart;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/net/Uri$PathPart;->appendDecodedSegment(Landroid/net/Uri$PathPart;Ljava/lang/String;)Landroid/net/Uri$PathPart;
 Landroid/net/Uri$PathPart;->appendEncodedSegment(Landroid/net/Uri$PathPart;Ljava/lang/String;)Landroid/net/Uri$PathPart;
@@ -48718,18 +45413,15 @@
 Landroid/net/Uri$PathPart;->NULL:Landroid/net/Uri$PathPart;
 Landroid/net/Uri$PathPart;->pathSegments:Landroid/net/Uri$PathSegments;
 Landroid/net/Uri$PathPart;->readFrom(Landroid/os/Parcel;)Landroid/net/Uri$PathPart;
-Landroid/net/Uri$PathSegments;
 Landroid/net/Uri$PathSegments;-><init>([Ljava/lang/String;I)V
 Landroid/net/Uri$PathSegments;->EMPTY:Landroid/net/Uri$PathSegments;
 Landroid/net/Uri$PathSegments;->segments:[Ljava/lang/String;
 Landroid/net/Uri$PathSegments;->size:I
-Landroid/net/Uri$PathSegmentsBuilder;
 Landroid/net/Uri$PathSegmentsBuilder;-><init>()V
 Landroid/net/Uri$PathSegmentsBuilder;->add(Ljava/lang/String;)V
 Landroid/net/Uri$PathSegmentsBuilder;->build()Landroid/net/Uri$PathSegments;
 Landroid/net/Uri$PathSegmentsBuilder;->segments:[Ljava/lang/String;
 Landroid/net/Uri$PathSegmentsBuilder;->size:I
-Landroid/net/Uri$StringUri;
 Landroid/net/Uri$StringUri;-><init>(Ljava/lang/String;)V
 Landroid/net/Uri$StringUri;->authority:Landroid/net/Uri$Part;
 Landroid/net/Uri$StringUri;->cachedFsi:I
@@ -48792,8 +45484,6 @@
 Landroid/net/UrlQuerySanitizer;->sURLLegal:Landroid/net/UrlQuerySanitizer$ValueSanitizer;
 Landroid/net/VpnService$Builder;->mConfig:Lcom/android/internal/net/VpnConfig;
 Landroid/net/VpnService$Builder;->verifyApp(Ljava/lang/String;)V
-Landroid/net/VpnService$Callback;
-Landroid/net/VpnService$Callback;-><init>()V
 Landroid/net/VpnService;->addAddress(Ljava/net/InetAddress;I)Z
 Landroid/net/VpnService;->check(Ljava/net/InetAddress;I)V
 Landroid/net/VpnService;->getService()Landroid/net/IConnectivityManager;
@@ -48808,7 +45498,6 @@
 Landroid/net/WebAddress;->setAuthInfo(Ljava/lang/String;)V
 Landroid/net/WebAddress;->setPort(I)V
 Landroid/net/WebAddress;->setScheme(Ljava/lang/String;)V
-Landroid/net/wifi/AnqpInformationElement;
 Landroid/net/wifi/AnqpInformationElement;-><init>(II[B)V
 Landroid/net/wifi/AnqpInformationElement;->ANQP_3GPP_NETWORK:I
 Landroid/net/wifi/AnqpInformationElement;->ANQP_CAPABILITY_LIST:I
@@ -48850,7 +45539,6 @@
 Landroid/net/wifi/aware/Characteristics;->KEY_MAX_SERVICE_NAME_LENGTH:Ljava/lang/String;
 Landroid/net/wifi/aware/Characteristics;->KEY_MAX_SERVICE_SPECIFIC_INFO_LENGTH:Ljava/lang/String;
 Landroid/net/wifi/aware/Characteristics;->mCharacteristics:Landroid/os/Bundle;
-Landroid/net/wifi/aware/ConfigRequest$Builder;
 Landroid/net/wifi/aware/ConfigRequest$Builder;-><init>()V
 Landroid/net/wifi/aware/ConfigRequest$Builder;->build()Landroid/net/wifi/aware/ConfigRequest;
 Landroid/net/wifi/aware/ConfigRequest$Builder;->mClusterHigh:I
@@ -48863,7 +45551,6 @@
 Landroid/net/wifi/aware/ConfigRequest$Builder;->setDiscoveryWindowInterval(II)Landroid/net/wifi/aware/ConfigRequest$Builder;
 Landroid/net/wifi/aware/ConfigRequest$Builder;->setMasterPreference(I)Landroid/net/wifi/aware/ConfigRequest$Builder;
 Landroid/net/wifi/aware/ConfigRequest$Builder;->setSupport5gBand(Z)Landroid/net/wifi/aware/ConfigRequest$Builder;
-Landroid/net/wifi/aware/ConfigRequest;
 Landroid/net/wifi/aware/ConfigRequest;-><init>(ZIII[I)V
 Landroid/net/wifi/aware/ConfigRequest;->CLUSTER_ID_MAX:I
 Landroid/net/wifi/aware/ConfigRequest;->CLUSTER_ID_MIN:I
@@ -48893,7 +45580,6 @@
 Landroid/net/wifi/aware/DiscoverySession;->setTerminated()V
 Landroid/net/wifi/aware/DiscoverySession;->TAG:Ljava/lang/String;
 Landroid/net/wifi/aware/DiscoverySession;->VDBG:Z
-Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub$Proxy;
 Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -48906,7 +45592,6 @@
 Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub$Proxy;->onSessionConfigSuccess()V
 Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub$Proxy;->onSessionStarted(I)V
 Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub$Proxy;->onSessionTerminated(I)V
-Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub;
 Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub;-><init>()V
 Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback;
 Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -48919,7 +45604,6 @@
 Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub;->TRANSACTION_onSessionConfigSuccess:I
 Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub;->TRANSACTION_onSessionStarted:I
 Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback$Stub;->TRANSACTION_onSessionTerminated:I
-Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback;
 Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback;->onMatch(I[B[B)V
 Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback;->onMatchWithDistance(I[B[BI)V
 Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback;->onMessageReceived(I[B)V
@@ -48929,37 +45613,30 @@
 Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback;->onSessionConfigSuccess()V
 Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback;->onSessionStarted(I)V
 Landroid/net/wifi/aware/IWifiAwareDiscoverySessionCallback;->onSessionTerminated(I)V
-Landroid/net/wifi/aware/IWifiAwareEventCallback$Stub$Proxy;
 Landroid/net/wifi/aware/IWifiAwareEventCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/wifi/aware/IWifiAwareEventCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/net/wifi/aware/IWifiAwareEventCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/net/wifi/aware/IWifiAwareEventCallback$Stub$Proxy;->onConnectFail(I)V
 Landroid/net/wifi/aware/IWifiAwareEventCallback$Stub$Proxy;->onConnectSuccess(I)V
 Landroid/net/wifi/aware/IWifiAwareEventCallback$Stub$Proxy;->onIdentityChanged([B)V
-Landroid/net/wifi/aware/IWifiAwareEventCallback$Stub;
 Landroid/net/wifi/aware/IWifiAwareEventCallback$Stub;-><init>()V
 Landroid/net/wifi/aware/IWifiAwareEventCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/aware/IWifiAwareEventCallback;
 Landroid/net/wifi/aware/IWifiAwareEventCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/wifi/aware/IWifiAwareEventCallback$Stub;->TRANSACTION_onConnectFail:I
 Landroid/net/wifi/aware/IWifiAwareEventCallback$Stub;->TRANSACTION_onConnectSuccess:I
 Landroid/net/wifi/aware/IWifiAwareEventCallback$Stub;->TRANSACTION_onIdentityChanged:I
-Landroid/net/wifi/aware/IWifiAwareEventCallback;
 Landroid/net/wifi/aware/IWifiAwareEventCallback;->onConnectFail(I)V
 Landroid/net/wifi/aware/IWifiAwareEventCallback;->onConnectSuccess(I)V
 Landroid/net/wifi/aware/IWifiAwareEventCallback;->onIdentityChanged([B)V
-Landroid/net/wifi/aware/IWifiAwareMacAddressProvider$Stub$Proxy;
 Landroid/net/wifi/aware/IWifiAwareMacAddressProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/wifi/aware/IWifiAwareMacAddressProvider$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/net/wifi/aware/IWifiAwareMacAddressProvider$Stub$Proxy;->macAddress(Ljava/util/Map;)V
 Landroid/net/wifi/aware/IWifiAwareMacAddressProvider$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/net/wifi/aware/IWifiAwareMacAddressProvider$Stub;
 Landroid/net/wifi/aware/IWifiAwareMacAddressProvider$Stub;-><init>()V
 Landroid/net/wifi/aware/IWifiAwareMacAddressProvider$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/aware/IWifiAwareMacAddressProvider;
 Landroid/net/wifi/aware/IWifiAwareMacAddressProvider$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/wifi/aware/IWifiAwareMacAddressProvider$Stub;->TRANSACTION_macAddress:I
-Landroid/net/wifi/aware/IWifiAwareMacAddressProvider;
 Landroid/net/wifi/aware/IWifiAwareMacAddressProvider;->macAddress(Ljava/util/Map;)V
-Landroid/net/wifi/aware/IWifiAwareManager$Stub$Proxy;
 Landroid/net/wifi/aware/IWifiAwareManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/wifi/aware/IWifiAwareManager$Stub$Proxy;->connect(Landroid/os/IBinder;Ljava/lang/String;Landroid/net/wifi/aware/IWifiAwareEventCallback;Landroid/net/wifi/aware/ConfigRequest;Z)V
 Landroid/net/wifi/aware/IWifiAwareManager$Stub$Proxy;->disconnect(ILandroid/os/IBinder;)V
@@ -48974,7 +45651,6 @@
 Landroid/net/wifi/aware/IWifiAwareManager$Stub$Proxy;->terminateSession(II)V
 Landroid/net/wifi/aware/IWifiAwareManager$Stub$Proxy;->updatePublish(IILandroid/net/wifi/aware/PublishConfig;)V
 Landroid/net/wifi/aware/IWifiAwareManager$Stub$Proxy;->updateSubscribe(IILandroid/net/wifi/aware/SubscribeConfig;)V
-Landroid/net/wifi/aware/IWifiAwareManager$Stub;
 Landroid/net/wifi/aware/IWifiAwareManager$Stub;-><init>()V
 Landroid/net/wifi/aware/IWifiAwareManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/aware/IWifiAwareManager;
 Landroid/net/wifi/aware/IWifiAwareManager$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -48989,7 +45665,6 @@
 Landroid/net/wifi/aware/IWifiAwareManager$Stub;->TRANSACTION_terminateSession:I
 Landroid/net/wifi/aware/IWifiAwareManager$Stub;->TRANSACTION_updatePublish:I
 Landroid/net/wifi/aware/IWifiAwareManager$Stub;->TRANSACTION_updateSubscribe:I
-Landroid/net/wifi/aware/IWifiAwareManager;
 Landroid/net/wifi/aware/IWifiAwareManager;->connect(Landroid/os/IBinder;Ljava/lang/String;Landroid/net/wifi/aware/IWifiAwareEventCallback;Landroid/net/wifi/aware/ConfigRequest;Z)V
 Landroid/net/wifi/aware/IWifiAwareManager;->disconnect(ILandroid/os/IBinder;)V
 Landroid/net/wifi/aware/IWifiAwareManager;->getCharacteristics()Landroid/net/wifi/aware/Characteristics;
@@ -49010,7 +45685,6 @@
 Landroid/net/wifi/aware/PublishConfig$Builder;->mServiceName:[B
 Landroid/net/wifi/aware/PublishConfig$Builder;->mServiceSpecificInfo:[B
 Landroid/net/wifi/aware/PublishConfig$Builder;->mTtlSec:I
-Landroid/net/wifi/aware/PublishConfig$PublishTypes;
 Landroid/net/wifi/aware/PublishConfig;-><init>([B[B[BIIZZ)V
 Landroid/net/wifi/aware/PublishConfig;->assertValid(Landroid/net/wifi/aware/Characteristics;Z)V
 Landroid/net/wifi/aware/PublishConfig;->mEnableRanging:Z
@@ -49032,7 +45706,6 @@
 Landroid/net/wifi/aware/SubscribeConfig$Builder;->mServiceSpecificInfo:[B
 Landroid/net/wifi/aware/SubscribeConfig$Builder;->mSubscribeType:I
 Landroid/net/wifi/aware/SubscribeConfig$Builder;->mTtlSec:I
-Landroid/net/wifi/aware/SubscribeConfig$SubscribeTypes;
 Landroid/net/wifi/aware/SubscribeConfig;-><init>([B[B[BIIZZIZI)V
 Landroid/net/wifi/aware/SubscribeConfig;->assertValid(Landroid/net/wifi/aware/Characteristics;Z)V
 Landroid/net/wifi/aware/SubscribeConfig;->mEnableTerminateNotification:Z
@@ -49047,7 +45720,6 @@
 Landroid/net/wifi/aware/SubscribeConfig;->mTtlSec:I
 Landroid/net/wifi/aware/SubscribeDiscoverySession;-><init>(Landroid/net/wifi/aware/WifiAwareManager;II)V
 Landroid/net/wifi/aware/SubscribeDiscoverySession;->TAG:Ljava/lang/String;
-Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;
 Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;-><init>(II)V
 Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;->addHeader(II)V
 Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;->allocate(I)Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;
@@ -49068,7 +45740,6 @@
 Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;->putString(ILjava/lang/String;)Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;
 Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;->putZeroLengthElement(I)Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;
 Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;->wrap([B)Landroid/net/wifi/aware/TlvBufferUtils$TlvConstructor;
-Landroid/net/wifi/aware/TlvBufferUtils$TlvElement;
 Landroid/net/wifi/aware/TlvBufferUtils$TlvElement;-><init>(II[BI)V
 Landroid/net/wifi/aware/TlvBufferUtils$TlvElement;->getByte()B
 Landroid/net/wifi/aware/TlvBufferUtils$TlvElement;->getInt()I
@@ -49078,21 +45749,17 @@
 Landroid/net/wifi/aware/TlvBufferUtils$TlvElement;->offset:I
 Landroid/net/wifi/aware/TlvBufferUtils$TlvElement;->refArray:[B
 Landroid/net/wifi/aware/TlvBufferUtils$TlvElement;->type:I
-Landroid/net/wifi/aware/TlvBufferUtils$TlvIterable;
 Landroid/net/wifi/aware/TlvBufferUtils$TlvIterable;-><init>(II[B)V
 Landroid/net/wifi/aware/TlvBufferUtils$TlvIterable;->mArray:[B
 Landroid/net/wifi/aware/TlvBufferUtils$TlvIterable;->mArrayLength:I
 Landroid/net/wifi/aware/TlvBufferUtils$TlvIterable;->mLengthSize:I
 Landroid/net/wifi/aware/TlvBufferUtils$TlvIterable;->mTypeSize:I
 Landroid/net/wifi/aware/TlvBufferUtils$TlvIterable;->toList()Ljava/util/List;
-Landroid/net/wifi/aware/TlvBufferUtils;
 Landroid/net/wifi/aware/TlvBufferUtils;-><init>()V
 Landroid/net/wifi/aware/TlvBufferUtils;->isValid([BII)Z
-Landroid/net/wifi/aware/WifiAwareAgentNetworkSpecifier$ByteArrayWrapper;
 Landroid/net/wifi/aware/WifiAwareAgentNetworkSpecifier$ByteArrayWrapper;-><init>([B)V
 Landroid/net/wifi/aware/WifiAwareAgentNetworkSpecifier$ByteArrayWrapper;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/wifi/aware/WifiAwareAgentNetworkSpecifier$ByteArrayWrapper;->mData:[B
-Landroid/net/wifi/aware/WifiAwareAgentNetworkSpecifier;
 Landroid/net/wifi/aware/WifiAwareAgentNetworkSpecifier;-><init>()V
 Landroid/net/wifi/aware/WifiAwareAgentNetworkSpecifier;-><init>(Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;)V
 Landroid/net/wifi/aware/WifiAwareAgentNetworkSpecifier;-><init>([Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;)V
@@ -49107,8 +45774,6 @@
 Landroid/net/wifi/aware/WifiAwareAgentNetworkSpecifier;->satisfiesAwareNetworkSpecifier(Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;)Z
 Landroid/net/wifi/aware/WifiAwareAgentNetworkSpecifier;->TAG:Ljava/lang/String;
 Landroid/net/wifi/aware/WifiAwareAgentNetworkSpecifier;->VDBG:Z
-Landroid/net/wifi/aware/WifiAwareManager$DataPathRole;
-Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;
 Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;-><init>(Landroid/net/wifi/aware/WifiAwareManager;Landroid/os/Looper;ZLandroid/net/wifi/aware/DiscoverySessionCallback;I)V
 Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->CALLBACK_MATCH:I
 Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->CALLBACK_MATCH_WITH_DISTANCE:I
@@ -49139,7 +45804,6 @@
 Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->onSessionConfigSuccess()V
 Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->onSessionStarted(I)V
 Landroid/net/wifi/aware/WifiAwareManager$WifiAwareDiscoverySessionCallbackProxy;->onSessionTerminated(I)V
-Landroid/net/wifi/aware/WifiAwareManager$WifiAwareEventCallbackProxy;
 Landroid/net/wifi/aware/WifiAwareManager$WifiAwareEventCallbackProxy;-><init>(Landroid/net/wifi/aware/WifiAwareManager;Landroid/os/Looper;Landroid/os/Binder;Landroid/net/wifi/aware/AttachCallback;Landroid/net/wifi/aware/IdentityChangedListener;)V
 Landroid/net/wifi/aware/WifiAwareManager$WifiAwareEventCallbackProxy;->CALLBACK_CONNECT_FAIL:I
 Landroid/net/wifi/aware/WifiAwareManager$WifiAwareEventCallbackProxy;->CALLBACK_CONNECT_SUCCESS:I
@@ -49168,7 +45832,6 @@
 Landroid/net/wifi/aware/WifiAwareManager;->updatePublish(IILandroid/net/wifi/aware/PublishConfig;)V
 Landroid/net/wifi/aware/WifiAwareManager;->updateSubscribe(IILandroid/net/wifi/aware/SubscribeConfig;)V
 Landroid/net/wifi/aware/WifiAwareManager;->VDBG:Z
-Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;
 Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;-><init>(IIIII[B[BLjava/lang/String;I)V
 Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;->assertValidFromUid(I)V
 Landroid/net/wifi/aware/WifiAwareNetworkSpecifier;->clientId:I
@@ -49198,7 +45861,6 @@
 Landroid/net/wifi/aware/WifiAwareSession;->mTerminated:Z
 Landroid/net/wifi/aware/WifiAwareSession;->TAG:Ljava/lang/String;
 Landroid/net/wifi/aware/WifiAwareSession;->VDBG:Z
-Landroid/net/wifi/aware/WifiAwareUtils;
 Landroid/net/wifi/aware/WifiAwareUtils;-><init>()V
 Landroid/net/wifi/aware/WifiAwareUtils;->isLegacyVersion(Landroid/content/Context;I)Z
 Landroid/net/wifi/aware/WifiAwareUtils;->validatePassphrase(Ljava/lang/String;)Z
@@ -49206,7 +45868,6 @@
 Landroid/net/wifi/aware/WifiAwareUtils;->validateServiceName([B)V
 Landroid/net/wifi/BatchedScanResult;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/wifi/BatchedScanResult;->TAG:Ljava/lang/String;
-Landroid/net/wifi/EAPConstants;
 Landroid/net/wifi/EAPConstants;-><init>()V
 Landroid/net/wifi/EAPConstants;->EAP_3Com:I
 Landroid/net/wifi/EAPConstants;->EAP_ActiontecWireless:I
@@ -49238,12 +45899,10 @@
 Landroid/net/wifi/EAPConstants;->EAP_TLS:I
 Landroid/net/wifi/EAPConstants;->EAP_TTLS:I
 Landroid/net/wifi/EAPConstants;->EAP_ZLXEAP:I
-Landroid/net/wifi/hotspot2/ConfigParser$MimeHeader;
 Landroid/net/wifi/hotspot2/ConfigParser$MimeHeader;-><init>()V
 Landroid/net/wifi/hotspot2/ConfigParser$MimeHeader;->boundary:Ljava/lang/String;
 Landroid/net/wifi/hotspot2/ConfigParser$MimeHeader;->contentType:Ljava/lang/String;
 Landroid/net/wifi/hotspot2/ConfigParser$MimeHeader;->encodingType:Ljava/lang/String;
-Landroid/net/wifi/hotspot2/ConfigParser$MimePart;
 Landroid/net/wifi/hotspot2/ConfigParser$MimePart;-><init>()V
 Landroid/net/wifi/hotspot2/ConfigParser$MimePart;->data:[B
 Landroid/net/wifi/hotspot2/ConfigParser$MimePart;->isLast:Z
@@ -49267,36 +45926,29 @@
 Landroid/net/wifi/hotspot2/ConfigParser;->TYPE_PASSPOINT_PROFILE:Ljava/lang/String;
 Landroid/net/wifi/hotspot2/ConfigParser;->TYPE_PKCS12:Ljava/lang/String;
 Landroid/net/wifi/hotspot2/ConfigParser;->TYPE_WIFI_CONFIG:Ljava/lang/String;
-Landroid/net/wifi/hotspot2/IProvisioningCallback$Stub$Proxy;
 Landroid/net/wifi/hotspot2/IProvisioningCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/wifi/hotspot2/IProvisioningCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/net/wifi/hotspot2/IProvisioningCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/net/wifi/hotspot2/IProvisioningCallback$Stub$Proxy;->onProvisioningFailure(I)V
 Landroid/net/wifi/hotspot2/IProvisioningCallback$Stub$Proxy;->onProvisioningStatus(I)V
-Landroid/net/wifi/hotspot2/IProvisioningCallback$Stub;
 Landroid/net/wifi/hotspot2/IProvisioningCallback$Stub;-><init>()V
 Landroid/net/wifi/hotspot2/IProvisioningCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/hotspot2/IProvisioningCallback;
 Landroid/net/wifi/hotspot2/IProvisioningCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/wifi/hotspot2/IProvisioningCallback$Stub;->TRANSACTION_onProvisioningFailure:I
 Landroid/net/wifi/hotspot2/IProvisioningCallback$Stub;->TRANSACTION_onProvisioningStatus:I
-Landroid/net/wifi/hotspot2/IProvisioningCallback;
 Landroid/net/wifi/hotspot2/IProvisioningCallback;->onProvisioningFailure(I)V
 Landroid/net/wifi/hotspot2/IProvisioningCallback;->onProvisioningStatus(I)V
-Landroid/net/wifi/hotspot2/omadm/PpsMoParser$InternalNode;
 Landroid/net/wifi/hotspot2/omadm/PpsMoParser$InternalNode;-><init>(Ljava/lang/String;Ljava/util/List;)V
 Landroid/net/wifi/hotspot2/omadm/PpsMoParser$InternalNode;->getChildren()Ljava/util/List;
 Landroid/net/wifi/hotspot2/omadm/PpsMoParser$InternalNode;->getValue()Ljava/lang/String;
 Landroid/net/wifi/hotspot2/omadm/PpsMoParser$InternalNode;->isLeaf()Z
 Landroid/net/wifi/hotspot2/omadm/PpsMoParser$InternalNode;->mChildren:Ljava/util/List;
-Landroid/net/wifi/hotspot2/omadm/PpsMoParser$LeafNode;
 Landroid/net/wifi/hotspot2/omadm/PpsMoParser$LeafNode;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/net/wifi/hotspot2/omadm/PpsMoParser$LeafNode;->getChildren()Ljava/util/List;
 Landroid/net/wifi/hotspot2/omadm/PpsMoParser$LeafNode;->getValue()Ljava/lang/String;
 Landroid/net/wifi/hotspot2/omadm/PpsMoParser$LeafNode;->isLeaf()Z
 Landroid/net/wifi/hotspot2/omadm/PpsMoParser$LeafNode;->mValue:Ljava/lang/String;
-Landroid/net/wifi/hotspot2/omadm/PpsMoParser$ParsingException;
 Landroid/net/wifi/hotspot2/omadm/PpsMoParser$ParsingException;-><init>(Ljava/lang/String;)V
-Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;
 Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;-><init>(Ljava/lang/String;)V
 Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;->getChildren()Ljava/util/List;
 Landroid/net/wifi/hotspot2/omadm/PpsMoParser$PPSNode;->getName()Ljava/lang/String;
@@ -49423,7 +46075,6 @@
 Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->TAG_TYPE:Ljava/lang/String;
 Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->TAG_VALUE:Ljava/lang/String;
 Landroid/net/wifi/hotspot2/omadm/PpsMoParser;->TAG_VER_DTD:Ljava/lang/String;
-Landroid/net/wifi/hotspot2/omadm/XMLNode;
 Landroid/net/wifi/hotspot2/omadm/XMLNode;-><init>(Landroid/net/wifi/hotspot2/omadm/XMLNode;Ljava/lang/String;)V
 Landroid/net/wifi/hotspot2/omadm/XMLNode;->addChild(Landroid/net/wifi/hotspot2/omadm/XMLNode;)V
 Landroid/net/wifi/hotspot2/omadm/XMLNode;->addText(Ljava/lang/String;)V
@@ -49437,12 +46088,10 @@
 Landroid/net/wifi/hotspot2/omadm/XMLNode;->mTag:Ljava/lang/String;
 Landroid/net/wifi/hotspot2/omadm/XMLNode;->mText:Ljava/lang/String;
 Landroid/net/wifi/hotspot2/omadm/XMLNode;->mTextBuilder:Ljava/lang/StringBuilder;
-Landroid/net/wifi/hotspot2/omadm/XMLParser;
 Landroid/net/wifi/hotspot2/omadm/XMLParser;-><init>()V
 Landroid/net/wifi/hotspot2/omadm/XMLParser;->mCurrent:Landroid/net/wifi/hotspot2/omadm/XMLNode;
 Landroid/net/wifi/hotspot2/omadm/XMLParser;->mRoot:Landroid/net/wifi/hotspot2/omadm/XMLNode;
 Landroid/net/wifi/hotspot2/omadm/XMLParser;->parse(Ljava/lang/String;)Landroid/net/wifi/hotspot2/omadm/XMLNode;
-Landroid/net/wifi/hotspot2/OsuProvider;
 Landroid/net/wifi/hotspot2/OsuProvider;-><init>(Landroid/net/wifi/hotspot2/OsuProvider;)V
 Landroid/net/wifi/hotspot2/OsuProvider;-><init>(Landroid/net/wifi/WifiSsid;Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Ljava/lang/String;Ljava/util/List;Landroid/graphics/drawable/Icon;)V
 Landroid/net/wifi/hotspot2/OsuProvider;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -49586,7 +46235,6 @@
 Landroid/net/wifi/hotspot2/pps/HomeSp;->TAG:Ljava/lang/String;
 Landroid/net/wifi/hotspot2/pps/HomeSp;->validate()Z
 Landroid/net/wifi/hotspot2/pps/HomeSp;->writeHomeNetworkIds(Landroid/os/Parcel;Ljava/util/Map;)V
-Landroid/net/wifi/hotspot2/pps/Policy$RoamingPartner;
 Landroid/net/wifi/hotspot2/pps/Policy$RoamingPartner;-><init>()V
 Landroid/net/wifi/hotspot2/pps/Policy$RoamingPartner;-><init>(Landroid/net/wifi/hotspot2/pps/Policy$RoamingPartner;)V
 Landroid/net/wifi/hotspot2/pps/Policy$RoamingPartner;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -49603,7 +46251,6 @@
 Landroid/net/wifi/hotspot2/pps/Policy$RoamingPartner;->setFqdnExactMatch(Z)V
 Landroid/net/wifi/hotspot2/pps/Policy$RoamingPartner;->setPriority(I)V
 Landroid/net/wifi/hotspot2/pps/Policy$RoamingPartner;->validate()Z
-Landroid/net/wifi/hotspot2/pps/Policy;
 Landroid/net/wifi/hotspot2/pps/Policy;-><init>()V
 Landroid/net/wifi/hotspot2/pps/Policy;-><init>(Landroid/net/wifi/hotspot2/pps/Policy;)V
 Landroid/net/wifi/hotspot2/pps/Policy;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -49642,7 +46289,6 @@
 Landroid/net/wifi/hotspot2/pps/Policy;->validate()Z
 Landroid/net/wifi/hotspot2/pps/Policy;->writeProtoPortMap(Landroid/os/Parcel;Ljava/util/Map;)V
 Landroid/net/wifi/hotspot2/pps/Policy;->writeRoamingPartnerList(Landroid/os/Parcel;ILjava/util/List;)V
-Landroid/net/wifi/hotspot2/pps/UpdateParameter;
 Landroid/net/wifi/hotspot2/pps/UpdateParameter;-><init>()V
 Landroid/net/wifi/hotspot2/pps/UpdateParameter;-><init>(Landroid/net/wifi/hotspot2/pps/UpdateParameter;)V
 Landroid/net/wifi/hotspot2/pps/UpdateParameter;->CERTIFICATE_SHA256_BYTES:I
@@ -49683,7 +46329,6 @@
 Landroid/net/wifi/hotspot2/pps/UpdateParameter;->UPDATE_RESTRICTION_ROAMING_PARTNER:Ljava/lang/String;
 Landroid/net/wifi/hotspot2/pps/UpdateParameter;->UPDATE_RESTRICTION_UNRESTRICTED:Ljava/lang/String;
 Landroid/net/wifi/hotspot2/pps/UpdateParameter;->validate()Z
-Landroid/net/wifi/hotspot2/ProvisioningCallback;
 Landroid/net/wifi/hotspot2/ProvisioningCallback;-><init>()V
 Landroid/net/wifi/hotspot2/ProvisioningCallback;->onProvisioningFailure(I)V
 Landroid/net/wifi/hotspot2/ProvisioningCallback;->onProvisioningStatus(I)V
@@ -49699,22 +46344,18 @@
 Landroid/net/wifi/hotspot2/ProvisioningCallback;->OSU_STATUS_PROVIDER_VERIFIED:I
 Landroid/net/wifi/hotspot2/ProvisioningCallback;->OSU_STATUS_SERVER_CONNECTED:I
 Landroid/net/wifi/hotspot2/ProvisioningCallback;->OSU_STATUS_SERVER_VALIDATED:I
-Landroid/net/wifi/ISoftApCallback$Stub$Proxy;
 Landroid/net/wifi/ISoftApCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/wifi/ISoftApCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/net/wifi/ISoftApCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/net/wifi/ISoftApCallback$Stub$Proxy;->onNumClientsChanged(I)V
 Landroid/net/wifi/ISoftApCallback$Stub$Proxy;->onStateChanged(II)V
-Landroid/net/wifi/ISoftApCallback$Stub;
 Landroid/net/wifi/ISoftApCallback$Stub;-><init>()V
 Landroid/net/wifi/ISoftApCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/ISoftApCallback;
 Landroid/net/wifi/ISoftApCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/wifi/ISoftApCallback$Stub;->TRANSACTION_onNumClientsChanged:I
 Landroid/net/wifi/ISoftApCallback$Stub;->TRANSACTION_onStateChanged:I
-Landroid/net/wifi/ISoftApCallback;
 Landroid/net/wifi/ISoftApCallback;->onNumClientsChanged(I)V
 Landroid/net/wifi/ISoftApCallback;->onStateChanged(II)V
-Landroid/net/wifi/IWifiManager$Stub$Proxy;
 Landroid/net/wifi/IWifiManager$Stub$Proxy;->acquireMulticastLock(Landroid/os/IBinder;Ljava/lang/String;)V
 Landroid/net/wifi/IWifiManager$Stub$Proxy;->acquireWifiLock(Landroid/os/IBinder;ILjava/lang/String;Landroid/os/WorkSource;)Z
 Landroid/net/wifi/IWifiManager$Stub$Proxy;->addOrUpdateNetwork(Landroid/net/wifi/WifiConfiguration;Ljava/lang/String;)I
@@ -49782,7 +46423,6 @@
 Landroid/net/wifi/IWifiManager$Stub$Proxy;->unregisterSoftApCallback(I)V
 Landroid/net/wifi/IWifiManager$Stub$Proxy;->updateInterfaceIpState(Ljava/lang/String;I)V
 Landroid/net/wifi/IWifiManager$Stub$Proxy;->updateWifiLockWorkSource(Landroid/os/IBinder;Landroid/os/WorkSource;)V
-Landroid/net/wifi/IWifiManager$Stub;
 Landroid/net/wifi/IWifiManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_acquireMulticastLock:I
 Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_acquireWifiLock:I
@@ -49848,7 +46488,6 @@
 Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_unregisterSoftApCallback:I
 Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_updateInterfaceIpState:I
 Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_updateWifiLockWorkSource:I
-Landroid/net/wifi/IWifiManager;
 Landroid/net/wifi/IWifiManager;->acquireMulticastLock(Landroid/os/IBinder;Ljava/lang/String;)V
 Landroid/net/wifi/IWifiManager;->acquireWifiLock(Landroid/os/IBinder;ILjava/lang/String;Landroid/os/WorkSource;)Z
 Landroid/net/wifi/IWifiManager;->addOrUpdateNetwork(Landroid/net/wifi/WifiConfiguration;Ljava/lang/String;)I
@@ -49911,18 +46550,14 @@
 Landroid/net/wifi/IWifiManager;->unregisterSoftApCallback(I)V
 Landroid/net/wifi/IWifiManager;->updateInterfaceIpState(Ljava/lang/String;I)V
 Landroid/net/wifi/IWifiManager;->updateWifiLockWorkSource(Landroid/os/IBinder;Landroid/os/WorkSource;)V
-Landroid/net/wifi/IWifiScanner$Stub$Proxy;
 Landroid/net/wifi/IWifiScanner$Stub$Proxy;->getAvailableChannels(I)Landroid/os/Bundle;
 Landroid/net/wifi/IWifiScanner$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/net/wifi/IWifiScanner$Stub$Proxy;->getMessenger()Landroid/os/Messenger;
-Landroid/net/wifi/IWifiScanner$Stub;
 Landroid/net/wifi/IWifiScanner$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/wifi/IWifiScanner$Stub;->TRANSACTION_getAvailableChannels:I
 Landroid/net/wifi/IWifiScanner$Stub;->TRANSACTION_getMessenger:I
-Landroid/net/wifi/IWifiScanner;
 Landroid/net/wifi/IWifiScanner;->getAvailableChannels(I)Landroid/os/Bundle;
 Landroid/net/wifi/IWifiScanner;->getMessenger()Landroid/os/Messenger;
-Landroid/net/wifi/p2p/IWifiP2pManager$Stub$Proxy;
 Landroid/net/wifi/p2p/IWifiP2pManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/wifi/p2p/IWifiP2pManager$Stub$Proxy;->checkConfigureWifiDisplayPermission()V
 Landroid/net/wifi/p2p/IWifiP2pManager$Stub$Proxy;->close(Landroid/os/IBinder;)V
@@ -49931,7 +46566,6 @@
 Landroid/net/wifi/p2p/IWifiP2pManager$Stub$Proxy;->getP2pStateMachineMessenger()Landroid/os/Messenger;
 Landroid/net/wifi/p2p/IWifiP2pManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/net/wifi/p2p/IWifiP2pManager$Stub$Proxy;->setMiracastMode(I)V
-Landroid/net/wifi/p2p/IWifiP2pManager$Stub;
 Landroid/net/wifi/p2p/IWifiP2pManager$Stub;-><init>()V
 Landroid/net/wifi/p2p/IWifiP2pManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/wifi/p2p/IWifiP2pManager$Stub;->TRANSACTION_checkConfigureWifiDisplayPermission:I
@@ -49939,7 +46573,6 @@
 Landroid/net/wifi/p2p/IWifiP2pManager$Stub;->TRANSACTION_getMessenger:I
 Landroid/net/wifi/p2p/IWifiP2pManager$Stub;->TRANSACTION_getP2pStateMachineMessenger:I
 Landroid/net/wifi/p2p/IWifiP2pManager$Stub;->TRANSACTION_setMiracastMode:I
-Landroid/net/wifi/p2p/IWifiP2pManager;
 Landroid/net/wifi/p2p/IWifiP2pManager;->checkConfigureWifiDisplayPermission()V
 Landroid/net/wifi/p2p/IWifiP2pManager;->close(Landroid/os/IBinder;)V
 Landroid/net/wifi/p2p/IWifiP2pManager;->getMessenger(Landroid/os/IBinder;)Landroid/os/Messenger;
@@ -49956,7 +46589,6 @@
 Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceRequest;-><init>()V
 Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceRequest;-><init>(Ljava/lang/String;)V
 Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceRequest;-><init>(Ljava/lang/String;II)V
-Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceResponse;
 Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceResponse;-><init>(IILandroid/net/wifi/p2p/WifiP2pDevice;[B)V
 Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceResponse;->getDnsQueryName()Ljava/lang/String;
 Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceResponse;->getDnsType()I
@@ -49985,14 +46617,12 @@
 Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;->mTransId:I
 Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;->setTransactionId(I)V
 Landroid/net/wifi/p2p/nsd/WifiP2pServiceRequest;->validateQuery(Ljava/lang/String;)V
-Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse$Status;
 Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse$Status;-><init>()V
 Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse$Status;->BAD_REQUEST:I
 Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse$Status;->REQUESTED_INFORMATION_NOT_AVAILABLE:I
 Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse$Status;->SERVICE_PROTOCOL_NOT_AVAILABLE:I
 Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse$Status;->SUCCESS:I
 Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse$Status;->toString(I)Ljava/lang/String;
-Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse;
 Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse;-><init>(IIILandroid/net/wifi/p2p/WifiP2pDevice;[B)V
 Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/wifi/p2p/nsd/WifiP2pServiceResponse;->equals(Ljava/lang/Object;Ljava/lang/Object;)Z
@@ -50015,7 +46645,6 @@
 Landroid/net/wifi/p2p/nsd/WifiP2pUpnpServiceInfo;->VERSION_1_0:I
 Landroid/net/wifi/p2p/nsd/WifiP2pUpnpServiceRequest;-><init>()V
 Landroid/net/wifi/p2p/nsd/WifiP2pUpnpServiceRequest;-><init>(Ljava/lang/String;)V
-Landroid/net/wifi/p2p/nsd/WifiP2pUpnpServiceResponse;
 Landroid/net/wifi/p2p/nsd/WifiP2pUpnpServiceResponse;-><init>(IILandroid/net/wifi/p2p/WifiP2pDevice;[B)V
 Landroid/net/wifi/p2p/nsd/WifiP2pUpnpServiceResponse;->getUniqueServiceNames()Ljava/util/List;
 Landroid/net/wifi/p2p/nsd/WifiP2pUpnpServiceResponse;->getVersion()I
@@ -50078,9 +46707,7 @@
 Landroid/net/wifi/p2p/WifiP2pGroup;->setNetworkName(Ljava/lang/String;)V
 Landroid/net/wifi/p2p/WifiP2pGroup;->setOwner(Landroid/net/wifi/p2p/WifiP2pDevice;)V
 Landroid/net/wifi/p2p/WifiP2pGroup;->setPassphrase(Ljava/lang/String;)V
-Landroid/net/wifi/p2p/WifiP2pGroupList$GroupDeleteListener;
 Landroid/net/wifi/p2p/WifiP2pGroupList$GroupDeleteListener;->onDeleteGroup(I)V
-Landroid/net/wifi/p2p/WifiP2pGroupList;
 Landroid/net/wifi/p2p/WifiP2pGroupList;-><init>()V
 Landroid/net/wifi/p2p/WifiP2pGroupList;->add(Landroid/net/wifi/p2p/WifiP2pGroup;)V
 Landroid/net/wifi/p2p/WifiP2pGroupList;->clear()Z
@@ -50094,8 +46721,6 @@
 Landroid/net/wifi/p2p/WifiP2pGroupList;->mListener:Landroid/net/wifi/p2p/WifiP2pGroupList$GroupDeleteListener;
 Landroid/net/wifi/p2p/WifiP2pGroupList;->remove(I)V
 Landroid/net/wifi/p2p/WifiP2pGroupList;->remove(Ljava/lang/String;)V
-Landroid/net/wifi/p2p/WifiP2pManager$Channel$P2pHandler;
-Landroid/net/wifi/p2p/WifiP2pManager$Channel$P2pHandler;-><init>(Landroid/os/Looper;)V
 Landroid/net/wifi/p2p/WifiP2pManager$Channel;-><init>(Landroid/content/Context;Landroid/os/Looper;Landroid/net/wifi/p2p/WifiP2pManager$ChannelListener;Landroid/os/Binder;Landroid/net/wifi/p2p/WifiP2pManager;)V
 Landroid/net/wifi/p2p/WifiP2pManager$Channel;->getListener(I)Ljava/lang/Object;
 Landroid/net/wifi/p2p/WifiP2pManager$Channel;->handleDnsSdServiceResponse(Landroid/net/wifi/p2p/nsd/WifiP2pDnsSdServiceResponse;)V
@@ -50115,9 +46740,7 @@
 Landroid/net/wifi/p2p/WifiP2pManager$Channel;->mP2pManager:Landroid/net/wifi/p2p/WifiP2pManager;
 Landroid/net/wifi/p2p/WifiP2pManager$Channel;->mServRspListener:Landroid/net/wifi/p2p/WifiP2pManager$ServiceResponseListener;
 Landroid/net/wifi/p2p/WifiP2pManager$Channel;->mUpnpServRspListener:Landroid/net/wifi/p2p/WifiP2pManager$UpnpServiceResponseListener;
-Landroid/net/wifi/p2p/WifiP2pManager$HandoverMessageListener;
 Landroid/net/wifi/p2p/WifiP2pManager$HandoverMessageListener;->onHandoverMessageAvailable(Ljava/lang/String;)V
-Landroid/net/wifi/p2p/WifiP2pManager$PersistentGroupInfoListener;
 Landroid/net/wifi/p2p/WifiP2pManager$PersistentGroupInfoListener;->onPersistentGroupInfoAvailable(Landroid/net/wifi/p2p/WifiP2pGroupList;)V
 Landroid/net/wifi/p2p/WifiP2pManager;->ADD_LOCAL_SERVICE:I
 Landroid/net/wifi/p2p/WifiP2pManager;->ADD_LOCAL_SERVICE_FAILED:I
@@ -50217,14 +46840,12 @@
 Landroid/net/wifi/p2p/WifiP2pManager;->STOP_LISTEN_SUCCEEDED:I
 Landroid/net/wifi/p2p/WifiP2pManager;->TAG:Ljava/lang/String;
 Landroid/net/wifi/p2p/WifiP2pManager;->WIFI_P2P_PERSISTENT_GROUPS_CHANGED_ACTION:Ljava/lang/String;
-Landroid/net/wifi/p2p/WifiP2pProvDiscEvent;
 Landroid/net/wifi/p2p/WifiP2pProvDiscEvent;-><init>(Ljava/lang/String;)V
 Landroid/net/wifi/p2p/WifiP2pProvDiscEvent;->ENTER_PIN:I
 Landroid/net/wifi/p2p/WifiP2pProvDiscEvent;->PBC_REQ:I
 Landroid/net/wifi/p2p/WifiP2pProvDiscEvent;->PBC_RSP:I
 Landroid/net/wifi/p2p/WifiP2pProvDiscEvent;->SHOW_PIN:I
 Landroid/net/wifi/p2p/WifiP2pProvDiscEvent;->TAG:Ljava/lang/String;
-Landroid/net/wifi/p2p/WifiP2pWfdInfo;
 Landroid/net/wifi/p2p/WifiP2pWfdInfo;->COUPLED_SINK_SUPPORT_AT_SINK:I
 Landroid/net/wifi/p2p/WifiP2pWfdInfo;->COUPLED_SINK_SUPPORT_AT_SOURCE:I
 Landroid/net/wifi/p2p/WifiP2pWfdInfo;->DEVICE_TYPE:I
@@ -50249,7 +46870,6 @@
 Landroid/net/wifi/p2p/WifiP2pWfdInfo;->SOURCE_OR_PRIMARY_SINK:I
 Landroid/net/wifi/p2p/WifiP2pWfdInfo;->TAG:Ljava/lang/String;
 Landroid/net/wifi/p2p/WifiP2pWfdInfo;->WFD_SOURCE:I
-Landroid/net/wifi/ParcelUtil;
 Landroid/net/wifi/ParcelUtil;-><init>()V
 Landroid/net/wifi/ParcelUtil;->readCertificate(Landroid/os/Parcel;)Ljava/security/cert/X509Certificate;
 Landroid/net/wifi/ParcelUtil;->readCertificates(Landroid/os/Parcel;)[Ljava/security/cert/X509Certificate;
@@ -50257,7 +46877,6 @@
 Landroid/net/wifi/ParcelUtil;->writeCertificate(Landroid/os/Parcel;Ljava/security/cert/X509Certificate;)V
 Landroid/net/wifi/ParcelUtil;->writeCertificates(Landroid/os/Parcel;[Ljava/security/cert/X509Certificate;)V
 Landroid/net/wifi/ParcelUtil;->writePrivateKey(Landroid/os/Parcel;Ljava/security/PrivateKey;)V
-Landroid/net/wifi/PasspointManagementObjectDefinition;
 Landroid/net/wifi/PasspointManagementObjectDefinition;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/net/wifi/PasspointManagementObjectDefinition;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/wifi/PasspointManagementObjectDefinition;->getBaseUri()Ljava/lang/String;
@@ -50266,7 +46885,6 @@
 Landroid/net/wifi/PasspointManagementObjectDefinition;->mBaseUri:Ljava/lang/String;
 Landroid/net/wifi/PasspointManagementObjectDefinition;->mMoTree:Ljava/lang/String;
 Landroid/net/wifi/PasspointManagementObjectDefinition;->mUrn:Ljava/lang/String;
-Landroid/net/wifi/RssiPacketCountInfo;
 Landroid/net/wifi/RssiPacketCountInfo;-><init>()V
 Landroid/net/wifi/RssiPacketCountInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/net/wifi/RssiPacketCountInfo;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -50274,36 +46892,30 @@
 Landroid/net/wifi/RssiPacketCountInfo;->rxgood:I
 Landroid/net/wifi/RssiPacketCountInfo;->txbad:I
 Landroid/net/wifi/RssiPacketCountInfo;->txgood:I
-Landroid/net/wifi/rtt/IRttCallback$Stub$Proxy;
 Landroid/net/wifi/rtt/IRttCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/wifi/rtt/IRttCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/net/wifi/rtt/IRttCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/net/wifi/rtt/IRttCallback$Stub$Proxy;->onRangingFailure(I)V
 Landroid/net/wifi/rtt/IRttCallback$Stub$Proxy;->onRangingResults(Ljava/util/List;)V
-Landroid/net/wifi/rtt/IRttCallback$Stub;
 Landroid/net/wifi/rtt/IRttCallback$Stub;-><init>()V
 Landroid/net/wifi/rtt/IRttCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/rtt/IRttCallback;
 Landroid/net/wifi/rtt/IRttCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/wifi/rtt/IRttCallback$Stub;->TRANSACTION_onRangingFailure:I
 Landroid/net/wifi/rtt/IRttCallback$Stub;->TRANSACTION_onRangingResults:I
-Landroid/net/wifi/rtt/IRttCallback;
 Landroid/net/wifi/rtt/IRttCallback;->onRangingFailure(I)V
 Landroid/net/wifi/rtt/IRttCallback;->onRangingResults(Ljava/util/List;)V
-Landroid/net/wifi/rtt/IWifiRttManager$Stub$Proxy;
 Landroid/net/wifi/rtt/IWifiRttManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/wifi/rtt/IWifiRttManager$Stub$Proxy;->cancelRanging(Landroid/os/WorkSource;)V
 Landroid/net/wifi/rtt/IWifiRttManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/net/wifi/rtt/IWifiRttManager$Stub$Proxy;->isAvailable()Z
 Landroid/net/wifi/rtt/IWifiRttManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/net/wifi/rtt/IWifiRttManager$Stub$Proxy;->startRanging(Landroid/os/IBinder;Ljava/lang/String;Landroid/os/WorkSource;Landroid/net/wifi/rtt/RangingRequest;Landroid/net/wifi/rtt/IRttCallback;)V
-Landroid/net/wifi/rtt/IWifiRttManager$Stub;
 Landroid/net/wifi/rtt/IWifiRttManager$Stub;-><init>()V
 Landroid/net/wifi/rtt/IWifiRttManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/rtt/IWifiRttManager;
 Landroid/net/wifi/rtt/IWifiRttManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/net/wifi/rtt/IWifiRttManager$Stub;->TRANSACTION_cancelRanging:I
 Landroid/net/wifi/rtt/IWifiRttManager$Stub;->TRANSACTION_isAvailable:I
 Landroid/net/wifi/rtt/IWifiRttManager$Stub;->TRANSACTION_startRanging:I
-Landroid/net/wifi/rtt/IWifiRttManager;
 Landroid/net/wifi/rtt/IWifiRttManager;->cancelRanging(Landroid/os/WorkSource;)V
 Landroid/net/wifi/rtt/IWifiRttManager;->isAvailable()Z
 Landroid/net/wifi/rtt/IWifiRttManager;->startRanging(Landroid/os/IBinder;Ljava/lang/String;Landroid/os/WorkSource;Landroid/net/wifi/rtt/RangingRequest;Landroid/net/wifi/rtt/IRttCallback;)V
@@ -50312,7 +46924,6 @@
 Landroid/net/wifi/rtt/RangingRequest;->enforceValidity(Z)V
 Landroid/net/wifi/rtt/RangingRequest;->MAX_PEERS:I
 Landroid/net/wifi/rtt/RangingRequest;->mRttPeers:Ljava/util/List;
-Landroid/net/wifi/rtt/RangingResult$RangeResultStatus;
 Landroid/net/wifi/rtt/RangingResult;-><init>(ILandroid/net/MacAddress;IIIII[B[BJ)V
 Landroid/net/wifi/rtt/RangingResult;-><init>(ILandroid/net/wifi/aware/PeerHandle;IIIII[B[BJ)V
 Landroid/net/wifi/rtt/RangingResult;->EMPTY_BYTE_ARRAY:[B
@@ -50328,10 +46939,6 @@
 Landroid/net/wifi/rtt/RangingResult;->mStatus:I
 Landroid/net/wifi/rtt/RangingResult;->mTimestamp:J
 Landroid/net/wifi/rtt/RangingResult;->TAG:Ljava/lang/String;
-Landroid/net/wifi/rtt/RangingResultCallback$RangingOperationStatus;
-Landroid/net/wifi/rtt/ResponderConfig$ChannelWidth;
-Landroid/net/wifi/rtt/ResponderConfig$PreambleType;
-Landroid/net/wifi/rtt/ResponderConfig$ResponderType;
 Landroid/net/wifi/rtt/ResponderConfig;-><init>(Landroid/net/MacAddress;Landroid/net/wifi/aware/PeerHandle;IZIIIII)V
 Landroid/net/wifi/rtt/ResponderConfig;->AWARE_BAND_2_DISCOVERY_CHANNEL:I
 Landroid/net/wifi/rtt/ResponderConfig;->isValid(Z)Z
@@ -50353,12 +46960,10 @@
 Landroid/net/wifi/RttManager;->mNewService:Landroid/net/wifi/rtt/WifiRttManager;
 Landroid/net/wifi/RttManager;->mRttCapabilities:Landroid/net/wifi/RttManager$RttCapabilities;
 Landroid/net/wifi/RttManager;->TAG:Ljava/lang/String;
-Landroid/net/wifi/ScanResult$InformationElement;
 Landroid/net/wifi/ScanResult$InformationElement;-><init>()V
 Landroid/net/wifi/ScanResult$InformationElement;-><init>(Landroid/net/wifi/ScanResult$InformationElement;)V
 Landroid/net/wifi/ScanResult$InformationElement;->EID_HT_CAPABILITIES:I
 Landroid/net/wifi/ScanResult$InformationElement;->EID_VHT_CAPABILITIES:I
-Landroid/net/wifi/ScanResult$RadioChainInfo;
 Landroid/net/wifi/ScanResult$RadioChainInfo;-><init>()V
 Landroid/net/wifi/ScanResult$RadioChainInfo;->id:I
 Landroid/net/wifi/ScanResult$RadioChainInfo;->level:I
@@ -50398,12 +47003,10 @@
 Landroid/net/wifi/ScanResult;->radioChainInfos:[Landroid/net/wifi/ScanResult$RadioChainInfo;
 Landroid/net/wifi/ScanResult;->setFlag(J)V
 Landroid/net/wifi/ScanResult;->UNSPECIFIED:I
-Landroid/net/wifi/SupplicantState;-><init>()V
 Landroid/net/wifi/SupplicantState;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/wifi/SupplicantState;->isConnecting(Landroid/net/wifi/SupplicantState;)Z
 Landroid/net/wifi/SupplicantState;->isDriverActive(Landroid/net/wifi/SupplicantState;)Z
 Landroid/net/wifi/SupplicantState;->isHandshakeState(Landroid/net/wifi/SupplicantState;)Z
-Landroid/net/wifi/WifiActivityEnergyInfo;
 Landroid/net/wifi/WifiActivityEnergyInfo;-><init>(JIJ[JJJJJ)V
 Landroid/net/wifi/WifiActivityEnergyInfo;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/wifi/WifiActivityEnergyInfo;->getControllerEnergyUsed()J
@@ -50434,7 +47037,6 @@
 Landroid/net/wifi/WifiConfiguration$KeyMgmt;->FT_EAP:I
 Landroid/net/wifi/WifiConfiguration$KeyMgmt;->FT_PSK:I
 Landroid/net/wifi/WifiConfiguration$KeyMgmt;->OSEN:I
-Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;
 Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;-><init>()V
 Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->clearDisableReasonCounter()V
 Landroid/net/wifi/WifiConfiguration$NetworkSelectionStatus;->clearDisableReasonCounter(I)V
@@ -50513,7 +47115,6 @@
 Landroid/net/wifi/WifiConfiguration$PairwiseCipher;-><init>()V
 Landroid/net/wifi/WifiConfiguration$Protocol;-><init>()V
 Landroid/net/wifi/WifiConfiguration$Protocol;->OSEN:I
-Landroid/net/wifi/WifiConfiguration$RecentFailure;
 Landroid/net/wifi/WifiConfiguration$RecentFailure;-><init>()V
 Landroid/net/wifi/WifiConfiguration$RecentFailure;->clear()V
 Landroid/net/wifi/WifiConfiguration$RecentFailure;->getAssociationStatus()I
@@ -50593,9 +47194,7 @@
 Landroid/net/wifi/WifiEnterpriseConfig$Phase2;->AUTHEAP_PREFIX:Ljava/lang/String;
 Landroid/net/wifi/WifiEnterpriseConfig$Phase2;->AUTH_PREFIX:Ljava/lang/String;
 Landroid/net/wifi/WifiEnterpriseConfig$Phase2;->strings:[Ljava/lang/String;
-Landroid/net/wifi/WifiEnterpriseConfig$SupplicantLoader;
 Landroid/net/wifi/WifiEnterpriseConfig$SupplicantLoader;->loadValue(Ljava/lang/String;)Ljava/lang/String;
-Landroid/net/wifi/WifiEnterpriseConfig$SupplicantSaver;
 Landroid/net/wifi/WifiEnterpriseConfig$SupplicantSaver;->saveValue(Ljava/lang/String;Ljava/lang/String;)Z
 Landroid/net/wifi/WifiEnterpriseConfig;->ALTSUBJECT_MATCH_KEY:Ljava/lang/String;
 Landroid/net/wifi/WifiEnterpriseConfig;->ANON_IDENTITY_KEY:Ljava/lang/String;
@@ -50683,7 +47282,6 @@
 Landroid/net/wifi/WifiInfo;->txSuccessRate:D
 Landroid/net/wifi/WifiInfo;->valueOf(Ljava/lang/String;)Landroid/net/wifi/SupplicantState;
 Landroid/net/wifi/WifiManager$LocalOnlyHotspotCallback;->REQUEST_REGISTERED:I
-Landroid/net/wifi/WifiManager$LocalOnlyHotspotCallbackProxy;
 Landroid/net/wifi/WifiManager$LocalOnlyHotspotCallbackProxy;-><init>(Landroid/net/wifi/WifiManager;Landroid/os/Looper;Landroid/net/wifi/WifiManager$LocalOnlyHotspotCallback;)V
 Landroid/net/wifi/WifiManager$LocalOnlyHotspotCallbackProxy;->getMessenger()Landroid/os/Messenger;
 Landroid/net/wifi/WifiManager$LocalOnlyHotspotCallbackProxy;->mHandler:Landroid/os/Handler;
@@ -50691,12 +47289,10 @@
 Landroid/net/wifi/WifiManager$LocalOnlyHotspotCallbackProxy;->mMessenger:Landroid/os/Messenger;
 Landroid/net/wifi/WifiManager$LocalOnlyHotspotCallbackProxy;->mWifiManager:Ljava/lang/ref/WeakReference;
 Landroid/net/wifi/WifiManager$LocalOnlyHotspotCallbackProxy;->notifyFailed(I)V
-Landroid/net/wifi/WifiManager$LocalOnlyHotspotObserver;
 Landroid/net/wifi/WifiManager$LocalOnlyHotspotObserver;-><init>()V
 Landroid/net/wifi/WifiManager$LocalOnlyHotspotObserver;->onRegistered(Landroid/net/wifi/WifiManager$LocalOnlyHotspotSubscription;)V
 Landroid/net/wifi/WifiManager$LocalOnlyHotspotObserver;->onStarted(Landroid/net/wifi/WifiConfiguration;)V
 Landroid/net/wifi/WifiManager$LocalOnlyHotspotObserver;->onStopped()V
-Landroid/net/wifi/WifiManager$LocalOnlyHotspotObserverProxy;
 Landroid/net/wifi/WifiManager$LocalOnlyHotspotObserverProxy;-><init>(Landroid/net/wifi/WifiManager;Landroid/os/Looper;Landroid/net/wifi/WifiManager$LocalOnlyHotspotObserver;)V
 Landroid/net/wifi/WifiManager$LocalOnlyHotspotObserverProxy;->getMessenger()Landroid/os/Messenger;
 Landroid/net/wifi/WifiManager$LocalOnlyHotspotObserverProxy;->mHandler:Landroid/os/Handler;
@@ -50704,42 +47300,29 @@
 Landroid/net/wifi/WifiManager$LocalOnlyHotspotObserverProxy;->mMessenger:Landroid/os/Messenger;
 Landroid/net/wifi/WifiManager$LocalOnlyHotspotObserverProxy;->mWifiManager:Ljava/lang/ref/WeakReference;
 Landroid/net/wifi/WifiManager$LocalOnlyHotspotObserverProxy;->registered()V
-Landroid/net/wifi/WifiManager$LocalOnlyHotspotReservation;-><init>(Landroid/net/wifi/WifiConfiguration;)V
 Landroid/net/wifi/WifiManager$LocalOnlyHotspotReservation;->mCloseGuard:Ldalvik/system/CloseGuard;
 Landroid/net/wifi/WifiManager$LocalOnlyHotspotReservation;->mConfig:Landroid/net/wifi/WifiConfiguration;
-Landroid/net/wifi/WifiManager$LocalOnlyHotspotSubscription;
-Landroid/net/wifi/WifiManager$LocalOnlyHotspotSubscription;-><init>()V
 Landroid/net/wifi/WifiManager$LocalOnlyHotspotSubscription;->mCloseGuard:Ldalvik/system/CloseGuard;
-Landroid/net/wifi/WifiManager$MulticastLock;-><init>(Ljava/lang/String;)V
 Landroid/net/wifi/WifiManager$MulticastLock;->mBinder:Landroid/os/IBinder;
 Landroid/net/wifi/WifiManager$MulticastLock;->mHeld:Z
 Landroid/net/wifi/WifiManager$MulticastLock;->mRefCount:I
 Landroid/net/wifi/WifiManager$MulticastLock;->mRefCounted:Z
 Landroid/net/wifi/WifiManager$MulticastLock;->mTag:Ljava/lang/String;
-Landroid/net/wifi/WifiManager$ProvisioningCallbackProxy;
 Landroid/net/wifi/WifiManager$ProvisioningCallbackProxy;-><init>(Landroid/os/Looper;Landroid/net/wifi/hotspot2/ProvisioningCallback;)V
 Landroid/net/wifi/WifiManager$ProvisioningCallbackProxy;->mCallback:Landroid/net/wifi/hotspot2/ProvisioningCallback;
 Landroid/net/wifi/WifiManager$ProvisioningCallbackProxy;->mHandler:Landroid/os/Handler;
 Landroid/net/wifi/WifiManager$ProvisioningCallbackProxy;->onProvisioningFailure(I)V
 Landroid/net/wifi/WifiManager$ProvisioningCallbackProxy;->onProvisioningStatus(I)V
-Landroid/net/wifi/WifiManager$SapStartFailure;
-Landroid/net/wifi/WifiManager$ServiceHandler;
-Landroid/net/wifi/WifiManager$ServiceHandler;-><init>(Landroid/os/Looper;)V
 Landroid/net/wifi/WifiManager$ServiceHandler;->dispatchMessageToListeners(Landroid/os/Message;)V
-Landroid/net/wifi/WifiManager$SoftApCallback;
 Landroid/net/wifi/WifiManager$SoftApCallback;->onNumClientsChanged(I)V
 Landroid/net/wifi/WifiManager$SoftApCallback;->onStateChanged(II)V
-Landroid/net/wifi/WifiManager$SoftApCallbackProxy;
 Landroid/net/wifi/WifiManager$SoftApCallbackProxy;-><init>(Landroid/os/Looper;Landroid/net/wifi/WifiManager$SoftApCallback;)V
 Landroid/net/wifi/WifiManager$SoftApCallbackProxy;->mCallback:Landroid/net/wifi/WifiManager$SoftApCallback;
 Landroid/net/wifi/WifiManager$SoftApCallbackProxy;->mHandler:Landroid/os/Handler;
 Landroid/net/wifi/WifiManager$SoftApCallbackProxy;->onNumClientsChanged(I)V
 Landroid/net/wifi/WifiManager$SoftApCallbackProxy;->onStateChanged(II)V
-Landroid/net/wifi/WifiManager$TxPacketCountListener;
 Landroid/net/wifi/WifiManager$TxPacketCountListener;->onFailure(I)V
 Landroid/net/wifi/WifiManager$TxPacketCountListener;->onSuccess(I)V
-Landroid/net/wifi/WifiManager$WifiApState;
-Landroid/net/wifi/WifiManager$WifiLock;-><init>(ILjava/lang/String;)V
 Landroid/net/wifi/WifiManager$WifiLock;->mBinder:Landroid/os/IBinder;
 Landroid/net/wifi/WifiManager$WifiLock;->mHeld:Z
 Landroid/net/wifi/WifiManager$WifiLock;->mLockType:I
@@ -50901,12 +47484,10 @@
 Landroid/net/wifi/WifiManager;->WPS_COMPLETED:I
 Landroid/net/wifi/WifiManager;->WPS_FAILED:I
 Landroid/net/wifi/WifiNetworkConnectionStatistics;->TAG:Ljava/lang/String;
-Landroid/net/wifi/WifiNetworkScoreCache$CacheListener;
 Landroid/net/wifi/WifiNetworkScoreCache$CacheListener;-><init>(Landroid/os/Handler;)V
 Landroid/net/wifi/WifiNetworkScoreCache$CacheListener;->mHandler:Landroid/os/Handler;
 Landroid/net/wifi/WifiNetworkScoreCache$CacheListener;->networkCacheUpdated(Ljava/util/List;)V
 Landroid/net/wifi/WifiNetworkScoreCache$CacheListener;->post(Ljava/util/List;)V
-Landroid/net/wifi/WifiNetworkScoreCache;
 Landroid/net/wifi/WifiNetworkScoreCache;-><init>(Landroid/content/Context;)V
 Landroid/net/wifi/WifiNetworkScoreCache;-><init>(Landroid/content/Context;Landroid/net/wifi/WifiNetworkScoreCache$CacheListener;)V
 Landroid/net/wifi/WifiNetworkScoreCache;-><init>(Landroid/content/Context;Landroid/net/wifi/WifiNetworkScoreCache$CacheListener;I)V
@@ -50935,16 +47516,13 @@
 Landroid/net/wifi/WifiScanner$ChannelSpec;->dwellTimeMS:I
 Landroid/net/wifi/WifiScanner$ChannelSpec;->passive:Z
 Landroid/net/wifi/WifiScanner$HotlistSettings;->CREATOR:Landroid/os/Parcelable$Creator;
-Landroid/net/wifi/WifiScanner$OperationResult;
 Landroid/net/wifi/WifiScanner$OperationResult;-><init>(ILjava/lang/String;)V
 Landroid/net/wifi/WifiScanner$OperationResult;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/wifi/WifiScanner$OperationResult;->description:Ljava/lang/String;
 Landroid/net/wifi/WifiScanner$OperationResult;->reason:I
 Landroid/net/wifi/WifiScanner$ParcelableScanData;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/wifi/WifiScanner$ParcelableScanResults;->CREATOR:Landroid/os/Parcelable$Creator;
-Landroid/net/wifi/WifiScanner$PnoScanListener;
 Landroid/net/wifi/WifiScanner$PnoScanListener;->onPnoNetworkFound([Landroid/net/wifi/ScanResult;)V
-Landroid/net/wifi/WifiScanner$PnoSettings$PnoNetwork;
 Landroid/net/wifi/WifiScanner$PnoSettings$PnoNetwork;-><init>(Ljava/lang/String;)V
 Landroid/net/wifi/WifiScanner$PnoSettings$PnoNetwork;->authBitField:B
 Landroid/net/wifi/WifiScanner$PnoSettings$PnoNetwork;->AUTH_CODE_EAPOL:B
@@ -50957,7 +47535,6 @@
 Landroid/net/wifi/WifiScanner$PnoSettings$PnoNetwork;->FLAG_SAME_NETWORK:B
 Landroid/net/wifi/WifiScanner$PnoSettings$PnoNetwork;->FLAG_STRICT_MATCH:B
 Landroid/net/wifi/WifiScanner$PnoSettings$PnoNetwork;->ssid:Ljava/lang/String;
-Landroid/net/wifi/WifiScanner$PnoSettings;
 Landroid/net/wifi/WifiScanner$PnoSettings;-><init>()V
 Landroid/net/wifi/WifiScanner$PnoSettings;->band5GHzBonus:I
 Landroid/net/wifi/WifiScanner$PnoSettings;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -50979,15 +47556,12 @@
 Landroid/net/wifi/WifiScanner$ScanData;->mFlags:I
 Landroid/net/wifi/WifiScanner$ScanData;->mId:I
 Landroid/net/wifi/WifiScanner$ScanData;->mResults:[Landroid/net/wifi/ScanResult;
-Landroid/net/wifi/WifiScanner$ScanSettings$HiddenNetwork;
 Landroid/net/wifi/WifiScanner$ScanSettings$HiddenNetwork;-><init>(Ljava/lang/String;)V
 Landroid/net/wifi/WifiScanner$ScanSettings$HiddenNetwork;->ssid:Ljava/lang/String;
 Landroid/net/wifi/WifiScanner$ScanSettings;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/wifi/WifiScanner$ScanSettings;->hiddenNetworks:[Landroid/net/wifi/WifiScanner$ScanSettings$HiddenNetwork;
 Landroid/net/wifi/WifiScanner$ScanSettings;->isPnoScan:Z
 Landroid/net/wifi/WifiScanner$ScanSettings;->type:I
-Landroid/net/wifi/WifiScanner$ServiceHandler;
-Landroid/net/wifi/WifiScanner$ServiceHandler;-><init>(Landroid/os/Looper;)V
 Landroid/net/wifi/WifiScanner$WifiChangeSettings;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/net/wifi/WifiScanner;-><init>(Landroid/content/Context;Landroid/net/wifi/IWifiScanner;Landroid/os/Looper;)V
 Landroid/net/wifi/WifiScanner;->addListener(Landroid/net/wifi/WifiScanner$ActionListener;)I
@@ -51040,7 +47614,6 @@
 Landroid/net/wifi/WifiScanner;->TYPE_LOW_LATENCY:I
 Landroid/net/wifi/WifiScanner;->TYPE_LOW_POWER:I
 Landroid/net/wifi/WifiScanner;->validateChannel()V
-Landroid/net/wifi/WifiSsid;
 Landroid/net/wifi/WifiSsid;-><init>()V
 Landroid/net/wifi/WifiSsid;->convertToBytes(Ljava/lang/String;)V
 Landroid/net/wifi/WifiSsid;->createFromByteArray([B)Landroid/net/wifi/WifiSsid;
@@ -51050,7 +47623,6 @@
 Landroid/net/wifi/WifiSsid;->isArrayAllZeroes([B)Z
 Landroid/net/wifi/WifiSsid;->isHidden()Z
 Landroid/net/wifi/WifiSsid;->TAG:Ljava/lang/String;
-Landroid/net/wifi/WifiWakeReasonAndCounts;
 Landroid/net/wifi/WifiWakeReasonAndCounts;-><init>()V
 Landroid/net/wifi/WifiWakeReasonAndCounts;->cmdEventWakeCntArray:[I
 Landroid/net/wifi/WifiWakeReasonAndCounts;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -51070,14 +47642,11 @@
 Landroid/net/wifi/WifiWakeReasonAndCounts;->totalCmdEventWake:I
 Landroid/net/wifi/WifiWakeReasonAndCounts;->totalDriverFwLocalWake:I
 Landroid/net/wifi/WifiWakeReasonAndCounts;->totalRxDataWake:I
-Landroid/net/wifi/WpsResult$Status;
-Landroid/net/wifi/WpsResult$Status;-><init>()V
 Landroid/net/wifi/WpsResult$Status;->FAILURE:Landroid/net/wifi/WpsResult$Status;
 Landroid/net/wifi/WpsResult$Status;->IN_PROGRESS:Landroid/net/wifi/WpsResult$Status;
 Landroid/net/wifi/WpsResult$Status;->SUCCESS:Landroid/net/wifi/WpsResult$Status;
 Landroid/net/wifi/WpsResult$Status;->valueOf(Ljava/lang/String;)Landroid/net/wifi/WpsResult$Status;
 Landroid/net/wifi/WpsResult$Status;->values()[Landroid/net/wifi/WpsResult$Status;
-Landroid/net/wifi/WpsResult;
 Landroid/net/wifi/WpsResult;-><init>()V
 Landroid/net/wifi/WpsResult;-><init>(Landroid/net/wifi/WpsResult$Status;)V
 Landroid/net/wifi/WpsResult;-><init>(Landroid/net/wifi/WpsResult;)V
@@ -51087,7 +47656,6 @@
 Landroid/net/WifiKey;-><init>(Landroid/os/Parcel;)V
 Landroid/net/WifiKey;->BSSID_PATTERN:Ljava/util/regex/Pattern;
 Landroid/net/WifiKey;->SSID_PATTERN:Ljava/util/regex/Pattern;
-Landroid/net/WifiLinkQualityInfo;
 Landroid/net/WifiLinkQualityInfo;-><init>()V
 Landroid/net/WifiLinkQualityInfo;->createFromParcelBody(Landroid/os/Parcel;)Landroid/net/WifiLinkQualityInfo;
 Landroid/net/WifiLinkQualityInfo;->getBssid()Ljava/lang/String;
@@ -51105,26 +47673,22 @@
 Landroid/net/WifiLinkQualityInfo;->setTxBad(J)V
 Landroid/net/WifiLinkQualityInfo;->setTxGood(J)V
 Landroid/net/WifiLinkQualityInfo;->setType(I)V
-Landroid/nfc/ApduList;
 Landroid/nfc/ApduList;-><init>()V
 Landroid/nfc/ApduList;-><init>(Landroid/os/Parcel;)V
 Landroid/nfc/ApduList;->add([B)V
 Landroid/nfc/ApduList;->commands:Ljava/util/ArrayList;
 Landroid/nfc/ApduList;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/nfc/ApduList;->get()Ljava/util/List;
-Landroid/nfc/BeamShareData;
 Landroid/nfc/BeamShareData;-><init>(Landroid/nfc/NdefMessage;[Landroid/net/Uri;Landroid/os/UserHandle;I)V
 Landroid/nfc/BeamShareData;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/nfc/BeamShareData;->flags:I
 Landroid/nfc/BeamShareData;->ndefMessage:Landroid/nfc/NdefMessage;
 Landroid/nfc/BeamShareData;->uris:[Landroid/net/Uri;
 Landroid/nfc/BeamShareData;->userHandle:Landroid/os/UserHandle;
-Landroid/nfc/cardemulation/AidGroup;
 Landroid/nfc/cardemulation/AidGroup;-><init>(Ljava/util/List;Ljava/lang/String;)V
 Landroid/nfc/cardemulation/AidGroup;->isValidCategory(Ljava/lang/String;)Z
 Landroid/nfc/cardemulation/AidGroup;->MAX_NUM_AIDS:I
 Landroid/nfc/cardemulation/AidGroup;->TAG:Ljava/lang/String;
-Landroid/nfc/cardemulation/ApduServiceInfo;
 Landroid/nfc/cardemulation/ApduServiceInfo;->dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 Landroid/nfc/cardemulation/ApduServiceInfo;->getAidGroups()Ljava/util/ArrayList;
 Landroid/nfc/cardemulation/ApduServiceInfo;->getAids()Ljava/util/List;
@@ -51157,8 +47721,6 @@
 Landroid/nfc/cardemulation/CardEmulation;->sIsInitialized:Z
 Landroid/nfc/cardemulation/CardEmulation;->sService:Landroid/nfc/INfcCardEmulation;
 Landroid/nfc/cardemulation/CardEmulation;->TAG:Ljava/lang/String;
-Landroid/nfc/cardemulation/HostApduService$MsgHandler;
-Landroid/nfc/cardemulation/HostApduService$MsgHandler;-><init>()V
 Landroid/nfc/cardemulation/HostApduService;->KEY_DATA:Ljava/lang/String;
 Landroid/nfc/cardemulation/HostApduService;->mMessenger:Landroid/os/Messenger;
 Landroid/nfc/cardemulation/HostApduService;->mNfcService:Landroid/os/Messenger;
@@ -51167,8 +47729,6 @@
 Landroid/nfc/cardemulation/HostApduService;->MSG_RESPONSE_APDU:I
 Landroid/nfc/cardemulation/HostApduService;->MSG_UNHANDLED:I
 Landroid/nfc/cardemulation/HostApduService;->TAG:Ljava/lang/String;
-Landroid/nfc/cardemulation/HostNfcFService$MsgHandler;
-Landroid/nfc/cardemulation/HostNfcFService$MsgHandler;-><init>()V
 Landroid/nfc/cardemulation/HostNfcFService;->KEY_DATA:Ljava/lang/String;
 Landroid/nfc/cardemulation/HostNfcFService;->KEY_MESSENGER:Ljava/lang/String;
 Landroid/nfc/cardemulation/HostNfcFService;->mMessenger:Landroid/os/Messenger;
@@ -51188,7 +47748,6 @@
 Landroid/nfc/cardemulation/NfcFCardEmulation;->sIsInitialized:Z
 Landroid/nfc/cardemulation/NfcFCardEmulation;->sService:Landroid/nfc/INfcFCardEmulation;
 Landroid/nfc/cardemulation/NfcFCardEmulation;->TAG:Ljava/lang/String;
-Landroid/nfc/cardemulation/NfcFServiceInfo;
 Landroid/nfc/cardemulation/NfcFServiceInfo;-><init>(Landroid/content/pm/PackageManager;Landroid/content/pm/ResolveInfo;)V
 Landroid/nfc/cardemulation/NfcFServiceInfo;-><init>(Landroid/content/pm/ResolveInfo;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
 Landroid/nfc/cardemulation/NfcFServiceInfo;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -51213,7 +47772,6 @@
 Landroid/nfc/cardemulation/NfcFServiceInfo;->setOrReplaceDynamicNfcid2(Ljava/lang/String;)V
 Landroid/nfc/cardemulation/NfcFServiceInfo;->setOrReplaceDynamicSystemCode(Ljava/lang/String;)V
 Landroid/nfc/cardemulation/NfcFServiceInfo;->TAG:Ljava/lang/String;
-Landroid/nfc/ErrorCodes;
 Landroid/nfc/ErrorCodes;-><init>()V
 Landroid/nfc/ErrorCodes;->asString(I)Ljava/lang/String;
 Landroid/nfc/ErrorCodes;->ERROR_BUFFER_TO_SMALL:I
@@ -51239,25 +47797,21 @@
 Landroid/nfc/ErrorCodes;->ERROR_TIMEOUT:I
 Landroid/nfc/ErrorCodes;->ERROR_WRITE:I
 Landroid/nfc/ErrorCodes;->SUCCESS:I
-Landroid/nfc/IAppCallback$Stub$Proxy;
 Landroid/nfc/IAppCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/nfc/IAppCallback$Stub$Proxy;->createBeamShareData(B)Landroid/nfc/BeamShareData;
 Landroid/nfc/IAppCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/nfc/IAppCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/nfc/IAppCallback$Stub$Proxy;->onNdefPushComplete(B)V
 Landroid/nfc/IAppCallback$Stub$Proxy;->onTagDiscovered(Landroid/nfc/Tag;)V
-Landroid/nfc/IAppCallback$Stub;
 Landroid/nfc/IAppCallback$Stub;-><init>()V
 Landroid/nfc/IAppCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/nfc/IAppCallback;
 Landroid/nfc/IAppCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/nfc/IAppCallback$Stub;->TRANSACTION_createBeamShareData:I
 Landroid/nfc/IAppCallback$Stub;->TRANSACTION_onNdefPushComplete:I
 Landroid/nfc/IAppCallback$Stub;->TRANSACTION_onTagDiscovered:I
-Landroid/nfc/IAppCallback;
 Landroid/nfc/IAppCallback;->createBeamShareData(B)Landroid/nfc/BeamShareData;
 Landroid/nfc/IAppCallback;->onNdefPushComplete(B)V
 Landroid/nfc/IAppCallback;->onTagDiscovered(Landroid/nfc/Tag;)V
-Landroid/nfc/INfcAdapter$Stub$Proxy;
 Landroid/nfc/INfcAdapter$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/nfc/INfcAdapter$Stub$Proxy;->addNfcUnlockHandler(Landroid/nfc/INfcUnlockHandler;[I)V
 Landroid/nfc/INfcAdapter$Stub$Proxy;->disable(Z)Z
@@ -51285,7 +47839,6 @@
 Landroid/nfc/INfcAdapter$Stub$Proxy;->setP2pModes(II)V
 Landroid/nfc/INfcAdapter$Stub$Proxy;->setReaderMode(Landroid/os/IBinder;Landroid/nfc/IAppCallback;ILandroid/os/Bundle;)V
 Landroid/nfc/INfcAdapter$Stub$Proxy;->verifyNfcPermission()V
-Landroid/nfc/INfcAdapter$Stub;
 Landroid/nfc/INfcAdapter$Stub;-><init>()V
 Landroid/nfc/INfcAdapter$Stub;->asInterface(Landroid/os/IBinder;)Landroid/nfc/INfcAdapter;
 Landroid/nfc/INfcAdapter$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -51312,7 +47865,6 @@
 Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_setP2pModes:I
 Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_setReaderMode:I
 Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_verifyNfcPermission:I
-Landroid/nfc/INfcAdapter;
 Landroid/nfc/INfcAdapter;->addNfcUnlockHandler(Landroid/nfc/INfcUnlockHandler;[I)V
 Landroid/nfc/INfcAdapter;->disable(Z)Z
 Landroid/nfc/INfcAdapter;->disableNdefPush()Z
@@ -51337,7 +47889,6 @@
 Landroid/nfc/INfcAdapter;->setP2pModes(II)V
 Landroid/nfc/INfcAdapter;->setReaderMode(Landroid/os/IBinder;Landroid/nfc/IAppCallback;ILandroid/os/Bundle;)V
 Landroid/nfc/INfcAdapter;->verifyNfcPermission()V
-Landroid/nfc/INfcAdapterExtras$Stub$Proxy;
 Landroid/nfc/INfcAdapterExtras$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/nfc/INfcAdapterExtras$Stub$Proxy;->authenticate(Ljava/lang/String;[B)V
 Landroid/nfc/INfcAdapterExtras$Stub$Proxy;->close(Ljava/lang/String;Landroid/os/IBinder;)Landroid/os/Bundle;
@@ -51348,7 +47899,6 @@
 Landroid/nfc/INfcAdapterExtras$Stub$Proxy;->open(Ljava/lang/String;Landroid/os/IBinder;)Landroid/os/Bundle;
 Landroid/nfc/INfcAdapterExtras$Stub$Proxy;->setCardEmulationRoute(Ljava/lang/String;I)V
 Landroid/nfc/INfcAdapterExtras$Stub$Proxy;->transceive(Ljava/lang/String;[B)Landroid/os/Bundle;
-Landroid/nfc/INfcAdapterExtras$Stub;
 Landroid/nfc/INfcAdapterExtras$Stub;-><init>()V
 Landroid/nfc/INfcAdapterExtras$Stub;->asInterface(Landroid/os/IBinder;)Landroid/nfc/INfcAdapterExtras;
 Landroid/nfc/INfcAdapterExtras$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -51359,8 +47909,6 @@
 Landroid/nfc/INfcAdapterExtras$Stub;->TRANSACTION_open:I
 Landroid/nfc/INfcAdapterExtras$Stub;->TRANSACTION_setCardEmulationRoute:I
 Landroid/nfc/INfcAdapterExtras$Stub;->TRANSACTION_transceive:I
-Landroid/nfc/INfcAdapterExtras;
-Landroid/nfc/INfcCardEmulation$Stub$Proxy;
 Landroid/nfc/INfcCardEmulation$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/nfc/INfcCardEmulation$Stub$Proxy;->getAidGroupForService(ILandroid/content/ComponentName;Ljava/lang/String;)Landroid/nfc/cardemulation/AidGroup;
 Landroid/nfc/INfcCardEmulation$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -51375,7 +47923,6 @@
 Landroid/nfc/INfcCardEmulation$Stub$Proxy;->setPreferredService(Landroid/content/ComponentName;)Z
 Landroid/nfc/INfcCardEmulation$Stub$Proxy;->supportsAidPrefixRegistration()Z
 Landroid/nfc/INfcCardEmulation$Stub$Proxy;->unsetPreferredService()Z
-Landroid/nfc/INfcCardEmulation$Stub;
 Landroid/nfc/INfcCardEmulation$Stub;-><init>()V
 Landroid/nfc/INfcCardEmulation$Stub;->asInterface(Landroid/os/IBinder;)Landroid/nfc/INfcCardEmulation;
 Landroid/nfc/INfcCardEmulation$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -51390,7 +47937,6 @@
 Landroid/nfc/INfcCardEmulation$Stub;->TRANSACTION_setPreferredService:I
 Landroid/nfc/INfcCardEmulation$Stub;->TRANSACTION_supportsAidPrefixRegistration:I
 Landroid/nfc/INfcCardEmulation$Stub;->TRANSACTION_unsetPreferredService:I
-Landroid/nfc/INfcCardEmulation;
 Landroid/nfc/INfcCardEmulation;->getAidGroupForService(ILandroid/content/ComponentName;Ljava/lang/String;)Landroid/nfc/cardemulation/AidGroup;
 Landroid/nfc/INfcCardEmulation;->getServices(ILjava/lang/String;)Ljava/util/List;
 Landroid/nfc/INfcCardEmulation;->isDefaultServiceForAid(ILandroid/content/ComponentName;Ljava/lang/String;)Z
@@ -51402,7 +47948,6 @@
 Landroid/nfc/INfcCardEmulation;->setPreferredService(Landroid/content/ComponentName;)Z
 Landroid/nfc/INfcCardEmulation;->supportsAidPrefixRegistration()Z
 Landroid/nfc/INfcCardEmulation;->unsetPreferredService()Z
-Landroid/nfc/INfcDta$Stub$Proxy;
 Landroid/nfc/INfcDta$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/nfc/INfcDta$Stub$Proxy;->disableClient()V
 Landroid/nfc/INfcDta$Stub$Proxy;->disableDta()V
@@ -51413,7 +47958,6 @@
 Landroid/nfc/INfcDta$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/nfc/INfcDta$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/nfc/INfcDta$Stub$Proxy;->registerMessageService(Ljava/lang/String;)Z
-Landroid/nfc/INfcDta$Stub;
 Landroid/nfc/INfcDta$Stub;-><init>()V
 Landroid/nfc/INfcDta$Stub;->asInterface(Landroid/os/IBinder;)Landroid/nfc/INfcDta;
 Landroid/nfc/INfcDta$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -51424,7 +47968,6 @@
 Landroid/nfc/INfcDta$Stub;->TRANSACTION_enableDta:I
 Landroid/nfc/INfcDta$Stub;->TRANSACTION_enableServer:I
 Landroid/nfc/INfcDta$Stub;->TRANSACTION_registerMessageService:I
-Landroid/nfc/INfcDta;
 Landroid/nfc/INfcDta;->disableClient()V
 Landroid/nfc/INfcDta;->disableDta()V
 Landroid/nfc/INfcDta;->disableServer()V
@@ -51432,7 +47975,6 @@
 Landroid/nfc/INfcDta;->enableDta()V
 Landroid/nfc/INfcDta;->enableServer(Ljava/lang/String;IIII)Z
 Landroid/nfc/INfcDta;->registerMessageService(Ljava/lang/String;)Z
-Landroid/nfc/INfcFCardEmulation$Stub$Proxy;
 Landroid/nfc/INfcFCardEmulation$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/nfc/INfcFCardEmulation$Stub$Proxy;->disableNfcFForegroundService()Z
 Landroid/nfc/INfcFCardEmulation$Stub$Proxy;->enableNfcFForegroundService(Landroid/content/ComponentName;)Z
@@ -51445,7 +47987,6 @@
 Landroid/nfc/INfcFCardEmulation$Stub$Proxy;->registerSystemCodeForService(ILandroid/content/ComponentName;Ljava/lang/String;)Z
 Landroid/nfc/INfcFCardEmulation$Stub$Proxy;->removeSystemCodeForService(ILandroid/content/ComponentName;)Z
 Landroid/nfc/INfcFCardEmulation$Stub$Proxy;->setNfcid2ForService(ILandroid/content/ComponentName;Ljava/lang/String;)Z
-Landroid/nfc/INfcFCardEmulation$Stub;
 Landroid/nfc/INfcFCardEmulation$Stub;-><init>()V
 Landroid/nfc/INfcFCardEmulation$Stub;->asInterface(Landroid/os/IBinder;)Landroid/nfc/INfcFCardEmulation;
 Landroid/nfc/INfcFCardEmulation$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -51458,7 +47999,6 @@
 Landroid/nfc/INfcFCardEmulation$Stub;->TRANSACTION_registerSystemCodeForService:I
 Landroid/nfc/INfcFCardEmulation$Stub;->TRANSACTION_removeSystemCodeForService:I
 Landroid/nfc/INfcFCardEmulation$Stub;->TRANSACTION_setNfcid2ForService:I
-Landroid/nfc/INfcFCardEmulation;
 Landroid/nfc/INfcFCardEmulation;->disableNfcFForegroundService()Z
 Landroid/nfc/INfcFCardEmulation;->enableNfcFForegroundService(Landroid/content/ComponentName;)Z
 Landroid/nfc/INfcFCardEmulation;->getMaxNumOfRegisterableSystemCodes()I
@@ -51468,7 +48008,6 @@
 Landroid/nfc/INfcFCardEmulation;->registerSystemCodeForService(ILandroid/content/ComponentName;Ljava/lang/String;)Z
 Landroid/nfc/INfcFCardEmulation;->removeSystemCodeForService(ILandroid/content/ComponentName;)Z
 Landroid/nfc/INfcFCardEmulation;->setNfcid2ForService(ILandroid/content/ComponentName;Ljava/lang/String;)Z
-Landroid/nfc/INfcTag$Stub$Proxy;
 Landroid/nfc/INfcTag$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/nfc/INfcTag$Stub$Proxy;->canMakeReadOnly(I)Z
 Landroid/nfc/INfcTag$Stub$Proxy;->connect(II)I
@@ -51490,7 +48029,6 @@
 Landroid/nfc/INfcTag$Stub$Proxy;->resetTimeouts()V
 Landroid/nfc/INfcTag$Stub$Proxy;->setTimeout(II)I
 Landroid/nfc/INfcTag$Stub$Proxy;->transceive(I[BZ)Landroid/nfc/TransceiveResult;
-Landroid/nfc/INfcTag$Stub;
 Landroid/nfc/INfcTag$Stub;-><init>()V
 Landroid/nfc/INfcTag$Stub;->asInterface(Landroid/os/IBinder;)Landroid/nfc/INfcTag;
 Landroid/nfc/INfcTag$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -51512,7 +48050,6 @@
 Landroid/nfc/INfcTag$Stub;->TRANSACTION_resetTimeouts:I
 Landroid/nfc/INfcTag$Stub;->TRANSACTION_setTimeout:I
 Landroid/nfc/INfcTag$Stub;->TRANSACTION_transceive:I
-Landroid/nfc/INfcTag;
 Landroid/nfc/INfcTag;->canMakeReadOnly(I)Z
 Landroid/nfc/INfcTag;->connect(II)I
 Landroid/nfc/INfcTag;->formatNdef(I[B)I
@@ -51531,29 +48068,23 @@
 Landroid/nfc/INfcTag;->resetTimeouts()V
 Landroid/nfc/INfcTag;->setTimeout(II)I
 Landroid/nfc/INfcTag;->transceive(I[BZ)Landroid/nfc/TransceiveResult;
-Landroid/nfc/INfcUnlockHandler$Stub$Proxy;
 Landroid/nfc/INfcUnlockHandler$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/nfc/INfcUnlockHandler$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/nfc/INfcUnlockHandler$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/nfc/INfcUnlockHandler$Stub$Proxy;->onUnlockAttempted(Landroid/nfc/Tag;)Z
-Landroid/nfc/INfcUnlockHandler$Stub;
 Landroid/nfc/INfcUnlockHandler$Stub;-><init>()V
 Landroid/nfc/INfcUnlockHandler$Stub;->asInterface(Landroid/os/IBinder;)Landroid/nfc/INfcUnlockHandler;
 Landroid/nfc/INfcUnlockHandler$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/nfc/INfcUnlockHandler$Stub;->TRANSACTION_onUnlockAttempted:I
-Landroid/nfc/INfcUnlockHandler;
 Landroid/nfc/INfcUnlockHandler;->onUnlockAttempted(Landroid/nfc/Tag;)Z
-Landroid/nfc/ITagRemovedCallback$Stub$Proxy;
 Landroid/nfc/ITagRemovedCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/nfc/ITagRemovedCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/nfc/ITagRemovedCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/nfc/ITagRemovedCallback$Stub$Proxy;->onTagRemoved()V
-Landroid/nfc/ITagRemovedCallback$Stub;
 Landroid/nfc/ITagRemovedCallback$Stub;-><init>()V
 Landroid/nfc/ITagRemovedCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/nfc/ITagRemovedCallback;
 Landroid/nfc/ITagRemovedCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/nfc/ITagRemovedCallback$Stub;->TRANSACTION_onTagRemoved:I
-Landroid/nfc/ITagRemovedCallback;
 Landroid/nfc/ITagRemovedCallback;->onTagRemoved()V
 Landroid/nfc/NdefMessage;->mRecords:[Landroid/nfc/NdefRecord;
 Landroid/nfc/NdefRecord;->bytesToString([B)Ljava/lang/StringBuilder;
@@ -51577,8 +48108,6 @@
 Landroid/nfc/NdefRecord;->URI_PREFIX_MAP:[Ljava/lang/String;
 Landroid/nfc/NdefRecord;->validateTnf(S[B[B[B)Ljava/lang/String;
 Landroid/nfc/NdefRecord;->writeToByteBuffer(Ljava/nio/ByteBuffer;ZZ)V
-Landroid/nfc/NfcActivityManager$NfcActivityState;
-Landroid/nfc/NfcActivityManager$NfcActivityState;-><init>(Landroid/app/Activity;)V
 Landroid/nfc/NfcActivityManager$NfcActivityState;->activity:Landroid/app/Activity;
 Landroid/nfc/NfcActivityManager$NfcActivityState;->destroy()V
 Landroid/nfc/NfcActivityManager$NfcActivityState;->flags:I
@@ -51592,13 +48121,10 @@
 Landroid/nfc/NfcActivityManager$NfcActivityState;->token:Landroid/os/Binder;
 Landroid/nfc/NfcActivityManager$NfcActivityState;->uriCallback:Landroid/nfc/NfcAdapter$CreateBeamUrisCallback;
 Landroid/nfc/NfcActivityManager$NfcActivityState;->uris:[Landroid/net/Uri;
-Landroid/nfc/NfcActivityManager$NfcApplicationState;
-Landroid/nfc/NfcActivityManager$NfcApplicationState;-><init>(Landroid/app/Application;)V
 Landroid/nfc/NfcActivityManager$NfcApplicationState;->app:Landroid/app/Application;
 Landroid/nfc/NfcActivityManager$NfcApplicationState;->refCount:I
 Landroid/nfc/NfcActivityManager$NfcApplicationState;->register()V
 Landroid/nfc/NfcActivityManager$NfcApplicationState;->unregister()V
-Landroid/nfc/NfcActivityManager;
 Landroid/nfc/NfcActivityManager;-><init>(Landroid/nfc/NfcAdapter;)V
 Landroid/nfc/NfcActivityManager;->createBeamShareData(B)Landroid/nfc/BeamShareData;
 Landroid/nfc/NfcActivityManager;->DBG:Ljava/lang/Boolean;
@@ -51683,7 +48209,6 @@
 Landroid/nfc/Tag;->setConnectedTechnology(I)V
 Landroid/nfc/Tag;->setTechnologyDisconnected()V
 Landroid/nfc/Tag;->writeBytesWithNull(Landroid/os/Parcel;[B)V
-Landroid/nfc/tech/BasicTagTechnology;
 Landroid/nfc/tech/BasicTagTechnology;-><init>(Landroid/nfc/Tag;I)V
 Landroid/nfc/tech/BasicTagTechnology;->checkConnected()V
 Landroid/nfc/tech/BasicTagTechnology;->getMaxTransceiveLengthInternal()I
@@ -51779,12 +48304,9 @@
 Landroid/nfc/tech/TagTechnology;->NFC_F:I
 Landroid/nfc/tech/TagTechnology;->NFC_V:I
 Landroid/nfc/tech/TagTechnology;->reconnect()V
-Landroid/nfc/TechListParcel;
-Landroid/nfc/TechListParcel;-><init>([[[Ljava/lang/String;)V
 Landroid/nfc/TechListParcel;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/nfc/TechListParcel;->getTechLists()[[Ljava/lang/String;
 Landroid/nfc/TechListParcel;->mTechLists:[[Ljava/lang/String;
-Landroid/nfc/TransceiveResult;
 Landroid/nfc/TransceiveResult;-><init>(I[B)V
 Landroid/nfc/TransceiveResult;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/nfc/TransceiveResult;->getResponseOrThrow()[B
@@ -51842,13 +48364,9 @@
 Landroid/opengl/GLException;->getError()I
 Landroid/opengl/GLException;->getErrorString(I)Ljava/lang/String;
 Landroid/opengl/GLException;->mError:I
-Landroid/opengl/GLSurfaceView$BaseConfigChooser;
-Landroid/opengl/GLSurfaceView$BaseConfigChooser;-><init>([I)V
 Landroid/opengl/GLSurfaceView$BaseConfigChooser;->chooseConfig(Ljavax/microedition/khronos/egl/EGL10;Ljavax/microedition/khronos/egl/EGLDisplay;[Ljavax/microedition/khronos/egl/EGLConfig;)Ljavax/microedition/khronos/egl/EGLConfig;
 Landroid/opengl/GLSurfaceView$BaseConfigChooser;->filterConfigSpec([I)[I
 Landroid/opengl/GLSurfaceView$BaseConfigChooser;->mConfigSpec:[I
-Landroid/opengl/GLSurfaceView$ComponentSizeChooser;
-Landroid/opengl/GLSurfaceView$ComponentSizeChooser;-><init>(IIIIII)V
 Landroid/opengl/GLSurfaceView$ComponentSizeChooser;->chooseConfig(Ljavax/microedition/khronos/egl/EGL10;Ljavax/microedition/khronos/egl/EGLDisplay;[Ljavax/microedition/khronos/egl/EGLConfig;)Ljavax/microedition/khronos/egl/EGLConfig;
 Landroid/opengl/GLSurfaceView$ComponentSizeChooser;->findConfigAttrib(Ljavax/microedition/khronos/egl/EGL10;Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;II)I
 Landroid/opengl/GLSurfaceView$ComponentSizeChooser;->mAlphaSize:I
@@ -51858,12 +48376,8 @@
 Landroid/opengl/GLSurfaceView$ComponentSizeChooser;->mRedSize:I
 Landroid/opengl/GLSurfaceView$ComponentSizeChooser;->mStencilSize:I
 Landroid/opengl/GLSurfaceView$ComponentSizeChooser;->mValue:[I
-Landroid/opengl/GLSurfaceView$DefaultContextFactory;
-Landroid/opengl/GLSurfaceView$DefaultContextFactory;-><init>()V
 Landroid/opengl/GLSurfaceView$DefaultContextFactory;->EGL_CONTEXT_CLIENT_VERSION:I
-Landroid/opengl/GLSurfaceView$DefaultWindowSurfaceFactory;
 Landroid/opengl/GLSurfaceView$DefaultWindowSurfaceFactory;-><init>()V
-Landroid/opengl/GLSurfaceView$EglHelper;
 Landroid/opengl/GLSurfaceView$EglHelper;-><init>(Ljava/lang/ref/WeakReference;)V
 Landroid/opengl/GLSurfaceView$EglHelper;->createGL()Ljavax/microedition/khronos/opengles/GL;
 Landroid/opengl/GLSurfaceView$EglHelper;->createSurface()Z
@@ -51881,7 +48395,6 @@
 Landroid/opengl/GLSurfaceView$EglHelper;->swap()I
 Landroid/opengl/GLSurfaceView$EglHelper;->throwEglException(Ljava/lang/String;)V
 Landroid/opengl/GLSurfaceView$EglHelper;->throwEglException(Ljava/lang/String;I)V
-Landroid/opengl/GLSurfaceView$GLThread;
 Landroid/opengl/GLSurfaceView$GLThread;-><init>(Ljava/lang/ref/WeakReference;)V
 Landroid/opengl/GLSurfaceView$GLThread;->ableToDraw()Z
 Landroid/opengl/GLSurfaceView$GLThread;->getRenderMode()I
@@ -51921,17 +48434,13 @@
 Landroid/opengl/GLSurfaceView$GLThread;->stopEglSurfaceLocked()V
 Landroid/opengl/GLSurfaceView$GLThread;->surfaceCreated()V
 Landroid/opengl/GLSurfaceView$GLThread;->surfaceDestroyed()V
-Landroid/opengl/GLSurfaceView$GLThreadManager;
 Landroid/opengl/GLSurfaceView$GLThreadManager;-><init>()V
 Landroid/opengl/GLSurfaceView$GLThreadManager;->releaseEglContextLocked(Landroid/opengl/GLSurfaceView$GLThread;)V
 Landroid/opengl/GLSurfaceView$GLThreadManager;->TAG:Ljava/lang/String;
 Landroid/opengl/GLSurfaceView$GLThreadManager;->threadExiting(Landroid/opengl/GLSurfaceView$GLThread;)V
-Landroid/opengl/GLSurfaceView$LogWriter;
 Landroid/opengl/GLSurfaceView$LogWriter;-><init>()V
 Landroid/opengl/GLSurfaceView$LogWriter;->flushBuilder()V
 Landroid/opengl/GLSurfaceView$LogWriter;->mBuilder:Ljava/lang/StringBuilder;
-Landroid/opengl/GLSurfaceView$SimpleEGLConfigChooser;
-Landroid/opengl/GLSurfaceView$SimpleEGLConfigChooser;-><init>(Z)V
 Landroid/opengl/GLSurfaceView;->checkRenderThreadState()V
 Landroid/opengl/GLSurfaceView;->init()V
 Landroid/opengl/GLSurfaceView;->LOG_ATTACH_DETACH:Z
@@ -51959,20 +48468,13 @@
 Landroid/opengl/GLUtils;->native_texImage2D(IIILandroid/graphics/Bitmap;II)I
 Landroid/opengl/GLUtils;->native_texSubImage2D(IIIILandroid/graphics/Bitmap;II)I
 Landroid/opengl/Matrix;->sTemp:[F
-Landroid/os/AsyncResult;
-Landroid/os/AsyncTask$AsyncTaskResult;
-Landroid/os/AsyncTask$AsyncTaskResult;-><init>(Landroid/os/AsyncTask;[[Ljava/lang/Object;)V
 Landroid/os/AsyncTask$AsyncTaskResult;->mData:[Ljava/lang/Object;
 Landroid/os/AsyncTask$AsyncTaskResult;->mTask:Landroid/os/AsyncTask;
-Landroid/os/AsyncTask$InternalHandler;
 Landroid/os/AsyncTask$InternalHandler;-><init>(Landroid/os/Looper;)V
-Landroid/os/AsyncTask$SerialExecutor;
 Landroid/os/AsyncTask$SerialExecutor;-><init>()V
 Landroid/os/AsyncTask$SerialExecutor;->mActive:Ljava/lang/Runnable;
 Landroid/os/AsyncTask$SerialExecutor;->mTasks:Ljava/util/ArrayDeque;
 Landroid/os/AsyncTask$SerialExecutor;->scheduleNext()V
-Landroid/os/AsyncTask$Status;-><init>()V
-Landroid/os/AsyncTask$WorkerRunnable;
 Landroid/os/AsyncTask$WorkerRunnable;-><init>()V
 Landroid/os/AsyncTask$WorkerRunnable;->mParams:[Ljava/lang/Object;
 Landroid/os/AsyncTask;-><init>(Landroid/os/Handler;)V
@@ -51994,15 +48496,11 @@
 Landroid/os/AsyncTask;->sHandler:Landroid/os/AsyncTask$InternalHandler;
 Landroid/os/AsyncTask;->sPoolWorkQueue:Ljava/util/concurrent/BlockingQueue;
 Landroid/os/AsyncTask;->sThreadFactory:Ljava/util/concurrent/ThreadFactory;
-Landroid/os/BackTraceProto$Stack;
-Landroid/os/BackTraceProto$Stack;-><init>()V
 Landroid/os/BackTraceProto$Stack;->DUMP:J
 Landroid/os/BackTraceProto$Stack;->DUMP_DURATION_NS:J
 Landroid/os/BackTraceProto$Stack;->PID:J
-Landroid/os/BackTraceProto;
 Landroid/os/BackTraceProto;-><init>()V
 Landroid/os/BackTraceProto;->TRACES:J
-Landroid/os/BaseBundle$NoImagePreloadHolder;
 Landroid/os/BaseBundle$NoImagePreloadHolder;-><init>()V
 Landroid/os/BaseBundle$NoImagePreloadHolder;->EMPTY_PARCEL:Landroid/os/Parcel;
 Landroid/os/BaseBundle;-><init>()V
@@ -52088,7 +48586,6 @@
 Landroid/os/BatteryManager;->mBatteryStats:Lcom/android/internal/app/IBatteryStats;
 Landroid/os/BatteryManager;->mContext:Landroid/content/Context;
 Landroid/os/BatteryManager;->queryProperty(I)J
-Landroid/os/BatteryManagerInternal;
 Landroid/os/BatteryManagerInternal;-><init>()V
 Landroid/os/BatteryManagerInternal;->getBatteryChargeCounter()I
 Landroid/os/BatteryManagerInternal;->getBatteryFullCharge()I
@@ -52097,7 +48594,6 @@
 Landroid/os/BatteryManagerInternal;->getInvalidCharger()I
 Landroid/os/BatteryManagerInternal;->getPlugType()I
 Landroid/os/BatteryManagerInternal;->isPowered(I)Z
-Landroid/os/BatteryProperties;
 Landroid/os/BatteryProperties;-><init>()V
 Landroid/os/BatteryProperties;-><init>(Landroid/os/Parcel;)V
 Landroid/os/BatteryProperties;->batteryChargeCounter:I
@@ -52116,7 +48612,6 @@
 Landroid/os/BatteryProperties;->maxChargingCurrent:I
 Landroid/os/BatteryProperties;->maxChargingVoltage:I
 Landroid/os/BatteryProperties;->set(Landroid/os/BatteryProperties;)V
-Landroid/os/BatteryProperty;
 Landroid/os/BatteryProperty;-><init>()V
 Landroid/os/BatteryProperty;-><init>(Landroid/os/Parcel;)V
 Landroid/os/BatteryProperty;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -52124,7 +48619,6 @@
 Landroid/os/BatteryProperty;->mValueLong:J
 Landroid/os/BatteryProperty;->readFromParcel(Landroid/os/Parcel;)V
 Landroid/os/BatteryProperty;->setLong(J)V
-Landroid/os/BatteryStats$BitDescription;
 Landroid/os/BatteryStats$BitDescription;-><init>(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V
 Landroid/os/BatteryStats$BitDescription;-><init>(ILjava/lang/String;Ljava/lang/String;)V
 Landroid/os/BatteryStats$BitDescription;->mask:I
@@ -52133,7 +48627,6 @@
 Landroid/os/BatteryStats$BitDescription;->shortName:Ljava/lang/String;
 Landroid/os/BatteryStats$BitDescription;->shortValues:[Ljava/lang/String;
 Landroid/os/BatteryStats$BitDescription;->values:[Ljava/lang/String;
-Landroid/os/BatteryStats$ControllerActivityCounter;
 Landroid/os/BatteryStats$ControllerActivityCounter;-><init>()V
 Landroid/os/BatteryStats$ControllerActivityCounter;->getIdleTimeCounter()Landroid/os/BatteryStats$LongCounter;
 Landroid/os/BatteryStats$ControllerActivityCounter;->getPowerCounter()Landroid/os/BatteryStats$LongCounter;
@@ -52141,22 +48634,18 @@
 Landroid/os/BatteryStats$ControllerActivityCounter;->getScanTimeCounter()Landroid/os/BatteryStats$LongCounter;
 Landroid/os/BatteryStats$ControllerActivityCounter;->getSleepTimeCounter()Landroid/os/BatteryStats$LongCounter;
 Landroid/os/BatteryStats$ControllerActivityCounter;->getTxTimeCounters()[Landroid/os/BatteryStats$LongCounter;
-Landroid/os/BatteryStats$Counter;
 Landroid/os/BatteryStats$Counter;->logState(Landroid/util/Printer;Ljava/lang/String;)V
-Landroid/os/BatteryStats$DailyItem;
 Landroid/os/BatteryStats$DailyItem;-><init>()V
 Landroid/os/BatteryStats$DailyItem;->mChargeSteps:Landroid/os/BatteryStats$LevelStepTracker;
 Landroid/os/BatteryStats$DailyItem;->mDischargeSteps:Landroid/os/BatteryStats$LevelStepTracker;
 Landroid/os/BatteryStats$DailyItem;->mEndTime:J
 Landroid/os/BatteryStats$DailyItem;->mPackageChanges:Ljava/util/ArrayList;
 Landroid/os/BatteryStats$DailyItem;->mStartTime:J
-Landroid/os/BatteryStats$HistoryEventTracker;
 Landroid/os/BatteryStats$HistoryEventTracker;-><init>()V
 Landroid/os/BatteryStats$HistoryEventTracker;->getStateForEvent(I)Ljava/util/HashMap;
 Landroid/os/BatteryStats$HistoryEventTracker;->mActiveEvents:[Ljava/util/HashMap;
 Landroid/os/BatteryStats$HistoryEventTracker;->removeEvents(I)V
 Landroid/os/BatteryStats$HistoryEventTracker;->updateState(ILjava/lang/String;II)Z
-Landroid/os/BatteryStats$HistoryItem;
 Landroid/os/BatteryStats$HistoryItem;-><init>(JLandroid/os/Parcel;)V
 Landroid/os/BatteryStats$HistoryItem;->batteryChargeUAh:I
 Landroid/os/BatteryStats$HistoryItem;->batteryTemperature:S
@@ -52274,7 +48763,6 @@
 Landroid/os/BatteryStats$HistoryItem;->stepDetails:Landroid/os/BatteryStats$HistoryStepDetails;
 Landroid/os/BatteryStats$HistoryItem;->wakelockTag:Landroid/os/BatteryStats$HistoryTag;
 Landroid/os/BatteryStats$HistoryItem;->wakeReasonTag:Landroid/os/BatteryStats$HistoryTag;
-Landroid/os/BatteryStats$HistoryPrinter;
 Landroid/os/BatteryStats$HistoryPrinter;-><init>()V
 Landroid/os/BatteryStats$HistoryPrinter;->lastTime:J
 Landroid/os/BatteryStats$HistoryPrinter;->oldChargeMAh:I
@@ -52292,7 +48780,6 @@
 Landroid/os/BatteryStats$HistoryPrinter;->printStepCpuUidCheckinDetails(Ljava/lang/StringBuilder;III)V
 Landroid/os/BatteryStats$HistoryPrinter;->printStepCpuUidDetails(Ljava/lang/StringBuilder;III)V
 Landroid/os/BatteryStats$HistoryPrinter;->reset()V
-Landroid/os/BatteryStats$HistoryStepDetails;
 Landroid/os/BatteryStats$HistoryStepDetails;-><init>()V
 Landroid/os/BatteryStats$HistoryStepDetails;->appCpuSTime1:I
 Landroid/os/BatteryStats$HistoryStepDetails;->appCpuSTime2:I
@@ -52316,7 +48803,6 @@
 Landroid/os/BatteryStats$HistoryStepDetails;->systemTime:I
 Landroid/os/BatteryStats$HistoryStepDetails;->userTime:I
 Landroid/os/BatteryStats$HistoryStepDetails;->writeToParcel(Landroid/os/Parcel;)V
-Landroid/os/BatteryStats$HistoryTag;
 Landroid/os/BatteryStats$HistoryTag;-><init>()V
 Landroid/os/BatteryStats$HistoryTag;->poolIdx:I
 Landroid/os/BatteryStats$HistoryTag;->readFromParcel(Landroid/os/Parcel;)V
@@ -52325,9 +48811,7 @@
 Landroid/os/BatteryStats$HistoryTag;->string:Ljava/lang/String;
 Landroid/os/BatteryStats$HistoryTag;->uid:I
 Landroid/os/BatteryStats$HistoryTag;->writeToParcel(Landroid/os/Parcel;I)V
-Landroid/os/BatteryStats$IntToString;
 Landroid/os/BatteryStats$IntToString;->applyAsString(I)Ljava/lang/String;
-Landroid/os/BatteryStats$LevelStepTracker;
 Landroid/os/BatteryStats$LevelStepTracker;-><init>(I)V
 Landroid/os/BatteryStats$LevelStepTracker;-><init>(I[J)V
 Landroid/os/BatteryStats$LevelStepTracker;->addLevelSteps(IJJ)V
@@ -52347,20 +48831,16 @@
 Landroid/os/BatteryStats$LevelStepTracker;->mStepDurations:[J
 Landroid/os/BatteryStats$LevelStepTracker;->readFromParcel(Landroid/os/Parcel;)V
 Landroid/os/BatteryStats$LevelStepTracker;->writeToParcel(Landroid/os/Parcel;)V
-Landroid/os/BatteryStats$LongCounter;
 Landroid/os/BatteryStats$LongCounter;-><init>()V
 Landroid/os/BatteryStats$LongCounter;->getCountLocked(I)J
 Landroid/os/BatteryStats$LongCounter;->logState(Landroid/util/Printer;Ljava/lang/String;)V
-Landroid/os/BatteryStats$LongCounterArray;
 Landroid/os/BatteryStats$LongCounterArray;-><init>()V
 Landroid/os/BatteryStats$LongCounterArray;->getCountsLocked(I)[J
 Landroid/os/BatteryStats$LongCounterArray;->logState(Landroid/util/Printer;Ljava/lang/String;)V
-Landroid/os/BatteryStats$PackageChange;
 Landroid/os/BatteryStats$PackageChange;-><init>()V
 Landroid/os/BatteryStats$PackageChange;->mPackageName:Ljava/lang/String;
 Landroid/os/BatteryStats$PackageChange;->mUpdate:Z
 Landroid/os/BatteryStats$PackageChange;->mVersionCode:J
-Landroid/os/BatteryStats$Timer;
 Landroid/os/BatteryStats$Timer;->getCurrentDurationMsLocked(J)J
 Landroid/os/BatteryStats$Timer;->getMaxDurationMsLocked(J)J
 Landroid/os/BatteryStats$Timer;->getSubTimer()Landroid/os/BatteryStats$Timer;
@@ -52368,31 +48848,21 @@
 Landroid/os/BatteryStats$Timer;->getTotalDurationMsLocked(J)J
 Landroid/os/BatteryStats$Timer;->isRunningLocked()Z
 Landroid/os/BatteryStats$Timer;->logState(Landroid/util/Printer;Ljava/lang/String;)V
-Landroid/os/BatteryStats$TimerEntry;
 Landroid/os/BatteryStats$TimerEntry;-><init>(Ljava/lang/String;ILandroid/os/BatteryStats$Timer;J)V
 Landroid/os/BatteryStats$TimerEntry;->mId:I
 Landroid/os/BatteryStats$TimerEntry;->mName:Ljava/lang/String;
 Landroid/os/BatteryStats$TimerEntry;->mTime:J
 Landroid/os/BatteryStats$TimerEntry;->mTimer:Landroid/os/BatteryStats$Timer;
-Landroid/os/BatteryStats$Uid$Pid;
-Landroid/os/BatteryStats$Uid$Pid;-><init>()V
 Landroid/os/BatteryStats$Uid$Pid;->mWakeNesting:I
 Landroid/os/BatteryStats$Uid$Pid;->mWakeStartMs:J
 Landroid/os/BatteryStats$Uid$Pid;->mWakeSumMs:J
-Landroid/os/BatteryStats$Uid$Pkg$Serv;
 Landroid/os/BatteryStats$Uid$Pkg$Serv;-><init>()V
-Landroid/os/BatteryStats$Uid$Pkg;
-Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;
 Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;->TYPE_CPU:I
 Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;->TYPE_WAKE:I
-Landroid/os/BatteryStats$Uid$Proc;
 Landroid/os/BatteryStats$Uid$Proc;->getNumAnrs(I)I
 Landroid/os/BatteryStats$Uid$Proc;->getNumCrashes(I)I
 Landroid/os/BatteryStats$Uid$Proc;->isActive()Z
-Landroid/os/BatteryStats$Uid$Sensor;
 Landroid/os/BatteryStats$Uid$Sensor;->getSensorBackgroundTime()Landroid/os/BatteryStats$Timer;
-Landroid/os/BatteryStats$Uid$Wakelock;
-Landroid/os/BatteryStats$Uid;
 Landroid/os/BatteryStats$Uid;->CRITICAL_PROC_STATES:[I
 Landroid/os/BatteryStats$Uid;->getAggregatedPartialWakelockTimer()Landroid/os/BatteryStats$Timer;
 Landroid/os/BatteryStats$Uid;->getBluetoothControllerActivity()Landroid/os/BatteryStats$ControllerActivityCounter;
@@ -52467,7 +48937,6 @@
 Landroid/os/BatteryStats$Uid;->PROCESS_STATE_TOP_SLEEPING:I
 Landroid/os/BatteryStats$Uid;->UID_PROCESS_TYPES:[Ljava/lang/String;
 Landroid/os/BatteryStats$Uid;->USER_ACTIVITY_TYPES:[Ljava/lang/String;
-Landroid/os/BatteryStats;
 Landroid/os/BatteryStats;->AGGREGATED_WAKELOCK_DATA:Ljava/lang/String;
 Landroid/os/BatteryStats;->AGGREGATED_WAKE_TYPE_PARTIAL:I
 Landroid/os/BatteryStats;->APK_DATA:Ljava/lang/String;
@@ -52519,7 +48988,6 @@
 Landroid/os/BatteryStats;->dumpDurationSteps(Landroid/util/proto/ProtoOutputStream;JLandroid/os/BatteryStats$LevelStepTracker;)V
 Landroid/os/BatteryStats;->dumpDurationSteps(Ljava/io/PrintWriter;Ljava/lang/String;Ljava/lang/String;Landroid/os/BatteryStats$LevelStepTracker;Z)Z
 Landroid/os/BatteryStats;->dumpHistoryLocked(Ljava/io/PrintWriter;IJZ)V
-Landroid/os/BatteryStats;->dumpLine(Ljava/io/PrintWriter;ILjava/lang/String;Ljava/lang/String;[[Ljava/lang/Object;)V
 Landroid/os/BatteryStats;->dumpLineHeader(Ljava/io/PrintWriter;ILjava/lang/String;Ljava/lang/String;)V
 Landroid/os/BatteryStats;->dumpLocked(Landroid/content/Context;Ljava/io/PrintWriter;IIJ)V
 Landroid/os/BatteryStats;->dumpLocked(Landroid/content/Context;Ljava/io/PrintWriter;Ljava/lang/String;II)V
@@ -52801,12 +49269,10 @@
 Landroid/os/BatteryStats;->WIFI_SUPPL_STATE_TIME_DATA:Ljava/lang/String;
 Landroid/os/BatteryStats;->WIFI_SUPPL_STATE_UNINITIALIZED:I
 Landroid/os/BatteryStats;->writeToParcelWithoutUids(Landroid/os/Parcel;I)V
-Landroid/os/BatteryStatsInternal;
 Landroid/os/BatteryStatsInternal;-><init>()V
 Landroid/os/BatteryStatsInternal;->getMobileIfaces()[Ljava/lang/String;
 Landroid/os/BatteryStatsInternal;->getWifiIfaces()[Ljava/lang/String;
 Landroid/os/BatteryStatsInternal;->noteJobsDeferred(IIJ)V
-Landroid/os/BatteryStatsProto;
 Landroid/os/BatteryStatsProto;-><init>()V
 Landroid/os/BatteryStatsProto;->END_PLATFORM_VERSION:J
 Landroid/os/BatteryStatsProto;->PARCEL_VERSION:J
@@ -52814,14 +49280,10 @@
 Landroid/os/BatteryStatsProto;->START_PLATFORM_VERSION:J
 Landroid/os/BatteryStatsProto;->SYSTEM:J
 Landroid/os/BatteryStatsProto;->UIDS:J
-Landroid/os/BatteryTypeProto;
 Landroid/os/BatteryTypeProto;-><init>()V
 Landroid/os/BatteryTypeProto;->TYPE:J
-Landroid/os/BestClock;
-Landroid/os/BestClock;-><init>(Ljava/time/ZoneId;[[Ljava/time/Clock;)V
 Landroid/os/BestClock;->clocks:[Ljava/time/Clock;
 Landroid/os/BestClock;->TAG:Ljava/lang/String;
-Landroid/os/Binder$NoImagePreloadHolder;
 Landroid/os/Binder$NoImagePreloadHolder;-><init>()V
 Landroid/os/Binder$NoImagePreloadHolder;->sRegistry:Llibcore/util/NativeAllocationRegistry;
 Landroid/os/Binder;->allowBlocking(Landroid/os/IBinder;)Landroid/os/IBinder;
@@ -52857,14 +49319,11 @@
 Landroid/os/Binder;->TAG:Ljava/lang/String;
 Landroid/os/Binder;->withCleanCallingIdentity(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;)V
 Landroid/os/Binder;->withCleanCallingIdentity(Lcom/android/internal/util/FunctionalUtils$ThrowingSupplier;)Ljava/lang/Object;
-Landroid/os/Broadcaster$Registration;
-Landroid/os/Broadcaster$Registration;-><init>()V
 Landroid/os/Broadcaster$Registration;->next:Landroid/os/Broadcaster$Registration;
 Landroid/os/Broadcaster$Registration;->prev:Landroid/os/Broadcaster$Registration;
 Landroid/os/Broadcaster$Registration;->senderWhat:I
 Landroid/os/Broadcaster$Registration;->targets:[Landroid/os/Handler;
 Landroid/os/Broadcaster$Registration;->targetWhats:[I
-Landroid/os/Broadcaster;
 Landroid/os/Broadcaster;->dumpRegistrations()V
 Landroid/os/Broadcaster;->mReg:Landroid/os/Broadcaster$Registration;
 Landroid/os/Build$VERSION;->ALL_CODENAMES:[Ljava/lang/String;
@@ -52892,29 +49351,21 @@
 Landroid/os/Bundle;->STRIPPED:Landroid/os/Bundle;
 Landroid/os/Bundle;->toShortString()Ljava/lang/String;
 Landroid/os/Bundle;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/os/BundleProto;
 Landroid/os/BundleProto;-><init>()V
 Landroid/os/BundleProto;->MAP_DATA:J
 Landroid/os/BundleProto;->PARCELLED_DATA_SIZE:J
-Landroid/os/CancellationSignal$Transport;
 Landroid/os/CancellationSignal$Transport;-><init>()V
 Landroid/os/CancellationSignal$Transport;->cancel()V
 Landroid/os/CancellationSignal$Transport;->mCancellationSignal:Landroid/os/CancellationSignal;
 Landroid/os/CancellationSignal;->createTransport()Landroid/os/ICancellationSignal;
 Landroid/os/CancellationSignal;->fromTransport(Landroid/os/ICancellationSignal;)Landroid/os/CancellationSignal;
 Landroid/os/CancellationSignal;->setRemote(Landroid/os/ICancellationSignal;)V
-Landroid/os/ChildZygoteProcess;
 Landroid/os/ChildZygoteProcess;-><init>(Landroid/net/LocalSocketAddress;I)V
 Landroid/os/ChildZygoteProcess;->getPid()I
 Landroid/os/ChildZygoteProcess;->mPid:I
-Landroid/os/CommonClock$OnServerDiedListener;
 Landroid/os/CommonClock$OnServerDiedListener;->onServerDied()V
-Landroid/os/CommonClock$OnTimelineChangedListener;
 Landroid/os/CommonClock$OnTimelineChangedListener;->onTimelineChanged(J)V
-Landroid/os/CommonClock$TimelineChangedListener;
-Landroid/os/CommonClock$TimelineChangedListener;-><init>()V
 Landroid/os/CommonClock$TimelineChangedListener;->DESCRIPTOR:Ljava/lang/String;
-Landroid/os/CommonClock;
 Landroid/os/CommonClock;-><init>()V
 Landroid/os/CommonClock;->create()Landroid/os/CommonClock;
 Landroid/os/CommonClock;->ERROR_ESTIMATE_UNKNOWN:I
@@ -52960,9 +49411,7 @@
 Landroid/os/CommonClock;->throwOnDeadServer()V
 Landroid/os/CommonClock;->TIME_NOT_SYNCED:J
 Landroid/os/CommonClock;->unregisterTimelineChangeListener()V
-Landroid/os/CommonTimeConfig$OnServerDiedListener;
 Landroid/os/CommonTimeConfig$OnServerDiedListener;->onServerDied()V
-Landroid/os/CommonTimeConfig;
 Landroid/os/CommonTimeConfig;-><init>()V
 Landroid/os/CommonTimeConfig;->checkDeadServer()Z
 Landroid/os/CommonTimeConfig;->create()Landroid/os/CommonTimeConfig;
@@ -53015,7 +49464,6 @@
 Landroid/os/CommonTimeConfig;->setServerDiedListener(Landroid/os/CommonTimeConfig$OnServerDiedListener;)V
 Landroid/os/CommonTimeConfig;->SUCCESS:I
 Landroid/os/CommonTimeConfig;->throwOnDeadServer()V
-Landroid/os/CommonTimeUtils;
 Landroid/os/CommonTimeUtils;-><init>(Landroid/os/IBinder;Ljava/lang/String;)V
 Landroid/os/CommonTimeUtils;->ERROR:I
 Landroid/os/CommonTimeUtils;->ERROR_BAD_VALUE:I
@@ -53033,11 +49481,8 @@
 Landroid/os/CommonTimeUtils;->transactSetString(ILjava/lang/String;)I
 Landroid/os/ConditionVariable;->mCondition:Z
 Landroid/os/ConfigUpdate;-><init>()V
-Landroid/os/ControllerActivityProto$TxLevel;
-Landroid/os/ControllerActivityProto$TxLevel;-><init>()V
 Landroid/os/ControllerActivityProto$TxLevel;->DURATION_MS:J
 Landroid/os/ControllerActivityProto$TxLevel;->LEVEL:J
-Landroid/os/ControllerActivityProto;
 Landroid/os/ControllerActivityProto;-><init>()V
 Landroid/os/ControllerActivityProto;->IDLE_DURATION_MS:J
 Landroid/os/ControllerActivityProto;->POWER_MAH:J
@@ -53049,20 +49494,13 @@
 Landroid/os/CountDownTimer;->mMillisInFuture:J
 Landroid/os/CountDownTimer;->MSG:I
 Landroid/os/CountDownTimer;->mStopTimeInFuture:J
-Landroid/os/CpuFreqProto$Stats$TimeInState;
-Landroid/os/CpuFreqProto$Stats$TimeInState;-><init>()V
 Landroid/os/CpuFreqProto$Stats$TimeInState;->STATE_KHZ:J
 Landroid/os/CpuFreqProto$Stats$TimeInState;->TIME_JIFFY:J
-Landroid/os/CpuFreqProto$Stats;
-Landroid/os/CpuFreqProto$Stats;-><init>()V
 Landroid/os/CpuFreqProto$Stats;->CPU_NAME:J
 Landroid/os/CpuFreqProto$Stats;->TIMES:J
-Landroid/os/CpuFreqProto;
 Landroid/os/CpuFreqProto;-><init>()V
 Landroid/os/CpuFreqProto;->CPU_FREQS:J
 Landroid/os/CpuFreqProto;->JIFFY_HZ:J
-Landroid/os/CpuInfoProto$CpuUsage;
-Landroid/os/CpuInfoProto$CpuUsage;-><init>()V
 Landroid/os/CpuInfoProto$CpuUsage;->CPU:J
 Landroid/os/CpuInfoProto$CpuUsage;->HOST:J
 Landroid/os/CpuInfoProto$CpuUsage;->IDLE:J
@@ -53072,15 +49510,11 @@
 Landroid/os/CpuInfoProto$CpuUsage;->SIRQ:J
 Landroid/os/CpuInfoProto$CpuUsage;->SYS:J
 Landroid/os/CpuInfoProto$CpuUsage;->USER:J
-Landroid/os/CpuInfoProto$MemStats;
-Landroid/os/CpuInfoProto$MemStats;-><init>()V
 Landroid/os/CpuInfoProto$MemStats;->BUFFERS:J
 Landroid/os/CpuInfoProto$MemStats;->CACHED:J
 Landroid/os/CpuInfoProto$MemStats;->FREE:J
 Landroid/os/CpuInfoProto$MemStats;->TOTAL:J
 Landroid/os/CpuInfoProto$MemStats;->USED:J
-Landroid/os/CpuInfoProto$Task;
-Landroid/os/CpuInfoProto$Task;-><init>()V
 Landroid/os/CpuInfoProto$Task;->CMD:J
 Landroid/os/CpuInfoProto$Task;->CPU:J
 Landroid/os/CpuInfoProto$Task;->NAME:J
@@ -53103,14 +49537,11 @@
 Landroid/os/CpuInfoProto$Task;->TID:J
 Landroid/os/CpuInfoProto$Task;->USER:J
 Landroid/os/CpuInfoProto$Task;->VIRT:J
-Landroid/os/CpuInfoProto$TaskStats;
-Landroid/os/CpuInfoProto$TaskStats;-><init>()V
 Landroid/os/CpuInfoProto$TaskStats;->RUNNING:J
 Landroid/os/CpuInfoProto$TaskStats;->SLEEPING:J
 Landroid/os/CpuInfoProto$TaskStats;->STOPPED:J
 Landroid/os/CpuInfoProto$TaskStats;->TOTAL:J
 Landroid/os/CpuInfoProto$TaskStats;->ZOMBIE:J
-Landroid/os/CpuInfoProto;
 Landroid/os/CpuInfoProto;-><init>()V
 Landroid/os/CpuInfoProto;->CPU_USAGE:J
 Landroid/os/CpuInfoProto;->MEM:J
@@ -53122,7 +49553,6 @@
 Landroid/os/CpuUsageInfo;->mActive:J
 Landroid/os/CpuUsageInfo;->mTotal:J
 Landroid/os/CpuUsageInfo;->readFromParcel(Landroid/os/Parcel;)V
-Landroid/os/Debug$DebugProperty;
 Landroid/os/Debug$MemoryInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/os/Debug$MemoryInfo;->getOtherPrivateClean(I)I
 Landroid/os/Debug$MemoryInfo;->getOtherRss(I)I
@@ -53245,7 +49675,6 @@
 Landroid/os/DropBoxManager;->HAS_BYTE_ARRAY:I
 Landroid/os/DropBoxManager;->mContext:Landroid/content/Context;
 Landroid/os/DropBoxManager;->TAG:Ljava/lang/String;
-Landroid/os/Environment$UserEnvironment;
 Landroid/os/Environment$UserEnvironment;->buildExternalStorageAndroidDataDirs()[Ljava/io/File;
 Landroid/os/Environment$UserEnvironment;->buildExternalStorageAndroidObbDirs()[Ljava/io/File;
 Landroid/os/Environment$UserEnvironment;->buildExternalStorageAppCacheDirs(Ljava/lang/String;)[Ljava/io/File;
@@ -53255,7 +49684,6 @@
 Landroid/os/Environment$UserEnvironment;->buildExternalStorageAppObbDirs(Ljava/lang/String;)[Ljava/io/File;
 Landroid/os/Environment$UserEnvironment;->buildExternalStoragePublicDirs(Ljava/lang/String;)[Ljava/io/File;
 Landroid/os/Environment$UserEnvironment;->mUserId:I
-Landroid/os/Environment;->buildPaths([Ljava/io/File;[[Ljava/lang/String;)[Ljava/io/File;
 Landroid/os/Environment;->classifyExternalStorageDirectory(Ljava/io/File;)I
 Landroid/os/Environment;->DIRECTORY_ANDROID:Ljava/lang/String;
 Landroid/os/Environment;->DIR_ANDROID:Ljava/lang/String;
@@ -53336,20 +49764,17 @@
 Landroid/os/Environment;->sUserRequired:Z
 Landroid/os/Environment;->TAG:Ljava/lang/String;
 Landroid/os/Environment;->throwIfUserRequired()V
-Landroid/os/EventLogTags;
 Landroid/os/EventLogTags;-><init>()V
 Landroid/os/EventLogTags;->SERVICE_MANAGER_SLOW:I
 Landroid/os/EventLogTags;->SERVICE_MANAGER_STATS:I
 Landroid/os/EventLogTags;->writeServiceManagerSlow(ILjava/lang/String;)V
 Landroid/os/EventLogTags;->writeServiceManagerStats(III)V
-Landroid/os/FactoryTest;
 Landroid/os/FactoryTest;-><init>()V
 Landroid/os/FactoryTest;->FACTORY_TEST_HIGH_LEVEL:I
 Landroid/os/FactoryTest;->FACTORY_TEST_LOW_LEVEL:I
 Landroid/os/FactoryTest;->FACTORY_TEST_OFF:I
 Landroid/os/FactoryTest;->getMode()I
 Landroid/os/FactoryTest;->isLongPressOnPowerOffEnabled()Z
-Landroid/os/FileBridge$FileBridgeOutputStream;
 Landroid/os/FileBridge$FileBridgeOutputStream;-><init>(Landroid/os/ParcelFileDescriptor;)V
 Landroid/os/FileBridge$FileBridgeOutputStream;-><init>(Ljava/io/FileDescriptor;)V
 Landroid/os/FileBridge$FileBridgeOutputStream;->fsync()V
@@ -53357,7 +49782,6 @@
 Landroid/os/FileBridge$FileBridgeOutputStream;->mClientPfd:Landroid/os/ParcelFileDescriptor;
 Landroid/os/FileBridge$FileBridgeOutputStream;->mTemp:[B
 Landroid/os/FileBridge$FileBridgeOutputStream;->writeCommandAndBlock(ILjava/lang/String;)V
-Landroid/os/FileBridge;
 Landroid/os/FileBridge;-><init>()V
 Landroid/os/FileBridge;->CMD_CLOSE:I
 Landroid/os/FileBridge;->CMD_FSYNC:I
@@ -53372,7 +49796,6 @@
 Landroid/os/FileBridge;->mTarget:Ljava/io/FileDescriptor;
 Landroid/os/FileBridge;->setTargetFile(Ljava/io/FileDescriptor;)V
 Landroid/os/FileBridge;->TAG:Ljava/lang/String;
-Landroid/os/FileObserver$ObserverThread;
 Landroid/os/FileObserver$ObserverThread;-><init>()V
 Landroid/os/FileObserver$ObserverThread;->init()I
 Landroid/os/FileObserver$ObserverThread;->m_fd:I
@@ -53386,7 +49809,6 @@
 Landroid/os/FileObserver;->m_descriptor:Ljava/lang/Integer;
 Landroid/os/FileObserver;->m_mask:I
 Landroid/os/FileObserver;->m_path:Ljava/lang/String;
-Landroid/os/FileUtils$MemoryPipe;
 Landroid/os/FileUtils$MemoryPipe;-><init>([BZ)V
 Landroid/os/FileUtils$MemoryPipe;->createSink([B)Landroid/os/FileUtils$MemoryPipe;
 Landroid/os/FileUtils$MemoryPipe;->createSource([B)Landroid/os/FileUtils$MemoryPipe;
@@ -53396,12 +49818,9 @@
 Landroid/os/FileUtils$MemoryPipe;->pipe:[Ljava/io/FileDescriptor;
 Landroid/os/FileUtils$MemoryPipe;->sink:Z
 Landroid/os/FileUtils$MemoryPipe;->startInternal()Landroid/os/FileUtils$MemoryPipe;
-Landroid/os/FileUtils$NoImagePreloadHolder;
 Landroid/os/FileUtils$NoImagePreloadHolder;-><init>()V
 Landroid/os/FileUtils$NoImagePreloadHolder;->SAFE_FILENAME_PATTERN:Ljava/util/regex/Pattern;
-Landroid/os/FileUtils$ProgressListener;
 Landroid/os/FileUtils$ProgressListener;->onProgress(J)V
-Landroid/os/FileUtils;
 Landroid/os/FileUtils;->buildFile(Ljava/io/File;Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
 Landroid/os/FileUtils;->buildUniqueFile(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
 Landroid/os/FileUtils;->buildUniqueFile(Ljava/io/File;Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
@@ -53460,7 +49879,6 @@
 Landroid/os/FileUtils;->TAG:Ljava/lang/String;
 Landroid/os/FileUtils;->trimFilename(Ljava/lang/String;I)Ljava/lang/String;
 Landroid/os/FileUtils;->trimFilename(Ljava/lang/StringBuilder;I)V
-Landroid/os/GraphicsEnvironment;
 Landroid/os/GraphicsEnvironment;-><init>()V
 Landroid/os/GraphicsEnvironment;->chooseAbi(Landroid/content/pm/ApplicationInfo;)Ljava/lang/String;
 Landroid/os/GraphicsEnvironment;->chooseDriver(Landroid/content/Context;)V
@@ -53480,17 +49898,13 @@
 Landroid/os/GraphicsEnvironment;->setupGpuLayers(Landroid/content/Context;)V
 Landroid/os/GraphicsEnvironment;->sInstance:Landroid/os/GraphicsEnvironment;
 Landroid/os/GraphicsEnvironment;->TAG:Ljava/lang/String;
-Landroid/os/GZippedFileProto;
 Landroid/os/GZippedFileProto;-><init>()V
 Landroid/os/GZippedFileProto;->FILENAME:J
 Landroid/os/GZippedFileProto;->GZIPPED_DATA:J
-Landroid/os/Handler$BlockingRunnable;
 Landroid/os/Handler$BlockingRunnable;-><init>(Ljava/lang/Runnable;)V
 Landroid/os/Handler$BlockingRunnable;->mDone:Z
 Landroid/os/Handler$BlockingRunnable;->mTask:Ljava/lang/Runnable;
 Landroid/os/Handler$BlockingRunnable;->postAndWait(Landroid/os/Handler;J)Z
-Landroid/os/Handler$MessengerImpl;
-Landroid/os/Handler$MessengerImpl;-><init>()V
 Landroid/os/Handler$MessengerImpl;->send(Landroid/os/Message;)V
 Landroid/os/Handler;-><init>(Landroid/os/Handler$Callback;Z)V
 Landroid/os/Handler;->dumpMine(Landroid/util/Printer;Ljava/lang/String;)V
@@ -53507,7 +49921,6 @@
 Landroid/os/Handler;->mQueue:Landroid/os/MessageQueue;
 Landroid/os/Handler;->runWithScissors(Ljava/lang/Runnable;J)Z
 Landroid/os/Handler;->TAG:Ljava/lang/String;
-Landroid/os/HandlerExecutor;
 Landroid/os/HandlerExecutor;-><init>(Landroid/os/Handler;)V
 Landroid/os/HandlerExecutor;->mHandler:Landroid/os/Handler;
 Landroid/os/HandlerThread;->getThreadHandler()Landroid/os/Handler;
@@ -53515,27 +49928,21 @@
 Landroid/os/HandlerThread;->mLooper:Landroid/os/Looper;
 Landroid/os/HandlerThread;->mPriority:I
 Landroid/os/HandlerThread;->mTid:I
-Landroid/os/HardwarePropertiesManager$DeviceTemperatureType;
-Landroid/os/HardwarePropertiesManager$TemperatureSource;
 Landroid/os/HardwarePropertiesManager;-><init>(Landroid/content/Context;Landroid/os/IHardwarePropertiesManager;)V
 Landroid/os/HardwarePropertiesManager;->mContext:Landroid/content/Context;
 Landroid/os/HardwarePropertiesManager;->mService:Landroid/os/IHardwarePropertiesManager;
 Landroid/os/HardwarePropertiesManager;->TAG:Ljava/lang/String;
-Landroid/os/health/HealthKeys$Constant;
-Landroid/os/health/HealthKeys$Constants;
 Landroid/os/health/HealthKeys$Constants;->getDataType()Ljava/lang/String;
 Landroid/os/health/HealthKeys$Constants;->getIndex(II)I
 Landroid/os/health/HealthKeys$Constants;->getKeys(I)[I
 Landroid/os/health/HealthKeys$Constants;->getSize(I)I
 Landroid/os/health/HealthKeys$Constants;->mDataType:Ljava/lang/String;
 Landroid/os/health/HealthKeys$Constants;->mKeys:[[I
-Landroid/os/health/HealthKeys$SortedIntArray;
 Landroid/os/health/HealthKeys$SortedIntArray;-><init>(I)V
 Landroid/os/health/HealthKeys$SortedIntArray;->addValue(I)V
 Landroid/os/health/HealthKeys$SortedIntArray;->getArray()[I
 Landroid/os/health/HealthKeys$SortedIntArray;->mArray:[I
 Landroid/os/health/HealthKeys$SortedIntArray;->mCount:I
-Landroid/os/health/HealthKeys;
 Landroid/os/health/HealthKeys;-><init>()V
 Landroid/os/health/HealthKeys;->BASE_PACKAGE:I
 Landroid/os/health/HealthKeys;->BASE_PID:I
@@ -53566,11 +49973,9 @@
 Landroid/os/health/HealthStats;->mTimersKeys:[I
 Landroid/os/health/HealthStats;->mTimersValues:[Landroid/util/ArrayMap;
 Landroid/os/health/HealthStats;->mTimerTimes:[J
-Landroid/os/health/HealthStatsParceler;
 Landroid/os/health/HealthStatsParceler;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/os/health/HealthStatsParceler;->mHealthStats:Landroid/os/health/HealthStats;
 Landroid/os/health/HealthStatsParceler;->mWriter:Landroid/os/health/HealthStatsWriter;
-Landroid/os/health/HealthStatsWriter;
 Landroid/os/health/HealthStatsWriter;->countBooleanArray([Z)I
 Landroid/os/health/HealthStatsWriter;->countObjectArray([Ljava/lang/Object;)I
 Landroid/os/health/HealthStatsWriter;->mConstants:Landroid/os/health/HealthKeys$Constants;
@@ -53599,7 +50004,6 @@
 Landroid/os/health/TimerStat;->mTime:J
 Landroid/os/health/UidHealthStats;-><init>()V
 Landroid/os/health/UidHealthStats;->CONSTANTS:Landroid/os/health/HealthKeys$Constants;
-Landroid/os/HidlSupport$Mutable;
 Landroid/os/HidlSupport$Mutable;-><init>()V
 Landroid/os/HidlSupport$Mutable;-><init>(Ljava/lang/Object;)V
 Landroid/os/HidlSupport$Mutable;->value:Ljava/lang/Object;
@@ -53638,33 +50042,27 @@
 Landroid/os/HwParcel;->writeInt64Vector([J)V
 Landroid/os/HwParcel;->writeInt8Vector([B)V
 Landroid/os/HwParcel;->writeStringVector([Ljava/lang/String;)V
-Landroid/os/HwRemoteBinder;
 Landroid/os/HwRemoteBinder;->mNativeContext:J
 Landroid/os/HwRemoteBinder;->native_init()J
 Landroid/os/HwRemoteBinder;->native_setup_empty()V
 Landroid/os/HwRemoteBinder;->sendDeathNotice(Landroid/os/IHwBinder$DeathRecipient;J)V
 Landroid/os/HwRemoteBinder;->sNativeRegistry:Llibcore/util/NativeAllocationRegistry;
 Landroid/os/HwRemoteBinder;->TAG:Ljava/lang/String;
-Landroid/os/IBatteryPropertiesListener$Stub$Proxy;
 Landroid/os/IBatteryPropertiesListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IBatteryPropertiesListener$Stub$Proxy;->batteryPropertiesChanged(Landroid/os/BatteryProperties;)V
 Landroid/os/IBatteryPropertiesListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/IBatteryPropertiesListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/os/IBatteryPropertiesListener$Stub;
 Landroid/os/IBatteryPropertiesListener$Stub;-><init>()V
 Landroid/os/IBatteryPropertiesListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IBatteryPropertiesListener;
 Landroid/os/IBatteryPropertiesListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IBatteryPropertiesListener$Stub;->TRANSACTION_batteryPropertiesChanged:I
-Landroid/os/IBatteryPropertiesListener;
 Landroid/os/IBatteryPropertiesListener;->batteryPropertiesChanged(Landroid/os/BatteryProperties;)V
-Landroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;
 Landroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;->getProperty(ILandroid/os/BatteryProperty;)I
 Landroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;->registerListener(Landroid/os/IBatteryPropertiesListener;)V
 Landroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;->scheduleUpdate()V
 Landroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;->unregisterListener(Landroid/os/IBatteryPropertiesListener;)V
-Landroid/os/IBatteryPropertiesRegistrar$Stub;
 Landroid/os/IBatteryPropertiesRegistrar$Stub;-><init>()V
 Landroid/os/IBatteryPropertiesRegistrar$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IBatteryPropertiesRegistrar;
 Landroid/os/IBatteryPropertiesRegistrar$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -53672,7 +50070,6 @@
 Landroid/os/IBatteryPropertiesRegistrar$Stub;->TRANSACTION_registerListener:I
 Landroid/os/IBatteryPropertiesRegistrar$Stub;->TRANSACTION_scheduleUpdate:I
 Landroid/os/IBatteryPropertiesRegistrar$Stub;->TRANSACTION_unregisterListener:I
-Landroid/os/IBatteryPropertiesRegistrar;
 Landroid/os/IBatteryPropertiesRegistrar;->getProperty(ILandroid/os/BatteryProperty;)I
 Landroid/os/IBatteryPropertiesRegistrar;->registerListener(Landroid/os/IBatteryPropertiesListener;)V
 Landroid/os/IBatteryPropertiesRegistrar;->scheduleUpdate()V
@@ -53680,30 +50077,23 @@
 Landroid/os/IBinder;->MAX_IPC_SIZE:I
 Landroid/os/IBinder;->shellCommand(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;[Ljava/lang/String;Landroid/os/ShellCallback;Landroid/os/ResultReceiver;)V
 Landroid/os/IBinder;->SHELL_COMMAND_TRANSACTION:I
-Landroid/os/ICancellationSignal$Stub$Proxy;
 Landroid/os/ICancellationSignal$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/ICancellationSignal$Stub$Proxy;->cancel()V
 Landroid/os/ICancellationSignal$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/ICancellationSignal$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/os/ICancellationSignal$Stub;
 Landroid/os/ICancellationSignal$Stub;-><init>()V
 Landroid/os/ICancellationSignal$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/ICancellationSignal;
 Landroid/os/ICancellationSignal$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/ICancellationSignal$Stub;->TRANSACTION_cancel:I
-Landroid/os/ICancellationSignal;
 Landroid/os/ICancellationSignal;->cancel()V
-Landroid/os/IDeviceIdentifiersPolicyService$Stub$Proxy;
 Landroid/os/IDeviceIdentifiersPolicyService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IDeviceIdentifiersPolicyService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/IDeviceIdentifiersPolicyService$Stub$Proxy;->getSerial()Ljava/lang/String;
 Landroid/os/IDeviceIdentifiersPolicyService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/os/IDeviceIdentifiersPolicyService$Stub;
 Landroid/os/IDeviceIdentifiersPolicyService$Stub;-><init>()V
 Landroid/os/IDeviceIdentifiersPolicyService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IDeviceIdentifiersPolicyService$Stub;->TRANSACTION_getSerial:I
-Landroid/os/IDeviceIdentifiersPolicyService;
 Landroid/os/IDeviceIdentifiersPolicyService;->getSerial()Ljava/lang/String;
-Landroid/os/IDeviceIdleController$Stub$Proxy;
 Landroid/os/IDeviceIdleController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IDeviceIdleController$Stub$Proxy;->addPowerSaveTempWhitelistApp(Ljava/lang/String;JILjava/lang/String;)V
 Landroid/os/IDeviceIdleController$Stub$Proxy;->addPowerSaveTempWhitelistAppForMms(Ljava/lang/String;ILjava/lang/String;)J
@@ -53729,7 +50119,6 @@
 Landroid/os/IDeviceIdleController$Stub$Proxy;->removeSystemPowerWhitelistApp(Ljava/lang/String;)V
 Landroid/os/IDeviceIdleController$Stub$Proxy;->restoreSystemPowerWhitelistApp(Ljava/lang/String;)V
 Landroid/os/IDeviceIdleController$Stub$Proxy;->unregisterMaintenanceActivityListener(Landroid/os/IMaintenanceActivityListener;)V
-Landroid/os/IDeviceIdleController$Stub;
 Landroid/os/IDeviceIdleController$Stub;-><init>()V
 Landroid/os/IDeviceIdleController$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_addPowerSaveTempWhitelistApp:I
@@ -53754,7 +50143,6 @@
 Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_removeSystemPowerWhitelistApp:I
 Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_restoreSystemPowerWhitelistApp:I
 Landroid/os/IDeviceIdleController$Stub;->TRANSACTION_unregisterMaintenanceActivityListener:I
-Landroid/os/IDeviceIdleController;
 Landroid/os/IDeviceIdleController;->addPowerSaveTempWhitelistAppForMms(Ljava/lang/String;ILjava/lang/String;)J
 Landroid/os/IDeviceIdleController;->addPowerSaveTempWhitelistAppForSms(Ljava/lang/String;ILjava/lang/String;)J
 Landroid/os/IDeviceIdleController;->addPowerSaveWhitelistApp(Ljava/lang/String;)V
@@ -53774,43 +50162,36 @@
 Landroid/os/IDeviceIdleController;->removeSystemPowerWhitelistApp(Ljava/lang/String;)V
 Landroid/os/IDeviceIdleController;->restoreSystemPowerWhitelistApp(Ljava/lang/String;)V
 Landroid/os/IDeviceIdleController;->unregisterMaintenanceActivityListener(Landroid/os/IMaintenanceActivityListener;)V
-Landroid/os/IHardwarePropertiesManager$Stub$Proxy;
 Landroid/os/IHardwarePropertiesManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IHardwarePropertiesManager$Stub$Proxy;->getCpuUsages(Ljava/lang/String;)[Landroid/os/CpuUsageInfo;
 Landroid/os/IHardwarePropertiesManager$Stub$Proxy;->getDeviceTemperatures(Ljava/lang/String;II)[F
 Landroid/os/IHardwarePropertiesManager$Stub$Proxy;->getFanSpeeds(Ljava/lang/String;)[F
 Landroid/os/IHardwarePropertiesManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/IHardwarePropertiesManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/os/IHardwarePropertiesManager$Stub;
 Landroid/os/IHardwarePropertiesManager$Stub;-><init>()V
 Landroid/os/IHardwarePropertiesManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IHardwarePropertiesManager;
 Landroid/os/IHardwarePropertiesManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IHardwarePropertiesManager$Stub;->TRANSACTION_getCpuUsages:I
 Landroid/os/IHardwarePropertiesManager$Stub;->TRANSACTION_getDeviceTemperatures:I
 Landroid/os/IHardwarePropertiesManager$Stub;->TRANSACTION_getFanSpeeds:I
-Landroid/os/IHardwarePropertiesManager;
 Landroid/os/IHardwarePropertiesManager;->getCpuUsages(Ljava/lang/String;)[Landroid/os/CpuUsageInfo;
 Landroid/os/IHardwarePropertiesManager;->getDeviceTemperatures(Ljava/lang/String;II)[F
 Landroid/os/IHardwarePropertiesManager;->getFanSpeeds(Ljava/lang/String;)[F
-Landroid/os/IIncidentManager$Stub$Proxy;
 Landroid/os/IIncidentManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IIncidentManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/IIncidentManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/os/IIncidentManager$Stub$Proxy;->reportIncident(Landroid/os/IncidentReportArgs;)V
 Landroid/os/IIncidentManager$Stub$Proxy;->reportIncidentToStream(Landroid/os/IncidentReportArgs;Landroid/os/IIncidentReportStatusListener;Ljava/io/FileDescriptor;)V
 Landroid/os/IIncidentManager$Stub$Proxy;->systemRunning()V
-Landroid/os/IIncidentManager$Stub;
 Landroid/os/IIncidentManager$Stub;-><init>()V
 Landroid/os/IIncidentManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IIncidentManager;
 Landroid/os/IIncidentManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IIncidentManager$Stub;->TRANSACTION_reportIncident:I
 Landroid/os/IIncidentManager$Stub;->TRANSACTION_reportIncidentToStream:I
 Landroid/os/IIncidentManager$Stub;->TRANSACTION_systemRunning:I
-Landroid/os/IIncidentManager;
 Landroid/os/IIncidentManager;->reportIncident(Landroid/os/IncidentReportArgs;)V
 Landroid/os/IIncidentManager;->reportIncidentToStream(Landroid/os/IncidentReportArgs;Landroid/os/IIncidentReportStatusListener;Ljava/io/FileDescriptor;)V
 Landroid/os/IIncidentManager;->systemRunning()V
-Landroid/os/IIncidentReportStatusListener$Stub$Proxy;
 Landroid/os/IIncidentReportStatusListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IIncidentReportStatusListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/IIncidentReportStatusListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -53818,7 +50199,6 @@
 Landroid/os/IIncidentReportStatusListener$Stub$Proxy;->onReportFinished()V
 Landroid/os/IIncidentReportStatusListener$Stub$Proxy;->onReportSectionStatus(II)V
 Landroid/os/IIncidentReportStatusListener$Stub$Proxy;->onReportStarted()V
-Landroid/os/IIncidentReportStatusListener$Stub;
 Landroid/os/IIncidentReportStatusListener$Stub;-><init>()V
 Landroid/os/IIncidentReportStatusListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IIncidentReportStatusListener;
 Landroid/os/IIncidentReportStatusListener$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -53826,14 +50206,12 @@
 Landroid/os/IIncidentReportStatusListener$Stub;->TRANSACTION_onReportFinished:I
 Landroid/os/IIncidentReportStatusListener$Stub;->TRANSACTION_onReportSectionStatus:I
 Landroid/os/IIncidentReportStatusListener$Stub;->TRANSACTION_onReportStarted:I
-Landroid/os/IIncidentReportStatusListener;
 Landroid/os/IIncidentReportStatusListener;->onReportFailed()V
 Landroid/os/IIncidentReportStatusListener;->onReportFinished()V
 Landroid/os/IIncidentReportStatusListener;->onReportSectionStatus(II)V
 Landroid/os/IIncidentReportStatusListener;->onReportStarted()V
 Landroid/os/IIncidentReportStatusListener;->STATUS_FINISHED:I
 Landroid/os/IIncidentReportStatusListener;->STATUS_STARTING:I
-Landroid/os/IInstalld$Stub$Proxy;
 Landroid/os/IInstalld$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IInstalld$Stub$Proxy;->assertFsverityRootHashMatches(Ljava/lang/String;[B)V
 Landroid/os/IInstalld$Stub$Proxy;->clearAppData(Ljava/lang/String;Ljava/lang/String;IIJ)V
@@ -53876,7 +50254,6 @@
 Landroid/os/IInstalld$Stub$Proxy;->rmdex(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/os/IInstalld$Stub$Proxy;->rmPackageDir(Ljava/lang/String;)V
 Landroid/os/IInstalld$Stub$Proxy;->setAppQuota(Ljava/lang/String;IIJ)V
-Landroid/os/IInstalld$Stub;
 Landroid/os/IInstalld$Stub;-><init>()V
 Landroid/os/IInstalld$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IInstalld;
 Landroid/os/IInstalld$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -53919,7 +50296,6 @@
 Landroid/os/IInstalld$Stub;->TRANSACTION_rmdex:I
 Landroid/os/IInstalld$Stub;->TRANSACTION_rmPackageDir:I
 Landroid/os/IInstalld$Stub;->TRANSACTION_setAppQuota:I
-Landroid/os/IInstalld;
 Landroid/os/IInstalld;->assertFsverityRootHashMatches(Ljava/lang/String;[B)V
 Landroid/os/IInstalld;->clearAppData(Ljava/lang/String;Ljava/lang/String;IIJ)V
 Landroid/os/IInstalld;->clearAppProfiles(Ljava/lang/String;Ljava/lang/String;)V
@@ -53959,49 +50335,36 @@
 Landroid/os/IInstalld;->rmdex(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/os/IInstalld;->rmPackageDir(Ljava/lang/String;)V
 Landroid/os/IInstalld;->setAppQuota(Ljava/lang/String;IIJ)V
-Landroid/os/IMaintenanceActivityListener$Stub$Proxy;
 Landroid/os/IMaintenanceActivityListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IMaintenanceActivityListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/IMaintenanceActivityListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/os/IMaintenanceActivityListener$Stub$Proxy;->onMaintenanceActivityChanged(Z)V
-Landroid/os/IMaintenanceActivityListener$Stub;
 Landroid/os/IMaintenanceActivityListener$Stub;-><init>()V
 Landroid/os/IMaintenanceActivityListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IMaintenanceActivityListener;
 Landroid/os/IMaintenanceActivityListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IMaintenanceActivityListener$Stub;->TRANSACTION_onMaintenanceActivityChanged:I
-Landroid/os/IMaintenanceActivityListener;
 Landroid/os/IMaintenanceActivityListener;->onMaintenanceActivityChanged(Z)V
-Landroid/os/IMessenger$Stub$Proxy;
 Landroid/os/IMessenger$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IMessenger$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/IMessenger$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/os/IMessenger$Stub$Proxy;->send(Landroid/os/Message;)V
-Landroid/os/IMessenger$Stub;
 Landroid/os/IMessenger$Stub;-><init>()V
 Landroid/os/IMessenger$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IMessenger;
 Landroid/os/IMessenger$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IMessenger$Stub;->TRANSACTION_send:I
-Landroid/os/IMessenger;
 Landroid/os/IMessenger;->send(Landroid/os/Message;)V
-Landroid/os/IncidentHeaderProto$StatsdConfigKey;
-Landroid/os/IncidentHeaderProto$StatsdConfigKey;-><init>()V
 Landroid/os/IncidentHeaderProto$StatsdConfigKey;->ID:J
 Landroid/os/IncidentHeaderProto$StatsdConfigKey;->UID:J
-Landroid/os/IncidentHeaderProto;
 Landroid/os/IncidentHeaderProto;-><init>()V
 Landroid/os/IncidentHeaderProto;->ALERT_ID:J
 Landroid/os/IncidentHeaderProto;->CONFIG_KEY:J
 Landroid/os/IncidentHeaderProto;->REASON:J
-Landroid/os/IncidentManager$IncidentdDeathRecipient;
-Landroid/os/IncidentManager$IncidentdDeathRecipient;-><init>()V
 Landroid/os/IncidentManager;-><init>(Landroid/content/Context;)V
 Landroid/os/IncidentManager;->getIIncidentManagerLocked()Landroid/os/IIncidentManager;
 Landroid/os/IncidentManager;->mContext:Landroid/content/Context;
 Landroid/os/IncidentManager;->mService:Landroid/os/IIncidentManager;
 Landroid/os/IncidentManager;->reportIncidentInternal(Landroid/os/IncidentReportArgs;)V
 Landroid/os/IncidentManager;->TAG:Ljava/lang/String;
-Landroid/os/IncidentMetadata$SectionStats;
-Landroid/os/IncidentMetadata$SectionStats;-><init>()V
 Landroid/os/IncidentMetadata$SectionStats;->DUMP_DURATION_MS:J
 Landroid/os/IncidentMetadata$SectionStats;->DUMP_SIZE_BYTES:J
 Landroid/os/IncidentMetadata$SectionStats;->EXEC_DURATION_MS:J
@@ -54010,7 +50373,6 @@
 Landroid/os/IncidentMetadata$SectionStats;->REPORT_SIZE_BYTES:J
 Landroid/os/IncidentMetadata$SectionStats;->SUCCESS:J
 Landroid/os/IncidentMetadata$SectionStats;->TIMED_OUT:J
-Landroid/os/IncidentMetadata;
 Landroid/os/IncidentMetadata;-><init>()V
 Landroid/os/IncidentMetadata;->AUTOMATIC:I
 Landroid/os/IncidentMetadata;->DEST:J
@@ -54021,7 +50383,6 @@
 Landroid/os/IncidentMetadata;->SECTIONS:J
 Landroid/os/IncidentMetadata;->SEQUENCE_NUMBER:J
 Landroid/os/IncidentMetadata;->USE_DROPBOX:J
-Landroid/os/IncidentProto;
 Landroid/os/IncidentProto;-><init>()V
 Landroid/os/IncidentProto;->ACTIVITIES:J
 Landroid/os/IncidentProto;->ALARM:J
@@ -54076,19 +50437,15 @@
 Landroid/os/IncidentReportArgs;->mHeaders:Ljava/util/ArrayList;
 Landroid/os/IncidentReportArgs;->mSections:Landroid/util/IntArray;
 Landroid/os/IncidentReportArgs;->setPrivacyPolicy(I)V
-Landroid/os/INetworkActivityListener$Stub$Proxy;
 Landroid/os/INetworkActivityListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/INetworkActivityListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/INetworkActivityListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/os/INetworkActivityListener$Stub$Proxy;->onNetworkActive()V
-Landroid/os/INetworkActivityListener$Stub;
 Landroid/os/INetworkActivityListener$Stub;-><init>()V
 Landroid/os/INetworkActivityListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/INetworkActivityListener;
 Landroid/os/INetworkActivityListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/INetworkActivityListener$Stub;->TRANSACTION_onNetworkActive:I
-Landroid/os/INetworkActivityListener;
 Landroid/os/INetworkActivityListener;->onNetworkActive()V
-Landroid/os/INetworkManagementService$Stub$Proxy;
 Landroid/os/INetworkManagementService$Stub$Proxy;->addIdleTimer(Ljava/lang/String;II)V
 Landroid/os/INetworkManagementService$Stub$Proxy;->addInterfaceToLocalNetwork(Ljava/lang/String;Ljava/util/List;)V
 Landroid/os/INetworkManagementService$Stub$Proxy;->addInterfaceToNetwork(Ljava/lang/String;I)V
@@ -54178,7 +50535,6 @@
 Landroid/os/INetworkManagementService$Stub$Proxy;->unregisterObserver(Landroid/net/INetworkManagementEventObserver;)V
 Landroid/os/INetworkManagementService$Stub$Proxy;->unregisterTetheringStatsProvider(Landroid/net/ITetheringStatsProvider;)V
 Landroid/os/INetworkManagementService$Stub$Proxy;->untetherInterface(Ljava/lang/String;)V
-Landroid/os/INetworkManagementService$Stub;
 Landroid/os/INetworkManagementService$Stub;-><init>()V
 Landroid/os/INetworkManagementService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/INetworkManagementService$Stub;->TRANSACTION_addIdleTimer:I
@@ -54268,7 +50624,6 @@
 Landroid/os/INetworkManagementService$Stub;->TRANSACTION_unregisterObserver:I
 Landroid/os/INetworkManagementService$Stub;->TRANSACTION_unregisterTetheringStatsProvider:I
 Landroid/os/INetworkManagementService$Stub;->TRANSACTION_untetherInterface:I
-Landroid/os/INetworkManagementService;
 Landroid/os/INetworkManagementService;->addIdleTimer(Ljava/lang/String;II)V
 Landroid/os/INetworkManagementService;->addInterfaceToLocalNetwork(Ljava/lang/String;Ljava/util/List;)V
 Landroid/os/INetworkManagementService;->addInterfaceToNetwork(Ljava/lang/String;I)V
@@ -54336,7 +50691,6 @@
 Landroid/os/INetworkManagementService;->tetherLimitReached(Landroid/net/ITetheringStatsProvider;)V
 Landroid/os/INetworkManagementService;->unregisterNetworkActivityListener(Landroid/os/INetworkActivityListener;)V
 Landroid/os/INetworkManagementService;->unregisterTetheringStatsProvider(Landroid/net/ITetheringStatsProvider;)V
-Landroid/os/IPermissionController$Stub$Proxy;
 Landroid/os/IPermissionController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IPermissionController$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/IPermissionController$Stub$Proxy;->getPackagesForUid(I)[Ljava/lang/String;
@@ -54344,20 +50698,17 @@
 Landroid/os/IPermissionController$Stub$Proxy;->isRuntimePermission(Ljava/lang/String;)Z
 Landroid/os/IPermissionController$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/os/IPermissionController$Stub$Proxy;->noteOp(Ljava/lang/String;ILjava/lang/String;)I
-Landroid/os/IPermissionController$Stub;
 Landroid/os/IPermissionController$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IPermissionController$Stub;->TRANSACTION_checkPermission:I
 Landroid/os/IPermissionController$Stub;->TRANSACTION_getPackagesForUid:I
 Landroid/os/IPermissionController$Stub;->TRANSACTION_getPackageUid:I
 Landroid/os/IPermissionController$Stub;->TRANSACTION_isRuntimePermission:I
 Landroid/os/IPermissionController$Stub;->TRANSACTION_noteOp:I
-Landroid/os/IPermissionController;
 Landroid/os/IPermissionController;->checkPermission(Ljava/lang/String;II)Z
 Landroid/os/IPermissionController;->getPackagesForUid(I)[Ljava/lang/String;
 Landroid/os/IPermissionController;->getPackageUid(Ljava/lang/String;I)I
 Landroid/os/IPermissionController;->isRuntimePermission(Ljava/lang/String;)Z
 Landroid/os/IPermissionController;->noteOp(Ljava/lang/String;ILjava/lang/String;)I
-Landroid/os/IPowerManager$Stub$Proxy;
 Landroid/os/IPowerManager$Stub$Proxy;->acquireWakeLock(Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;)V
 Landroid/os/IPowerManager$Stub$Proxy;->acquireWakeLockWithUid(Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;I)V
 Landroid/os/IPowerManager$Stub$Proxy;->boostScreenBrightness(J)V
@@ -54386,7 +50737,6 @@
 Landroid/os/IPowerManager$Stub$Proxy;->updateWakeLockWorkSource(Landroid/os/IBinder;Landroid/os/WorkSource;Ljava/lang/String;)V
 Landroid/os/IPowerManager$Stub$Proxy;->userActivity(JII)V
 Landroid/os/IPowerManager$Stub$Proxy;->wakeUp(JLjava/lang/String;Ljava/lang/String;)V
-Landroid/os/IPowerManager$Stub;
 Landroid/os/IPowerManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IPowerManager$Stub;->TRANSACTION_acquireWakeLockWithUid:I
 Landroid/os/IPowerManager$Stub;->TRANSACTION_boostScreenBrightness:I
@@ -54413,7 +50763,6 @@
 Landroid/os/IPowerManager$Stub;->TRANSACTION_updateWakeLockWorkSource:I
 Landroid/os/IPowerManager$Stub;->TRANSACTION_userActivity:I
 Landroid/os/IPowerManager$Stub;->TRANSACTION_wakeUp:I
-Landroid/os/IPowerManager;
 Landroid/os/IPowerManager;->acquireWakeLock(Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;Landroid/os/WorkSource;Ljava/lang/String;)V
 Landroid/os/IPowerManager;->acquireWakeLockWithUid(Landroid/os/IBinder;ILjava/lang/String;Ljava/lang/String;I)V
 Landroid/os/IPowerManager;->boostScreenBrightness(J)V
@@ -54434,40 +50783,33 @@
 Landroid/os/IPowerManager;->shutdown(ZLjava/lang/String;Z)V
 Landroid/os/IPowerManager;->updateWakeLockUids(Landroid/os/IBinder;[I)V
 Landroid/os/IPowerManager;->updateWakeLockWorkSource(Landroid/os/IBinder;Landroid/os/WorkSource;Ljava/lang/String;)V
-Landroid/os/IProcessInfoService$Stub$Proxy;
 Landroid/os/IProcessInfoService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IProcessInfoService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/IProcessInfoService$Stub$Proxy;->getProcessStatesAndOomScoresFromPids([I[I[I)V
 Landroid/os/IProcessInfoService$Stub$Proxy;->getProcessStatesFromPids([I[I)V
 Landroid/os/IProcessInfoService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/os/IProcessInfoService$Stub;
 Landroid/os/IProcessInfoService$Stub;-><init>()V
 Landroid/os/IProcessInfoService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IProcessInfoService;
 Landroid/os/IProcessInfoService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IProcessInfoService$Stub;->TRANSACTION_getProcessStatesAndOomScoresFromPids:I
 Landroid/os/IProcessInfoService$Stub;->TRANSACTION_getProcessStatesFromPids:I
-Landroid/os/IProcessInfoService;
 Landroid/os/IProcessInfoService;->getProcessStatesAndOomScoresFromPids([I[I[I)V
 Landroid/os/IProcessInfoService;->getProcessStatesFromPids([I[I)V
-Landroid/os/IProgressListener$Stub$Proxy;
 Landroid/os/IProgressListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IProgressListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/IProgressListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/os/IProgressListener$Stub$Proxy;->onFinished(ILandroid/os/Bundle;)V
 Landroid/os/IProgressListener$Stub$Proxy;->onProgress(IILandroid/os/Bundle;)V
 Landroid/os/IProgressListener$Stub$Proxy;->onStarted(ILandroid/os/Bundle;)V
-Landroid/os/IProgressListener$Stub;
 Landroid/os/IProgressListener$Stub;-><init>()V
 Landroid/os/IProgressListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IProgressListener;
 Landroid/os/IProgressListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IProgressListener$Stub;->TRANSACTION_onFinished:I
 Landroid/os/IProgressListener$Stub;->TRANSACTION_onProgress:I
 Landroid/os/IProgressListener$Stub;->TRANSACTION_onStarted:I
-Landroid/os/IProgressListener;
 Landroid/os/IProgressListener;->onFinished(ILandroid/os/Bundle;)V
 Landroid/os/IProgressListener;->onProgress(IILandroid/os/Bundle;)V
 Landroid/os/IProgressListener;->onStarted(ILandroid/os/Bundle;)V
-Landroid/os/IRecoverySystem$Stub$Proxy;
 Landroid/os/IRecoverySystem$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IRecoverySystem$Stub$Proxy;->clearBcb()Z
 Landroid/os/IRecoverySystem$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -54475,56 +50817,44 @@
 Landroid/os/IRecoverySystem$Stub$Proxy;->rebootRecoveryWithCommand(Ljava/lang/String;)V
 Landroid/os/IRecoverySystem$Stub$Proxy;->setupBcb(Ljava/lang/String;)Z
 Landroid/os/IRecoverySystem$Stub$Proxy;->uncrypt(Ljava/lang/String;Landroid/os/IRecoverySystemProgressListener;)Z
-Landroid/os/IRecoverySystem$Stub;
 Landroid/os/IRecoverySystem$Stub;-><init>()V
 Landroid/os/IRecoverySystem$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IRecoverySystem$Stub;->TRANSACTION_clearBcb:I
 Landroid/os/IRecoverySystem$Stub;->TRANSACTION_rebootRecoveryWithCommand:I
 Landroid/os/IRecoverySystem$Stub;->TRANSACTION_setupBcb:I
 Landroid/os/IRecoverySystem$Stub;->TRANSACTION_uncrypt:I
-Landroid/os/IRecoverySystem;
 Landroid/os/IRecoverySystem;->clearBcb()Z
 Landroid/os/IRecoverySystem;->rebootRecoveryWithCommand(Ljava/lang/String;)V
 Landroid/os/IRecoverySystem;->setupBcb(Ljava/lang/String;)Z
 Landroid/os/IRecoverySystem;->uncrypt(Ljava/lang/String;Landroid/os/IRecoverySystemProgressListener;)Z
-Landroid/os/IRecoverySystemProgressListener$Stub$Proxy;
 Landroid/os/IRecoverySystemProgressListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IRecoverySystemProgressListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/IRecoverySystemProgressListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/os/IRecoverySystemProgressListener$Stub$Proxy;->onProgress(I)V
-Landroid/os/IRecoverySystemProgressListener$Stub;
 Landroid/os/IRecoverySystemProgressListener$Stub;-><init>()V
 Landroid/os/IRecoverySystemProgressListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IRecoverySystemProgressListener;
 Landroid/os/IRecoverySystemProgressListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IRecoverySystemProgressListener$Stub;->TRANSACTION_onProgress:I
-Landroid/os/IRecoverySystemProgressListener;
 Landroid/os/IRecoverySystemProgressListener;->onProgress(I)V
-Landroid/os/IRemoteCallback$Stub$Proxy;
 Landroid/os/IRemoteCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IRemoteCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/IRemoteCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/os/IRemoteCallback$Stub$Proxy;->sendResult(Landroid/os/Bundle;)V
-Landroid/os/IRemoteCallback$Stub;
 Landroid/os/IRemoteCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IRemoteCallback;
 Landroid/os/IRemoteCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IRemoteCallback$Stub;->TRANSACTION_sendResult:I
-Landroid/os/IRemoteCallback;
-Landroid/os/ISchedulingPolicyService$Stub$Proxy;
 Landroid/os/ISchedulingPolicyService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/ISchedulingPolicyService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/ISchedulingPolicyService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/os/ISchedulingPolicyService$Stub$Proxy;->requestCpusetBoost(ZLandroid/os/IBinder;)I
 Landroid/os/ISchedulingPolicyService$Stub$Proxy;->requestPriority(IIIZ)I
-Landroid/os/ISchedulingPolicyService$Stub;
 Landroid/os/ISchedulingPolicyService$Stub;-><init>()V
 Landroid/os/ISchedulingPolicyService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/ISchedulingPolicyService;
 Landroid/os/ISchedulingPolicyService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/ISchedulingPolicyService$Stub;->TRANSACTION_requestCpusetBoost:I
 Landroid/os/ISchedulingPolicyService$Stub;->TRANSACTION_requestPriority:I
-Landroid/os/ISchedulingPolicyService;
 Landroid/os/ISchedulingPolicyService;->requestCpusetBoost(ZLandroid/os/IBinder;)I
 Landroid/os/ISchedulingPolicyService;->requestPriority(IIIZ)I
-Landroid/os/IServiceManager;
 Landroid/os/IServiceManager;->addService(Ljava/lang/String;Landroid/os/IBinder;ZI)V
 Landroid/os/IServiceManager;->ADD_SERVICE_TRANSACTION:I
 Landroid/os/IServiceManager;->CHECK_SERVICES_TRANSACTION:I
@@ -54541,7 +50871,6 @@
 Landroid/os/IServiceManager;->LIST_SERVICES_TRANSACTION:I
 Landroid/os/IServiceManager;->setPermissionController(Landroid/os/IPermissionController;)V
 Landroid/os/IServiceManager;->SET_PERMISSION_CONTROLLER_TRANSACTION:I
-Landroid/os/IStatsCompanionService$Stub$Proxy;
 Landroid/os/IStatsCompanionService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IStatsCompanionService$Stub$Proxy;->cancelAlarmForSubscriberTriggering()V
 Landroid/os/IStatsCompanionService$Stub$Proxy;->cancelAnomalyAlarm()V
@@ -54556,7 +50885,6 @@
 Landroid/os/IStatsCompanionService$Stub$Proxy;->setPullingAlarm(J)V
 Landroid/os/IStatsCompanionService$Stub$Proxy;->statsdReady()V
 Landroid/os/IStatsCompanionService$Stub$Proxy;->triggerUidSnapshot()V
-Landroid/os/IStatsCompanionService$Stub;
 Landroid/os/IStatsCompanionService$Stub;-><init>()V
 Landroid/os/IStatsCompanionService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IStatsCompanionService;
 Landroid/os/IStatsCompanionService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -54571,7 +50899,6 @@
 Landroid/os/IStatsCompanionService$Stub;->TRANSACTION_setPullingAlarm:I
 Landroid/os/IStatsCompanionService$Stub;->TRANSACTION_statsdReady:I
 Landroid/os/IStatsCompanionService$Stub;->TRANSACTION_triggerUidSnapshot:I
-Landroid/os/IStatsCompanionService;
 Landroid/os/IStatsCompanionService;->cancelAlarmForSubscriberTriggering()V
 Landroid/os/IStatsCompanionService;->cancelAnomalyAlarm()V
 Landroid/os/IStatsCompanionService;->cancelPullingAlarm()V
@@ -54583,7 +50910,6 @@
 Landroid/os/IStatsCompanionService;->setPullingAlarm(J)V
 Landroid/os/IStatsCompanionService;->statsdReady()V
 Landroid/os/IStatsCompanionService;->triggerUidSnapshot()V
-Landroid/os/IStatsManager$Stub$Proxy;
 Landroid/os/IStatsManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IStatsManager$Stub$Proxy;->addConfiguration(J[BLjava/lang/String;)V
 Landroid/os/IStatsManager$Stub$Proxy;->getData(JLjava/lang/String;)[B
@@ -54605,7 +50931,6 @@
 Landroid/os/IStatsManager$Stub$Proxy;->statsCompanionReady()V
 Landroid/os/IStatsManager$Stub$Proxy;->systemRunning()V
 Landroid/os/IStatsManager$Stub$Proxy;->unsetBroadcastSubscriber(JJLjava/lang/String;)V
-Landroid/os/IStatsManager$Stub;
 Landroid/os/IStatsManager$Stub;-><init>()V
 Landroid/os/IStatsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IStatsManager;
 Landroid/os/IStatsManager$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -54627,7 +50952,6 @@
 Landroid/os/IStatsManager$Stub;->TRANSACTION_statsCompanionReady:I
 Landroid/os/IStatsManager$Stub;->TRANSACTION_systemRunning:I
 Landroid/os/IStatsManager$Stub;->TRANSACTION_unsetBroadcastSubscriber:I
-Landroid/os/IStatsManager;
 Landroid/os/IStatsManager;->addConfiguration(J[BLjava/lang/String;)V
 Landroid/os/IStatsManager;->getData(JLjava/lang/String;)[B
 Landroid/os/IStatsManager;->getMetadata(Ljava/lang/String;)[B
@@ -54646,52 +50970,42 @@
 Landroid/os/IStatsManager;->statsCompanionReady()V
 Landroid/os/IStatsManager;->systemRunning()V
 Landroid/os/IStatsManager;->unsetBroadcastSubscriber(JJLjava/lang/String;)V
-Landroid/os/IStoraged$Stub$Proxy;
 Landroid/os/IStoraged$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IStoraged$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/IStoraged$Stub$Proxy;->getRecentPerf()I
 Landroid/os/IStoraged$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/os/IStoraged$Stub$Proxy;->onUserStarted(I)V
 Landroid/os/IStoraged$Stub$Proxy;->onUserStopped(I)V
-Landroid/os/IStoraged$Stub;
 Landroid/os/IStoraged$Stub;-><init>()V
 Landroid/os/IStoraged$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IStoraged;
 Landroid/os/IStoraged$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IStoraged$Stub;->TRANSACTION_getRecentPerf:I
 Landroid/os/IStoraged$Stub;->TRANSACTION_onUserStarted:I
 Landroid/os/IStoraged$Stub;->TRANSACTION_onUserStopped:I
-Landroid/os/IStoraged;
 Landroid/os/IStoraged;->getRecentPerf()I
 Landroid/os/IStoraged;->onUserStarted(I)V
 Landroid/os/IStoraged;->onUserStopped(I)V
-Landroid/os/ISystemUpdateManager$Stub$Proxy;
 Landroid/os/ISystemUpdateManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/ISystemUpdateManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/ISystemUpdateManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/os/ISystemUpdateManager$Stub$Proxy;->retrieveSystemUpdateInfo()Landroid/os/Bundle;
 Landroid/os/ISystemUpdateManager$Stub$Proxy;->updateSystemUpdateInfo(Landroid/os/PersistableBundle;)V
-Landroid/os/ISystemUpdateManager$Stub;
 Landroid/os/ISystemUpdateManager$Stub;-><init>()V
 Landroid/os/ISystemUpdateManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/ISystemUpdateManager;
 Landroid/os/ISystemUpdateManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/ISystemUpdateManager$Stub;->TRANSACTION_retrieveSystemUpdateInfo:I
 Landroid/os/ISystemUpdateManager$Stub;->TRANSACTION_updateSystemUpdateInfo:I
-Landroid/os/ISystemUpdateManager;
 Landroid/os/ISystemUpdateManager;->retrieveSystemUpdateInfo()Landroid/os/Bundle;
 Landroid/os/ISystemUpdateManager;->updateSystemUpdateInfo(Landroid/os/PersistableBundle;)V
-Landroid/os/IThermalEventListener$Stub$Proxy;
 Landroid/os/IThermalEventListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IThermalEventListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/IThermalEventListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/os/IThermalEventListener$Stub$Proxy;->notifyThrottling(ZLandroid/os/Temperature;)V
-Landroid/os/IThermalEventListener$Stub;
 Landroid/os/IThermalEventListener$Stub;-><init>()V
 Landroid/os/IThermalEventListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IThermalEventListener;
 Landroid/os/IThermalEventListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IThermalEventListener$Stub;->TRANSACTION_notifyThrottling:I
-Landroid/os/IThermalEventListener;
 Landroid/os/IThermalEventListener;->notifyThrottling(ZLandroid/os/Temperature;)V
-Landroid/os/IThermalService$Stub$Proxy;
 Landroid/os/IThermalService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IThermalService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/IThermalService$Stub$Proxy;->isThrottling()Z
@@ -54699,7 +51013,6 @@
 Landroid/os/IThermalService$Stub$Proxy;->notifyThrottling(ZLandroid/os/Temperature;)V
 Landroid/os/IThermalService$Stub$Proxy;->registerThermalEventListener(Landroid/os/IThermalEventListener;)V
 Landroid/os/IThermalService$Stub$Proxy;->unregisterThermalEventListener(Landroid/os/IThermalEventListener;)V
-Landroid/os/IThermalService$Stub;
 Landroid/os/IThermalService$Stub;-><init>()V
 Landroid/os/IThermalService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IThermalService;
 Landroid/os/IThermalService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -54707,12 +51020,10 @@
 Landroid/os/IThermalService$Stub;->TRANSACTION_notifyThrottling:I
 Landroid/os/IThermalService$Stub;->TRANSACTION_registerThermalEventListener:I
 Landroid/os/IThermalService$Stub;->TRANSACTION_unregisterThermalEventListener:I
-Landroid/os/IThermalService;
 Landroid/os/IThermalService;->isThrottling()Z
 Landroid/os/IThermalService;->notifyThrottling(ZLandroid/os/Temperature;)V
 Landroid/os/IThermalService;->registerThermalEventListener(Landroid/os/IThermalEventListener;)V
 Landroid/os/IThermalService;->unregisterThermalEventListener(Landroid/os/IThermalEventListener;)V
-Landroid/os/IUpdateEngine$Stub$Proxy;
 Landroid/os/IUpdateEngine$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IUpdateEngine$Stub$Proxy;->applyPayload(Ljava/lang/String;JJ[Ljava/lang/String;)V
 Landroid/os/IUpdateEngine$Stub$Proxy;->bind(Landroid/os/IUpdateEngineCallback;)Z
@@ -54724,7 +51035,6 @@
 Landroid/os/IUpdateEngine$Stub$Proxy;->suspend()V
 Landroid/os/IUpdateEngine$Stub$Proxy;->unbind(Landroid/os/IUpdateEngineCallback;)Z
 Landroid/os/IUpdateEngine$Stub$Proxy;->verifyPayloadApplicable(Ljava/lang/String;)Z
-Landroid/os/IUpdateEngine$Stub;
 Landroid/os/IUpdateEngine$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUpdateEngine;
 Landroid/os/IUpdateEngine$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IUpdateEngine$Stub;->TRANSACTION_applyPayload:I
@@ -54735,7 +51045,6 @@
 Landroid/os/IUpdateEngine$Stub;->TRANSACTION_suspend:I
 Landroid/os/IUpdateEngine$Stub;->TRANSACTION_unbind:I
 Landroid/os/IUpdateEngine$Stub;->TRANSACTION_verifyPayloadApplicable:I
-Landroid/os/IUpdateEngine;
 Landroid/os/IUpdateEngine;->applyPayload(Ljava/lang/String;JJ[Ljava/lang/String;)V
 Landroid/os/IUpdateEngine;->bind(Landroid/os/IUpdateEngineCallback;)Z
 Landroid/os/IUpdateEngine;->cancel()V
@@ -54744,36 +51053,29 @@
 Landroid/os/IUpdateEngine;->suspend()V
 Landroid/os/IUpdateEngine;->unbind(Landroid/os/IUpdateEngineCallback;)Z
 Landroid/os/IUpdateEngine;->verifyPayloadApplicable(Ljava/lang/String;)Z
-Landroid/os/IUpdateEngineCallback$Stub$Proxy;
 Landroid/os/IUpdateEngineCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IUpdateEngineCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/IUpdateEngineCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/os/IUpdateEngineCallback$Stub$Proxy;->onPayloadApplicationComplete(I)V
 Landroid/os/IUpdateEngineCallback$Stub$Proxy;->onStatusUpdate(IF)V
-Landroid/os/IUpdateEngineCallback$Stub;
 Landroid/os/IUpdateEngineCallback$Stub;-><init>()V
 Landroid/os/IUpdateEngineCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUpdateEngineCallback;
 Landroid/os/IUpdateEngineCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IUpdateEngineCallback$Stub;->TRANSACTION_onPayloadApplicationComplete:I
 Landroid/os/IUpdateEngineCallback$Stub;->TRANSACTION_onStatusUpdate:I
-Landroid/os/IUpdateEngineCallback;
 Landroid/os/IUpdateEngineCallback;->onPayloadApplicationComplete(I)V
-Landroid/os/IUpdateLock$Stub$Proxy;
 Landroid/os/IUpdateLock$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IUpdateLock$Stub$Proxy;->acquireUpdateLock(Landroid/os/IBinder;Ljava/lang/String;)V
 Landroid/os/IUpdateLock$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/IUpdateLock$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/os/IUpdateLock$Stub$Proxy;->releaseUpdateLock(Landroid/os/IBinder;)V
-Landroid/os/IUpdateLock$Stub;
 Landroid/os/IUpdateLock$Stub;-><init>()V
 Landroid/os/IUpdateLock$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUpdateLock;
 Landroid/os/IUpdateLock$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IUpdateLock$Stub;->TRANSACTION_acquireUpdateLock:I
 Landroid/os/IUpdateLock$Stub;->TRANSACTION_releaseUpdateLock:I
-Landroid/os/IUpdateLock;
 Landroid/os/IUpdateLock;->acquireUpdateLock(Landroid/os/IBinder;Ljava/lang/String;)V
 Landroid/os/IUpdateLock;->releaseUpdateLock(Landroid/os/IBinder;)V
-Landroid/os/IUserManager$Stub$Proxy;
 Landroid/os/IUserManager$Stub$Proxy;->canAddMoreManagedProfiles(IZ)Z
 Landroid/os/IUserManager$Stub$Proxy;->canHaveRestrictedProfile(I)Z
 Landroid/os/IUserManager$Stub$Proxy;->clearSeedAccountData()V
@@ -54836,7 +51138,6 @@
 Landroid/os/IUserManager$Stub$Proxy;->setUserName(ILjava/lang/String;)V
 Landroid/os/IUserManager$Stub$Proxy;->setUserRestriction(Ljava/lang/String;ZI)V
 Landroid/os/IUserManager$Stub$Proxy;->someUserHasSeedAccount(Ljava/lang/String;Ljava/lang/String;)Z
-Landroid/os/IUserManager$Stub;
 Landroid/os/IUserManager$Stub;-><init>()V
 Landroid/os/IUserManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IUserManager$Stub;->TRANSACTION_canAddMoreManagedProfiles:I
@@ -54899,7 +51200,6 @@
 Landroid/os/IUserManager$Stub;->TRANSACTION_setUserName:I
 Landroid/os/IUserManager$Stub;->TRANSACTION_setUserRestriction:I
 Landroid/os/IUserManager$Stub;->TRANSACTION_someUserHasSeedAccount:I
-Landroid/os/IUserManager;
 Landroid/os/IUserManager;->canAddMoreManagedProfiles(IZ)Z
 Landroid/os/IUserManager;->canHaveRestrictedProfile(I)Z
 Landroid/os/IUserManager;->clearSeedAccountData()V
@@ -54959,7 +51259,6 @@
 Landroid/os/IUserManager;->setUserName(ILjava/lang/String;)V
 Landroid/os/IUserManager;->setUserRestriction(Ljava/lang/String;ZI)V
 Landroid/os/IUserManager;->someUserHasSeedAccount(Ljava/lang/String;Ljava/lang/String;)Z
-Landroid/os/IVibratorService$Stub$Proxy;
 Landroid/os/IVibratorService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IVibratorService$Stub$Proxy;->cancelVibrate(Landroid/os/IBinder;)V
 Landroid/os/IVibratorService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -54967,19 +51266,16 @@
 Landroid/os/IVibratorService$Stub$Proxy;->hasVibrator()Z
 Landroid/os/IVibratorService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/os/IVibratorService$Stub$Proxy;->vibrate(ILjava/lang/String;Landroid/os/VibrationEffect;ILandroid/os/IBinder;)V
-Landroid/os/IVibratorService$Stub;
 Landroid/os/IVibratorService$Stub;-><init>()V
 Landroid/os/IVibratorService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IVibratorService$Stub;->TRANSACTION_cancelVibrate:I
 Landroid/os/IVibratorService$Stub;->TRANSACTION_hasAmplitudeControl:I
 Landroid/os/IVibratorService$Stub;->TRANSACTION_hasVibrator:I
 Landroid/os/IVibratorService$Stub;->TRANSACTION_vibrate:I
-Landroid/os/IVibratorService;
 Landroid/os/IVibratorService;->cancelVibrate(Landroid/os/IBinder;)V
 Landroid/os/IVibratorService;->hasAmplitudeControl()Z
 Landroid/os/IVibratorService;->hasVibrator()Z
 Landroid/os/IVibratorService;->vibrate(ILjava/lang/String;Landroid/os/VibrationEffect;ILandroid/os/IBinder;)V
-Landroid/os/IVold$Stub$Proxy;
 Landroid/os/IVold$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IVold$Stub$Proxy;->abortIdleMaint(Landroid/os/IVoldTaskListener;)V
 Landroid/os/IVold$Stub$Proxy;->addUserKeyAuth(IILjava/lang/String;Ljava/lang/String;)V
@@ -55034,7 +51330,6 @@
 Landroid/os/IVold$Stub$Proxy;->unlockUserKey(IILjava/lang/String;Ljava/lang/String;)V
 Landroid/os/IVold$Stub$Proxy;->unmount(Ljava/lang/String;)V
 Landroid/os/IVold$Stub$Proxy;->unmountAppFuse(III)V
-Landroid/os/IVold$Stub;
 Landroid/os/IVold$Stub;-><init>()V
 Landroid/os/IVold$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IVold;
 Landroid/os/IVold$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -55089,7 +51384,6 @@
 Landroid/os/IVold$Stub;->TRANSACTION_unlockUserKey:I
 Landroid/os/IVold$Stub;->TRANSACTION_unmount:I
 Landroid/os/IVold$Stub;->TRANSACTION_unmountAppFuse:I
-Landroid/os/IVold;
 Landroid/os/IVold;->abortIdleMaint(Landroid/os/IVoldTaskListener;)V
 Landroid/os/IVold;->addUserKeyAuth(IILjava/lang/String;Ljava/lang/String;)V
 Landroid/os/IVold;->benchmark(Ljava/lang/String;Landroid/os/IVoldTaskListener;)V
@@ -55178,7 +51472,6 @@
 Landroid/os/IVold;->VOLUME_TYPE_OBB:I
 Landroid/os/IVold;->VOLUME_TYPE_PRIVATE:I
 Landroid/os/IVold;->VOLUME_TYPE_PUBLIC:I
-Landroid/os/IVoldListener$Stub$Proxy;
 Landroid/os/IVoldListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IVoldListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/IVoldListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -55192,7 +51485,6 @@
 Landroid/os/IVoldListener$Stub$Proxy;->onVolumeMetadataChanged(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/os/IVoldListener$Stub$Proxy;->onVolumePathChanged(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/os/IVoldListener$Stub$Proxy;->onVolumeStateChanged(Ljava/lang/String;I)V
-Landroid/os/IVoldListener$Stub;
 Landroid/os/IVoldListener$Stub;-><init>()V
 Landroid/os/IVoldListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IVoldListener;
 Landroid/os/IVoldListener$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -55206,7 +51498,6 @@
 Landroid/os/IVoldListener$Stub;->TRANSACTION_onVolumeMetadataChanged:I
 Landroid/os/IVoldListener$Stub;->TRANSACTION_onVolumePathChanged:I
 Landroid/os/IVoldListener$Stub;->TRANSACTION_onVolumeStateChanged:I
-Landroid/os/IVoldListener;
 Landroid/os/IVoldListener;->onDiskCreated(Ljava/lang/String;I)V
 Landroid/os/IVoldListener;->onDiskDestroyed(Ljava/lang/String;)V
 Landroid/os/IVoldListener;->onDiskMetadataChanged(Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;)V
@@ -55217,23 +51508,18 @@
 Landroid/os/IVoldListener;->onVolumeMetadataChanged(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/os/IVoldListener;->onVolumePathChanged(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/os/IVoldListener;->onVolumeStateChanged(Ljava/lang/String;I)V
-Landroid/os/IVoldTaskListener$Stub$Proxy;
 Landroid/os/IVoldTaskListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IVoldTaskListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/IVoldTaskListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/os/IVoldTaskListener$Stub$Proxy;->onFinished(ILandroid/os/PersistableBundle;)V
 Landroid/os/IVoldTaskListener$Stub$Proxy;->onStatus(ILandroid/os/PersistableBundle;)V
-Landroid/os/IVoldTaskListener$Stub;
 Landroid/os/IVoldTaskListener$Stub;-><init>()V
 Landroid/os/IVoldTaskListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IVoldTaskListener;
 Landroid/os/IVoldTaskListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/IVoldTaskListener$Stub;->TRANSACTION_onFinished:I
 Landroid/os/IVoldTaskListener$Stub;->TRANSACTION_onStatus:I
-Landroid/os/IVoldTaskListener;
 Landroid/os/IVoldTaskListener;->onFinished(ILandroid/os/PersistableBundle;)V
 Landroid/os/IVoldTaskListener;->onStatus(ILandroid/os/PersistableBundle;)V
-Landroid/os/KernelWakeSourcesProto$WakeupSource;
-Landroid/os/KernelWakeSourcesProto$WakeupSource;-><init>()V
 Landroid/os/KernelWakeSourcesProto$WakeupSource;->ACTIVE_COUNT:J
 Landroid/os/KernelWakeSourcesProto$WakeupSource;->ACTIVE_SINCE:J
 Landroid/os/KernelWakeSourcesProto$WakeupSource;->EVENT_COUNT:J
@@ -55244,7 +51530,6 @@
 Landroid/os/KernelWakeSourcesProto$WakeupSource;->PREVENT_SUSPEND_TIME:J
 Landroid/os/KernelWakeSourcesProto$WakeupSource;->TOTAL_TIME:J
 Landroid/os/KernelWakeSourcesProto$WakeupSource;->WAKEUP_COUNT:J
-Landroid/os/KernelWakeSourcesProto;
 Landroid/os/KernelWakeSourcesProto;-><init>()V
 Landroid/os/KernelWakeSourcesProto;->WAKEUP_SOURCES:J
 Landroid/os/LocaleList;-><init>(Ljava/util/Locale;Landroid/os/LocaleList;)V
@@ -55287,18 +51572,13 @@
 Landroid/os/Looper;->showSlowLog(JJJLjava/lang/String;Landroid/os/Message;)Z
 Landroid/os/Looper;->TAG:Ljava/lang/String;
 Landroid/os/Looper;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/os/LooperProto;
 Landroid/os/LooperProto;-><init>()V
 Landroid/os/LooperProto;->QUEUE:J
 Landroid/os/LooperProto;->THREAD_ID:J
 Landroid/os/LooperProto;->THREAD_NAME:J
-Landroid/os/MemoryFile$MemoryInputStream;
-Landroid/os/MemoryFile$MemoryInputStream;-><init>()V
 Landroid/os/MemoryFile$MemoryInputStream;->mMark:I
 Landroid/os/MemoryFile$MemoryInputStream;->mOffset:I
 Landroid/os/MemoryFile$MemoryInputStream;->mSingleByte:[B
-Landroid/os/MemoryFile$MemoryOutputStream;
-Landroid/os/MemoryFile$MemoryOutputStream;-><init>()V
 Landroid/os/MemoryFile$MemoryOutputStream;->mOffset:I
 Landroid/os/MemoryFile$MemoryOutputStream;->mSingleByte:[B
 Landroid/os/MemoryFile;->beginAccess()V
@@ -55322,7 +51602,6 @@
 Landroid/os/Message;->sPoolSync:Ljava/lang/Object;
 Landroid/os/Message;->updateCheckRecycle(I)V
 Landroid/os/Message;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/os/MessageProto;
 Landroid/os/MessageProto;-><init>()V
 Landroid/os/MessageProto;->ARG1:J
 Landroid/os/MessageProto;->ARG2:J
@@ -55332,13 +51611,11 @@
 Landroid/os/MessageProto;->TARGET:J
 Landroid/os/MessageProto;->WHAT:J
 Landroid/os/MessageProto;->WHEN:J
-Landroid/os/MessageQueue$FileDescriptorRecord;
 Landroid/os/MessageQueue$FileDescriptorRecord;-><init>(Ljava/io/FileDescriptor;ILandroid/os/MessageQueue$OnFileDescriptorEventListener;)V
 Landroid/os/MessageQueue$FileDescriptorRecord;->mDescriptor:Ljava/io/FileDescriptor;
 Landroid/os/MessageQueue$FileDescriptorRecord;->mEvents:I
 Landroid/os/MessageQueue$FileDescriptorRecord;->mListener:Landroid/os/MessageQueue$OnFileDescriptorEventListener;
 Landroid/os/MessageQueue$FileDescriptorRecord;->mSeq:I
-Landroid/os/MessageQueue$OnFileDescriptorEventListener$Events;
 Landroid/os/MessageQueue;-><init>(Z)V
 Landroid/os/MessageQueue;->DEBUG:Z
 Landroid/os/MessageQueue;->dispose()V
@@ -55367,18 +51644,15 @@
 Landroid/os/MessageQueue;->TAG:Ljava/lang/String;
 Landroid/os/MessageQueue;->updateOnFileDescriptorEventListenerLocked(Ljava/io/FileDescriptor;ILandroid/os/MessageQueue$OnFileDescriptorEventListener;)V
 Landroid/os/MessageQueue;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/os/MessageQueueProto;
 Landroid/os/MessageQueueProto;-><init>()V
 Landroid/os/MessageQueueProto;->IS_POLLING_LOCKED:J
 Landroid/os/MessageQueueProto;->IS_QUITTING:J
 Landroid/os/MessageQueueProto;->MESSAGES:J
 Landroid/os/Messenger;->mTarget:Landroid/os/IMessenger;
-Landroid/os/NullVibrator;
 Landroid/os/NullVibrator;-><init>()V
 Landroid/os/NullVibrator;->getInstance()Landroid/os/NullVibrator;
 Landroid/os/NullVibrator;->sInstance:Landroid/os/NullVibrator;
 Landroid/os/NullVibrator;->vibrate(ILjava/lang/String;Landroid/os/VibrationEffect;Landroid/media/AudioAttributes;)V
-Landroid/os/OsProtoEnums;
 Landroid/os/OsProtoEnums;-><init>()V
 Landroid/os/OsProtoEnums;->BATTERY_HEALTH_COLD:I
 Landroid/os/OsProtoEnums;->BATTERY_HEALTH_DEAD:I
@@ -55410,8 +51684,6 @@
 Landroid/os/OsProtoEnums;->TEMPERATURE_TYPE_GPU:I
 Landroid/os/OsProtoEnums;->TEMPERATURE_TYPE_SKIN:I
 Landroid/os/OsProtoEnums;->TEMPERATURE_TYPE_UNKNOWN:I
-Landroid/os/PageTypeInfoProto$Block;
-Landroid/os/PageTypeInfoProto$Block;-><init>()V
 Landroid/os/PageTypeInfoProto$Block;->CMA:J
 Landroid/os/PageTypeInfoProto$Block;->HIGHATOMIC:J
 Landroid/os/PageTypeInfoProto$Block;->ISOLATE:J
@@ -55421,19 +51693,15 @@
 Landroid/os/PageTypeInfoProto$Block;->RESERVE:J
 Landroid/os/PageTypeInfoProto$Block;->UNMOVABLE:J
 Landroid/os/PageTypeInfoProto$Block;->ZONE:J
-Landroid/os/PageTypeInfoProto$MigrateType;
-Landroid/os/PageTypeInfoProto$MigrateType;-><init>()V
 Landroid/os/PageTypeInfoProto$MigrateType;->FREE_PAGES_COUNT:J
 Landroid/os/PageTypeInfoProto$MigrateType;->NODE:J
 Landroid/os/PageTypeInfoProto$MigrateType;->TYPE:J
 Landroid/os/PageTypeInfoProto$MigrateType;->ZONE:J
-Landroid/os/PageTypeInfoProto;
 Landroid/os/PageTypeInfoProto;-><init>()V
 Landroid/os/PageTypeInfoProto;->BLOCKS:J
 Landroid/os/PageTypeInfoProto;->MIGRATE_TYPES:J
 Landroid/os/PageTypeInfoProto;->PAGES_PER_BLOCK:J
 Landroid/os/PageTypeInfoProto;->PAGE_BLOCK_ORDER:J
-Landroid/os/Parcel$ReadWriteHelper;
 Landroid/os/Parcel$ReadWriteHelper;->DEFAULT:Landroid/os/Parcel$ReadWriteHelper;
 Landroid/os/Parcel$ReadWriteHelper;->readString(Landroid/os/Parcel;)Ljava/lang/String;
 Landroid/os/Parcel$ReadWriteHelper;->writeString(Landroid/os/Parcel;Ljava/lang/String;)V
@@ -55583,22 +51851,17 @@
 Landroid/os/Parcel;->writeStringNoHelper(Ljava/lang/String;)V
 Landroid/os/Parcel;->writeTypedList(Ljava/util/List;I)V
 Landroid/os/Parcel;->WRITE_EXCEPTION_STACK_TRACE_THRESHOLD_MS:I
-Landroid/os/Parcelable$ContentsFlags;
-Landroid/os/Parcelable$WriteFlags;
 Landroid/os/Parcelable;->PARCELABLE_ELIDE_DUPLICATES:I
-Landroid/os/ParcelableException;
 Landroid/os/ParcelableException;-><init>(Ljava/lang/Throwable;)V
 Landroid/os/ParcelableException;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/os/ParcelableException;->maybeRethrow(Ljava/lang/Class;)V
 Landroid/os/ParcelableException;->readFromParcel(Landroid/os/Parcel;)Ljava/lang/Throwable;
 Landroid/os/ParcelableException;->writeToParcel(Landroid/os/Parcel;Ljava/lang/Throwable;)V
-Landroid/os/ParcelableParcel;
 Landroid/os/ParcelableParcel;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
 Landroid/os/ParcelableParcel;->mClassLoader:Ljava/lang/ClassLoader;
 Landroid/os/ParcelableParcel;->mParcel:Landroid/os/Parcel;
 Landroid/os/ParcelFileDescriptor$AutoCloseInputStream;->mPfd:Landroid/os/ParcelFileDescriptor;
 Landroid/os/ParcelFileDescriptor$AutoCloseOutputStream;->mPfd:Landroid/os/ParcelFileDescriptor;
-Landroid/os/ParcelFileDescriptor$Status;
 Landroid/os/ParcelFileDescriptor$Status;-><init>(I)V
 Landroid/os/ParcelFileDescriptor$Status;-><init>(ILjava/lang/String;)V
 Landroid/os/ParcelFileDescriptor$Status;->asIOException()Ljava/io/IOException;
@@ -55658,7 +51921,6 @@
 Landroid/os/PatternMatcher;->TOKEN_TYPE_LITERAL:I
 Landroid/os/PatternMatcher;->TOKEN_TYPE_SET:I
 Landroid/os/PatternMatcher;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/os/PatternMatcherProto;
 Landroid/os/PatternMatcherProto;-><init>()V
 Landroid/os/PatternMatcherProto;->PATTERN:J
 Landroid/os/PatternMatcherProto;->TYPE:J
@@ -55666,7 +51928,6 @@
 Landroid/os/PatternMatcherProto;->TYPE_LITERAL:I
 Landroid/os/PatternMatcherProto;->TYPE_PREFIX:I
 Landroid/os/PatternMatcherProto;->TYPE_SIMPLE_GLOB:I
-Landroid/os/PerformanceCollector$PerformanceResultsWriter;
 Landroid/os/PerformanceCollector$PerformanceResultsWriter;->writeBeginSnapshot(Ljava/lang/String;)V
 Landroid/os/PerformanceCollector$PerformanceResultsWriter;->writeEndSnapshot(Landroid/os/Bundle;)V
 Landroid/os/PerformanceCollector$PerformanceResultsWriter;->writeMeasurement(Ljava/lang/String;F)V
@@ -55674,7 +51935,6 @@
 Landroid/os/PerformanceCollector$PerformanceResultsWriter;->writeMeasurement(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/os/PerformanceCollector$PerformanceResultsWriter;->writeStartTiming(Ljava/lang/String;)V
 Landroid/os/PerformanceCollector$PerformanceResultsWriter;->writeStopTiming(Landroid/os/Bundle;)V
-Landroid/os/PerformanceCollector;
 Landroid/os/PerformanceCollector;-><init>(Landroid/os/PerformanceCollector$PerformanceResultsWriter;)V
 Landroid/os/PerformanceCollector;->addIteration(Ljava/lang/String;)Landroid/os/Bundle;
 Landroid/os/PerformanceCollector;->addMeasurement(Ljava/lang/String;F)V
@@ -55722,7 +51982,6 @@
 Landroid/os/PerformanceCollector;->startAllocCounting()V
 Landroid/os/PerformanceCollector;->startPerformanceSnapshot()V
 Landroid/os/PerformanceCollector;->stopAllocCounting()V
-Landroid/os/PersistableBundle$MyReadMapCallback;
 Landroid/os/PersistableBundle$MyReadMapCallback;-><init>()V
 Landroid/os/PersistableBundle$MyReadMapCallback;->readThisUnknownObjectXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/lang/Object;
 Landroid/os/PersistableBundle;-><init>(Landroid/os/Bundle;)V
@@ -55737,17 +51996,14 @@
 Landroid/os/PersistableBundle;->toShortString()Ljava/lang/String;
 Landroid/os/PersistableBundle;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
 Landroid/os/PersistableBundle;->writeUnknownObject(Ljava/lang/Object;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
-Landroid/os/PersistableBundleProto;
 Landroid/os/PersistableBundleProto;-><init>()V
 Landroid/os/PersistableBundleProto;->MAP_DATA:J
 Landroid/os/PersistableBundleProto;->PARCELLED_DATA_SIZE:J
-Landroid/os/PooledStringReader;
 Landroid/os/PooledStringReader;-><init>(Landroid/os/Parcel;)V
 Landroid/os/PooledStringReader;->getStringCount()I
 Landroid/os/PooledStringReader;->mIn:Landroid/os/Parcel;
 Landroid/os/PooledStringReader;->mPool:[Ljava/lang/String;
 Landroid/os/PooledStringReader;->readString()Ljava/lang/String;
-Landroid/os/PooledStringWriter;
 Landroid/os/PooledStringWriter;-><init>(Landroid/os/Parcel;)V
 Landroid/os/PooledStringWriter;->finish()V
 Landroid/os/PooledStringWriter;->getStringCount()I
@@ -55756,8 +52012,6 @@
 Landroid/os/PooledStringWriter;->mPool:Ljava/util/HashMap;
 Landroid/os/PooledStringWriter;->mStart:I
 Landroid/os/PooledStringWriter;->writeString(Ljava/lang/String;)V
-Landroid/os/PowerManager$LocationPowerSaveMode;
-Landroid/os/PowerManager$ServiceType;
 Landroid/os/PowerManager$ServiceType;->ANIMATION:I
 Landroid/os/PowerManager$ServiceType;->AOD:I
 Landroid/os/PowerManager$ServiceType;->BATTERY_STATS:I
@@ -55773,8 +52027,6 @@
 Landroid/os/PowerManager$ServiceType;->SCREEN_BRIGHTNESS:I
 Landroid/os/PowerManager$ServiceType;->SOUND:I
 Landroid/os/PowerManager$ServiceType;->VIBRATION:I
-Landroid/os/PowerManager$ShutdownReason;
-Landroid/os/PowerManager$WakeLock;-><init>(ILjava/lang/String;Ljava/lang/String;)V
 Landroid/os/PowerManager$WakeLock;->acquireLocked()V
 Landroid/os/PowerManager$WakeLock;->getTag()Ljava/lang/String;
 Landroid/os/PowerManager$WakeLock;->mExternalCount:I
@@ -55838,10 +52090,8 @@
 Landroid/os/PowerManager;->TAG:Ljava/lang/String;
 Landroid/os/PowerManager;->UNIMPORTANT_FOR_LOGGING:I
 Landroid/os/PowerManager;->WAKE_LOCK_LEVEL_MASK:I
-Landroid/os/PowerManagerInternal$LowPowerModeListener;
 Landroid/os/PowerManagerInternal$LowPowerModeListener;->getServiceType()I
 Landroid/os/PowerManagerInternal$LowPowerModeListener;->onLowPowerModeChanged(Landroid/os/PowerSaveState;)V
-Landroid/os/PowerManagerInternal;
 Landroid/os/PowerManagerInternal;-><init>()V
 Landroid/os/PowerManagerInternal;->finishUidChanges()V
 Landroid/os/PowerManagerInternal;->getLowPowerState(I)Landroid/os/PowerSaveState;
@@ -55870,26 +52120,21 @@
 Landroid/os/PowerManagerInternal;->WAKEFULNESS_AWAKE:I
 Landroid/os/PowerManagerInternal;->WAKEFULNESS_DOZING:I
 Landroid/os/PowerManagerInternal;->WAKEFULNESS_DREAMING:I
-Landroid/os/PowerManagerInternalProto;
 Landroid/os/PowerManagerInternalProto;-><init>()V
 Landroid/os/PowerManagerInternalProto;->WAKEFULNESS_ASLEEP:I
 Landroid/os/PowerManagerInternalProto;->WAKEFULNESS_AWAKE:I
 Landroid/os/PowerManagerInternalProto;->WAKEFULNESS_DOZING:I
 Landroid/os/PowerManagerInternalProto;->WAKEFULNESS_DREAMING:I
-Landroid/os/PowerManagerProto$WakeLock;
-Landroid/os/PowerManagerProto$WakeLock;-><init>()V
 Landroid/os/PowerManagerProto$WakeLock;->HELD:J
 Landroid/os/PowerManagerProto$WakeLock;->INTERNAL_COUNT:J
 Landroid/os/PowerManagerProto$WakeLock;->PACKAGE_NAME:J
 Landroid/os/PowerManagerProto$WakeLock;->TAG:J
 Landroid/os/PowerManagerProto$WakeLock;->WORK_SOURCE:J
-Landroid/os/PowerManagerProto;
 Landroid/os/PowerManagerProto;-><init>()V
 Landroid/os/PowerManagerProto;->USER_ACTIVITY_EVENT_ACCESSIBILITY:I
 Landroid/os/PowerManagerProto;->USER_ACTIVITY_EVENT_BUTTON:I
 Landroid/os/PowerManagerProto;->USER_ACTIVITY_EVENT_OTHER:I
 Landroid/os/PowerManagerProto;->USER_ACTIVITY_EVENT_TOUCH:I
-Landroid/os/PowerSaveState$Builder;
 Landroid/os/PowerSaveState$Builder;-><init>()V
 Landroid/os/PowerSaveState$Builder;->build()Landroid/os/PowerSaveState;
 Landroid/os/PowerSaveState$Builder;->mBatterySaverEnabled:Z
@@ -55900,7 +52145,6 @@
 Landroid/os/PowerSaveState$Builder;->setBrightnessFactor(F)Landroid/os/PowerSaveState$Builder;
 Landroid/os/PowerSaveState$Builder;->setGlobalBatterySaverEnabled(Z)Landroid/os/PowerSaveState$Builder;
 Landroid/os/PowerSaveState$Builder;->setGpsMode(I)Landroid/os/PowerSaveState$Builder;
-Landroid/os/PowerSaveState;
 Landroid/os/PowerSaveState;-><init>(Landroid/os/Parcel;)V
 Landroid/os/PowerSaveState;-><init>(Landroid/os/PowerSaveState$Builder;)V
 Landroid/os/PowerSaveState;->batterySaverEnabled:Z
@@ -55908,7 +52152,6 @@
 Landroid/os/PowerSaveState;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/os/PowerSaveState;->globalBatterySaverEnabled:Z
 Landroid/os/PowerSaveState;->gpsMode:I
-Landroid/os/Process$ProcessStartResult;
 Landroid/os/Process$ProcessStartResult;-><init>()V
 Landroid/os/Process$ProcessStartResult;->pid:I
 Landroid/os/Process$ProcessStartResult;->usingWrapper:Z
@@ -55969,8 +52212,6 @@
 Landroid/os/Process;->WEBVIEW_ZYGOTE_UID:I
 Landroid/os/Process;->zygoteProcess:Landroid/os/ZygoteProcess;
 Landroid/os/Process;->ZYGOTE_SOCKET:Ljava/lang/String;
-Landroid/os/ProcrankProto$Process;
-Landroid/os/ProcrankProto$Process;-><init>()V
 Landroid/os/ProcrankProto$Process;->CMDLINE:J
 Landroid/os/ProcrankProto$Process;->PID:J
 Landroid/os/ProcrankProto$Process;->PSS:J
@@ -55981,23 +52222,14 @@
 Landroid/os/ProcrankProto$Process;->USWAP:J
 Landroid/os/ProcrankProto$Process;->VSS:J
 Landroid/os/ProcrankProto$Process;->ZSWAP:J
-Landroid/os/ProcrankProto$Summary$Ram;
-Landroid/os/ProcrankProto$Summary$Ram;-><init>()V
 Landroid/os/ProcrankProto$Summary$Ram;->RAW_TEXT:J
-Landroid/os/ProcrankProto$Summary$Zram;
-Landroid/os/ProcrankProto$Summary$Zram;-><init>()V
 Landroid/os/ProcrankProto$Summary$Zram;->RAW_TEXT:J
-Landroid/os/ProcrankProto$Summary;
-Landroid/os/ProcrankProto$Summary;-><init>()V
 Landroid/os/ProcrankProto$Summary;->RAM:J
 Landroid/os/ProcrankProto$Summary;->TOTAL:J
 Landroid/os/ProcrankProto$Summary;->ZRAM:J
-Landroid/os/ProcrankProto;
 Landroid/os/ProcrankProto;-><init>()V
 Landroid/os/ProcrankProto;->PROCESSES:J
 Landroid/os/ProcrankProto;->SUMMARY:J
-Landroid/os/PsProto$Process;
-Landroid/os/PsProto$Process;-><init>()V
 Landroid/os/PsProto$Process;->ADDR:J
 Landroid/os/PsProto$Process;->CMD:J
 Landroid/os/PsProto$Process;->LABEL:J
@@ -56034,13 +52266,11 @@
 Landroid/os/PsProto$Process;->USER:J
 Landroid/os/PsProto$Process;->VSZ:J
 Landroid/os/PsProto$Process;->WCHAN:J
-Landroid/os/PsProto;
 Landroid/os/PsProto;-><init>()V
 Landroid/os/PsProto;->PROCESSES:J
 Landroid/os/RecoverySystem;-><init>(Landroid/os/IRecoverySystem;)V
 Landroid/os/RecoverySystem;->ACTION_EUICC_FACTORY_RESET:Ljava/lang/String;
 Landroid/os/RecoverySystem;->BLOCK_MAP_FILE:Ljava/io/File;
-Landroid/os/RecoverySystem;->bootCommand(Landroid/content/Context;[[Ljava/lang/String;)V
 Landroid/os/RecoverySystem;->clearBcb()Z
 Landroid/os/RecoverySystem;->DEFAULT_EUICC_FACTORY_RESET_TIMEOUT_MILLIS:J
 Landroid/os/RecoverySystem;->DEFAULT_KEYSTORE:Ljava/io/File;
@@ -56074,21 +52304,17 @@
 Landroid/os/RecoverySystem;->UNCRYPT_PACKAGE_FILE:Ljava/io/File;
 Landroid/os/RecoverySystem;->UNCRYPT_STATUS_FILE:Ljava/io/File;
 Landroid/os/RecoverySystem;->wipeEuiccData(Landroid/content/Context;Ljava/lang/String;)Z
-Landroid/os/Registrant;
 Landroid/os/Registrant;->internalNotifyRegistrant(Ljava/lang/Object;Ljava/lang/Throwable;)V
 Landroid/os/Registrant;->notifyException(Ljava/lang/Throwable;)V
 Landroid/os/Registrant;->refH:Ljava/lang/ref/WeakReference;
 Landroid/os/Registrant;->userObj:Ljava/lang/Object;
 Landroid/os/Registrant;->what:I
-Landroid/os/RegistrantList;
 Landroid/os/RegistrantList;->internalNotifyRegistrants(Ljava/lang/Object;Ljava/lang/Throwable;)V
 Landroid/os/RegistrantList;->notifyException(Ljava/lang/Throwable;)V
 Landroid/os/RegistrantList;->registrants:Ljava/util/ArrayList;
 Landroid/os/RemoteCallback;-><init>(Landroid/os/Parcel;)V
 Landroid/os/RemoteCallback;->mCallback:Landroid/os/IRemoteCallback;
 Landroid/os/RemoteCallback;->mListener:Landroid/os/RemoteCallback$OnResultListener;
-Landroid/os/RemoteCallbackList$Callback;
-Landroid/os/RemoteCallbackList$Callback;-><init>(Landroid/os/IInterface;Ljava/lang/Object;)V
 Landroid/os/RemoteCallbackList$Callback;->mCallback:Landroid/os/IInterface;
 Landroid/os/RemoteCallbackList$Callback;->mCookie:Ljava/lang/Object;
 Landroid/os/RemoteCallbackList;->broadcast(Ljava/util/function/Consumer;)V
@@ -56102,21 +52328,15 @@
 Landroid/os/RemoteCallbackList;->TAG:Ljava/lang/String;
 Landroid/os/RemoteException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;ZZ)V
 Landroid/os/RemoteException;->rethrowAsRuntimeException()Ljava/lang/RuntimeException;
-Landroid/os/RemoteMailException;
 Landroid/os/RemoteMailException;-><init>()V
 Landroid/os/RemoteMailException;-><init>(Ljava/lang/String;)V
-Landroid/os/ResultReceiver$MyResultReceiver;
-Landroid/os/ResultReceiver$MyResultReceiver;-><init>()V
 Landroid/os/ResultReceiver$MyResultReceiver;->send(ILandroid/os/Bundle;)V
-Landroid/os/ResultReceiver$MyRunnable;
-Landroid/os/ResultReceiver$MyRunnable;-><init>(ILandroid/os/Bundle;)V
 Landroid/os/ResultReceiver$MyRunnable;->mResultCode:I
 Landroid/os/ResultReceiver$MyRunnable;->mResultData:Landroid/os/Bundle;
 Landroid/os/ResultReceiver;-><init>(Landroid/os/Parcel;)V
 Landroid/os/ResultReceiver;->mHandler:Landroid/os/Handler;
 Landroid/os/ResultReceiver;->mLocal:Z
 Landroid/os/ResultReceiver;->mReceiver:Lcom/android/internal/os/IResultReceiver;
-Landroid/os/RevocableFileDescriptor;
 Landroid/os/RevocableFileDescriptor;-><init>()V
 Landroid/os/RevocableFileDescriptor;-><init>(Landroid/content/Context;Ljava/io/File;)V
 Landroid/os/RevocableFileDescriptor;-><init>(Landroid/content/Context;Ljava/io/FileDescriptor;)V
@@ -56130,7 +52350,6 @@
 Landroid/os/RevocableFileDescriptor;->mRevoked:Z
 Landroid/os/RevocableFileDescriptor;->revoke()V
 Landroid/os/RevocableFileDescriptor;->TAG:Ljava/lang/String;
-Landroid/os/SELinux;
 Landroid/os/SELinux;-><init>()V
 Landroid/os/SELinux;->getPeerContext(Ljava/io/FileDescriptor;)Ljava/lang/String;
 Landroid/os/SELinux;->native_restorecon(Ljava/lang/String;I)Z
@@ -56144,12 +52363,9 @@
 Landroid/os/SELinux;->setFileContext(Ljava/lang/String;Ljava/lang/String;)Z
 Landroid/os/SELinux;->setFSCreateContext(Ljava/lang/String;)Z
 Landroid/os/SELinux;->TAG:Ljava/lang/String;
-Landroid/os/ServiceManager$ServiceNotFoundException;
 Landroid/os/ServiceManager$ServiceNotFoundException;-><init>(Ljava/lang/String;)V
-Landroid/os/ServiceManager$Stats;
 Landroid/os/ServiceManager$Stats;->COUNT:I
 Landroid/os/ServiceManager$Stats;->GET_SERVICE:I
-Landroid/os/ServiceManager;
 Landroid/os/ServiceManager;->getServiceOrThrow(Ljava/lang/String;)Landroid/os/IBinder;
 Landroid/os/ServiceManager;->GET_SERVICE_LOG_EVERY_CALLS_CORE:I
 Landroid/os/ServiceManager;->GET_SERVICE_LOG_EVERY_CALLS_NON_CORE:I
@@ -56167,21 +52383,16 @@
 Landroid/os/ServiceManager;->sStatLogger:Lcom/android/internal/util/StatLogger;
 Landroid/os/ServiceManager;->STATS_LOG_INTERVAL_MS:I
 Landroid/os/ServiceManager;->TAG:Ljava/lang/String;
-Landroid/os/ServiceManagerNative;
 Landroid/os/ServiceManagerNative;-><init>()V
-Landroid/os/ServiceSpecificException;
 Landroid/os/ServiceSpecificException;-><init>(I)V
-Landroid/os/SharedMemory$Closer;
 Landroid/os/SharedMemory$Closer;-><init>(Ljava/io/FileDescriptor;Landroid/os/SharedMemory$MemoryRegistration;)V
 Landroid/os/SharedMemory$Closer;->mFd:Ljava/io/FileDescriptor;
 Landroid/os/SharedMemory$Closer;->mMemoryReference:Landroid/os/SharedMemory$MemoryRegistration;
-Landroid/os/SharedMemory$MemoryRegistration;
 Landroid/os/SharedMemory$MemoryRegistration;-><init>(I)V
 Landroid/os/SharedMemory$MemoryRegistration;->acquire()Landroid/os/SharedMemory$MemoryRegistration;
 Landroid/os/SharedMemory$MemoryRegistration;->mReferenceCount:I
 Landroid/os/SharedMemory$MemoryRegistration;->mSize:I
 Landroid/os/SharedMemory$MemoryRegistration;->release()V
-Landroid/os/SharedMemory$Unmapper;
 Landroid/os/SharedMemory$Unmapper;-><init>(JILandroid/os/SharedMemory$MemoryRegistration;)V
 Landroid/os/SharedMemory$Unmapper;->mAddress:J
 Landroid/os/SharedMemory$Unmapper;->mMemoryReference:Landroid/os/SharedMemory$MemoryRegistration;
@@ -56198,10 +52409,7 @@
 Landroid/os/SharedMemory;->nSetProt(Ljava/io/FileDescriptor;I)I
 Landroid/os/SharedMemory;->PROT_MASK:I
 Landroid/os/SharedMemory;->validateProt(I)V
-Landroid/os/ShellCallback$MyShellCallback;
-Landroid/os/ShellCallback$MyShellCallback;-><init>()V
 Landroid/os/ShellCallback$MyShellCallback;->openFile(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
-Landroid/os/ShellCallback;
 Landroid/os/ShellCallback;-><init>()V
 Landroid/os/ShellCallback;-><init>(Landroid/os/Parcel;)V
 Landroid/os/ShellCallback;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -56212,7 +52420,6 @@
 Landroid/os/ShellCallback;->openFile(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
 Landroid/os/ShellCallback;->TAG:Ljava/lang/String;
 Landroid/os/ShellCallback;->writeToParcel(Landroid/os/ShellCallback;Landroid/os/Parcel;)V
-Landroid/os/ShellCommand;
 Landroid/os/ShellCommand;-><init>()V
 Landroid/os/ShellCommand;->adoptResultReceiver()Landroid/os/ResultReceiver;
 Landroid/os/ShellCommand;->DEBUG:Z
@@ -56252,7 +52459,6 @@
 Landroid/os/ShellCommand;->onHelp()V
 Landroid/os/ShellCommand;->openFileForSystem(Ljava/lang/String;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
 Landroid/os/ShellCommand;->TAG:Ljava/lang/String;
-Landroid/os/SimpleClock;
 Landroid/os/SimpleClock;-><init>(Ljava/time/ZoneId;)V
 Landroid/os/SimpleClock;->zone:Ljava/time/ZoneId;
 Landroid/os/StatFs;->doStat(Ljava/lang/String;)Landroid/system/StructStatVfs;
@@ -56263,7 +52469,6 @@
 Landroid/os/StatsDimensionsValue;->readValueFromParcel(ILandroid/os/Parcel;)Ljava/lang/Object;
 Landroid/os/StatsDimensionsValue;->TAG:Ljava/lang/String;
 Landroid/os/StatsDimensionsValue;->writeValueToParcel(ILjava/lang/Object;Landroid/os/Parcel;I)Z
-Landroid/os/StatsLogEventWrapper;
 Landroid/os/StatsLogEventWrapper;-><init>(JII)V
 Landroid/os/StatsLogEventWrapper;-><init>(Landroid/os/Parcel;)V
 Landroid/os/StatsLogEventWrapper;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -56281,7 +52486,6 @@
 Landroid/os/StatsLogEventWrapper;->writeInt(I)V
 Landroid/os/StatsLogEventWrapper;->writeLong(J)V
 Landroid/os/StatsLogEventWrapper;->writeString(Ljava/lang/String;)V
-Landroid/os/storage/DiskInfo;
 Landroid/os/storage/DiskInfo;-><init>(Ljava/lang/String;I)V
 Landroid/os/storage/DiskInfo;->ACTION_DISK_SCANNED:Ljava/lang/String;
 Landroid/os/storage/DiskInfo;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
@@ -56296,17 +52500,13 @@
 Landroid/os/storage/DiskInfo;->isInteresting(Ljava/lang/String;)Z
 Landroid/os/storage/DiskInfo;->sysPath:Ljava/lang/String;
 Landroid/os/storage/DiskInfo;->volumeCount:I
-Landroid/os/storage/IObbActionListener$Stub$Proxy;
 Landroid/os/storage/IObbActionListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/storage/IObbActionListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/storage/IObbActionListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/os/storage/IObbActionListener$Stub$Proxy;->onObbResult(Ljava/lang/String;II)V
-Landroid/os/storage/IObbActionListener$Stub;
 Landroid/os/storage/IObbActionListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/storage/IObbActionListener$Stub;->TRANSACTION_onObbResult:I
-Landroid/os/storage/IObbActionListener;
 Landroid/os/storage/IObbActionListener;->onObbResult(Ljava/lang/String;II)V
-Landroid/os/storage/IStorageEventListener$Stub$Proxy;
 Landroid/os/storage/IStorageEventListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/storage/IStorageEventListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/storage/IStorageEventListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -56317,7 +52517,6 @@
 Landroid/os/storage/IStorageEventListener$Stub$Proxy;->onVolumeForgotten(Ljava/lang/String;)V
 Landroid/os/storage/IStorageEventListener$Stub$Proxy;->onVolumeRecordChanged(Landroid/os/storage/VolumeRecord;)V
 Landroid/os/storage/IStorageEventListener$Stub$Proxy;->onVolumeStateChanged(Landroid/os/storage/VolumeInfo;II)V
-Landroid/os/storage/IStorageEventListener$Stub;
 Landroid/os/storage/IStorageEventListener$Stub;-><init>()V
 Landroid/os/storage/IStorageEventListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/storage/IStorageEventListener;
 Landroid/os/storage/IStorageEventListener$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -56328,7 +52527,6 @@
 Landroid/os/storage/IStorageEventListener$Stub;->TRANSACTION_onVolumeForgotten:I
 Landroid/os/storage/IStorageEventListener$Stub;->TRANSACTION_onVolumeRecordChanged:I
 Landroid/os/storage/IStorageEventListener$Stub;->TRANSACTION_onVolumeStateChanged:I
-Landroid/os/storage/IStorageEventListener;
 Landroid/os/storage/IStorageEventListener;->onDiskDestroyed(Landroid/os/storage/DiskInfo;)V
 Landroid/os/storage/IStorageEventListener;->onDiskScanned(Landroid/os/storage/DiskInfo;I)V
 Landroid/os/storage/IStorageEventListener;->onStorageStateChanged(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
@@ -56336,7 +52534,6 @@
 Landroid/os/storage/IStorageEventListener;->onVolumeForgotten(Ljava/lang/String;)V
 Landroid/os/storage/IStorageEventListener;->onVolumeRecordChanged(Landroid/os/storage/VolumeRecord;)V
 Landroid/os/storage/IStorageEventListener;->onVolumeStateChanged(Landroid/os/storage/VolumeInfo;II)V
-Landroid/os/storage/IStorageManager$Stub$Proxy;
 Landroid/os/storage/IStorageManager$Stub$Proxy;->abortIdleMaintenance()V
 Landroid/os/storage/IStorageManager$Stub$Proxy;->addUserKeyAuth(II[B[B)V
 Landroid/os/storage/IStorageManager$Stub$Proxy;->allocateBytes(Ljava/lang/String;JILjava/lang/String;)V
@@ -56396,7 +52593,6 @@
 Landroid/os/storage/IStorageManager$Stub$Proxy;->unmountObb(Ljava/lang/String;ZLandroid/os/storage/IObbActionListener;I)V
 Landroid/os/storage/IStorageManager$Stub$Proxy;->unregisterListener(Landroid/os/storage/IStorageEventListener;)V
 Landroid/os/storage/IStorageManager$Stub$Proxy;->verifyEncryptionPassword(Ljava/lang/String;)I
-Landroid/os/storage/IStorageManager$Stub;
 Landroid/os/storage/IStorageManager$Stub;-><init>()V
 Landroid/os/storage/IStorageManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_abortIdleMaintenance:I
@@ -56456,7 +52652,6 @@
 Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_unmountObb:I
 Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_unregisterListener:I
 Landroid/os/storage/IStorageManager$Stub;->TRANSACTION_verifyEncryptionPassword:I
-Landroid/os/storage/IStorageManager;
 Landroid/os/storage/IStorageManager;->abortIdleMaintenance()V
 Landroid/os/storage/IStorageManager;->addUserKeyAuth(II[B[B)V
 Landroid/os/storage/IStorageManager;->allocateBytes(Ljava/lang/String;JILjava/lang/String;)V
@@ -56514,33 +52709,23 @@
 Landroid/os/storage/IStorageManager;->unmountObb(Ljava/lang/String;ZLandroid/os/storage/IObbActionListener;I)V
 Landroid/os/storage/IStorageManager;->unregisterListener(Landroid/os/storage/IStorageEventListener;)V
 Landroid/os/storage/IStorageManager;->verifyEncryptionPassword(Ljava/lang/String;)I
-Landroid/os/storage/IStorageShutdownObserver$Stub$Proxy;
 Landroid/os/storage/IStorageShutdownObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/storage/IStorageShutdownObserver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/os/storage/IStorageShutdownObserver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/os/storage/IStorageShutdownObserver$Stub$Proxy;->onShutDownComplete(I)V
-Landroid/os/storage/IStorageShutdownObserver$Stub;
 Landroid/os/storage/IStorageShutdownObserver$Stub;-><init>()V
 Landroid/os/storage/IStorageShutdownObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/storage/IStorageShutdownObserver;
 Landroid/os/storage/IStorageShutdownObserver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/os/storage/IStorageShutdownObserver$Stub;->TRANSACTION_onShutDownComplete:I
-Landroid/os/storage/IStorageShutdownObserver;
 Landroid/os/storage/IStorageShutdownObserver;->onShutDownComplete(I)V
-Landroid/os/storage/StorageEventListener;
-Landroid/os/storage/StorageManager$AllocateFlags;
-Landroid/os/storage/StorageManager$ObbActionListener;
-Landroid/os/storage/StorageManager$ObbActionListener;-><init>()V
 Landroid/os/storage/StorageManager$ObbActionListener;->addListener(Landroid/os/storage/OnObbStateChangeListener;)I
 Landroid/os/storage/StorageManager$ObbActionListener;->mListeners:Landroid/util/SparseArray;
 Landroid/os/storage/StorageManager$ObbActionListener;->onObbResult(Ljava/lang/String;II)V
-Landroid/os/storage/StorageManager$ObbListenerDelegate;
-Landroid/os/storage/StorageManager$ObbListenerDelegate;-><init>(Landroid/os/storage/OnObbStateChangeListener;)V
 Landroid/os/storage/StorageManager$ObbListenerDelegate;->getListener()Landroid/os/storage/OnObbStateChangeListener;
 Landroid/os/storage/StorageManager$ObbListenerDelegate;->mHandler:Landroid/os/Handler;
 Landroid/os/storage/StorageManager$ObbListenerDelegate;->mObbEventListenerRef:Ljava/lang/ref/WeakReference;
 Landroid/os/storage/StorageManager$ObbListenerDelegate;->nonce:I
 Landroid/os/storage/StorageManager$ObbListenerDelegate;->sendObbStateChanged(Ljava/lang/String;I)V
-Landroid/os/storage/StorageManager$StorageEventListenerDelegate;
 Landroid/os/storage/StorageManager$StorageEventListenerDelegate;-><init>(Landroid/os/storage/StorageEventListener;Landroid/os/Looper;)V
 Landroid/os/storage/StorageManager$StorageEventListenerDelegate;->mCallback:Landroid/os/storage/StorageEventListener;
 Landroid/os/storage/StorageManager$StorageEventListenerDelegate;->mHandler:Landroid/os/Handler;
@@ -56661,15 +52846,12 @@
 Landroid/os/storage/StorageManager;->wipeAdoptableDisks()V
 Landroid/os/storage/StorageManager;->XATTR_CACHE_GROUP:Ljava/lang/String;
 Landroid/os/storage/StorageManager;->XATTR_CACHE_TOMBSTONE:Ljava/lang/String;
-Landroid/os/storage/StorageManagerInternal$ExternalStorageMountPolicy;
 Landroid/os/storage/StorageManagerInternal$ExternalStorageMountPolicy;->getMountMode(ILjava/lang/String;)I
 Landroid/os/storage/StorageManagerInternal$ExternalStorageMountPolicy;->hasExternalStorage(ILjava/lang/String;)Z
-Landroid/os/storage/StorageManagerInternal;
 Landroid/os/storage/StorageManagerInternal;-><init>()V
 Landroid/os/storage/StorageManagerInternal;->addExternalStoragePolicy(Landroid/os/storage/StorageManagerInternal$ExternalStorageMountPolicy;)V
 Landroid/os/storage/StorageManagerInternal;->getExternalStorageMountMode(ILjava/lang/String;)I
 Landroid/os/storage/StorageManagerInternal;->onExternalStoragePolicyChanged(ILjava/lang/String;)V
-Landroid/os/storage/StorageVolume$ScopedAccessProviderContract;
 Landroid/os/storage/StorageVolume$ScopedAccessProviderContract;-><init>()V
 Landroid/os/storage/StorageVolume$ScopedAccessProviderContract;->AUTHORITY:Ljava/lang/String;
 Landroid/os/storage/StorageVolume$ScopedAccessProviderContract;->COL_DIRECTORY:Ljava/lang/String;
@@ -56701,7 +52883,6 @@
 Landroid/os/storage/StorageVolume;->mState:Ljava/lang/String;
 Landroid/os/storage/StorageVolume;->STORAGE_ID_INVALID:I
 Landroid/os/storage/StorageVolume;->STORAGE_ID_PRIMARY:I
-Landroid/os/storage/VolumeInfo;
 Landroid/os/storage/VolumeInfo;-><init>(Ljava/lang/String;ILandroid/os/storage/DiskInfo;Ljava/lang/String;)V
 Landroid/os/storage/VolumeInfo;->ACTION_VOLUME_STATE_CHANGED:Ljava/lang/String;
 Landroid/os/storage/VolumeInfo;->buildBrowseIntentForUser(I)Landroid/content/Intent;
@@ -56741,7 +52922,6 @@
 Landroid/os/storage/VolumeInfo;->TYPE_ASEC:I
 Landroid/os/storage/VolumeInfo;->TYPE_OBB:I
 Landroid/os/storage/VolumeInfo;->TYPE_PRIVATE:I
-Landroid/os/storage/VolumeRecord;
 Landroid/os/storage/VolumeRecord;-><init>(ILjava/lang/String;)V
 Landroid/os/storage/VolumeRecord;->createdMillis:J
 Landroid/os/storage/VolumeRecord;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
@@ -56760,7 +52940,6 @@
 Landroid/os/storage/VolumeRecord;->userFlags:I
 Landroid/os/storage/VolumeRecord;->USER_FLAG_INITED:I
 Landroid/os/storage/VolumeRecord;->USER_FLAG_SNOOZED:I
-Landroid/os/StrictMode$AndroidBlockGuardPolicy;
 Landroid/os/StrictMode$AndroidBlockGuardPolicy;-><init>(I)V
 Landroid/os/StrictMode$AndroidBlockGuardPolicy;->getPolicyMask()I
 Landroid/os/StrictMode$AndroidBlockGuardPolicy;->handleViolationWithTimingAttempt(Landroid/os/StrictMode$ViolationInfo;)V
@@ -56775,15 +52954,12 @@
 Landroid/os/StrictMode$AndroidBlockGuardPolicy;->onWriteToDisk()V
 Landroid/os/StrictMode$AndroidBlockGuardPolicy;->setPolicyMask(I)V
 Landroid/os/StrictMode$AndroidBlockGuardPolicy;->startHandlingViolationException(Landroid/os/strictmode/Violation;)V
-Landroid/os/StrictMode$AndroidCloseGuardReporter;
 Landroid/os/StrictMode$AndroidCloseGuardReporter;-><init>()V
 Landroid/os/StrictMode$AndroidCloseGuardReporter;->report(Ljava/lang/String;Ljava/lang/Throwable;)V
-Landroid/os/StrictMode$InstanceTracker;
 Landroid/os/StrictMode$InstanceTracker;-><init>(Ljava/lang/Object;)V
 Landroid/os/StrictMode$InstanceTracker;->getInstanceCount(Ljava/lang/Class;)I
 Landroid/os/StrictMode$InstanceTracker;->mKlass:Ljava/lang/Class;
 Landroid/os/StrictMode$InstanceTracker;->sInstanceCounts:Ljava/util/HashMap;
-Landroid/os/StrictMode$Span;
 Landroid/os/StrictMode$Span;-><init>()V
 Landroid/os/StrictMode$Span;-><init>(Landroid/os/StrictMode$ThreadSpanState;)V
 Landroid/os/StrictMode$Span;->mContainerState:Landroid/os/StrictMode$ThreadSpanState;
@@ -56799,7 +52975,6 @@
 Landroid/os/StrictMode$ThreadPolicy;-><init>(ILandroid/os/StrictMode$OnThreadViolationListener;Ljava/util/concurrent/Executor;)V
 Landroid/os/StrictMode$ThreadPolicy;->mCallbackExecutor:Ljava/util/concurrent/Executor;
 Landroid/os/StrictMode$ThreadPolicy;->mListener:Landroid/os/StrictMode$OnThreadViolationListener;
-Landroid/os/StrictMode$ThreadSpanState;
 Landroid/os/StrictMode$ThreadSpanState;-><init>()V
 Landroid/os/StrictMode$ThreadSpanState;->mActiveHead:Landroid/os/StrictMode$Span;
 Landroid/os/StrictMode$ThreadSpanState;->mActiveSize:I
@@ -56931,11 +53106,9 @@
 Landroid/os/StrictMode;->vmUntaggedSocketEnabled()Z
 Landroid/os/StrictMode;->VM_PENALTY_MASK:I
 Landroid/os/StrictMode;->writeGatheredViolationsToParcel(Landroid/os/Parcel;)V
-Landroid/os/SynchronousResultReceiver$Result;
 Landroid/os/SynchronousResultReceiver$Result;-><init>(ILandroid/os/Bundle;)V
 Landroid/os/SynchronousResultReceiver$Result;->bundle:Landroid/os/Bundle;
 Landroid/os/SynchronousResultReceiver$Result;->resultCode:I
-Landroid/os/SynchronousResultReceiver;
 Landroid/os/SynchronousResultReceiver;-><init>()V
 Landroid/os/SynchronousResultReceiver;-><init>(Ljava/lang/String;)V
 Landroid/os/SynchronousResultReceiver;->awaitResult(J)Landroid/os/SynchronousResultReceiver$Result;
@@ -56952,27 +53125,19 @@
 Landroid/os/SystemProperties;->sRoReads:Ljava/util/HashMap;
 Landroid/os/SystemProperties;->TAG:Ljava/lang/String;
 Landroid/os/SystemProperties;->TRACK_KEY_ACCESS:Z
-Landroid/os/SystemPropertiesProto$AacDrc;
-Landroid/os/SystemPropertiesProto$AacDrc;-><init>()V
 Landroid/os/SystemPropertiesProto$AacDrc;->BOOST:J
 Landroid/os/SystemPropertiesProto$AacDrc;->CUT:J
 Landroid/os/SystemPropertiesProto$AacDrc;->ENC_TARGET_LEVEL:J
 Landroid/os/SystemPropertiesProto$AacDrc;->HEAVY:J
 Landroid/os/SystemPropertiesProto$AacDrc;->REFERENCE_LEVEL:J
-Landroid/os/SystemPropertiesProto$Aaudio;
-Landroid/os/SystemPropertiesProto$Aaudio;-><init>()V
 Landroid/os/SystemPropertiesProto$Aaudio;->HW_BURST_MIN_USEC:J
 Landroid/os/SystemPropertiesProto$Aaudio;->MINIMUM_SLEEP_USEC:J
 Landroid/os/SystemPropertiesProto$Aaudio;->MIXER_BURSTS:J
 Landroid/os/SystemPropertiesProto$Aaudio;->MMAP_EXCLUSIVE_POLICY:J
 Landroid/os/SystemPropertiesProto$Aaudio;->MMAP_POLICY:J
 Landroid/os/SystemPropertiesProto$Aaudio;->WAKEUP_DELAY_USEC:J
-Landroid/os/SystemPropertiesProto$Camera;
-Landroid/os/SystemPropertiesProto$Camera;-><init>()V
 Landroid/os/SystemPropertiesProto$Camera;->DISABLE_ZSL_MODE:J
 Landroid/os/SystemPropertiesProto$Camera;->FIFO_DISABLE:J
-Landroid/os/SystemPropertiesProto$DalvikVm;
-Landroid/os/SystemPropertiesProto$DalvikVm;-><init>()V
 Landroid/os/SystemPropertiesProto$DalvikVm;->APPIMAGEFORMAT:J
 Landroid/os/SystemPropertiesProto$DalvikVm;->BACKGROUNDGCTYPE:J
 Landroid/os/SystemPropertiesProto$DalvikVm;->CHECKJNI:J
@@ -57027,8 +53192,6 @@
 Landroid/os/SystemPropertiesProto$DalvikVm;->USEJIT:J
 Landroid/os/SystemPropertiesProto$DalvikVm;->USEJITPROFILES:J
 Landroid/os/SystemPropertiesProto$DalvikVm;->ZYGOTE_MAX_BOOT_RETRY:J
-Landroid/os/SystemPropertiesProto$InitSvc;
-Landroid/os/SystemPropertiesProto$InitSvc;-><init>()V
 Landroid/os/SystemPropertiesProto$InitSvc;->ADBD:J
 Landroid/os/SystemPropertiesProto$InitSvc;->AUDIOSERVER:J
 Landroid/os/SystemPropertiesProto$InitSvc;->BOOTANIM:J
@@ -57073,12 +53236,8 @@
 Landroid/os/SystemPropertiesProto$InitSvc;->WPA_SUPPLICANT:J
 Landroid/os/SystemPropertiesProto$InitSvc;->ZYGOTE:J
 Landroid/os/SystemPropertiesProto$InitSvc;->ZYGOTE_SECONDARY:J
-Landroid/os/SystemPropertiesProto$Log;
-Landroid/os/SystemPropertiesProto$Log;-><init>()V
 Landroid/os/SystemPropertiesProto$Log;->TAG_STATS_LOG:J
 Landroid/os/SystemPropertiesProto$Log;->TAG_WIFI_HAL:J
-Landroid/os/SystemPropertiesProto$Persist;
-Landroid/os/SystemPropertiesProto$Persist;-><init>()V
 Landroid/os/SystemPropertiesProto$Persist;->CONFIG_CALIBRATION_FAC:J
 Landroid/os/SystemPropertiesProto$Persist;->DBG_VOLTE_AVAIL_OVR:J
 Landroid/os/SystemPropertiesProto$Persist;->DBG_VT_AVAIL_OVR:J
@@ -57090,19 +53249,13 @@
 Landroid/os/SystemPropertiesProto$Persist;->SYS_DALVIK_VM_LIB_2:J
 Landroid/os/SystemPropertiesProto$Persist;->SYS_SF_COLOR_SATURATION:J
 Landroid/os/SystemPropertiesProto$Persist;->SYS_TIMEZONE:J
-Landroid/os/SystemPropertiesProto$PmDexopt;
-Landroid/os/SystemPropertiesProto$PmDexopt;-><init>()V
 Landroid/os/SystemPropertiesProto$PmDexopt;->AB_OTA:J
 Landroid/os/SystemPropertiesProto$PmDexopt;->BG_DEXOPT:J
 Landroid/os/SystemPropertiesProto$PmDexopt;->BOOT:J
 Landroid/os/SystemPropertiesProto$PmDexopt;->FIRST_BOOT:J
 Landroid/os/SystemPropertiesProto$PmDexopt;->INSTALL:J
-Landroid/os/SystemPropertiesProto$Property;
-Landroid/os/SystemPropertiesProto$Property;-><init>()V
 Landroid/os/SystemPropertiesProto$Property;->NAME:J
 Landroid/os/SystemPropertiesProto$Property;->VALUE:J
-Landroid/os/SystemPropertiesProto$Ro$Boot;
-Landroid/os/SystemPropertiesProto$Ro$Boot;-><init>()V
 Landroid/os/SystemPropertiesProto$Ro$Boot;->AVB_VERSION:J
 Landroid/os/SystemPropertiesProto$Ro$Boot;->BASEBAND:J
 Landroid/os/SystemPropertiesProto$Ro$Boot;->BOOTDEVICE:J
@@ -57123,13 +53276,9 @@
 Landroid/os/SystemPropertiesProto$Ro$Boot;->VERIFIEDBOOTSTATE:J
 Landroid/os/SystemPropertiesProto$Ro$Boot;->VERITYMODE:J
 Landroid/os/SystemPropertiesProto$Ro$Boot;->WIFICOUNTRYCODE:J
-Landroid/os/SystemPropertiesProto$Ro$BootImage;
-Landroid/os/SystemPropertiesProto$Ro$BootImage;-><init>()V
 Landroid/os/SystemPropertiesProto$Ro$BootImage;->BUILD_DATE:J
 Landroid/os/SystemPropertiesProto$Ro$BootImage;->BUILD_DATE_UTC:J
 Landroid/os/SystemPropertiesProto$Ro$BootImage;->BUILD_FINGERPRINT:J
-Landroid/os/SystemPropertiesProto$Ro$Build$Version;
-Landroid/os/SystemPropertiesProto$Ro$Build$Version;-><init>()V
 Landroid/os/SystemPropertiesProto$Ro$Build$Version;->BASE_OS:J
 Landroid/os/SystemPropertiesProto$Ro$Build$Version;->CODENAME:J
 Landroid/os/SystemPropertiesProto$Ro$Build$Version;->INCREMENTAL:J
@@ -57137,8 +53286,6 @@
 Landroid/os/SystemPropertiesProto$Ro$Build$Version;->RELEASE:J
 Landroid/os/SystemPropertiesProto$Ro$Build$Version;->SDK:J
 Landroid/os/SystemPropertiesProto$Ro$Build$Version;->SECURITY_PATCH:J
-Landroid/os/SystemPropertiesProto$Ro$Build;
-Landroid/os/SystemPropertiesProto$Ro$Build;-><init>()V
 Landroid/os/SystemPropertiesProto$Ro$Build;->DATE:J
 Landroid/os/SystemPropertiesProto$Ro$Build;->DATE_UTC:J
 Landroid/os/SystemPropertiesProto$Ro$Build;->DESCRIPTION:J
@@ -57151,15 +53298,11 @@
 Landroid/os/SystemPropertiesProto$Ro$Build;->TYPE:J
 Landroid/os/SystemPropertiesProto$Ro$Build;->USER:J
 Landroid/os/SystemPropertiesProto$Ro$Build;->VERSION:J
-Landroid/os/SystemPropertiesProto$Ro$Config;
-Landroid/os/SystemPropertiesProto$Ro$Config;-><init>()V
 Landroid/os/SystemPropertiesProto$Ro$Config;->ALARM_ALERT:J
 Landroid/os/SystemPropertiesProto$Ro$Config;->MEDIA_VOL_STEPS:J
 Landroid/os/SystemPropertiesProto$Ro$Config;->NOTIFICATION_SOUND:J
 Landroid/os/SystemPropertiesProto$Ro$Config;->RINGTONE:J
 Landroid/os/SystemPropertiesProto$Ro$Config;->VC_CALL_VOL_STEPS:J
-Landroid/os/SystemPropertiesProto$Ro$Hardware;
-Landroid/os/SystemPropertiesProto$Ro$Hardware;-><init>()V
 Landroid/os/SystemPropertiesProto$Ro$Hardware;->ACTIVITY_RECOGNITION:J
 Landroid/os/SystemPropertiesProto$Ro$Hardware;->AUDIO:J
 Landroid/os/SystemPropertiesProto$Ro$Hardware;->AUDIO_A2DP:J
@@ -57199,15 +53342,11 @@
 Landroid/os/SystemPropertiesProto$Ro$Hardware;->VIBRATOR:J
 Landroid/os/SystemPropertiesProto$Ro$Hardware;->VIRTUAL_DEVICE:J
 Landroid/os/SystemPropertiesProto$Ro$Hardware;->VULKAN:J
-Landroid/os/SystemPropertiesProto$Ro$Product$Vendor;
-Landroid/os/SystemPropertiesProto$Ro$Product$Vendor;-><init>()V
 Landroid/os/SystemPropertiesProto$Ro$Product$Vendor;->BRAND:J
 Landroid/os/SystemPropertiesProto$Ro$Product$Vendor;->DEVICE:J
 Landroid/os/SystemPropertiesProto$Ro$Product$Vendor;->MANUFACTURER:J
 Landroid/os/SystemPropertiesProto$Ro$Product$Vendor;->MODEL:J
 Landroid/os/SystemPropertiesProto$Ro$Product$Vendor;->NAME:J
-Landroid/os/SystemPropertiesProto$Ro$Product;
-Landroid/os/SystemPropertiesProto$Ro$Product;-><init>()V
 Landroid/os/SystemPropertiesProto$Ro$Product;->BOARD:J
 Landroid/os/SystemPropertiesProto$Ro$Product;->BRAND:J
 Landroid/os/SystemPropertiesProto$Ro$Product;->CPU_ABI:J
@@ -57220,18 +53359,12 @@
 Landroid/os/SystemPropertiesProto$Ro$Product;->MODEL:J
 Landroid/os/SystemPropertiesProto$Ro$Product;->NAME:J
 Landroid/os/SystemPropertiesProto$Ro$Product;->VENDOR:J
-Landroid/os/SystemPropertiesProto$Ro$Telephony;
-Landroid/os/SystemPropertiesProto$Ro$Telephony;-><init>()V
 Landroid/os/SystemPropertiesProto$Ro$Telephony;->CALL_RING_MULTIPLE:J
 Landroid/os/SystemPropertiesProto$Ro$Telephony;->DEFAULT_CDMA_SUB:J
 Landroid/os/SystemPropertiesProto$Ro$Telephony;->DEFAULT_NETWORK:J
-Landroid/os/SystemPropertiesProto$Ro$Vendor;
-Landroid/os/SystemPropertiesProto$Ro$Vendor;-><init>()V
 Landroid/os/SystemPropertiesProto$Ro$Vendor;->BUILD_DATE:J
 Landroid/os/SystemPropertiesProto$Ro$Vendor;->BUILD_DATE_UTC:J
 Landroid/os/SystemPropertiesProto$Ro$Vendor;->BUILD_FINGERPRINT:J
-Landroid/os/SystemPropertiesProto$Ro;
-Landroid/os/SystemPropertiesProto$Ro;-><init>()V
 Landroid/os/SystemPropertiesProto$Ro;->ADB_SECURE:J
 Landroid/os/SystemPropertiesProto$Ro;->ARCH:J
 Landroid/os/SystemPropertiesProto$Ro;->AUDIO_IGNORE_EFFECTS:J
@@ -57276,8 +53409,6 @@
 Landroid/os/SystemPropertiesProto$Ro;->VNDK_VERSION:J
 Landroid/os/SystemPropertiesProto$Ro;->VTS_COVERAGE:J
 Landroid/os/SystemPropertiesProto$Ro;->ZYGOTE:J
-Landroid/os/SystemPropertiesProto$Sys$Usb;
-Landroid/os/SystemPropertiesProto$Sys$Usb;-><init>()V
 Landroid/os/SystemPropertiesProto$Sys$Usb;->CONFIG:J
 Landroid/os/SystemPropertiesProto$Sys$Usb;->CONFIGFS:J
 Landroid/os/SystemPropertiesProto$Sys$Usb;->CONTROLLER:J
@@ -57287,14 +53418,11 @@
 Landroid/os/SystemPropertiesProto$Sys$Usb;->FFS_READY:J
 Landroid/os/SystemPropertiesProto$Sys$Usb;->MTP_DEVICE_TYPE:J
 Landroid/os/SystemPropertiesProto$Sys$Usb;->STATE:J
-Landroid/os/SystemPropertiesProto$Sys;
-Landroid/os/SystemPropertiesProto$Sys;-><init>()V
 Landroid/os/SystemPropertiesProto$Sys;->BOOT_COMPLETED:J
 Landroid/os/SystemPropertiesProto$Sys;->BOOT_FROM_CHARGER_MODE:J
 Landroid/os/SystemPropertiesProto$Sys;->RETAILDEMO_ENABLED:J
 Landroid/os/SystemPropertiesProto$Sys;->SHUTDOWN_REQUESTED:J
 Landroid/os/SystemPropertiesProto$Sys;->USB:J
-Landroid/os/SystemPropertiesProto;
 Landroid/os/SystemPropertiesProto;-><init>()V
 Landroid/os/SystemPropertiesProto;->AAC_DRC:J
 Landroid/os/SystemPropertiesProto;->AAUDIO:J
@@ -57327,8 +53455,6 @@
 Landroid/os/SystemPropertiesProto;->VTS_NATIVE_SERVER_ON:J
 Landroid/os/SystemPropertiesProto;->WIFI_DIRECT_INTERFACE:J
 Landroid/os/SystemPropertiesProto;->WIFI_INTERFACE:J
-Landroid/os/SystemProto$Battery;
-Landroid/os/SystemProto$Battery;-><init>()V
 Landroid/os/SystemProto$Battery;->BATTERY_REALTIME_MS:J
 Landroid/os/SystemProto$Battery;->BATTERY_UPTIME_MS:J
 Landroid/os/SystemProto$Battery;->ESTIMATED_BATTERY_CAPACITY_MAH:J
@@ -57341,8 +53467,6 @@
 Landroid/os/SystemProto$Battery;->START_COUNT:J
 Landroid/os/SystemProto$Battery;->TOTAL_REALTIME_MS:J
 Landroid/os/SystemProto$Battery;->TOTAL_UPTIME_MS:J
-Landroid/os/SystemProto$BatteryDischarge;
-Landroid/os/SystemProto$BatteryDischarge;-><init>()V
 Landroid/os/SystemProto$BatteryDischarge;->LOWER_BOUND_SINCE_CHARGE:J
 Landroid/os/SystemProto$BatteryDischarge;->SCREEN_DOZE_SINCE_CHARGE:J
 Landroid/os/SystemProto$BatteryDischarge;->SCREEN_OFF_SINCE_CHARGE:J
@@ -57353,8 +53477,6 @@
 Landroid/os/SystemProto$BatteryDischarge;->TOTAL_MAH_SCREEN_DOZE:J
 Landroid/os/SystemProto$BatteryDischarge;->TOTAL_MAH_SCREEN_OFF:J
 Landroid/os/SystemProto$BatteryDischarge;->UPPER_BOUND_SINCE_CHARGE:J
-Landroid/os/SystemProto$BatteryLevelStep;
-Landroid/os/SystemProto$BatteryLevelStep;-><init>()V
 Landroid/os/SystemProto$BatteryLevelStep;->DISPLAY_STATE:J
 Landroid/os/SystemProto$BatteryLevelStep;->DS_DOZE:I
 Landroid/os/SystemProto$BatteryLevelStep;->DS_DOZE_SUSPEND:I
@@ -57372,13 +53494,9 @@
 Landroid/os/SystemProto$BatteryLevelStep;->PSM_MIXED:I
 Landroid/os/SystemProto$BatteryLevelStep;->PSM_OFF:I
 Landroid/os/SystemProto$BatteryLevelStep;->PSM_ON:I
-Landroid/os/SystemProto$DataConnection;
-Landroid/os/SystemProto$DataConnection;-><init>()V
 Landroid/os/SystemProto$DataConnection;->IS_NONE:J
 Landroid/os/SystemProto$DataConnection;->NAME:J
 Landroid/os/SystemProto$DataConnection;->TOTAL:J
-Landroid/os/SystemProto$GlobalNetwork;
-Landroid/os/SystemProto$GlobalNetwork;-><init>()V
 Landroid/os/SystemProto$GlobalNetwork;->BT_BYTES_RX:J
 Landroid/os/SystemProto$GlobalNetwork;->BT_BYTES_TX:J
 Landroid/os/SystemProto$GlobalNetwork;->MOBILE_BYTES_RX:J
@@ -57389,16 +53507,10 @@
 Landroid/os/SystemProto$GlobalNetwork;->WIFI_BYTES_TX:J
 Landroid/os/SystemProto$GlobalNetwork;->WIFI_PACKETS_RX:J
 Landroid/os/SystemProto$GlobalNetwork;->WIFI_PACKETS_TX:J
-Landroid/os/SystemProto$GlobalWifi;
-Landroid/os/SystemProto$GlobalWifi;-><init>()V
 Landroid/os/SystemProto$GlobalWifi;->ON_DURATION_MS:J
 Landroid/os/SystemProto$GlobalWifi;->RUNNING_DURATION_MS:J
-Landroid/os/SystemProto$KernelWakelock;
-Landroid/os/SystemProto$KernelWakelock;-><init>()V
 Landroid/os/SystemProto$KernelWakelock;->NAME:J
 Landroid/os/SystemProto$KernelWakelock;->TOTAL:J
-Landroid/os/SystemProto$Misc;
-Landroid/os/SystemProto$Misc;-><init>()V
 Landroid/os/SystemProto$Misc;->BATTERY_SAVER_MODE_ENABLED_DURATION_MS:J
 Landroid/os/SystemProto$Misc;->DEEP_DOZE_COUNT:J
 Landroid/os/SystemProto$Misc;->DEEP_DOZE_ENABLED_DURATION_MS:J
@@ -57420,12 +53532,8 @@
 Landroid/os/SystemProto$Misc;->PARTIAL_WAKELOCK_TOTAL_DURATION_MS:J
 Landroid/os/SystemProto$Misc;->PHONE_ON_DURATION_MS:J
 Landroid/os/SystemProto$Misc;->SCREEN_ON_DURATION_MS:J
-Landroid/os/SystemProto$PhoneSignalStrength;
-Landroid/os/SystemProto$PhoneSignalStrength;-><init>()V
 Landroid/os/SystemProto$PhoneSignalStrength;->NAME:J
 Landroid/os/SystemProto$PhoneSignalStrength;->TOTAL:J
-Landroid/os/SystemProto$PowerUseItem;
-Landroid/os/SystemProto$PowerUseItem;-><init>()V
 Landroid/os/SystemProto$PowerUseItem;->AMBIENT_DISPLAY:I
 Landroid/os/SystemProto$PowerUseItem;->BLUETOOTH:I
 Landroid/os/SystemProto$PowerUseItem;->CAMERA:I
@@ -57446,19 +53554,13 @@
 Landroid/os/SystemProto$PowerUseItem;->UNKNOWN_SIPPER:I
 Landroid/os/SystemProto$PowerUseItem;->USER:I
 Landroid/os/SystemProto$PowerUseItem;->WIFI:I
-Landroid/os/SystemProto$PowerUseSummary;
-Landroid/os/SystemProto$PowerUseSummary;-><init>()V
 Landroid/os/SystemProto$PowerUseSummary;->BATTERY_CAPACITY_MAH:J
 Landroid/os/SystemProto$PowerUseSummary;->COMPUTED_POWER_MAH:J
 Landroid/os/SystemProto$PowerUseSummary;->MAX_DRAINED_POWER_MAH:J
 Landroid/os/SystemProto$PowerUseSummary;->MIN_DRAINED_POWER_MAH:J
-Landroid/os/SystemProto$ResourcePowerManager;
-Landroid/os/SystemProto$ResourcePowerManager;-><init>()V
 Landroid/os/SystemProto$ResourcePowerManager;->NAME:J
 Landroid/os/SystemProto$ResourcePowerManager;->SCREEN_OFF:J
 Landroid/os/SystemProto$ResourcePowerManager;->TOTAL:J
-Landroid/os/SystemProto$ScreenBrightness;
-Landroid/os/SystemProto$ScreenBrightness;-><init>()V
 Landroid/os/SystemProto$ScreenBrightness;->BRIGHT:I
 Landroid/os/SystemProto$ScreenBrightness;->DARK:I
 Landroid/os/SystemProto$ScreenBrightness;->DIM:I
@@ -57466,16 +53568,10 @@
 Landroid/os/SystemProto$ScreenBrightness;->MEDIUM:I
 Landroid/os/SystemProto$ScreenBrightness;->NAME:J
 Landroid/os/SystemProto$ScreenBrightness;->TOTAL:J
-Landroid/os/SystemProto$WakeupReason;
-Landroid/os/SystemProto$WakeupReason;-><init>()V
 Landroid/os/SystemProto$WakeupReason;->NAME:J
 Landroid/os/SystemProto$WakeupReason;->TOTAL:J
-Landroid/os/SystemProto$WifiMulticastWakelockTotal;
-Landroid/os/SystemProto$WifiMulticastWakelockTotal;-><init>()V
 Landroid/os/SystemProto$WifiMulticastWakelockTotal;->COUNT:J
 Landroid/os/SystemProto$WifiMulticastWakelockTotal;->DURATION_MS:J
-Landroid/os/SystemProto$WifiSignalStrength;
-Landroid/os/SystemProto$WifiSignalStrength;-><init>()V
 Landroid/os/SystemProto$WifiSignalStrength;->GOOD:I
 Landroid/os/SystemProto$WifiSignalStrength;->GREAT:I
 Landroid/os/SystemProto$WifiSignalStrength;->MODERATE:I
@@ -57483,8 +53579,6 @@
 Landroid/os/SystemProto$WifiSignalStrength;->NONE:I
 Landroid/os/SystemProto$WifiSignalStrength;->POOR:I
 Landroid/os/SystemProto$WifiSignalStrength;->TOTAL:J
-Landroid/os/SystemProto$WifiState;
-Landroid/os/SystemProto$WifiState;-><init>()V
 Landroid/os/SystemProto$WifiState;->NAME:J
 Landroid/os/SystemProto$WifiState;->OFF:I
 Landroid/os/SystemProto$WifiState;->OFF_SCANNING:I
@@ -57495,8 +53589,6 @@
 Landroid/os/SystemProto$WifiState;->ON_NO_NETWORKS:I
 Landroid/os/SystemProto$WifiState;->SOFT_AP:I
 Landroid/os/SystemProto$WifiState;->TOTAL:J
-Landroid/os/SystemProto$WifiSupplicantState;
-Landroid/os/SystemProto$WifiSupplicantState;-><init>()V
 Landroid/os/SystemProto$WifiSupplicantState;->ASSOCIATED:I
 Landroid/os/SystemProto$WifiSupplicantState;->ASSOCIATING:I
 Landroid/os/SystemProto$WifiSupplicantState;->AUTHENTICATING:I
@@ -57512,7 +53604,6 @@
 Landroid/os/SystemProto$WifiSupplicantState;->SCANNING:I
 Landroid/os/SystemProto$WifiSupplicantState;->TOTAL:J
 Landroid/os/SystemProto$WifiSupplicantState;->UNINITIALIZED:I
-Landroid/os/SystemProto;
 Landroid/os/SystemProto;-><init>()V
 Landroid/os/SystemProto;->BATTERY:J
 Landroid/os/SystemProto;->BATTERY_DISCHARGE:J
@@ -57540,15 +53631,12 @@
 Landroid/os/SystemProto;->WIFI_SIGNAL_STRENGTH:J
 Landroid/os/SystemProto;->WIFI_STATE:J
 Landroid/os/SystemProto;->WIFI_SUPPLICANT_STATE:J
-Landroid/os/SystemService$State;
-Landroid/os/SystemService$State;-><init>(Ljava/lang/String;)V
 Landroid/os/SystemService$State;->RESTARTING:Landroid/os/SystemService$State;
 Landroid/os/SystemService$State;->RUNNING:Landroid/os/SystemService$State;
 Landroid/os/SystemService$State;->STOPPED:Landroid/os/SystemService$State;
 Landroid/os/SystemService$State;->STOPPING:Landroid/os/SystemService$State;
 Landroid/os/SystemService$State;->valueOf(Ljava/lang/String;)Landroid/os/SystemService$State;
 Landroid/os/SystemService$State;->values()[Landroid/os/SystemService$State;
-Landroid/os/SystemService;
 Landroid/os/SystemService;-><init>()V
 Landroid/os/SystemService;->getState(Ljava/lang/String;)Landroid/os/SystemService$State;
 Landroid/os/SystemService;->isRunning(Ljava/lang/String;)Z
@@ -57556,18 +53644,15 @@
 Landroid/os/SystemService;->restart(Ljava/lang/String;)V
 Landroid/os/SystemService;->sPropertyLock:Ljava/lang/Object;
 Landroid/os/SystemService;->sStates:Ljava/util/HashMap;
-Landroid/os/SystemService;->waitForAnyStopped([[Ljava/lang/String;)V
 Landroid/os/SystemService;->waitForState(Ljava/lang/String;Landroid/os/SystemService$State;J)V
 Landroid/os/SystemUpdateManager;-><init>(Landroid/os/ISystemUpdateManager;)V
 Landroid/os/SystemUpdateManager;->mService:Landroid/os/ISystemUpdateManager;
 Landroid/os/SystemUpdateManager;->TAG:Ljava/lang/String;
-Landroid/os/SystemVibrator;
 Landroid/os/SystemVibrator;->mService:Landroid/os/IVibratorService;
 Landroid/os/SystemVibrator;->mToken:Landroid/os/Binder;
 Landroid/os/SystemVibrator;->TAG:Ljava/lang/String;
 Landroid/os/SystemVibrator;->usageForAttributes(Landroid/media/AudioAttributes;)I
 Landroid/os/SystemVibrator;->vibrate(ILjava/lang/String;Landroid/os/VibrationEffect;Landroid/media/AudioAttributes;)V
-Landroid/os/Temperature;
 Landroid/os/Temperature;-><init>()V
 Landroid/os/Temperature;-><init>(FI)V
 Landroid/os/Temperature;-><init>(Landroid/os/Parcel;)V
@@ -57577,10 +53662,7 @@
 Landroid/os/Temperature;->mType:I
 Landroid/os/Temperature;->mValue:F
 Landroid/os/Temperature;->readFromParcel(Landroid/os/Parcel;)V
-Landroid/os/TestLooperManager$LooperHolder;
-Landroid/os/TestLooperManager$LooperHolder;-><init>()V
 Landroid/os/TestLooperManager$LooperHolder;->processMessage(Landroid/os/TestLooperManager$MessageExecution;)V
-Landroid/os/TestLooperManager$MessageExecution;
 Landroid/os/TestLooperManager$MessageExecution;-><init>()V
 Landroid/os/TestLooperManager$MessageExecution;->m:Landroid/os/Message;
 Landroid/os/TestLooperManager$MessageExecution;->response:Ljava/lang/Throwable;
@@ -57592,15 +53674,12 @@
 Landroid/os/TestLooperManager;->mQueue:Landroid/os/MessageQueue;
 Landroid/os/TestLooperManager;->mReleased:Z
 Landroid/os/TestLooperManager;->sHeldLoopers:Landroid/util/ArraySet;
-Landroid/os/TimerProto;
 Landroid/os/TimerProto;-><init>()V
 Landroid/os/TimerProto;->COUNT:J
 Landroid/os/TimerProto;->CURRENT_DURATION_MS:J
 Landroid/os/TimerProto;->DURATION_MS:J
 Landroid/os/TimerProto;->MAX_DURATION_MS:J
 Landroid/os/TimerProto;->TOTAL_DURATION_MS:J
-Landroid/os/TokenWatcher$Death;
-Landroid/os/TokenWatcher$Death;-><init>(Landroid/os/IBinder;Ljava/lang/String;)V
 Landroid/os/TokenWatcher$Death;->tag:Ljava/lang/String;
 Landroid/os/TokenWatcher$Death;->token:Landroid/os/IBinder;
 Landroid/os/TokenWatcher;->dumpInternal()Ljava/util/ArrayList;
@@ -57649,24 +53728,20 @@
 Landroid/os/Trace;->TRACE_TAG_VIDEO:J
 Landroid/os/Trace;->TRACE_TAG_WEBVIEW:J
 Landroid/os/Trace;->TRACE_TAG_WINDOW_MANAGER:J
-Landroid/os/TransactionTracker;
 Landroid/os/TransactionTracker;-><init>()V
 Landroid/os/TransactionTracker;->addTrace(Ljava/lang/Throwable;)V
 Landroid/os/TransactionTracker;->clearTraces()V
 Landroid/os/TransactionTracker;->mTraces:Ljava/util/Map;
 Landroid/os/TransactionTracker;->resetTraces()V
 Landroid/os/TransactionTracker;->writeTracesToFile(Landroid/os/ParcelFileDescriptor;)V
-Landroid/os/UEventObserver$UEvent;
 Landroid/os/UEventObserver$UEvent;-><init>(Ljava/lang/String;)V
 Landroid/os/UEventObserver$UEvent;->mMap:Ljava/util/HashMap;
-Landroid/os/UEventObserver$UEventThread;
 Landroid/os/UEventObserver$UEventThread;-><init>()V
 Landroid/os/UEventObserver$UEventThread;->addObserver(Ljava/lang/String;Landroid/os/UEventObserver;)V
 Landroid/os/UEventObserver$UEventThread;->mKeysAndObservers:Ljava/util/ArrayList;
 Landroid/os/UEventObserver$UEventThread;->mTempObserversToSignal:Ljava/util/ArrayList;
 Landroid/os/UEventObserver$UEventThread;->removeObserver(Landroid/os/UEventObserver;)V
 Landroid/os/UEventObserver$UEventThread;->sendEvent(Ljava/lang/String;)V
-Landroid/os/UEventObserver;
 Landroid/os/UEventObserver;->DEBUG:Z
 Landroid/os/UEventObserver;->getThread()Landroid/os/UEventObserver$UEventThread;
 Landroid/os/UEventObserver;->nativeAddMatch(Ljava/lang/String;)V
@@ -57676,29 +53751,19 @@
 Landroid/os/UEventObserver;->peekThread()Landroid/os/UEventObserver$UEventThread;
 Landroid/os/UEventObserver;->sThread:Landroid/os/UEventObserver$UEventThread;
 Landroid/os/UEventObserver;->TAG:Ljava/lang/String;
-Landroid/os/UidProto$AggregatedWakelock;
-Landroid/os/UidProto$AggregatedWakelock;-><init>()V
 Landroid/os/UidProto$AggregatedWakelock;->BACKGROUND_PARTIAL_DURATION_MS:J
 Landroid/os/UidProto$AggregatedWakelock;->PARTIAL_DURATION_MS:J
-Landroid/os/UidProto$BluetoothMisc;
-Landroid/os/UidProto$BluetoothMisc;-><init>()V
 Landroid/os/UidProto$BluetoothMisc;->APPORTIONED_BLE_SCAN:J
 Landroid/os/UidProto$BluetoothMisc;->BACKGROUND_BLE_SCAN:J
 Landroid/os/UidProto$BluetoothMisc;->BACKGROUND_BLE_SCAN_RESULT_COUNT:J
 Landroid/os/UidProto$BluetoothMisc;->BACKGROUND_UNOPTIMIZED_BLE_SCAN:J
 Landroid/os/UidProto$BluetoothMisc;->BLE_SCAN_RESULT_COUNT:J
 Landroid/os/UidProto$BluetoothMisc;->UNOPTIMIZED_BLE_SCAN:J
-Landroid/os/UidProto$Cpu$ByFrequency;
-Landroid/os/UidProto$Cpu$ByFrequency;-><init>()V
 Landroid/os/UidProto$Cpu$ByFrequency;->FREQUENCY_INDEX:J
 Landroid/os/UidProto$Cpu$ByFrequency;->SCREEN_OFF_DURATION_MS:J
 Landroid/os/UidProto$Cpu$ByFrequency;->TOTAL_DURATION_MS:J
-Landroid/os/UidProto$Cpu$ByProcessState;
-Landroid/os/UidProto$Cpu$ByProcessState;-><init>()V
 Landroid/os/UidProto$Cpu$ByProcessState;->BY_FREQUENCY:J
 Landroid/os/UidProto$Cpu$ByProcessState;->PROCESS_STATE:J
-Landroid/os/UidProto$Cpu;
-Landroid/os/UidProto$Cpu;-><init>()V
 Landroid/os/UidProto$Cpu;->BACKGROUND:I
 Landroid/os/UidProto$Cpu;->BY_FREQUENCY:J
 Landroid/os/UidProto$Cpu;->BY_PROCESS_STATE:J
@@ -57710,21 +53775,13 @@
 Landroid/os/UidProto$Cpu;->TOP:I
 Landroid/os/UidProto$Cpu;->TOP_SLEEPING:I
 Landroid/os/UidProto$Cpu;->USER_DURATION_MS:J
-Landroid/os/UidProto$Job;
-Landroid/os/UidProto$Job;-><init>()V
 Landroid/os/UidProto$Job;->BACKGROUND:J
 Landroid/os/UidProto$Job;->NAME:J
 Landroid/os/UidProto$Job;->TOTAL:J
-Landroid/os/UidProto$JobCompletion$ReasonCount;
-Landroid/os/UidProto$JobCompletion$ReasonCount;-><init>()V
 Landroid/os/UidProto$JobCompletion$ReasonCount;->COUNT:J
 Landroid/os/UidProto$JobCompletion$ReasonCount;->NAME:J
-Landroid/os/UidProto$JobCompletion;
-Landroid/os/UidProto$JobCompletion;-><init>()V
 Landroid/os/UidProto$JobCompletion;->NAME:J
 Landroid/os/UidProto$JobCompletion;->REASON_COUNT:J
-Landroid/os/UidProto$Network;
-Landroid/os/UidProto$Network;-><init>()V
 Landroid/os/UidProto$Network;->BT_BYTES_RX:J
 Landroid/os/UidProto$Network;->BT_BYTES_TX:J
 Landroid/os/UidProto$Network;->MOBILE_ACTIVE_COUNT:J
@@ -57747,24 +53804,16 @@
 Landroid/os/UidProto$Network;->WIFI_PACKETS_RX:J
 Landroid/os/UidProto$Network;->WIFI_PACKETS_TX:J
 Landroid/os/UidProto$Network;->WIFI_WAKEUP_COUNT:J
-Landroid/os/UidProto$Package$Service;
-Landroid/os/UidProto$Package$Service;-><init>()V
 Landroid/os/UidProto$Package$Service;->LAUNCH_COUNT:J
 Landroid/os/UidProto$Package$Service;->NAME:J
 Landroid/os/UidProto$Package$Service;->START_COUNT:J
 Landroid/os/UidProto$Package$Service;->START_DURATION_MS:J
-Landroid/os/UidProto$Package;
-Landroid/os/UidProto$Package;-><init>()V
 Landroid/os/UidProto$Package;->NAME:J
 Landroid/os/UidProto$Package;->SERVICES:J
-Landroid/os/UidProto$PowerUseItem;
-Landroid/os/UidProto$PowerUseItem;-><init>()V
 Landroid/os/UidProto$PowerUseItem;->COMPUTED_POWER_MAH:J
 Landroid/os/UidProto$PowerUseItem;->PROPORTIONAL_SMEAR_MAH:J
 Landroid/os/UidProto$PowerUseItem;->SCREEN_POWER_MAH:J
 Landroid/os/UidProto$PowerUseItem;->SHOULD_HIDE:J
-Landroid/os/UidProto$Process;
-Landroid/os/UidProto$Process;-><init>()V
 Landroid/os/UidProto$Process;->ANR_COUNT:J
 Landroid/os/UidProto$Process;->CRASH_COUNT:J
 Landroid/os/UidProto$Process;->FOREGROUND_DURATION_MS:J
@@ -57772,13 +53821,9 @@
 Landroid/os/UidProto$Process;->START_COUNT:J
 Landroid/os/UidProto$Process;->SYSTEM_DURATION_MS:J
 Landroid/os/UidProto$Process;->USER_DURATION_MS:J
-Landroid/os/UidProto$Sensor;
-Landroid/os/UidProto$Sensor;-><init>()V
 Landroid/os/UidProto$Sensor;->APPORTIONED:J
 Landroid/os/UidProto$Sensor;->BACKGROUND:J
 Landroid/os/UidProto$Sensor;->ID:J
-Landroid/os/UidProto$StateTime;
-Landroid/os/UidProto$StateTime;-><init>()V
 Landroid/os/UidProto$StateTime;->DURATION_MS:J
 Landroid/os/UidProto$StateTime;->PROCESS_STATE_BACKGROUND:I
 Landroid/os/UidProto$StateTime;->PROCESS_STATE_CACHED:I
@@ -57788,33 +53833,22 @@
 Landroid/os/UidProto$StateTime;->PROCESS_STATE_TOP:I
 Landroid/os/UidProto$StateTime;->PROCESS_STATE_TOP_SLEEPING:I
 Landroid/os/UidProto$StateTime;->STATE:J
-Landroid/os/UidProto$Sync;
-Landroid/os/UidProto$Sync;-><init>()V
 Landroid/os/UidProto$Sync;->BACKGROUND:J
 Landroid/os/UidProto$Sync;->NAME:J
 Landroid/os/UidProto$Sync;->TOTAL:J
-Landroid/os/UidProto$UserActivity;
-Landroid/os/UidProto$UserActivity;-><init>()V
 Landroid/os/UidProto$UserActivity;->COUNT:J
 Landroid/os/UidProto$UserActivity;->NAME:J
-Landroid/os/UidProto$Wakelock;
-Landroid/os/UidProto$Wakelock;-><init>()V
 Landroid/os/UidProto$Wakelock;->BACKGROUND_PARTIAL:J
 Landroid/os/UidProto$Wakelock;->FULL:J
 Landroid/os/UidProto$Wakelock;->NAME:J
 Landroid/os/UidProto$Wakelock;->PARTIAL:J
 Landroid/os/UidProto$Wakelock;->WINDOW:J
-Landroid/os/UidProto$WakeupAlarm;
-Landroid/os/UidProto$WakeupAlarm;-><init>()V
 Landroid/os/UidProto$WakeupAlarm;->COUNT:J
 Landroid/os/UidProto$WakeupAlarm;->NAME:J
-Landroid/os/UidProto$Wifi;
-Landroid/os/UidProto$Wifi;-><init>()V
 Landroid/os/UidProto$Wifi;->APPORTIONED_SCAN:J
 Landroid/os/UidProto$Wifi;->BACKGROUND_SCAN:J
 Landroid/os/UidProto$Wifi;->FULL_WIFI_LOCK_DURATION_MS:J
 Landroid/os/UidProto$Wifi;->RUNNING_DURATION_MS:J
-Landroid/os/UidProto;
 Landroid/os/UidProto;-><init>()V
 Landroid/os/UidProto;->AGGREGATED_WAKELOCK:J
 Landroid/os/UidProto;->AUDIO:J
@@ -57849,7 +53883,6 @@
 Landroid/os/UpdateEngine;->mUpdateEngineCallbackLock:Ljava/lang/Object;
 Landroid/os/UpdateEngine;->TAG:Ljava/lang/String;
 Landroid/os/UpdateEngine;->UPDATE_ENGINE_SERVICE:Ljava/lang/String;
-Landroid/os/UpdateLock;
 Landroid/os/UpdateLock;-><init>(Ljava/lang/String;)V
 Landroid/os/UpdateLock;->acquireLocked()V
 Landroid/os/UpdateLock;->checkService()V
@@ -57880,7 +53913,6 @@
 Landroid/os/UserManager$EnforcingUser;->userRestrictionSource:I
 Landroid/os/UserManager$UserOperationException;-><init>(Ljava/lang/String;I)V
 Landroid/os/UserManager$UserOperationException;->mUserOperationResult:I
-Landroid/os/UserManager$UserOperationResult;
 Landroid/os/UserManager;-><init>(Landroid/content/Context;Landroid/os/IUserManager;)V
 Landroid/os/UserManager;->ACTION_CREATE_USER:Ljava/lang/String;
 Landroid/os/UserManager;->canAddMoreManagedProfiles(IZ)Z
@@ -57938,9 +53970,7 @@
 Landroid/os/UserManager;->setUserRestriction(Ljava/lang/String;ZLandroid/os/UserHandle;)V
 Landroid/os/UserManager;->someUserHasSeedAccount(Ljava/lang/String;Ljava/lang/String;)Z
 Landroid/os/UserManager;->TAG:Ljava/lang/String;
-Landroid/os/UserManagerInternal$UserRestrictionsListener;
 Landroid/os/UserManagerInternal$UserRestrictionsListener;->onUserRestrictionsChanged(ILandroid/os/Bundle;Landroid/os/Bundle;)V
-Landroid/os/UserManagerInternal;
 Landroid/os/UserManagerInternal;-><init>()V
 Landroid/os/UserManagerInternal;->addUserRestrictionsListener(Landroid/os/UserManagerInternal$UserRestrictionsListener;)V
 Landroid/os/UserManagerInternal;->CAMERA_DISABLED_GLOBALLY:I
@@ -57970,7 +54000,6 @@
 Landroid/os/UserManagerInternal;->setUserIcon(ILandroid/graphics/Bitmap;)V
 Landroid/os/UserManagerInternal;->setUserManaged(IZ)V
 Landroid/os/UserManagerInternal;->setUserState(II)V
-Landroid/os/VibrationEffect$OneShot;
 Landroid/os/VibrationEffect$OneShot;-><init>(JI)V
 Landroid/os/VibrationEffect$OneShot;-><init>(Landroid/os/Parcel;)V
 Landroid/os/VibrationEffect$OneShot;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -57981,7 +54010,6 @@
 Landroid/os/VibrationEffect$OneShot;->resolve(I)Landroid/os/VibrationEffect$OneShot;
 Landroid/os/VibrationEffect$OneShot;->scale(FI)Landroid/os/VibrationEffect;
 Landroid/os/VibrationEffect$OneShot;->validate()V
-Landroid/os/VibrationEffect$Prebaked;
 Landroid/os/VibrationEffect$Prebaked;-><init>(IZ)V
 Landroid/os/VibrationEffect$Prebaked;-><init>(Landroid/os/Parcel;)V
 Landroid/os/VibrationEffect$Prebaked;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -57995,7 +54023,6 @@
 Landroid/os/VibrationEffect$Prebaked;->setEffectStrength(I)V
 Landroid/os/VibrationEffect$Prebaked;->shouldFallback()Z
 Landroid/os/VibrationEffect$Prebaked;->validate()V
-Landroid/os/VibrationEffect$Waveform;
 Landroid/os/VibrationEffect$Waveform;-><init>(Landroid/os/Parcel;)V
 Landroid/os/VibrationEffect$Waveform;-><init>([J[II)V
 Landroid/os/VibrationEffect$Waveform;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -58028,7 +54055,6 @@
 Landroid/os/VibrationEffect;->RINGTONES:[I
 Landroid/os/VibrationEffect;->scale(IFI)I
 Landroid/os/VibrationEffect;->validate()V
-Landroid/os/Vibrator$VibrationIntensity;
 Landroid/os/Vibrator;-><init>(Landroid/content/Context;)V
 Landroid/os/Vibrator;->getDefaultHapticFeedbackIntensity()I
 Landroid/os/Vibrator;->getDefaultNotificationVibrationIntensity()I
@@ -58042,11 +54068,9 @@
 Landroid/os/Vibrator;->VIBRATION_INTENSITY_LOW:I
 Landroid/os/Vibrator;->VIBRATION_INTENSITY_MEDIUM:I
 Landroid/os/Vibrator;->VIBRATION_INTENSITY_OFF:I
-Landroid/os/VintfObject;
 Landroid/os/VintfObject;-><init>()V
 Landroid/os/VintfObject;->verify([Ljava/lang/String;)I
 Landroid/os/VintfObject;->verifyWithoutAvb()I
-Landroid/os/VintfRuntimeInfo;
 Landroid/os/VintfRuntimeInfo;-><init>()V
 Landroid/os/VintfRuntimeInfo;->getBootAvbVersion()Ljava/lang/String;
 Landroid/os/VintfRuntimeInfo;->getBootVbmetaAvbVersion()Ljava/lang/String;
@@ -58082,18 +54106,12 @@
 Landroid/os/WorkSource;->updateUidsAndNamesLocked(Landroid/os/WorkSource;ZZ)Z
 Landroid/os/WorkSource;->updateUidsLocked(Landroid/os/WorkSource;ZZ)Z
 Landroid/os/WorkSource;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/os/WorkSourceProto$WorkChain;
-Landroid/os/WorkSourceProto$WorkChain;-><init>()V
 Landroid/os/WorkSourceProto$WorkChain;->NODES:J
-Landroid/os/WorkSourceProto$WorkSourceContentProto;
-Landroid/os/WorkSourceProto$WorkSourceContentProto;-><init>()V
 Landroid/os/WorkSourceProto$WorkSourceContentProto;->NAME:J
 Landroid/os/WorkSourceProto$WorkSourceContentProto;->UID:J
-Landroid/os/WorkSourceProto;
 Landroid/os/WorkSourceProto;-><init>()V
 Landroid/os/WorkSourceProto;->WORK_CHAINS:J
 Landroid/os/WorkSourceProto;->WORK_SOURCE_CONTENTS:J
-Landroid/os/ZygoteProcess$ZygoteState;
 Landroid/os/ZygoteProcess$ZygoteState;-><init>(Landroid/net/LocalSocket;Ljava/io/DataInputStream;Ljava/io/BufferedWriter;Ljava/util/List;)V
 Landroid/os/ZygoteProcess$ZygoteState;->abiList:Ljava/util/List;
 Landroid/os/ZygoteProcess$ZygoteState;->close()V
@@ -58104,7 +54122,6 @@
 Landroid/os/ZygoteProcess$ZygoteState;->mClosed:Z
 Landroid/os/ZygoteProcess$ZygoteState;->socket:Landroid/net/LocalSocket;
 Landroid/os/ZygoteProcess$ZygoteState;->writer:Ljava/io/BufferedWriter;
-Landroid/os/ZygoteProcess;
 Landroid/os/ZygoteProcess;-><init>(Landroid/net/LocalSocketAddress;Landroid/net/LocalSocketAddress;)V
 Landroid/os/ZygoteProcess;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/os/ZygoteProcess;->close()V
@@ -58133,15 +54150,11 @@
 Landroid/os/ZygoteProcess;->waitForConnectionToZygote(Ljava/lang/String;)V
 Landroid/os/ZygoteProcess;->zygoteSendArgsAndGetResult(Landroid/os/ZygoteProcess$ZygoteState;Ljava/util/ArrayList;)Landroid/os/Process$ProcessStartResult;
 Landroid/os/ZygoteProcess;->ZYGOTE_RETRY_MILLIS:I
-Landroid/os/ZygoteStartFailedEx;
 Landroid/os/ZygoteStartFailedEx;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
-Landroid/permissionpresenterservice/RuntimePermissionPresenterService$MyHandler;
-Landroid/permissionpresenterservice/RuntimePermissionPresenterService$MyHandler;-><init>(Landroid/os/Looper;)V
 Landroid/permissionpresenterservice/RuntimePermissionPresenterService$MyHandler;->MSG_GET_APPS_USING_PERMISSIONS:I
 Landroid/permissionpresenterservice/RuntimePermissionPresenterService$MyHandler;->MSG_GET_APP_PERMISSIONS:I
 Landroid/permissionpresenterservice/RuntimePermissionPresenterService$MyHandler;->MSG_REVOKE_APP_PERMISSION:I
 Landroid/permissionpresenterservice/RuntimePermissionPresenterService;->mHandler:Landroid/os/Handler;
-Landroid/preference/DialogPreference$SavedState;
 Landroid/preference/DialogPreference$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/preference/DialogPreference$SavedState;-><init>(Landroid/os/Parcelable;)V
 Landroid/preference/DialogPreference$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -58150,7 +54163,6 @@
 Landroid/preference/DialogPreference;->mDialogLayoutResId:I
 Landroid/preference/DialogPreference;->needInputMethod()Z
 Landroid/preference/DialogPreference;->requestInputMethod(Landroid/app/Dialog;)V
-Landroid/preference/EditTextPreference$SavedState;
 Landroid/preference/EditTextPreference$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/preference/EditTextPreference$SavedState;-><init>(Landroid/os/Parcelable;)V
 Landroid/preference/EditTextPreference$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -58158,16 +54170,12 @@
 Landroid/preference/EditTextPreference;->mText:Ljava/lang/String;
 Landroid/preference/EditTextPreference;->mTextSet:Z
 Landroid/preference/EditTextPreference;->needInputMethod()Z
-Landroid/preference/GenericInflater$Factory;
 Landroid/preference/GenericInflater$Factory;->onCreateItem(Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Ljava/lang/Object;
-Landroid/preference/GenericInflater$FactoryMerger;
 Landroid/preference/GenericInflater$FactoryMerger;-><init>(Landroid/preference/GenericInflater$Factory;Landroid/preference/GenericInflater$Factory;)V
 Landroid/preference/GenericInflater$FactoryMerger;->mF1:Landroid/preference/GenericInflater$Factory;
 Landroid/preference/GenericInflater$FactoryMerger;->mF2:Landroid/preference/GenericInflater$Factory;
 Landroid/preference/GenericInflater$FactoryMerger;->onCreateItem(Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Ljava/lang/Object;
-Landroid/preference/GenericInflater$Parent;
 Landroid/preference/GenericInflater$Parent;->addItemFromInflater(Ljava/lang/Object;)V
-Landroid/preference/GenericInflater;
 Landroid/preference/GenericInflater;-><init>(Landroid/content/Context;)V
 Landroid/preference/GenericInflater;-><init>(Landroid/preference/GenericInflater;Landroid/content/Context;)V
 Landroid/preference/GenericInflater;->cloneInContext(Landroid/content/Context;)Landroid/preference/GenericInflater;
@@ -58194,7 +54202,6 @@
 Landroid/preference/GenericInflater;->sConstructorMap:Ljava/util/HashMap;
 Landroid/preference/GenericInflater;->setDefaultPackage(Ljava/lang/String;)V
 Landroid/preference/GenericInflater;->setFactory(Landroid/preference/GenericInflater$Factory;)V
-Landroid/preference/ListPreference$SavedState;
 Landroid/preference/ListPreference$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/preference/ListPreference$SavedState;-><init>(Landroid/os/Parcelable;)V
 Landroid/preference/ListPreference$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -58205,12 +54212,10 @@
 Landroid/preference/ListPreference;->mSummary:Ljava/lang/String;
 Landroid/preference/ListPreference;->mValue:Ljava/lang/String;
 Landroid/preference/ListPreference;->mValueSet:Z
-Landroid/preference/MultiCheckPreference$SavedState;
 Landroid/preference/MultiCheckPreference$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/preference/MultiCheckPreference$SavedState;-><init>(Landroid/os/Parcelable;)V
 Landroid/preference/MultiCheckPreference$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/preference/MultiCheckPreference$SavedState;->values:[Z
-Landroid/preference/MultiCheckPreference;
 Landroid/preference/MultiCheckPreference;-><init>(Landroid/content/Context;)V
 Landroid/preference/MultiCheckPreference;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/preference/MultiCheckPreference;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
@@ -58232,7 +54237,6 @@
 Landroid/preference/MultiCheckPreference;->setEntryValuesCS([Ljava/lang/CharSequence;)V
 Landroid/preference/MultiCheckPreference;->setValue(IZ)V
 Landroid/preference/MultiCheckPreference;->setValues([Z)V
-Landroid/preference/MultiSelectListPreference$SavedState;
 Landroid/preference/MultiSelectListPreference$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/preference/MultiSelectListPreference$SavedState;-><init>(Landroid/os/Parcelable;)V
 Landroid/preference/MultiSelectListPreference$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -58243,7 +54247,6 @@
 Landroid/preference/MultiSelectListPreference;->mNewValues:Ljava/util/Set;
 Landroid/preference/MultiSelectListPreference;->mPreferenceChanged:Z
 Landroid/preference/MultiSelectListPreference;->mValues:Ljava/util/Set;
-Landroid/preference/Preference$OnPreferenceChangeInternalListener;
 Landroid/preference/Preference$OnPreferenceChangeInternalListener;->onPreferenceChange(Landroid/preference/Preference;)V
 Landroid/preference/Preference$OnPreferenceChangeInternalListener;->onPreferenceHierarchyChange(Landroid/preference/Preference;)V
 Landroid/preference/Preference;->assignParent(Landroid/preference/PreferenceGroup;)V
@@ -58290,12 +54293,10 @@
 Landroid/preference/Preference;->unregisterDependency()V
 Landroid/preference/Preference;->unregisterDependent(Landroid/preference/Preference;)V
 Landroid/preference/PreferenceActivity$Header;-><init>(Landroid/os/Parcel;)V
-Landroid/preference/PreferenceActivity$HeaderAdapter$HeaderViewHolder;
 Landroid/preference/PreferenceActivity$HeaderAdapter$HeaderViewHolder;-><init>()V
 Landroid/preference/PreferenceActivity$HeaderAdapter$HeaderViewHolder;->icon:Landroid/widget/ImageView;
 Landroid/preference/PreferenceActivity$HeaderAdapter$HeaderViewHolder;->summary:Landroid/widget/TextView;
 Landroid/preference/PreferenceActivity$HeaderAdapter$HeaderViewHolder;->title:Landroid/widget/TextView;
-Landroid/preference/PreferenceActivity$HeaderAdapter;
 Landroid/preference/PreferenceActivity$HeaderAdapter;-><init>(Landroid/content/Context;Ljava/util/List;IZ)V
 Landroid/preference/PreferenceActivity$HeaderAdapter;->mInflater:Landroid/view/LayoutInflater;
 Landroid/preference/PreferenceActivity$HeaderAdapter;->mLayoutResId:I
@@ -58349,11 +54350,9 @@
 Landroid/preference/PreferenceFragment;->postBindPreferences()V
 Landroid/preference/PreferenceFragment;->PREFERENCES_TAG:Ljava/lang/String;
 Landroid/preference/PreferenceFragment;->requirePreferenceManager()V
-Landroid/preference/PreferenceFrameLayout$LayoutParams;
 Landroid/preference/PreferenceFrameLayout$LayoutParams;-><init>(II)V
 Landroid/preference/PreferenceFrameLayout$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/preference/PreferenceFrameLayout$LayoutParams;->removeBorders:Z
-Landroid/preference/PreferenceFrameLayout;
 Landroid/preference/PreferenceFrameLayout;-><init>(Landroid/content/Context;)V
 Landroid/preference/PreferenceFrameLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/preference/PreferenceFrameLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
@@ -58373,13 +54372,11 @@
 Landroid/preference/PreferenceGroup;->mPreferenceList:Ljava/util/List;
 Landroid/preference/PreferenceGroup;->removePreferenceInt(Landroid/preference/Preference;)Z
 Landroid/preference/PreferenceGroup;->sortPreferences()V
-Landroid/preference/PreferenceGroupAdapter$PreferenceLayout;
 Landroid/preference/PreferenceGroupAdapter$PreferenceLayout;-><init>()V
 Landroid/preference/PreferenceGroupAdapter$PreferenceLayout;->compareTo(Landroid/preference/PreferenceGroupAdapter$PreferenceLayout;)I
 Landroid/preference/PreferenceGroupAdapter$PreferenceLayout;->name:Ljava/lang/String;
 Landroid/preference/PreferenceGroupAdapter$PreferenceLayout;->resId:I
 Landroid/preference/PreferenceGroupAdapter$PreferenceLayout;->widgetResId:I
-Landroid/preference/PreferenceGroupAdapter;
 Landroid/preference/PreferenceGroupAdapter;-><init>(Landroid/preference/PreferenceGroup;)V
 Landroid/preference/PreferenceGroupAdapter;->addPreferenceClassName(Landroid/preference/Preference;)V
 Landroid/preference/PreferenceGroupAdapter;->createPreferenceLayout(Landroid/preference/Preference;Landroid/preference/PreferenceGroupAdapter$PreferenceLayout;)Landroid/preference/PreferenceGroupAdapter$PreferenceLayout;
@@ -58402,7 +54399,6 @@
 Landroid/preference/PreferenceGroupAdapter;->sWrapperLayoutParams:Landroid/view/ViewGroup$LayoutParams;
 Landroid/preference/PreferenceGroupAdapter;->syncMyPreferences()V
 Landroid/preference/PreferenceGroupAdapter;->TAG:Ljava/lang/String;
-Landroid/preference/PreferenceManager$OnPreferenceTreeClickListener;
 Landroid/preference/PreferenceManager$OnPreferenceTreeClickListener;->onPreferenceTreeClick(Landroid/preference/PreferenceScreen;Landroid/preference/Preference;)Z
 Landroid/preference/PreferenceManager;->addPreferencesScreen(Landroid/content/DialogInterface;)V
 Landroid/preference/PreferenceManager;->dismissAllScreens()V
@@ -58433,7 +54429,6 @@
 Landroid/preference/PreferenceManager;->STORAGE_DEFAULT:I
 Landroid/preference/PreferenceManager;->STORAGE_DEVICE_PROTECTED:I
 Landroid/preference/PreferenceManager;->TAG:Ljava/lang/String;
-Landroid/preference/PreferenceScreen$SavedState;
 Landroid/preference/PreferenceScreen$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/preference/PreferenceScreen$SavedState;-><init>(Landroid/os/Parcelable;)V
 Landroid/preference/PreferenceScreen$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -58448,20 +54443,17 @@
 Landroid/preference/RingtonePreference;->mShowDefault:Z
 Landroid/preference/RingtonePreference;->mShowSilent:Z
 Landroid/preference/RingtonePreference;->TAG:Ljava/lang/String;
-Landroid/preference/SeekBarDialogPreference;
 Landroid/preference/SeekBarDialogPreference;-><init>(Landroid/content/Context;)V
 Landroid/preference/SeekBarDialogPreference;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 Landroid/preference/SeekBarDialogPreference;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
 Landroid/preference/SeekBarDialogPreference;->createActionButtons()V
 Landroid/preference/SeekBarDialogPreference;->getSeekBar(Landroid/view/View;)Landroid/widget/SeekBar;
 Landroid/preference/SeekBarDialogPreference;->mMyIcon:Landroid/graphics/drawable/Drawable;
-Landroid/preference/SeekBarPreference$SavedState;
 Landroid/preference/SeekBarPreference$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/preference/SeekBarPreference$SavedState;-><init>(Landroid/os/Parcelable;)V
 Landroid/preference/SeekBarPreference$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/preference/SeekBarPreference$SavedState;->max:I
 Landroid/preference/SeekBarPreference$SavedState;->progress:I
-Landroid/preference/SeekBarPreference;
 Landroid/preference/SeekBarPreference;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
 Landroid/preference/SeekBarPreference;->getProgress()I
 Landroid/preference/SeekBarPreference;->mMax:I
@@ -58472,22 +54464,14 @@
 Landroid/preference/SeekBarPreference;->setProgress(I)V
 Landroid/preference/SeekBarPreference;->setProgress(IZ)V
 Landroid/preference/SeekBarPreference;->syncProgress(Landroid/widget/SeekBar;)V
-Landroid/preference/SeekBarVolumizer$Callback;
 Landroid/preference/SeekBarVolumizer$Callback;->onMuted(ZZ)V
 Landroid/preference/SeekBarVolumizer$Callback;->onProgressChanged(Landroid/widget/SeekBar;IZ)V
 Landroid/preference/SeekBarVolumizer$Callback;->onSampleStarting(Landroid/preference/SeekBarVolumizer;)V
-Landroid/preference/SeekBarVolumizer$H;
-Landroid/preference/SeekBarVolumizer$H;-><init>()V
 Landroid/preference/SeekBarVolumizer$H;->postUpdateSlider(IIZ)V
 Landroid/preference/SeekBarVolumizer$H;->UPDATE_SLIDER:I
-Landroid/preference/SeekBarVolumizer$Observer;
-Landroid/preference/SeekBarVolumizer$Observer;-><init>(Landroid/os/Handler;)V
-Landroid/preference/SeekBarVolumizer$Receiver;
-Landroid/preference/SeekBarVolumizer$Receiver;-><init>()V
 Landroid/preference/SeekBarVolumizer$Receiver;->mListening:Z
 Landroid/preference/SeekBarVolumizer$Receiver;->setListening(Z)V
 Landroid/preference/SeekBarVolumizer$Receiver;->updateVolumeSlider(II)V
-Landroid/preference/SeekBarVolumizer;
 Landroid/preference/SeekBarVolumizer;->changeVolumeBy(I)V
 Landroid/preference/SeekBarVolumizer;->CHECK_RINGTONE_PLAYBACK_DELAY_MS:I
 Landroid/preference/SeekBarVolumizer;->getSeekBar()Landroid/widget/SeekBar;
@@ -58536,11 +54520,8 @@
 Landroid/preference/SeekBarVolumizer;->TAG:Ljava/lang/String;
 Landroid/preference/SeekBarVolumizer;->updateSeekBar()V
 Landroid/preference/SeekBarVolumizer;->updateSlider()V
-Landroid/preference/SwitchPreference$Listener;
-Landroid/preference/SwitchPreference$Listener;-><init>()V
 Landroid/preference/SwitchPreference;->mSwitchOff:Ljava/lang/CharSequence;
 Landroid/preference/SwitchPreference;->mSwitchOn:Ljava/lang/CharSequence;
-Landroid/preference/TwoStatePreference$SavedState;
 Landroid/preference/TwoStatePreference$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/preference/TwoStatePreference$SavedState;-><init>(Landroid/os/Parcelable;)V
 Landroid/preference/TwoStatePreference$SavedState;->checked:Z
@@ -58550,15 +54531,12 @@
 Landroid/preference/TwoStatePreference;->mDisableDependentsState:Z
 Landroid/preference/TwoStatePreference;->mSummaryOff:Ljava/lang/CharSequence;
 Landroid/preference/TwoStatePreference;->mSummaryOn:Ljava/lang/CharSequence;
-Landroid/preference/VolumePreference$SavedState;
 Landroid/preference/VolumePreference$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/preference/VolumePreference$SavedState;-><init>(Landroid/os/Parcelable;)V
 Landroid/preference/VolumePreference$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/preference/VolumePreference$SavedState;->getVolumeStore()Landroid/preference/VolumePreference$VolumeStore;
 Landroid/preference/VolumePreference$SavedState;->mVolumeStore:Landroid/preference/VolumePreference$VolumeStore;
-Landroid/preference/VolumePreference$VolumeStore;
 Landroid/preference/VolumePreference$VolumeStore;-><init>()V
-Landroid/preference/VolumePreference;
 Landroid/preference/VolumePreference;-><init>(Landroid/content/Context;)V
 Landroid/preference/VolumePreference;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 Landroid/preference/VolumePreference;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
@@ -58568,7 +54546,6 @@
 Landroid/preference/VolumePreference;->onProgressChanged(Landroid/widget/SeekBar;IZ)V
 Landroid/preference/VolumePreference;->onSampleStarting(Landroid/preference/SeekBarVolumizer;)V
 Landroid/preference/VolumePreference;->setStreamType(I)V
-Landroid/print/ILayoutResultCallback$Stub$Proxy;
 Landroid/print/ILayoutResultCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/print/ILayoutResultCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/print/ILayoutResultCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -58576,7 +54553,6 @@
 Landroid/print/ILayoutResultCallback$Stub$Proxy;->onLayoutFailed(Ljava/lang/CharSequence;I)V
 Landroid/print/ILayoutResultCallback$Stub$Proxy;->onLayoutFinished(Landroid/print/PrintDocumentInfo;ZI)V
 Landroid/print/ILayoutResultCallback$Stub$Proxy;->onLayoutStarted(Landroid/os/ICancellationSignal;I)V
-Landroid/print/ILayoutResultCallback$Stub;
 Landroid/print/ILayoutResultCallback$Stub;-><init>()V
 Landroid/print/ILayoutResultCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/print/ILayoutResultCallback;
 Landroid/print/ILayoutResultCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -58584,12 +54560,10 @@
 Landroid/print/ILayoutResultCallback$Stub;->TRANSACTION_onLayoutFailed:I
 Landroid/print/ILayoutResultCallback$Stub;->TRANSACTION_onLayoutFinished:I
 Landroid/print/ILayoutResultCallback$Stub;->TRANSACTION_onLayoutStarted:I
-Landroid/print/ILayoutResultCallback;
 Landroid/print/ILayoutResultCallback;->onLayoutCanceled(I)V
 Landroid/print/ILayoutResultCallback;->onLayoutFailed(Ljava/lang/CharSequence;I)V
 Landroid/print/ILayoutResultCallback;->onLayoutFinished(Landroid/print/PrintDocumentInfo;ZI)V
 Landroid/print/ILayoutResultCallback;->onLayoutStarted(Landroid/os/ICancellationSignal;I)V
-Landroid/print/IPrintDocumentAdapter$Stub$Proxy;
 Landroid/print/IPrintDocumentAdapter$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/print/IPrintDocumentAdapter$Stub$Proxy;->finish()V
 Landroid/print/IPrintDocumentAdapter$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -58599,7 +54573,6 @@
 Landroid/print/IPrintDocumentAdapter$Stub$Proxy;->setObserver(Landroid/print/IPrintDocumentAdapterObserver;)V
 Landroid/print/IPrintDocumentAdapter$Stub$Proxy;->start()V
 Landroid/print/IPrintDocumentAdapter$Stub$Proxy;->write([Landroid/print/PageRange;Landroid/os/ParcelFileDescriptor;Landroid/print/IWriteResultCallback;I)V
-Landroid/print/IPrintDocumentAdapter$Stub;
 Landroid/print/IPrintDocumentAdapter$Stub;-><init>()V
 Landroid/print/IPrintDocumentAdapter$Stub;->asInterface(Landroid/os/IBinder;)Landroid/print/IPrintDocumentAdapter;
 Landroid/print/IPrintDocumentAdapter$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -58609,53 +54582,42 @@
 Landroid/print/IPrintDocumentAdapter$Stub;->TRANSACTION_setObserver:I
 Landroid/print/IPrintDocumentAdapter$Stub;->TRANSACTION_start:I
 Landroid/print/IPrintDocumentAdapter$Stub;->TRANSACTION_write:I
-Landroid/print/IPrintDocumentAdapter;
 Landroid/print/IPrintDocumentAdapter;->finish()V
 Landroid/print/IPrintDocumentAdapter;->kill(Ljava/lang/String;)V
 Landroid/print/IPrintDocumentAdapter;->layout(Landroid/print/PrintAttributes;Landroid/print/PrintAttributes;Landroid/print/ILayoutResultCallback;Landroid/os/Bundle;I)V
 Landroid/print/IPrintDocumentAdapter;->setObserver(Landroid/print/IPrintDocumentAdapterObserver;)V
 Landroid/print/IPrintDocumentAdapter;->start()V
 Landroid/print/IPrintDocumentAdapter;->write([Landroid/print/PageRange;Landroid/os/ParcelFileDescriptor;Landroid/print/IWriteResultCallback;I)V
-Landroid/print/IPrintDocumentAdapterObserver$Stub$Proxy;
 Landroid/print/IPrintDocumentAdapterObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/print/IPrintDocumentAdapterObserver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/print/IPrintDocumentAdapterObserver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/print/IPrintDocumentAdapterObserver$Stub$Proxy;->onDestroy()V
-Landroid/print/IPrintDocumentAdapterObserver$Stub;
 Landroid/print/IPrintDocumentAdapterObserver$Stub;-><init>()V
 Landroid/print/IPrintDocumentAdapterObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/print/IPrintDocumentAdapterObserver;
 Landroid/print/IPrintDocumentAdapterObserver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/print/IPrintDocumentAdapterObserver$Stub;->TRANSACTION_onDestroy:I
-Landroid/print/IPrintDocumentAdapterObserver;
 Landroid/print/IPrintDocumentAdapterObserver;->onDestroy()V
-Landroid/print/IPrinterDiscoveryObserver$Stub$Proxy;
 Landroid/print/IPrinterDiscoveryObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/print/IPrinterDiscoveryObserver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/print/IPrinterDiscoveryObserver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/print/IPrinterDiscoveryObserver$Stub$Proxy;->onPrintersAdded(Landroid/content/pm/ParceledListSlice;)V
 Landroid/print/IPrinterDiscoveryObserver$Stub$Proxy;->onPrintersRemoved(Landroid/content/pm/ParceledListSlice;)V
-Landroid/print/IPrinterDiscoveryObserver$Stub;
 Landroid/print/IPrinterDiscoveryObserver$Stub;-><init>()V
 Landroid/print/IPrinterDiscoveryObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/print/IPrinterDiscoveryObserver;
 Landroid/print/IPrinterDiscoveryObserver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/print/IPrinterDiscoveryObserver$Stub;->TRANSACTION_onPrintersAdded:I
 Landroid/print/IPrinterDiscoveryObserver$Stub;->TRANSACTION_onPrintersRemoved:I
-Landroid/print/IPrinterDiscoveryObserver;
 Landroid/print/IPrinterDiscoveryObserver;->onPrintersAdded(Landroid/content/pm/ParceledListSlice;)V
 Landroid/print/IPrinterDiscoveryObserver;->onPrintersRemoved(Landroid/content/pm/ParceledListSlice;)V
-Landroid/print/IPrintJobStateChangeListener$Stub$Proxy;
 Landroid/print/IPrintJobStateChangeListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/print/IPrintJobStateChangeListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/print/IPrintJobStateChangeListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/print/IPrintJobStateChangeListener$Stub$Proxy;->onPrintJobStateChanged(Landroid/print/PrintJobId;)V
-Landroid/print/IPrintJobStateChangeListener$Stub;
 Landroid/print/IPrintJobStateChangeListener$Stub;-><init>()V
 Landroid/print/IPrintJobStateChangeListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/print/IPrintJobStateChangeListener;
 Landroid/print/IPrintJobStateChangeListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/print/IPrintJobStateChangeListener$Stub;->TRANSACTION_onPrintJobStateChanged:I
-Landroid/print/IPrintJobStateChangeListener;
 Landroid/print/IPrintJobStateChangeListener;->onPrintJobStateChanged(Landroid/print/PrintJobId;)V
-Landroid/print/IPrintManager$Stub$Proxy;
 Landroid/print/IPrintManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/print/IPrintManager$Stub$Proxy;->addPrintJobStateChangeListener(Landroid/print/IPrintJobStateChangeListener;II)V
 Landroid/print/IPrintManager$Stub$Proxy;->addPrintServiceRecommendationsChangeListener(Landroid/printservice/recommendation/IRecommendationsChangeListener;I)V
@@ -58683,7 +54645,6 @@
 Landroid/print/IPrintManager$Stub$Proxy;->stopPrinterDiscovery(Landroid/print/IPrinterDiscoveryObserver;I)V
 Landroid/print/IPrintManager$Stub$Proxy;->stopPrinterStateTracking(Landroid/print/PrinterId;I)V
 Landroid/print/IPrintManager$Stub$Proxy;->validatePrinters(Ljava/util/List;I)V
-Landroid/print/IPrintManager$Stub;
 Landroid/print/IPrintManager$Stub;-><init>()V
 Landroid/print/IPrintManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/print/IPrintManager;
 Landroid/print/IPrintManager$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -58711,7 +54672,6 @@
 Landroid/print/IPrintManager$Stub;->TRANSACTION_stopPrinterDiscovery:I
 Landroid/print/IPrintManager$Stub;->TRANSACTION_stopPrinterStateTracking:I
 Landroid/print/IPrintManager$Stub;->TRANSACTION_validatePrinters:I
-Landroid/print/IPrintManager;
 Landroid/print/IPrintManager;->addPrintJobStateChangeListener(Landroid/print/IPrintJobStateChangeListener;II)V
 Landroid/print/IPrintManager;->addPrintServiceRecommendationsChangeListener(Landroid/printservice/recommendation/IRecommendationsChangeListener;I)V
 Landroid/print/IPrintManager;->addPrintServicesChangeListener(Landroid/print/IPrintServicesChangeListener;I)V
@@ -58736,19 +54696,15 @@
 Landroid/print/IPrintManager;->stopPrinterDiscovery(Landroid/print/IPrinterDiscoveryObserver;I)V
 Landroid/print/IPrintManager;->stopPrinterStateTracking(Landroid/print/PrinterId;I)V
 Landroid/print/IPrintManager;->validatePrinters(Ljava/util/List;I)V
-Landroid/print/IPrintServicesChangeListener$Stub$Proxy;
 Landroid/print/IPrintServicesChangeListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/print/IPrintServicesChangeListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/print/IPrintServicesChangeListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/print/IPrintServicesChangeListener$Stub$Proxy;->onPrintServicesChanged()V
-Landroid/print/IPrintServicesChangeListener$Stub;
 Landroid/print/IPrintServicesChangeListener$Stub;-><init>()V
 Landroid/print/IPrintServicesChangeListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/print/IPrintServicesChangeListener;
 Landroid/print/IPrintServicesChangeListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/print/IPrintServicesChangeListener$Stub;->TRANSACTION_onPrintServicesChanged:I
-Landroid/print/IPrintServicesChangeListener;
 Landroid/print/IPrintServicesChangeListener;->onPrintServicesChanged()V
-Landroid/print/IPrintSpooler$Stub$Proxy;
 Landroid/print/IPrintSpooler$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/print/IPrintSpooler$Stub$Proxy;->clearCustomPrinterIconCache(Landroid/print/IPrintSpoolerCallbacks;I)V
 Landroid/print/IPrintSpooler$Stub$Proxy;->createPrintJob(Landroid/print/PrintJobInfo;)V
@@ -58768,7 +54724,6 @@
 Landroid/print/IPrintSpooler$Stub$Proxy;->setStatus(Landroid/print/PrintJobId;Ljava/lang/CharSequence;)V
 Landroid/print/IPrintSpooler$Stub$Proxy;->setStatusRes(Landroid/print/PrintJobId;ILjava/lang/CharSequence;)V
 Landroid/print/IPrintSpooler$Stub$Proxy;->writePrintJobData(Landroid/os/ParcelFileDescriptor;Landroid/print/PrintJobId;)V
-Landroid/print/IPrintSpooler$Stub;
 Landroid/print/IPrintSpooler$Stub;-><init>()V
 Landroid/print/IPrintSpooler$Stub;->asInterface(Landroid/os/IBinder;)Landroid/print/IPrintSpooler;
 Landroid/print/IPrintSpooler$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -58788,7 +54743,6 @@
 Landroid/print/IPrintSpooler$Stub;->TRANSACTION_setStatus:I
 Landroid/print/IPrintSpooler$Stub;->TRANSACTION_setStatusRes:I
 Landroid/print/IPrintSpooler$Stub;->TRANSACTION_writePrintJobData:I
-Landroid/print/IPrintSpooler;
 Landroid/print/IPrintSpooler;->clearCustomPrinterIconCache(Landroid/print/IPrintSpoolerCallbacks;I)V
 Landroid/print/IPrintSpooler;->createPrintJob(Landroid/print/PrintJobInfo;)V
 Landroid/print/IPrintSpooler;->getCustomPrinterIcon(Landroid/print/PrinterId;Landroid/print/IPrintSpoolerCallbacks;I)V
@@ -58805,7 +54759,6 @@
 Landroid/print/IPrintSpooler;->setStatus(Landroid/print/PrintJobId;Ljava/lang/CharSequence;)V
 Landroid/print/IPrintSpooler;->setStatusRes(Landroid/print/PrintJobId;ILjava/lang/CharSequence;)V
 Landroid/print/IPrintSpooler;->writePrintJobData(Landroid/os/ParcelFileDescriptor;Landroid/print/PrintJobId;)V
-Landroid/print/IPrintSpoolerCallbacks$Stub$Proxy;
 Landroid/print/IPrintSpoolerCallbacks$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/print/IPrintSpoolerCallbacks$Stub$Proxy;->customPrinterIconCacheCleared(I)V
 Landroid/print/IPrintSpoolerCallbacks$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -58817,7 +54770,6 @@
 Landroid/print/IPrintSpoolerCallbacks$Stub$Proxy;->onGetPrintJobInfosResult(Ljava/util/List;I)V
 Landroid/print/IPrintSpoolerCallbacks$Stub$Proxy;->onSetPrintJobStateResult(ZI)V
 Landroid/print/IPrintSpoolerCallbacks$Stub$Proxy;->onSetPrintJobTagResult(ZI)V
-Landroid/print/IPrintSpoolerCallbacks$Stub;
 Landroid/print/IPrintSpoolerCallbacks$Stub;-><init>()V
 Landroid/print/IPrintSpoolerCallbacks$Stub;->asInterface(Landroid/os/IBinder;)Landroid/print/IPrintSpoolerCallbacks;
 Landroid/print/IPrintSpoolerCallbacks$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -58829,7 +54781,6 @@
 Landroid/print/IPrintSpoolerCallbacks$Stub;->TRANSACTION_onGetPrintJobInfosResult:I
 Landroid/print/IPrintSpoolerCallbacks$Stub;->TRANSACTION_onSetPrintJobStateResult:I
 Landroid/print/IPrintSpoolerCallbacks$Stub;->TRANSACTION_onSetPrintJobTagResult:I
-Landroid/print/IPrintSpoolerCallbacks;
 Landroid/print/IPrintSpoolerCallbacks;->customPrinterIconCacheCleared(I)V
 Landroid/print/IPrintSpoolerCallbacks;->onCancelPrintJobResult(ZI)V
 Landroid/print/IPrintSpoolerCallbacks;->onCustomPrinterIconCached(I)V
@@ -58838,7 +54789,6 @@
 Landroid/print/IPrintSpoolerCallbacks;->onGetPrintJobInfosResult(Ljava/util/List;I)V
 Landroid/print/IPrintSpoolerCallbacks;->onSetPrintJobStateResult(ZI)V
 Landroid/print/IPrintSpoolerCallbacks;->onSetPrintJobTagResult(ZI)V
-Landroid/print/IPrintSpoolerClient$Stub$Proxy;
 Landroid/print/IPrintSpoolerClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/print/IPrintSpoolerClient$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/print/IPrintSpoolerClient$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -58846,7 +54796,6 @@
 Landroid/print/IPrintSpoolerClient$Stub$Proxy;->onAllPrintJobsHandled()V
 Landroid/print/IPrintSpoolerClient$Stub$Proxy;->onPrintJobQueued(Landroid/print/PrintJobInfo;)V
 Landroid/print/IPrintSpoolerClient$Stub$Proxy;->onPrintJobStateChanged(Landroid/print/PrintJobInfo;)V
-Landroid/print/IPrintSpoolerClient$Stub;
 Landroid/print/IPrintSpoolerClient$Stub;-><init>()V
 Landroid/print/IPrintSpoolerClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/print/IPrintSpoolerClient;
 Landroid/print/IPrintSpoolerClient$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -58854,12 +54803,10 @@
 Landroid/print/IPrintSpoolerClient$Stub;->TRANSACTION_onAllPrintJobsHandled:I
 Landroid/print/IPrintSpoolerClient$Stub;->TRANSACTION_onPrintJobQueued:I
 Landroid/print/IPrintSpoolerClient$Stub;->TRANSACTION_onPrintJobStateChanged:I
-Landroid/print/IPrintSpoolerClient;
 Landroid/print/IPrintSpoolerClient;->onAllPrintJobsForServiceHandled(Landroid/content/ComponentName;)V
 Landroid/print/IPrintSpoolerClient;->onAllPrintJobsHandled()V
 Landroid/print/IPrintSpoolerClient;->onPrintJobQueued(Landroid/print/PrintJobInfo;)V
 Landroid/print/IPrintSpoolerClient;->onPrintJobStateChanged(Landroid/print/PrintJobInfo;)V
-Landroid/print/IWriteResultCallback$Stub$Proxy;
 Landroid/print/IWriteResultCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/print/IWriteResultCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/print/IWriteResultCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -58867,7 +54814,6 @@
 Landroid/print/IWriteResultCallback$Stub$Proxy;->onWriteFailed(Ljava/lang/CharSequence;I)V
 Landroid/print/IWriteResultCallback$Stub$Proxy;->onWriteFinished([Landroid/print/PageRange;I)V
 Landroid/print/IWriteResultCallback$Stub$Proxy;->onWriteStarted(Landroid/os/ICancellationSignal;I)V
-Landroid/print/IWriteResultCallback$Stub;
 Landroid/print/IWriteResultCallback$Stub;-><init>()V
 Landroid/print/IWriteResultCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/print/IWriteResultCallback;
 Landroid/print/IWriteResultCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -58875,7 +54821,6 @@
 Landroid/print/IWriteResultCallback$Stub;->TRANSACTION_onWriteFailed:I
 Landroid/print/IWriteResultCallback$Stub;->TRANSACTION_onWriteFinished:I
 Landroid/print/IWriteResultCallback$Stub;->TRANSACTION_onWriteStarted:I
-Landroid/print/IWriteResultCallback;
 Landroid/print/IWriteResultCallback;->onWriteCanceled(I)V
 Landroid/print/IWriteResultCallback;->onWriteFailed(Ljava/lang/CharSequence;I)V
 Landroid/print/IWriteResultCallback;->onWriteFinished([Landroid/print/PageRange;I)V
@@ -58892,8 +54837,6 @@
 Landroid/print/pdf/PrintedPdfDocument;->mPageWidth:I
 Landroid/print/pdf/PrintedPdfDocument;->POINTS_IN_INCH:I
 Landroid/print/PrintAttributes$Builder;->mAttributes:Landroid/print/PrintAttributes;
-Landroid/print/PrintAttributes$ColorMode;
-Landroid/print/PrintAttributes$DuplexMode;
 Landroid/print/PrintAttributes$Margins;->createFromParcel(Landroid/os/Parcel;)Landroid/print/PrintAttributes$Margins;
 Landroid/print/PrintAttributes$Margins;->mBottomMils:I
 Landroid/print/PrintAttributes$Margins;->mLeftMils:I
@@ -58944,7 +54887,6 @@
 Landroid/print/PrintAttributes;->VALID_COLOR_MODES:I
 Landroid/print/PrintAttributes;->VALID_DUPLEX_MODES:I
 Landroid/print/PrintDocumentInfo$Builder;->mPrototype:Landroid/print/PrintDocumentInfo;
-Landroid/print/PrintDocumentInfo$ContentType;
 Landroid/print/PrintDocumentInfo;-><init>()V
 Landroid/print/PrintDocumentInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/print/PrintDocumentInfo;-><init>(Landroid/print/PrintDocumentInfo;)V
@@ -58984,16 +54926,11 @@
 Landroid/print/PrinterCapabilitiesInfo;->writeMargins(Landroid/print/PrintAttributes$Margins;Landroid/os/Parcel;)V
 Landroid/print/PrinterCapabilitiesInfo;->writeMediaSizes(Landroid/os/Parcel;)V
 Landroid/print/PrinterCapabilitiesInfo;->writeResolutions(Landroid/os/Parcel;)V
-Landroid/print/PrinterDiscoverySession$OnPrintersChangeListener;
 Landroid/print/PrinterDiscoverySession$OnPrintersChangeListener;->onPrintersChanged()V
-Landroid/print/PrinterDiscoverySession$PrinterDiscoveryObserver;
 Landroid/print/PrinterDiscoverySession$PrinterDiscoveryObserver;-><init>(Landroid/print/PrinterDiscoverySession;)V
 Landroid/print/PrinterDiscoverySession$PrinterDiscoveryObserver;->mWeakSession:Ljava/lang/ref/WeakReference;
 Landroid/print/PrinterDiscoverySession$PrinterDiscoveryObserver;->onPrintersAdded(Landroid/content/pm/ParceledListSlice;)V
 Landroid/print/PrinterDiscoverySession$PrinterDiscoveryObserver;->onPrintersRemoved(Landroid/content/pm/ParceledListSlice;)V
-Landroid/print/PrinterDiscoverySession$SessionHandler;
-Landroid/print/PrinterDiscoverySession$SessionHandler;-><init>(Landroid/os/Looper;)V
-Landroid/print/PrinterDiscoverySession;
 Landroid/print/PrinterDiscoverySession;-><init>(Landroid/print/IPrintManager;Landroid/content/Context;I)V
 Landroid/print/PrinterDiscoverySession;->destroy()V
 Landroid/print/PrinterDiscoverySession;->destroyNoCheck()V
@@ -59035,7 +54972,6 @@
 Landroid/print/PrinterInfo$Builder;->mName:Ljava/lang/String;
 Landroid/print/PrinterInfo$Builder;->mPrinterId:Landroid/print/PrinterId;
 Landroid/print/PrinterInfo$Builder;->mStatus:I
-Landroid/print/PrinterInfo$Status;
 Landroid/print/PrinterInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/print/PrinterInfo;-><init>(Landroid/print/PrinterId;Ljava/lang/String;IIZLjava/lang/String;Landroid/app/PendingIntent;Landroid/print/PrinterCapabilitiesInfo;I)V
 Landroid/print/PrinterInfo;->checkName(Ljava/lang/String;)Ljava/lang/String;
@@ -59053,15 +54989,11 @@
 Landroid/print/PrinterInfo;->mInfoIntent:Landroid/app/PendingIntent;
 Landroid/print/PrinterInfo;->mName:Ljava/lang/String;
 Landroid/print/PrinterInfo;->mStatus:I
-Landroid/print/PrintFileDocumentAdapter$WriteFileAsyncTask;
-Landroid/print/PrintFileDocumentAdapter$WriteFileAsyncTask;-><init>(Landroid/os/ParcelFileDescriptor;Landroid/os/CancellationSignal;Landroid/print/PrintDocumentAdapter$WriteResultCallback;)V
-Landroid/print/PrintFileDocumentAdapter$WriteFileAsyncTask;->doInBackground([[Ljava/lang/Void;)Ljava/lang/Void;
 Landroid/print/PrintFileDocumentAdapter$WriteFileAsyncTask;->mCancellationSignal:Landroid/os/CancellationSignal;
 Landroid/print/PrintFileDocumentAdapter$WriteFileAsyncTask;->mDestination:Landroid/os/ParcelFileDescriptor;
 Landroid/print/PrintFileDocumentAdapter$WriteFileAsyncTask;->mResultCallback:Landroid/print/PrintDocumentAdapter$WriteResultCallback;
 Landroid/print/PrintFileDocumentAdapter$WriteFileAsyncTask;->onCancelled(Ljava/lang/Void;)V
 Landroid/print/PrintFileDocumentAdapter$WriteFileAsyncTask;->onPostExecute(Ljava/lang/Void;)V
-Landroid/print/PrintFileDocumentAdapter;
 Landroid/print/PrintFileDocumentAdapter;-><init>(Landroid/content/Context;Ljava/io/File;Landroid/print/PrintDocumentInfo;)V
 Landroid/print/PrintFileDocumentAdapter;->LOG_TAG:Ljava/lang/String;
 Landroid/print/PrintFileDocumentAdapter;->mContext:Landroid/content/Context;
@@ -59080,7 +55012,6 @@
 Landroid/print/PrintJobInfo$Builder;->mPrototype:Landroid/print/PrintJobInfo;
 Landroid/print/PrintJobInfo$Builder;->setProgress(F)V
 Landroid/print/PrintJobInfo$Builder;->setStatus(Ljava/lang/CharSequence;)V
-Landroid/print/PrintJobInfo$State;
 Landroid/print/PrintJobInfo;-><init>()V
 Landroid/print/PrintJobInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/print/PrintJobInfo;-><init>(Landroid/print/PrintJobInfo;)V
@@ -59128,27 +55059,19 @@
 Landroid/print/PrintJobInfo;->STATE_ANY_ACTIVE:I
 Landroid/print/PrintJobInfo;->STATE_ANY_SCHEDULED:I
 Landroid/print/PrintJobInfo;->STATE_ANY_VISIBLE_TO_CLIENTS:I
-Landroid/print/PrintManager$PrintDocumentAdapterDelegate$DestroyableCallback;
 Landroid/print/PrintManager$PrintDocumentAdapterDelegate$DestroyableCallback;->destroy()V
-Landroid/print/PrintManager$PrintDocumentAdapterDelegate$MyHandler;
-Landroid/print/PrintManager$PrintDocumentAdapterDelegate$MyHandler;-><init>(Landroid/os/Looper;)V
 Landroid/print/PrintManager$PrintDocumentAdapterDelegate$MyHandler;->MSG_ON_FINISH:I
 Landroid/print/PrintManager$PrintDocumentAdapterDelegate$MyHandler;->MSG_ON_KILL:I
 Landroid/print/PrintManager$PrintDocumentAdapterDelegate$MyHandler;->MSG_ON_LAYOUT:I
 Landroid/print/PrintManager$PrintDocumentAdapterDelegate$MyHandler;->MSG_ON_START:I
 Landroid/print/PrintManager$PrintDocumentAdapterDelegate$MyHandler;->MSG_ON_WRITE:I
-Landroid/print/PrintManager$PrintDocumentAdapterDelegate$MyLayoutResultCallback;
-Landroid/print/PrintManager$PrintDocumentAdapterDelegate$MyLayoutResultCallback;-><init>(Landroid/print/ILayoutResultCallback;I)V
 Landroid/print/PrintManager$PrintDocumentAdapterDelegate$MyLayoutResultCallback;->destroy()V
 Landroid/print/PrintManager$PrintDocumentAdapterDelegate$MyLayoutResultCallback;->mCallback:Landroid/print/ILayoutResultCallback;
 Landroid/print/PrintManager$PrintDocumentAdapterDelegate$MyLayoutResultCallback;->mSequence:I
-Landroid/print/PrintManager$PrintDocumentAdapterDelegate$MyWriteResultCallback;
-Landroid/print/PrintManager$PrintDocumentAdapterDelegate$MyWriteResultCallback;-><init>(Landroid/print/IWriteResultCallback;Landroid/os/ParcelFileDescriptor;I)V
 Landroid/print/PrintManager$PrintDocumentAdapterDelegate$MyWriteResultCallback;->destroy()V
 Landroid/print/PrintManager$PrintDocumentAdapterDelegate$MyWriteResultCallback;->mCallback:Landroid/print/IWriteResultCallback;
 Landroid/print/PrintManager$PrintDocumentAdapterDelegate$MyWriteResultCallback;->mFd:Landroid/os/ParcelFileDescriptor;
 Landroid/print/PrintManager$PrintDocumentAdapterDelegate$MyWriteResultCallback;->mSequence:I
-Landroid/print/PrintManager$PrintDocumentAdapterDelegate;
 Landroid/print/PrintManager$PrintDocumentAdapterDelegate;-><init>(Landroid/app/Activity;Landroid/print/PrintDocumentAdapter;)V
 Landroid/print/PrintManager$PrintDocumentAdapterDelegate;->destroyLocked()V
 Landroid/print/PrintManager$PrintDocumentAdapterDelegate;->finish()V
@@ -59164,22 +55087,18 @@
 Landroid/print/PrintManager$PrintDocumentAdapterDelegate;->setObserver(Landroid/print/IPrintDocumentAdapterObserver;)V
 Landroid/print/PrintManager$PrintDocumentAdapterDelegate;->start()V
 Landroid/print/PrintManager$PrintDocumentAdapterDelegate;->write([Landroid/print/PageRange;Landroid/os/ParcelFileDescriptor;Landroid/print/IWriteResultCallback;I)V
-Landroid/print/PrintManager$PrintJobStateChangeListener;
 Landroid/print/PrintManager$PrintJobStateChangeListener;->onPrintJobStateChanged(Landroid/print/PrintJobId;)V
-Landroid/print/PrintManager$PrintJobStateChangeListenerWrapper;
 Landroid/print/PrintManager$PrintJobStateChangeListenerWrapper;-><init>(Landroid/print/PrintManager$PrintJobStateChangeListener;Landroid/os/Handler;)V
 Landroid/print/PrintManager$PrintJobStateChangeListenerWrapper;->destroy()V
 Landroid/print/PrintManager$PrintJobStateChangeListenerWrapper;->getListener()Landroid/print/PrintManager$PrintJobStateChangeListener;
 Landroid/print/PrintManager$PrintJobStateChangeListenerWrapper;->mWeakHandler:Ljava/lang/ref/WeakReference;
 Landroid/print/PrintManager$PrintJobStateChangeListenerWrapper;->mWeakListener:Ljava/lang/ref/WeakReference;
 Landroid/print/PrintManager$PrintJobStateChangeListenerWrapper;->onPrintJobStateChanged(Landroid/print/PrintJobId;)V
-Landroid/print/PrintManager$PrintServiceRecommendationsChangeListenerWrapper;
 Landroid/print/PrintManager$PrintServiceRecommendationsChangeListenerWrapper;-><init>(Landroid/print/PrintManager$PrintServiceRecommendationsChangeListener;Landroid/os/Handler;)V
 Landroid/print/PrintManager$PrintServiceRecommendationsChangeListenerWrapper;->destroy()V
 Landroid/print/PrintManager$PrintServiceRecommendationsChangeListenerWrapper;->mWeakHandler:Ljava/lang/ref/WeakReference;
 Landroid/print/PrintManager$PrintServiceRecommendationsChangeListenerWrapper;->mWeakListener:Ljava/lang/ref/WeakReference;
 Landroid/print/PrintManager$PrintServiceRecommendationsChangeListenerWrapper;->onRecommendationsChanged()V
-Landroid/print/PrintManager$PrintServicesChangeListenerWrapper;
 Landroid/print/PrintManager$PrintServicesChangeListenerWrapper;-><init>(Landroid/print/PrintManager$PrintServicesChangeListener;Landroid/os/Handler;)V
 Landroid/print/PrintManager$PrintServicesChangeListenerWrapper;->destroy()V
 Landroid/print/PrintManager$PrintServicesChangeListenerWrapper;->mWeakHandler:Ljava/lang/ref/WeakReference;
@@ -59214,17 +55133,11 @@
 Landroid/print/PrintManager;->removePrintJobStateChangeListener(Landroid/print/PrintManager$PrintJobStateChangeListener;)V
 Landroid/print/PrintManager;->restartPrintJob(Landroid/print/PrintJobId;)V
 Landroid/print/PrintManager;->setPrintServiceEnabled(Landroid/content/ComponentName;Z)V
-Landroid/print/PrintServiceRecommendationsLoader$MyHandler;
-Landroid/print/PrintServiceRecommendationsLoader$MyHandler;-><init>()V
-Landroid/print/PrintServiceRecommendationsLoader;
 Landroid/print/PrintServiceRecommendationsLoader;-><init>(Landroid/print/PrintManager;Landroid/content/Context;)V
 Landroid/print/PrintServiceRecommendationsLoader;->mHandler:Landroid/os/Handler;
 Landroid/print/PrintServiceRecommendationsLoader;->mListener:Landroid/print/PrintManager$PrintServiceRecommendationsChangeListener;
 Landroid/print/PrintServiceRecommendationsLoader;->mPrintManager:Landroid/print/PrintManager;
 Landroid/print/PrintServiceRecommendationsLoader;->queueNewResult()V
-Landroid/print/PrintServicesLoader$MyHandler;
-Landroid/print/PrintServicesLoader$MyHandler;-><init>()V
-Landroid/print/PrintServicesLoader;
 Landroid/print/PrintServicesLoader;-><init>(Landroid/print/PrintManager;Landroid/content/Context;I)V
 Landroid/print/PrintServicesLoader;->mHandler:Landroid/os/Handler;
 Landroid/print/PrintServicesLoader;->mListener:Landroid/print/PrintManager$PrintServicesChangeListener;
@@ -59235,7 +55148,6 @@
 Landroid/printservice/CustomPrinterIconCallback;->LOG_TAG:Ljava/lang/String;
 Landroid/printservice/CustomPrinterIconCallback;->mObserver:Landroid/printservice/IPrintServiceClient;
 Landroid/printservice/CustomPrinterIconCallback;->mPrinterId:Landroid/print/PrinterId;
-Landroid/printservice/IPrintService$Stub$Proxy;
 Landroid/printservice/IPrintService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/printservice/IPrintService$Stub$Proxy;->createPrinterDiscoverySession()V
 Landroid/printservice/IPrintService$Stub$Proxy;->destroyPrinterDiscoverySession()V
@@ -59250,7 +55162,6 @@
 Landroid/printservice/IPrintService$Stub$Proxy;->stopPrinterDiscovery()V
 Landroid/printservice/IPrintService$Stub$Proxy;->stopPrinterStateTracking(Landroid/print/PrinterId;)V
 Landroid/printservice/IPrintService$Stub$Proxy;->validatePrinters(Ljava/util/List;)V
-Landroid/printservice/IPrintService$Stub;
 Landroid/printservice/IPrintService$Stub;-><init>()V
 Landroid/printservice/IPrintService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/printservice/IPrintService;
 Landroid/printservice/IPrintService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -59265,7 +55176,6 @@
 Landroid/printservice/IPrintService$Stub;->TRANSACTION_stopPrinterDiscovery:I
 Landroid/printservice/IPrintService$Stub;->TRANSACTION_stopPrinterStateTracking:I
 Landroid/printservice/IPrintService$Stub;->TRANSACTION_validatePrinters:I
-Landroid/printservice/IPrintService;
 Landroid/printservice/IPrintService;->createPrinterDiscoverySession()V
 Landroid/printservice/IPrintService;->destroyPrinterDiscoverySession()V
 Landroid/printservice/IPrintService;->onPrintJobQueued(Landroid/print/PrintJobInfo;)V
@@ -59277,7 +55187,6 @@
 Landroid/printservice/IPrintService;->stopPrinterDiscovery()V
 Landroid/printservice/IPrintService;->stopPrinterStateTracking(Landroid/print/PrinterId;)V
 Landroid/printservice/IPrintService;->validatePrinters(Ljava/util/List;)V
-Landroid/printservice/IPrintServiceClient$Stub$Proxy;
 Landroid/printservice/IPrintServiceClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/printservice/IPrintServiceClient$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/printservice/IPrintServiceClient$Stub$Proxy;->getPrintJobInfo(Landroid/print/PrintJobId;)Landroid/print/PrintJobInfo;
@@ -59292,7 +55201,6 @@
 Landroid/printservice/IPrintServiceClient$Stub$Proxy;->setStatus(Landroid/print/PrintJobId;Ljava/lang/CharSequence;)V
 Landroid/printservice/IPrintServiceClient$Stub$Proxy;->setStatusRes(Landroid/print/PrintJobId;ILjava/lang/CharSequence;)V
 Landroid/printservice/IPrintServiceClient$Stub$Proxy;->writePrintJobData(Landroid/os/ParcelFileDescriptor;Landroid/print/PrintJobId;)V
-Landroid/printservice/IPrintServiceClient$Stub;
 Landroid/printservice/IPrintServiceClient$Stub;-><init>()V
 Landroid/printservice/IPrintServiceClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/printservice/IPrintServiceClient;
 Landroid/printservice/IPrintServiceClient$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -59307,7 +55215,6 @@
 Landroid/printservice/IPrintServiceClient$Stub;->TRANSACTION_setStatus:I
 Landroid/printservice/IPrintServiceClient$Stub;->TRANSACTION_setStatusRes:I
 Landroid/printservice/IPrintServiceClient$Stub;->TRANSACTION_writePrintJobData:I
-Landroid/printservice/IPrintServiceClient;
 Landroid/printservice/IPrintServiceClient;->getPrintJobInfo(Landroid/print/PrintJobId;)Landroid/print/PrintJobInfo;
 Landroid/printservice/IPrintServiceClient;->getPrintJobInfos()Ljava/util/List;
 Landroid/printservice/IPrintServiceClient;->onCustomPrinterIconLoaded(Landroid/print/PrinterId;Landroid/graphics/drawable/Icon;)V
@@ -59351,8 +55258,6 @@
 Landroid/printservice/PrintJob;->mDocument:Landroid/printservice/PrintDocument;
 Landroid/printservice/PrintJob;->mPrintServiceClient:Landroid/printservice/IPrintServiceClient;
 Landroid/printservice/PrintJob;->setState(ILjava/lang/String;)Z
-Landroid/printservice/PrintService$ServiceHandler;
-Landroid/printservice/PrintService$ServiceHandler;-><init>(Landroid/os/Looper;)V
 Landroid/printservice/PrintService$ServiceHandler;->MSG_CREATE_PRINTER_DISCOVERY_SESSION:I
 Landroid/printservice/PrintService$ServiceHandler;->MSG_DESTROY_PRINTER_DISCOVERY_SESSION:I
 Landroid/printservice/PrintService$ServiceHandler;->MSG_ON_PRINTJOB_QUEUED:I
@@ -59389,41 +55294,32 @@
 Landroid/printservice/PrintServiceInfo;->mSettingsActivityName:Ljava/lang/String;
 Landroid/printservice/PrintServiceInfo;->setIsEnabled(Z)V
 Landroid/printservice/PrintServiceInfo;->TAG_PRINT_SERVICE:Ljava/lang/String;
-Landroid/printservice/recommendation/IRecommendationsChangeListener$Stub$Proxy;
 Landroid/printservice/recommendation/IRecommendationsChangeListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/printservice/recommendation/IRecommendationsChangeListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/printservice/recommendation/IRecommendationsChangeListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/printservice/recommendation/IRecommendationsChangeListener$Stub$Proxy;->onRecommendationsChanged()V
-Landroid/printservice/recommendation/IRecommendationsChangeListener$Stub;
 Landroid/printservice/recommendation/IRecommendationsChangeListener$Stub;-><init>()V
 Landroid/printservice/recommendation/IRecommendationsChangeListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/printservice/recommendation/IRecommendationsChangeListener;
 Landroid/printservice/recommendation/IRecommendationsChangeListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/printservice/recommendation/IRecommendationsChangeListener$Stub;->TRANSACTION_onRecommendationsChanged:I
-Landroid/printservice/recommendation/IRecommendationsChangeListener;
 Landroid/printservice/recommendation/IRecommendationsChangeListener;->onRecommendationsChanged()V
-Landroid/printservice/recommendation/IRecommendationService$Stub$Proxy;
 Landroid/printservice/recommendation/IRecommendationService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/printservice/recommendation/IRecommendationService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/printservice/recommendation/IRecommendationService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/printservice/recommendation/IRecommendationService$Stub$Proxy;->registerCallbacks(Landroid/printservice/recommendation/IRecommendationServiceCallbacks;)V
-Landroid/printservice/recommendation/IRecommendationService$Stub;
 Landroid/printservice/recommendation/IRecommendationService$Stub;-><init>()V
 Landroid/printservice/recommendation/IRecommendationService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/printservice/recommendation/IRecommendationService;
 Landroid/printservice/recommendation/IRecommendationService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/printservice/recommendation/IRecommendationService$Stub;->TRANSACTION_registerCallbacks:I
-Landroid/printservice/recommendation/IRecommendationService;
 Landroid/printservice/recommendation/IRecommendationService;->registerCallbacks(Landroid/printservice/recommendation/IRecommendationServiceCallbacks;)V
-Landroid/printservice/recommendation/IRecommendationServiceCallbacks$Stub$Proxy;
 Landroid/printservice/recommendation/IRecommendationServiceCallbacks$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/printservice/recommendation/IRecommendationServiceCallbacks$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/printservice/recommendation/IRecommendationServiceCallbacks$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/printservice/recommendation/IRecommendationServiceCallbacks$Stub$Proxy;->onRecommendationsUpdated(Ljava/util/List;)V
-Landroid/printservice/recommendation/IRecommendationServiceCallbacks$Stub;
 Landroid/printservice/recommendation/IRecommendationServiceCallbacks$Stub;-><init>()V
 Landroid/printservice/recommendation/IRecommendationServiceCallbacks$Stub;->asInterface(Landroid/os/IBinder;)Landroid/printservice/recommendation/IRecommendationServiceCallbacks;
 Landroid/printservice/recommendation/IRecommendationServiceCallbacks$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/printservice/recommendation/IRecommendationServiceCallbacks$Stub;->TRANSACTION_onRecommendationsUpdated:I
-Landroid/printservice/recommendation/IRecommendationServiceCallbacks;
 Landroid/printservice/recommendation/IRecommendationServiceCallbacks;->onRecommendationsUpdated(Ljava/util/List;)V
 Landroid/printservice/recommendation/RecommendationInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/printservice/recommendation/RecommendationInfo;->mDiscoveredPrinters:Ljava/util/List;
@@ -59431,8 +55327,6 @@
 Landroid/printservice/recommendation/RecommendationInfo;->mPackageName:Ljava/lang/CharSequence;
 Landroid/printservice/recommendation/RecommendationInfo;->mRecommendsMultiVendorService:Z
 Landroid/printservice/recommendation/RecommendationInfo;->readDiscoveredPrinters(Landroid/os/Parcel;)Ljava/util/ArrayList;
-Landroid/printservice/recommendation/RecommendationService$MyHandler;
-Landroid/printservice/recommendation/RecommendationService$MyHandler;-><init>()V
 Landroid/printservice/recommendation/RecommendationService$MyHandler;->MSG_CONNECT:I
 Landroid/printservice/recommendation/RecommendationService$MyHandler;->MSG_DISCONNECT:I
 Landroid/printservice/recommendation/RecommendationService$MyHandler;->MSG_UPDATE:I
@@ -59440,11 +55334,9 @@
 Landroid/printservice/recommendation/RecommendationService;->mCallbacks:Landroid/printservice/recommendation/IRecommendationServiceCallbacks;
 Landroid/printservice/recommendation/RecommendationService;->mHandler:Landroid/os/Handler;
 Landroid/provider/BlockedNumberContract$BlockedNumbers;-><init>()V
-Landroid/provider/BlockedNumberContract$SystemContract$BlockSuppressionStatus;
 Landroid/provider/BlockedNumberContract$SystemContract$BlockSuppressionStatus;-><init>(ZJ)V
 Landroid/provider/BlockedNumberContract$SystemContract$BlockSuppressionStatus;->isSuppressed:Z
 Landroid/provider/BlockedNumberContract$SystemContract$BlockSuppressionStatus;->untilTimestampMillis:J
-Landroid/provider/BlockedNumberContract$SystemContract;
 Landroid/provider/BlockedNumberContract$SystemContract;-><init>()V
 Landroid/provider/BlockedNumberContract$SystemContract;->ACTION_BLOCK_SUPPRESSION_STATE_CHANGED:Ljava/lang/String;
 Landroid/provider/BlockedNumberContract$SystemContract;->endBlockSuppression(Landroid/content/Context;)V
@@ -59492,18 +55384,15 @@
 Landroid/provider/Browser;->HISTORY_PROJECTION_TOUCH_ICON_INDEX:I
 Landroid/provider/Browser;->LOGTAG:Ljava/lang/String;
 Landroid/provider/Browser;->MAX_HISTORY_COUNT:I
-Landroid/provider/BrowserContract$Accounts;
 Landroid/provider/BrowserContract$Accounts;-><init>()V
 Landroid/provider/BrowserContract$Accounts;->ACCOUNT_NAME:Ljava/lang/String;
 Landroid/provider/BrowserContract$Accounts;->ACCOUNT_TYPE:Ljava/lang/String;
 Landroid/provider/BrowserContract$Accounts;->ROOT_ID:Ljava/lang/String;
-Landroid/provider/BrowserContract$BaseSyncColumns;
 Landroid/provider/BrowserContract$BaseSyncColumns;->SYNC1:Ljava/lang/String;
 Landroid/provider/BrowserContract$BaseSyncColumns;->SYNC2:Ljava/lang/String;
 Landroid/provider/BrowserContract$BaseSyncColumns;->SYNC3:Ljava/lang/String;
 Landroid/provider/BrowserContract$BaseSyncColumns;->SYNC4:Ljava/lang/String;
 Landroid/provider/BrowserContract$BaseSyncColumns;->SYNC5:Ljava/lang/String;
-Landroid/provider/BrowserContract$Bookmarks;
 Landroid/provider/BrowserContract$Bookmarks;-><init>()V
 Landroid/provider/BrowserContract$Bookmarks;->BOOKMARK_TYPE_BOOKMARK:I
 Landroid/provider/BrowserContract$Bookmarks;->BOOKMARK_TYPE_BOOKMARK_BAR_FOLDER:I
@@ -59523,7 +55412,6 @@
 Landroid/provider/BrowserContract$Bookmarks;->POSITION:Ljava/lang/String;
 Landroid/provider/BrowserContract$Bookmarks;->QUERY_PARAMETER_SHOW_DELETED:Ljava/lang/String;
 Landroid/provider/BrowserContract$Bookmarks;->TYPE:Ljava/lang/String;
-Landroid/provider/BrowserContract$ChromeSyncColumns;
 Landroid/provider/BrowserContract$ChromeSyncColumns;-><init>()V
 Landroid/provider/BrowserContract$ChromeSyncColumns;->CLIENT_UNIQUE:Ljava/lang/String;
 Landroid/provider/BrowserContract$ChromeSyncColumns;->FOLDER_NAME_BOOKMARKS:Ljava/lang/String;
@@ -59531,35 +55419,27 @@
 Landroid/provider/BrowserContract$ChromeSyncColumns;->FOLDER_NAME_OTHER_BOOKMARKS:Ljava/lang/String;
 Landroid/provider/BrowserContract$ChromeSyncColumns;->FOLDER_NAME_ROOT:Ljava/lang/String;
 Landroid/provider/BrowserContract$ChromeSyncColumns;->SERVER_UNIQUE:Ljava/lang/String;
-Landroid/provider/BrowserContract$Combined;
 Landroid/provider/BrowserContract$Combined;-><init>()V
 Landroid/provider/BrowserContract$Combined;->IS_BOOKMARK:Ljava/lang/String;
-Landroid/provider/BrowserContract$CommonColumns;
 Landroid/provider/BrowserContract$CommonColumns;->DATE_CREATED:Ljava/lang/String;
 Landroid/provider/BrowserContract$CommonColumns;->TITLE:Ljava/lang/String;
 Landroid/provider/BrowserContract$CommonColumns;->URL:Ljava/lang/String;
 Landroid/provider/BrowserContract$CommonColumns;->_ID:Ljava/lang/String;
-Landroid/provider/BrowserContract$History;
 Landroid/provider/BrowserContract$History;-><init>()V
 Landroid/provider/BrowserContract$History;->CONTENT_ITEM_TYPE:Ljava/lang/String;
 Landroid/provider/BrowserContract$History;->CONTENT_TYPE:Ljava/lang/String;
-Landroid/provider/BrowserContract$HistoryColumns;
 Landroid/provider/BrowserContract$HistoryColumns;->DATE_LAST_VISITED:Ljava/lang/String;
 Landroid/provider/BrowserContract$HistoryColumns;->USER_ENTERED:Ljava/lang/String;
 Landroid/provider/BrowserContract$HistoryColumns;->VISITS:Ljava/lang/String;
-Landroid/provider/BrowserContract$ImageColumns;
 Landroid/provider/BrowserContract$ImageColumns;->FAVICON:Ljava/lang/String;
 Landroid/provider/BrowserContract$ImageColumns;->THUMBNAIL:Ljava/lang/String;
 Landroid/provider/BrowserContract$ImageColumns;->TOUCH_ICON:Ljava/lang/String;
-Landroid/provider/BrowserContract$ImageMappingColumns;
 Landroid/provider/BrowserContract$ImageMappingColumns;->IMAGE_ID:Ljava/lang/String;
 Landroid/provider/BrowserContract$ImageMappingColumns;->URL:Ljava/lang/String;
-Landroid/provider/BrowserContract$ImageMappings;
 Landroid/provider/BrowserContract$ImageMappings;-><init>()V
 Landroid/provider/BrowserContract$ImageMappings;->CONTENT_ITEM_TYPE:Ljava/lang/String;
 Landroid/provider/BrowserContract$ImageMappings;->CONTENT_TYPE:Ljava/lang/String;
 Landroid/provider/BrowserContract$ImageMappings;->CONTENT_URI:Landroid/net/Uri;
-Landroid/provider/BrowserContract$Images;
 Landroid/provider/BrowserContract$Images;-><init>()V
 Landroid/provider/BrowserContract$Images;->CONTENT_ITEM_TYPE:Ljava/lang/String;
 Landroid/provider/BrowserContract$Images;->CONTENT_TYPE:Ljava/lang/String;
@@ -59569,7 +55449,6 @@
 Landroid/provider/BrowserContract$Images;->IMAGE_TYPE_TOUCH_ICON:I
 Landroid/provider/BrowserContract$Images;->TYPE:Ljava/lang/String;
 Landroid/provider/BrowserContract$Images;->URL:Ljava/lang/String;
-Landroid/provider/BrowserContract$Searches;
 Landroid/provider/BrowserContract$Searches;-><init>()V
 Landroid/provider/BrowserContract$Searches;->CONTENT_ITEM_TYPE:Ljava/lang/String;
 Landroid/provider/BrowserContract$Searches;->CONTENT_TYPE:Ljava/lang/String;
@@ -59577,7 +55456,6 @@
 Landroid/provider/BrowserContract$Searches;->DATE:Ljava/lang/String;
 Landroid/provider/BrowserContract$Searches;->SEARCH:Ljava/lang/String;
 Landroid/provider/BrowserContract$Searches;->_ID:Ljava/lang/String;
-Landroid/provider/BrowserContract$Settings;
 Landroid/provider/BrowserContract$Settings;-><init>()V
 Landroid/provider/BrowserContract$Settings;->CONTENT_URI:Landroid/net/Uri;
 Landroid/provider/BrowserContract$Settings;->isSyncEnabled(Landroid/content/Context;)Z
@@ -59585,14 +55463,12 @@
 Landroid/provider/BrowserContract$Settings;->KEY_SYNC_ENABLED:Ljava/lang/String;
 Landroid/provider/BrowserContract$Settings;->setSyncEnabled(Landroid/content/Context;Z)V
 Landroid/provider/BrowserContract$Settings;->VALUE:Ljava/lang/String;
-Landroid/provider/BrowserContract$SyncColumns;
 Landroid/provider/BrowserContract$SyncColumns;->ACCOUNT_NAME:Ljava/lang/String;
 Landroid/provider/BrowserContract$SyncColumns;->ACCOUNT_TYPE:Ljava/lang/String;
 Landroid/provider/BrowserContract$SyncColumns;->DATE_MODIFIED:Ljava/lang/String;
 Landroid/provider/BrowserContract$SyncColumns;->DIRTY:Ljava/lang/String;
 Landroid/provider/BrowserContract$SyncColumns;->SOURCE_ID:Ljava/lang/String;
 Landroid/provider/BrowserContract$SyncColumns;->VERSION:Ljava/lang/String;
-Landroid/provider/BrowserContract$SyncState;
 Landroid/provider/BrowserContract$SyncState;-><init>()V
 Landroid/provider/BrowserContract$SyncState;->CONTENT_DIRECTORY:Ljava/lang/String;
 Landroid/provider/BrowserContract$SyncState;->CONTENT_URI:Landroid/net/Uri;
@@ -59600,7 +55476,6 @@
 Landroid/provider/BrowserContract$SyncState;->getWithUri(Landroid/content/ContentProviderClient;Landroid/accounts/Account;)Landroid/util/Pair;
 Landroid/provider/BrowserContract$SyncState;->newSetOperation(Landroid/accounts/Account;[B)Landroid/content/ContentProviderOperation;
 Landroid/provider/BrowserContract$SyncState;->set(Landroid/content/ContentProviderClient;Landroid/accounts/Account;[B)V
-Landroid/provider/BrowserContract;
 Landroid/provider/BrowserContract;-><init>()V
 Landroid/provider/BrowserContract;->AUTHORITY:Ljava/lang/String;
 Landroid/provider/BrowserContract;->CALLER_IS_SYNCADAPTER:Ljava/lang/String;
@@ -59617,13 +55492,10 @@
 Landroid/provider/CalendarContract$CalendarAlerts;->WHERE_FINDNEXTALARMTIME:Ljava/lang/String;
 Landroid/provider/CalendarContract$CalendarAlerts;->WHERE_RESCHEDULE_MISSED_ALARMS:Ljava/lang/String;
 Landroid/provider/CalendarContract$CalendarCache;-><init>()V
-Landroid/provider/CalendarContract$CalendarEntity$EntityIteratorImpl;
 Landroid/provider/CalendarContract$CalendarEntity$EntityIteratorImpl;-><init>(Landroid/database/Cursor;)V
 Landroid/provider/CalendarContract$CalendarEntity$EntityIteratorImpl;->getEntityAndIncrementCursor(Landroid/database/Cursor;)Landroid/content/Entity;
 Landroid/provider/CalendarContract$CalendarEntity;-><init>()V
-Landroid/provider/CalendarContract$CalendarMetaData;
 Landroid/provider/CalendarContract$CalendarMetaData;-><init>()V
-Landroid/provider/CalendarContract$CalendarMetaDataColumns;
 Landroid/provider/CalendarContract$CalendarMetaDataColumns;->LOCAL_TIMEZONE:Ljava/lang/String;
 Landroid/provider/CalendarContract$CalendarMetaDataColumns;->MAX_EVENTDAYS:Ljava/lang/String;
 Landroid/provider/CalendarContract$CalendarMetaDataColumns;->MAX_INSTANCE:Ljava/lang/String;
@@ -59638,7 +55510,6 @@
 Landroid/provider/CalendarContract$Events;-><init>()V
 Landroid/provider/CalendarContract$Events;->DEFAULT_SORT_ORDER:Ljava/lang/String;
 Landroid/provider/CalendarContract$Events;->SYNC_WRITABLE_COLUMNS:[Ljava/lang/String;
-Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;
 Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;-><init>(Landroid/database/Cursor;Landroid/content/ContentProviderClient;)V
 Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;-><init>(Landroid/database/Cursor;Landroid/content/ContentResolver;)V
 Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;->ATTENDEES_PROJECTION:[Ljava/lang/String;
@@ -59661,9 +55532,7 @@
 Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;->REMINDERS_PROJECTION:[Ljava/lang/String;
 Landroid/provider/CalendarContract$EventsEntity$EntityIteratorImpl;->WHERE_EVENT_ID:Ljava/lang/String;
 Landroid/provider/CalendarContract$EventsEntity;-><init>()V
-Landroid/provider/CalendarContract$EventsRawTimes;
 Landroid/provider/CalendarContract$EventsRawTimes;-><init>()V
-Landroid/provider/CalendarContract$EventsRawTimesColumns;
 Landroid/provider/CalendarContract$EventsRawTimesColumns;->DTEND_2445:Ljava/lang/String;
 Landroid/provider/CalendarContract$EventsRawTimesColumns;->DTSTART_2445:Ljava/lang/String;
 Landroid/provider/CalendarContract$EventsRawTimesColumns;->EVENT_ID:Ljava/lang/String;
@@ -59699,7 +55568,6 @@
 Landroid/provider/CallLog;->LOG_TAG:Ljava/lang/String;
 Landroid/provider/CallLog;->SHADOW_AUTHORITY:Ljava/lang/String;
 Landroid/provider/CallLog;->VERBOSE_LOG:Z
-Landroid/provider/Contacts$ContactMethods$ProviderNames;
 Landroid/provider/Contacts$ContactMethods$ProviderNames;->AIM:Ljava/lang/String;
 Landroid/provider/Contacts$ContactMethods$ProviderNames;->GTALK:Ljava/lang/String;
 Landroid/provider/Contacts$ContactMethods$ProviderNames;->ICQ:Ljava/lang/String;
@@ -59729,7 +55597,6 @@
 Landroid/provider/Contacts$PeopleColumns;->SORT_STRING:Ljava/lang/String;
 Landroid/provider/Contacts$Phones;-><init>()V
 Landroid/provider/Contacts$Photos;-><init>()V
-Landroid/provider/Contacts$Presence;
 Landroid/provider/Contacts$Presence;-><init>()V
 Landroid/provider/Contacts$Presence;->CONTENT_URI:Landroid/net/Uri;
 Landroid/provider/Contacts$Presence;->getPresenceIconResourceId(I)I
@@ -59739,7 +55606,6 @@
 Landroid/provider/Contacts;-><init>()V
 Landroid/provider/Contacts;->TAG:Ljava/lang/String;
 Landroid/provider/ContactsContract$AggregationExceptions;-><init>()V
-Landroid/provider/ContactsContract$Authorization;
 Landroid/provider/ContactsContract$Authorization;-><init>()V
 Landroid/provider/ContactsContract$Authorization;->AUTHORIZATION_METHOD:Ljava/lang/String;
 Landroid/provider/ContactsContract$Authorization;->KEY_AUTHORIZED_URI:Ljava/lang/String;
@@ -59763,7 +55629,6 @@
 Landroid/provider/ContactsContract$CommonDataKinds$Website;-><init>()V
 Landroid/provider/ContactsContract$CommonDataKinds;-><init>()V
 Landroid/provider/ContactsContract$CommonDataKinds;->PACKAGE_COMMON:Ljava/lang/String;
-Landroid/provider/ContactsContract$ContactCounts;
 Landroid/provider/ContactsContract$ContactOptionsColumns;->LR_LAST_TIME_CONTACTED:Ljava/lang/String;
 Landroid/provider/ContactsContract$ContactOptionsColumns;->LR_TIMES_CONTACTED:Ljava/lang/String;
 Landroid/provider/ContactsContract$ContactOptionsColumns;->RAW_LAST_TIME_CONTACTED:Ljava/lang/String;
@@ -59794,7 +55659,6 @@
 Landroid/provider/ContactsContract$Directory;->ENTERPRISE_FILE_URI:Landroid/net/Uri;
 Landroid/provider/ContactsContract$Directory;->isRemoteDirectory(J)Z
 Landroid/provider/ContactsContract$DisplayPhoto;-><init>()V
-Landroid/provider/ContactsContract$Groups$EntityIteratorImpl;
 Landroid/provider/ContactsContract$Groups$EntityIteratorImpl;-><init>(Landroid/database/Cursor;)V
 Landroid/provider/ContactsContract$Groups$EntityIteratorImpl;->getEntityAndIncrementCursor(Landroid/database/Cursor;)Landroid/content/Entity;
 Landroid/provider/ContactsContract$Groups;-><init>()V
@@ -59814,9 +55678,7 @@
 Landroid/provider/ContactsContract$MetadataSyncState;-><init>()V
 Landroid/provider/ContactsContract$PhoneLookup;-><init>()V
 Landroid/provider/ContactsContract$PhoneLookup;->CONTENT_TYPE:Ljava/lang/String;
-Landroid/provider/ContactsContract$PhotoFiles;
 Landroid/provider/ContactsContract$PhotoFiles;-><init>()V
-Landroid/provider/ContactsContract$PhotoFilesColumns;
 Landroid/provider/ContactsContract$PhotoFilesColumns;->FILESIZE:Ljava/lang/String;
 Landroid/provider/ContactsContract$PhotoFilesColumns;->HEIGHT:Ljava/lang/String;
 Landroid/provider/ContactsContract$PhotoFilesColumns;->WIDTH:Ljava/lang/String;
@@ -59831,7 +55693,6 @@
 Landroid/provider/ContactsContract$RawContacts$Data;-><init>()V
 Landroid/provider/ContactsContract$RawContacts$DisplayPhoto;-><init>()V
 Landroid/provider/ContactsContract$RawContacts$Entity;-><init>()V
-Landroid/provider/ContactsContract$RawContacts$EntityIteratorImpl;
 Landroid/provider/ContactsContract$RawContacts$EntityIteratorImpl;-><init>(Landroid/database/Cursor;)V
 Landroid/provider/ContactsContract$RawContacts$EntityIteratorImpl;->DATA_KEYS:[Ljava/lang/String;
 Landroid/provider/ContactsContract$RawContacts$EntityIteratorImpl;->getEntityAndIncrementCursor(Landroid/database/Cursor;)Landroid/content/Entity;
@@ -59847,9 +55708,7 @@
 Landroid/provider/ContactsContract$StreamItems$StreamItemPhotos;-><init>()V
 Landroid/provider/ContactsContract$StreamItems;-><init>()V
 Landroid/provider/ContactsContract$SyncState;-><init>()V
-Landroid/provider/ContactsContract$SyncStateColumns;
 Landroid/provider/ContactsContract;->HIDDEN_COLUMN_PREFIX:Ljava/lang/String;
-Landroid/provider/ContactsInternal;
 Landroid/provider/ContactsInternal;-><init>()V
 Landroid/provider/ContactsInternal;->CONTACTS_URI_LOOKUP:I
 Landroid/provider/ContactsInternal;->CONTACTS_URI_LOOKUP_ID:I
@@ -59938,14 +55797,12 @@
 Landroid/provider/DocumentsProvider;->queryChildDocumentsForManage(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
 Landroid/provider/DocumentsProvider;->registerAuthority(Ljava/lang/String;)V
 Landroid/provider/DocumentsProvider;->TAG:Ljava/lang/String;
-Landroid/provider/Downloads$Impl$RequestHeaders;
 Landroid/provider/Downloads$Impl$RequestHeaders;-><init>()V
 Landroid/provider/Downloads$Impl$RequestHeaders;->COLUMN_DOWNLOAD_ID:Ljava/lang/String;
 Landroid/provider/Downloads$Impl$RequestHeaders;->COLUMN_HEADER:Ljava/lang/String;
 Landroid/provider/Downloads$Impl$RequestHeaders;->COLUMN_VALUE:Ljava/lang/String;
 Landroid/provider/Downloads$Impl$RequestHeaders;->HEADERS_DB_TABLE:Ljava/lang/String;
 Landroid/provider/Downloads$Impl$RequestHeaders;->URI_SEGMENT:Ljava/lang/String;
-Landroid/provider/Downloads$Impl;
 Landroid/provider/Downloads$Impl;-><init>()V
 Landroid/provider/Downloads$Impl;->ACTION_DOWNLOAD_COMPLETED:Ljava/lang/String;
 Landroid/provider/Downloads$Impl;->ACTION_NOTIFICATION_CLICKED:Ljava/lang/String;
@@ -60019,7 +55876,6 @@
 Landroid/provider/Downloads$Impl;->VISIBILITY_VISIBLE:I
 Landroid/provider/Downloads$Impl;->VISIBILITY_VISIBLE_NOTIFY_COMPLETED:I
 Landroid/provider/Downloads$Impl;->_DATA:Ljava/lang/String;
-Landroid/provider/Downloads;
 Landroid/provider/Downloads;-><init>()V
 Landroid/provider/Downloads;->QUERY_WHERE_CLAUSE:Ljava/lang/String;
 Landroid/provider/Downloads;->removeAllDownloadsByPackage(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V
@@ -60030,7 +55886,6 @@
 Landroid/provider/FontRequest;->mProviderPackage:Ljava/lang/String;
 Landroid/provider/FontRequest;->mQuery:Ljava/lang/String;
 Landroid/provider/FontsContract$Columns;-><init>()V
-Landroid/provider/FontsContract$FontFamilyResult$FontResultStatus;
 Landroid/provider/FontsContract$FontFamilyResult;-><init>(I[Landroid/provider/FontsContract$FontInfo;)V
 Landroid/provider/FontsContract$FontFamilyResult;->mFonts:[Landroid/provider/FontsContract$FontInfo;
 Landroid/provider/FontsContract$FontFamilyResult;->mStatusCode:I
@@ -60041,7 +55896,6 @@
 Landroid/provider/FontsContract$FontInfo;->mTtcIndex:I
 Landroid/provider/FontsContract$FontInfo;->mUri:Landroid/net/Uri;
 Landroid/provider/FontsContract$FontInfo;->mWeight:I
-Landroid/provider/FontsContract$FontRequestCallback$FontRequestFailReason;
 Landroid/provider/FontsContract;-><init>()V
 Landroid/provider/FontsContract;->convertToByteArrayList([Landroid/content/pm/Signature;)Ljava/util/List;
 Landroid/provider/FontsContract;->equalsByteArrayList(Ljava/util/List;Ljava/util/List;)Z
@@ -60070,7 +55924,6 @@
 Landroid/provider/MediaStore$Audio$Radio;-><init>()V
 Landroid/provider/MediaStore$Files;->getDirectoryUri(Ljava/lang/String;)Landroid/net/Uri;
 Landroid/provider/MediaStore$Images$Media;->StoreThumbnail(Landroid/content/ContentResolver;Landroid/graphics/Bitmap;JFFI)Landroid/graphics/Bitmap;
-Landroid/provider/MediaStore$InternalThumbnails;
 Landroid/provider/MediaStore$InternalThumbnails;-><init>()V
 Landroid/provider/MediaStore$InternalThumbnails;->cancelThumbnailRequest(Landroid/content/ContentResolver;JLandroid/net/Uri;J)V
 Landroid/provider/MediaStore$InternalThumbnails;->DEFAULT_GROUP_ID:I
@@ -60090,7 +55943,6 @@
 Landroid/provider/MediaStore;->RETRANSLATE_CALL:Ljava/lang/String;
 Landroid/provider/MediaStore;->TAG:Ljava/lang/String;
 Landroid/provider/MediaStore;->UNHIDE_CALL:Ljava/lang/String;
-Landroid/provider/MetadataReader;
 Landroid/provider/MetadataReader;-><init>()V
 Landroid/provider/MetadataReader;->DEFAULT_EXIF_TAGS:[Ljava/lang/String;
 Landroid/provider/MetadataReader;->getExifData(Ljava/io/InputStream;[Ljava/lang/String;)Landroid/os/Bundle;
@@ -60102,7 +55954,6 @@
 Landroid/provider/MetadataReader;->TYPE_INT:I
 Landroid/provider/MetadataReader;->TYPE_MAPPING:Ljava/util/Map;
 Landroid/provider/MetadataReader;->TYPE_STRING:I
-Landroid/provider/OneTimeUseBuilder;
 Landroid/provider/OneTimeUseBuilder;-><init>()V
 Landroid/provider/OneTimeUseBuilder;->build()Ljava/lang/Object;
 Landroid/provider/OneTimeUseBuilder;->checkNotUsed()V
@@ -60113,7 +55964,6 @@
 Landroid/provider/SearchIndexablesContract$RawData;-><init>()V
 Landroid/provider/SearchIndexablesContract$RawData;->PAYLOAD:Ljava/lang/String;
 Landroid/provider/SearchIndexablesContract$RawData;->PAYLOAD_TYPE:Ljava/lang/String;
-Landroid/provider/SearchIndexablesContract$SiteMapColumns;
 Landroid/provider/SearchIndexablesContract$SiteMapColumns;-><init>()V
 Landroid/provider/SearchIndexablesContract$SiteMapColumns;->CHILD_CLASS:Ljava/lang/String;
 Landroid/provider/SearchIndexablesContract$SiteMapColumns;->CHILD_TITLE:Ljava/lang/String;
@@ -60134,7 +55984,6 @@
 Landroid/provider/SearchIndexablesProvider;->mMatcher:Landroid/content/UriMatcher;
 Landroid/provider/SearchIndexablesProvider;->querySiteMapPairs()Landroid/database/Cursor;
 Landroid/provider/SearchIndexablesProvider;->TAG:Ljava/lang/String;
-Landroid/provider/SearchRecentSuggestions$SuggestionColumns;
 Landroid/provider/SearchRecentSuggestions$SuggestionColumns;-><init>()V
 Landroid/provider/SearchRecentSuggestions$SuggestionColumns;->DATE:Ljava/lang/String;
 Landroid/provider/SearchRecentSuggestions$SuggestionColumns;->DISPLAY1:Ljava/lang/String;
@@ -60149,7 +55998,6 @@
 Landroid/provider/SearchRecentSuggestions;->saveRecentQueryBlocking(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/provider/SearchRecentSuggestions;->sWritesInProgress:Ljava/util/concurrent/Semaphore;
 Landroid/provider/SearchRecentSuggestions;->waitForSave()V
-Landroid/provider/Settings$Bookmarks;
 Landroid/provider/Settings$Bookmarks;-><init>()V
 Landroid/provider/Settings$Bookmarks;->FOLDER:Ljava/lang/String;
 Landroid/provider/Settings$Bookmarks;->getIntentForShortcut(Landroid/content/ContentResolver;C)Landroid/content/Intent;
@@ -60164,13 +56012,11 @@
 Landroid/provider/Settings$Bookmarks;->sShortcutSelection:Ljava/lang/String;
 Landroid/provider/Settings$Bookmarks;->TAG:Ljava/lang/String;
 Landroid/provider/Settings$Bookmarks;->TITLE:Ljava/lang/String;
-Landroid/provider/Settings$ContentProviderHolder;
 Landroid/provider/Settings$ContentProviderHolder;-><init>(Landroid/net/Uri;)V
 Landroid/provider/Settings$ContentProviderHolder;->clearProviderForTest()V
 Landroid/provider/Settings$ContentProviderHolder;->getProvider(Landroid/content/ContentResolver;)Landroid/content/IContentProvider;
 Landroid/provider/Settings$ContentProviderHolder;->mLock:Ljava/lang/Object;
 Landroid/provider/Settings$ContentProviderHolder;->mUri:Landroid/net/Uri;
-Landroid/provider/Settings$GenerationTracker;
 Landroid/provider/Settings$GenerationTracker;-><init>(Landroid/util/MemoryIntArray;IILjava/lang/Runnable;)V
 Landroid/provider/Settings$GenerationTracker;->destroy()V
 Landroid/provider/Settings$GenerationTracker;->getCurrentGeneration()I
@@ -60603,7 +56449,6 @@
 Landroid/provider/Settings$Global;->ZEN_SETTINGS_SUGGESTION_VIEWED:Ljava/lang/String;
 Landroid/provider/Settings$Global;->ZEN_SETTINGS_UPDATED:Ljava/lang/String;
 Landroid/provider/Settings$Global;->ZRAM_ENABLED:Ljava/lang/String;
-Landroid/provider/Settings$NameValueCache;
 Landroid/provider/Settings$NameValueCache;-><init>(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Landroid/provider/Settings$ContentProviderHolder;)V
 Landroid/provider/Settings$NameValueCache;->clearGenerationTrackerForTest()V
 Landroid/provider/Settings$NameValueCache;->DEBUG:Z
@@ -60615,7 +56460,6 @@
 Landroid/provider/Settings$NameValueCache;->NAME_EQ_PLACEHOLDER:Ljava/lang/String;
 Landroid/provider/Settings$NameValueCache;->putStringForUser(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZI)Z
 Landroid/provider/Settings$NameValueCache;->SELECT_VALUE_PROJECTION:[Ljava/lang/String;
-Landroid/provider/Settings$ResetMode;
 Landroid/provider/Settings$Secure;->ACCESSIBILITY_AUTOCLICK_DELAY:Ljava/lang/String;
 Landroid/provider/Settings$Secure;->ACCESSIBILITY_AUTOCLICK_DELAY_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
 Landroid/provider/Settings$Secure;->ACCESSIBILITY_AUTOCLICK_ENABLED_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
@@ -61038,7 +56882,6 @@
 Landroid/provider/Settings$System;->WIFI_USE_STATIC_IP_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
 Landroid/provider/Settings$System;->WINDOW_ORIENTATION_LISTENER_LOG:Ljava/lang/String;
 Landroid/provider/Settings$System;->WINDOW_ORIENTATION_LISTENER_LOG_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
-Landroid/provider/Settings$UserSetupPersonalization;
 Landroid/provider/Settings;->ACTION_ALL_APPS_NOTIFICATION_SETTINGS:Ljava/lang/String;
 Landroid/provider/Settings;->ACTION_APPLICATION_DETAILS_SETTINGS_OPEN_BY_DEFAULT_PAGE:Ljava/lang/String;
 Landroid/provider/Settings;->ACTION_APP_NOTIFICATION_REDACTION:Ljava/lang/String;
@@ -61110,25 +56953,21 @@
 Landroid/provider/Settings;->ZEN_MODE_BLOCKED_EFFECTS_SETTINGS:Ljava/lang/String;
 Landroid/provider/Settings;->ZEN_MODE_ONBOARDING:Ljava/lang/String;
 Landroid/provider/SettingsSlicesContract;-><init>()V
-Landroid/provider/SettingsStringUtil$ColonDelimitedSet$OfStrings;
 Landroid/provider/SettingsStringUtil$ColonDelimitedSet$OfStrings;-><init>(Ljava/lang/String;)V
 Landroid/provider/SettingsStringUtil$ColonDelimitedSet$OfStrings;->add(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 Landroid/provider/SettingsStringUtil$ColonDelimitedSet$OfStrings;->addAll(Ljava/lang/String;Ljava/util/Collection;)Ljava/lang/String;
 Landroid/provider/SettingsStringUtil$ColonDelimitedSet$OfStrings;->contains(Ljava/lang/String;Ljava/lang/String;)Z
 Landroid/provider/SettingsStringUtil$ColonDelimitedSet$OfStrings;->itemFromString(Ljava/lang/String;)Ljava/lang/String;
 Landroid/provider/SettingsStringUtil$ColonDelimitedSet$OfStrings;->remove(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Landroid/provider/SettingsStringUtil$ColonDelimitedSet;
 Landroid/provider/SettingsStringUtil$ColonDelimitedSet;-><init>(Ljava/lang/String;)V
 Landroid/provider/SettingsStringUtil$ColonDelimitedSet;->itemFromString(Ljava/lang/String;)Ljava/lang/Object;
 Landroid/provider/SettingsStringUtil$ColonDelimitedSet;->itemToString(Ljava/lang/Object;)Ljava/lang/String;
-Landroid/provider/SettingsStringUtil$ComponentNameSet;
 Landroid/provider/SettingsStringUtil$ComponentNameSet;-><init>(Ljava/lang/String;)V
 Landroid/provider/SettingsStringUtil$ComponentNameSet;->add(Ljava/lang/String;Landroid/content/ComponentName;)Ljava/lang/String;
 Landroid/provider/SettingsStringUtil$ComponentNameSet;->contains(Ljava/lang/String;Landroid/content/ComponentName;)Z
 Landroid/provider/SettingsStringUtil$ComponentNameSet;->itemFromString(Ljava/lang/String;)Landroid/content/ComponentName;
 Landroid/provider/SettingsStringUtil$ComponentNameSet;->itemToString(Landroid/content/ComponentName;)Ljava/lang/String;
 Landroid/provider/SettingsStringUtil$ComponentNameSet;->remove(Ljava/lang/String;Landroid/content/ComponentName;)Ljava/lang/String;
-Landroid/provider/SettingsStringUtil$SettingStringHelper;
 Landroid/provider/SettingsStringUtil$SettingStringHelper;-><init>(Landroid/content/ContentResolver;Ljava/lang/String;I)V
 Landroid/provider/SettingsStringUtil$SettingStringHelper;->mContentResolver:Landroid/content/ContentResolver;
 Landroid/provider/SettingsStringUtil$SettingStringHelper;->modify(Ljava/util/function/Function;)Z
@@ -61136,34 +56975,26 @@
 Landroid/provider/SettingsStringUtil$SettingStringHelper;->mUserId:I
 Landroid/provider/SettingsStringUtil$SettingStringHelper;->read()Ljava/lang/String;
 Landroid/provider/SettingsStringUtil$SettingStringHelper;->write(Ljava/lang/String;)Z
-Landroid/provider/SettingsStringUtil;
 Landroid/provider/SettingsStringUtil;-><init>()V
 Landroid/provider/SettingsStringUtil;->DELIMITER:Ljava/lang/String;
-Landroid/provider/SettingsValidators$ComponentNameListValidator;
 Landroid/provider/SettingsValidators$ComponentNameListValidator;-><init>(Ljava/lang/String;)V
 Landroid/provider/SettingsValidators$ComponentNameListValidator;->mSeparator:Ljava/lang/String;
 Landroid/provider/SettingsValidators$ComponentNameListValidator;->validate(Ljava/lang/String;)Z
-Landroid/provider/SettingsValidators$DiscreteValueValidator;
 Landroid/provider/SettingsValidators$DiscreteValueValidator;-><init>([Ljava/lang/String;)V
 Landroid/provider/SettingsValidators$DiscreteValueValidator;->mValues:[Ljava/lang/String;
 Landroid/provider/SettingsValidators$DiscreteValueValidator;->validate(Ljava/lang/String;)Z
-Landroid/provider/SettingsValidators$InclusiveFloatRangeValidator;
 Landroid/provider/SettingsValidators$InclusiveFloatRangeValidator;-><init>(FF)V
 Landroid/provider/SettingsValidators$InclusiveFloatRangeValidator;->mMax:F
 Landroid/provider/SettingsValidators$InclusiveFloatRangeValidator;->mMin:F
 Landroid/provider/SettingsValidators$InclusiveFloatRangeValidator;->validate(Ljava/lang/String;)Z
-Landroid/provider/SettingsValidators$InclusiveIntegerRangeValidator;
 Landroid/provider/SettingsValidators$InclusiveIntegerRangeValidator;-><init>(II)V
 Landroid/provider/SettingsValidators$InclusiveIntegerRangeValidator;->mMax:I
 Landroid/provider/SettingsValidators$InclusiveIntegerRangeValidator;->mMin:I
 Landroid/provider/SettingsValidators$InclusiveIntegerRangeValidator;->validate(Ljava/lang/String;)Z
-Landroid/provider/SettingsValidators$PackageNameListValidator;
 Landroid/provider/SettingsValidators$PackageNameListValidator;-><init>(Ljava/lang/String;)V
 Landroid/provider/SettingsValidators$PackageNameListValidator;->mSeparator:Ljava/lang/String;
 Landroid/provider/SettingsValidators$PackageNameListValidator;->validate(Ljava/lang/String;)Z
-Landroid/provider/SettingsValidators$Validator;
 Landroid/provider/SettingsValidators$Validator;->validate(Ljava/lang/String;)Z
-Landroid/provider/SettingsValidators;
 Landroid/provider/SettingsValidators;-><init>()V
 Landroid/provider/SettingsValidators;->ANY_INTEGER_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
 Landroid/provider/SettingsValidators;->ANY_STRING_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
@@ -61175,7 +57006,6 @@
 Landroid/provider/SettingsValidators;->NULLABLE_COMPONENT_NAME_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
 Landroid/provider/SettingsValidators;->PACKAGE_NAME_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
 Landroid/provider/SettingsValidators;->URI_VALIDATOR:Landroid/provider/SettingsValidators$Validator;
-Landroid/provider/SyncConstValue;
 Landroid/provider/SyncConstValue;->NON_SYNCABLE_ACCOUNT:Ljava/lang/String;
 Landroid/provider/SyncConstValue;->NON_SYNCABLE_ACCOUNT_TYPE:Ljava/lang/String;
 Landroid/provider/SyncConstValue;->_SYNC_ACCOUNT:Ljava/lang/String;
@@ -61226,7 +57056,6 @@
 Landroid/provider/Telephony$BaseMmsColumns;->STORE_STATUS:Ljava/lang/String;
 Landroid/provider/Telephony$BaseMmsColumns;->STORE_STATUS_TEXT:Ljava/lang/String;
 Landroid/provider/Telephony$BaseMmsColumns;->TOTALS:Ljava/lang/String;
-Landroid/provider/Telephony$CarrierColumns;
 Landroid/provider/Telephony$CarrierColumns;->CONTENT_URI:Landroid/net/Uri;
 Landroid/provider/Telephony$CarrierColumns;->EXPIRATION_TIME:Ljava/lang/String;
 Landroid/provider/Telephony$CarrierColumns;->KEY_IDENTIFIER:Ljava/lang/String;
@@ -61237,7 +57066,6 @@
 Landroid/provider/Telephony$CarrierColumns;->MVNO_MATCH_DATA:Ljava/lang/String;
 Landroid/provider/Telephony$CarrierColumns;->MVNO_TYPE:Ljava/lang/String;
 Landroid/provider/Telephony$CarrierColumns;->PUBLIC_KEY:Ljava/lang/String;
-Landroid/provider/Telephony$CarrierId$All;
 Landroid/provider/Telephony$CarrierId$All;-><init>()V
 Landroid/provider/Telephony$CarrierId$All;->APN:Ljava/lang/String;
 Landroid/provider/Telephony$CarrierId$All;->CONTENT_URI:Landroid/net/Uri;
@@ -61277,7 +57105,6 @@
 Landroid/provider/Telephony$Carriers;->USER_EDITED:I
 Landroid/provider/Telephony$Carriers;->USER_VISIBLE:Ljava/lang/String;
 Landroid/provider/Telephony$Carriers;->WAIT_TIME:Ljava/lang/String;
-Landroid/provider/Telephony$CellBroadcasts;
 Landroid/provider/Telephony$CellBroadcasts;-><init>()V
 Landroid/provider/Telephony$CellBroadcasts;->CID:Ljava/lang/String;
 Landroid/provider/Telephony$CellBroadcasts;->CMAS_CATEGORY:Ljava/lang/String;
@@ -61315,7 +57142,6 @@
 Landroid/provider/Telephony$Mms;->query(Landroid/content/ContentResolver;[Ljava/lang/String;)Landroid/database/Cursor;
 Landroid/provider/Telephony$Mms;->query(Landroid/content/ContentResolver;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
 Landroid/provider/Telephony$MmsSms$PendingMessages;-><init>()V
-Landroid/provider/Telephony$MmsSms$WordsTable;
 Landroid/provider/Telephony$MmsSms$WordsTable;-><init>()V
 Landroid/provider/Telephony$MmsSms$WordsTable;->ID:Ljava/lang/String;
 Landroid/provider/Telephony$MmsSms$WordsTable;->INDEXED_TEXT:Ljava/lang/String;
@@ -61395,7 +57221,6 @@
 Landroid/R$style;->ButtonBar:I
 Landroid/R$style;->TextAppearance_SearchResult_Subtitle:I
 Landroid/R$style;->TextAppearance_SearchResult_Title:I
-Landroid/R$styleable;
 Landroid/R$styleable;-><init>()V
 Landroid/R$styleable;->AbsListView:[I
 Landroid/R$styleable;->AbsListView_cacheColorHint:I
@@ -63455,7 +59280,6 @@
 Landroid/R$styleable;->Window_windowTransitionBackgroundFadeDuration:I
 Landroid/R$styleable;->Window_windowTranslucentNavigation:I
 Landroid/R$styleable;->Window_windowTranslucentStatus:I
-Landroid/renderscript/Allocation$MipmapControl;-><init>(I)V
 Landroid/renderscript/Allocation$MipmapControl;->mID:I
 Landroid/renderscript/Allocation;-><init>(JLandroid/renderscript/RenderScript;Landroid/renderscript/Type;I)V
 Landroid/renderscript/Allocation;-><init>(JLandroid/renderscript/RenderScript;Landroid/renderscript/Type;ZILandroid/renderscript/Allocation$MipmapControl;)V
@@ -63715,10 +59539,7 @@
 Landroid/renderscript/Element$Builder;->mElements:[Landroid/renderscript/Element;
 Landroid/renderscript/Element$Builder;->mRS:Landroid/renderscript/RenderScript;
 Landroid/renderscript/Element$Builder;->mSkipPadding:I
-Landroid/renderscript/Element$DataKind;-><init>(I)V
 Landroid/renderscript/Element$DataKind;->mID:I
-Landroid/renderscript/Element$DataType;-><init>(I)V
-Landroid/renderscript/Element$DataType;-><init>(II)V
 Landroid/renderscript/Element$DataType;->mID:I
 Landroid/renderscript/Element$DataType;->mSize:I
 Landroid/renderscript/Element;-><init>(JLandroid/renderscript/RenderScript;)V
@@ -63745,14 +59566,11 @@
 Landroid/renderscript/FieldPacker;->mLen:I
 Landroid/renderscript/FieldPacker;->mPos:I
 Landroid/renderscript/FieldPacker;->resize(I)Z
-Landroid/renderscript/FileA3D$EntryType;
-Landroid/renderscript/FileA3D$EntryType;-><init>(I)V
 Landroid/renderscript/FileA3D$EntryType;->mID:I
 Landroid/renderscript/FileA3D$EntryType;->toEntryType(I)Landroid/renderscript/FileA3D$EntryType;
 Landroid/renderscript/FileA3D$EntryType;->UNKNOWN:Landroid/renderscript/FileA3D$EntryType;
 Landroid/renderscript/FileA3D$EntryType;->valueOf(Ljava/lang/String;)Landroid/renderscript/FileA3D$EntryType;
 Landroid/renderscript/FileA3D$EntryType;->values()[Landroid/renderscript/FileA3D$EntryType;
-Landroid/renderscript/FileA3D$IndexEntry;
 Landroid/renderscript/FileA3D$IndexEntry;-><init>(Landroid/renderscript/RenderScript;IJLjava/lang/String;Landroid/renderscript/FileA3D$EntryType;)V
 Landroid/renderscript/FileA3D$IndexEntry;->getMesh()Landroid/renderscript/Mesh;
 Landroid/renderscript/FileA3D$IndexEntry;->getName()Ljava/lang/String;
@@ -63763,7 +59581,6 @@
 Landroid/renderscript/FileA3D$IndexEntry;->mLoadedObj:Landroid/renderscript/BaseObj;
 Landroid/renderscript/FileA3D$IndexEntry;->mName:Ljava/lang/String;
 Landroid/renderscript/FileA3D$IndexEntry;->mRS:Landroid/renderscript/RenderScript;
-Landroid/renderscript/FileA3D;
 Landroid/renderscript/FileA3D;-><init>(JLandroid/renderscript/RenderScript;Ljava/io/InputStream;)V
 Landroid/renderscript/FileA3D;->createFromAsset(Landroid/renderscript/RenderScript;Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/renderscript/FileA3D;
 Landroid/renderscript/FileA3D;->createFromFile(Landroid/renderscript/RenderScript;Ljava/io/File;)Landroid/renderscript/FileA3D;
@@ -63859,21 +59676,17 @@
 Landroid/renderscript/Float4;->sub(Landroid/renderscript/Float4;)V
 Landroid/renderscript/Float4;->sub(Landroid/renderscript/Float4;F)Landroid/renderscript/Float4;
 Landroid/renderscript/Float4;->sub(Landroid/renderscript/Float4;Landroid/renderscript/Float4;)Landroid/renderscript/Float4;
-Landroid/renderscript/Font$FontFamily;
 Landroid/renderscript/Font$FontFamily;-><init>()V
 Landroid/renderscript/Font$FontFamily;->mBoldFileName:Ljava/lang/String;
 Landroid/renderscript/Font$FontFamily;->mBoldItalicFileName:Ljava/lang/String;
 Landroid/renderscript/Font$FontFamily;->mItalicFileName:Ljava/lang/String;
 Landroid/renderscript/Font$FontFamily;->mNames:[Ljava/lang/String;
 Landroid/renderscript/Font$FontFamily;->mNormalFileName:Ljava/lang/String;
-Landroid/renderscript/Font$Style;
-Landroid/renderscript/Font$Style;-><init>()V
 Landroid/renderscript/Font$Style;->BOLD:Landroid/renderscript/Font$Style;
 Landroid/renderscript/Font$Style;->BOLD_ITALIC:Landroid/renderscript/Font$Style;
 Landroid/renderscript/Font$Style;->NORMAL:Landroid/renderscript/Font$Style;
 Landroid/renderscript/Font$Style;->valueOf(Ljava/lang/String;)Landroid/renderscript/Font$Style;
 Landroid/renderscript/Font$Style;->values()[Landroid/renderscript/Font$Style;
-Landroid/renderscript/Font;
 Landroid/renderscript/Font;-><init>(JLandroid/renderscript/RenderScript;)V
 Landroid/renderscript/Font;->addFamilyToMap(Landroid/renderscript/Font$FontFamily;)V
 Landroid/renderscript/Font;->createFromAsset(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;Ljava/lang/String;F)Landroid/renderscript/Font;
@@ -64094,25 +59907,19 @@
 Landroid/renderscript/Matrix3f;->mMat:[F
 Landroid/renderscript/Matrix4f;->computeCofactor(II)F
 Landroid/renderscript/Matrix4f;->load(Landroid/renderscript/Matrix3f;)V
-Landroid/renderscript/Mesh$AllocationBuilder$Entry;
-Landroid/renderscript/Mesh$AllocationBuilder$Entry;-><init>()V
 Landroid/renderscript/Mesh$AllocationBuilder$Entry;->a:Landroid/renderscript/Allocation;
 Landroid/renderscript/Mesh$AllocationBuilder$Entry;->prim:Landroid/renderscript/Mesh$Primitive;
-Landroid/renderscript/Mesh$AllocationBuilder;
 Landroid/renderscript/Mesh$AllocationBuilder;->getCurrentIndexSetIndex()I
 Landroid/renderscript/Mesh$AllocationBuilder;->getCurrentVertexTypeIndex()I
 Landroid/renderscript/Mesh$AllocationBuilder;->mIndexTypes:Ljava/util/Vector;
 Landroid/renderscript/Mesh$AllocationBuilder;->mRS:Landroid/renderscript/RenderScript;
 Landroid/renderscript/Mesh$AllocationBuilder;->mVertexTypeCount:I
 Landroid/renderscript/Mesh$AllocationBuilder;->mVertexTypes:[Landroid/renderscript/Mesh$AllocationBuilder$Entry;
-Landroid/renderscript/Mesh$Builder$Entry;
-Landroid/renderscript/Mesh$Builder$Entry;-><init>()V
 Landroid/renderscript/Mesh$Builder$Entry;->e:Landroid/renderscript/Element;
 Landroid/renderscript/Mesh$Builder$Entry;->prim:Landroid/renderscript/Mesh$Primitive;
 Landroid/renderscript/Mesh$Builder$Entry;->size:I
 Landroid/renderscript/Mesh$Builder$Entry;->t:Landroid/renderscript/Type;
 Landroid/renderscript/Mesh$Builder$Entry;->usage:I
-Landroid/renderscript/Mesh$Builder;
 Landroid/renderscript/Mesh$Builder;-><init>(Landroid/renderscript/RenderScript;I)V
 Landroid/renderscript/Mesh$Builder;->addIndexSetType(Landroid/renderscript/Element;ILandroid/renderscript/Mesh$Primitive;)Landroid/renderscript/Mesh$Builder;
 Landroid/renderscript/Mesh$Builder;->addIndexSetType(Landroid/renderscript/Mesh$Primitive;)Landroid/renderscript/Mesh$Builder;
@@ -64128,8 +59935,6 @@
 Landroid/renderscript/Mesh$Builder;->mVertexTypeCount:I
 Landroid/renderscript/Mesh$Builder;->mVertexTypes:[Landroid/renderscript/Mesh$Builder$Entry;
 Landroid/renderscript/Mesh$Builder;->newType(Landroid/renderscript/Element;I)Landroid/renderscript/Type;
-Landroid/renderscript/Mesh$Primitive;
-Landroid/renderscript/Mesh$Primitive;-><init>(I)V
 Landroid/renderscript/Mesh$Primitive;->LINE:Landroid/renderscript/Mesh$Primitive;
 Landroid/renderscript/Mesh$Primitive;->LINE_STRIP:Landroid/renderscript/Mesh$Primitive;
 Landroid/renderscript/Mesh$Primitive;->mID:I
@@ -64137,7 +59942,6 @@
 Landroid/renderscript/Mesh$Primitive;->TRIANGLE_STRIP:Landroid/renderscript/Mesh$Primitive;
 Landroid/renderscript/Mesh$Primitive;->valueOf(Ljava/lang/String;)Landroid/renderscript/Mesh$Primitive;
 Landroid/renderscript/Mesh$Primitive;->values()[Landroid/renderscript/Mesh$Primitive;
-Landroid/renderscript/Mesh$TriangleMeshBuilder;
 Landroid/renderscript/Mesh$TriangleMeshBuilder;->addVertex(FFF)Landroid/renderscript/Mesh$TriangleMeshBuilder;
 Landroid/renderscript/Mesh$TriangleMeshBuilder;->COLOR:I
 Landroid/renderscript/Mesh$TriangleMeshBuilder;->latch()V
@@ -64165,7 +59969,6 @@
 Landroid/renderscript/Mesh$TriangleMeshBuilder;->setNormal(FFF)Landroid/renderscript/Mesh$TriangleMeshBuilder;
 Landroid/renderscript/Mesh$TriangleMeshBuilder;->setTexture(FF)Landroid/renderscript/Mesh$TriangleMeshBuilder;
 Landroid/renderscript/Mesh$TriangleMeshBuilder;->TEXTURE_0:I
-Landroid/renderscript/Mesh;
 Landroid/renderscript/Mesh;-><init>(JLandroid/renderscript/RenderScript;)V
 Landroid/renderscript/Mesh;->getIndexSetAllocation(I)Landroid/renderscript/Allocation;
 Landroid/renderscript/Mesh;->getPrimitive(I)Landroid/renderscript/Mesh$Primitive;
@@ -64175,7 +59978,6 @@
 Landroid/renderscript/Mesh;->mPrimitives:[Landroid/renderscript/Mesh$Primitive;
 Landroid/renderscript/Mesh;->mVertexBuffers:[Landroid/renderscript/Allocation;
 Landroid/renderscript/Mesh;->updateFromNative()V
-Landroid/renderscript/Program$BaseProgramBuilder;
 Landroid/renderscript/Program$BaseProgramBuilder;->addConstant(Landroid/renderscript/Type;)Landroid/renderscript/Program$BaseProgramBuilder;
 Landroid/renderscript/Program$BaseProgramBuilder;->addTexture(Landroid/renderscript/Program$TextureType;)Landroid/renderscript/Program$BaseProgramBuilder;
 Landroid/renderscript/Program$BaseProgramBuilder;->addTexture(Landroid/renderscript/Program$TextureType;Ljava/lang/String;)Landroid/renderscript/Program$BaseProgramBuilder;
@@ -64187,8 +59989,6 @@
 Landroid/renderscript/Program$BaseProgramBuilder;->mTextureTypes:[Landroid/renderscript/Program$TextureType;
 Landroid/renderscript/Program$BaseProgramBuilder;->setShader(Landroid/content/res/Resources;I)Landroid/renderscript/Program$BaseProgramBuilder;
 Landroid/renderscript/Program$BaseProgramBuilder;->setShader(Ljava/lang/String;)Landroid/renderscript/Program$BaseProgramBuilder;
-Landroid/renderscript/Program$ProgramParam;
-Landroid/renderscript/Program$ProgramParam;-><init>(I)V
 Landroid/renderscript/Program$ProgramParam;->CONSTANT:Landroid/renderscript/Program$ProgramParam;
 Landroid/renderscript/Program$ProgramParam;->INPUT:Landroid/renderscript/Program$ProgramParam;
 Landroid/renderscript/Program$ProgramParam;->mID:I
@@ -64196,13 +59996,10 @@
 Landroid/renderscript/Program$ProgramParam;->TEXTURE_TYPE:Landroid/renderscript/Program$ProgramParam;
 Landroid/renderscript/Program$ProgramParam;->valueOf(Ljava/lang/String;)Landroid/renderscript/Program$ProgramParam;
 Landroid/renderscript/Program$ProgramParam;->values()[Landroid/renderscript/Program$ProgramParam;
-Landroid/renderscript/Program$TextureType;
-Landroid/renderscript/Program$TextureType;-><init>(I)V
 Landroid/renderscript/Program$TextureType;->mID:I
 Landroid/renderscript/Program$TextureType;->TEXTURE_CUBE:Landroid/renderscript/Program$TextureType;
 Landroid/renderscript/Program$TextureType;->valueOf(Ljava/lang/String;)Landroid/renderscript/Program$TextureType;
 Landroid/renderscript/Program$TextureType;->values()[Landroid/renderscript/Program$TextureType;
-Landroid/renderscript/Program;
 Landroid/renderscript/Program;-><init>(JLandroid/renderscript/RenderScript;)V
 Landroid/renderscript/Program;->bindConstants(Landroid/renderscript/Allocation;I)V
 Landroid/renderscript/Program;->bindSampler(Landroid/renderscript/Sampler;I)V
@@ -64223,26 +60020,17 @@
 Landroid/renderscript/Program;->mTextureCount:I
 Landroid/renderscript/Program;->mTextureNames:[Ljava/lang/String;
 Landroid/renderscript/Program;->mTextures:[Landroid/renderscript/Program$TextureType;
-Landroid/renderscript/ProgramFragment$Builder;
-Landroid/renderscript/ProgramFragment;
 Landroid/renderscript/ProgramFragment;-><init>(JLandroid/renderscript/RenderScript;)V
-Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;
-Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;-><init>(I)V
 Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;->DECAL:Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;
 Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;->mID:I
 Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;->valueOf(Ljava/lang/String;)Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;
 Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;->values()[Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;
-Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;
-Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;-><init>(I)V
 Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;->LUMINANCE_ALPHA:Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;
 Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;->mID:I
 Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;->valueOf(Ljava/lang/String;)Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;
 Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;->values()[Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;
-Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Slot;
-Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Slot;-><init>(Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;)V
 Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Slot;->env:Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;
 Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Slot;->format:Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;
-Landroid/renderscript/ProgramFragmentFixedFunction$Builder;
 Landroid/renderscript/ProgramFragmentFixedFunction$Builder;->buildShaderString()V
 Landroid/renderscript/ProgramFragmentFixedFunction$Builder;->MAX_TEXTURE:I
 Landroid/renderscript/ProgramFragmentFixedFunction$Builder;->mNumTextures:I
@@ -64252,25 +60040,19 @@
 Landroid/renderscript/ProgramFragmentFixedFunction$Builder;->mSlots:[Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Slot;
 Landroid/renderscript/ProgramFragmentFixedFunction$Builder;->mVaryingColorEnable:Z
 Landroid/renderscript/ProgramFragmentFixedFunction$Builder;->setPointSpriteTexCoordinateReplacement(Z)Landroid/renderscript/ProgramFragmentFixedFunction$Builder;
-Landroid/renderscript/ProgramFragmentFixedFunction$InternalBuilder;
 Landroid/renderscript/ProgramFragmentFixedFunction$InternalBuilder;-><init>(Landroid/renderscript/RenderScript;)V
 Landroid/renderscript/ProgramFragmentFixedFunction$InternalBuilder;->create()Landroid/renderscript/ProgramFragmentFixedFunction;
-Landroid/renderscript/ProgramFragmentFixedFunction;
 Landroid/renderscript/ProgramFragmentFixedFunction;-><init>(JLandroid/renderscript/RenderScript;)V
-Landroid/renderscript/ProgramRaster$Builder;
 Landroid/renderscript/ProgramRaster$Builder;->mCullMode:Landroid/renderscript/ProgramRaster$CullMode;
 Landroid/renderscript/ProgramRaster$Builder;->mPointSprite:Z
 Landroid/renderscript/ProgramRaster$Builder;->mRS:Landroid/renderscript/RenderScript;
 Landroid/renderscript/ProgramRaster$Builder;->setCullMode(Landroid/renderscript/ProgramRaster$CullMode;)Landroid/renderscript/ProgramRaster$Builder;
-Landroid/renderscript/ProgramRaster$CullMode;
-Landroid/renderscript/ProgramRaster$CullMode;-><init>(I)V
 Landroid/renderscript/ProgramRaster$CullMode;->BACK:Landroid/renderscript/ProgramRaster$CullMode;
 Landroid/renderscript/ProgramRaster$CullMode;->FRONT:Landroid/renderscript/ProgramRaster$CullMode;
 Landroid/renderscript/ProgramRaster$CullMode;->mID:I
 Landroid/renderscript/ProgramRaster$CullMode;->NONE:Landroid/renderscript/ProgramRaster$CullMode;
 Landroid/renderscript/ProgramRaster$CullMode;->valueOf(Ljava/lang/String;)Landroid/renderscript/ProgramRaster$CullMode;
 Landroid/renderscript/ProgramRaster$CullMode;->values()[Landroid/renderscript/ProgramRaster$CullMode;
-Landroid/renderscript/ProgramRaster;
 Landroid/renderscript/ProgramRaster;-><init>(JLandroid/renderscript/RenderScript;)V
 Landroid/renderscript/ProgramRaster;->CULL_BACK(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramRaster;
 Landroid/renderscript/ProgramRaster;->CULL_FRONT(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramRaster;
@@ -64279,8 +60061,6 @@
 Landroid/renderscript/ProgramRaster;->isPointSpriteEnabled()Z
 Landroid/renderscript/ProgramRaster;->mCullMode:Landroid/renderscript/ProgramRaster$CullMode;
 Landroid/renderscript/ProgramRaster;->mPointSprite:Z
-Landroid/renderscript/ProgramStore$BlendDstFunc;
-Landroid/renderscript/ProgramStore$BlendDstFunc;-><init>(I)V
 Landroid/renderscript/ProgramStore$BlendDstFunc;->DST_ALPHA:Landroid/renderscript/ProgramStore$BlendDstFunc;
 Landroid/renderscript/ProgramStore$BlendDstFunc;->mID:I
 Landroid/renderscript/ProgramStore$BlendDstFunc;->ONE_MINUS_DST_ALPHA:Landroid/renderscript/ProgramStore$BlendDstFunc;
@@ -64289,8 +60069,6 @@
 Landroid/renderscript/ProgramStore$BlendDstFunc;->SRC_COLOR:Landroid/renderscript/ProgramStore$BlendDstFunc;
 Landroid/renderscript/ProgramStore$BlendDstFunc;->valueOf(Ljava/lang/String;)Landroid/renderscript/ProgramStore$BlendDstFunc;
 Landroid/renderscript/ProgramStore$BlendDstFunc;->values()[Landroid/renderscript/ProgramStore$BlendDstFunc;
-Landroid/renderscript/ProgramStore$BlendSrcFunc;
-Landroid/renderscript/ProgramStore$BlendSrcFunc;-><init>(I)V
 Landroid/renderscript/ProgramStore$BlendSrcFunc;->DST_ALPHA:Landroid/renderscript/ProgramStore$BlendSrcFunc;
 Landroid/renderscript/ProgramStore$BlendSrcFunc;->DST_COLOR:Landroid/renderscript/ProgramStore$BlendSrcFunc;
 Landroid/renderscript/ProgramStore$BlendSrcFunc;->mID:I
@@ -64301,7 +60079,6 @@
 Landroid/renderscript/ProgramStore$BlendSrcFunc;->valueOf(Ljava/lang/String;)Landroid/renderscript/ProgramStore$BlendSrcFunc;
 Landroid/renderscript/ProgramStore$BlendSrcFunc;->values()[Landroid/renderscript/ProgramStore$BlendSrcFunc;
 Landroid/renderscript/ProgramStore$BlendSrcFunc;->ZERO:Landroid/renderscript/ProgramStore$BlendSrcFunc;
-Landroid/renderscript/ProgramStore$Builder;
 Landroid/renderscript/ProgramStore$Builder;->mBlendDst:Landroid/renderscript/ProgramStore$BlendDstFunc;
 Landroid/renderscript/ProgramStore$Builder;->mBlendSrc:Landroid/renderscript/ProgramStore$BlendSrcFunc;
 Landroid/renderscript/ProgramStore$Builder;->mColorMaskA:Z
@@ -64313,8 +60090,6 @@
 Landroid/renderscript/ProgramStore$Builder;->mDither:Z
 Landroid/renderscript/ProgramStore$Builder;->mRS:Landroid/renderscript/RenderScript;
 Landroid/renderscript/ProgramStore$Builder;->setColorMaskEnabled(ZZZZ)Landroid/renderscript/ProgramStore$Builder;
-Landroid/renderscript/ProgramStore$DepthFunc;
-Landroid/renderscript/ProgramStore$DepthFunc;-><init>(I)V
 Landroid/renderscript/ProgramStore$DepthFunc;->EQUAL:Landroid/renderscript/ProgramStore$DepthFunc;
 Landroid/renderscript/ProgramStore$DepthFunc;->GREATER:Landroid/renderscript/ProgramStore$DepthFunc;
 Landroid/renderscript/ProgramStore$DepthFunc;->GREATER_OR_EQUAL:Landroid/renderscript/ProgramStore$DepthFunc;
@@ -64323,7 +60098,6 @@
 Landroid/renderscript/ProgramStore$DepthFunc;->NOT_EQUAL:Landroid/renderscript/ProgramStore$DepthFunc;
 Landroid/renderscript/ProgramStore$DepthFunc;->valueOf(Ljava/lang/String;)Landroid/renderscript/ProgramStore$DepthFunc;
 Landroid/renderscript/ProgramStore$DepthFunc;->values()[Landroid/renderscript/ProgramStore$DepthFunc;
-Landroid/renderscript/ProgramStore;
 Landroid/renderscript/ProgramStore;-><init>(JLandroid/renderscript/RenderScript;)V
 Landroid/renderscript/ProgramStore;->BLEND_ALPHA_DEPTH_TEST(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramStore;
 Landroid/renderscript/ProgramStore;->BLEND_NONE_DEPTH_NONE(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramStore;
@@ -64346,19 +60120,15 @@
 Landroid/renderscript/ProgramStore;->mDepthFunc:Landroid/renderscript/ProgramStore$DepthFunc;
 Landroid/renderscript/ProgramStore;->mDepthMask:Z
 Landroid/renderscript/ProgramStore;->mDither:Z
-Landroid/renderscript/ProgramVertex$Builder;
-Landroid/renderscript/ProgramVertex;
 Landroid/renderscript/ProgramVertex;-><init>(JLandroid/renderscript/RenderScript;)V
 Landroid/renderscript/ProgramVertex;->getInput(I)Landroid/renderscript/Element;
 Landroid/renderscript/ProgramVertex;->getInputCount()I
-Landroid/renderscript/ProgramVertexFixedFunction$Builder;
 Landroid/renderscript/ProgramVertexFixedFunction$Builder;->buildShaderString()V
 Landroid/renderscript/ProgramVertexFixedFunction$Builder;->getConstantInputType(Landroid/renderscript/RenderScript;)Landroid/renderscript/Type;
 Landroid/renderscript/ProgramVertexFixedFunction$Builder;->mRS:Landroid/renderscript/RenderScript;
 Landroid/renderscript/ProgramVertexFixedFunction$Builder;->mShader:Ljava/lang/String;
 Landroid/renderscript/ProgramVertexFixedFunction$Builder;->mTextureMatrixEnable:Z
 Landroid/renderscript/ProgramVertexFixedFunction$Builder;->setTextureMatrixEnable(Z)Landroid/renderscript/ProgramVertexFixedFunction$Builder;
-Landroid/renderscript/ProgramVertexFixedFunction$Constants;
 Landroid/renderscript/ProgramVertexFixedFunction$Constants;->addToBuffer(ILandroid/renderscript/Matrix4f;)V
 Landroid/renderscript/ProgramVertexFixedFunction$Constants;->destroy()V
 Landroid/renderscript/ProgramVertexFixedFunction$Constants;->getAllocation()Landroid/renderscript/Allocation;
@@ -64372,15 +60142,11 @@
 Landroid/renderscript/ProgramVertexFixedFunction$Constants;->setModelview(Landroid/renderscript/Matrix4f;)V
 Landroid/renderscript/ProgramVertexFixedFunction$Constants;->setTexture(Landroid/renderscript/Matrix4f;)V
 Landroid/renderscript/ProgramVertexFixedFunction$Constants;->TEXTURE_OFFSET:I
-Landroid/renderscript/ProgramVertexFixedFunction$InternalBuilder;
 Landroid/renderscript/ProgramVertexFixedFunction$InternalBuilder;-><init>(Landroid/renderscript/RenderScript;)V
 Landroid/renderscript/ProgramVertexFixedFunction$InternalBuilder;->addInput(Landroid/renderscript/Element;)Landroid/renderscript/ProgramVertexFixedFunction$InternalBuilder;
 Landroid/renderscript/ProgramVertexFixedFunction$InternalBuilder;->create()Landroid/renderscript/ProgramVertexFixedFunction;
-Landroid/renderscript/ProgramVertexFixedFunction;
 Landroid/renderscript/ProgramVertexFixedFunction;-><init>(JLandroid/renderscript/RenderScript;)V
-Landroid/renderscript/RenderScript$ContextType;-><init>(I)V
 Landroid/renderscript/RenderScript$ContextType;->mID:I
-Landroid/renderscript/RenderScript$MessageThread;
 Landroid/renderscript/RenderScript$MessageThread;-><init>(Landroid/renderscript/RenderScript;)V
 Landroid/renderscript/RenderScript$MessageThread;->mAuxData:[I
 Landroid/renderscript/RenderScript$MessageThread;->mRS:Landroid/renderscript/RenderScript;
@@ -64393,7 +60159,6 @@
 Landroid/renderscript/RenderScript$MessageThread;->RS_MESSAGE_TO_CLIENT_NONE:I
 Landroid/renderscript/RenderScript$MessageThread;->RS_MESSAGE_TO_CLIENT_RESIZE:I
 Landroid/renderscript/RenderScript$MessageThread;->RS_MESSAGE_TO_CLIENT_USER:I
-Landroid/renderscript/RenderScript$Priority;-><init>(I)V
 Landroid/renderscript/RenderScript$Priority;->mID:I
 Landroid/renderscript/RenderScript;-><init>(Landroid/content/Context;)V
 Landroid/renderscript/RenderScript;->CREATE_FLAG_WAIT_FOR_ATTACH:I
@@ -64755,9 +60520,7 @@
 Landroid/renderscript/RenderScript;->TRACE_TAG:J
 Landroid/renderscript/RenderScript;->validateObject(Landroid/renderscript/BaseObj;)V
 Landroid/renderscript/RenderScript;->_nInit()V
-Landroid/renderscript/RenderScriptCacheDir;
 Landroid/renderscript/RenderScriptCacheDir;-><init>()V
-Landroid/renderscript/RenderScriptGL$SurfaceConfig;
 Landroid/renderscript/RenderScriptGL$SurfaceConfig;-><init>(Landroid/renderscript/RenderScriptGL$SurfaceConfig;)V
 Landroid/renderscript/RenderScriptGL$SurfaceConfig;->mAlphaMin:I
 Landroid/renderscript/RenderScriptGL$SurfaceConfig;->mAlphaPref:I
@@ -64774,7 +60537,6 @@
 Landroid/renderscript/RenderScriptGL$SurfaceConfig;->setColor(II)V
 Landroid/renderscript/RenderScriptGL$SurfaceConfig;->setSamples(IIF)V
 Landroid/renderscript/RenderScriptGL$SurfaceConfig;->validateRange(IIII)V
-Landroid/renderscript/RenderScriptGL;
 Landroid/renderscript/RenderScriptGL;->bindProgramFragment(Landroid/renderscript/ProgramFragment;)V
 Landroid/renderscript/RenderScriptGL;->getHeight()I
 Landroid/renderscript/RenderScriptGL;->getWidth()I
@@ -64784,7 +60546,6 @@
 Landroid/renderscript/RenderScriptGL;->pause()V
 Landroid/renderscript/RenderScriptGL;->resume()V
 Landroid/renderscript/RenderScriptGL;->setSurfaceTexture(Landroid/graphics/SurfaceTexture;II)V
-Landroid/renderscript/RSSurfaceView;
 Landroid/renderscript/RSSurfaceView;->createRenderScriptGL(Landroid/renderscript/RenderScriptGL$SurfaceConfig;)Landroid/renderscript/RenderScriptGL;
 Landroid/renderscript/RSSurfaceView;->destroyRenderScriptGL()V
 Landroid/renderscript/RSSurfaceView;->getRenderScriptGL()Landroid/renderscript/RenderScriptGL;
@@ -64794,7 +60555,6 @@
 Landroid/renderscript/RSSurfaceView;->pause()V
 Landroid/renderscript/RSSurfaceView;->resume()V
 Landroid/renderscript/RSSurfaceView;->setRenderScriptGL(Landroid/renderscript/RenderScriptGL;)V
-Landroid/renderscript/RSTextureView;
 Landroid/renderscript/RSTextureView;-><init>(Landroid/content/Context;)V
 Landroid/renderscript/RSTextureView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/renderscript/RSTextureView;->createRenderScriptGL(Landroid/renderscript/RenderScriptGL$SurfaceConfig;)Landroid/renderscript/RenderScriptGL;
@@ -64813,7 +60573,6 @@
 Landroid/renderscript/Sampler$Builder;->mWrapR:Landroid/renderscript/Sampler$Value;
 Landroid/renderscript/Sampler$Builder;->mWrapS:Landroid/renderscript/Sampler$Value;
 Landroid/renderscript/Sampler$Builder;->mWrapT:Landroid/renderscript/Sampler$Value;
-Landroid/renderscript/Sampler$Value;-><init>(I)V
 Landroid/renderscript/Sampler$Value;->mID:I
 Landroid/renderscript/Sampler;-><init>(JLandroid/renderscript/RenderScript;)V
 Landroid/renderscript/Sampler;->mAniso:F
@@ -64868,7 +60627,6 @@
 Landroid/renderscript/ScriptGroup$Builder;->validateCycle(Landroid/renderscript/ScriptGroup$Node;Landroid/renderscript/ScriptGroup$Node;)V
 Landroid/renderscript/ScriptGroup$Builder;->validateDAG()V
 Landroid/renderscript/ScriptGroup$Builder;->validateDAGRecurse(Landroid/renderscript/ScriptGroup$Node;I)V
-Landroid/renderscript/ScriptGroup$Closure$ValueAndSize;
 Landroid/renderscript/ScriptGroup$Closure$ValueAndSize;-><init>(Landroid/renderscript/RenderScript;Ljava/lang/Object;)V
 Landroid/renderscript/ScriptGroup$Closure$ValueAndSize;->size:I
 Landroid/renderscript/ScriptGroup$Closure$ValueAndSize;->value:J
@@ -64885,7 +60643,6 @@
 Landroid/renderscript/ScriptGroup$Closure;->setArg(ILjava/lang/Object;)V
 Landroid/renderscript/ScriptGroup$Closure;->setGlobal(Landroid/renderscript/Script$FieldID;Ljava/lang/Object;)V
 Landroid/renderscript/ScriptGroup$Closure;->TAG:Ljava/lang/String;
-Landroid/renderscript/ScriptGroup$ConnectLine;
 Landroid/renderscript/ScriptGroup$ConnectLine;-><init>(Landroid/renderscript/Type;Landroid/renderscript/Script$KernelID;Landroid/renderscript/Script$FieldID;)V
 Landroid/renderscript/ScriptGroup$ConnectLine;-><init>(Landroid/renderscript/Type;Landroid/renderscript/Script$KernelID;Landroid/renderscript/Script$KernelID;)V
 Landroid/renderscript/ScriptGroup$ConnectLine;->mAllocationType:Landroid/renderscript/Type;
@@ -64907,11 +60664,9 @@
 Landroid/renderscript/ScriptGroup$Input;->mFieldID:Ljava/util/List;
 Landroid/renderscript/ScriptGroup$Input;->mValue:Ljava/lang/Object;
 Landroid/renderscript/ScriptGroup$Input;->set(Ljava/lang/Object;)V
-Landroid/renderscript/ScriptGroup$IO;
 Landroid/renderscript/ScriptGroup$IO;-><init>(Landroid/renderscript/Script$KernelID;)V
 Landroid/renderscript/ScriptGroup$IO;->mAllocation:Landroid/renderscript/Allocation;
 Landroid/renderscript/ScriptGroup$IO;->mKID:Landroid/renderscript/Script$KernelID;
-Landroid/renderscript/ScriptGroup$Node;
 Landroid/renderscript/ScriptGroup$Node;-><init>(Landroid/renderscript/Script;)V
 Landroid/renderscript/ScriptGroup$Node;->dagNumber:I
 Landroid/renderscript/ScriptGroup$Node;->mInputs:Ljava/util/ArrayList;
@@ -64932,10 +60687,6 @@
 Landroid/renderscript/ScriptIntrinsic3DLUT;->mElement:Landroid/renderscript/Element;
 Landroid/renderscript/ScriptIntrinsic3DLUT;->mLUT:Landroid/renderscript/Allocation;
 Landroid/renderscript/ScriptIntrinsic;-><init>(JLandroid/renderscript/RenderScript;)V
-Landroid/renderscript/ScriptIntrinsicBLAS$Diag;
-Landroid/renderscript/ScriptIntrinsicBLAS$Side;
-Landroid/renderscript/ScriptIntrinsicBLAS$Transpose;
-Landroid/renderscript/ScriptIntrinsicBLAS$Uplo;
 Landroid/renderscript/ScriptIntrinsicBLAS;-><init>(JLandroid/renderscript/RenderScript;)V
 Landroid/renderscript/ScriptIntrinsicBLAS;->mLUT:Landroid/renderscript/Allocation;
 Landroid/renderscript/ScriptIntrinsicBLAS;->RsBlas_bnnm:I
@@ -65243,7 +60994,6 @@
 Landroid/renderscript/Type$Builder;->mRS:Landroid/renderscript/RenderScript;
 Landroid/renderscript/Type$Builder;->mYuv:I
 Landroid/renderscript/Type$Builder;->setArray(II)Landroid/renderscript/Type$Builder;
-Landroid/renderscript/Type$CubemapFace;-><init>(I)V
 Landroid/renderscript/Type$CubemapFace;->mID:I
 Landroid/renderscript/Type;-><init>(JLandroid/renderscript/RenderScript;)V
 Landroid/renderscript/Type;->calcElementCount()V
@@ -65260,11 +61010,9 @@
 Landroid/renderscript/Type;->mElementCount:I
 Landroid/renderscript/Type;->mMaxArrays:I
 Landroid/renderscript/Type;->updateFromNative()V
-Landroid/sax/Children$Child;
 Landroid/sax/Children$Child;-><init>(Landroid/sax/Element;Ljava/lang/String;Ljava/lang/String;II)V
 Landroid/sax/Children$Child;->hash:I
 Landroid/sax/Children$Child;->next:Landroid/sax/Children$Child;
-Landroid/sax/Children;
 Landroid/sax/Children;-><init>()V
 Landroid/sax/Children;->children:[Landroid/sax/Children$Child;
 Landroid/sax/Children;->get(Ljava/lang/String;Ljava/lang/String;)Landroid/sax/Element;
@@ -65283,8 +61031,6 @@
 Landroid/sax/Element;->toString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 Landroid/sax/Element;->uri:Ljava/lang/String;
 Landroid/sax/Element;->visited:Z
-Landroid/sax/RootElement$Handler;
-Landroid/sax/RootElement$Handler;-><init>()V
 Landroid/sax/RootElement$Handler;->bodyBuilder:Ljava/lang/StringBuilder;
 Landroid/sax/RootElement$Handler;->current:Landroid/sax/Element;
 Landroid/sax/RootElement$Handler;->depth:I
@@ -65298,7 +61044,6 @@
 Landroid/se/omapi/Channel;->mService:Landroid/se/omapi/SEService;
 Landroid/se/omapi/Channel;->mSession:Landroid/se/omapi/Session;
 Landroid/se/omapi/Channel;->TAG:Ljava/lang/String;
-Landroid/se/omapi/ISecureElementChannel$Stub$Proxy;
 Landroid/se/omapi/ISecureElementChannel$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/se/omapi/ISecureElementChannel$Stub$Proxy;->close()V
 Landroid/se/omapi/ISecureElementChannel$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -65308,7 +61053,6 @@
 Landroid/se/omapi/ISecureElementChannel$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/se/omapi/ISecureElementChannel$Stub$Proxy;->selectNext()Z
 Landroid/se/omapi/ISecureElementChannel$Stub$Proxy;->transmit([B)[B
-Landroid/se/omapi/ISecureElementChannel$Stub;
 Landroid/se/omapi/ISecureElementChannel$Stub;-><init>()V
 Landroid/se/omapi/ISecureElementChannel$Stub;->asInterface(Landroid/os/IBinder;)Landroid/se/omapi/ISecureElementChannel;
 Landroid/se/omapi/ISecureElementChannel$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -65318,59 +61062,48 @@
 Landroid/se/omapi/ISecureElementChannel$Stub;->TRANSACTION_isClosed:I
 Landroid/se/omapi/ISecureElementChannel$Stub;->TRANSACTION_selectNext:I
 Landroid/se/omapi/ISecureElementChannel$Stub;->TRANSACTION_transmit:I
-Landroid/se/omapi/ISecureElementChannel;
 Landroid/se/omapi/ISecureElementChannel;->close()V
 Landroid/se/omapi/ISecureElementChannel;->getSelectResponse()[B
 Landroid/se/omapi/ISecureElementChannel;->isBasicChannel()Z
 Landroid/se/omapi/ISecureElementChannel;->isClosed()Z
 Landroid/se/omapi/ISecureElementChannel;->selectNext()Z
 Landroid/se/omapi/ISecureElementChannel;->transmit([B)[B
-Landroid/se/omapi/ISecureElementListener$Stub$Proxy;
 Landroid/se/omapi/ISecureElementListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/se/omapi/ISecureElementListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/se/omapi/ISecureElementListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/se/omapi/ISecureElementListener$Stub;
 Landroid/se/omapi/ISecureElementListener$Stub;-><init>()V
 Landroid/se/omapi/ISecureElementListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/se/omapi/ISecureElementListener;
 Landroid/se/omapi/ISecureElementListener$Stub;->DESCRIPTOR:Ljava/lang/String;
-Landroid/se/omapi/ISecureElementListener;
-Landroid/se/omapi/ISecureElementReader$Stub$Proxy;
 Landroid/se/omapi/ISecureElementReader$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/se/omapi/ISecureElementReader$Stub$Proxy;->closeSessions()V
 Landroid/se/omapi/ISecureElementReader$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/se/omapi/ISecureElementReader$Stub$Proxy;->isSecureElementPresent()Z
 Landroid/se/omapi/ISecureElementReader$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/se/omapi/ISecureElementReader$Stub$Proxy;->openSession()Landroid/se/omapi/ISecureElementSession;
-Landroid/se/omapi/ISecureElementReader$Stub;
 Landroid/se/omapi/ISecureElementReader$Stub;-><init>()V
 Landroid/se/omapi/ISecureElementReader$Stub;->asInterface(Landroid/os/IBinder;)Landroid/se/omapi/ISecureElementReader;
 Landroid/se/omapi/ISecureElementReader$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/se/omapi/ISecureElementReader$Stub;->TRANSACTION_closeSessions:I
 Landroid/se/omapi/ISecureElementReader$Stub;->TRANSACTION_isSecureElementPresent:I
 Landroid/se/omapi/ISecureElementReader$Stub;->TRANSACTION_openSession:I
-Landroid/se/omapi/ISecureElementReader;
 Landroid/se/omapi/ISecureElementReader;->closeSessions()V
 Landroid/se/omapi/ISecureElementReader;->isSecureElementPresent()Z
 Landroid/se/omapi/ISecureElementReader;->openSession()Landroid/se/omapi/ISecureElementSession;
-Landroid/se/omapi/ISecureElementService$Stub$Proxy;
 Landroid/se/omapi/ISecureElementService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/se/omapi/ISecureElementService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/se/omapi/ISecureElementService$Stub$Proxy;->getReader(Ljava/lang/String;)Landroid/se/omapi/ISecureElementReader;
 Landroid/se/omapi/ISecureElementService$Stub$Proxy;->getReaders()[Ljava/lang/String;
 Landroid/se/omapi/ISecureElementService$Stub$Proxy;->isNFCEventAllowed(Ljava/lang/String;[B[Ljava/lang/String;)[Z
 Landroid/se/omapi/ISecureElementService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/se/omapi/ISecureElementService$Stub;
 Landroid/se/omapi/ISecureElementService$Stub;-><init>()V
 Landroid/se/omapi/ISecureElementService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/se/omapi/ISecureElementService;
 Landroid/se/omapi/ISecureElementService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/se/omapi/ISecureElementService$Stub;->TRANSACTION_getReader:I
 Landroid/se/omapi/ISecureElementService$Stub;->TRANSACTION_getReaders:I
 Landroid/se/omapi/ISecureElementService$Stub;->TRANSACTION_isNFCEventAllowed:I
-Landroid/se/omapi/ISecureElementService;
 Landroid/se/omapi/ISecureElementService;->getReader(Ljava/lang/String;)Landroid/se/omapi/ISecureElementReader;
 Landroid/se/omapi/ISecureElementService;->getReaders()[Ljava/lang/String;
 Landroid/se/omapi/ISecureElementService;->isNFCEventAllowed(Ljava/lang/String;[B[Ljava/lang/String;)[Z
-Landroid/se/omapi/ISecureElementSession$Stub$Proxy;
 Landroid/se/omapi/ISecureElementSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/se/omapi/ISecureElementSession$Stub$Proxy;->close()V
 Landroid/se/omapi/ISecureElementSession$Stub$Proxy;->closeChannels()V
@@ -65380,7 +61113,6 @@
 Landroid/se/omapi/ISecureElementSession$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/se/omapi/ISecureElementSession$Stub$Proxy;->openBasicChannel([BBLandroid/se/omapi/ISecureElementListener;)Landroid/se/omapi/ISecureElementChannel;
 Landroid/se/omapi/ISecureElementSession$Stub$Proxy;->openLogicalChannel([BBLandroid/se/omapi/ISecureElementListener;)Landroid/se/omapi/ISecureElementChannel;
-Landroid/se/omapi/ISecureElementSession$Stub;
 Landroid/se/omapi/ISecureElementSession$Stub;-><init>()V
 Landroid/se/omapi/ISecureElementSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/se/omapi/ISecureElementSession;
 Landroid/se/omapi/ISecureElementSession$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -65390,7 +61122,6 @@
 Landroid/se/omapi/ISecureElementSession$Stub;->TRANSACTION_isClosed:I
 Landroid/se/omapi/ISecureElementSession$Stub;->TRANSACTION_openBasicChannel:I
 Landroid/se/omapi/ISecureElementSession$Stub;->TRANSACTION_openLogicalChannel:I
-Landroid/se/omapi/ISecureElementSession;
 Landroid/se/omapi/ISecureElementSession;->close()V
 Landroid/se/omapi/ISecureElementSession;->closeChannels()V
 Landroid/se/omapi/ISecureElementSession;->getAtr()[B
@@ -65403,8 +61134,6 @@
 Landroid/se/omapi/Reader;->mReader:Landroid/se/omapi/ISecureElementReader;
 Landroid/se/omapi/Reader;->mService:Landroid/se/omapi/SEService;
 Landroid/se/omapi/Reader;->TAG:Ljava/lang/String;
-Landroid/se/omapi/SEService$SEListener;
-Landroid/se/omapi/SEService$SEListener;-><init>()V
 Landroid/se/omapi/SEService$SEListener;->mExecutor:Ljava/util/concurrent/Executor;
 Landroid/se/omapi/SEService$SEListener;->mListener:Landroid/se/omapi/SEService$OnConnectedListener;
 Landroid/se/omapi/SEService$SEListener;->onConnected()V
@@ -65425,7 +61154,6 @@
 Landroid/se/omapi/Session;->mService:Landroid/se/omapi/SEService;
 Landroid/se/omapi/Session;->mSession:Landroid/se/omapi/ISecureElementSession;
 Landroid/se/omapi/Session;->TAG:Ljava/lang/String;
-Landroid/Section;
 Landroid/Section;-><init>()V
 Landroid/Section;->SECTION_COMMAND:I
 Landroid/Section;->SECTION_DUMPSYS:I
@@ -65434,7 +61162,6 @@
 Landroid/Section;->SECTION_LOG:I
 Landroid/Section;->SECTION_NONE:I
 Landroid/Section;->SECTION_TOMBSTONE:I
-Landroid/SectionFlags;
 Landroid/SectionFlags;-><init>()V
 Landroid/SectionFlags;->ARGS:J
 Landroid/SectionFlags;->DEVICE_SPECIFIC:J
@@ -65460,7 +61187,6 @@
 Landroid/security/ConfirmationPrompt;->TAG:Ljava/lang/String;
 Landroid/security/ConfirmationPrompt;->UI_OPTION_ACCESSIBILITY_INVERTED_FLAG:I
 Landroid/security/ConfirmationPrompt;->UI_OPTION_ACCESSIBILITY_MAGNIFIED_FLAG:I
-Landroid/security/Credentials;
 Landroid/security/Credentials;-><init>()V
 Landroid/security/Credentials;->CA_CERTIFICATE:Ljava/lang/String;
 Landroid/security/Credentials;->convertFromPem([B)Ljava/util/List;
@@ -65496,38 +61222,29 @@
 Landroid/security/Credentials;->USER_SECRET_KEY:Ljava/lang/String;
 Landroid/security/Credentials;->VPN:Ljava/lang/String;
 Landroid/security/Credentials;->WIFI:Ljava/lang/String;
-Landroid/security/FrameworkNetworkSecurityPolicy;
 Landroid/security/FrameworkNetworkSecurityPolicy;-><init>(Z)V
 Landroid/security/FrameworkNetworkSecurityPolicy;->mCleartextTrafficPermitted:Z
-Landroid/security/GateKeeper;
 Landroid/security/GateKeeper;-><init>()V
 Landroid/security/GateKeeper;->getService()Landroid/service/gatekeeper/IGateKeeperService;
 Landroid/security/GateKeeper;->INVALID_SECURE_USER_ID:J
-Landroid/security/IConfirmationPromptCallback$Stub$Proxy;
 Landroid/security/IConfirmationPromptCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/security/IConfirmationPromptCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/security/IConfirmationPromptCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/security/IConfirmationPromptCallback$Stub$Proxy;->onConfirmationPromptCompleted(I[B)V
-Landroid/security/IConfirmationPromptCallback$Stub;
 Landroid/security/IConfirmationPromptCallback$Stub;-><init>()V
 Landroid/security/IConfirmationPromptCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/security/IConfirmationPromptCallback;
 Landroid/security/IConfirmationPromptCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/security/IConfirmationPromptCallback$Stub;->TRANSACTION_onConfirmationPromptCompleted:I
-Landroid/security/IConfirmationPromptCallback;
 Landroid/security/IConfirmationPromptCallback;->onConfirmationPromptCompleted(I[B)V
-Landroid/security/IKeyChainAliasCallback$Stub$Proxy;
 Landroid/security/IKeyChainAliasCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/security/IKeyChainAliasCallback$Stub$Proxy;->alias(Ljava/lang/String;)V
 Landroid/security/IKeyChainAliasCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/security/IKeyChainAliasCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/security/IKeyChainAliasCallback$Stub;
 Landroid/security/IKeyChainAliasCallback$Stub;-><init>()V
 Landroid/security/IKeyChainAliasCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/security/IKeyChainAliasCallback;
 Landroid/security/IKeyChainAliasCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/security/IKeyChainAliasCallback$Stub;->TRANSACTION_alias:I
-Landroid/security/IKeyChainAliasCallback;
 Landroid/security/IKeyChainAliasCallback;->alias(Ljava/lang/String;)V
-Landroid/security/IKeyChainService$Stub$Proxy;
 Landroid/security/IKeyChainService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/security/IKeyChainService$Stub$Proxy;->attestKey(Ljava/lang/String;[B[ILandroid/security/keymaster/KeymasterCertificateChain;)I
 Landroid/security/IKeyChainService$Stub$Proxy;->containsCaAlias(Ljava/lang/String;)Z
@@ -65551,7 +61268,6 @@
 Landroid/security/IKeyChainService$Stub$Proxy;->setGrant(ILjava/lang/String;Z)V
 Landroid/security/IKeyChainService$Stub$Proxy;->setKeyPairCertificate(Ljava/lang/String;[B[B)Z
 Landroid/security/IKeyChainService$Stub$Proxy;->setUserSelectable(Ljava/lang/String;Z)V
-Landroid/security/IKeyChainService$Stub;
 Landroid/security/IKeyChainService$Stub;-><init>()V
 Landroid/security/IKeyChainService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/security/IKeyChainService$Stub;->TRANSACTION_attestKey:I
@@ -65574,7 +61290,6 @@
 Landroid/security/IKeyChainService$Stub;->TRANSACTION_setGrant:I
 Landroid/security/IKeyChainService$Stub;->TRANSACTION_setKeyPairCertificate:I
 Landroid/security/IKeyChainService$Stub;->TRANSACTION_setUserSelectable:I
-Landroid/security/IKeyChainService;
 Landroid/security/IKeyChainService;->attestKey(Ljava/lang/String;[B[ILandroid/security/keymaster/KeymasterCertificateChain;)I
 Landroid/security/IKeyChainService;->containsCaAlias(Ljava/lang/String;)Z
 Landroid/security/IKeyChainService;->deleteCaCertificate(Ljava/lang/String;)Z
@@ -65594,7 +61309,6 @@
 Landroid/security/IKeyChainService;->setGrant(ILjava/lang/String;Z)V
 Landroid/security/IKeyChainService;->setKeyPairCertificate(Ljava/lang/String;[B[B)Z
 Landroid/security/IKeyChainService;->setUserSelectable(Ljava/lang/String;Z)V
-Landroid/security/IKeystoreService$Stub$Proxy;
 Landroid/security/IKeystoreService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/security/IKeystoreService$Stub$Proxy;->abort(Landroid/os/IBinder;)I
 Landroid/security/IKeystoreService$Stub$Proxy;->addAuthToken([B)I
@@ -65640,7 +61354,6 @@
 Landroid/security/IKeystoreService$Stub$Proxy;->unlock(ILjava/lang/String;)I
 Landroid/security/IKeystoreService$Stub$Proxy;->update(Landroid/os/IBinder;Landroid/security/keymaster/KeymasterArguments;[B)Landroid/security/keymaster/OperationResult;
 Landroid/security/IKeystoreService$Stub$Proxy;->verify(Ljava/lang/String;[B[B)I
-Landroid/security/IKeystoreService$Stub;
 Landroid/security/IKeystoreService$Stub;-><init>()V
 Landroid/security/IKeystoreService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/security/IKeystoreService$Stub;->TRANSACTION_abort:I
@@ -65685,7 +61398,6 @@
 Landroid/security/IKeystoreService$Stub;->TRANSACTION_unlock:I
 Landroid/security/IKeystoreService$Stub;->TRANSACTION_update:I
 Landroid/security/IKeystoreService$Stub;->TRANSACTION_verify:I
-Landroid/security/IKeystoreService;
 Landroid/security/IKeystoreService;->abort(Landroid/os/IBinder;)I
 Landroid/security/IKeystoreService;->addAuthToken([B)I
 Landroid/security/IKeystoreService;->addRngEntropy([BI)I
@@ -65713,11 +61425,9 @@
 Landroid/security/IKeystoreService;->presentConfirmationPrompt(Landroid/os/IBinder;Ljava/lang/String;[BLjava/lang/String;I)I
 Landroid/security/IKeystoreService;->unlock(ILjava/lang/String;)I
 Landroid/security/IKeystoreService;->update(Landroid/os/IBinder;Landroid/security/keymaster/KeymasterArguments;[B)Landroid/security/keymaster/OperationResult;
-Landroid/security/KeyChain$AliasResponse;
 Landroid/security/KeyChain$AliasResponse;-><init>(Landroid/security/KeyChainAliasCallback;)V
 Landroid/security/KeyChain$AliasResponse;->alias(Ljava/lang/String;)V
 Landroid/security/KeyChain$AliasResponse;->keyChainAliasResponse:Landroid/security/KeyChainAliasCallback;
-Landroid/security/KeyChain$KeyChainConnection;
 Landroid/security/KeyChain$KeyChainConnection;-><init>(Landroid/content/Context;Landroid/content/ServiceConnection;Landroid/security/IKeyChainService;)V
 Landroid/security/KeyChain$KeyChainConnection;->context:Landroid/content/Context;
 Landroid/security/KeyChain$KeyChainConnection;->getService()Landroid/security/IKeyChainService;
@@ -65750,29 +61460,23 @@
 Landroid/security/KeyChain;->KEY_GEN_SUPERFLUOUS_ATTESTATION_CHALLENGE:I
 Landroid/security/KeyChain;->toCertificate([B)Ljava/security/cert/X509Certificate;
 Landroid/security/KeyChain;->toCertificates([B)Ljava/util/Collection;
-Landroid/security/keymaster/ExportResult;
 Landroid/security/keymaster/ExportResult;-><init>(Landroid/os/Parcel;)V
 Landroid/security/keymaster/ExportResult;->exportData:[B
 Landroid/security/keymaster/ExportResult;->resultCode:I
-Landroid/security/keymaster/IKeyAttestationApplicationIdProvider$Stub$Proxy;
 Landroid/security/keymaster/IKeyAttestationApplicationIdProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/security/keymaster/IKeyAttestationApplicationIdProvider$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/security/keymaster/IKeyAttestationApplicationIdProvider$Stub$Proxy;->getKeyAttestationApplicationId(I)Landroid/security/keymaster/KeyAttestationApplicationId;
 Landroid/security/keymaster/IKeyAttestationApplicationIdProvider$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/security/keymaster/IKeyAttestationApplicationIdProvider$Stub;
 Landroid/security/keymaster/IKeyAttestationApplicationIdProvider$Stub;-><init>()V
 Landroid/security/keymaster/IKeyAttestationApplicationIdProvider$Stub;->asInterface(Landroid/os/IBinder;)Landroid/security/keymaster/IKeyAttestationApplicationIdProvider;
 Landroid/security/keymaster/IKeyAttestationApplicationIdProvider$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/security/keymaster/IKeyAttestationApplicationIdProvider$Stub;->TRANSACTION_getKeyAttestationApplicationId:I
-Landroid/security/keymaster/IKeyAttestationApplicationIdProvider;
 Landroid/security/keymaster/IKeyAttestationApplicationIdProvider;->getKeyAttestationApplicationId(I)Landroid/security/keymaster/KeyAttestationApplicationId;
-Landroid/security/keymaster/KeyAttestationApplicationId;
 Landroid/security/keymaster/KeyAttestationApplicationId;-><init>(Landroid/os/Parcel;)V
 Landroid/security/keymaster/KeyAttestationApplicationId;-><init>([Landroid/security/keymaster/KeyAttestationPackageInfo;)V
 Landroid/security/keymaster/KeyAttestationApplicationId;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/security/keymaster/KeyAttestationApplicationId;->getAttestationPackageInfos()[Landroid/security/keymaster/KeyAttestationPackageInfo;
 Landroid/security/keymaster/KeyAttestationApplicationId;->mAttestationPackageInfos:[Landroid/security/keymaster/KeyAttestationPackageInfo;
-Landroid/security/keymaster/KeyAttestationPackageInfo;
 Landroid/security/keymaster/KeyAttestationPackageInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/security/keymaster/KeyAttestationPackageInfo;-><init>(Ljava/lang/String;J[Landroid/content/pm/Signature;)V
 Landroid/security/keymaster/KeyAttestationPackageInfo;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -65782,7 +61486,6 @@
 Landroid/security/keymaster/KeyAttestationPackageInfo;->mPackageName:Ljava/lang/String;
 Landroid/security/keymaster/KeyAttestationPackageInfo;->mPackageSignatures:[Landroid/content/pm/Signature;
 Landroid/security/keymaster/KeyAttestationPackageInfo;->mPackageVersionCode:J
-Landroid/security/keymaster/KeyCharacteristics;
 Landroid/security/keymaster/KeyCharacteristics;-><init>(Landroid/os/Parcel;)V
 Landroid/security/keymaster/KeyCharacteristics;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/security/keymaster/KeyCharacteristics;->getBoolean(I)Z
@@ -65793,18 +61496,15 @@
 Landroid/security/keymaster/KeyCharacteristics;->getUnsignedLongs(I)Ljava/util/List;
 Landroid/security/keymaster/KeyCharacteristics;->hwEnforced:Landroid/security/keymaster/KeymasterArguments;
 Landroid/security/keymaster/KeyCharacteristics;->swEnforced:Landroid/security/keymaster/KeymasterArguments;
-Landroid/security/keymaster/KeymasterArgument;
 Landroid/security/keymaster/KeymasterArgument;-><init>(I)V
 Landroid/security/keymaster/KeymasterArgument;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/security/keymaster/KeymasterArgument;->tag:I
 Landroid/security/keymaster/KeymasterArgument;->writeValue(Landroid/os/Parcel;)V
-Landroid/security/keymaster/KeymasterArguments;
 Landroid/security/keymaster/KeymasterArguments;-><init>(Landroid/os/Parcel;)V
 Landroid/security/keymaster/KeymasterArguments;->addBoolean(I)V
 Landroid/security/keymaster/KeymasterArguments;->addBytes(I[B)V
 Landroid/security/keymaster/KeymasterArguments;->addDate(ILjava/util/Date;)V
 Landroid/security/keymaster/KeymasterArguments;->addDateIfNotNull(ILjava/util/Date;)V
-Landroid/security/keymaster/KeymasterArguments;->addEnums(I[[I)V
 Landroid/security/keymaster/KeymasterArguments;->addEnumTag(II)V
 Landroid/security/keymaster/KeymasterArguments;->addLongTag(ILjava/math/BigInteger;)V
 Landroid/security/keymaster/KeymasterArguments;->containsTag(I)Z
@@ -65825,11 +61525,9 @@
 Landroid/security/keymaster/KeymasterArguments;->UINT32_RANGE:J
 Landroid/security/keymaster/KeymasterArguments;->UINT64_MAX_VALUE:Ljava/math/BigInteger;
 Landroid/security/keymaster/KeymasterArguments;->UINT64_RANGE:Ljava/math/BigInteger;
-Landroid/security/keymaster/KeymasterBlob;
 Landroid/security/keymaster/KeymasterBlob;-><init>(Landroid/os/Parcel;)V
 Landroid/security/keymaster/KeymasterBlob;-><init>([B)V
 Landroid/security/keymaster/KeymasterBlob;->blob:[B
-Landroid/security/keymaster/KeymasterCertificateChain;
 Landroid/security/keymaster/KeymasterCertificateChain;-><init>()V
 Landroid/security/keymaster/KeymasterCertificateChain;-><init>(Landroid/os/Parcel;)V
 Landroid/security/keymaster/KeymasterCertificateChain;-><init>(Ljava/util/List;)V
@@ -65837,7 +61535,6 @@
 Landroid/security/keymaster/KeymasterCertificateChain;->getCertificates()Ljava/util/List;
 Landroid/security/keymaster/KeymasterCertificateChain;->mCertificates:Ljava/util/List;
 Landroid/security/keymaster/KeymasterCertificateChain;->readFromParcel(Landroid/os/Parcel;)V
-Landroid/security/keymaster/KeymasterDefs;
 Landroid/security/keymaster/KeymasterDefs;-><init>()V
 Landroid/security/keymaster/KeymasterDefs;->getErrorMessage(I)Ljava/lang/String;
 Landroid/security/keymaster/KeymasterDefs;->getTagType(I)I
@@ -66004,7 +61701,6 @@
 Landroid/security/keymaster/KeymasterDefs;->KM_ULONG:I
 Landroid/security/keymaster/KeymasterDefs;->KM_ULONG_REP:I
 Landroid/security/keymaster/KeymasterDefs;->sErrorCodeToString:Ljava/util/Map;
-Landroid/security/keymaster/OperationResult;
 Landroid/security/keymaster/OperationResult;-><init>(ILandroid/os/IBinder;JI[BLandroid/security/keymaster/KeymasterArguments;)V
 Landroid/security/keymaster/OperationResult;-><init>(Landroid/os/Parcel;)V
 Landroid/security/keymaster/OperationResult;->inputConsumed:I
@@ -66035,24 +61731,15 @@
 Landroid/security/KeyPairGeneratorSpec;->mSpec:Ljava/security/spec/AlgorithmParameterSpec;
 Landroid/security/KeyPairGeneratorSpec;->mStartDate:Ljava/util/Date;
 Landroid/security/KeyPairGeneratorSpec;->mSubjectDN:Ljavax/security/auth/x500/X500Principal;
-Landroid/security/KeyStore$State;
-Landroid/security/KeyStore$State;-><init>()V
 Landroid/security/KeyStore$State;->UNINITIALIZED:Landroid/security/KeyStore$State;
 Landroid/security/KeyStore$State;->valueOf(Ljava/lang/String;)Landroid/security/KeyStore$State;
 Landroid/security/KeyStore$State;->values()[Landroid/security/KeyStore$State;
-Landroid/security/keystore/AndroidKeyStore3DESCipherSpi$CBC$NoPadding;
 Landroid/security/keystore/AndroidKeyStore3DESCipherSpi$CBC$NoPadding;-><init>()V
-Landroid/security/keystore/AndroidKeyStore3DESCipherSpi$CBC$PKCS7Padding;
 Landroid/security/keystore/AndroidKeyStore3DESCipherSpi$CBC$PKCS7Padding;-><init>()V
-Landroid/security/keystore/AndroidKeyStore3DESCipherSpi$CBC;
 Landroid/security/keystore/AndroidKeyStore3DESCipherSpi$CBC;-><init>(I)V
-Landroid/security/keystore/AndroidKeyStore3DESCipherSpi$ECB$NoPadding;
 Landroid/security/keystore/AndroidKeyStore3DESCipherSpi$ECB$NoPadding;-><init>()V
-Landroid/security/keystore/AndroidKeyStore3DESCipherSpi$ECB$PKCS7Padding;
 Landroid/security/keystore/AndroidKeyStore3DESCipherSpi$ECB$PKCS7Padding;-><init>()V
-Landroid/security/keystore/AndroidKeyStore3DESCipherSpi$ECB;
 Landroid/security/keystore/AndroidKeyStore3DESCipherSpi$ECB;-><init>(I)V
-Landroid/security/keystore/AndroidKeyStore3DESCipherSpi;
 Landroid/security/keystore/AndroidKeyStore3DESCipherSpi;-><init>(IIZ)V
 Landroid/security/keystore/AndroidKeyStore3DESCipherSpi;->addAlgorithmSpecificParametersToBegin(Landroid/security/keymaster/KeymasterArguments;)V
 Landroid/security/keystore/AndroidKeyStore3DESCipherSpi;->BLOCK_SIZE_BYTES:I
@@ -66069,7 +61756,6 @@
 Landroid/security/keystore/AndroidKeyStore3DESCipherSpi;->mKeymasterBlockMode:I
 Landroid/security/keystore/AndroidKeyStore3DESCipherSpi;->mKeymasterPadding:I
 Landroid/security/keystore/AndroidKeyStore3DESCipherSpi;->resetAll()V
-Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;
 Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;-><init>()V
 Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->addAlgorithmSpecificParametersToBegin(Landroid/security/keymaster/KeymasterArguments;)V
 Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->createAdditionalAuthenticationDataStreamer(Landroid/security/KeyStore;Landroid/os/IBinder;)Landroid/security/keystore/KeyStoreCryptoOperationStreamer;
@@ -66106,25 +61792,17 @@
 Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->resetWhilePreservingInitState()V
 Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->setKey(Landroid/security/keystore/AndroidKeyStoreKey;)V
 Landroid/security/keystore/AndroidKeyStoreCipherSpiBase;->setKeymasterPurposeOverride(I)V
-Landroid/security/keystore/AndroidKeyStoreECPrivateKey;
 Landroid/security/keystore/AndroidKeyStoreECPrivateKey;-><init>(Ljava/lang/String;ILjava/security/spec/ECParameterSpec;)V
 Landroid/security/keystore/AndroidKeyStoreECPrivateKey;->mParams:Ljava/security/spec/ECParameterSpec;
-Landroid/security/keystore/AndroidKeyStoreECPublicKey;
 Landroid/security/keystore/AndroidKeyStoreECPublicKey;-><init>(Ljava/lang/String;ILjava/security/interfaces/ECPublicKey;)V
 Landroid/security/keystore/AndroidKeyStoreECPublicKey;-><init>(Ljava/lang/String;I[BLjava/security/spec/ECParameterSpec;Ljava/security/spec/ECPoint;)V
 Landroid/security/keystore/AndroidKeyStoreECPublicKey;->mParams:Ljava/security/spec/ECParameterSpec;
 Landroid/security/keystore/AndroidKeyStoreECPublicKey;->mW:Ljava/security/spec/ECPoint;
-Landroid/security/keystore/AndroidKeyStoreHmacSpi$HmacSHA1;
 Landroid/security/keystore/AndroidKeyStoreHmacSpi$HmacSHA1;-><init>()V
-Landroid/security/keystore/AndroidKeyStoreHmacSpi$HmacSHA224;
 Landroid/security/keystore/AndroidKeyStoreHmacSpi$HmacSHA224;-><init>()V
-Landroid/security/keystore/AndroidKeyStoreHmacSpi$HmacSHA256;
 Landroid/security/keystore/AndroidKeyStoreHmacSpi$HmacSHA256;-><init>()V
-Landroid/security/keystore/AndroidKeyStoreHmacSpi$HmacSHA384;
 Landroid/security/keystore/AndroidKeyStoreHmacSpi$HmacSHA384;-><init>()V
-Landroid/security/keystore/AndroidKeyStoreHmacSpi$HmacSHA512;
 Landroid/security/keystore/AndroidKeyStoreHmacSpi$HmacSHA512;-><init>()V
-Landroid/security/keystore/AndroidKeyStoreHmacSpi;
 Landroid/security/keystore/AndroidKeyStoreHmacSpi;-><init>(I)V
 Landroid/security/keystore/AndroidKeyStoreHmacSpi;->ensureKeystoreOperationInitialized()V
 Landroid/security/keystore/AndroidKeyStoreHmacSpi;->getOperationHandle()J
@@ -66138,33 +61816,22 @@
 Landroid/security/keystore/AndroidKeyStoreHmacSpi;->mOperationToken:Landroid/os/IBinder;
 Landroid/security/keystore/AndroidKeyStoreHmacSpi;->resetAll()V
 Landroid/security/keystore/AndroidKeyStoreHmacSpi;->resetWhilePreservingInitState()V
-Landroid/security/keystore/AndroidKeyStoreKey;
 Landroid/security/keystore/AndroidKeyStoreKey;-><init>(Ljava/lang/String;ILjava/lang/String;)V
 Landroid/security/keystore/AndroidKeyStoreKey;->getAlias()Ljava/lang/String;
 Landroid/security/keystore/AndroidKeyStoreKey;->getUid()I
 Landroid/security/keystore/AndroidKeyStoreKey;->mAlgorithm:Ljava/lang/String;
 Landroid/security/keystore/AndroidKeyStoreKey;->mAlias:Ljava/lang/String;
 Landroid/security/keystore/AndroidKeyStoreKey;->mUid:I
-Landroid/security/keystore/AndroidKeyStoreKeyFactorySpi;
 Landroid/security/keystore/AndroidKeyStoreKeyFactorySpi;-><init>()V
 Landroid/security/keystore/AndroidKeyStoreKeyFactorySpi;->mKeyStore:Landroid/security/KeyStore;
-Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi$AES;
 Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi$AES;-><init>()V
-Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi$DESede;
 Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi$DESede;-><init>()V
-Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi$HmacBase;
 Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi$HmacBase;-><init>(I)V
-Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi$HmacSHA1;
 Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi$HmacSHA1;-><init>()V
-Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi$HmacSHA224;
 Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi$HmacSHA224;-><init>()V
-Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi$HmacSHA256;
 Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi$HmacSHA256;-><init>()V
-Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi$HmacSHA384;
 Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi$HmacSHA384;-><init>()V
-Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi$HmacSHA512;
 Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi$HmacSHA512;-><init>()V
-Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi;
 Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi;-><init>(II)V
 Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi;-><init>(III)V
 Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi;->mDefaultKeySizeBits:I
@@ -66179,11 +61846,8 @@
 Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi;->mRng:Ljava/security/SecureRandom;
 Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi;->mSpec:Landroid/security/keystore/KeyGenParameterSpec;
 Landroid/security/keystore/AndroidKeyStoreKeyGeneratorSpi;->resetAll()V
-Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi$EC;
 Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi$EC;-><init>()V
-Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi$RSA;
 Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi$RSA;-><init>()V
-Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;
 Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;-><init>(I)V
 Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->addAlgorithmSpecificParameters(Landroid/security/keymaster/KeymasterArguments;)V
 Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->checkValidKeySize(II)V
@@ -66226,9 +61890,7 @@
 Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->SUPPORTED_EC_NIST_CURVE_NAMES:Ljava/util/List;
 Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->SUPPORTED_EC_NIST_CURVE_NAME_TO_SIZE:Ljava/util/Map;
 Landroid/security/keystore/AndroidKeyStoreKeyPairGeneratorSpi;->SUPPORTED_EC_NIST_CURVE_SIZES:Ljava/util/List;
-Landroid/security/keystore/AndroidKeyStorePrivateKey;
 Landroid/security/keystore/AndroidKeyStorePrivateKey;-><init>(Ljava/lang/String;ILjava/lang/String;)V
-Landroid/security/keystore/AndroidKeyStoreProvider;
 Landroid/security/keystore/AndroidKeyStoreProvider;-><init>()V
 Landroid/security/keystore/AndroidKeyStoreProvider;->DESEDE_SYSTEM_PROPERTY:Ljava/lang/String;
 Landroid/security/keystore/AndroidKeyStoreProvider;->getAndroidKeyStorePrivateKey(Landroid/security/keystore/AndroidKeyStorePublicKey;)Landroid/security/keystore/AndroidKeyStorePrivateKey;
@@ -66248,30 +61910,23 @@
 Landroid/security/keystore/AndroidKeyStoreProvider;->PROVIDER_NAME:Ljava/lang/String;
 Landroid/security/keystore/AndroidKeyStoreProvider;->putKeyFactoryImpl(Ljava/lang/String;)V
 Landroid/security/keystore/AndroidKeyStoreProvider;->putSecretKeyFactoryImpl(Ljava/lang/String;)V
-Landroid/security/keystore/AndroidKeyStorePublicKey;
 Landroid/security/keystore/AndroidKeyStorePublicKey;-><init>(Ljava/lang/String;ILjava/lang/String;[B)V
 Landroid/security/keystore/AndroidKeyStorePublicKey;->mEncoded:[B
-Landroid/security/keystore/AndroidKeyStoreRSAPrivateKey;
 Landroid/security/keystore/AndroidKeyStoreRSAPrivateKey;-><init>(Ljava/lang/String;ILjava/math/BigInteger;)V
 Landroid/security/keystore/AndroidKeyStoreRSAPrivateKey;->mModulus:Ljava/math/BigInteger;
-Landroid/security/keystore/AndroidKeyStoreRSAPublicKey;
 Landroid/security/keystore/AndroidKeyStoreRSAPublicKey;-><init>(Ljava/lang/String;ILjava/security/interfaces/RSAPublicKey;)V
 Landroid/security/keystore/AndroidKeyStoreRSAPublicKey;-><init>(Ljava/lang/String;I[BLjava/math/BigInteger;Ljava/math/BigInteger;)V
 Landroid/security/keystore/AndroidKeyStoreRSAPublicKey;->mModulus:Ljava/math/BigInteger;
 Landroid/security/keystore/AndroidKeyStoreRSAPublicKey;->mPublicExponent:Ljava/math/BigInteger;
-Landroid/security/keystore/AndroidKeyStoreSecretKey;
 Landroid/security/keystore/AndroidKeyStoreSecretKey;-><init>(Ljava/lang/String;ILjava/lang/String;)V
-Landroid/security/keystore/AndroidKeyStoreSecretKeyFactorySpi;
 Landroid/security/keystore/AndroidKeyStoreSecretKeyFactorySpi;-><init>()V
 Landroid/security/keystore/AndroidKeyStoreSecretKeyFactorySpi;->engineGetKeySpec(Ljavax/crypto/SecretKey;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
 Landroid/security/keystore/AndroidKeyStoreSecretKeyFactorySpi;->getGateKeeperSecureUserId()Ljava/math/BigInteger;
 Landroid/security/keystore/AndroidKeyStoreSecretKeyFactorySpi;->getKeyInfo(Landroid/security/KeyStore;Ljava/lang/String;Ljava/lang/String;I)Landroid/security/keystore/KeyInfo;
 Landroid/security/keystore/AndroidKeyStoreSecretKeyFactorySpi;->mKeyStore:Landroid/security/KeyStore;
-Landroid/security/keystore/AndroidKeyStoreSpi$KeyStoreX509Certificate;
 Landroid/security/keystore/AndroidKeyStoreSpi$KeyStoreX509Certificate;-><init>(Ljava/lang/String;ILjava/security/cert/X509Certificate;)V
 Landroid/security/keystore/AndroidKeyStoreSpi$KeyStoreX509Certificate;->mPrivateKeyAlias:Ljava/lang/String;
 Landroid/security/keystore/AndroidKeyStoreSpi$KeyStoreX509Certificate;->mPrivateKeyUid:I
-Landroid/security/keystore/AndroidKeyStoreSpi;
 Landroid/security/keystore/AndroidKeyStoreSpi;-><init>()V
 Landroid/security/keystore/AndroidKeyStoreSpi;->getCertificateForPrivateKeyEntry(Ljava/lang/String;[B)Ljava/security/cert/Certificate;
 Landroid/security/keystore/AndroidKeyStoreSpi;->getCertificateForTrustedCertificateEntry([B)Ljava/security/cert/Certificate;
@@ -66289,7 +61944,6 @@
 Landroid/security/keystore/AndroidKeyStoreSpi;->toCertificate([B)Ljava/security/cert/X509Certificate;
 Landroid/security/keystore/AndroidKeyStoreSpi;->toCertificates([B)Ljava/util/Collection;
 Landroid/security/keystore/AndroidKeyStoreSpi;->wrapIntoKeyStoreCertificate(Ljava/lang/String;ILjava/security/cert/X509Certificate;)Landroid/security/keystore/AndroidKeyStoreSpi$KeyStoreX509Certificate;
-Landroid/security/keystore/ArrayUtils;
 Landroid/security/keystore/ArrayUtils;-><init>()V
 Landroid/security/keystore/ArrayUtils;->cloneIfNotEmpty([B)[B
 Landroid/security/keystore/ArrayUtils;->cloneIfNotEmpty([Ljava/lang/String;)[Ljava/lang/String;
@@ -66303,13 +61957,10 @@
 Landroid/security/keystore/AttestationUtils;->parseCertificateChain(Landroid/security/keymaster/KeymasterCertificateChain;)[Ljava/security/cert/X509Certificate;
 Landroid/security/keystore/AttestationUtils;->prepareAttestationArguments(Landroid/content/Context;[I[B)Landroid/security/keymaster/KeymasterArguments;
 Landroid/security/keystore/AttestationUtils;->prepareAttestationArgumentsForDeviceId(Landroid/content/Context;[I[B)Landroid/security/keymaster/KeymasterArguments;
-Landroid/security/keystore/DelegatingX509Certificate;
 Landroid/security/keystore/DelegatingX509Certificate;-><init>(Ljava/security/cert/X509Certificate;)V
 Landroid/security/keystore/DelegatingX509Certificate;->mDelegate:Ljava/security/cert/X509Certificate;
-Landroid/security/keystore/DeviceIdAttestationException;
 Landroid/security/keystore/DeviceIdAttestationException;-><init>(Ljava/lang/String;)V
 Landroid/security/keystore/DeviceIdAttestationException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
-Landroid/security/keystore/KeyAttestationException;
 Landroid/security/keystore/KeyAttestationException;-><init>(Ljava/lang/String;)V
 Landroid/security/keystore/KeyAttestationException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
 Landroid/security/keystore/KeyGenParameterSpec$Builder;-><init>(Landroid/security/keystore/KeyGenParameterSpec;)V
@@ -66394,7 +62045,6 @@
 Landroid/security/keystore/KeyInfo;->mUserAuthenticationValidityDurationSeconds:I
 Landroid/security/keystore/KeyInfo;->mUserAuthenticationValidWhileOnBody:Z
 Landroid/security/keystore/KeyInfo;->mUserConfirmationRequired:Z
-Landroid/security/keystore/KeymasterUtils;
 Landroid/security/keystore/KeymasterUtils;-><init>()V
 Landroid/security/keystore/KeymasterUtils;->addMinMacLengthAuthorizationIfNecessary(Landroid/security/keymaster/KeymasterArguments;I[I[I)V
 Landroid/security/keystore/KeymasterUtils;->addUserAuthArgs(Landroid/security/keymaster/KeymasterArguments;Landroid/security/keystore/UserAuthArgs;)V
@@ -66402,52 +62052,38 @@
 Landroid/security/keystore/KeymasterUtils;->getRootSid()J
 Landroid/security/keystore/KeymasterUtils;->isKeymasterBlockModeIndCpaCompatibleWithSymmetricCrypto(I)Z
 Landroid/security/keystore/KeymasterUtils;->isKeymasterPaddingSchemeIndCpaCompatibleWithAsymmetricCrypto(I)Z
-Landroid/security/keystore/KeyProperties$BlockMode;
 Landroid/security/keystore/KeyProperties$BlockMode;-><init>()V
 Landroid/security/keystore/KeyProperties$BlockMode;->allFromKeymaster(Ljava/util/Collection;)[Ljava/lang/String;
 Landroid/security/keystore/KeyProperties$BlockMode;->allToKeymaster([Ljava/lang/String;)[I
 Landroid/security/keystore/KeyProperties$BlockMode;->fromKeymaster(I)Ljava/lang/String;
 Landroid/security/keystore/KeyProperties$BlockMode;->toKeymaster(Ljava/lang/String;)I
-Landroid/security/keystore/KeyProperties$BlockModeEnum;
-Landroid/security/keystore/KeyProperties$Digest;
 Landroid/security/keystore/KeyProperties$Digest;-><init>()V
 Landroid/security/keystore/KeyProperties$Digest;->allFromKeymaster(Ljava/util/Collection;)[Ljava/lang/String;
 Landroid/security/keystore/KeyProperties$Digest;->allToKeymaster([Ljava/lang/String;)[I
 Landroid/security/keystore/KeyProperties$Digest;->fromKeymaster(I)Ljava/lang/String;
 Landroid/security/keystore/KeyProperties$Digest;->fromKeymasterToSignatureAlgorithmDigest(I)Ljava/lang/String;
 Landroid/security/keystore/KeyProperties$Digest;->toKeymaster(Ljava/lang/String;)I
-Landroid/security/keystore/KeyProperties$DigestEnum;
-Landroid/security/keystore/KeyProperties$EncryptionPadding;
 Landroid/security/keystore/KeyProperties$EncryptionPadding;-><init>()V
 Landroid/security/keystore/KeyProperties$EncryptionPadding;->allToKeymaster([Ljava/lang/String;)[I
 Landroid/security/keystore/KeyProperties$EncryptionPadding;->fromKeymaster(I)Ljava/lang/String;
 Landroid/security/keystore/KeyProperties$EncryptionPadding;->toKeymaster(Ljava/lang/String;)I
-Landroid/security/keystore/KeyProperties$EncryptionPaddingEnum;
-Landroid/security/keystore/KeyProperties$KeyAlgorithm;
 Landroid/security/keystore/KeyProperties$KeyAlgorithm;-><init>()V
 Landroid/security/keystore/KeyProperties$KeyAlgorithm;->fromKeymasterAsymmetricKeyAlgorithm(I)Ljava/lang/String;
 Landroid/security/keystore/KeyProperties$KeyAlgorithm;->fromKeymasterSecretKeyAlgorithm(II)Ljava/lang/String;
 Landroid/security/keystore/KeyProperties$KeyAlgorithm;->toKeymasterAsymmetricKeyAlgorithm(Ljava/lang/String;)I
 Landroid/security/keystore/KeyProperties$KeyAlgorithm;->toKeymasterDigest(Ljava/lang/String;)I
 Landroid/security/keystore/KeyProperties$KeyAlgorithm;->toKeymasterSecretKeyAlgorithm(Ljava/lang/String;)I
-Landroid/security/keystore/KeyProperties$KeyAlgorithmEnum;
-Landroid/security/keystore/KeyProperties$Origin;
 Landroid/security/keystore/KeyProperties$Origin;-><init>()V
 Landroid/security/keystore/KeyProperties$Origin;->fromKeymaster(I)I
-Landroid/security/keystore/KeyProperties$OriginEnum;
-Landroid/security/keystore/KeyProperties$Purpose;
 Landroid/security/keystore/KeyProperties$Purpose;-><init>()V
 Landroid/security/keystore/KeyProperties$Purpose;->allFromKeymaster(Ljava/util/Collection;)I
 Landroid/security/keystore/KeyProperties$Purpose;->allToKeymaster(I)[I
 Landroid/security/keystore/KeyProperties$Purpose;->fromKeymaster(I)I
 Landroid/security/keystore/KeyProperties$Purpose;->toKeymaster(I)I
-Landroid/security/keystore/KeyProperties$PurposeEnum;
-Landroid/security/keystore/KeyProperties$SignaturePadding;
 Landroid/security/keystore/KeyProperties$SignaturePadding;-><init>()V
 Landroid/security/keystore/KeyProperties$SignaturePadding;->allToKeymaster([Ljava/lang/String;)[I
 Landroid/security/keystore/KeyProperties$SignaturePadding;->fromKeymaster(I)Ljava/lang/String;
 Landroid/security/keystore/KeyProperties$SignaturePadding;->toKeymaster(Ljava/lang/String;)I
-Landroid/security/keystore/KeyProperties$SignaturePaddingEnum;
 Landroid/security/keystore/KeyProperties;-><init>()V
 Landroid/security/keystore/KeyProperties;->getSetBitCount(I)I
 Landroid/security/keystore/KeyProperties;->getSetFlags(I)[I
@@ -66494,20 +62130,15 @@
 Landroid/security/keystore/KeyProtection;->mUserAuthenticationValidWhileOnBody:Z
 Landroid/security/keystore/KeyProtection;->mUserConfirmationRequired:Z
 Landroid/security/keystore/KeyProtection;->mUserPresenceRequred:Z
-Landroid/security/keystore/KeyStoreConnectException;
 Landroid/security/keystore/KeyStoreConnectException;-><init>()V
-Landroid/security/keystore/KeyStoreCryptoOperation;
 Landroid/security/keystore/KeyStoreCryptoOperation;->getOperationHandle()J
-Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$MainDataStream;
 Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$MainDataStream;-><init>(Landroid/security/KeyStore;Landroid/os/IBinder;)V
 Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$MainDataStream;->finish([B[B)Landroid/security/keymaster/OperationResult;
 Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$MainDataStream;->mKeyStore:Landroid/security/KeyStore;
 Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$MainDataStream;->mOperationToken:Landroid/os/IBinder;
 Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$MainDataStream;->update([B)Landroid/security/keymaster/OperationResult;
-Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$Stream;
 Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$Stream;->finish([B[B)Landroid/security/keymaster/OperationResult;
 Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$Stream;->update([B)Landroid/security/keymaster/OperationResult;
-Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;
 Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;-><init>(Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$Stream;)V
 Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;-><init>(Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer$Stream;I)V
 Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;->DEFAULT_MAX_CHUNK_SIZE:I
@@ -66523,12 +62154,10 @@
 Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;->mMaxChunkSize:I
 Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;->mProducedOutputSizeBytes:J
 Landroid/security/keystore/KeyStoreCryptoOperationChunkedStreamer;->update([BII)[B
-Landroid/security/keystore/KeyStoreCryptoOperationStreamer;
 Landroid/security/keystore/KeyStoreCryptoOperationStreamer;->doFinal([BII[B[B)[B
 Landroid/security/keystore/KeyStoreCryptoOperationStreamer;->getConsumedInputSizeBytes()J
 Landroid/security/keystore/KeyStoreCryptoOperationStreamer;->getProducedOutputSizeBytes()J
 Landroid/security/keystore/KeyStoreCryptoOperationStreamer;->update([BII)[B
-Landroid/security/keystore/ParcelableKeyGenParameterSpec;
 Landroid/security/keystore/ParcelableKeyGenParameterSpec;-><init>(Landroid/os/Parcel;)V
 Landroid/security/keystore/ParcelableKeyGenParameterSpec;-><init>(Landroid/security/keystore/KeyGenParameterSpec;)V
 Landroid/security/keystore/ParcelableKeyGenParameterSpec;->ALGORITHM_PARAMETER_SPEC_EC:I
@@ -66540,15 +62169,12 @@
 Landroid/security/keystore/ParcelableKeyGenParameterSpec;->readDateOrNull(Landroid/os/Parcel;)Ljava/util/Date;
 Landroid/security/keystore/ParcelableKeyGenParameterSpec;->writeOptionalDate(Landroid/os/Parcel;Ljava/util/Date;)V
 Landroid/security/keystore/recovery/KeyChainProtectionParams$Builder;->mInstance:Landroid/security/keystore/recovery/KeyChainProtectionParams;
-Landroid/security/keystore/recovery/KeyChainProtectionParams$LockScreenUiFormat;
-Landroid/security/keystore/recovery/KeyChainProtectionParams$UserSecretType;
 Landroid/security/keystore/recovery/KeyChainProtectionParams;-><init>()V
 Landroid/security/keystore/recovery/KeyChainProtectionParams;-><init>(Landroid/os/Parcel;)V
 Landroid/security/keystore/recovery/KeyChainProtectionParams;->mKeyDerivationParams:Landroid/security/keystore/recovery/KeyDerivationParams;
 Landroid/security/keystore/recovery/KeyChainProtectionParams;->mLockScreenUiFormat:Ljava/lang/Integer;
 Landroid/security/keystore/recovery/KeyChainProtectionParams;->mSecret:[B
 Landroid/security/keystore/recovery/KeyChainProtectionParams;->mUserSecretType:Ljava/lang/Integer;
-Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;
 Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;-><init>()V
 Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;->build()Landroid/security/keystore/recovery/KeyChainSnapshot;
 Landroid/security/keystore/recovery/KeyChainSnapshot$Builder;->mInstance:Landroid/security/keystore/recovery/KeyChainSnapshot;
@@ -66573,14 +62199,12 @@
 Landroid/security/keystore/recovery/KeyChainSnapshot;->mMaxAttempts:I
 Landroid/security/keystore/recovery/KeyChainSnapshot;->mServerParams:[B
 Landroid/security/keystore/recovery/KeyChainSnapshot;->mSnapshotVersion:I
-Landroid/security/keystore/recovery/KeyDerivationParams$KeyDerivationAlgorithm;
 Landroid/security/keystore/recovery/KeyDerivationParams;-><init>(I[B)V
 Landroid/security/keystore/recovery/KeyDerivationParams;-><init>(I[BI)V
 Landroid/security/keystore/recovery/KeyDerivationParams;-><init>(Landroid/os/Parcel;)V
 Landroid/security/keystore/recovery/KeyDerivationParams;->mAlgorithm:I
 Landroid/security/keystore/recovery/KeyDerivationParams;->mMemoryDifficulty:I
 Landroid/security/keystore/recovery/KeyDerivationParams;->mSalt:[B
-Landroid/security/keystore/recovery/RecoveryCertPath;
 Landroid/security/keystore/recovery/RecoveryCertPath;-><init>(Landroid/os/Parcel;)V
 Landroid/security/keystore/recovery/RecoveryCertPath;-><init>([B)V
 Landroid/security/keystore/recovery/RecoveryCertPath;->CERT_PATH_ENCODING:Ljava/lang/String;
@@ -66615,7 +62239,6 @@
 Landroid/security/keystore/recovery/RecoverySession;->newSessionId()Ljava/lang/String;
 Landroid/security/keystore/recovery/RecoverySession;->SESSION_ID_LENGTH_BYTES:I
 Landroid/security/keystore/recovery/RecoverySession;->TAG:Ljava/lang/String;
-Landroid/security/keystore/recovery/TrustedRootCertificates;
 Landroid/security/keystore/recovery/TrustedRootCertificates;-><init>()V
 Landroid/security/keystore/recovery/TrustedRootCertificates;->ALL_ROOT_CERTIFICATES:Landroid/util/ArrayMap;
 Landroid/security/keystore/recovery/TrustedRootCertificates;->constructRootCertificateMap()Landroid/util/ArrayMap;
@@ -66637,14 +62260,12 @@
 Landroid/security/keystore/recovery/WrappedApplicationKey;-><init>(Ljava/lang/String;[B)V
 Landroid/security/keystore/recovery/WrappedApplicationKey;->mAlias:Ljava/lang/String;
 Landroid/security/keystore/recovery/WrappedApplicationKey;->mEncryptedKeyMaterial:[B
-Landroid/security/keystore/recovery/X509CertificateParsingUtils;
 Landroid/security/keystore/recovery/X509CertificateParsingUtils;-><init>()V
 Landroid/security/keystore/recovery/X509CertificateParsingUtils;->CERT_FORMAT:Ljava/lang/String;
 Landroid/security/keystore/recovery/X509CertificateParsingUtils;->decodeBase64(Ljava/lang/String;)[B
 Landroid/security/keystore/recovery/X509CertificateParsingUtils;->decodeBase64Cert(Ljava/lang/String;)Ljava/security/cert/X509Certificate;
 Landroid/security/keystore/recovery/X509CertificateParsingUtils;->decodeCert(Ljava/io/InputStream;)Ljava/security/cert/X509Certificate;
 Landroid/security/keystore/recovery/X509CertificateParsingUtils;->decodeCert([B)Ljava/security/cert/X509Certificate;
-Landroid/security/keystore/UserAuthArgs;
 Landroid/security/keystore/UserAuthArgs;->getBoundToSpecificSecureUserId()J
 Landroid/security/keystore/UserAuthArgs;->getUserAuthenticationValidityDurationSeconds()I
 Landroid/security/keystore/UserAuthArgs;->isInvalidatedByBiometricEnrollment()Z
@@ -66657,7 +62278,6 @@
 Landroid/security/keystore/WrappedKeyEntry;->mTransformation:Ljava/lang/String;
 Landroid/security/keystore/WrappedKeyEntry;->mWrappedKeyBytes:[B
 Landroid/security/keystore/WrappedKeyEntry;->mWrappingKeyAlias:Ljava/lang/String;
-Landroid/security/KeyStore;
 Landroid/security/KeyStore;-><init>(Landroid/security/IKeystoreService;)V
 Landroid/security/KeyStore;->abort(Landroid/os/IBinder;)I
 Landroid/security/KeyStore;->addAuthToken([B)I
@@ -66752,7 +62372,6 @@
 Landroid/security/KeyStore;->VALUE_CORRUPTED:I
 Landroid/security/KeyStore;->verify(Ljava/lang/String;[B[B)Z
 Landroid/security/KeyStore;->WRONG_PASSWORD:I
-Landroid/security/KeystoreArguments;
 Landroid/security/KeystoreArguments;-><init>()V
 Landroid/security/KeystoreArguments;-><init>(Landroid/os/Parcel;)V
 Landroid/security/KeystoreArguments;->args:[[B
@@ -66762,7 +62381,6 @@
 Landroid/security/KeyStoreParameter;-><init>(I)V
 Landroid/security/KeyStoreParameter;->getFlags()I
 Landroid/security/KeyStoreParameter;->mFlags:I
-Landroid/security/net/config/ApplicationConfig;
 Landroid/security/net/config/ApplicationConfig;-><init>(Landroid/security/net/config/ConfigSource;)V
 Landroid/security/net/config/ApplicationConfig;->ensureInitialized()V
 Landroid/security/net/config/ApplicationConfig;->getConfigForHostname(Ljava/lang/String;)Landroid/security/net/config/NetworkSecurityConfig;
@@ -66781,7 +62399,6 @@
 Landroid/security/net/config/ApplicationConfig;->setDefaultInstance(Landroid/security/net/config/ApplicationConfig;)V
 Landroid/security/net/config/ApplicationConfig;->sInstance:Landroid/security/net/config/ApplicationConfig;
 Landroid/security/net/config/ApplicationConfig;->sLock:Ljava/lang/Object;
-Landroid/security/net/config/CertificatesEntryRef;
 Landroid/security/net/config/CertificatesEntryRef;-><init>(Landroid/security/net/config/CertificateSource;Z)V
 Landroid/security/net/config/CertificatesEntryRef;->findAllCertificatesByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
 Landroid/security/net/config/CertificatesEntryRef;->findByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Landroid/security/net/config/TrustAnchor;
@@ -66791,21 +62408,16 @@
 Landroid/security/net/config/CertificatesEntryRef;->mOverridesPins:Z
 Landroid/security/net/config/CertificatesEntryRef;->mSource:Landroid/security/net/config/CertificateSource;
 Landroid/security/net/config/CertificatesEntryRef;->overridesPins()Z
-Landroid/security/net/config/CertificateSource;
 Landroid/security/net/config/CertificateSource;->findAllByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
 Landroid/security/net/config/CertificateSource;->findByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate;
 Landroid/security/net/config/CertificateSource;->findBySubjectAndPublicKey(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate;
 Landroid/security/net/config/CertificateSource;->getCertificates()Ljava/util/Set;
 Landroid/security/net/config/CertificateSource;->handleTrustStorageUpdate()V
-Landroid/security/net/config/ConfigNetworkSecurityPolicy;
 Landroid/security/net/config/ConfigNetworkSecurityPolicy;-><init>(Landroid/security/net/config/ApplicationConfig;)V
 Landroid/security/net/config/ConfigNetworkSecurityPolicy;->mConfig:Landroid/security/net/config/ApplicationConfig;
-Landroid/security/net/config/ConfigSource;
 Landroid/security/net/config/ConfigSource;->getDefaultConfig()Landroid/security/net/config/NetworkSecurityConfig;
 Landroid/security/net/config/ConfigSource;->getPerDomainConfigs()Ljava/util/Set;
-Landroid/security/net/config/DirectoryCertificateSource$CertSelector;
 Landroid/security/net/config/DirectoryCertificateSource$CertSelector;->match(Ljava/security/cert/X509Certificate;)Z
-Landroid/security/net/config/DirectoryCertificateSource;
 Landroid/security/net/config/DirectoryCertificateSource;-><init>(Ljava/io/File;)V
 Landroid/security/net/config/DirectoryCertificateSource;->findAllByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
 Landroid/security/net/config/DirectoryCertificateSource;->findByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509Certificate;
@@ -66822,16 +62434,13 @@
 Landroid/security/net/config/DirectoryCertificateSource;->mDir:Ljava/io/File;
 Landroid/security/net/config/DirectoryCertificateSource;->mLock:Ljava/lang/Object;
 Landroid/security/net/config/DirectoryCertificateSource;->readCertificate(Ljava/lang/String;)Ljava/security/cert/X509Certificate;
-Landroid/security/net/config/Domain;
 Landroid/security/net/config/Domain;-><init>(Ljava/lang/String;Z)V
 Landroid/security/net/config/Domain;->hostname:Ljava/lang/String;
 Landroid/security/net/config/Domain;->subdomainsIncluded:Z
-Landroid/security/net/config/ManifestConfigSource$DefaultConfigSource;
 Landroid/security/net/config/ManifestConfigSource$DefaultConfigSource;-><init>(ZLandroid/content/pm/ApplicationInfo;)V
 Landroid/security/net/config/ManifestConfigSource$DefaultConfigSource;->getDefaultConfig()Landroid/security/net/config/NetworkSecurityConfig;
 Landroid/security/net/config/ManifestConfigSource$DefaultConfigSource;->getPerDomainConfigs()Ljava/util/Set;
 Landroid/security/net/config/ManifestConfigSource$DefaultConfigSource;->mDefaultConfig:Landroid/security/net/config/NetworkSecurityConfig;
-Landroid/security/net/config/ManifestConfigSource;
 Landroid/security/net/config/ManifestConfigSource;-><init>(Landroid/content/Context;)V
 Landroid/security/net/config/ManifestConfigSource;->DBG:Z
 Landroid/security/net/config/ManifestConfigSource;->getConfigSource()Landroid/security/net/config/ConfigSource;
@@ -66842,7 +62451,6 @@
 Landroid/security/net/config/ManifestConfigSource;->mConfigSource:Landroid/security/net/config/ConfigSource;
 Landroid/security/net/config/ManifestConfigSource;->mContext:Landroid/content/Context;
 Landroid/security/net/config/ManifestConfigSource;->mLock:Ljava/lang/Object;
-Landroid/security/net/config/NetworkSecurityConfig$Builder;
 Landroid/security/net/config/NetworkSecurityConfig$Builder;-><init>()V
 Landroid/security/net/config/NetworkSecurityConfig$Builder;->addCertificatesEntryRef(Landroid/security/net/config/CertificatesEntryRef;)Landroid/security/net/config/NetworkSecurityConfig$Builder;
 Landroid/security/net/config/NetworkSecurityConfig$Builder;->addCertificatesEntryRefs(Ljava/util/Collection;)Landroid/security/net/config/NetworkSecurityConfig$Builder;
@@ -66865,7 +62473,6 @@
 Landroid/security/net/config/NetworkSecurityConfig$Builder;->setHstsEnforced(Z)Landroid/security/net/config/NetworkSecurityConfig$Builder;
 Landroid/security/net/config/NetworkSecurityConfig$Builder;->setParent(Landroid/security/net/config/NetworkSecurityConfig$Builder;)Landroid/security/net/config/NetworkSecurityConfig$Builder;
 Landroid/security/net/config/NetworkSecurityConfig$Builder;->setPinSet(Landroid/security/net/config/PinSet;)Landroid/security/net/config/NetworkSecurityConfig$Builder;
-Landroid/security/net/config/NetworkSecurityConfig;
 Landroid/security/net/config/NetworkSecurityConfig;-><init>(ZZLandroid/security/net/config/PinSet;Ljava/util/List;)V
 Landroid/security/net/config/NetworkSecurityConfig;->DEFAULT_CLEARTEXT_TRAFFIC_PERMITTED:Z
 Landroid/security/net/config/NetworkSecurityConfig;->DEFAULT_HSTS_ENFORCED:Z
@@ -66887,11 +62494,9 @@
 Landroid/security/net/config/NetworkSecurityConfig;->mPins:Landroid/security/net/config/PinSet;
 Landroid/security/net/config/NetworkSecurityConfig;->mTrustManager:Landroid/security/net/config/NetworkSecurityTrustManager;
 Landroid/security/net/config/NetworkSecurityConfig;->mTrustManagerLock:Ljava/lang/Object;
-Landroid/security/net/config/NetworkSecurityConfigProvider;
 Landroid/security/net/config/NetworkSecurityConfigProvider;-><init>()V
 Landroid/security/net/config/NetworkSecurityConfigProvider;->install(Landroid/content/Context;)V
 Landroid/security/net/config/NetworkSecurityConfigProvider;->PREFIX:Ljava/lang/String;
-Landroid/security/net/config/NetworkSecurityTrustManager;
 Landroid/security/net/config/NetworkSecurityTrustManager;-><init>(Landroid/security/net/config/NetworkSecurityConfig;)V
 Landroid/security/net/config/NetworkSecurityTrustManager;->checkPins(Ljava/util/List;)V
 Landroid/security/net/config/NetworkSecurityTrustManager;->checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
@@ -66901,20 +62506,17 @@
 Landroid/security/net/config/NetworkSecurityTrustManager;->mIssuers:[Ljava/security/cert/X509Certificate;
 Landroid/security/net/config/NetworkSecurityTrustManager;->mIssuersLock:Ljava/lang/Object;
 Landroid/security/net/config/NetworkSecurityTrustManager;->mNetworkSecurityConfig:Landroid/security/net/config/NetworkSecurityConfig;
-Landroid/security/net/config/Pin;
 Landroid/security/net/config/Pin;-><init>(Ljava/lang/String;[B)V
 Landroid/security/net/config/Pin;->digest:[B
 Landroid/security/net/config/Pin;->digestAlgorithm:Ljava/lang/String;
 Landroid/security/net/config/Pin;->getDigestLength(Ljava/lang/String;)I
 Landroid/security/net/config/Pin;->isSupportedDigestAlgorithm(Ljava/lang/String;)Z
 Landroid/security/net/config/Pin;->mHashCode:I
-Landroid/security/net/config/PinSet;
 Landroid/security/net/config/PinSet;-><init>(Ljava/util/Set;J)V
 Landroid/security/net/config/PinSet;->EMPTY_PINSET:Landroid/security/net/config/PinSet;
 Landroid/security/net/config/PinSet;->expirationTime:J
 Landroid/security/net/config/PinSet;->getPinAlgorithms()Ljava/util/Set;
 Landroid/security/net/config/PinSet;->pins:Ljava/util/Set;
-Landroid/security/net/config/ResourceCertificateSource;
 Landroid/security/net/config/ResourceCertificateSource;-><init>(ILandroid/content/Context;)V
 Landroid/security/net/config/ResourceCertificateSource;->ensureInitialized()V
 Landroid/security/net/config/ResourceCertificateSource;->findAllByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
@@ -66927,30 +62529,23 @@
 Landroid/security/net/config/ResourceCertificateSource;->mIndex:Lcom/android/org/conscrypt/TrustedCertificateIndex;
 Landroid/security/net/config/ResourceCertificateSource;->mLock:Ljava/lang/Object;
 Landroid/security/net/config/ResourceCertificateSource;->mResourceId:I
-Landroid/security/net/config/RootTrustManager;
 Landroid/security/net/config/RootTrustManager;-><init>(Landroid/security/net/config/ApplicationConfig;)V
 Landroid/security/net/config/RootTrustManager;->isSameTrustConfiguration(Ljava/lang/String;Ljava/lang/String;)Z
 Landroid/security/net/config/RootTrustManager;->mConfig:Landroid/security/net/config/ApplicationConfig;
-Landroid/security/net/config/RootTrustManagerFactorySpi$ApplicationConfigParameters;
 Landroid/security/net/config/RootTrustManagerFactorySpi$ApplicationConfigParameters;-><init>(Landroid/security/net/config/ApplicationConfig;)V
 Landroid/security/net/config/RootTrustManagerFactorySpi$ApplicationConfigParameters;->config:Landroid/security/net/config/ApplicationConfig;
-Landroid/security/net/config/RootTrustManagerFactorySpi;
 Landroid/security/net/config/RootTrustManagerFactorySpi;-><init>()V
 Landroid/security/net/config/RootTrustManagerFactorySpi;->mApplicationConfig:Landroid/security/net/config/ApplicationConfig;
 Landroid/security/net/config/RootTrustManagerFactorySpi;->mConfig:Landroid/security/net/config/NetworkSecurityConfig;
-Landroid/security/net/config/SystemCertificateSource$NoPreloadHolder;
 Landroid/security/net/config/SystemCertificateSource$NoPreloadHolder;-><init>()V
 Landroid/security/net/config/SystemCertificateSource$NoPreloadHolder;->INSTANCE:Landroid/security/net/config/SystemCertificateSource;
-Landroid/security/net/config/SystemCertificateSource;
 Landroid/security/net/config/SystemCertificateSource;-><init>()V
 Landroid/security/net/config/SystemCertificateSource;->getInstance()Landroid/security/net/config/SystemCertificateSource;
 Landroid/security/net/config/SystemCertificateSource;->isCertMarkedAsRemoved(Ljava/lang/String;)Z
 Landroid/security/net/config/SystemCertificateSource;->mUserRemovedCaDir:Ljava/io/File;
-Landroid/security/net/config/TrustAnchor;
 Landroid/security/net/config/TrustAnchor;-><init>(Ljava/security/cert/X509Certificate;Z)V
 Landroid/security/net/config/TrustAnchor;->certificate:Ljava/security/cert/X509Certificate;
 Landroid/security/net/config/TrustAnchor;->overridesPins:Z
-Landroid/security/net/config/TrustedCertificateStoreAdapter;
 Landroid/security/net/config/TrustedCertificateStoreAdapter;-><init>(Landroid/security/net/config/NetworkSecurityConfig;)V
 Landroid/security/net/config/TrustedCertificateStoreAdapter;->aliases()Ljava/util/Set;
 Landroid/security/net/config/TrustedCertificateStoreAdapter;->allSystemAliases()Ljava/util/Set;
@@ -66967,17 +62562,13 @@
 Landroid/security/net/config/TrustedCertificateStoreAdapter;->isUserAddedCertificate(Ljava/security/cert/X509Certificate;)Z
 Landroid/security/net/config/TrustedCertificateStoreAdapter;->mConfig:Landroid/security/net/config/NetworkSecurityConfig;
 Landroid/security/net/config/TrustedCertificateStoreAdapter;->userAliases()Ljava/util/Set;
-Landroid/security/net/config/UserCertificateSource$NoPreloadHolder;
 Landroid/security/net/config/UserCertificateSource$NoPreloadHolder;-><init>()V
 Landroid/security/net/config/UserCertificateSource$NoPreloadHolder;->INSTANCE:Landroid/security/net/config/UserCertificateSource;
-Landroid/security/net/config/UserCertificateSource;
 Landroid/security/net/config/UserCertificateSource;-><init>()V
 Landroid/security/net/config/UserCertificateSource;->getInstance()Landroid/security/net/config/UserCertificateSource;
 Landroid/security/net/config/UserCertificateSource;->isCertMarkedAsRemoved(Ljava/lang/String;)Z
-Landroid/security/net/config/XmlConfigSource$ParserException;
 Landroid/security/net/config/XmlConfigSource$ParserException;-><init>(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)V
 Landroid/security/net/config/XmlConfigSource$ParserException;-><init>(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;Ljava/lang/Throwable;)V
-Landroid/security/net/config/XmlConfigSource;
 Landroid/security/net/config/XmlConfigSource;-><init>(Landroid/content/Context;ILandroid/content/pm/ApplicationInfo;)V
 Landroid/security/net/config/XmlConfigSource;->addDebugAnchorsIfNeeded(Landroid/security/net/config/NetworkSecurityConfig$Builder;Landroid/security/net/config/NetworkSecurityConfig$Builder;)V
 Landroid/security/net/config/XmlConfigSource;->CONFIG_BASE:I
@@ -67008,11 +62599,9 @@
 Landroid/security/NetworkSecurityPolicy;->handleTrustStorageUpdate()V
 Landroid/security/NetworkSecurityPolicy;->INSTANCE:Landroid/security/NetworkSecurityPolicy;
 Landroid/security/NetworkSecurityPolicy;->setCleartextTrafficPermitted(Z)V
-Landroid/security/Scrypt;
 Landroid/security/Scrypt;-><init>()V
 Landroid/security/Scrypt;->nativeScrypt([B[BIIII)[B
 Landroid/security/Scrypt;->scrypt([B[BIIII)[B
-Landroid/security/SystemKeyStore;
 Landroid/security/SystemKeyStore;-><init>()V
 Landroid/security/SystemKeyStore;->deleteKey(Ljava/lang/String;)V
 Landroid/security/SystemKeyStore;->generateNewKey(ILjava/lang/String;Ljava/lang/String;)[B
@@ -67025,10 +62614,7 @@
 Landroid/security/SystemKeyStore;->retrieveKeyHexString(Ljava/lang/String;)Ljava/lang/String;
 Landroid/security/SystemKeyStore;->SYSTEM_KEYSTORE_DIRECTORY:Ljava/lang/String;
 Landroid/security/SystemKeyStore;->toHexString([B)Ljava/lang/String;
-Landroid/service/autofill/AutofillFieldClassificationService$AutofillFieldClassificationServiceWrapper;
-Landroid/service/autofill/AutofillFieldClassificationService$AutofillFieldClassificationServiceWrapper;-><init>()V
 Landroid/service/autofill/AutofillFieldClassificationService$AutofillFieldClassificationServiceWrapper;->getScores(Landroid/os/RemoteCallback;Ljava/lang/String;Landroid/os/Bundle;Ljava/util/List;[Ljava/lang/String;)V
-Landroid/service/autofill/AutofillFieldClassificationService$Scores;
 Landroid/service/autofill/AutofillFieldClassificationService$Scores;-><init>(Landroid/os/Parcel;)V
 Landroid/service/autofill/AutofillFieldClassificationService$Scores;-><init>([[F)V
 Landroid/service/autofill/AutofillFieldClassificationService$Scores;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -67042,7 +62628,6 @@
 Landroid/service/autofill/AutofillService;->mHandler:Landroid/os/Handler;
 Landroid/service/autofill/AutofillService;->mInterface:Landroid/service/autofill/IAutoFillService;
 Landroid/service/autofill/AutofillService;->TAG:Ljava/lang/String;
-Landroid/service/autofill/AutofillServiceInfo;
 Landroid/service/autofill/AutofillServiceInfo;-><init>(Landroid/content/Context;Landroid/content/ComponentName;I)V
 Landroid/service/autofill/AutofillServiceInfo;-><init>(Landroid/content/Context;Landroid/content/pm/ServiceInfo;)V
 Landroid/service/autofill/AutofillServiceInfo;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
@@ -67094,7 +62679,6 @@
 Landroid/service/autofill/Dataset$Builder;->mPresentation:Landroid/widget/RemoteViews;
 Landroid/service/autofill/Dataset$Builder;->setLifeTheUniverseAndEverything(Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillValue;Landroid/widget/RemoteViews;Landroid/service/autofill/Dataset$DatasetFieldFilter;)V
 Landroid/service/autofill/Dataset$Builder;->throwIfDestroyed()V
-Landroid/service/autofill/Dataset$DatasetFieldFilter;
 Landroid/service/autofill/Dataset$DatasetFieldFilter;-><init>(Ljava/util/regex/Pattern;)V
 Landroid/service/autofill/Dataset$DatasetFieldFilter;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/service/autofill/Dataset$DatasetFieldFilter;->pattern:Ljava/util/regex/Pattern;
@@ -67140,7 +62724,6 @@
 Landroid/service/autofill/FillContext;->mRequestId:I
 Landroid/service/autofill/FillContext;->mStructure:Landroid/app/assist/AssistStructure;
 Landroid/service/autofill/FillContext;->mViewNodeLookupTable:Landroid/util/ArrayMap;
-Landroid/service/autofill/FillEventHistory$Event$EventIds;
 Landroid/service/autofill/FillEventHistory$Event;-><init>(ILjava/lang/String;Landroid/os/Bundle;Ljava/util/List;Landroid/util/ArraySet;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;[Landroid/view/autofill/AutofillId;[Landroid/service/autofill/FieldClassification;)V
 Landroid/service/autofill/FillEventHistory$Event;->mChangedDatasetIds:Ljava/util/ArrayList;
 Landroid/service/autofill/FillEventHistory$Event;->mChangedFieldIds:Ljava/util/ArrayList;
@@ -67160,7 +62743,6 @@
 Landroid/service/autofill/FillEventHistory;->mEvents:Ljava/util/List;
 Landroid/service/autofill/FillEventHistory;->mSessionId:I
 Landroid/service/autofill/FillEventHistory;->TAG:Ljava/lang/String;
-Landroid/service/autofill/FillRequest$RequestFlags;
 Landroid/service/autofill/FillRequest;-><init>(ILjava/util/ArrayList;Landroid/os/Bundle;I)V
 Landroid/service/autofill/FillRequest;-><init>(Landroid/os/Parcel;)V
 Landroid/service/autofill/FillRequest;->INVALID_REQUEST_ID:I
@@ -67184,7 +62766,6 @@
 Landroid/service/autofill/FillResponse$Builder;->throwIfAuthenticationCalled()V
 Landroid/service/autofill/FillResponse$Builder;->throwIfDestroyed()V
 Landroid/service/autofill/FillResponse$Builder;->throwIfDisableAutofillCalled()V
-Landroid/service/autofill/FillResponse$FillResponseFlags;
 Landroid/service/autofill/FillResponse;-><init>(Landroid/service/autofill/FillResponse$Builder;)V
 Landroid/service/autofill/FillResponse;->getAuthentication()Landroid/content/IntentSender;
 Landroid/service/autofill/FillResponse;->getAuthenticationIds()[Landroid/view/autofill/AutofillId;
@@ -67212,51 +62793,42 @@
 Landroid/service/autofill/FillResponse;->mRequestId:I
 Landroid/service/autofill/FillResponse;->mSaveInfo:Landroid/service/autofill/SaveInfo;
 Landroid/service/autofill/FillResponse;->setRequestId(I)V
-Landroid/service/autofill/IAutofillFieldClassificationService$Stub$Proxy;
 Landroid/service/autofill/IAutofillFieldClassificationService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/autofill/IAutofillFieldClassificationService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/autofill/IAutofillFieldClassificationService$Stub$Proxy;->getScores(Landroid/os/RemoteCallback;Ljava/lang/String;Landroid/os/Bundle;Ljava/util/List;[Ljava/lang/String;)V
 Landroid/service/autofill/IAutofillFieldClassificationService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/service/autofill/IAutofillFieldClassificationService$Stub;
 Landroid/service/autofill/IAutofillFieldClassificationService$Stub;-><init>()V
 Landroid/service/autofill/IAutofillFieldClassificationService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/autofill/IAutofillFieldClassificationService;
 Landroid/service/autofill/IAutofillFieldClassificationService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/autofill/IAutofillFieldClassificationService$Stub;->TRANSACTION_getScores:I
-Landroid/service/autofill/IAutofillFieldClassificationService;
 Landroid/service/autofill/IAutofillFieldClassificationService;->getScores(Landroid/os/RemoteCallback;Ljava/lang/String;Landroid/os/Bundle;Ljava/util/List;[Ljava/lang/String;)V
-Landroid/service/autofill/IAutoFillService$Stub$Proxy;
 Landroid/service/autofill/IAutoFillService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/autofill/IAutoFillService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/autofill/IAutoFillService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/autofill/IAutoFillService$Stub$Proxy;->onConnectedStateChanged(Z)V
 Landroid/service/autofill/IAutoFillService$Stub$Proxy;->onFillRequest(Landroid/service/autofill/FillRequest;Landroid/service/autofill/IFillCallback;)V
 Landroid/service/autofill/IAutoFillService$Stub$Proxy;->onSaveRequest(Landroid/service/autofill/SaveRequest;Landroid/service/autofill/ISaveCallback;)V
-Landroid/service/autofill/IAutoFillService$Stub;
 Landroid/service/autofill/IAutoFillService$Stub;-><init>()V
 Landroid/service/autofill/IAutoFillService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/autofill/IAutoFillService;
 Landroid/service/autofill/IAutoFillService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/autofill/IAutoFillService$Stub;->TRANSACTION_onConnectedStateChanged:I
 Landroid/service/autofill/IAutoFillService$Stub;->TRANSACTION_onFillRequest:I
 Landroid/service/autofill/IAutoFillService$Stub;->TRANSACTION_onSaveRequest:I
-Landroid/service/autofill/IAutoFillService;
 Landroid/service/autofill/IAutoFillService;->onConnectedStateChanged(Z)V
 Landroid/service/autofill/IAutoFillService;->onFillRequest(Landroid/service/autofill/FillRequest;Landroid/service/autofill/IFillCallback;)V
 Landroid/service/autofill/IAutoFillService;->onSaveRequest(Landroid/service/autofill/SaveRequest;Landroid/service/autofill/ISaveCallback;)V
-Landroid/service/autofill/IFillCallback$Stub$Proxy;
 Landroid/service/autofill/IFillCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/autofill/IFillCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/autofill/IFillCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/autofill/IFillCallback$Stub$Proxy;->onCancellable(Landroid/os/ICancellationSignal;)V
 Landroid/service/autofill/IFillCallback$Stub$Proxy;->onFailure(ILjava/lang/CharSequence;)V
 Landroid/service/autofill/IFillCallback$Stub$Proxy;->onSuccess(Landroid/service/autofill/FillResponse;)V
-Landroid/service/autofill/IFillCallback$Stub;
 Landroid/service/autofill/IFillCallback$Stub;-><init>()V
 Landroid/service/autofill/IFillCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/autofill/IFillCallback;
 Landroid/service/autofill/IFillCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/autofill/IFillCallback$Stub;->TRANSACTION_onCancellable:I
 Landroid/service/autofill/IFillCallback$Stub;->TRANSACTION_onFailure:I
 Landroid/service/autofill/IFillCallback$Stub;->TRANSACTION_onSuccess:I
-Landroid/service/autofill/IFillCallback;
 Landroid/service/autofill/IFillCallback;->onCancellable(Landroid/os/ICancellationSignal;)V
 Landroid/service/autofill/IFillCallback;->onFailure(ILjava/lang/CharSequence;)V
 Landroid/service/autofill/IFillCallback;->onSuccess(Landroid/service/autofill/FillResponse;)V
@@ -67265,7 +62837,6 @@
 Landroid/service/autofill/ImageTransformation$Builder;->mId:Landroid/view/autofill/AutofillId;
 Landroid/service/autofill/ImageTransformation$Builder;->mOptions:Ljava/util/ArrayList;
 Landroid/service/autofill/ImageTransformation$Builder;->throwIfDestroyed()V
-Landroid/service/autofill/ImageTransformation$Option;
 Landroid/service/autofill/ImageTransformation$Option;-><init>(Ljava/util/regex/Pattern;ILjava/lang/CharSequence;)V
 Landroid/service/autofill/ImageTransformation$Option;->contentDescription:Ljava/lang/CharSequence;
 Landroid/service/autofill/ImageTransformation$Option;->pattern:Ljava/util/regex/Pattern;
@@ -67278,19 +62849,16 @@
 Landroid/service/autofill/InternalTransformation;->apply(Landroid/service/autofill/ValueFinder;Landroid/widget/RemoteViews;I)V
 Landroid/service/autofill/InternalTransformation;->batchApply(Landroid/service/autofill/ValueFinder;Landroid/widget/RemoteViews;Ljava/util/ArrayList;)Z
 Landroid/service/autofill/InternalTransformation;->TAG:Ljava/lang/String;
-Landroid/service/autofill/ISaveCallback$Stub$Proxy;
 Landroid/service/autofill/ISaveCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/autofill/ISaveCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/autofill/ISaveCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/autofill/ISaveCallback$Stub$Proxy;->onFailure(Ljava/lang/CharSequence;)V
 Landroid/service/autofill/ISaveCallback$Stub$Proxy;->onSuccess(Landroid/content/IntentSender;)V
-Landroid/service/autofill/ISaveCallback$Stub;
 Landroid/service/autofill/ISaveCallback$Stub;-><init>()V
 Landroid/service/autofill/ISaveCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/autofill/ISaveCallback;
 Landroid/service/autofill/ISaveCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/autofill/ISaveCallback$Stub;->TRANSACTION_onFailure:I
 Landroid/service/autofill/ISaveCallback$Stub;->TRANSACTION_onSuccess:I
-Landroid/service/autofill/ISaveCallback;
 Landroid/service/autofill/ISaveCallback;->onFailure(Ljava/lang/CharSequence;)V
 Landroid/service/autofill/ISaveCallback;->onSuccess(Landroid/content/IntentSender;)V
 Landroid/service/autofill/LuhnChecksumValidator;->isLuhnChecksumValid(Ljava/lang/String;)Z
@@ -67318,9 +62886,6 @@
 Landroid/service/autofill/SaveInfo$Builder;->mType:I
 Landroid/service/autofill/SaveInfo$Builder;->mValidator:Landroid/service/autofill/InternalValidator;
 Landroid/service/autofill/SaveInfo$Builder;->throwIfDestroyed()V
-Landroid/service/autofill/SaveInfo$NegativeButtonStyle;
-Landroid/service/autofill/SaveInfo$SaveDataType;
-Landroid/service/autofill/SaveInfo$SaveInfoFlags;
 Landroid/service/autofill/SaveInfo;-><init>(Landroid/service/autofill/SaveInfo$Builder;)V
 Landroid/service/autofill/SaveInfo;->getCustomDescription()Landroid/service/autofill/CustomDescription;
 Landroid/service/autofill/SaveInfo;->getDescription()Ljava/lang/CharSequence;
@@ -67385,7 +62950,6 @@
 Landroid/service/autofill/UserData;->TAG:Ljava/lang/String;
 Landroid/service/autofill/Validators;-><init>()V
 Landroid/service/autofill/Validators;->getInternalValidators([Landroid/service/autofill/Validator;)[Landroid/service/autofill/InternalValidator;
-Landroid/service/carrier/CarrierIdentifier$MatchType;
 Landroid/service/carrier/CarrierIdentifier$MatchType;->ALL:I
 Landroid/service/carrier/CarrierIdentifier$MatchType;->GID1:I
 Landroid/service/carrier/CarrierIdentifier$MatchType;->GID2:I
@@ -67399,8 +62963,6 @@
 Landroid/service/carrier/CarrierIdentifier;->mMnc:Ljava/lang/String;
 Landroid/service/carrier/CarrierIdentifier;->mSpn:Ljava/lang/String;
 Landroid/service/carrier/CarrierIdentifier;->readFromParcel(Landroid/os/Parcel;)V
-Landroid/service/carrier/CarrierMessagingService$ICarrierMessagingWrapper;
-Landroid/service/carrier/CarrierMessagingService$ICarrierMessagingWrapper;-><init>()V
 Landroid/service/carrier/CarrierMessagingService$ICarrierMessagingWrapper;->downloadMms(Landroid/net/Uri;ILandroid/net/Uri;Landroid/service/carrier/ICarrierMessagingCallback;)V
 Landroid/service/carrier/CarrierMessagingService$ICarrierMessagingWrapper;->filterSms(Landroid/service/carrier/MessagePdu;Ljava/lang/String;IILandroid/service/carrier/ICarrierMessagingCallback;)V
 Landroid/service/carrier/CarrierMessagingService$ICarrierMessagingWrapper;->sendDataSms([BILjava/lang/String;IILandroid/service/carrier/ICarrierMessagingCallback;)V
@@ -67414,8 +62976,6 @@
 Landroid/service/carrier/CarrierMessagingService$SendSmsResult;->mMessageRef:I
 Landroid/service/carrier/CarrierMessagingService$SendSmsResult;->mSendStatus:I
 Landroid/service/carrier/CarrierMessagingService;->mWrapper:Landroid/service/carrier/CarrierMessagingService$ICarrierMessagingWrapper;
-Landroid/service/carrier/CarrierService$ICarrierServiceWrapper;
-Landroid/service/carrier/CarrierService$ICarrierServiceWrapper;-><init>()V
 Landroid/service/carrier/CarrierService$ICarrierServiceWrapper;->getCarrierConfig(Landroid/service/carrier/CarrierIdentifier;Landroid/os/ResultReceiver;)V
 Landroid/service/carrier/CarrierService$ICarrierServiceWrapper;->KEY_CONFIG_BUNDLE:Ljava/lang/String;
 Landroid/service/carrier/CarrierService$ICarrierServiceWrapper;->RESULT_ERROR:I
@@ -67423,7 +62983,6 @@
 Landroid/service/carrier/CarrierService;->LOG_TAG:Ljava/lang/String;
 Landroid/service/carrier/CarrierService;->mStubWrapper:Landroid/service/carrier/ICarrierService$Stub;
 Landroid/service/carrier/CarrierService;->sRegistry:Lcom/android/internal/telephony/ITelephonyRegistry;
-Landroid/service/carrier/ICarrierMessagingCallback$Stub$Proxy;
 Landroid/service/carrier/ICarrierMessagingCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/carrier/ICarrierMessagingCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/carrier/ICarrierMessagingCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -67432,7 +62991,6 @@
 Landroid/service/carrier/ICarrierMessagingCallback$Stub$Proxy;->onSendMmsComplete(I[B)V
 Landroid/service/carrier/ICarrierMessagingCallback$Stub$Proxy;->onSendMultipartSmsComplete(I[I)V
 Landroid/service/carrier/ICarrierMessagingCallback$Stub$Proxy;->onSendSmsComplete(II)V
-Landroid/service/carrier/ICarrierMessagingCallback$Stub;
 Landroid/service/carrier/ICarrierMessagingCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/carrier/ICarrierMessagingCallback;
 Landroid/service/carrier/ICarrierMessagingCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/carrier/ICarrierMessagingCallback$Stub;->TRANSACTION_onDownloadMmsComplete:I
@@ -67440,13 +62998,11 @@
 Landroid/service/carrier/ICarrierMessagingCallback$Stub;->TRANSACTION_onSendMmsComplete:I
 Landroid/service/carrier/ICarrierMessagingCallback$Stub;->TRANSACTION_onSendMultipartSmsComplete:I
 Landroid/service/carrier/ICarrierMessagingCallback$Stub;->TRANSACTION_onSendSmsComplete:I
-Landroid/service/carrier/ICarrierMessagingCallback;
 Landroid/service/carrier/ICarrierMessagingCallback;->onDownloadMmsComplete(I)V
 Landroid/service/carrier/ICarrierMessagingCallback;->onFilterComplete(I)V
 Landroid/service/carrier/ICarrierMessagingCallback;->onSendMmsComplete(I[B)V
 Landroid/service/carrier/ICarrierMessagingCallback;->onSendMultipartSmsComplete(I[I)V
 Landroid/service/carrier/ICarrierMessagingCallback;->onSendSmsComplete(II)V
-Landroid/service/carrier/ICarrierMessagingService$Stub$Proxy;
 Landroid/service/carrier/ICarrierMessagingService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/carrier/ICarrierMessagingService$Stub$Proxy;->downloadMms(Landroid/net/Uri;ILandroid/net/Uri;Landroid/service/carrier/ICarrierMessagingCallback;)V
 Landroid/service/carrier/ICarrierMessagingService$Stub$Proxy;->filterSms(Landroid/service/carrier/MessagePdu;Ljava/lang/String;IILandroid/service/carrier/ICarrierMessagingCallback;)V
@@ -67456,7 +63012,6 @@
 Landroid/service/carrier/ICarrierMessagingService$Stub$Proxy;->sendMms(Landroid/net/Uri;ILandroid/net/Uri;Landroid/service/carrier/ICarrierMessagingCallback;)V
 Landroid/service/carrier/ICarrierMessagingService$Stub$Proxy;->sendMultipartTextSms(Ljava/util/List;ILjava/lang/String;ILandroid/service/carrier/ICarrierMessagingCallback;)V
 Landroid/service/carrier/ICarrierMessagingService$Stub$Proxy;->sendTextSms(Ljava/lang/String;ILjava/lang/String;ILandroid/service/carrier/ICarrierMessagingCallback;)V
-Landroid/service/carrier/ICarrierMessagingService$Stub;
 Landroid/service/carrier/ICarrierMessagingService$Stub;-><init>()V
 Landroid/service/carrier/ICarrierMessagingService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/carrier/ICarrierMessagingService;
 Landroid/service/carrier/ICarrierMessagingService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -67466,23 +63021,19 @@
 Landroid/service/carrier/ICarrierMessagingService$Stub;->TRANSACTION_sendMms:I
 Landroid/service/carrier/ICarrierMessagingService$Stub;->TRANSACTION_sendMultipartTextSms:I
 Landroid/service/carrier/ICarrierMessagingService$Stub;->TRANSACTION_sendTextSms:I
-Landroid/service/carrier/ICarrierMessagingService;
 Landroid/service/carrier/ICarrierMessagingService;->downloadMms(Landroid/net/Uri;ILandroid/net/Uri;Landroid/service/carrier/ICarrierMessagingCallback;)V
 Landroid/service/carrier/ICarrierMessagingService;->sendDataSms([BILjava/lang/String;IILandroid/service/carrier/ICarrierMessagingCallback;)V
 Landroid/service/carrier/ICarrierMessagingService;->sendMms(Landroid/net/Uri;ILandroid/net/Uri;Landroid/service/carrier/ICarrierMessagingCallback;)V
 Landroid/service/carrier/ICarrierMessagingService;->sendMultipartTextSms(Ljava/util/List;ILjava/lang/String;ILandroid/service/carrier/ICarrierMessagingCallback;)V
 Landroid/service/carrier/ICarrierMessagingService;->sendTextSms(Ljava/lang/String;ILjava/lang/String;ILandroid/service/carrier/ICarrierMessagingCallback;)V
-Landroid/service/carrier/ICarrierService$Stub$Proxy;
 Landroid/service/carrier/ICarrierService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/carrier/ICarrierService$Stub$Proxy;->getCarrierConfig(Landroid/service/carrier/CarrierIdentifier;Landroid/os/ResultReceiver;)V
 Landroid/service/carrier/ICarrierService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/carrier/ICarrierService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/service/carrier/ICarrierService$Stub;
 Landroid/service/carrier/ICarrierService$Stub;-><init>()V
 Landroid/service/carrier/ICarrierService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/carrier/ICarrierService;
 Landroid/service/carrier/ICarrierService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/carrier/ICarrierService$Stub;->TRANSACTION_getCarrierConfig:I
-Landroid/service/carrier/ICarrierService;
 Landroid/service/carrier/ICarrierService;->getCarrierConfig(Landroid/service/carrier/CarrierIdentifier;Landroid/os/ResultReceiver;)V
 Landroid/service/carrier/MessagePdu;->mPduList:Ljava/util/List;
 Landroid/service/carrier/MessagePdu;->NULL_LENGTH:I
@@ -67493,43 +63044,32 @@
 Landroid/service/chooser/ChooserTarget;->mScore:F
 Landroid/service/chooser/ChooserTarget;->mTitle:Ljava/lang/CharSequence;
 Landroid/service/chooser/ChooserTarget;->TAG:Ljava/lang/String;
-Landroid/service/chooser/ChooserTargetService$IChooserTargetServiceWrapper;
-Landroid/service/chooser/ChooserTargetService$IChooserTargetServiceWrapper;-><init>()V
 Landroid/service/chooser/ChooserTargetService$IChooserTargetServiceWrapper;->getChooserTargets(Landroid/content/ComponentName;Landroid/content/IntentFilter;Landroid/service/chooser/IChooserTargetResult;)V
 Landroid/service/chooser/ChooserTargetService;->DEBUG:Z
 Landroid/service/chooser/ChooserTargetService;->mWrapper:Landroid/service/chooser/ChooserTargetService$IChooserTargetServiceWrapper;
 Landroid/service/chooser/ChooserTargetService;->TAG:Ljava/lang/String;
-Landroid/service/chooser/IChooserTargetResult$Stub$Proxy;
 Landroid/service/chooser/IChooserTargetResult$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/chooser/IChooserTargetResult$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/chooser/IChooserTargetResult$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/chooser/IChooserTargetResult$Stub$Proxy;->sendResult(Ljava/util/List;)V
-Landroid/service/chooser/IChooserTargetResult$Stub;
 Landroid/service/chooser/IChooserTargetResult$Stub;-><init>()V
 Landroid/service/chooser/IChooserTargetResult$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/chooser/IChooserTargetResult;
 Landroid/service/chooser/IChooserTargetResult$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/chooser/IChooserTargetResult$Stub;->TRANSACTION_sendResult:I
-Landroid/service/chooser/IChooserTargetResult;
 Landroid/service/chooser/IChooserTargetResult;->sendResult(Ljava/util/List;)V
-Landroid/service/chooser/IChooserTargetService$Stub$Proxy;
 Landroid/service/chooser/IChooserTargetService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/chooser/IChooserTargetService$Stub$Proxy;->getChooserTargets(Landroid/content/ComponentName;Landroid/content/IntentFilter;Landroid/service/chooser/IChooserTargetResult;)V
 Landroid/service/chooser/IChooserTargetService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/chooser/IChooserTargetService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/service/chooser/IChooserTargetService$Stub;
 Landroid/service/chooser/IChooserTargetService$Stub;-><init>()V
 Landroid/service/chooser/IChooserTargetService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/chooser/IChooserTargetService;
 Landroid/service/chooser/IChooserTargetService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/chooser/IChooserTargetService$Stub;->TRANSACTION_getChooserTargets:I
-Landroid/service/chooser/IChooserTargetService;
 Landroid/service/chooser/IChooserTargetService;->getChooserTargets(Landroid/content/ComponentName;Landroid/content/IntentFilter;Landroid/service/chooser/IChooserTargetResult;)V
-Landroid/service/dreams/DreamManagerInternal;
 Landroid/service/dreams/DreamManagerInternal;-><init>()V
 Landroid/service/dreams/DreamManagerInternal;->isDreaming()Z
 Landroid/service/dreams/DreamManagerInternal;->startDream(Z)V
 Landroid/service/dreams/DreamManagerInternal;->stopDream(Z)V
-Landroid/service/dreams/DreamService$DreamServiceWrapper;
-Landroid/service/dreams/DreamService$DreamServiceWrapper;-><init>()V
 Landroid/service/dreams/DreamService$DreamServiceWrapper;->attach(Landroid/os/IBinder;ZLandroid/os/IRemoteCallback;)V
 Landroid/service/dreams/DreamService$DreamServiceWrapper;->detach()V
 Landroid/service/dreams/DreamService$DreamServiceWrapper;->wakeUp()V
@@ -67568,7 +63108,6 @@
 Landroid/service/dreams/DreamService;->TAG:Ljava/lang/String;
 Landroid/service/dreams/DreamService;->updateDoze()V
 Landroid/service/dreams/DreamService;->wakeUp(Z)V
-Landroid/service/dreams/IDreamManager$Stub$Proxy;
 Landroid/service/dreams/IDreamManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/dreams/IDreamManager$Stub$Proxy;->awaken()V
 Landroid/service/dreams/IDreamManager$Stub$Proxy;->dream()V
@@ -67582,7 +63121,6 @@
 Landroid/service/dreams/IDreamManager$Stub$Proxy;->startDozing(Landroid/os/IBinder;II)V
 Landroid/service/dreams/IDreamManager$Stub$Proxy;->stopDozing(Landroid/os/IBinder;)V
 Landroid/service/dreams/IDreamManager$Stub$Proxy;->testDream(Landroid/content/ComponentName;)V
-Landroid/service/dreams/IDreamManager$Stub;
 Landroid/service/dreams/IDreamManager$Stub;-><init>()V
 Landroid/service/dreams/IDreamManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/dreams/IDreamManager$Stub;->TRANSACTION_awaken:I
@@ -67595,31 +63133,26 @@
 Landroid/service/dreams/IDreamManager$Stub;->TRANSACTION_startDozing:I
 Landroid/service/dreams/IDreamManager$Stub;->TRANSACTION_stopDozing:I
 Landroid/service/dreams/IDreamManager$Stub;->TRANSACTION_testDream:I
-Landroid/service/dreams/IDreamManager;
 Landroid/service/dreams/IDreamManager;->finishSelf(Landroid/os/IBinder;Z)V
 Landroid/service/dreams/IDreamManager;->getDefaultDreamComponent()Landroid/content/ComponentName;
 Landroid/service/dreams/IDreamManager;->startDozing(Landroid/os/IBinder;II)V
 Landroid/service/dreams/IDreamManager;->stopDozing(Landroid/os/IBinder;)V
 Landroid/service/dreams/IDreamManager;->testDream(Landroid/content/ComponentName;)V
-Landroid/service/dreams/IDreamService$Stub$Proxy;
 Landroid/service/dreams/IDreamService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/dreams/IDreamService$Stub$Proxy;->attach(Landroid/os/IBinder;ZLandroid/os/IRemoteCallback;)V
 Landroid/service/dreams/IDreamService$Stub$Proxy;->detach()V
 Landroid/service/dreams/IDreamService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/dreams/IDreamService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/dreams/IDreamService$Stub$Proxy;->wakeUp()V
-Landroid/service/dreams/IDreamService$Stub;
 Landroid/service/dreams/IDreamService$Stub;-><init>()V
 Landroid/service/dreams/IDreamService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/dreams/IDreamService;
 Landroid/service/dreams/IDreamService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/dreams/IDreamService$Stub;->TRANSACTION_attach:I
 Landroid/service/dreams/IDreamService$Stub;->TRANSACTION_detach:I
 Landroid/service/dreams/IDreamService$Stub;->TRANSACTION_wakeUp:I
-Landroid/service/dreams/IDreamService;
 Landroid/service/dreams/IDreamService;->attach(Landroid/os/IBinder;ZLandroid/os/IRemoteCallback;)V
 Landroid/service/dreams/IDreamService;->detach()V
 Landroid/service/dreams/IDreamService;->wakeUp()V
-Landroid/service/dreams/Sandman;
 Landroid/service/dreams/Sandman;-><init>()V
 Landroid/service/dreams/Sandman;->isScreenSaverActivatedOnDock(Landroid/content/Context;)Z
 Landroid/service/dreams/Sandman;->isScreenSaverEnabled(Landroid/content/Context;)Z
@@ -67651,8 +63184,6 @@
 Landroid/service/euicc/EuiccProfileInfo;->mState:I
 Landroid/service/euicc/EuiccProfileInfo;->PROFILE_CLASS_UNSET:I
 Landroid/service/euicc/EuiccProfileInfo;->PROFILE_STATE_UNSET:I
-Landroid/service/euicc/EuiccService$IEuiccServiceWrapper;
-Landroid/service/euicc/EuiccService$IEuiccServiceWrapper;-><init>()V
 Landroid/service/euicc/EuiccService$IEuiccServiceWrapper;->deleteSubscription(ILjava/lang/String;Landroid/service/euicc/IDeleteSubscriptionCallback;)V
 Landroid/service/euicc/EuiccService$IEuiccServiceWrapper;->downloadSubscription(ILandroid/telephony/euicc/DownloadableSubscription;ZZLandroid/service/euicc/IDownloadSubscriptionCallback;)V
 Landroid/service/euicc/EuiccService$IEuiccServiceWrapper;->eraseSubscriptions(ILandroid/service/euicc/IEraseSubscriptionsCallback;)V
@@ -67677,40 +63208,30 @@
 Landroid/service/euicc/GetEuiccProfileInfoListResult;->mIsRemovable:Z
 Landroid/service/euicc/GetEuiccProfileInfoListResult;->mProfiles:[Landroid/service/euicc/EuiccProfileInfo;
 Landroid/service/euicc/GetEuiccProfileInfoListResult;->result:I
-Landroid/service/euicc/IDeleteSubscriptionCallback$Stub$Proxy;
 Landroid/service/euicc/IDeleteSubscriptionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/euicc/IDeleteSubscriptionCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/euicc/IDeleteSubscriptionCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/euicc/IDeleteSubscriptionCallback$Stub$Proxy;->onComplete(I)V
-Landroid/service/euicc/IDeleteSubscriptionCallback$Stub;
 Landroid/service/euicc/IDeleteSubscriptionCallback$Stub;-><init>()V
 Landroid/service/euicc/IDeleteSubscriptionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/euicc/IDeleteSubscriptionCallback;
 Landroid/service/euicc/IDeleteSubscriptionCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/euicc/IDeleteSubscriptionCallback$Stub;->TRANSACTION_onComplete:I
-Landroid/service/euicc/IDeleteSubscriptionCallback;
-Landroid/service/euicc/IDownloadSubscriptionCallback$Stub$Proxy;
 Landroid/service/euicc/IDownloadSubscriptionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/euicc/IDownloadSubscriptionCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/euicc/IDownloadSubscriptionCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/euicc/IDownloadSubscriptionCallback$Stub$Proxy;->onComplete(I)V
-Landroid/service/euicc/IDownloadSubscriptionCallback$Stub;
 Landroid/service/euicc/IDownloadSubscriptionCallback$Stub;-><init>()V
 Landroid/service/euicc/IDownloadSubscriptionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/euicc/IDownloadSubscriptionCallback;
 Landroid/service/euicc/IDownloadSubscriptionCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/euicc/IDownloadSubscriptionCallback$Stub;->TRANSACTION_onComplete:I
-Landroid/service/euicc/IDownloadSubscriptionCallback;
-Landroid/service/euicc/IEraseSubscriptionsCallback$Stub$Proxy;
 Landroid/service/euicc/IEraseSubscriptionsCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/euicc/IEraseSubscriptionsCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/euicc/IEraseSubscriptionsCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/euicc/IEraseSubscriptionsCallback$Stub$Proxy;->onComplete(I)V
-Landroid/service/euicc/IEraseSubscriptionsCallback$Stub;
 Landroid/service/euicc/IEraseSubscriptionsCallback$Stub;-><init>()V
 Landroid/service/euicc/IEraseSubscriptionsCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/euicc/IEraseSubscriptionsCallback;
 Landroid/service/euicc/IEraseSubscriptionsCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/euicc/IEraseSubscriptionsCallback$Stub;->TRANSACTION_onComplete:I
-Landroid/service/euicc/IEraseSubscriptionsCallback;
-Landroid/service/euicc/IEuiccService$Stub$Proxy;
 Landroid/service/euicc/IEuiccService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/euicc/IEuiccService$Stub$Proxy;->deleteSubscription(ILjava/lang/String;Landroid/service/euicc/IDeleteSubscriptionCallback;)V
 Landroid/service/euicc/IEuiccService$Stub$Proxy;->downloadSubscription(ILandroid/telephony/euicc/DownloadableSubscription;ZZLandroid/service/euicc/IDownloadSubscriptionCallback;)V
@@ -67727,7 +63248,6 @@
 Landroid/service/euicc/IEuiccService$Stub$Proxy;->startOtaIfNecessary(ILandroid/service/euicc/IOtaStatusChangedCallback;)V
 Landroid/service/euicc/IEuiccService$Stub$Proxy;->switchToSubscription(ILjava/lang/String;ZLandroid/service/euicc/ISwitchToSubscriptionCallback;)V
 Landroid/service/euicc/IEuiccService$Stub$Proxy;->updateSubscriptionNickname(ILjava/lang/String;Ljava/lang/String;Landroid/service/euicc/IUpdateSubscriptionNicknameCallback;)V
-Landroid/service/euicc/IEuiccService$Stub;
 Landroid/service/euicc/IEuiccService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/euicc/IEuiccService;
 Landroid/service/euicc/IEuiccService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/euicc/IEuiccService$Stub;->TRANSACTION_deleteSubscription:I
@@ -67743,7 +63263,6 @@
 Landroid/service/euicc/IEuiccService$Stub;->TRANSACTION_startOtaIfNecessary:I
 Landroid/service/euicc/IEuiccService$Stub;->TRANSACTION_switchToSubscription:I
 Landroid/service/euicc/IEuiccService$Stub;->TRANSACTION_updateSubscriptionNickname:I
-Landroid/service/euicc/IEuiccService;
 Landroid/service/euicc/IEuiccService;->deleteSubscription(ILjava/lang/String;Landroid/service/euicc/IDeleteSubscriptionCallback;)V
 Landroid/service/euicc/IEuiccService;->downloadSubscription(ILandroid/telephony/euicc/DownloadableSubscription;ZZLandroid/service/euicc/IDownloadSubscriptionCallback;)V
 Landroid/service/euicc/IEuiccService;->eraseSubscriptions(ILandroid/service/euicc/IEraseSubscriptionsCallback;)V
@@ -67757,123 +63276,92 @@
 Landroid/service/euicc/IEuiccService;->startOtaIfNecessary(ILandroid/service/euicc/IOtaStatusChangedCallback;)V
 Landroid/service/euicc/IEuiccService;->switchToSubscription(ILjava/lang/String;ZLandroid/service/euicc/ISwitchToSubscriptionCallback;)V
 Landroid/service/euicc/IEuiccService;->updateSubscriptionNickname(ILjava/lang/String;Ljava/lang/String;Landroid/service/euicc/IUpdateSubscriptionNicknameCallback;)V
-Landroid/service/euicc/IGetDefaultDownloadableSubscriptionListCallback$Stub$Proxy;
 Landroid/service/euicc/IGetDefaultDownloadableSubscriptionListCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/euicc/IGetDefaultDownloadableSubscriptionListCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/euicc/IGetDefaultDownloadableSubscriptionListCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/euicc/IGetDefaultDownloadableSubscriptionListCallback$Stub$Proxy;->onComplete(Landroid/service/euicc/GetDefaultDownloadableSubscriptionListResult;)V
-Landroid/service/euicc/IGetDefaultDownloadableSubscriptionListCallback$Stub;
 Landroid/service/euicc/IGetDefaultDownloadableSubscriptionListCallback$Stub;-><init>()V
 Landroid/service/euicc/IGetDefaultDownloadableSubscriptionListCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/euicc/IGetDefaultDownloadableSubscriptionListCallback;
 Landroid/service/euicc/IGetDefaultDownloadableSubscriptionListCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/euicc/IGetDefaultDownloadableSubscriptionListCallback$Stub;->TRANSACTION_onComplete:I
-Landroid/service/euicc/IGetDefaultDownloadableSubscriptionListCallback;
-Landroid/service/euicc/IGetDownloadableSubscriptionMetadataCallback$Stub$Proxy;
 Landroid/service/euicc/IGetDownloadableSubscriptionMetadataCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/euicc/IGetDownloadableSubscriptionMetadataCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/euicc/IGetDownloadableSubscriptionMetadataCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/euicc/IGetDownloadableSubscriptionMetadataCallback$Stub$Proxy;->onComplete(Landroid/service/euicc/GetDownloadableSubscriptionMetadataResult;)V
-Landroid/service/euicc/IGetDownloadableSubscriptionMetadataCallback$Stub;
 Landroid/service/euicc/IGetDownloadableSubscriptionMetadataCallback$Stub;-><init>()V
 Landroid/service/euicc/IGetDownloadableSubscriptionMetadataCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/euicc/IGetDownloadableSubscriptionMetadataCallback;
 Landroid/service/euicc/IGetDownloadableSubscriptionMetadataCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/euicc/IGetDownloadableSubscriptionMetadataCallback$Stub;->TRANSACTION_onComplete:I
-Landroid/service/euicc/IGetDownloadableSubscriptionMetadataCallback;
-Landroid/service/euicc/IGetEidCallback$Stub$Proxy;
 Landroid/service/euicc/IGetEidCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/euicc/IGetEidCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/euicc/IGetEidCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/euicc/IGetEidCallback$Stub$Proxy;->onSuccess(Ljava/lang/String;)V
-Landroid/service/euicc/IGetEidCallback$Stub;
 Landroid/service/euicc/IGetEidCallback$Stub;-><init>()V
 Landroid/service/euicc/IGetEidCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/euicc/IGetEidCallback;
 Landroid/service/euicc/IGetEidCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/euicc/IGetEidCallback$Stub;->TRANSACTION_onSuccess:I
-Landroid/service/euicc/IGetEidCallback;
-Landroid/service/euicc/IGetEuiccInfoCallback$Stub$Proxy;
 Landroid/service/euicc/IGetEuiccInfoCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/euicc/IGetEuiccInfoCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/euicc/IGetEuiccInfoCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/euicc/IGetEuiccInfoCallback$Stub$Proxy;->onSuccess(Landroid/telephony/euicc/EuiccInfo;)V
-Landroid/service/euicc/IGetEuiccInfoCallback$Stub;
 Landroid/service/euicc/IGetEuiccInfoCallback$Stub;-><init>()V
 Landroid/service/euicc/IGetEuiccInfoCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/euicc/IGetEuiccInfoCallback;
 Landroid/service/euicc/IGetEuiccInfoCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/euicc/IGetEuiccInfoCallback$Stub;->TRANSACTION_onSuccess:I
-Landroid/service/euicc/IGetEuiccInfoCallback;
-Landroid/service/euicc/IGetEuiccProfileInfoListCallback$Stub$Proxy;
 Landroid/service/euicc/IGetEuiccProfileInfoListCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/euicc/IGetEuiccProfileInfoListCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/euicc/IGetEuiccProfileInfoListCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/euicc/IGetEuiccProfileInfoListCallback$Stub$Proxy;->onComplete(Landroid/service/euicc/GetEuiccProfileInfoListResult;)V
-Landroid/service/euicc/IGetEuiccProfileInfoListCallback$Stub;
 Landroid/service/euicc/IGetEuiccProfileInfoListCallback$Stub;-><init>()V
 Landroid/service/euicc/IGetEuiccProfileInfoListCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/euicc/IGetEuiccProfileInfoListCallback;
 Landroid/service/euicc/IGetEuiccProfileInfoListCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/euicc/IGetEuiccProfileInfoListCallback$Stub;->TRANSACTION_onComplete:I
-Landroid/service/euicc/IGetEuiccProfileInfoListCallback;
-Landroid/service/euicc/IGetOtaStatusCallback$Stub$Proxy;
 Landroid/service/euicc/IGetOtaStatusCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/euicc/IGetOtaStatusCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/euicc/IGetOtaStatusCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/euicc/IGetOtaStatusCallback$Stub$Proxy;->onSuccess(I)V
-Landroid/service/euicc/IGetOtaStatusCallback$Stub;
 Landroid/service/euicc/IGetOtaStatusCallback$Stub;-><init>()V
 Landroid/service/euicc/IGetOtaStatusCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/euicc/IGetOtaStatusCallback;
 Landroid/service/euicc/IGetOtaStatusCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/euicc/IGetOtaStatusCallback$Stub;->TRANSACTION_onSuccess:I
-Landroid/service/euicc/IGetOtaStatusCallback;
 Landroid/service/euicc/IGetOtaStatusCallback;->onSuccess(I)V
-Landroid/service/euicc/IOtaStatusChangedCallback$Stub$Proxy;
 Landroid/service/euicc/IOtaStatusChangedCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/euicc/IOtaStatusChangedCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/euicc/IOtaStatusChangedCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/euicc/IOtaStatusChangedCallback$Stub$Proxy;->onOtaStatusChanged(I)V
-Landroid/service/euicc/IOtaStatusChangedCallback$Stub;
 Landroid/service/euicc/IOtaStatusChangedCallback$Stub;-><init>()V
 Landroid/service/euicc/IOtaStatusChangedCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/euicc/IOtaStatusChangedCallback;
 Landroid/service/euicc/IOtaStatusChangedCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/euicc/IOtaStatusChangedCallback$Stub;->TRANSACTION_onOtaStatusChanged:I
-Landroid/service/euicc/IOtaStatusChangedCallback;
 Landroid/service/euicc/IOtaStatusChangedCallback;->onOtaStatusChanged(I)V
-Landroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback$Stub$Proxy;
 Landroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback$Stub$Proxy;->onComplete(I)V
-Landroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback$Stub;
 Landroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback$Stub;-><init>()V
 Landroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback;
 Landroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback$Stub;->TRANSACTION_onComplete:I
-Landroid/service/euicc/IRetainSubscriptionsForFactoryResetCallback;
-Landroid/service/euicc/ISwitchToSubscriptionCallback$Stub$Proxy;
 Landroid/service/euicc/ISwitchToSubscriptionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/euicc/ISwitchToSubscriptionCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/euicc/ISwitchToSubscriptionCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/euicc/ISwitchToSubscriptionCallback$Stub$Proxy;->onComplete(I)V
-Landroid/service/euicc/ISwitchToSubscriptionCallback$Stub;
 Landroid/service/euicc/ISwitchToSubscriptionCallback$Stub;-><init>()V
 Landroid/service/euicc/ISwitchToSubscriptionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/euicc/ISwitchToSubscriptionCallback;
 Landroid/service/euicc/ISwitchToSubscriptionCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/euicc/ISwitchToSubscriptionCallback$Stub;->TRANSACTION_onComplete:I
-Landroid/service/euicc/ISwitchToSubscriptionCallback;
-Landroid/service/euicc/IUpdateSubscriptionNicknameCallback$Stub$Proxy;
 Landroid/service/euicc/IUpdateSubscriptionNicknameCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/euicc/IUpdateSubscriptionNicknameCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/euicc/IUpdateSubscriptionNicknameCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/euicc/IUpdateSubscriptionNicknameCallback$Stub$Proxy;->onComplete(I)V
-Landroid/service/euicc/IUpdateSubscriptionNicknameCallback$Stub;
 Landroid/service/euicc/IUpdateSubscriptionNicknameCallback$Stub;-><init>()V
 Landroid/service/euicc/IUpdateSubscriptionNicknameCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/euicc/IUpdateSubscriptionNicknameCallback;
 Landroid/service/euicc/IUpdateSubscriptionNicknameCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/euicc/IUpdateSubscriptionNicknameCallback$Stub;->TRANSACTION_onComplete:I
-Landroid/service/euicc/IUpdateSubscriptionNicknameCallback;
 Landroid/service/media/CameraPrewarmService;->ACTION_PREWARM:Ljava/lang/String;
 Landroid/service/media/CameraPrewarmService;->mCameraIntentFired:Z
 Landroid/service/media/CameraPrewarmService;->mHandler:Landroid/os/Handler;
 Landroid/service/media/CameraPrewarmService;->MSG_CAMERA_FIRED:I
-Landroid/service/media/IMediaBrowserService$Stub$Proxy;
 Landroid/service/media/IMediaBrowserService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/media/IMediaBrowserService$Stub$Proxy;->addSubscription(Ljava/lang/String;Landroid/os/IBinder;Landroid/os/Bundle;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
 Landroid/service/media/IMediaBrowserService$Stub$Proxy;->addSubscriptionDeprecated(Ljava/lang/String;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
@@ -67884,7 +63372,6 @@
 Landroid/service/media/IMediaBrowserService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/media/IMediaBrowserService$Stub$Proxy;->removeSubscription(Ljava/lang/String;Landroid/os/IBinder;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
 Landroid/service/media/IMediaBrowserService$Stub$Proxy;->removeSubscriptionDeprecated(Ljava/lang/String;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
-Landroid/service/media/IMediaBrowserService$Stub;
 Landroid/service/media/IMediaBrowserService$Stub;-><init>()V
 Landroid/service/media/IMediaBrowserService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/media/IMediaBrowserService;
 Landroid/service/media/IMediaBrowserService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -67895,7 +63382,6 @@
 Landroid/service/media/IMediaBrowserService$Stub;->TRANSACTION_getMediaItem:I
 Landroid/service/media/IMediaBrowserService$Stub;->TRANSACTION_removeSubscription:I
 Landroid/service/media/IMediaBrowserService$Stub;->TRANSACTION_removeSubscriptionDeprecated:I
-Landroid/service/media/IMediaBrowserService;
 Landroid/service/media/IMediaBrowserService;->addSubscription(Ljava/lang/String;Landroid/os/IBinder;Landroid/os/Bundle;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
 Landroid/service/media/IMediaBrowserService;->addSubscriptionDeprecated(Ljava/lang/String;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
 Landroid/service/media/IMediaBrowserService;->connect(Ljava/lang/String;Landroid/os/Bundle;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
@@ -67903,7 +63389,6 @@
 Landroid/service/media/IMediaBrowserService;->getMediaItem(Ljava/lang/String;Landroid/os/ResultReceiver;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
 Landroid/service/media/IMediaBrowserService;->removeSubscription(Ljava/lang/String;Landroid/os/IBinder;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
 Landroid/service/media/IMediaBrowserService;->removeSubscriptionDeprecated(Ljava/lang/String;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
-Landroid/service/media/IMediaBrowserServiceCallbacks$Stub$Proxy;
 Landroid/service/media/IMediaBrowserServiceCallbacks$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/media/IMediaBrowserServiceCallbacks$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/media/IMediaBrowserServiceCallbacks$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -67911,18 +63396,14 @@
 Landroid/service/media/IMediaBrowserServiceCallbacks$Stub$Proxy;->onConnectFailed()V
 Landroid/service/media/IMediaBrowserServiceCallbacks$Stub$Proxy;->onLoadChildren(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;)V
 Landroid/service/media/IMediaBrowserServiceCallbacks$Stub$Proxy;->onLoadChildrenWithOptions(Ljava/lang/String;Landroid/content/pm/ParceledListSlice;Landroid/os/Bundle;)V
-Landroid/service/media/IMediaBrowserServiceCallbacks$Stub;
 Landroid/service/media/IMediaBrowserServiceCallbacks$Stub;-><init>()V
 Landroid/service/media/IMediaBrowserServiceCallbacks$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/media/IMediaBrowserServiceCallbacks$Stub;->TRANSACTION_onConnect:I
 Landroid/service/media/IMediaBrowserServiceCallbacks$Stub;->TRANSACTION_onConnectFailed:I
 Landroid/service/media/IMediaBrowserServiceCallbacks$Stub;->TRANSACTION_onLoadChildren:I
 Landroid/service/media/IMediaBrowserServiceCallbacks$Stub;->TRANSACTION_onLoadChildrenWithOptions:I
-Landroid/service/media/IMediaBrowserServiceCallbacks;
 Landroid/service/media/MediaBrowserService$BrowserRoot;->mExtras:Landroid/os/Bundle;
 Landroid/service/media/MediaBrowserService$BrowserRoot;->mRootId:Ljava/lang/String;
-Landroid/service/media/MediaBrowserService$ConnectionRecord;
-Landroid/service/media/MediaBrowserService$ConnectionRecord;-><init>()V
 Landroid/service/media/MediaBrowserService$ConnectionRecord;->callbacks:Landroid/service/media/IMediaBrowserServiceCallbacks;
 Landroid/service/media/MediaBrowserService$ConnectionRecord;->pid:I
 Landroid/service/media/MediaBrowserService$ConnectionRecord;->pkg:Ljava/lang/String;
@@ -67930,16 +63411,12 @@
 Landroid/service/media/MediaBrowserService$ConnectionRecord;->rootHints:Landroid/os/Bundle;
 Landroid/service/media/MediaBrowserService$ConnectionRecord;->subscriptions:Ljava/util/HashMap;
 Landroid/service/media/MediaBrowserService$ConnectionRecord;->uid:I
-Landroid/service/media/MediaBrowserService$Result;-><init>(Ljava/lang/Object;)V
 Landroid/service/media/MediaBrowserService$Result;->isDone()Z
 Landroid/service/media/MediaBrowserService$Result;->mDebug:Ljava/lang/Object;
 Landroid/service/media/MediaBrowserService$Result;->mDetachCalled:Z
 Landroid/service/media/MediaBrowserService$Result;->mSendResultCalled:Z
 Landroid/service/media/MediaBrowserService$Result;->onResultSent(Ljava/lang/Object;I)V
 Landroid/service/media/MediaBrowserService$Result;->setFlags(I)V
-Landroid/service/media/MediaBrowserService$ResultFlags;
-Landroid/service/media/MediaBrowserService$ServiceBinder;
-Landroid/service/media/MediaBrowserService$ServiceBinder;-><init>()V
 Landroid/service/media/MediaBrowserService$ServiceBinder;->addSubscription(Ljava/lang/String;Landroid/os/IBinder;Landroid/os/Bundle;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
 Landroid/service/media/MediaBrowserService$ServiceBinder;->addSubscriptionDeprecated(Ljava/lang/String;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
 Landroid/service/media/MediaBrowserService$ServiceBinder;->connect(Ljava/lang/String;Landroid/os/Bundle;Landroid/service/media/IMediaBrowserServiceCallbacks;)V
@@ -67971,10 +63448,8 @@
 Landroid/service/notification/Adjustment;->mPackage:Ljava/lang/String;
 Landroid/service/notification/Adjustment;->mSignals:Landroid/os/Bundle;
 Landroid/service/notification/Adjustment;->mUser:I
-Landroid/service/notification/Condition$State;
 Landroid/service/notification/Condition;->isValidState(I)Z
 Landroid/service/notification/Condition;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/service/notification/ConditionProto;
 Landroid/service/notification/ConditionProto;-><init>()V
 Landroid/service/notification/ConditionProto;->FLAGS:J
 Landroid/service/notification/ConditionProto;->ICON:J
@@ -67987,13 +63462,9 @@
 Landroid/service/notification/ConditionProto;->STATE_TRUE:I
 Landroid/service/notification/ConditionProto;->STATE_UNKNOWN:I
 Landroid/service/notification/ConditionProto;->SUMMARY:J
-Landroid/service/notification/ConditionProviderService$H;
-Landroid/service/notification/ConditionProviderService$H;-><init>()V
 Landroid/service/notification/ConditionProviderService$H;->ON_CONNECTED:I
 Landroid/service/notification/ConditionProviderService$H;->ON_SUBSCRIBE:I
 Landroid/service/notification/ConditionProviderService$H;->ON_UNSUBSCRIBE:I
-Landroid/service/notification/ConditionProviderService$Provider;
-Landroid/service/notification/ConditionProviderService$Provider;-><init>()V
 Landroid/service/notification/ConditionProviderService$Provider;->onConnected()V
 Landroid/service/notification/ConditionProviderService$Provider;->onSubscribe(Landroid/net/Uri;)V
 Landroid/service/notification/ConditionProviderService$Provider;->onUnsubscribe(Landroid/net/Uri;)V
@@ -68002,37 +63473,30 @@
 Landroid/service/notification/ConditionProviderService;->mNoMan:Landroid/app/INotificationManager;
 Landroid/service/notification/ConditionProviderService;->mProvider:Landroid/service/notification/ConditionProviderService$Provider;
 Landroid/service/notification/ConditionProviderService;->TAG:Ljava/lang/String;
-Landroid/service/notification/IConditionListener$Stub$Proxy;
 Landroid/service/notification/IConditionListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/notification/IConditionListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/notification/IConditionListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/notification/IConditionListener$Stub$Proxy;->onConditionsReceived([Landroid/service/notification/Condition;)V
-Landroid/service/notification/IConditionListener$Stub;
 Landroid/service/notification/IConditionListener$Stub;-><init>()V
 Landroid/service/notification/IConditionListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/notification/IConditionListener;
 Landroid/service/notification/IConditionListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/notification/IConditionListener$Stub;->TRANSACTION_onConditionsReceived:I
-Landroid/service/notification/IConditionListener;
 Landroid/service/notification/IConditionListener;->onConditionsReceived([Landroid/service/notification/Condition;)V
-Landroid/service/notification/IConditionProvider$Stub$Proxy;
 Landroid/service/notification/IConditionProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/notification/IConditionProvider$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/notification/IConditionProvider$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/notification/IConditionProvider$Stub$Proxy;->onConnected()V
 Landroid/service/notification/IConditionProvider$Stub$Proxy;->onSubscribe(Landroid/net/Uri;)V
 Landroid/service/notification/IConditionProvider$Stub$Proxy;->onUnsubscribe(Landroid/net/Uri;)V
-Landroid/service/notification/IConditionProvider$Stub;
 Landroid/service/notification/IConditionProvider$Stub;-><init>()V
 Landroid/service/notification/IConditionProvider$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/notification/IConditionProvider;
 Landroid/service/notification/IConditionProvider$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/notification/IConditionProvider$Stub;->TRANSACTION_onConnected:I
 Landroid/service/notification/IConditionProvider$Stub;->TRANSACTION_onSubscribe:I
 Landroid/service/notification/IConditionProvider$Stub;->TRANSACTION_onUnsubscribe:I
-Landroid/service/notification/IConditionProvider;
 Landroid/service/notification/IConditionProvider;->onConnected()V
 Landroid/service/notification/IConditionProvider;->onSubscribe(Landroid/net/Uri;)V
 Landroid/service/notification/IConditionProvider;->onUnsubscribe(Landroid/net/Uri;)V
-Landroid/service/notification/INotificationListener$Stub$Proxy;
 Landroid/service/notification/INotificationListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/notification/INotificationListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/notification/INotificationListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -68046,7 +63510,6 @@
 Landroid/service/notification/INotificationListener$Stub$Proxy;->onNotificationRankingUpdate(Landroid/service/notification/NotificationRankingUpdate;)V
 Landroid/service/notification/INotificationListener$Stub$Proxy;->onNotificationRemoved(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;Landroid/service/notification/NotificationStats;I)V
 Landroid/service/notification/INotificationListener$Stub$Proxy;->onNotificationSnoozedUntilContext(Landroid/service/notification/IStatusBarNotificationHolder;Ljava/lang/String;)V
-Landroid/service/notification/INotificationListener$Stub;
 Landroid/service/notification/INotificationListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/notification/INotificationListener;
 Landroid/service/notification/INotificationListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/notification/INotificationListener$Stub;->TRANSACTION_onInterruptionFilterChanged:I
@@ -68059,7 +63522,6 @@
 Landroid/service/notification/INotificationListener$Stub;->TRANSACTION_onNotificationRankingUpdate:I
 Landroid/service/notification/INotificationListener$Stub;->TRANSACTION_onNotificationRemoved:I
 Landroid/service/notification/INotificationListener$Stub;->TRANSACTION_onNotificationSnoozedUntilContext:I
-Landroid/service/notification/INotificationListener;
 Landroid/service/notification/INotificationListener;->onInterruptionFilterChanged(I)V
 Landroid/service/notification/INotificationListener;->onListenerConnected(Landroid/service/notification/NotificationRankingUpdate;)V
 Landroid/service/notification/INotificationListener;->onListenerHintsChanged(I)V
@@ -68070,54 +63532,39 @@
 Landroid/service/notification/INotificationListener;->onNotificationRankingUpdate(Landroid/service/notification/NotificationRankingUpdate;)V
 Landroid/service/notification/INotificationListener;->onNotificationRemoved(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;Landroid/service/notification/NotificationStats;I)V
 Landroid/service/notification/INotificationListener;->onNotificationSnoozedUntilContext(Landroid/service/notification/IStatusBarNotificationHolder;Ljava/lang/String;)V
-Landroid/service/notification/IStatusBarNotificationHolder$Stub$Proxy;
 Landroid/service/notification/IStatusBarNotificationHolder$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/notification/IStatusBarNotificationHolder$Stub$Proxy;->get()Landroid/service/notification/StatusBarNotification;
 Landroid/service/notification/IStatusBarNotificationHolder$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/notification/IStatusBarNotificationHolder$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/service/notification/IStatusBarNotificationHolder$Stub;
 Landroid/service/notification/IStatusBarNotificationHolder$Stub;-><init>()V
 Landroid/service/notification/IStatusBarNotificationHolder$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/notification/IStatusBarNotificationHolder;
 Landroid/service/notification/IStatusBarNotificationHolder$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/notification/IStatusBarNotificationHolder$Stub;->TRANSACTION_get:I
-Landroid/service/notification/IStatusBarNotificationHolder;
 Landroid/service/notification/IStatusBarNotificationHolder;->get()Landroid/service/notification/StatusBarNotification;
-Landroid/service/notification/ListenersDisablingEffectsProto;
 Landroid/service/notification/ListenersDisablingEffectsProto;-><init>()V
 Landroid/service/notification/ListenersDisablingEffectsProto;->HINT:J
 Landroid/service/notification/ListenersDisablingEffectsProto;->LISTENERS:J
-Landroid/service/notification/ManagedServiceInfoProto;
 Landroid/service/notification/ManagedServiceInfoProto;-><init>()V
 Landroid/service/notification/ManagedServiceInfoProto;->COMPONENT:J
 Landroid/service/notification/ManagedServiceInfoProto;->IS_GUEST:J
 Landroid/service/notification/ManagedServiceInfoProto;->IS_SYSTEM:J
 Landroid/service/notification/ManagedServiceInfoProto;->SERVICE:J
 Landroid/service/notification/ManagedServiceInfoProto;->USER_ID:J
-Landroid/service/notification/ManagedServicesProto$ServiceProto;
-Landroid/service/notification/ManagedServicesProto$ServiceProto;-><init>()V
 Landroid/service/notification/ManagedServicesProto$ServiceProto;->IS_PRIMARY:J
 Landroid/service/notification/ManagedServicesProto$ServiceProto;->NAME:J
 Landroid/service/notification/ManagedServicesProto$ServiceProto;->USER_ID:J
-Landroid/service/notification/ManagedServicesProto;
 Landroid/service/notification/ManagedServicesProto;-><init>()V
 Landroid/service/notification/ManagedServicesProto;->APPROVED:J
 Landroid/service/notification/ManagedServicesProto;->CAPTION:J
 Landroid/service/notification/ManagedServicesProto;->ENABLED:J
 Landroid/service/notification/ManagedServicesProto;->LIVE_SERVICES:J
 Landroid/service/notification/ManagedServicesProto;->SNOOZED:J
-Landroid/service/notification/NotificationAssistantService$MyHandler;
-Landroid/service/notification/NotificationAssistantService$MyHandler;-><init>(Landroid/os/Looper;)V
 Landroid/service/notification/NotificationAssistantService$MyHandler;->MSG_ON_NOTIFICATION_ENQUEUED:I
 Landroid/service/notification/NotificationAssistantService$MyHandler;->MSG_ON_NOTIFICATION_SNOOZED:I
-Landroid/service/notification/NotificationAssistantService$NotificationAssistantServiceWrapper;
-Landroid/service/notification/NotificationAssistantService$NotificationAssistantServiceWrapper;-><init>()V
 Landroid/service/notification/NotificationAssistantService$NotificationAssistantServiceWrapper;->onNotificationEnqueued(Landroid/service/notification/IStatusBarNotificationHolder;)V
 Landroid/service/notification/NotificationAssistantService$NotificationAssistantServiceWrapper;->onNotificationSnoozedUntilContext(Landroid/service/notification/IStatusBarNotificationHolder;Ljava/lang/String;)V
 Landroid/service/notification/NotificationAssistantService;->mHandler:Landroid/os/Handler;
 Landroid/service/notification/NotificationAssistantService;->TAG:Ljava/lang/String;
-Landroid/service/notification/NotificationListenerService$ChannelOrGroupModificationTypes;
-Landroid/service/notification/NotificationListenerService$MyHandler;
-Landroid/service/notification/NotificationListenerService$MyHandler;-><init>(Landroid/os/Looper;)V
 Landroid/service/notification/NotificationListenerService$MyHandler;->MSG_ON_INTERRUPTION_FILTER_CHANGED:I
 Landroid/service/notification/NotificationListenerService$MyHandler;->MSG_ON_LISTENER_CONNECTED:I
 Landroid/service/notification/NotificationListenerService$MyHandler;->MSG_ON_LISTENER_HINTS_CHANGED:I
@@ -68126,8 +63573,6 @@
 Landroid/service/notification/NotificationListenerService$MyHandler;->MSG_ON_NOTIFICATION_POSTED:I
 Landroid/service/notification/NotificationListenerService$MyHandler;->MSG_ON_NOTIFICATION_RANKING_UPDATE:I
 Landroid/service/notification/NotificationListenerService$MyHandler;->MSG_ON_NOTIFICATION_REMOVED:I
-Landroid/service/notification/NotificationListenerService$NotificationListenerWrapper;
-Landroid/service/notification/NotificationListenerService$NotificationListenerWrapper;-><init>()V
 Landroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onInterruptionFilterChanged(I)V
 Landroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onListenerConnected(Landroid/service/notification/NotificationRankingUpdate;)V
 Landroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onListenerHintsChanged(I)V
@@ -68138,7 +63583,6 @@
 Landroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationRankingUpdate(Landroid/service/notification/NotificationRankingUpdate;)V
 Landroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationRemoved(Landroid/service/notification/IStatusBarNotificationHolder;Landroid/service/notification/NotificationRankingUpdate;Landroid/service/notification/NotificationStats;I)V
 Landroid/service/notification/NotificationListenerService$NotificationListenerWrapper;->onNotificationSnoozedUntilContext(Landroid/service/notification/IStatusBarNotificationHolder;Ljava/lang/String;)V
-Landroid/service/notification/NotificationListenerService$Ranking$UserSentiment;
 Landroid/service/notification/NotificationListenerService$Ranking;->importanceToString(I)Ljava/lang/String;
 Landroid/service/notification/NotificationListenerService$Ranking;->mChannel:Landroid/app/NotificationChannel;
 Landroid/service/notification/NotificationListenerService$Ranking;->mHidden:Z
@@ -68209,7 +63653,6 @@
 Landroid/service/notification/NotificationListenerService;->mLock:Ljava/lang/Object;
 Landroid/service/notification/NotificationListenerService;->mRankingMap:Landroid/service/notification/NotificationListenerService$RankingMap;
 Landroid/service/notification/NotificationListenerService;->mSystemContext:Landroid/content/Context;
-Landroid/service/notification/NotificationRankingUpdate;
 Landroid/service/notification/NotificationRankingUpdate;-><init>(Landroid/os/Parcel;)V
 Landroid/service/notification/NotificationRankingUpdate;-><init>([Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/Bundle;[ILandroid/os/Bundle;Landroid/os/Bundle;Landroid/os/Bundle;Landroid/os/Bundle;Landroid/os/Bundle;Landroid/os/Bundle;Landroid/os/Bundle;Landroid/os/Bundle;)V
 Landroid/service/notification/NotificationRankingUpdate;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -68239,7 +63682,6 @@
 Landroid/service/notification/NotificationRankingUpdate;->mSuppressedVisualEffects:Landroid/os/Bundle;
 Landroid/service/notification/NotificationRankingUpdate;->mUserSentiment:Landroid/os/Bundle;
 Landroid/service/notification/NotificationRankingUpdate;->mVisibilityOverrides:Landroid/os/Bundle;
-Landroid/service/notification/NotificationRecordProto;
 Landroid/service/notification/NotificationRecordProto;-><init>()V
 Landroid/service/notification/NotificationRecordProto;->AUDIO_ATTRIBUTES:J
 Landroid/service/notification/NotificationRecordProto;->CAN_SHOW_LIGHT:J
@@ -68254,7 +63696,6 @@
 Landroid/service/notification/NotificationRecordProto;->SNOOZED:I
 Landroid/service/notification/NotificationRecordProto;->SOUND:J
 Landroid/service/notification/NotificationRecordProto;->STATE:J
-Landroid/service/notification/NotificationServiceDumpProto;
 Landroid/service/notification/NotificationServiceDumpProto;-><init>()V
 Landroid/service/notification/NotificationServiceDumpProto;->CONDITION_PROVIDERS:J
 Landroid/service/notification/NotificationServiceDumpProto;->LISTENERS_DISABLING_EFFECTS:J
@@ -68264,13 +63705,11 @@
 Landroid/service/notification/NotificationServiceDumpProto;->RANKING_CONFIG:J
 Landroid/service/notification/NotificationServiceDumpProto;->RECORDS:J
 Landroid/service/notification/NotificationServiceDumpProto;->ZEN:J
-Landroid/service/notification/NotificationServiceProto;
 Landroid/service/notification/NotificationServiceProto;-><init>()V
 Landroid/service/notification/NotificationServiceProto;->ZEN_MODE_ALARMS:I
 Landroid/service/notification/NotificationServiceProto;->ZEN_MODE_IMPORTANT_INTERRUPTIONS:I
 Landroid/service/notification/NotificationServiceProto;->ZEN_MODE_NO_INTERRUPTIONS:I
 Landroid/service/notification/NotificationServiceProto;->ZEN_MODE_OFF:I
-Landroid/service/notification/NotificationStats$DismissalSurface;
 Landroid/service/notification/NotificationStats;->mDirectReplied:Z
 Landroid/service/notification/NotificationStats;->mDismissalSurface:I
 Landroid/service/notification/NotificationStats;->mExpanded:Z
@@ -68278,7 +63717,6 @@
 Landroid/service/notification/NotificationStats;->mSeen:Z
 Landroid/service/notification/NotificationStats;->mSnoozed:Z
 Landroid/service/notification/NotificationStats;->mViewedSettings:Z
-Landroid/service/notification/NotifyingApp;
 Landroid/service/notification/NotifyingApp;-><init>()V
 Landroid/service/notification/NotifyingApp;-><init>(Landroid/os/Parcel;)V
 Landroid/service/notification/NotifyingApp;->compareTo(Landroid/service/notification/NotifyingApp;)I
@@ -68292,8 +63730,6 @@
 Landroid/service/notification/NotifyingApp;->setLastNotified(J)Landroid/service/notification/NotifyingApp;
 Landroid/service/notification/NotifyingApp;->setPackage(Ljava/lang/String;)Landroid/service/notification/NotifyingApp;
 Landroid/service/notification/NotifyingApp;->setUid(I)Landroid/service/notification/NotifyingApp;
-Landroid/service/notification/RankingHelperProto$RecordProto;
-Landroid/service/notification/RankingHelperProto$RecordProto;-><init>()V
 Landroid/service/notification/RankingHelperProto$RecordProto;->CHANNELS:J
 Landroid/service/notification/RankingHelperProto$RecordProto;->CHANNEL_GROUPS:J
 Landroid/service/notification/RankingHelperProto$RecordProto;->IMPORTANCE:J
@@ -68302,12 +63738,10 @@
 Landroid/service/notification/RankingHelperProto$RecordProto;->SHOW_BADGE:J
 Landroid/service/notification/RankingHelperProto$RecordProto;->UID:J
 Landroid/service/notification/RankingHelperProto$RecordProto;->VISIBILITY:J
-Landroid/service/notification/RankingHelperProto;
 Landroid/service/notification/RankingHelperProto;-><init>()V
 Landroid/service/notification/RankingHelperProto;->NOTIFICATION_SIGNAL_EXTRACTORS:J
 Landroid/service/notification/RankingHelperProto;->RECORDS:J
 Landroid/service/notification/RankingHelperProto;->RECORDS_RESTORED_WITHOUT_UID:J
-Landroid/service/notification/ScheduleCalendar;
 Landroid/service/notification/ScheduleCalendar;-><init>()V
 Landroid/service/notification/ScheduleCalendar;->addDays(JI)J
 Landroid/service/notification/ScheduleCalendar;->DEBUG:Z
@@ -68342,13 +63776,11 @@
 Landroid/service/notification/StatusBarNotification;->mContext:Landroid/content/Context;
 Landroid/service/notification/StatusBarNotification;->opPkg:Ljava/lang/String;
 Landroid/service/notification/StatusBarNotification;->overrideGroupKey:Ljava/lang/String;
-Landroid/service/notification/ZenModeConfig$Diff;
 Landroid/service/notification/ZenModeConfig$Diff;-><init>()V
 Landroid/service/notification/ZenModeConfig$Diff;->addLine(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Landroid/service/notification/ZenModeConfig$Diff;
 Landroid/service/notification/ZenModeConfig$Diff;->addLine(Ljava/lang/String;Ljava/lang/String;)Landroid/service/notification/ZenModeConfig$Diff;
 Landroid/service/notification/ZenModeConfig$Diff;->addLine(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Landroid/service/notification/ZenModeConfig$Diff;
 Landroid/service/notification/ZenModeConfig$Diff;->lines:Ljava/util/ArrayList;
-Landroid/service/notification/ZenModeConfig$EventInfo;
 Landroid/service/notification/ZenModeConfig$EventInfo;-><init>()V
 Landroid/service/notification/ZenModeConfig$EventInfo;->calendar:Ljava/lang/String;
 Landroid/service/notification/ZenModeConfig$EventInfo;->copy()Landroid/service/notification/ZenModeConfig$EventInfo;
@@ -68358,13 +63790,11 @@
 Landroid/service/notification/ZenModeConfig$EventInfo;->REPLY_YES_OR_MAYBE:I
 Landroid/service/notification/ZenModeConfig$EventInfo;->resolveUserId(I)I
 Landroid/service/notification/ZenModeConfig$EventInfo;->userId:I
-Landroid/service/notification/ZenModeConfig$ScheduleInfo;
 Landroid/service/notification/ZenModeConfig$ScheduleInfo;-><init>()V
 Landroid/service/notification/ZenModeConfig$ScheduleInfo;->copy()Landroid/service/notification/ZenModeConfig$ScheduleInfo;
 Landroid/service/notification/ZenModeConfig$ScheduleInfo;->exitAtAlarm:Z
 Landroid/service/notification/ZenModeConfig$ScheduleInfo;->nextAlarm:J
 Landroid/service/notification/ZenModeConfig$ScheduleInfo;->ts(J)Ljava/lang/String;
-Landroid/service/notification/ZenModeConfig$ZenRule;
 Landroid/service/notification/ZenModeConfig$ZenRule;-><init>()V
 Landroid/service/notification/ZenModeConfig$ZenRule;-><init>(Landroid/os/Parcel;)V
 Landroid/service/notification/ZenModeConfig$ZenRule;->appendDiff(Landroid/service/notification/ZenModeConfig$Diff;Ljava/lang/String;Landroid/service/notification/ZenModeConfig$ZenRule;)V
@@ -68377,7 +63807,6 @@
 Landroid/service/notification/ZenModeConfig$ZenRule;->isAutomaticActive()Z
 Landroid/service/notification/ZenModeConfig$ZenRule;->isTrueOrUnknown()Z
 Landroid/service/notification/ZenModeConfig$ZenRule;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/service/notification/ZenModeConfig;
 Landroid/service/notification/ZenModeConfig;-><init>(Landroid/os/Parcel;)V
 Landroid/service/notification/ZenModeConfig;->addKeys(Landroid/util/ArraySet;Landroid/util/ArrayMap;)V
 Landroid/service/notification/ZenModeConfig;->allowCalls:Z
@@ -68530,14 +63959,12 @@
 Landroid/service/notification/ZenModeConfig;->ZEN_ATT_VERSION:Ljava/lang/String;
 Landroid/service/notification/ZenModeConfig;->ZEN_TAG:Ljava/lang/String;
 Landroid/service/notification/ZenModeConfig;->ZERO_VALUE_MS:I
-Landroid/service/notification/ZenModeProto;
 Landroid/service/notification/ZenModeProto;-><init>()V
 Landroid/service/notification/ZenModeProto;->ENABLED_ACTIVE_CONDITIONS:J
 Landroid/service/notification/ZenModeProto;->POLICY:J
 Landroid/service/notification/ZenModeProto;->SUPPRESSED_EFFECTS:J
 Landroid/service/notification/ZenModeProto;->SUPPRESSORS:J
 Landroid/service/notification/ZenModeProto;->ZEN_MODE:J
-Landroid/service/notification/ZenRuleProto;
 Landroid/service/notification/ZenRuleProto;-><init>()V
 Landroid/service/notification/ZenRuleProto;->COMPONENT:J
 Landroid/service/notification/ZenRuleProto;->CONDITION:J
@@ -68549,7 +63976,6 @@
 Landroid/service/notification/ZenRuleProto;->IS_SNOOZING:J
 Landroid/service/notification/ZenRuleProto;->NAME:J
 Landroid/service/notification/ZenRuleProto;->ZEN_MODE:J
-Landroid/service/oemlock/IOemLockService$Stub$Proxy;
 Landroid/service/oemlock/IOemLockService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/oemlock/IOemLockService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/oemlock/IOemLockService$Stub$Proxy;->isDeviceOemUnlocked()Z
@@ -68559,7 +63985,6 @@
 Landroid/service/oemlock/IOemLockService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/oemlock/IOemLockService$Stub$Proxy;->setOemUnlockAllowedByCarrier(Z[B)V
 Landroid/service/oemlock/IOemLockService$Stub$Proxy;->setOemUnlockAllowedByUser(Z)V
-Landroid/service/oemlock/IOemLockService$Stub;
 Landroid/service/oemlock/IOemLockService$Stub;-><init>()V
 Landroid/service/oemlock/IOemLockService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/oemlock/IOemLockService;
 Landroid/service/oemlock/IOemLockService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -68569,7 +63994,6 @@
 Landroid/service/oemlock/IOemLockService$Stub;->TRANSACTION_isOemUnlockAllowedByUser:I
 Landroid/service/oemlock/IOemLockService$Stub;->TRANSACTION_setOemUnlockAllowedByCarrier:I
 Landroid/service/oemlock/IOemLockService$Stub;->TRANSACTION_setOemUnlockAllowedByUser:I
-Landroid/service/oemlock/IOemLockService;
 Landroid/service/oemlock/IOemLockService;->isDeviceOemUnlocked()Z
 Landroid/service/oemlock/IOemLockService;->isOemUnlockAllowed()Z
 Landroid/service/oemlock/IOemLockService;->isOemUnlockAllowedByCarrier()Z
@@ -68580,7 +64004,6 @@
 Landroid/service/oemlock/OemLockManager;->isDeviceOemUnlocked()Z
 Landroid/service/oemlock/OemLockManager;->isOemUnlockAllowed()Z
 Landroid/service/oemlock/OemLockManager;->mService:Landroid/service/oemlock/IOemLockService;
-Landroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;
 Landroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;->getDataBlockSize()I
 Landroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;->getFlashLockState()I
@@ -68593,7 +64016,6 @@
 Landroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;->setOemUnlockEnabled(Z)V
 Landroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;->wipe()V
 Landroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;->write([B)I
-Landroid/service/persistentdata/IPersistentDataBlockService$Stub;
 Landroid/service/persistentdata/IPersistentDataBlockService$Stub;-><init>()V
 Landroid/service/persistentdata/IPersistentDataBlockService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/persistentdata/IPersistentDataBlockService$Stub;->TRANSACTION_getDataBlockSize:I
@@ -68605,7 +64027,6 @@
 Landroid/service/persistentdata/IPersistentDataBlockService$Stub;->TRANSACTION_setOemUnlockEnabled:I
 Landroid/service/persistentdata/IPersistentDataBlockService$Stub;->TRANSACTION_wipe:I
 Landroid/service/persistentdata/IPersistentDataBlockService$Stub;->TRANSACTION_write:I
-Landroid/service/persistentdata/IPersistentDataBlockService;
 Landroid/service/persistentdata/IPersistentDataBlockService;->getDataBlockSize()I
 Landroid/service/persistentdata/IPersistentDataBlockService;->getFlashLockState()I
 Landroid/service/persistentdata/IPersistentDataBlockService;->getMaximumDataBlockSize()J
@@ -68618,7 +64039,6 @@
 Landroid/service/persistentdata/PersistentDataBlockManager;-><init>(Landroid/service/persistentdata/IPersistentDataBlockService;)V
 Landroid/service/persistentdata/PersistentDataBlockManager;->sService:Landroid/service/persistentdata/IPersistentDataBlockService;
 Landroid/service/persistentdata/PersistentDataBlockManager;->TAG:Ljava/lang/String;
-Landroid/service/quicksettings/IQSService$Stub$Proxy;
 Landroid/service/quicksettings/IQSService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/quicksettings/IQSService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/quicksettings/IQSService$Stub$Proxy;->getTile(Landroid/os/IBinder;)Landroid/service/quicksettings/Tile;
@@ -68632,7 +64052,6 @@
 Landroid/service/quicksettings/IQSService$Stub$Proxy;->startUnlockAndRun(Landroid/os/IBinder;)V
 Landroid/service/quicksettings/IQSService$Stub$Proxy;->updateQsTile(Landroid/service/quicksettings/Tile;Landroid/os/IBinder;)V
 Landroid/service/quicksettings/IQSService$Stub$Proxy;->updateStatusIcon(Landroid/os/IBinder;Landroid/graphics/drawable/Icon;Ljava/lang/String;)V
-Landroid/service/quicksettings/IQSService$Stub;
 Landroid/service/quicksettings/IQSService$Stub;-><init>()V
 Landroid/service/quicksettings/IQSService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/quicksettings/IQSService;
 Landroid/service/quicksettings/IQSService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -68646,7 +64065,6 @@
 Landroid/service/quicksettings/IQSService$Stub;->TRANSACTION_startUnlockAndRun:I
 Landroid/service/quicksettings/IQSService$Stub;->TRANSACTION_updateQsTile:I
 Landroid/service/quicksettings/IQSService$Stub;->TRANSACTION_updateStatusIcon:I
-Landroid/service/quicksettings/IQSService;
 Landroid/service/quicksettings/IQSService;->getTile(Landroid/os/IBinder;)Landroid/service/quicksettings/Tile;
 Landroid/service/quicksettings/IQSService;->isLocked()Z
 Landroid/service/quicksettings/IQSService;->isSecure()Z
@@ -68657,7 +64075,6 @@
 Landroid/service/quicksettings/IQSService;->startUnlockAndRun(Landroid/os/IBinder;)V
 Landroid/service/quicksettings/IQSService;->updateQsTile(Landroid/service/quicksettings/Tile;Landroid/os/IBinder;)V
 Landroid/service/quicksettings/IQSService;->updateStatusIcon(Landroid/os/IBinder;Landroid/graphics/drawable/Icon;Ljava/lang/String;)V
-Landroid/service/quicksettings/IQSTileService$Stub$Proxy;
 Landroid/service/quicksettings/IQSTileService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/quicksettings/IQSTileService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/quicksettings/IQSTileService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -68667,7 +64084,6 @@
 Landroid/service/quicksettings/IQSTileService$Stub$Proxy;->onTileAdded()V
 Landroid/service/quicksettings/IQSTileService$Stub$Proxy;->onTileRemoved()V
 Landroid/service/quicksettings/IQSTileService$Stub$Proxy;->onUnlockComplete()V
-Landroid/service/quicksettings/IQSTileService$Stub;
 Landroid/service/quicksettings/IQSTileService$Stub;-><init>()V
 Landroid/service/quicksettings/IQSTileService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/quicksettings/IQSTileService;
 Landroid/service/quicksettings/IQSTileService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -68677,7 +64093,6 @@
 Landroid/service/quicksettings/IQSTileService$Stub;->TRANSACTION_onTileAdded:I
 Landroid/service/quicksettings/IQSTileService$Stub;->TRANSACTION_onTileRemoved:I
 Landroid/service/quicksettings/IQSTileService$Stub;->TRANSACTION_onUnlockComplete:I
-Landroid/service/quicksettings/IQSTileService;
 Landroid/service/quicksettings/IQSTileService;->onClick(Landroid/os/IBinder;)V
 Landroid/service/quicksettings/IQSTileService;->onStartListening()V
 Landroid/service/quicksettings/IQSTileService;->onStopListening()V
@@ -68695,8 +64110,6 @@
 Landroid/service/quicksettings/Tile;->readFromParcel(Landroid/os/Parcel;)V
 Landroid/service/quicksettings/Tile;->setService(Landroid/service/quicksettings/IQSService;Landroid/os/IBinder;)V
 Landroid/service/quicksettings/Tile;->TAG:Ljava/lang/String;
-Landroid/service/quicksettings/TileService$H;
-Landroid/service/quicksettings/TileService$H;-><init>(Landroid/os/Looper;)V
 Landroid/service/quicksettings/TileService$H;->MSG_START_LISTENING:I
 Landroid/service/quicksettings/TileService$H;->MSG_START_SUCCESS:I
 Landroid/service/quicksettings/TileService$H;->MSG_STOP_LISTENING:I
@@ -68715,35 +64128,27 @@
 Landroid/service/quicksettings/TileService;->mTileToken:Landroid/os/IBinder;
 Landroid/service/quicksettings/TileService;->mToken:Landroid/os/IBinder;
 Landroid/service/quicksettings/TileService;->mUnlockRunnable:Ljava/lang/Runnable;
-Landroid/service/resolver/IResolverRankerResult$Stub$Proxy;
 Landroid/service/resolver/IResolverRankerResult$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/resolver/IResolverRankerResult$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/resolver/IResolverRankerResult$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/resolver/IResolverRankerResult$Stub$Proxy;->sendResult(Ljava/util/List;)V
-Landroid/service/resolver/IResolverRankerResult$Stub;
 Landroid/service/resolver/IResolverRankerResult$Stub;-><init>()V
 Landroid/service/resolver/IResolverRankerResult$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/resolver/IResolverRankerResult;
 Landroid/service/resolver/IResolverRankerResult$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/resolver/IResolverRankerResult$Stub;->TRANSACTION_sendResult:I
-Landroid/service/resolver/IResolverRankerResult;
 Landroid/service/resolver/IResolverRankerResult;->sendResult(Ljava/util/List;)V
-Landroid/service/resolver/IResolverRankerService$Stub$Proxy;
 Landroid/service/resolver/IResolverRankerService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/resolver/IResolverRankerService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/resolver/IResolverRankerService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/resolver/IResolverRankerService$Stub$Proxy;->predict(Ljava/util/List;Landroid/service/resolver/IResolverRankerResult;)V
 Landroid/service/resolver/IResolverRankerService$Stub$Proxy;->train(Ljava/util/List;I)V
-Landroid/service/resolver/IResolverRankerService$Stub;
 Landroid/service/resolver/IResolverRankerService$Stub;-><init>()V
 Landroid/service/resolver/IResolverRankerService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/resolver/IResolverRankerService;
 Landroid/service/resolver/IResolverRankerService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/resolver/IResolverRankerService$Stub;->TRANSACTION_predict:I
 Landroid/service/resolver/IResolverRankerService$Stub;->TRANSACTION_train:I
-Landroid/service/resolver/IResolverRankerService;
 Landroid/service/resolver/IResolverRankerService;->predict(Ljava/util/List;Landroid/service/resolver/IResolverRankerResult;)V
 Landroid/service/resolver/IResolverRankerService;->train(Ljava/util/List;I)V
-Landroid/service/resolver/ResolverRankerService$ResolverRankerServiceWrapper;
-Landroid/service/resolver/ResolverRankerService$ResolverRankerServiceWrapper;-><init>()V
 Landroid/service/resolver/ResolverRankerService$ResolverRankerServiceWrapper;->predict(Ljava/util/List;Landroid/service/resolver/IResolverRankerResult;)V
 Landroid/service/resolver/ResolverRankerService$ResolverRankerServiceWrapper;->train(Ljava/util/List;I)V
 Landroid/service/resolver/ResolverRankerService;->DEBUG:Z
@@ -68761,21 +64166,18 @@
 Landroid/service/resolver/ResolverTarget;->mTimeSpentScore:F
 Landroid/service/resolver/ResolverTarget;->TAG:Ljava/lang/String;
 Landroid/service/restrictions/RestrictionsReceiver;->TAG:Ljava/lang/String;
-Landroid/service/settings/suggestions/ISuggestionService$Stub$Proxy;
 Landroid/service/settings/suggestions/ISuggestionService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/settings/suggestions/ISuggestionService$Stub$Proxy;->dismissSuggestion(Landroid/service/settings/suggestions/Suggestion;)V
 Landroid/service/settings/suggestions/ISuggestionService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/settings/suggestions/ISuggestionService$Stub$Proxy;->getSuggestions()Ljava/util/List;
 Landroid/service/settings/suggestions/ISuggestionService$Stub$Proxy;->launchSuggestion(Landroid/service/settings/suggestions/Suggestion;)V
 Landroid/service/settings/suggestions/ISuggestionService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/service/settings/suggestions/ISuggestionService$Stub;
 Landroid/service/settings/suggestions/ISuggestionService$Stub;-><init>()V
 Landroid/service/settings/suggestions/ISuggestionService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/settings/suggestions/ISuggestionService;
 Landroid/service/settings/suggestions/ISuggestionService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/settings/suggestions/ISuggestionService$Stub;->TRANSACTION_dismissSuggestion:I
 Landroid/service/settings/suggestions/ISuggestionService$Stub;->TRANSACTION_getSuggestions:I
 Landroid/service/settings/suggestions/ISuggestionService$Stub;->TRANSACTION_launchSuggestion:I
-Landroid/service/settings/suggestions/ISuggestionService;
 Landroid/service/settings/suggestions/ISuggestionService;->dismissSuggestion(Landroid/service/settings/suggestions/Suggestion;)V
 Landroid/service/settings/suggestions/ISuggestionService;->getSuggestions()Ljava/util/List;
 Landroid/service/settings/suggestions/ISuggestionService;->launchSuggestion(Landroid/service/settings/suggestions/Suggestion;)V
@@ -68785,7 +64187,6 @@
 Landroid/service/settings/suggestions/Suggestion$Builder;->mPendingIntent:Landroid/app/PendingIntent;
 Landroid/service/settings/suggestions/Suggestion$Builder;->mSummary:Ljava/lang/CharSequence;
 Landroid/service/settings/suggestions/Suggestion$Builder;->mTitle:Ljava/lang/CharSequence;
-Landroid/service/settings/suggestions/Suggestion$Flags;
 Landroid/service/settings/suggestions/Suggestion;-><init>(Landroid/os/Parcel;)V
 Landroid/service/settings/suggestions/Suggestion;-><init>(Landroid/service/settings/suggestions/Suggestion$Builder;)V
 Landroid/service/settings/suggestions/Suggestion;->FLAG_ICON_TINTABLE:I
@@ -68797,22 +64198,18 @@
 Landroid/service/settings/suggestions/Suggestion;->mTitle:Ljava/lang/CharSequence;
 Landroid/service/settings/suggestions/SuggestionService;->DEBUG:Z
 Landroid/service/settings/suggestions/SuggestionService;->TAG:Ljava/lang/String;
-Landroid/service/textclassifier/ITextClassificationCallback$Stub$Proxy;
 Landroid/service/textclassifier/ITextClassificationCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/textclassifier/ITextClassificationCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/textclassifier/ITextClassificationCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/textclassifier/ITextClassificationCallback$Stub$Proxy;->onFailure()V
 Landroid/service/textclassifier/ITextClassificationCallback$Stub$Proxy;->onSuccess(Landroid/view/textclassifier/TextClassification;)V
-Landroid/service/textclassifier/ITextClassificationCallback$Stub;
 Landroid/service/textclassifier/ITextClassificationCallback$Stub;-><init>()V
 Landroid/service/textclassifier/ITextClassificationCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/textclassifier/ITextClassificationCallback;
 Landroid/service/textclassifier/ITextClassificationCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/textclassifier/ITextClassificationCallback$Stub;->TRANSACTION_onFailure:I
 Landroid/service/textclassifier/ITextClassificationCallback$Stub;->TRANSACTION_onSuccess:I
-Landroid/service/textclassifier/ITextClassificationCallback;
 Landroid/service/textclassifier/ITextClassificationCallback;->onFailure()V
 Landroid/service/textclassifier/ITextClassificationCallback;->onSuccess(Landroid/view/textclassifier/TextClassification;)V
-Landroid/service/textclassifier/ITextClassifierService$Stub$Proxy;
 Landroid/service/textclassifier/ITextClassifierService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -68822,7 +64219,6 @@
 Landroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onGenerateLinks(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextLinks$Request;Landroid/service/textclassifier/ITextLinksCallback;)V
 Landroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onSelectionEvent(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/SelectionEvent;)V
 Landroid/service/textclassifier/ITextClassifierService$Stub$Proxy;->onSuggestSelection(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextSelection$Request;Landroid/service/textclassifier/ITextSelectionCallback;)V
-Landroid/service/textclassifier/ITextClassifierService$Stub;
 Landroid/service/textclassifier/ITextClassifierService$Stub;-><init>()V
 Landroid/service/textclassifier/ITextClassifierService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/textclassifier/ITextClassifierService;
 Landroid/service/textclassifier/ITextClassifierService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -68832,41 +64228,34 @@
 Landroid/service/textclassifier/ITextClassifierService$Stub;->TRANSACTION_onGenerateLinks:I
 Landroid/service/textclassifier/ITextClassifierService$Stub;->TRANSACTION_onSelectionEvent:I
 Landroid/service/textclassifier/ITextClassifierService$Stub;->TRANSACTION_onSuggestSelection:I
-Landroid/service/textclassifier/ITextClassifierService;
 Landroid/service/textclassifier/ITextClassifierService;->onClassifyText(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassification$Request;Landroid/service/textclassifier/ITextClassificationCallback;)V
 Landroid/service/textclassifier/ITextClassifierService;->onCreateTextClassificationSession(Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;)V
 Landroid/service/textclassifier/ITextClassifierService;->onDestroyTextClassificationSession(Landroid/view/textclassifier/TextClassificationSessionId;)V
 Landroid/service/textclassifier/ITextClassifierService;->onGenerateLinks(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextLinks$Request;Landroid/service/textclassifier/ITextLinksCallback;)V
 Landroid/service/textclassifier/ITextClassifierService;->onSelectionEvent(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/SelectionEvent;)V
 Landroid/service/textclassifier/ITextClassifierService;->onSuggestSelection(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextSelection$Request;Landroid/service/textclassifier/ITextSelectionCallback;)V
-Landroid/service/textclassifier/ITextLinksCallback$Stub$Proxy;
 Landroid/service/textclassifier/ITextLinksCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/textclassifier/ITextLinksCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/textclassifier/ITextLinksCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/textclassifier/ITextLinksCallback$Stub$Proxy;->onFailure()V
 Landroid/service/textclassifier/ITextLinksCallback$Stub$Proxy;->onSuccess(Landroid/view/textclassifier/TextLinks;)V
-Landroid/service/textclassifier/ITextLinksCallback$Stub;
 Landroid/service/textclassifier/ITextLinksCallback$Stub;-><init>()V
 Landroid/service/textclassifier/ITextLinksCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/textclassifier/ITextLinksCallback;
 Landroid/service/textclassifier/ITextLinksCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/textclassifier/ITextLinksCallback$Stub;->TRANSACTION_onFailure:I
 Landroid/service/textclassifier/ITextLinksCallback$Stub;->TRANSACTION_onSuccess:I
-Landroid/service/textclassifier/ITextLinksCallback;
 Landroid/service/textclassifier/ITextLinksCallback;->onFailure()V
 Landroid/service/textclassifier/ITextLinksCallback;->onSuccess(Landroid/view/textclassifier/TextLinks;)V
-Landroid/service/textclassifier/ITextSelectionCallback$Stub$Proxy;
 Landroid/service/textclassifier/ITextSelectionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/textclassifier/ITextSelectionCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/textclassifier/ITextSelectionCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/textclassifier/ITextSelectionCallback$Stub$Proxy;->onFailure()V
 Landroid/service/textclassifier/ITextSelectionCallback$Stub$Proxy;->onSuccess(Landroid/view/textclassifier/TextSelection;)V
-Landroid/service/textclassifier/ITextSelectionCallback$Stub;
 Landroid/service/textclassifier/ITextSelectionCallback$Stub;-><init>()V
 Landroid/service/textclassifier/ITextSelectionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/textclassifier/ITextSelectionCallback;
 Landroid/service/textclassifier/ITextSelectionCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/textclassifier/ITextSelectionCallback$Stub;->TRANSACTION_onFailure:I
 Landroid/service/textclassifier/ITextSelectionCallback$Stub;->TRANSACTION_onSuccess:I
-Landroid/service/textclassifier/ITextSelectionCallback;
 Landroid/service/textclassifier/ITextSelectionCallback;->onFailure()V
 Landroid/service/textclassifier/ITextSelectionCallback;->onSuccess(Landroid/view/textclassifier/TextSelection;)V
 Landroid/service/textclassifier/TextClassifierService;->getServiceComponentName(Landroid/content/Context;)Landroid/content/ComponentName;
@@ -68875,7 +64264,6 @@
 Landroid/service/textclassifier/TextClassifierService;->onClassifyText(Ljava/lang/CharSequence;IILandroid/view/textclassifier/TextClassification$Options;Landroid/os/CancellationSignal;Landroid/service/textclassifier/TextClassifierService$Callback;)V
 Landroid/service/textclassifier/TextClassifierService;->onGenerateLinks(Ljava/lang/CharSequence;Landroid/view/textclassifier/TextLinks$Options;Landroid/os/CancellationSignal;Landroid/service/textclassifier/TextClassifierService$Callback;)V
 Landroid/service/textclassifier/TextClassifierService;->onSuggestSelection(Ljava/lang/CharSequence;IILandroid/view/textclassifier/TextSelection$Options;Landroid/os/CancellationSignal;Landroid/service/textclassifier/TextClassifierService$Callback;)V
-Landroid/service/textservice/SpellCheckerService$InternalISpellCheckerSession;
 Landroid/service/textservice/SpellCheckerService$InternalISpellCheckerSession;-><init>(Ljava/lang/String;Lcom/android/internal/textservice/ISpellCheckerSessionListener;Landroid/os/Bundle;Landroid/service/textservice/SpellCheckerService$Session;)V
 Landroid/service/textservice/SpellCheckerService$InternalISpellCheckerSession;->getBundle()Landroid/os/Bundle;
 Landroid/service/textservice/SpellCheckerService$InternalISpellCheckerSession;->getLocale()Ljava/lang/String;
@@ -68887,17 +64275,14 @@
 Landroid/service/textservice/SpellCheckerService$InternalISpellCheckerSession;->onClose()V
 Landroid/service/textservice/SpellCheckerService$InternalISpellCheckerSession;->onGetSentenceSuggestionsMultiple([Landroid/view/textservice/TextInfo;I)V
 Landroid/service/textservice/SpellCheckerService$InternalISpellCheckerSession;->onGetSuggestionsMultiple([Landroid/view/textservice/TextInfo;IZ)V
-Landroid/service/textservice/SpellCheckerService$SentenceLevelAdapter$SentenceTextInfoParams;
 Landroid/service/textservice/SpellCheckerService$SentenceLevelAdapter$SentenceTextInfoParams;-><init>(Landroid/view/textservice/TextInfo;Ljava/util/ArrayList;)V
 Landroid/service/textservice/SpellCheckerService$SentenceLevelAdapter$SentenceTextInfoParams;->mItems:Ljava/util/ArrayList;
 Landroid/service/textservice/SpellCheckerService$SentenceLevelAdapter$SentenceTextInfoParams;->mOriginalTextInfo:Landroid/view/textservice/TextInfo;
 Landroid/service/textservice/SpellCheckerService$SentenceLevelAdapter$SentenceTextInfoParams;->mSize:I
-Landroid/service/textservice/SpellCheckerService$SentenceLevelAdapter$SentenceWordItem;
 Landroid/service/textservice/SpellCheckerService$SentenceLevelAdapter$SentenceWordItem;-><init>(Landroid/view/textservice/TextInfo;II)V
 Landroid/service/textservice/SpellCheckerService$SentenceLevelAdapter$SentenceWordItem;->mLength:I
 Landroid/service/textservice/SpellCheckerService$SentenceLevelAdapter$SentenceWordItem;->mStart:I
 Landroid/service/textservice/SpellCheckerService$SentenceLevelAdapter$SentenceWordItem;->mTextInfo:Landroid/view/textservice/TextInfo;
-Landroid/service/textservice/SpellCheckerService$SentenceLevelAdapter;
 Landroid/service/textservice/SpellCheckerService$SentenceLevelAdapter;-><init>(Ljava/util/Locale;)V
 Landroid/service/textservice/SpellCheckerService$SentenceLevelAdapter;->EMPTY_SENTENCE_SUGGESTIONS_INFOS:[Landroid/view/textservice/SentenceSuggestionsInfo;
 Landroid/service/textservice/SpellCheckerService$SentenceLevelAdapter;->EMPTY_SUGGESTIONS_INFO:Landroid/view/textservice/SuggestionsInfo;
@@ -68907,14 +64292,12 @@
 Landroid/service/textservice/SpellCheckerService$Session;->mInternalSession:Landroid/service/textservice/SpellCheckerService$InternalISpellCheckerSession;
 Landroid/service/textservice/SpellCheckerService$Session;->mSentenceLevelAdapter:Landroid/service/textservice/SpellCheckerService$SentenceLevelAdapter;
 Landroid/service/textservice/SpellCheckerService$Session;->setInternalISpellCheckerSession(Landroid/service/textservice/SpellCheckerService$InternalISpellCheckerSession;)V
-Landroid/service/textservice/SpellCheckerService$SpellCheckerServiceBinder;
 Landroid/service/textservice/SpellCheckerService$SpellCheckerServiceBinder;-><init>(Landroid/service/textservice/SpellCheckerService;)V
 Landroid/service/textservice/SpellCheckerService$SpellCheckerServiceBinder;->getISpellCheckerSession(Ljava/lang/String;Lcom/android/internal/textservice/ISpellCheckerSessionListener;Landroid/os/Bundle;Lcom/android/internal/textservice/ISpellCheckerServiceCallback;)V
 Landroid/service/textservice/SpellCheckerService$SpellCheckerServiceBinder;->mInternalServiceRef:Ljava/lang/ref/WeakReference;
 Landroid/service/textservice/SpellCheckerService;->DBG:Z
 Landroid/service/textservice/SpellCheckerService;->mBinder:Landroid/service/textservice/SpellCheckerService$SpellCheckerServiceBinder;
 Landroid/service/textservice/SpellCheckerService;->TAG:Ljava/lang/String;
-Landroid/service/trust/ITrustAgentService$Stub$Proxy;
 Landroid/service/trust/ITrustAgentService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/trust/ITrustAgentService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/trust/ITrustAgentService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -68928,7 +64311,6 @@
 Landroid/service/trust/ITrustAgentService$Stub$Proxy;->onUnlockAttempt(Z)V
 Landroid/service/trust/ITrustAgentService$Stub$Proxy;->onUnlockLockout(I)V
 Landroid/service/trust/ITrustAgentService$Stub$Proxy;->setCallback(Landroid/service/trust/ITrustAgentServiceCallback;)V
-Landroid/service/trust/ITrustAgentService$Stub;
 Landroid/service/trust/ITrustAgentService$Stub;-><init>()V
 Landroid/service/trust/ITrustAgentService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/trust/ITrustAgentService;
 Landroid/service/trust/ITrustAgentService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -68942,7 +64324,6 @@
 Landroid/service/trust/ITrustAgentService$Stub;->TRANSACTION_onUnlockAttempt:I
 Landroid/service/trust/ITrustAgentService$Stub;->TRANSACTION_onUnlockLockout:I
 Landroid/service/trust/ITrustAgentService$Stub;->TRANSACTION_setCallback:I
-Landroid/service/trust/ITrustAgentService;
 Landroid/service/trust/ITrustAgentService;->onConfigure(Ljava/util/List;Landroid/os/IBinder;)V
 Landroid/service/trust/ITrustAgentService;->onDeviceLocked()V
 Landroid/service/trust/ITrustAgentService;->onDeviceUnlocked()V
@@ -68953,7 +64334,6 @@
 Landroid/service/trust/ITrustAgentService;->onUnlockAttempt(Z)V
 Landroid/service/trust/ITrustAgentService;->onUnlockLockout(I)V
 Landroid/service/trust/ITrustAgentService;->setCallback(Landroid/service/trust/ITrustAgentServiceCallback;)V
-Landroid/service/trust/ITrustAgentServiceCallback$Stub$Proxy;
 Landroid/service/trust/ITrustAgentServiceCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/trust/ITrustAgentServiceCallback$Stub$Proxy;->addEscrowToken([BI)V
 Landroid/service/trust/ITrustAgentServiceCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -68966,7 +64346,6 @@
 Landroid/service/trust/ITrustAgentServiceCallback$Stub$Proxy;->setManagingTrust(Z)V
 Landroid/service/trust/ITrustAgentServiceCallback$Stub$Proxy;->showKeyguardErrorMessage(Ljava/lang/CharSequence;)V
 Landroid/service/trust/ITrustAgentServiceCallback$Stub$Proxy;->unlockUserWithToken(J[BI)V
-Landroid/service/trust/ITrustAgentServiceCallback$Stub;
 Landroid/service/trust/ITrustAgentServiceCallback$Stub;-><init>()V
 Landroid/service/trust/ITrustAgentServiceCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/trust/ITrustAgentServiceCallback;
 Landroid/service/trust/ITrustAgentServiceCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -68979,7 +64358,6 @@
 Landroid/service/trust/ITrustAgentServiceCallback$Stub;->TRANSACTION_setManagingTrust:I
 Landroid/service/trust/ITrustAgentServiceCallback$Stub;->TRANSACTION_showKeyguardErrorMessage:I
 Landroid/service/trust/ITrustAgentServiceCallback$Stub;->TRANSACTION_unlockUserWithToken:I
-Landroid/service/trust/ITrustAgentServiceCallback;
 Landroid/service/trust/ITrustAgentServiceCallback;->addEscrowToken([BI)V
 Landroid/service/trust/ITrustAgentServiceCallback;->grantTrust(Ljava/lang/CharSequence;JI)V
 Landroid/service/trust/ITrustAgentServiceCallback;->isEscrowTokenActive(JI)V
@@ -68989,14 +64367,9 @@
 Landroid/service/trust/ITrustAgentServiceCallback;->setManagingTrust(Z)V
 Landroid/service/trust/ITrustAgentServiceCallback;->showKeyguardErrorMessage(Ljava/lang/CharSequence;)V
 Landroid/service/trust/ITrustAgentServiceCallback;->unlockUserWithToken(J[BI)V
-Landroid/service/trust/TrustAgentService$ConfigurationData;
 Landroid/service/trust/TrustAgentService$ConfigurationData;-><init>(Ljava/util/List;Landroid/os/IBinder;)V
 Landroid/service/trust/TrustAgentService$ConfigurationData;->options:Ljava/util/List;
 Landroid/service/trust/TrustAgentService$ConfigurationData;->token:Landroid/os/IBinder;
-Landroid/service/trust/TrustAgentService$GrantTrustFlags;
-Landroid/service/trust/TrustAgentService$TokenState;
-Landroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;
-Landroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;-><init>()V
 Landroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;->onConfigure(Ljava/util/List;Landroid/os/IBinder;)V
 Landroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;->onDeviceLocked()V
 Landroid/service/trust/TrustAgentService$TrustAgentServiceWrapper;->onDeviceUnlocked()V
@@ -69035,17 +64408,8 @@
 Landroid/service/voice/AlwaysOnHotwordDetector$EventPayload;->mCaptureSession:I
 Landroid/service/voice/AlwaysOnHotwordDetector$EventPayload;->mData:[B
 Landroid/service/voice/AlwaysOnHotwordDetector$EventPayload;->mTriggerAvailable:Z
-Landroid/service/voice/AlwaysOnHotwordDetector$ManageActions;
-Landroid/service/voice/AlwaysOnHotwordDetector$MyHandler;
-Landroid/service/voice/AlwaysOnHotwordDetector$MyHandler;-><init>()V
-Landroid/service/voice/AlwaysOnHotwordDetector$RecognitionFlags;
-Landroid/service/voice/AlwaysOnHotwordDetector$RecognitionModes;
-Landroid/service/voice/AlwaysOnHotwordDetector$RefreshAvailabiltyTask;
-Landroid/service/voice/AlwaysOnHotwordDetector$RefreshAvailabiltyTask;-><init>()V
-Landroid/service/voice/AlwaysOnHotwordDetector$RefreshAvailabiltyTask;->doInBackground([[Ljava/lang/Void;)Ljava/lang/Void;
 Landroid/service/voice/AlwaysOnHotwordDetector$RefreshAvailabiltyTask;->internalGetInitialAvailability()I
 Landroid/service/voice/AlwaysOnHotwordDetector$RefreshAvailabiltyTask;->internalGetIsEnrolled(ILjava/util/Locale;)Z
-Landroid/service/voice/AlwaysOnHotwordDetector$SoundTriggerListener;
 Landroid/service/voice/AlwaysOnHotwordDetector$SoundTriggerListener;-><init>(Landroid/os/Handler;)V
 Landroid/service/voice/AlwaysOnHotwordDetector$SoundTriggerListener;->mHandler:Landroid/os/Handler;
 Landroid/service/voice/AlwaysOnHotwordDetector$SoundTriggerListener;->onError(I)V
@@ -69088,7 +64452,6 @@
 Landroid/service/voice/AlwaysOnHotwordDetector;->STATUS_OK:I
 Landroid/service/voice/AlwaysOnHotwordDetector;->stopRecognitionLocked()I
 Landroid/service/voice/AlwaysOnHotwordDetector;->TAG:Ljava/lang/String;
-Landroid/service/voice/IVoiceInteractionService$Stub$Proxy;
 Landroid/service/voice/IVoiceInteractionService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/voice/IVoiceInteractionService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/voice/IVoiceInteractionService$Stub$Proxy;->launchVoiceAssistFromKeyguard()V
@@ -69096,7 +64459,6 @@
 Landroid/service/voice/IVoiceInteractionService$Stub$Proxy;->ready()V
 Landroid/service/voice/IVoiceInteractionService$Stub$Proxy;->shutdown()V
 Landroid/service/voice/IVoiceInteractionService$Stub$Proxy;->soundModelsChanged()V
-Landroid/service/voice/IVoiceInteractionService$Stub;
 Landroid/service/voice/IVoiceInteractionService$Stub;-><init>()V
 Landroid/service/voice/IVoiceInteractionService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/voice/IVoiceInteractionService;
 Landroid/service/voice/IVoiceInteractionService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -69104,12 +64466,10 @@
 Landroid/service/voice/IVoiceInteractionService$Stub;->TRANSACTION_ready:I
 Landroid/service/voice/IVoiceInteractionService$Stub;->TRANSACTION_shutdown:I
 Landroid/service/voice/IVoiceInteractionService$Stub;->TRANSACTION_soundModelsChanged:I
-Landroid/service/voice/IVoiceInteractionService;
 Landroid/service/voice/IVoiceInteractionService;->launchVoiceAssistFromKeyguard()V
 Landroid/service/voice/IVoiceInteractionService;->ready()V
 Landroid/service/voice/IVoiceInteractionService;->shutdown()V
 Landroid/service/voice/IVoiceInteractionService;->soundModelsChanged()V
-Landroid/service/voice/IVoiceInteractionSession$Stub$Proxy;
 Landroid/service/voice/IVoiceInteractionSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/voice/IVoiceInteractionSession$Stub$Proxy;->closeSystemDialogs()V
 Landroid/service/voice/IVoiceInteractionSession$Stub$Proxy;->destroy()V
@@ -69122,7 +64482,6 @@
 Landroid/service/voice/IVoiceInteractionSession$Stub$Proxy;->show(Landroid/os/Bundle;ILcom/android/internal/app/IVoiceInteractionSessionShowCallback;)V
 Landroid/service/voice/IVoiceInteractionSession$Stub$Proxy;->taskFinished(Landroid/content/Intent;I)V
 Landroid/service/voice/IVoiceInteractionSession$Stub$Proxy;->taskStarted(Landroid/content/Intent;I)V
-Landroid/service/voice/IVoiceInteractionSession$Stub;
 Landroid/service/voice/IVoiceInteractionSession$Stub;-><init>()V
 Landroid/service/voice/IVoiceInteractionSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/voice/IVoiceInteractionSession;
 Landroid/service/voice/IVoiceInteractionSession$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -69135,7 +64494,6 @@
 Landroid/service/voice/IVoiceInteractionSession$Stub;->TRANSACTION_show:I
 Landroid/service/voice/IVoiceInteractionSession$Stub;->TRANSACTION_taskFinished:I
 Landroid/service/voice/IVoiceInteractionSession$Stub;->TRANSACTION_taskStarted:I
-Landroid/service/voice/IVoiceInteractionSession;
 Landroid/service/voice/IVoiceInteractionSession;->closeSystemDialogs()V
 Landroid/service/voice/IVoiceInteractionSession;->destroy()V
 Landroid/service/voice/IVoiceInteractionSession;->handleAssist(Landroid/os/Bundle;Landroid/app/assist/AssistStructure;Landroid/app/assist/AssistContent;II)V
@@ -69145,25 +64503,19 @@
 Landroid/service/voice/IVoiceInteractionSession;->show(Landroid/os/Bundle;ILcom/android/internal/app/IVoiceInteractionSessionShowCallback;)V
 Landroid/service/voice/IVoiceInteractionSession;->taskFinished(Landroid/content/Intent;I)V
 Landroid/service/voice/IVoiceInteractionSession;->taskStarted(Landroid/content/Intent;I)V
-Landroid/service/voice/IVoiceInteractionSessionService$Stub$Proxy;
 Landroid/service/voice/IVoiceInteractionSessionService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/voice/IVoiceInteractionSessionService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/voice/IVoiceInteractionSessionService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/voice/IVoiceInteractionSessionService$Stub$Proxy;->newSession(Landroid/os/IBinder;Landroid/os/Bundle;I)V
-Landroid/service/voice/IVoiceInteractionSessionService$Stub;
 Landroid/service/voice/IVoiceInteractionSessionService$Stub;-><init>()V
 Landroid/service/voice/IVoiceInteractionSessionService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/voice/IVoiceInteractionSessionService;
 Landroid/service/voice/IVoiceInteractionSessionService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/voice/IVoiceInteractionSessionService$Stub;->TRANSACTION_newSession:I
-Landroid/service/voice/IVoiceInteractionSessionService;
 Landroid/service/voice/IVoiceInteractionSessionService;->newSession(Landroid/os/IBinder;Landroid/os/Bundle;I)V
-Landroid/service/voice/VoiceInteractionManagerInternal;
 Landroid/service/voice/VoiceInteractionManagerInternal;-><init>()V
 Landroid/service/voice/VoiceInteractionManagerInternal;->startLocalVoiceInteraction(Landroid/os/IBinder;Landroid/os/Bundle;)V
 Landroid/service/voice/VoiceInteractionManagerInternal;->stopLocalVoiceInteraction(Landroid/os/IBinder;)V
 Landroid/service/voice/VoiceInteractionManagerInternal;->supportsLocalVoiceInteraction()Z
-Landroid/service/voice/VoiceInteractionService$MyHandler;
-Landroid/service/voice/VoiceInteractionService$MyHandler;-><init>()V
 Landroid/service/voice/VoiceInteractionService;->getKeyphraseEnrollmentInfo()Landroid/hardware/soundtrigger/KeyphraseEnrollmentInfo;
 Landroid/service/voice/VoiceInteractionService;->mHandler:Landroid/service/voice/VoiceInteractionService$MyHandler;
 Landroid/service/voice/VoiceInteractionService;->mHotwordDetector:Landroid/service/voice/AlwaysOnHotwordDetector;
@@ -69178,7 +64530,6 @@
 Landroid/service/voice/VoiceInteractionService;->onShutdownInternal()V
 Landroid/service/voice/VoiceInteractionService;->onSoundModelsChangedInternal()V
 Landroid/service/voice/VoiceInteractionService;->safelyShutdownHotwordDetector()V
-Landroid/service/voice/VoiceInteractionServiceInfo;
 Landroid/service/voice/VoiceInteractionServiceInfo;-><init>(Landroid/content/pm/PackageManager;Landroid/content/ComponentName;)V
 Landroid/service/voice/VoiceInteractionServiceInfo;-><init>(Landroid/content/pm/PackageManager;Landroid/content/ComponentName;I)V
 Landroid/service/voice/VoiceInteractionServiceInfo;-><init>(Landroid/content/pm/PackageManager;Landroid/content/pm/ServiceInfo;)V
@@ -69213,8 +64564,6 @@
 Landroid/service/voice/VoiceInteractionSession$ConfirmationRequest;-><init>(Ljava/lang/String;ILcom/android/internal/app/IVoiceInteractorCallback;Landroid/service/voice/VoiceInteractionSession;Landroid/app/VoiceInteractor$Prompt;Landroid/os/Bundle;)V
 Landroid/service/voice/VoiceInteractionSession$ConfirmationRequest;->dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
 Landroid/service/voice/VoiceInteractionSession$ConfirmationRequest;->mPrompt:Landroid/app/VoiceInteractor$Prompt;
-Landroid/service/voice/VoiceInteractionSession$MyCallbacks;
-Landroid/service/voice/VoiceInteractionSession$MyCallbacks;-><init>()V
 Landroid/service/voice/VoiceInteractionSession$MyCallbacks;->executeMessage(Landroid/os/Message;)V
 Landroid/service/voice/VoiceInteractionSession$MyCallbacks;->onBackPressed()V
 Landroid/service/voice/VoiceInteractionSession$PickOptionRequest;-><init>(Ljava/lang/String;ILcom/android/internal/app/IVoiceInteractorCallback;Landroid/service/voice/VoiceInteractionSession;Landroid/app/VoiceInteractor$Prompt;[Landroid/app/VoiceInteractor$PickOptionRequest$Option;Landroid/os/Bundle;)V
@@ -69293,31 +64642,24 @@
 Landroid/service/voice/VoiceInteractionSessionService;->mSession:Landroid/service/voice/VoiceInteractionSession;
 Landroid/service/voice/VoiceInteractionSessionService;->MSG_NEW_SESSION:I
 Landroid/service/voice/VoiceInteractionSessionService;->mSystemService:Lcom/android/internal/app/IVoiceInteractionManagerService;
-Landroid/service/vr/IPersistentVrStateCallbacks$Stub$Proxy;
 Landroid/service/vr/IPersistentVrStateCallbacks$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/vr/IPersistentVrStateCallbacks$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/vr/IPersistentVrStateCallbacks$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/vr/IPersistentVrStateCallbacks$Stub$Proxy;->onPersistentVrStateChanged(Z)V
-Landroid/service/vr/IPersistentVrStateCallbacks$Stub;
 Landroid/service/vr/IPersistentVrStateCallbacks$Stub;-><init>()V
 Landroid/service/vr/IPersistentVrStateCallbacks$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/vr/IPersistentVrStateCallbacks;
 Landroid/service/vr/IPersistentVrStateCallbacks$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/vr/IPersistentVrStateCallbacks$Stub;->TRANSACTION_onPersistentVrStateChanged:I
-Landroid/service/vr/IPersistentVrStateCallbacks;
 Landroid/service/vr/IPersistentVrStateCallbacks;->onPersistentVrStateChanged(Z)V
-Landroid/service/vr/IVrListener$Stub$Proxy;
 Landroid/service/vr/IVrListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/vr/IVrListener$Stub$Proxy;->focusedActivityChanged(Landroid/content/ComponentName;ZI)V
 Landroid/service/vr/IVrListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/vr/IVrListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/service/vr/IVrListener$Stub;
 Landroid/service/vr/IVrListener$Stub;-><init>()V
 Landroid/service/vr/IVrListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/vr/IVrListener;
 Landroid/service/vr/IVrListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/vr/IVrListener$Stub;->TRANSACTION_focusedActivityChanged:I
-Landroid/service/vr/IVrListener;
 Landroid/service/vr/IVrListener;->focusedActivityChanged(Landroid/content/ComponentName;ZI)V
-Landroid/service/vr/IVrManager$Stub$Proxy;
 Landroid/service/vr/IVrManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/vr/IVrManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/vr/IVrManager$Stub$Proxy;->getPersistentVrModeEnabled()Z
@@ -69333,7 +64675,6 @@
 Landroid/service/vr/IVrManager$Stub$Proxy;->setVrInputMethod(Landroid/content/ComponentName;)V
 Landroid/service/vr/IVrManager$Stub$Proxy;->unregisterListener(Landroid/service/vr/IVrStateCallbacks;)V
 Landroid/service/vr/IVrManager$Stub$Proxy;->unregisterPersistentVrStateListener(Landroid/service/vr/IPersistentVrStateCallbacks;)V
-Landroid/service/vr/IVrManager$Stub;
 Landroid/service/vr/IVrManager$Stub;-><init>()V
 Landroid/service/vr/IVrManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/vr/IVrManager$Stub;->TRANSACTION_getPersistentVrModeEnabled:I
@@ -69348,7 +64689,6 @@
 Landroid/service/vr/IVrManager$Stub;->TRANSACTION_setVrInputMethod:I
 Landroid/service/vr/IVrManager$Stub;->TRANSACTION_unregisterListener:I
 Landroid/service/vr/IVrManager$Stub;->TRANSACTION_unregisterPersistentVrStateListener:I
-Landroid/service/vr/IVrManager;
 Landroid/service/vr/IVrManager;->getPersistentVrModeEnabled()Z
 Landroid/service/vr/IVrManager;->registerListener(Landroid/service/vr/IVrStateCallbacks;)V
 Landroid/service/vr/IVrManager;->registerPersistentVrStateListener(Landroid/service/vr/IPersistentVrStateCallbacks;)V
@@ -69359,24 +64699,18 @@
 Landroid/service/vr/IVrManager;->setVrInputMethod(Landroid/content/ComponentName;)V
 Landroid/service/vr/IVrManager;->unregisterListener(Landroid/service/vr/IVrStateCallbacks;)V
 Landroid/service/vr/IVrManager;->unregisterPersistentVrStateListener(Landroid/service/vr/IPersistentVrStateCallbacks;)V
-Landroid/service/vr/IVrStateCallbacks$Stub$Proxy;
 Landroid/service/vr/IVrStateCallbacks$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/vr/IVrStateCallbacks$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/vr/IVrStateCallbacks$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/vr/IVrStateCallbacks$Stub$Proxy;->onVrStateChanged(Z)V
-Landroid/service/vr/IVrStateCallbacks$Stub;
 Landroid/service/vr/IVrStateCallbacks$Stub;-><init>()V
 Landroid/service/vr/IVrStateCallbacks$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/vr/IVrStateCallbacks;
 Landroid/service/vr/IVrStateCallbacks$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/vr/IVrStateCallbacks$Stub;->TRANSACTION_onVrStateChanged:I
-Landroid/service/vr/IVrStateCallbacks;
 Landroid/service/vr/IVrStateCallbacks;->onVrStateChanged(Z)V
-Landroid/service/vr/VrListenerService$VrListenerHandler;
-Landroid/service/vr/VrListenerService$VrListenerHandler;-><init>(Landroid/os/Looper;)V
 Landroid/service/vr/VrListenerService;->mBinder:Landroid/service/vr/IVrListener$Stub;
 Landroid/service/vr/VrListenerService;->mHandler:Landroid/os/Handler;
 Landroid/service/vr/VrListenerService;->MSG_ON_CURRENT_VR_ACTIVITY_CHANGED:I
-Landroid/service/wallpaper/IWallpaperConnection$Stub$Proxy;
 Landroid/service/wallpaper/IWallpaperConnection$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/wallpaper/IWallpaperConnection$Stub$Proxy;->attachEngine(Landroid/service/wallpaper/IWallpaperEngine;)V
 Landroid/service/wallpaper/IWallpaperConnection$Stub$Proxy;->engineShown(Landroid/service/wallpaper/IWallpaperEngine;)V
@@ -69384,19 +64718,16 @@
 Landroid/service/wallpaper/IWallpaperConnection$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/service/wallpaper/IWallpaperConnection$Stub$Proxy;->onWallpaperColorsChanged(Landroid/app/WallpaperColors;)V
 Landroid/service/wallpaper/IWallpaperConnection$Stub$Proxy;->setWallpaper(Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
-Landroid/service/wallpaper/IWallpaperConnection$Stub;
 Landroid/service/wallpaper/IWallpaperConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/wallpaper/IWallpaperConnection;
 Landroid/service/wallpaper/IWallpaperConnection$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/wallpaper/IWallpaperConnection$Stub;->TRANSACTION_attachEngine:I
 Landroid/service/wallpaper/IWallpaperConnection$Stub;->TRANSACTION_engineShown:I
 Landroid/service/wallpaper/IWallpaperConnection$Stub;->TRANSACTION_onWallpaperColorsChanged:I
 Landroid/service/wallpaper/IWallpaperConnection$Stub;->TRANSACTION_setWallpaper:I
-Landroid/service/wallpaper/IWallpaperConnection;
 Landroid/service/wallpaper/IWallpaperConnection;->attachEngine(Landroid/service/wallpaper/IWallpaperEngine;)V
 Landroid/service/wallpaper/IWallpaperConnection;->engineShown(Landroid/service/wallpaper/IWallpaperEngine;)V
 Landroid/service/wallpaper/IWallpaperConnection;->onWallpaperColorsChanged(Landroid/app/WallpaperColors;)V
 Landroid/service/wallpaper/IWallpaperConnection;->setWallpaper(Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
-Landroid/service/wallpaper/IWallpaperEngine$Stub$Proxy;
 Landroid/service/wallpaper/IWallpaperEngine$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/wallpaper/IWallpaperEngine$Stub$Proxy;->destroy()V
 Landroid/service/wallpaper/IWallpaperEngine$Stub$Proxy;->dispatchPointer(Landroid/view/MotionEvent;)V
@@ -69408,7 +64739,6 @@
 Landroid/service/wallpaper/IWallpaperEngine$Stub$Proxy;->setDisplayPadding(Landroid/graphics/Rect;)V
 Landroid/service/wallpaper/IWallpaperEngine$Stub$Proxy;->setInAmbientMode(ZZ)V
 Landroid/service/wallpaper/IWallpaperEngine$Stub$Proxy;->setVisibility(Z)V
-Landroid/service/wallpaper/IWallpaperEngine$Stub;
 Landroid/service/wallpaper/IWallpaperEngine$Stub;-><init>()V
 Landroid/service/wallpaper/IWallpaperEngine$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/wallpaper/IWallpaperEngine;
 Landroid/service/wallpaper/IWallpaperEngine$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -69420,25 +64750,18 @@
 Landroid/service/wallpaper/IWallpaperEngine$Stub;->TRANSACTION_setDisplayPadding:I
 Landroid/service/wallpaper/IWallpaperEngine$Stub;->TRANSACTION_setInAmbientMode:I
 Landroid/service/wallpaper/IWallpaperEngine$Stub;->TRANSACTION_setVisibility:I
-Landroid/service/wallpaper/IWallpaperEngine;
 Landroid/service/wallpaper/IWallpaperEngine;->requestWallpaperColors()V
 Landroid/service/wallpaper/IWallpaperEngine;->setDisplayPadding(Landroid/graphics/Rect;)V
 Landroid/service/wallpaper/IWallpaperEngine;->setInAmbientMode(ZZ)V
-Landroid/service/wallpaper/IWallpaperService$Stub$Proxy;
 Landroid/service/wallpaper/IWallpaperService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/service/wallpaper/IWallpaperService$Stub$Proxy;->attach(Landroid/service/wallpaper/IWallpaperConnection;Landroid/os/IBinder;IZIILandroid/graphics/Rect;)V
 Landroid/service/wallpaper/IWallpaperService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/service/wallpaper/IWallpaperService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/service/wallpaper/IWallpaperService$Stub;
 Landroid/service/wallpaper/IWallpaperService$Stub;-><init>()V
 Landroid/service/wallpaper/IWallpaperService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/service/wallpaper/IWallpaperService$Stub;->TRANSACTION_attach:I
-Landroid/service/wallpaper/IWallpaperService;
 Landroid/service/wallpaper/IWallpaperService;->attach(Landroid/service/wallpaper/IWallpaperConnection;Landroid/os/IBinder;IZIILandroid/graphics/Rect;)V
-Landroid/service/wallpaper/WallpaperService$Engine$WallpaperInputEventReceiver;
-Landroid/service/wallpaper/WallpaperService$Engine$WallpaperInputEventReceiver;-><init>(Landroid/view/InputChannel;Landroid/os/Looper;)V
 Landroid/service/wallpaper/WallpaperService$Engine$WallpaperInputEventReceiver;->onInputEvent(Landroid/view/InputEvent;I)V
-Landroid/service/wallpaper/WallpaperService$Engine;-><init>(Ljava/util/function/Supplier;Landroid/os/Handler;)V
 Landroid/service/wallpaper/WallpaperService$Engine;->attach(Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;)V
 Landroid/service/wallpaper/WallpaperService$Engine;->detach()V
 Landroid/service/wallpaper/WallpaperService$Engine;->dispatchPointer(Landroid/view/MotionEvent;)V
@@ -69516,8 +64839,6 @@
 Landroid/service/wallpaper/WallpaperService$Engine;->reportVisibility()V
 Landroid/service/wallpaper/WallpaperService$Engine;->setCreated(Z)V
 Landroid/service/wallpaper/WallpaperService$Engine;->updateSurface(ZZZ)V
-Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;
-Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;-><init>(Landroid/service/wallpaper/WallpaperService;Landroid/service/wallpaper/IWallpaperConnection;Landroid/os/IBinder;IZIILandroid/graphics/Rect;)V
 Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->destroy()V
 Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->dispatchPointer(Landroid/view/MotionEvent;)V
 Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->dispatchWallpaperCommand(Ljava/lang/String;IIILandroid/os/Bundle;)V
@@ -69538,11 +64859,8 @@
 Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->setDisplayPadding(Landroid/graphics/Rect;)V
 Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->setInAmbientMode(ZZ)V
 Landroid/service/wallpaper/WallpaperService$IWallpaperEngineWrapper;->setVisibility(Z)V
-Landroid/service/wallpaper/WallpaperService$IWallpaperServiceWrapper;
-Landroid/service/wallpaper/WallpaperService$IWallpaperServiceWrapper;-><init>(Landroid/service/wallpaper/WallpaperService;)V
 Landroid/service/wallpaper/WallpaperService$IWallpaperServiceWrapper;->attach(Landroid/service/wallpaper/IWallpaperConnection;Landroid/os/IBinder;IZIILandroid/graphics/Rect;)V
 Landroid/service/wallpaper/WallpaperService$IWallpaperServiceWrapper;->mTarget:Landroid/service/wallpaper/WallpaperService;
-Landroid/service/wallpaper/WallpaperService$WallpaperCommand;
 Landroid/service/wallpaper/WallpaperService$WallpaperCommand;-><init>()V
 Landroid/service/wallpaper/WallpaperService$WallpaperCommand;->action:Ljava/lang/String;
 Landroid/service/wallpaper/WallpaperService$WallpaperCommand;->extras:Landroid/os/Bundle;
@@ -69566,10 +64884,8 @@
 Landroid/service/wallpaper/WallpaperService;->MSG_WINDOW_MOVED:I
 Landroid/service/wallpaper/WallpaperService;->NOTIFY_COLORS_RATE_LIMIT_MS:I
 Landroid/service/wallpaper/WallpaperService;->TAG:Ljava/lang/String;
-Landroid/service/wallpaper/WallpaperSettingsActivity;
 Landroid/service/wallpaper/WallpaperSettingsActivity;-><init>()V
 Landroid/service/wallpaper/WallpaperSettingsActivity;->EXTRA_PREVIEW_MODE:Ljava/lang/String;
-Landroid/speech/IRecognitionListener$Stub$Proxy;
 Landroid/speech/IRecognitionListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/speech/IRecognitionListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/speech/IRecognitionListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -69582,7 +64898,6 @@
 Landroid/speech/IRecognitionListener$Stub$Proxy;->onReadyForSpeech(Landroid/os/Bundle;)V
 Landroid/speech/IRecognitionListener$Stub$Proxy;->onResults(Landroid/os/Bundle;)V
 Landroid/speech/IRecognitionListener$Stub$Proxy;->onRmsChanged(F)V
-Landroid/speech/IRecognitionListener$Stub;
 Landroid/speech/IRecognitionListener$Stub;-><init>()V
 Landroid/speech/IRecognitionListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/speech/IRecognitionListener;
 Landroid/speech/IRecognitionListener$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -69595,7 +64910,6 @@
 Landroid/speech/IRecognitionListener$Stub;->TRANSACTION_onReadyForSpeech:I
 Landroid/speech/IRecognitionListener$Stub;->TRANSACTION_onResults:I
 Landroid/speech/IRecognitionListener$Stub;->TRANSACTION_onRmsChanged:I
-Landroid/speech/IRecognitionListener;
 Landroid/speech/IRecognitionListener;->onBeginningOfSpeech()V
 Landroid/speech/IRecognitionListener;->onBufferReceived([B)V
 Landroid/speech/IRecognitionListener;->onEndOfSpeech()V
@@ -69604,36 +64918,29 @@
 Landroid/speech/IRecognitionListener;->onReadyForSpeech(Landroid/os/Bundle;)V
 Landroid/speech/IRecognitionListener;->onResults(Landroid/os/Bundle;)V
 Landroid/speech/IRecognitionListener;->onRmsChanged(F)V
-Landroid/speech/IRecognitionService$Stub$Proxy;
 Landroid/speech/IRecognitionService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/speech/IRecognitionService$Stub$Proxy;->cancel(Landroid/speech/IRecognitionListener;)V
 Landroid/speech/IRecognitionService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/speech/IRecognitionService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/speech/IRecognitionService$Stub$Proxy;->startListening(Landroid/content/Intent;Landroid/speech/IRecognitionListener;)V
 Landroid/speech/IRecognitionService$Stub$Proxy;->stopListening(Landroid/speech/IRecognitionListener;)V
-Landroid/speech/IRecognitionService$Stub;
 Landroid/speech/IRecognitionService$Stub;-><init>()V
 Landroid/speech/IRecognitionService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/speech/IRecognitionService;
 Landroid/speech/IRecognitionService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/speech/IRecognitionService$Stub;->TRANSACTION_cancel:I
 Landroid/speech/IRecognitionService$Stub;->TRANSACTION_startListening:I
 Landroid/speech/IRecognitionService$Stub;->TRANSACTION_stopListening:I
-Landroid/speech/IRecognitionService;
 Landroid/speech/IRecognitionService;->cancel(Landroid/speech/IRecognitionListener;)V
 Landroid/speech/IRecognitionService;->startListening(Landroid/content/Intent;Landroid/speech/IRecognitionListener;)V
 Landroid/speech/IRecognitionService;->stopListening(Landroid/speech/IRecognitionListener;)V
-Landroid/speech/RecognitionService$Callback;-><init>(Landroid/speech/IRecognitionListener;I)V
 Landroid/speech/RecognitionService$Callback;->mCallingUid:I
 Landroid/speech/RecognitionService$Callback;->mListener:Landroid/speech/IRecognitionListener;
-Landroid/speech/RecognitionService$RecognitionServiceBinder;
 Landroid/speech/RecognitionService$RecognitionServiceBinder;-><init>(Landroid/speech/RecognitionService;)V
 Landroid/speech/RecognitionService$RecognitionServiceBinder;->cancel(Landroid/speech/IRecognitionListener;)V
 Landroid/speech/RecognitionService$RecognitionServiceBinder;->clearReference()V
 Landroid/speech/RecognitionService$RecognitionServiceBinder;->mServiceRef:Ljava/lang/ref/WeakReference;
 Landroid/speech/RecognitionService$RecognitionServiceBinder;->startListening(Landroid/content/Intent;Landroid/speech/IRecognitionListener;)V
 Landroid/speech/RecognitionService$RecognitionServiceBinder;->stopListening(Landroid/speech/IRecognitionListener;)V
-Landroid/speech/RecognitionService$StartListeningArgs;
-Landroid/speech/RecognitionService$StartListeningArgs;-><init>(Landroid/content/Intent;Landroid/speech/IRecognitionListener;I)V
 Landroid/speech/RecognitionService$StartListeningArgs;->mCallingUid:I
 Landroid/speech/RecognitionService$StartListeningArgs;->mIntent:Landroid/content/Intent;
 Landroid/speech/RecognitionService$StartListeningArgs;->mListener:Landroid/speech/IRecognitionListener;
@@ -69653,9 +64960,6 @@
 Landroid/speech/RecognitionService;->TAG:Ljava/lang/String;
 Landroid/speech/RecognizerIntent;-><init>()V
 Landroid/speech/RecognizerResultsIntent;-><init>()V
-Landroid/speech/SpeechRecognizer$Connection;
-Landroid/speech/SpeechRecognizer$Connection;-><init>()V
-Landroid/speech/SpeechRecognizer$InternalListener;
 Landroid/speech/SpeechRecognizer$InternalListener;-><init>()V
 Landroid/speech/SpeechRecognizer$InternalListener;->mInternalHandler:Landroid/os/Handler;
 Landroid/speech/SpeechRecognizer$InternalListener;->mInternalListener:Landroid/speech/RecognitionListener;
@@ -69698,7 +65002,6 @@
 Landroid/speech/SpeechRecognizer;->MSG_STOP:I
 Landroid/speech/SpeechRecognizer;->putMessage(Landroid/os/Message;)V
 Landroid/speech/SpeechRecognizer;->TAG:Ljava/lang/String;
-Landroid/speech/tts/AbstractEventLogger;
 Landroid/speech/tts/AbstractEventLogger;-><init>(IILjava/lang/String;)V
 Landroid/speech/tts/AbstractEventLogger;->logFailure(I)V
 Landroid/speech/tts/AbstractEventLogger;->logSuccess(JJJ)V
@@ -69716,14 +65019,10 @@
 Landroid/speech/tts/AbstractEventLogger;->onEngineComplete()V
 Landroid/speech/tts/AbstractEventLogger;->onEngineDataReceived()V
 Landroid/speech/tts/AbstractEventLogger;->onRequestProcessingStart()V
-Landroid/speech/tts/AbstractSynthesisCallback;
 Landroid/speech/tts/AbstractSynthesisCallback;-><init>(Z)V
 Landroid/speech/tts/AbstractSynthesisCallback;->errorCodeOnStop()I
 Landroid/speech/tts/AbstractSynthesisCallback;->mClientIsUsingV2:Z
 Landroid/speech/tts/AbstractSynthesisCallback;->stop()V
-Landroid/speech/tts/AudioPlaybackHandler$MessageLoop;
-Landroid/speech/tts/AudioPlaybackHandler$MessageLoop;-><init>()V
-Landroid/speech/tts/AudioPlaybackHandler;
 Landroid/speech/tts/AudioPlaybackHandler;-><init>()V
 Landroid/speech/tts/AudioPlaybackHandler;->DBG:Z
 Landroid/speech/tts/AudioPlaybackHandler;->enqueue(Landroid/speech/tts/PlaybackQueueItem;)V
@@ -69739,7 +65038,6 @@
 Landroid/speech/tts/AudioPlaybackHandler;->stop(Landroid/speech/tts/PlaybackQueueItem;)V
 Landroid/speech/tts/AudioPlaybackHandler;->stopForApp(Ljava/lang/Object;)V
 Landroid/speech/tts/AudioPlaybackHandler;->TAG:Ljava/lang/String;
-Landroid/speech/tts/AudioPlaybackQueueItem;
 Landroid/speech/tts/AudioPlaybackQueueItem;-><init>(Landroid/speech/tts/TextToSpeechService$UtteranceProgressDispatcher;Ljava/lang/Object;Landroid/content/Context;Landroid/net/Uri;Landroid/speech/tts/TextToSpeechService$AudioOutputParams;)V
 Landroid/speech/tts/AudioPlaybackQueueItem;->clip(FFF)F
 Landroid/speech/tts/AudioPlaybackQueueItem;->finish()V
@@ -69752,14 +65050,12 @@
 Landroid/speech/tts/AudioPlaybackQueueItem;->setupVolume(Landroid/media/MediaPlayer;FF)V
 Landroid/speech/tts/AudioPlaybackQueueItem;->stop(I)V
 Landroid/speech/tts/AudioPlaybackQueueItem;->TAG:Ljava/lang/String;
-Landroid/speech/tts/EventLogger;
 Landroid/speech/tts/EventLogger;-><init>(Landroid/speech/tts/SynthesisRequest;IILjava/lang/String;)V
 Landroid/speech/tts/EventLogger;->getLocaleString()Ljava/lang/String;
 Landroid/speech/tts/EventLogger;->getUtteranceLength()I
 Landroid/speech/tts/EventLogger;->logFailure(I)V
 Landroid/speech/tts/EventLogger;->logSuccess(JJJ)V
 Landroid/speech/tts/EventLogger;->mRequest:Landroid/speech/tts/SynthesisRequest;
-Landroid/speech/tts/EventLogTags;
 Landroid/speech/tts/EventLogTags;-><init>()V
 Landroid/speech/tts/EventLogTags;->TTS_SPEAK_FAILURE:I
 Landroid/speech/tts/EventLogTags;->TTS_SPEAK_SUCCESS:I
@@ -69769,7 +65065,6 @@
 Landroid/speech/tts/EventLogTags;->writeTtsSpeakSuccess(Ljava/lang/String;IIILjava/lang/String;IIJJJ)V
 Landroid/speech/tts/EventLogTags;->writeTtsV2SpeakFailure(Ljava/lang/String;IIILjava/lang/String;I)V
 Landroid/speech/tts/EventLogTags;->writeTtsV2SpeakSuccess(Ljava/lang/String;IIILjava/lang/String;JJJ)V
-Landroid/speech/tts/ITextToSpeechCallback$Stub$Proxy;
 Landroid/speech/tts/ITextToSpeechCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/speech/tts/ITextToSpeechCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/speech/tts/ITextToSpeechCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -69780,7 +65075,6 @@
 Landroid/speech/tts/ITextToSpeechCallback$Stub$Proxy;->onStart(Ljava/lang/String;)V
 Landroid/speech/tts/ITextToSpeechCallback$Stub$Proxy;->onStop(Ljava/lang/String;Z)V
 Landroid/speech/tts/ITextToSpeechCallback$Stub$Proxy;->onSuccess(Ljava/lang/String;)V
-Landroid/speech/tts/ITextToSpeechCallback$Stub;
 Landroid/speech/tts/ITextToSpeechCallback$Stub;-><init>()V
 Landroid/speech/tts/ITextToSpeechCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/speech/tts/ITextToSpeechCallback;
 Landroid/speech/tts/ITextToSpeechCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -69791,7 +65085,6 @@
 Landroid/speech/tts/ITextToSpeechCallback$Stub;->TRANSACTION_onStart:I
 Landroid/speech/tts/ITextToSpeechCallback$Stub;->TRANSACTION_onStop:I
 Landroid/speech/tts/ITextToSpeechCallback$Stub;->TRANSACTION_onSuccess:I
-Landroid/speech/tts/ITextToSpeechCallback;
 Landroid/speech/tts/ITextToSpeechCallback;->onAudioAvailable(Ljava/lang/String;[B)V
 Landroid/speech/tts/ITextToSpeechCallback;->onBeginSynthesis(Ljava/lang/String;III)V
 Landroid/speech/tts/ITextToSpeechCallback;->onError(Ljava/lang/String;I)V
@@ -69799,7 +65092,6 @@
 Landroid/speech/tts/ITextToSpeechCallback;->onStart(Ljava/lang/String;)V
 Landroid/speech/tts/ITextToSpeechCallback;->onStop(Ljava/lang/String;Z)V
 Landroid/speech/tts/ITextToSpeechCallback;->onSuccess(Ljava/lang/String;)V
-Landroid/speech/tts/ITextToSpeechService$Stub$Proxy;
 Landroid/speech/tts/ITextToSpeechService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/speech/tts/ITextToSpeechService$Stub$Proxy;->getClientDefaultLanguage()[Ljava/lang/String;
 Landroid/speech/tts/ITextToSpeechService$Stub$Proxy;->getDefaultVoiceNameFor(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
@@ -69818,7 +65110,6 @@
 Landroid/speech/tts/ITextToSpeechService$Stub$Proxy;->speak(Landroid/os/IBinder;Ljava/lang/CharSequence;ILandroid/os/Bundle;Ljava/lang/String;)I
 Landroid/speech/tts/ITextToSpeechService$Stub$Proxy;->stop(Landroid/os/IBinder;)I
 Landroid/speech/tts/ITextToSpeechService$Stub$Proxy;->synthesizeToFileDescriptor(Landroid/os/IBinder;Ljava/lang/CharSequence;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;Ljava/lang/String;)I
-Landroid/speech/tts/ITextToSpeechService$Stub;
 Landroid/speech/tts/ITextToSpeechService$Stub;-><init>()V
 Landroid/speech/tts/ITextToSpeechService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/speech/tts/ITextToSpeechService;
 Landroid/speech/tts/ITextToSpeechService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -69837,7 +65128,6 @@
 Landroid/speech/tts/ITextToSpeechService$Stub;->TRANSACTION_speak:I
 Landroid/speech/tts/ITextToSpeechService$Stub;->TRANSACTION_stop:I
 Landroid/speech/tts/ITextToSpeechService$Stub;->TRANSACTION_synthesizeToFileDescriptor:I
-Landroid/speech/tts/ITextToSpeechService;
 Landroid/speech/tts/ITextToSpeechService;->getClientDefaultLanguage()[Ljava/lang/String;
 Landroid/speech/tts/ITextToSpeechService;->getDefaultVoiceNameFor(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 Landroid/speech/tts/ITextToSpeechService;->getFeaturesForLanguage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
@@ -69853,14 +65143,12 @@
 Landroid/speech/tts/ITextToSpeechService;->speak(Landroid/os/IBinder;Ljava/lang/CharSequence;ILandroid/os/Bundle;Ljava/lang/String;)I
 Landroid/speech/tts/ITextToSpeechService;->stop(Landroid/os/IBinder;)I
 Landroid/speech/tts/ITextToSpeechService;->synthesizeToFileDescriptor(Landroid/os/IBinder;Ljava/lang/CharSequence;Landroid/os/ParcelFileDescriptor;Landroid/os/Bundle;Ljava/lang/String;)I
-Landroid/speech/tts/PlaybackQueueItem;
 Landroid/speech/tts/PlaybackQueueItem;-><init>(Landroid/speech/tts/TextToSpeechService$UtteranceProgressDispatcher;Ljava/lang/Object;)V
 Landroid/speech/tts/PlaybackQueueItem;->getCallerIdentity()Ljava/lang/Object;
 Landroid/speech/tts/PlaybackQueueItem;->getDispatcher()Landroid/speech/tts/TextToSpeechService$UtteranceProgressDispatcher;
 Landroid/speech/tts/PlaybackQueueItem;->mCallerIdentity:Ljava/lang/Object;
 Landroid/speech/tts/PlaybackQueueItem;->mDispatcher:Landroid/speech/tts/TextToSpeechService$UtteranceProgressDispatcher;
 Landroid/speech/tts/PlaybackQueueItem;->stop(I)V
-Landroid/speech/tts/SynthesisCallback$SupportedAudioFormat;
 Landroid/speech/tts/SynthesisRequest;->mCallerUid:I
 Landroid/speech/tts/SynthesisRequest;->mCountry:Ljava/lang/String;
 Landroid/speech/tts/SynthesisRequest;->mLanguage:Ljava/lang/String;
@@ -69875,15 +65163,9 @@
 Landroid/speech/tts/SynthesisRequest;->setPitch(I)V
 Landroid/speech/tts/SynthesisRequest;->setSpeechRate(I)V
 Landroid/speech/tts/SynthesisRequest;->setVoiceName(Ljava/lang/String;)V
-Landroid/speech/tts/TextToSpeech$Action;
 Landroid/speech/tts/TextToSpeech$Action;->run(Landroid/speech/tts/ITextToSpeechService;)Ljava/lang/Object;
-Landroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;
-Landroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;-><init>(Landroid/content/ComponentName;)V
-Landroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->doInBackground([[Ljava/lang/Void;)Ljava/lang/Integer;
 Landroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->mName:Landroid/content/ComponentName;
 Landroid/speech/tts/TextToSpeech$Connection$SetupConnectionAsyncTask;->onPostExecute(Ljava/lang/Integer;)V
-Landroid/speech/tts/TextToSpeech$Connection;
-Landroid/speech/tts/TextToSpeech$Connection;-><init>()V
 Landroid/speech/tts/TextToSpeech$Connection;->clearServiceConnection()Z
 Landroid/speech/tts/TextToSpeech$Connection;->disconnect()V
 Landroid/speech/tts/TextToSpeech$Connection;->getCallerIdentity()Landroid/os/IBinder;
@@ -69909,7 +65191,6 @@
 Landroid/speech/tts/TextToSpeech$Engine;->USE_DEFAULTS:I
 Landroid/speech/tts/TextToSpeech$EngineInfo;->priority:I
 Landroid/speech/tts/TextToSpeech$EngineInfo;->system:Z
-Landroid/speech/tts/TextToSpeech$Error;
 Landroid/speech/tts/TextToSpeech;-><init>(Landroid/content/Context;Landroid/speech/tts/TextToSpeech$OnInitListener;Ljava/lang/String;Ljava/lang/String;Z)V
 Landroid/speech/tts/TextToSpeech;->connectToEngine(Ljava/lang/String;)Z
 Landroid/speech/tts/TextToSpeech;->convertParamsHashMaptoBundle(Ljava/util/HashMap;)Landroid/os/Bundle;
@@ -69941,7 +65222,6 @@
 Landroid/speech/tts/TextToSpeech;->verifyFloatBundleParam(Landroid/os/Bundle;Ljava/lang/String;)Z
 Landroid/speech/tts/TextToSpeech;->verifyIntegerBundleParam(Landroid/os/Bundle;Ljava/lang/String;)Z
 Landroid/speech/tts/TextToSpeech;->verifyStringBundleParam(Landroid/os/Bundle;Ljava/lang/String;)Z
-Landroid/speech/tts/TextToSpeechService$AudioOutputParams;
 Landroid/speech/tts/TextToSpeechService$AudioOutputParams;-><init>()V
 Landroid/speech/tts/TextToSpeechService$AudioOutputParams;-><init>(IFFLandroid/media/AudioAttributes;)V
 Landroid/speech/tts/TextToSpeechService$AudioOutputParams;->createFromParamsBundle(Landroid/os/Bundle;Z)Landroid/speech/tts/TextToSpeechService$AudioOutputParams;
@@ -69949,16 +65229,12 @@
 Landroid/speech/tts/TextToSpeechService$AudioOutputParams;->mPan:F
 Landroid/speech/tts/TextToSpeechService$AudioOutputParams;->mSessionId:I
 Landroid/speech/tts/TextToSpeechService$AudioOutputParams;->mVolume:F
-Landroid/speech/tts/TextToSpeechService$AudioSpeechItem;
-Landroid/speech/tts/TextToSpeechService$AudioSpeechItem;-><init>(Ljava/lang/Object;IILandroid/os/Bundle;Ljava/lang/String;Landroid/net/Uri;)V
 Landroid/speech/tts/TextToSpeechService$AudioSpeechItem;->getAudioParams()Landroid/speech/tts/TextToSpeechService$AudioOutputParams;
 Landroid/speech/tts/TextToSpeechService$AudioSpeechItem;->getUtteranceId()Ljava/lang/String;
 Landroid/speech/tts/TextToSpeechService$AudioSpeechItem;->isValid()Z
 Landroid/speech/tts/TextToSpeechService$AudioSpeechItem;->mItem:Landroid/speech/tts/AudioPlaybackQueueItem;
 Landroid/speech/tts/TextToSpeechService$AudioSpeechItem;->playImpl()V
 Landroid/speech/tts/TextToSpeechService$AudioSpeechItem;->stopImpl()V
-Landroid/speech/tts/TextToSpeechService$CallbackMap;
-Landroid/speech/tts/TextToSpeechService$CallbackMap;-><init>()V
 Landroid/speech/tts/TextToSpeechService$CallbackMap;->dispatchOnAudioAvailable(Ljava/lang/Object;Ljava/lang/String;[B)V
 Landroid/speech/tts/TextToSpeechService$CallbackMap;->dispatchOnBeginSynthesis(Ljava/lang/Object;Ljava/lang/String;III)V
 Landroid/speech/tts/TextToSpeechService$CallbackMap;->dispatchOnError(Ljava/lang/Object;Ljava/lang/String;I)V
@@ -69970,30 +65246,22 @@
 Landroid/speech/tts/TextToSpeechService$CallbackMap;->mCallerToCallback:Ljava/util/HashMap;
 Landroid/speech/tts/TextToSpeechService$CallbackMap;->onCallbackDied(Landroid/speech/tts/ITextToSpeechCallback;Ljava/lang/Object;)V
 Landroid/speech/tts/TextToSpeechService$CallbackMap;->setCallback(Landroid/os/IBinder;Landroid/speech/tts/ITextToSpeechCallback;)V
-Landroid/speech/tts/TextToSpeechService$LoadLanguageItem;
-Landroid/speech/tts/TextToSpeechService$LoadLanguageItem;-><init>(Ljava/lang/Object;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/speech/tts/TextToSpeechService$LoadLanguageItem;->isValid()Z
 Landroid/speech/tts/TextToSpeechService$LoadLanguageItem;->mCountry:Ljava/lang/String;
 Landroid/speech/tts/TextToSpeechService$LoadLanguageItem;->mLanguage:Ljava/lang/String;
 Landroid/speech/tts/TextToSpeechService$LoadLanguageItem;->mVariant:Ljava/lang/String;
 Landroid/speech/tts/TextToSpeechService$LoadLanguageItem;->playImpl()V
 Landroid/speech/tts/TextToSpeechService$LoadLanguageItem;->stopImpl()V
-Landroid/speech/tts/TextToSpeechService$LoadVoiceItem;
-Landroid/speech/tts/TextToSpeechService$LoadVoiceItem;-><init>(Ljava/lang/Object;IILjava/lang/String;)V
 Landroid/speech/tts/TextToSpeechService$LoadVoiceItem;->isValid()Z
 Landroid/speech/tts/TextToSpeechService$LoadVoiceItem;->mVoiceName:Ljava/lang/String;
 Landroid/speech/tts/TextToSpeechService$LoadVoiceItem;->playImpl()V
 Landroid/speech/tts/TextToSpeechService$LoadVoiceItem;->stopImpl()V
-Landroid/speech/tts/TextToSpeechService$SilenceSpeechItem;
-Landroid/speech/tts/TextToSpeechService$SilenceSpeechItem;-><init>(Ljava/lang/Object;IILjava/lang/String;J)V
 Landroid/speech/tts/TextToSpeechService$SilenceSpeechItem;->getUtteranceId()Ljava/lang/String;
 Landroid/speech/tts/TextToSpeechService$SilenceSpeechItem;->isValid()Z
 Landroid/speech/tts/TextToSpeechService$SilenceSpeechItem;->mDuration:J
 Landroid/speech/tts/TextToSpeechService$SilenceSpeechItem;->mUtteranceId:Ljava/lang/String;
 Landroid/speech/tts/TextToSpeechService$SilenceSpeechItem;->playImpl()V
 Landroid/speech/tts/TextToSpeechService$SilenceSpeechItem;->stopImpl()V
-Landroid/speech/tts/TextToSpeechService$SpeechItem;
-Landroid/speech/tts/TextToSpeechService$SpeechItem;-><init>(Ljava/lang/Object;II)V
 Landroid/speech/tts/TextToSpeechService$SpeechItem;->getCallerIdentity()Ljava/lang/Object;
 Landroid/speech/tts/TextToSpeechService$SpeechItem;->getCallerPid()I
 Landroid/speech/tts/TextToSpeechService$SpeechItem;->getCallerUid()I
@@ -70009,8 +65277,6 @@
 Landroid/speech/tts/TextToSpeechService$SpeechItem;->playImpl()V
 Landroid/speech/tts/TextToSpeechService$SpeechItem;->stop()V
 Landroid/speech/tts/TextToSpeechService$SpeechItem;->stopImpl()V
-Landroid/speech/tts/TextToSpeechService$SynthesisSpeechItem;
-Landroid/speech/tts/TextToSpeechService$SynthesisSpeechItem;-><init>(Ljava/lang/Object;IILandroid/os/Bundle;Ljava/lang/String;Ljava/lang/CharSequence;)V
 Landroid/speech/tts/TextToSpeechService$SynthesisSpeechItem;->createSynthesisCallback()Landroid/speech/tts/AbstractSynthesisCallback;
 Landroid/speech/tts/TextToSpeechService$SynthesisSpeechItem;->getCountry()Ljava/lang/String;
 Landroid/speech/tts/TextToSpeechService$SynthesisSpeechItem;->getLanguage()Ljava/lang/String;
@@ -70027,13 +65293,9 @@
 Landroid/speech/tts/TextToSpeechService$SynthesisSpeechItem;->playImpl()V
 Landroid/speech/tts/TextToSpeechService$SynthesisSpeechItem;->setRequestParams(Landroid/speech/tts/SynthesisRequest;)V
 Landroid/speech/tts/TextToSpeechService$SynthesisSpeechItem;->stopImpl()V
-Landroid/speech/tts/TextToSpeechService$SynthesisToFileOutputStreamSpeechItem;
-Landroid/speech/tts/TextToSpeechService$SynthesisToFileOutputStreamSpeechItem;-><init>(Ljava/lang/Object;IILandroid/os/Bundle;Ljava/lang/String;Ljava/lang/CharSequence;Ljava/io/FileOutputStream;)V
 Landroid/speech/tts/TextToSpeechService$SynthesisToFileOutputStreamSpeechItem;->createSynthesisCallback()Landroid/speech/tts/AbstractSynthesisCallback;
 Landroid/speech/tts/TextToSpeechService$SynthesisToFileOutputStreamSpeechItem;->mFileOutputStream:Ljava/io/FileOutputStream;
 Landroid/speech/tts/TextToSpeechService$SynthesisToFileOutputStreamSpeechItem;->playImpl()V
-Landroid/speech/tts/TextToSpeechService$SynthHandler;
-Landroid/speech/tts/TextToSpeechService$SynthHandler;-><init>(Landroid/os/Looper;)V
 Landroid/speech/tts/TextToSpeechService$SynthHandler;->endFlushingSpeechItems(Ljava/lang/Object;)V
 Landroid/speech/tts/TextToSpeechService$SynthHandler;->enqueueSpeechItem(ILandroid/speech/tts/TextToSpeechService$SpeechItem;)I
 Landroid/speech/tts/TextToSpeechService$SynthHandler;->getCurrentSpeechItem()Landroid/speech/tts/TextToSpeechService$SpeechItem;
@@ -70049,11 +65311,8 @@
 Landroid/speech/tts/TextToSpeechService$SynthHandler;->startFlushingSpeechItems(Ljava/lang/Object;)V
 Landroid/speech/tts/TextToSpeechService$SynthHandler;->stopAll()I
 Landroid/speech/tts/TextToSpeechService$SynthHandler;->stopForApp(Ljava/lang/Object;)I
-Landroid/speech/tts/TextToSpeechService$SynthThread;
-Landroid/speech/tts/TextToSpeechService$SynthThread;-><init>()V
 Landroid/speech/tts/TextToSpeechService$SynthThread;->broadcastTtsQueueProcessingCompleted()V
 Landroid/speech/tts/TextToSpeechService$SynthThread;->mFirstIdle:Z
-Landroid/speech/tts/TextToSpeechService$UtteranceProgressDispatcher;
 Landroid/speech/tts/TextToSpeechService$UtteranceProgressDispatcher;->dispatchOnAudioAvailable([B)V
 Landroid/speech/tts/TextToSpeechService$UtteranceProgressDispatcher;->dispatchOnBeginSynthesis(III)V
 Landroid/speech/tts/TextToSpeechService$UtteranceProgressDispatcher;->dispatchOnError(I)V
@@ -70061,8 +65320,6 @@
 Landroid/speech/tts/TextToSpeechService$UtteranceProgressDispatcher;->dispatchOnStart()V
 Landroid/speech/tts/TextToSpeechService$UtteranceProgressDispatcher;->dispatchOnStop()V
 Landroid/speech/tts/TextToSpeechService$UtteranceProgressDispatcher;->dispatchOnSuccess()V
-Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItem;
-Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItem;-><init>(Ljava/lang/Object;II)V
 Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItem;->dispatchOnAudioAvailable([B)V
 Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItem;->dispatchOnBeginSynthesis(III)V
 Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItem;->dispatchOnError(I)V
@@ -70074,8 +65331,6 @@
 Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItem;->getIntParam(Landroid/os/Bundle;Ljava/lang/String;I)I
 Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItem;->getStringParam(Landroid/os/Bundle;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItem;->getUtteranceId()Ljava/lang/String;
-Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItemWithParams;
-Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItemWithParams;-><init>(Ljava/lang/Object;IILandroid/os/Bundle;Ljava/lang/String;)V
 Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItemWithParams;->getAudioParams()Landroid/speech/tts/TextToSpeechService$AudioOutputParams;
 Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItemWithParams;->getPitch()I
 Landroid/speech/tts/TextToSpeechService$UtteranceSpeechItemWithParams;->getSpeechRate()I
@@ -70098,11 +65353,9 @@
 Landroid/speech/tts/TextToSpeechService;->mVoicesInfoLock:Ljava/lang/Object;
 Landroid/speech/tts/TextToSpeechService;->SYNTH_THREAD_NAME:Ljava/lang/String;
 Landroid/speech/tts/TextToSpeechService;->TAG:Ljava/lang/String;
-Landroid/speech/tts/TtsEngines$EngineInfoComparator;
 Landroid/speech/tts/TtsEngines$EngineInfoComparator;-><init>()V
 Landroid/speech/tts/TtsEngines$EngineInfoComparator;->compare(Landroid/speech/tts/TextToSpeech$EngineInfo;Landroid/speech/tts/TextToSpeech$EngineInfo;)I
 Landroid/speech/tts/TtsEngines$EngineInfoComparator;->INSTANCE:Landroid/speech/tts/TtsEngines$EngineInfoComparator;
-Landroid/speech/tts/TtsEngines;
 Landroid/speech/tts/TtsEngines;->DBG:Z
 Landroid/speech/tts/TtsEngines;->getDefaultEngine()Ljava/lang/String;
 Landroid/speech/tts/TtsEngines;->getEngineInfo(Landroid/content/pm/ResolveInfo;Landroid/content/pm/PackageManager;)Landroid/speech/tts/TextToSpeech$EngineInfo;
@@ -70134,16 +65387,13 @@
 Landroid/system/ErrnoException;->functionName:Ljava/lang/String;
 Landroid/system/ErrnoException;->rethrowAsIOException()Ljava/io/IOException;
 Landroid/system/ErrnoException;->rethrowAsSocketException()Ljava/net/SocketException;
-Landroid/system/GaiException;
 Landroid/system/GaiException;-><init>(Ljava/lang/String;I)V
 Landroid/system/GaiException;-><init>(Ljava/lang/String;ILjava/lang/Throwable;)V
 Landroid/system/GaiException;->error:I
 Landroid/system/GaiException;->functionName:Ljava/lang/String;
 Landroid/system/GaiException;->rethrowAsUnknownHostException()Ljava/net/UnknownHostException;
 Landroid/system/GaiException;->rethrowAsUnknownHostException(Ljava/lang/String;)Ljava/net/UnknownHostException;
-Landroid/system/Int32Ref;
 Landroid/system/Int32Ref;-><init>(I)V
-Landroid/system/NetlinkSocketAddress;
 Landroid/system/NetlinkSocketAddress;-><init>()V
 Landroid/system/NetlinkSocketAddress;-><init>(I)V
 Landroid/system/NetlinkSocketAddress;->getGroupsMask()I
@@ -70184,14 +65434,12 @@
 Landroid/system/Os;->splice(Ljava/io/FileDescriptor;Landroid/system/Int64Ref;Ljava/io/FileDescriptor;Landroid/system/Int64Ref;JI)J
 Landroid/system/Os;->unlink(Ljava/lang/String;)V
 Landroid/system/Os;->waitpid(ILandroid/system/Int32Ref;I)I
-Landroid/system/PacketSocketAddress;
 Landroid/system/PacketSocketAddress;-><init>(SISB[B)V
 Landroid/system/PacketSocketAddress;->sll_addr:[B
 Landroid/system/PacketSocketAddress;->sll_hatype:S
 Landroid/system/PacketSocketAddress;->sll_ifindex:I
 Landroid/system/PacketSocketAddress;->sll_pkttype:B
 Landroid/system/PacketSocketAddress;->sll_protocol:S
-Landroid/system/StructAddrinfo;
 Landroid/system/StructAddrinfo;-><init>()V
 Landroid/system/StructAddrinfo;->ai_addr:Ljava/net/InetAddress;
 Landroid/system/StructAddrinfo;->ai_family:I
@@ -70199,32 +65447,26 @@
 Landroid/system/StructAddrinfo;->ai_next:Landroid/system/StructAddrinfo;
 Landroid/system/StructAddrinfo;->ai_protocol:I
 Landroid/system/StructAddrinfo;->ai_socktype:I
-Landroid/system/StructCapUserData;
 Landroid/system/StructCapUserData;-><init>(III)V
 Landroid/system/StructCapUserData;->effective:I
 Landroid/system/StructCapUserData;->inheritable:I
 Landroid/system/StructCapUserData;->permitted:I
-Landroid/system/StructCapUserHeader;
 Landroid/system/StructCapUserHeader;-><init>(II)V
 Landroid/system/StructCapUserHeader;->pid:I
 Landroid/system/StructCapUserHeader;->version:I
-Landroid/system/StructFlock;
 Landroid/system/StructFlock;-><init>()V
 Landroid/system/StructFlock;->l_len:J
 Landroid/system/StructFlock;->l_pid:I
 Landroid/system/StructFlock;->l_start:J
 Landroid/system/StructFlock;->l_type:S
 Landroid/system/StructFlock;->l_whence:S
-Landroid/system/StructGroupReq;
 Landroid/system/StructGroupReq;-><init>(ILjava/net/InetAddress;)V
 Landroid/system/StructGroupReq;->gr_group:Ljava/net/InetAddress;
 Landroid/system/StructGroupReq;->gr_interface:I
-Landroid/system/StructIcmpHdr;
 Landroid/system/StructIcmpHdr;-><init>()V
 Landroid/system/StructIcmpHdr;->getBytes()[B
 Landroid/system/StructIcmpHdr;->IcmpEchoHdr(ZI)Landroid/system/StructIcmpHdr;
 Landroid/system/StructIcmpHdr;->packet:[B
-Landroid/system/StructIfaddrs;
 Landroid/system/StructIfaddrs;-><init>(Ljava/lang/String;ILjava/net/InetAddress;Ljava/net/InetAddress;Ljava/net/InetAddress;[B)V
 Landroid/system/StructIfaddrs;->hwaddr:[B
 Landroid/system/StructIfaddrs;->ifa_addr:Ljava/net/InetAddress;
@@ -70232,40 +65474,31 @@
 Landroid/system/StructIfaddrs;->ifa_flags:I
 Landroid/system/StructIfaddrs;->ifa_name:Ljava/lang/String;
 Landroid/system/StructIfaddrs;->ifa_netmask:Ljava/net/InetAddress;
-Landroid/system/StructLinger;
 Landroid/system/StructLinger;-><init>(II)V
 Landroid/system/StructLinger;->isOn()Z
 Landroid/system/StructLinger;->l_linger:I
 Landroid/system/StructLinger;->l_onoff:I
-Landroid/system/StructPasswd;
 Landroid/system/StructPasswd;-><init>(Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;)V
 Landroid/system/StructPasswd;->pw_dir:Ljava/lang/String;
 Landroid/system/StructPasswd;->pw_gid:I
 Landroid/system/StructPasswd;->pw_name:Ljava/lang/String;
 Landroid/system/StructPasswd;->pw_shell:Ljava/lang/String;
 Landroid/system/StructPasswd;->pw_uid:I
-Landroid/system/StructRlimit;
 Landroid/system/StructRlimit;-><init>(JJ)V
 Landroid/system/StructRlimit;->rlim_cur:J
 Landroid/system/StructRlimit;->rlim_max:J
-Landroid/system/StructTimeval;
 Landroid/system/StructTimeval;-><init>(JJ)V
 Landroid/system/StructTimeval;->toMillis()J
 Landroid/system/StructTimeval;->tv_sec:J
 Landroid/system/StructTimeval;->tv_usec:J
-Landroid/system/StructUcred;
 Landroid/system/StructUcred;-><init>(III)V
 Landroid/system/StructUcred;->gid:I
 Landroid/system/StructUcred;->pid:I
 Landroid/system/StructUcred;->uid:I
 Landroid/telecom/AudioState;->listAppend(Ljava/lang/StringBuffer;Ljava/lang/String;)V
 Landroid/telecom/AudioState;->ROUTE_ALL:I
-Landroid/telecom/AuthenticatorService$Authenticator;
-Landroid/telecom/AuthenticatorService$Authenticator;-><init>(Landroid/content/Context;)V
-Landroid/telecom/AuthenticatorService;
 Landroid/telecom/AuthenticatorService;-><init>()V
 Landroid/telecom/AuthenticatorService;->mAuthenticator:Landroid/telecom/AuthenticatorService$Authenticator;
-Landroid/telecom/Call$Callback$HandoverFailureErrors;
 Landroid/telecom/Call$Details;-><init>(Ljava/lang/String;Landroid/net/Uri;ILjava/lang/String;ILandroid/telecom/PhoneAccountHandle;IILandroid/telecom/DisconnectCause;JLandroid/telecom/GatewayInfo;ILandroid/telecom/StatusHints;Landroid/os/Bundle;Landroid/os/Bundle;J)V
 Landroid/telecom/Call$Details;->CAPABILITY_CAN_SEND_RESPONSE_VIA_CONNECTION:I
 Landroid/telecom/Call$Details;->CAPABILITY_SPEED_UP_MT_AUDIO:I
@@ -70291,7 +65524,6 @@
 Landroid/telecom/Call$Details;->mTelecomCallId:Ljava/lang/String;
 Landroid/telecom/Call$Details;->mVideoState:I
 Landroid/telecom/Call$Details;->PROPERTY_ASSISTED_DIALING_USED:I
-Landroid/telecom/Call$RttCall$RttAudioMode;
 Landroid/telecom/Call$RttCall;-><init>(Ljava/lang/String;Ljava/io/InputStreamReader;Ljava/io/OutputStreamWriter;ILandroid/telecom/InCallAdapter;)V
 Landroid/telecom/Call$RttCall;->close()V
 Landroid/telecom/Call$RttCall;->mInCallAdapter:Landroid/telecom/InCallAdapter;
@@ -70357,7 +65589,6 @@
 Landroid/telecom/Call;->putExtra(Ljava/lang/String;Ljava/lang/String;)V
 Landroid/telecom/Call;->putExtra(Ljava/lang/String;Z)V
 Landroid/telecom/Call;->stateToString(I)Ljava/lang/String;
-Landroid/telecom/CallAudioState$CallAudioRoute;
 Landroid/telecom/CallAudioState;-><init>(Landroid/telecom/AudioState;)V
 Landroid/telecom/CallAudioState;-><init>(Landroid/telecom/CallAudioState;)V
 Landroid/telecom/CallAudioState;->activeBluetoothDevice:Landroid/bluetooth/BluetoothDevice;
@@ -70367,7 +65598,6 @@
 Landroid/telecom/CallAudioState;->ROUTE_ALL:I
 Landroid/telecom/CallAudioState;->supportedBluetoothDevices:Ljava/util/Collection;
 Landroid/telecom/CallAudioState;->supportedRouteMask:I
-Landroid/telecom/CallbackRecord;
 Landroid/telecom/CallbackRecord;-><init>(Ljava/lang/Object;Landroid/os/Handler;)V
 Landroid/telecom/CallbackRecord;->getCallback()Ljava/lang/Object;
 Landroid/telecom/CallbackRecord;->getHandler()Landroid/os/Handler;
@@ -70382,13 +65612,10 @@
 Landroid/telecom/CallScreeningService$CallResponse;->mShouldRejectCall:Z
 Landroid/telecom/CallScreeningService$CallResponse;->mShouldSkipCallLog:Z
 Landroid/telecom/CallScreeningService$CallResponse;->mShouldSkipNotification:Z
-Landroid/telecom/CallScreeningService$CallScreeningBinder;
-Landroid/telecom/CallScreeningService$CallScreeningBinder;-><init>()V
 Landroid/telecom/CallScreeningService$CallScreeningBinder;->screenCall(Lcom/android/internal/telecom/ICallScreeningAdapter;Landroid/telecom/ParcelableCall;)V
 Landroid/telecom/CallScreeningService;->mCallScreeningAdapter:Lcom/android/internal/telecom/ICallScreeningAdapter;
 Landroid/telecom/CallScreeningService;->mHandler:Landroid/os/Handler;
 Landroid/telecom/CallScreeningService;->MSG_SCREEN_CALL:I
-Landroid/telecom/Conference$Listener;
 Landroid/telecom/Conference$Listener;-><init>()V
 Landroid/telecom/Conference$Listener;->onConferenceableConnectionsChanged(Landroid/telecom/Conference;Ljava/util/List;)V
 Landroid/telecom/Conference$Listener;->onConnectionAdded(Landroid/telecom/Conference;Landroid/telecom/Connection;)V
@@ -70441,7 +65668,6 @@
 Landroid/telecom/Conference;->setState(I)V
 Landroid/telecom/Conference;->setTelecomCallId(Ljava/lang/String;)V
 Landroid/telecom/Conferenceable;-><init>()V
-Landroid/telecom/ConferenceParticipant;
 Landroid/telecom/ConferenceParticipant;-><init>(Landroid/net/Uri;Ljava/lang/String;Landroid/net/Uri;I)V
 Landroid/telecom/ConferenceParticipant;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/telecom/ConferenceParticipant;->getDisplayName()Ljava/lang/String;
@@ -70452,11 +65678,9 @@
 Landroid/telecom/ConferenceParticipant;->mEndpoint:Landroid/net/Uri;
 Landroid/telecom/ConferenceParticipant;->mHandle:Landroid/net/Uri;
 Landroid/telecom/ConferenceParticipant;->mState:I
-Landroid/telecom/Connection$FailureSignalingConnection;
 Landroid/telecom/Connection$FailureSignalingConnection;-><init>(Landroid/telecom/DisconnectCause;)V
 Landroid/telecom/Connection$FailureSignalingConnection;->checkImmutable()V
 Landroid/telecom/Connection$FailureSignalingConnection;->mImmutable:Z
-Landroid/telecom/Connection$Listener;
 Landroid/telecom/Connection$Listener;-><init>()V
 Landroid/telecom/Connection$Listener;->onAddressChanged(Landroid/telecom/Connection;Landroid/net/Uri;I)V
 Landroid/telecom/Connection$Listener;->onAudioModeIsVoipChanged(Landroid/telecom/Connection;Z)V
@@ -70498,8 +65722,6 @@
 Landroid/telecom/Connection$RttTextStream;->mPipeToInCall:Ljava/io/OutputStreamWriter;
 Landroid/telecom/Connection$RttTextStream;->mReadBuffer:[C
 Landroid/telecom/Connection$RttTextStream;->READ_BUFFER_SIZE:I
-Landroid/telecom/Connection$VideoProvider$VideoProviderBinder;
-Landroid/telecom/Connection$VideoProvider$VideoProviderBinder;-><init>()V
 Landroid/telecom/Connection$VideoProvider$VideoProviderBinder;->addVideoCallback(Landroid/os/IBinder;)V
 Landroid/telecom/Connection$VideoProvider$VideoProviderBinder;->removeVideoCallback(Landroid/os/IBinder;)V
 Landroid/telecom/Connection$VideoProvider$VideoProviderBinder;->requestCallDataUsage()V
@@ -70512,9 +65734,6 @@
 Landroid/telecom/Connection$VideoProvider$VideoProviderBinder;->setPauseImage(Landroid/net/Uri;)V
 Landroid/telecom/Connection$VideoProvider$VideoProviderBinder;->setPreviewSurface(Landroid/view/Surface;)V
 Landroid/telecom/Connection$VideoProvider$VideoProviderBinder;->setZoom(F)V
-Landroid/telecom/Connection$VideoProvider$VideoProviderHandler;
-Landroid/telecom/Connection$VideoProvider$VideoProviderHandler;-><init>()V
-Landroid/telecom/Connection$VideoProvider$VideoProviderHandler;-><init>(Landroid/os/Looper;)V
 Landroid/telecom/Connection$VideoProvider;->changeCallDataUsage(J)V
 Landroid/telecom/Connection$VideoProvider;->getInterface()Lcom/android/internal/telecom/IVideoProvider;
 Landroid/telecom/Connection$VideoProvider;->mBinder:Landroid/telecom/Connection$VideoProvider$VideoProviderBinder;
@@ -70639,7 +65858,6 @@
 Landroid/telecom/Connection;->toLogSafePhoneNumber(Ljava/lang/String;)Ljava/lang/String;
 Landroid/telecom/Connection;->unsetConnectionService(Landroid/telecom/ConnectionService;)V
 Landroid/telecom/Connection;->updateConferenceParticipants(Ljava/util/List;)V
-Landroid/telecom/ConnectionRequest$Builder;
 Landroid/telecom/ConnectionRequest$Builder;-><init>()V
 Landroid/telecom/ConnectionRequest$Builder;->build()Landroid/telecom/ConnectionRequest;
 Landroid/telecom/ConnectionRequest$Builder;->mAccountHandle:Landroid/telecom/PhoneAccountHandle;
@@ -70815,7 +66033,6 @@
 Landroid/telecom/ConnectionService;->swapConference(Ljava/lang/String;)V
 Landroid/telecom/ConnectionService;->triggerConferenceRecalculate()V
 Landroid/telecom/ConnectionService;->unhold(Ljava/lang/String;)V
-Landroid/telecom/ConnectionServiceAdapter;
 Landroid/telecom/ConnectionServiceAdapter;-><init>()V
 Landroid/telecom/ConnectionServiceAdapter;->addAdapter(Lcom/android/internal/telecom/IConnectionServiceAdapter;)V
 Landroid/telecom/ConnectionServiceAdapter;->addConferenceCall(Ljava/lang/String;Landroid/telecom/ParcelableConference;)V
@@ -70858,7 +66075,6 @@
 Landroid/telecom/ConnectionServiceAdapter;->setStatusHints(Ljava/lang/String;Landroid/telecom/StatusHints;)V
 Landroid/telecom/ConnectionServiceAdapter;->setVideoProvider(Ljava/lang/String;Landroid/telecom/Connection$VideoProvider;)V
 Landroid/telecom/ConnectionServiceAdapter;->setVideoState(Ljava/lang/String;I)V
-Landroid/telecom/ConnectionServiceAdapterServant;
 Landroid/telecom/ConnectionServiceAdapterServant;-><init>(Lcom/android/internal/telecom/IConnectionServiceAdapter;)V
 Landroid/telecom/ConnectionServiceAdapterServant;->getStub()Lcom/android/internal/telecom/IConnectionServiceAdapter;
 Landroid/telecom/ConnectionServiceAdapterServant;->mDelegate:Lcom/android/internal/telecom/IConnectionServiceAdapter;
@@ -70899,7 +66115,6 @@
 Landroid/telecom/ConnectionServiceAdapterServant;->MSG_SET_VIDEO_CALL_PROVIDER:I
 Landroid/telecom/ConnectionServiceAdapterServant;->MSG_SET_VIDEO_STATE:I
 Landroid/telecom/ConnectionServiceAdapterServant;->mStub:Lcom/android/internal/telecom/IConnectionServiceAdapter;
-Landroid/telecom/DefaultDialerManager;
 Landroid/telecom/DefaultDialerManager;-><init>()V
 Landroid/telecom/DefaultDialerManager;->filterByIntent(Landroid/content/Context;Ljava/util/List;Landroid/content/Intent;I)Ljava/util/List;
 Landroid/telecom/DefaultDialerManager;->getDefaultDialerApplication(Landroid/content/Context;)Ljava/lang/String;
@@ -70921,7 +66136,6 @@
 Landroid/telecom/GatewayInfo;->mGatewayAddress:Landroid/net/Uri;
 Landroid/telecom/GatewayInfo;->mGatewayProviderPackageName:Ljava/lang/String;
 Landroid/telecom/GatewayInfo;->mOriginalAddress:Landroid/net/Uri;
-Landroid/telecom/InCallAdapter;
 Landroid/telecom/InCallAdapter;-><init>(Lcom/android/internal/telecom/IInCallAdapter;)V
 Landroid/telecom/InCallAdapter;->answerCall(Ljava/lang/String;I)V
 Landroid/telecom/InCallAdapter;->conference(Ljava/lang/String;Ljava/lang/String;)V
@@ -70955,8 +66169,6 @@
 Landroid/telecom/InCallAdapter;->turnProximitySensorOff(Z)V
 Landroid/telecom/InCallAdapter;->turnProximitySensorOn()V
 Landroid/telecom/InCallAdapter;->unholdCall(Ljava/lang/String;)V
-Landroid/telecom/InCallService$InCallServiceBinder;
-Landroid/telecom/InCallService$InCallServiceBinder;-><init>()V
 Landroid/telecom/InCallService$InCallServiceBinder;->addCall(Landroid/telecom/ParcelableCall;)V
 Landroid/telecom/InCallService$InCallServiceBinder;->bringToForeground(Z)V
 Landroid/telecom/InCallService$InCallServiceBinder;->onCallAudioStateChanged(Landroid/telecom/CallAudioState;)V
@@ -70990,23 +66202,16 @@
 Landroid/telecom/InCallService;->MSG_SILENCE_RINGER:I
 Landroid/telecom/InCallService;->MSG_UPDATE_CALL:I
 Landroid/telecom/InCallService;->onAudioStateChanged(Landroid/telecom/AudioState;)V
-Landroid/telecom/Log;
 Landroid/telecom/Log;-><init>()V
 Landroid/telecom/Log;->addEvent(Landroid/telecom/Logging/EventManager$Loggable;Ljava/lang/String;)V
 Landroid/telecom/Log;->addEvent(Landroid/telecom/Logging/EventManager$Loggable;Ljava/lang/String;Ljava/lang/Object;)V
-Landroid/telecom/Log;->addEvent(Landroid/telecom/Logging/EventManager$Loggable;Ljava/lang/String;Ljava/lang/String;[[Ljava/lang/Object;)V
 Landroid/telecom/Log;->addRequestResponsePair(Landroid/telecom/Logging/EventManager$TimedEventPair;)V
-Landroid/telecom/Log;->buildMessage(Ljava/lang/String;Ljava/lang/String;[[Ljava/lang/Object;)Ljava/lang/String;
 Landroid/telecom/Log;->cancelSubsession(Landroid/telecom/Logging/Session;)V
 Landroid/telecom/Log;->continueSession(Landroid/telecom/Logging/Session;Ljava/lang/String;)V
 Landroid/telecom/Log;->createSubsession()Landroid/telecom/Logging/Session;
-Landroid/telecom/Log;->d(Ljava/lang/Object;Ljava/lang/String;[[Ljava/lang/Object;)V
-Landroid/telecom/Log;->d(Ljava/lang/String;Ljava/lang/String;[[Ljava/lang/Object;)V
 Landroid/telecom/Log;->DEBUG:Z
 Landroid/telecom/Log;->dumpEvents(Lcom/android/internal/util/IndentingPrintWriter;)V
 Landroid/telecom/Log;->dumpEventsTimeline(Lcom/android/internal/util/IndentingPrintWriter;)V
-Landroid/telecom/Log;->e(Ljava/lang/Object;Ljava/lang/Throwable;Ljava/lang/String;[[Ljava/lang/Object;)V
-Landroid/telecom/Log;->e(Ljava/lang/String;Ljava/lang/Throwable;Ljava/lang/String;[[Ljava/lang/Object;)V
 Landroid/telecom/Log;->endSession()V
 Landroid/telecom/Log;->ERROR:Z
 Landroid/telecom/Log;->EVENTS_TO_CACHE:I
@@ -71018,8 +66223,6 @@
 Landroid/telecom/Log;->getPrefixFromObject(Ljava/lang/Object;)Ljava/lang/String;
 Landroid/telecom/Log;->getSessionId()Ljava/lang/String;
 Landroid/telecom/Log;->getSessionManager()Landroid/telecom/Logging/SessionManager;
-Landroid/telecom/Log;->i(Ljava/lang/Object;Ljava/lang/String;[[Ljava/lang/Object;)V
-Landroid/telecom/Log;->i(Ljava/lang/String;Ljava/lang/String;[[Ljava/lang/Object;)V
 Landroid/telecom/Log;->INFO:Z
 Landroid/telecom/Log;->isLoggable(I)Z
 Landroid/telecom/Log;->maybeDisableLogging()V
@@ -71041,17 +66244,8 @@
 Landroid/telecom/Log;->sUserExtendedLoggingStopTime:J
 Landroid/telecom/Log;->TAG:Ljava/lang/String;
 Landroid/telecom/Log;->USER_BUILD:Z
-Landroid/telecom/Log;->v(Ljava/lang/Object;Ljava/lang/String;[[Ljava/lang/Object;)V
-Landroid/telecom/Log;->v(Ljava/lang/String;Ljava/lang/String;[[Ljava/lang/Object;)V
 Landroid/telecom/Log;->VERBOSE:Z
-Landroid/telecom/Log;->w(Ljava/lang/Object;Ljava/lang/String;[[Ljava/lang/Object;)V
-Landroid/telecom/Log;->w(Ljava/lang/String;Ljava/lang/String;[[Ljava/lang/Object;)V
 Landroid/telecom/Log;->WARN:Z
-Landroid/telecom/Log;->wtf(Ljava/lang/Object;Ljava/lang/String;[[Ljava/lang/Object;)V
-Landroid/telecom/Log;->wtf(Ljava/lang/Object;Ljava/lang/Throwable;Ljava/lang/String;[[Ljava/lang/Object;)V
-Landroid/telecom/Log;->wtf(Ljava/lang/String;Ljava/lang/String;[[Ljava/lang/Object;)V
-Landroid/telecom/Log;->wtf(Ljava/lang/String;Ljava/lang/Throwable;Ljava/lang/String;[[Ljava/lang/Object;)V
-Landroid/telecom/ParcelableCall;
 Landroid/telecom/ParcelableCall;-><init>(Ljava/lang/String;ILandroid/telecom/DisconnectCause;Ljava/util/List;IIIJLandroid/net/Uri;ILjava/lang/String;ILandroid/telecom/GatewayInfo;Landroid/telecom/PhoneAccountHandle;ZLcom/android/internal/telecom/IVideoProvider;ZLandroid/telecom/ParcelableRttCall;Ljava/lang/String;Ljava/util/List;Landroid/telecom/StatusHints;ILjava/util/List;Landroid/os/Bundle;Landroid/os/Bundle;J)V
 Landroid/telecom/ParcelableCall;->getAccountHandle()Landroid/telecom/PhoneAccountHandle;
 Landroid/telecom/ParcelableCall;->getCallerDisplayName()Ljava/lang/String;
@@ -71108,7 +66302,6 @@
 Landroid/telecom/ParcelableCallAnalytics$EventTiming;-><init>(Landroid/os/Parcel;)V
 Landroid/telecom/ParcelableCallAnalytics$EventTiming;->mName:I
 Landroid/telecom/ParcelableCallAnalytics$EventTiming;->mTime:J
-Landroid/telecom/ParcelableCallAnalytics$VideoEvent;
 Landroid/telecom/ParcelableCallAnalytics$VideoEvent;-><init>(IJI)V
 Landroid/telecom/ParcelableCallAnalytics$VideoEvent;-><init>(Landroid/os/Parcel;)V
 Landroid/telecom/ParcelableCallAnalytics$VideoEvent;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -71142,7 +66335,6 @@
 Landroid/telecom/ParcelableCallAnalytics;->startTimeMillis:J
 Landroid/telecom/ParcelableCallAnalytics;->videoEvents:Ljava/util/List;
 Landroid/telecom/ParcelableCallAnalytics;->writeBooleanAsByte(Landroid/os/Parcel;Z)V
-Landroid/telecom/ParcelableConference;
 Landroid/telecom/ParcelableConference;-><init>(Landroid/telecom/PhoneAccountHandle;IIILjava/util/List;Lcom/android/internal/telecom/IVideoProvider;IJJLandroid/telecom/StatusHints;Landroid/os/Bundle;)V
 Landroid/telecom/ParcelableConference;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/telecom/ParcelableConference;->getConnectElapsedTimeMillis()J
@@ -71167,7 +66359,6 @@
 Landroid/telecom/ParcelableConference;->mStatusHints:Landroid/telecom/StatusHints;
 Landroid/telecom/ParcelableConference;->mVideoProvider:Lcom/android/internal/telecom/IVideoProvider;
 Landroid/telecom/ParcelableConference;->mVideoState:I
-Landroid/telecom/ParcelableConnection;
 Landroid/telecom/ParcelableConnection;-><init>(Landroid/telecom/PhoneAccountHandle;IIIILandroid/net/Uri;ILjava/lang/String;ILcom/android/internal/telecom/IVideoProvider;IZZJJLandroid/telecom/StatusHints;Landroid/telecom/DisconnectCause;Ljava/util/List;Landroid/os/Bundle;)V
 Landroid/telecom/ParcelableConnection;-><init>(Landroid/telecom/PhoneAccountHandle;IIIILandroid/net/Uri;ILjava/lang/String;ILcom/android/internal/telecom/IVideoProvider;IZZJJLandroid/telecom/StatusHints;Landroid/telecom/DisconnectCause;Ljava/util/List;Landroid/os/Bundle;Ljava/lang/String;)V
 Landroid/telecom/ParcelableConnection;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -71211,7 +66402,6 @@
 Landroid/telecom/ParcelableConnection;->mSupportedAudioRoutes:I
 Landroid/telecom/ParcelableConnection;->mVideoProvider:Lcom/android/internal/telecom/IVideoProvider;
 Landroid/telecom/ParcelableConnection;->mVideoState:I
-Landroid/telecom/ParcelableRttCall;
 Landroid/telecom/ParcelableRttCall;-><init>(ILandroid/os/ParcelFileDescriptor;Landroid/os/ParcelFileDescriptor;)V
 Landroid/telecom/ParcelableRttCall;-><init>(Landroid/os/Parcel;)V
 Landroid/telecom/ParcelableRttCall;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -71330,7 +66520,6 @@
 Landroid/telecom/RemoteConnection$Callback;->onRttInitiationFailure(Landroid/telecom/RemoteConnection;I)V
 Landroid/telecom/RemoteConnection$Callback;->onRttInitiationSuccess(Landroid/telecom/RemoteConnection;)V
 Landroid/telecom/RemoteConnection$Callback;->onRttSessionRemotelyTerminated(Landroid/telecom/RemoteConnection;)V
-Landroid/telecom/RemoteConnection$CallbackRecord;
 Landroid/telecom/RemoteConnection$CallbackRecord;-><init>(Landroid/telecom/RemoteConnection$Callback;Landroid/os/Handler;)V
 Landroid/telecom/RemoteConnection$CallbackRecord;->getCallback()Landroid/telecom/RemoteConnection$Callback;
 Landroid/telecom/RemoteConnection$CallbackRecord;->getHandler()Landroid/os/Handler;
@@ -71398,14 +66587,12 @@
 Landroid/telecom/RemoteConnection;->setVideoState(I)V
 Landroid/telecom/RemoteConnection;->startRtt(Landroid/telecom/Connection$RttTextStream;)V
 Landroid/telecom/RemoteConnection;->stopRtt()V
-Landroid/telecom/RemoteConnectionManager;
 Landroid/telecom/RemoteConnectionManager;-><init>(Landroid/telecom/ConnectionService;)V
 Landroid/telecom/RemoteConnectionManager;->addConnectionService(Landroid/content/ComponentName;Lcom/android/internal/telecom/IConnectionService;)V
 Landroid/telecom/RemoteConnectionManager;->conferenceRemoteConnections(Landroid/telecom/RemoteConnection;Landroid/telecom/RemoteConnection;)V
 Landroid/telecom/RemoteConnectionManager;->createRemoteConnection(Landroid/telecom/PhoneAccountHandle;Landroid/telecom/ConnectionRequest;Z)Landroid/telecom/RemoteConnection;
 Landroid/telecom/RemoteConnectionManager;->mOurConnectionServiceImpl:Landroid/telecom/ConnectionService;
 Landroid/telecom/RemoteConnectionManager;->mRemoteConnectionServices:Ljava/util/Map;
-Landroid/telecom/RemoteConnectionService;
 Landroid/telecom/RemoteConnectionService;-><init>(Lcom/android/internal/telecom/IConnectionService;Landroid/telecom/ConnectionService;)V
 Landroid/telecom/RemoteConnectionService;->createRemoteConnection(Landroid/telecom/PhoneAccountHandle;Landroid/telecom/ConnectionRequest;Z)Landroid/telecom/RemoteConnection;
 Landroid/telecom/RemoteConnectionService;->findConferenceForAction(Ljava/lang/String;Ljava/lang/String;)Landroid/telecom/RemoteConference;
@@ -71422,9 +66609,7 @@
 Landroid/telecom/RemoteConnectionService;->mServantDelegate:Lcom/android/internal/telecom/IConnectionServiceAdapter;
 Landroid/telecom/RemoteConnectionService;->NULL_CONFERENCE:Landroid/telecom/RemoteConference;
 Landroid/telecom/RemoteConnectionService;->NULL_CONNECTION:Landroid/telecom/RemoteConnection;
-Landroid/telecom/Response;
 Landroid/telecom/Response;->onError(Ljava/lang/Object;ILjava/lang/String;)V
-Landroid/telecom/Response;->onResult(Ljava/lang/Object;[[Ljava/lang/Object;)V
 Landroid/telecom/StatusHints;-><init>(Landroid/os/Parcel;)V
 Landroid/telecom/StatusHints;->mExtras:Landroid/os/Bundle;
 Landroid/telecom/StatusHints;->mIcon:Landroid/graphics/drawable/Icon;
@@ -71464,7 +66649,6 @@
 Landroid/telecom/TelecomManager;->TTY_MODE_FULL:I
 Landroid/telecom/TelecomManager;->TTY_MODE_HCO:I
 Landroid/telecom/TelecomManager;->TTY_MODE_VCO:I
-Landroid/telecom/TelecomProtoEnums;
 Landroid/telecom/TelecomProtoEnums;-><init>()V
 Landroid/telecom/TelecomProtoEnums;->ABORTED:I
 Landroid/telecom/TelecomProtoEnums;->ACTIVE:I
@@ -71490,12 +66674,10 @@
 Landroid/telecom/TelecomProtoEnums;->RINGING:I
 Landroid/telecom/TelecomProtoEnums;->SELECT_PHONE_ACCOUNT:I
 Landroid/telecom/TelecomProtoEnums;->UNKNOWN:I
-Landroid/telecom/TimedEvent;
 Landroid/telecom/TimedEvent;-><init>()V
 Landroid/telecom/TimedEvent;->averageTimings(Ljava/util/Collection;)Ljava/util/Map;
 Landroid/telecom/TimedEvent;->getKey()Ljava/lang/Object;
 Landroid/telecom/TimedEvent;->getTime()J
-Landroid/telecom/VideoCallbackServant;
 Landroid/telecom/VideoCallbackServant;-><init>(Lcom/android/internal/telecom/IVideoCallback;)V
 Landroid/telecom/VideoCallbackServant;->getStub()Lcom/android/internal/telecom/IVideoCallback;
 Landroid/telecom/VideoCallbackServant;->mDelegate:Lcom/android/internal/telecom/IVideoCallback;
@@ -71508,8 +66690,6 @@
 Landroid/telecom/VideoCallbackServant;->MSG_RECEIVE_SESSION_MODIFY_REQUEST:I
 Landroid/telecom/VideoCallbackServant;->MSG_RECEIVE_SESSION_MODIFY_RESPONSE:I
 Landroid/telecom/VideoCallbackServant;->mStub:Lcom/android/internal/telecom/IVideoCallback;
-Landroid/telecom/VideoCallImpl$MessageHandler;
-Landroid/telecom/VideoCallImpl$MessageHandler;-><init>(Landroid/os/Looper;)V
 Landroid/telecom/VideoCallImpl$MessageHandler;->MSG_CHANGE_CALL_DATA_USAGE:I
 Landroid/telecom/VideoCallImpl$MessageHandler;->MSG_CHANGE_CAMERA_CAPABILITIES:I
 Landroid/telecom/VideoCallImpl$MessageHandler;->MSG_CHANGE_PEER_DIMENSIONS:I
@@ -71517,8 +66697,6 @@
 Landroid/telecom/VideoCallImpl$MessageHandler;->MSG_HANDLE_CALL_SESSION_EVENT:I
 Landroid/telecom/VideoCallImpl$MessageHandler;->MSG_RECEIVE_SESSION_MODIFY_REQUEST:I
 Landroid/telecom/VideoCallImpl$MessageHandler;->MSG_RECEIVE_SESSION_MODIFY_RESPONSE:I
-Landroid/telecom/VideoCallImpl$VideoCallListenerBinder;
-Landroid/telecom/VideoCallImpl$VideoCallListenerBinder;-><init>()V
 Landroid/telecom/VideoCallImpl$VideoCallListenerBinder;->changeCallDataUsage(J)V
 Landroid/telecom/VideoCallImpl$VideoCallListenerBinder;->changeCameraCapabilities(Landroid/telecom/VideoProfile$CameraCapabilities;)V
 Landroid/telecom/VideoCallImpl$VideoCallListenerBinder;->changePeerDimensions(II)V
@@ -71526,7 +66704,6 @@
 Landroid/telecom/VideoCallImpl$VideoCallListenerBinder;->handleCallSessionEvent(I)V
 Landroid/telecom/VideoCallImpl$VideoCallListenerBinder;->receiveSessionModifyRequest(Landroid/telecom/VideoProfile;)V
 Landroid/telecom/VideoCallImpl$VideoCallListenerBinder;->receiveSessionModifyResponse(ILandroid/telecom/VideoProfile;Landroid/telecom/VideoProfile;)V
-Landroid/telecom/VideoCallImpl;
 Landroid/telecom/VideoCallImpl;-><init>(Lcom/android/internal/telecom/IVideoProvider;Ljava/lang/String;I)V
 Landroid/telecom/VideoCallImpl;->mBinder:Landroid/telecom/VideoCallImpl$VideoCallListenerBinder;
 Landroid/telecom/VideoCallImpl;->mCallback:Landroid/telecom/InCallService$VideoCall$Callback;
@@ -71545,13 +66722,10 @@
 Landroid/telecom/VideoProfile$CameraCapabilities;->mMaxZoom:F
 Landroid/telecom/VideoProfile$CameraCapabilities;->mWidth:I
 Landroid/telecom/VideoProfile$CameraCapabilities;->mZoomSupported:Z
-Landroid/telecom/VideoProfile$VideoQuality;
-Landroid/telecom/VideoProfile$VideoState;
 Landroid/telecom/VideoProfile;->hasState(II)Z
 Landroid/telecom/VideoProfile;->mQuality:I
 Landroid/telecom/VideoProfile;->mVideoState:I
 Landroid/telecom/VideoProfile;->QUALITY_UNKNOWN:I
-Landroid/telecom/Voicemail$Builder;
 Landroid/telecom/Voicemail$Builder;-><init>()V
 Landroid/telecom/Voicemail$Builder;->build()Landroid/telecom/Voicemail;
 Landroid/telecom/Voicemail$Builder;->mBuilderDuration:Ljava/lang/Long;
@@ -71576,7 +66750,6 @@
 Landroid/telecom/Voicemail$Builder;->setTimestamp(J)Landroid/telecom/Voicemail$Builder;
 Landroid/telecom/Voicemail$Builder;->setTranscription(Ljava/lang/String;)Landroid/telecom/Voicemail$Builder;
 Landroid/telecom/Voicemail$Builder;->setUri(Landroid/net/Uri;)Landroid/telecom/Voicemail$Builder;
-Landroid/telecom/Voicemail;
 Landroid/telecom/Voicemail;-><init>(Landroid/os/Parcel;)V
 Landroid/telecom/Voicemail;-><init>(Ljava/lang/Long;Ljava/lang/String;Landroid/telecom/PhoneAccountHandle;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;)V
 Landroid/telecom/Voicemail;->createForInsertion(JLjava/lang/String;)Landroid/telecom/Voicemail$Builder;
@@ -71605,7 +66778,6 @@
 Landroid/telecom/Voicemail;->mTranscription:Ljava/lang/String;
 Landroid/telecom/Voicemail;->mUri:Landroid/net/Uri;
 Landroid/telephony/AccessNetworkConstants$AccessNetworkType;-><init>()V
-Landroid/telephony/AccessNetworkConstants$CdmaBands;
 Landroid/telephony/AccessNetworkConstants$CdmaBands;-><init>()V
 Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_0:I
 Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_10:I
@@ -71631,13 +66803,11 @@
 Landroid/telephony/AccessNetworkConstants$CdmaBands;->BAND_9:I
 Landroid/telephony/AccessNetworkConstants$EutranBand;-><init>()V
 Landroid/telephony/AccessNetworkConstants$GeranBand;-><init>()V
-Landroid/telephony/AccessNetworkConstants$TransportType;
 Landroid/telephony/AccessNetworkConstants$TransportType;-><init>()V
 Landroid/telephony/AccessNetworkConstants$TransportType;->WLAN:I
 Landroid/telephony/AccessNetworkConstants$TransportType;->WWAN:I
 Landroid/telephony/AccessNetworkConstants$UtranBand;-><init>()V
 Landroid/telephony/AccessNetworkConstants;-><init>()V
-Landroid/telephony/AccessNetworkUtils;
 Landroid/telephony/AccessNetworkUtils;-><init>()V
 Landroid/telephony/AccessNetworkUtils;->getDuplexModeForEutranBand(I)I
 Landroid/telephony/AccessNetworkUtils;->getOperatingBandForEarfcn(I)I
@@ -71750,16 +66920,12 @@
 Landroid/telephony/CarrierConfigManager;->KEY_WIFI_CALLS_CAN_BE_HD_AUDIO:Ljava/lang/String;
 Landroid/telephony/CarrierConfigManager;->sDefaults:Landroid/os/PersistableBundle;
 Landroid/telephony/CarrierConfigManager;->TAG:Ljava/lang/String;
-Landroid/telephony/CarrierMessagingServiceManager$CarrierMessagingServiceConnection;
-Landroid/telephony/CarrierMessagingServiceManager$CarrierMessagingServiceConnection;-><init>()V
-Landroid/telephony/CarrierMessagingServiceManager;
 Landroid/telephony/CarrierMessagingServiceManager;->bindToCarrierMessagingService(Landroid/content/Context;Ljava/lang/String;)Z
 Landroid/telephony/CarrierMessagingServiceManager;->disposeConnection(Landroid/content/Context;)V
 Landroid/telephony/CarrierMessagingServiceManager;->mCarrierMessagingServiceConnection:Landroid/telephony/CarrierMessagingServiceManager$CarrierMessagingServiceConnection;
 Landroid/telephony/CarrierMessagingServiceManager;->onServiceReady(Landroid/service/carrier/ICarrierMessagingService;)V
 Landroid/telephony/cdma/CdmaCellLocation;->INVALID_LAT_LONG:I
 Landroid/telephony/cdma/CdmaCellLocation;->isEmpty()Z
-Landroid/telephony/cdma/CdmaSmsCbProgramData;
 Landroid/telephony/cdma/CdmaSmsCbProgramData;-><init>(IIIIILjava/lang/String;)V
 Landroid/telephony/cdma/CdmaSmsCbProgramData;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/cdma/CdmaSmsCbProgramData;->ALERT_OPTION_DEFAULT_ALERT:I
@@ -71790,7 +66956,6 @@
 Landroid/telephony/cdma/CdmaSmsCbProgramData;->OPERATION_ADD_CATEGORY:I
 Landroid/telephony/cdma/CdmaSmsCbProgramData;->OPERATION_CLEAR_CATEGORIES:I
 Landroid/telephony/cdma/CdmaSmsCbProgramData;->OPERATION_DELETE_CATEGORY:I
-Landroid/telephony/cdma/CdmaSmsCbProgramResults;
 Landroid/telephony/cdma/CdmaSmsCbProgramResults;-><init>(III)V
 Landroid/telephony/cdma/CdmaSmsCbProgramResults;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/cdma/CdmaSmsCbProgramResults;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -71809,7 +66974,6 @@
 Landroid/telephony/cdma/CdmaSmsCbProgramResults;->RESULT_MEMORY_LIMIT_EXCEEDED:I
 Landroid/telephony/cdma/CdmaSmsCbProgramResults;->RESULT_SUCCESS:I
 Landroid/telephony/cdma/CdmaSmsCbProgramResults;->RESULT_UNSPECIFIED_FAILURE:I
-Landroid/telephony/CellBroadcastMessage;
 Landroid/telephony/CellBroadcastMessage;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/CellBroadcastMessage;-><init>(Landroid/telephony/SmsCbMessage;JZ)V
 Landroid/telephony/CellBroadcastMessage;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -71828,7 +66992,6 @@
 Landroid/telephony/CellBroadcastMessage;->setIsRead(Z)V
 Landroid/telephony/CellBroadcastMessage;->setSubId(I)V
 Landroid/telephony/CellBroadcastMessage;->SMS_CB_MESSAGE_EXTRA:Ljava/lang/String;
-Landroid/telephony/CellIdentity$Type;
 Landroid/telephony/CellIdentity;-><init>(Ljava/lang/String;ILandroid/os/Parcel;)V
 Landroid/telephony/CellIdentity;-><init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/telephony/CellIdentity;->getChannelNumber()I
@@ -71913,7 +67076,6 @@
 Landroid/telephony/CellIdentityWcdma;->mLac:I
 Landroid/telephony/CellIdentityWcdma;->mPsc:I
 Landroid/telephony/CellIdentityWcdma;->TAG:Ljava/lang/String;
-Landroid/telephony/CellInfo$CellConnectionStatus;
 Landroid/telephony/CellInfo;-><init>()V
 Landroid/telephony/CellInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/CellInfo;-><init>(Landroid/telephony/CellInfo;)V
@@ -72028,7 +67190,6 @@
 Landroid/telephony/CellSignalStrengthWcdma;->WCDMA_SIGNAL_STRENGTH_GOOD:I
 Landroid/telephony/CellSignalStrengthWcdma;->WCDMA_SIGNAL_STRENGTH_GREAT:I
 Landroid/telephony/CellSignalStrengthWcdma;->WCDMA_SIGNAL_STRENGTH_MODERATE:I
-Landroid/telephony/ClientRequestStats;
 Landroid/telephony/ClientRequestStats;-><init>()V
 Landroid/telephony/ClientRequestStats;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/ClientRequestStats;-><init>(Landroid/telephony/ClientRequestStats;)V
@@ -72053,8 +67214,6 @@
 Landroid/telephony/ClientRequestStats;->setPendingRequestsCount(J)V
 Landroid/telephony/ClientRequestStats;->setPendingRequestsWakelockTime(J)V
 Landroid/telephony/ClientRequestStats;->updateRequestHistograms(II)V
-Landroid/telephony/data/ApnSetting$ApnType;
-Landroid/telephony/data/ApnSetting$AuthType;
 Landroid/telephony/data/ApnSetting$Builder;->mApnName:Ljava/lang/String;
 Landroid/telephony/data/ApnSetting$Builder;->mApnTypeBitmask:I
 Landroid/telephony/data/ApnSetting$Builder;->mAuthType:I
@@ -72088,8 +67247,6 @@
 Landroid/telephony/data/ApnSetting$Builder;->setMvnoMatchData(Ljava/lang/String;)Landroid/telephony/data/ApnSetting$Builder;
 Landroid/telephony/data/ApnSetting$Builder;->setProfileId(I)Landroid/telephony/data/ApnSetting$Builder;
 Landroid/telephony/data/ApnSetting$Builder;->setWaitTime(I)Landroid/telephony/data/ApnSetting$Builder;
-Landroid/telephony/data/ApnSetting$MvnoType;
-Landroid/telephony/data/ApnSetting$ProtocolType;
 Landroid/telephony/data/ApnSetting;-><init>(Landroid/telephony/data/ApnSetting$Builder;)V
 Landroid/telephony/data/ApnSetting;->APN_TYPE_INT_MAP:Ljava/util/Map;
 Landroid/telephony/data/ApnSetting;->APN_TYPE_STRING_MAP:Ljava/util/Map;
@@ -72160,7 +67317,6 @@
 Landroid/telephony/data/ApnSetting;->xorEquals(Ljava/lang/Object;Ljava/lang/Object;)Z
 Landroid/telephony/data/ApnSetting;->xorEquals(Ljava/lang/String;Ljava/lang/String;)Z
 Landroid/telephony/data/ApnSetting;->xorEqualsPort(II)Z
-Landroid/telephony/data/DataCallResponse;
 Landroid/telephony/data/DataCallResponse;-><init>(IIIILjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Ljava/util/List;Ljava/util/List;I)V
 Landroid/telephony/data/DataCallResponse;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/data/DataCallResponse;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -72186,7 +67342,6 @@
 Landroid/telephony/data/DataCallResponse;->mStatus:I
 Landroid/telephony/data/DataCallResponse;->mSuggestedRetryTime:I
 Landroid/telephony/data/DataCallResponse;->mType:Ljava/lang/String;
-Landroid/telephony/data/DataProfile;
 Landroid/telephony/data/DataProfile;-><init>(ILjava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;IIIIZILjava/lang/String;IILjava/lang/String;Ljava/lang/String;Z)V
 Landroid/telephony/data/DataProfile;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/data/DataProfile;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -72229,14 +67384,9 @@
 Landroid/telephony/data/DataProfile;->TYPE_3GPP2:I
 Landroid/telephony/data/DataProfile;->TYPE_3GPP:I
 Landroid/telephony/data/DataProfile;->TYPE_COMMON:I
-Landroid/telephony/data/DataService$DataCallListChangedIndication;
 Landroid/telephony/data/DataService$DataCallListChangedIndication;-><init>(Ljava/util/List;Landroid/telephony/data/IDataServiceCallback;)V
 Landroid/telephony/data/DataService$DataCallListChangedIndication;->callback:Landroid/telephony/data/IDataServiceCallback;
 Landroid/telephony/data/DataService$DataCallListChangedIndication;->dataCallList:Ljava/util/List;
-Landroid/telephony/data/DataService$DataServiceHandler;
-Landroid/telephony/data/DataService$DataServiceHandler;-><init>(Landroid/os/Looper;)V
-Landroid/telephony/data/DataService$DataServiceProvider;
-Landroid/telephony/data/DataService$DataServiceProvider;-><init>(I)V
 Landroid/telephony/data/DataService$DataServiceProvider;->deactivateDataCall(IILandroid/telephony/data/DataServiceCallback;)V
 Landroid/telephony/data/DataService$DataServiceProvider;->getDataCallList(Landroid/telephony/data/DataServiceCallback;)V
 Landroid/telephony/data/DataService$DataServiceProvider;->getSlotId()I
@@ -72249,14 +67399,10 @@
 Landroid/telephony/data/DataService$DataServiceProvider;->setInitialAttachApn(Landroid/telephony/data/DataProfile;ZLandroid/telephony/data/DataServiceCallback;)V
 Landroid/telephony/data/DataService$DataServiceProvider;->setupDataCall(ILandroid/telephony/data/DataProfile;ZZILandroid/net/LinkProperties;Landroid/telephony/data/DataServiceCallback;)V
 Landroid/telephony/data/DataService$DataServiceProvider;->unregisterForDataCallListChanged(Landroid/telephony/data/IDataServiceCallback;)V
-Landroid/telephony/data/DataService$DeactivateDataCallRequest;
 Landroid/telephony/data/DataService$DeactivateDataCallRequest;-><init>(IILandroid/telephony/data/IDataServiceCallback;)V
 Landroid/telephony/data/DataService$DeactivateDataCallRequest;->callback:Landroid/telephony/data/IDataServiceCallback;
 Landroid/telephony/data/DataService$DeactivateDataCallRequest;->cid:I
 Landroid/telephony/data/DataService$DeactivateDataCallRequest;->reason:I
-Landroid/telephony/data/DataService$DeactivateDataReason;
-Landroid/telephony/data/DataService$IDataServiceWrapper;
-Landroid/telephony/data/DataService$IDataServiceWrapper;-><init>()V
 Landroid/telephony/data/DataService$IDataServiceWrapper;->createDataServiceProvider(I)V
 Landroid/telephony/data/DataService$IDataServiceWrapper;->deactivateDataCall(IIILandroid/telephony/data/IDataServiceCallback;)V
 Landroid/telephony/data/DataService$IDataServiceWrapper;->getDataCallList(ILandroid/telephony/data/IDataServiceCallback;)V
@@ -72266,17 +67412,14 @@
 Landroid/telephony/data/DataService$IDataServiceWrapper;->setInitialAttachApn(ILandroid/telephony/data/DataProfile;ZLandroid/telephony/data/IDataServiceCallback;)V
 Landroid/telephony/data/DataService$IDataServiceWrapper;->setupDataCall(IILandroid/telephony/data/DataProfile;ZZILandroid/net/LinkProperties;Landroid/telephony/data/IDataServiceCallback;)V
 Landroid/telephony/data/DataService$IDataServiceWrapper;->unregisterForDataCallListChanged(ILandroid/telephony/data/IDataServiceCallback;)V
-Landroid/telephony/data/DataService$SetDataProfileRequest;
 Landroid/telephony/data/DataService$SetDataProfileRequest;-><init>(Ljava/util/List;ZLandroid/telephony/data/IDataServiceCallback;)V
 Landroid/telephony/data/DataService$SetDataProfileRequest;->callback:Landroid/telephony/data/IDataServiceCallback;
 Landroid/telephony/data/DataService$SetDataProfileRequest;->dps:Ljava/util/List;
 Landroid/telephony/data/DataService$SetDataProfileRequest;->isRoaming:Z
-Landroid/telephony/data/DataService$SetInitialAttachApnRequest;
 Landroid/telephony/data/DataService$SetInitialAttachApnRequest;-><init>(Landroid/telephony/data/DataProfile;ZLandroid/telephony/data/IDataServiceCallback;)V
 Landroid/telephony/data/DataService$SetInitialAttachApnRequest;->callback:Landroid/telephony/data/IDataServiceCallback;
 Landroid/telephony/data/DataService$SetInitialAttachApnRequest;->dataProfile:Landroid/telephony/data/DataProfile;
 Landroid/telephony/data/DataService$SetInitialAttachApnRequest;->isRoaming:Z
-Landroid/telephony/data/DataService$SetupDataCallRequest;
 Landroid/telephony/data/DataService$SetupDataCallRequest;-><init>(ILandroid/telephony/data/DataProfile;ZZILandroid/net/LinkProperties;Landroid/telephony/data/IDataServiceCallback;)V
 Landroid/telephony/data/DataService$SetupDataCallRequest;->accessNetworkType:I
 Landroid/telephony/data/DataService$SetupDataCallRequest;->allowRoaming:Z
@@ -72285,8 +67428,6 @@
 Landroid/telephony/data/DataService$SetupDataCallRequest;->isRoaming:Z
 Landroid/telephony/data/DataService$SetupDataCallRequest;->linkProperties:Landroid/net/LinkProperties;
 Landroid/telephony/data/DataService$SetupDataCallRequest;->reason:I
-Landroid/telephony/data/DataService$SetupDataReason;
-Landroid/telephony/data/DataService;
 Landroid/telephony/data/DataService;-><init>()V
 Landroid/telephony/data/DataService;->createDataServiceProvider(I)Landroid/telephony/data/DataService$DataServiceProvider;
 Landroid/telephony/data/DataService;->DATA_SERVICE_CREATE_DATA_SERVICE_PROVIDER:I
@@ -72312,8 +67453,6 @@
 Landroid/telephony/data/DataService;->REQUEST_REASON_NORMAL:I
 Landroid/telephony/data/DataService;->REQUEST_REASON_SHUTDOWN:I
 Landroid/telephony/data/DataService;->TAG:Ljava/lang/String;
-Landroid/telephony/data/DataServiceCallback$ResultCode;
-Landroid/telephony/data/DataServiceCallback;
 Landroid/telephony/data/DataServiceCallback;-><init>(Landroid/telephony/data/IDataServiceCallback;)V
 Landroid/telephony/data/DataServiceCallback;->mCallback:Ljava/lang/ref/WeakReference;
 Landroid/telephony/data/DataServiceCallback;->onDataCallListChanged(Ljava/util/List;)V
@@ -72328,7 +67467,6 @@
 Landroid/telephony/data/DataServiceCallback;->RESULT_ERROR_UNSUPPORTED:I
 Landroid/telephony/data/DataServiceCallback;->RESULT_SUCCESS:I
 Landroid/telephony/data/DataServiceCallback;->TAG:Ljava/lang/String;
-Landroid/telephony/data/IDataService$Stub$Proxy;
 Landroid/telephony/data/IDataService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/telephony/data/IDataService$Stub$Proxy;->createDataServiceProvider(I)V
 Landroid/telephony/data/IDataService$Stub$Proxy;->deactivateDataCall(IIILandroid/telephony/data/IDataServiceCallback;)V
@@ -72341,7 +67479,6 @@
 Landroid/telephony/data/IDataService$Stub$Proxy;->setInitialAttachApn(ILandroid/telephony/data/DataProfile;ZLandroid/telephony/data/IDataServiceCallback;)V
 Landroid/telephony/data/IDataService$Stub$Proxy;->setupDataCall(IILandroid/telephony/data/DataProfile;ZZILandroid/net/LinkProperties;Landroid/telephony/data/IDataServiceCallback;)V
 Landroid/telephony/data/IDataService$Stub$Proxy;->unregisterForDataCallListChanged(ILandroid/telephony/data/IDataServiceCallback;)V
-Landroid/telephony/data/IDataService$Stub;
 Landroid/telephony/data/IDataService$Stub;-><init>()V
 Landroid/telephony/data/IDataService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/data/IDataService;
 Landroid/telephony/data/IDataService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -72354,7 +67491,6 @@
 Landroid/telephony/data/IDataService$Stub;->TRANSACTION_setInitialAttachApn:I
 Landroid/telephony/data/IDataService$Stub;->TRANSACTION_setupDataCall:I
 Landroid/telephony/data/IDataService$Stub;->TRANSACTION_unregisterForDataCallListChanged:I
-Landroid/telephony/data/IDataService;
 Landroid/telephony/data/IDataService;->createDataServiceProvider(I)V
 Landroid/telephony/data/IDataService;->deactivateDataCall(IIILandroid/telephony/data/IDataServiceCallback;)V
 Landroid/telephony/data/IDataService;->getDataCallList(ILandroid/telephony/data/IDataServiceCallback;)V
@@ -72364,7 +67500,6 @@
 Landroid/telephony/data/IDataService;->setInitialAttachApn(ILandroid/telephony/data/DataProfile;ZLandroid/telephony/data/IDataServiceCallback;)V
 Landroid/telephony/data/IDataService;->setupDataCall(IILandroid/telephony/data/DataProfile;ZZILandroid/net/LinkProperties;Landroid/telephony/data/IDataServiceCallback;)V
 Landroid/telephony/data/IDataService;->unregisterForDataCallListChanged(ILandroid/telephony/data/IDataServiceCallback;)V
-Landroid/telephony/data/IDataServiceCallback$Stub$Proxy;
 Landroid/telephony/data/IDataServiceCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/telephony/data/IDataServiceCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/telephony/data/IDataServiceCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -72374,7 +67509,6 @@
 Landroid/telephony/data/IDataServiceCallback$Stub$Proxy;->onSetDataProfileComplete(I)V
 Landroid/telephony/data/IDataServiceCallback$Stub$Proxy;->onSetInitialAttachApnComplete(I)V
 Landroid/telephony/data/IDataServiceCallback$Stub$Proxy;->onSetupDataCallComplete(ILandroid/telephony/data/DataCallResponse;)V
-Landroid/telephony/data/IDataServiceCallback$Stub;
 Landroid/telephony/data/IDataServiceCallback$Stub;-><init>()V
 Landroid/telephony/data/IDataServiceCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/data/IDataServiceCallback;
 Landroid/telephony/data/IDataServiceCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -72384,14 +67518,12 @@
 Landroid/telephony/data/IDataServiceCallback$Stub;->TRANSACTION_onSetDataProfileComplete:I
 Landroid/telephony/data/IDataServiceCallback$Stub;->TRANSACTION_onSetInitialAttachApnComplete:I
 Landroid/telephony/data/IDataServiceCallback$Stub;->TRANSACTION_onSetupDataCallComplete:I
-Landroid/telephony/data/IDataServiceCallback;
 Landroid/telephony/data/IDataServiceCallback;->onDataCallListChanged(Ljava/util/List;)V
 Landroid/telephony/data/IDataServiceCallback;->onDeactivateDataCallComplete(I)V
 Landroid/telephony/data/IDataServiceCallback;->onGetDataCallListComplete(ILjava/util/List;)V
 Landroid/telephony/data/IDataServiceCallback;->onSetDataProfileComplete(I)V
 Landroid/telephony/data/IDataServiceCallback;->onSetInitialAttachApnComplete(I)V
 Landroid/telephony/data/IDataServiceCallback;->onSetupDataCallComplete(ILandroid/telephony/data/DataCallResponse;)V
-Landroid/telephony/DataConnectionRealTimeInfo;
 Landroid/telephony/DataConnectionRealTimeInfo;-><init>()V
 Landroid/telephony/DataConnectionRealTimeInfo;-><init>(JI)V
 Landroid/telephony/DataConnectionRealTimeInfo;-><init>(Landroid/os/Parcel;)V
@@ -72404,12 +67536,10 @@
 Landroid/telephony/DataConnectionRealTimeInfo;->getTime()J
 Landroid/telephony/DataConnectionRealTimeInfo;->mDcPowerState:I
 Landroid/telephony/DataConnectionRealTimeInfo;->mTime:J
-Landroid/telephony/DataSpecificRegistrationStates;
 Landroid/telephony/DataSpecificRegistrationStates;-><init>(I)V
 Landroid/telephony/DataSpecificRegistrationStates;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/DataSpecificRegistrationStates;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/telephony/DataSpecificRegistrationStates;->maxDataCalls:I
-Landroid/telephony/DisconnectCause;
 Landroid/telephony/DisconnectCause;-><init>()V
 Landroid/telephony/DisconnectCause;->ANSWERED_ELSEWHERE:I
 Landroid/telephony/DisconnectCause;->BUSY:I
@@ -72538,7 +67668,6 @@
 Landroid/telephony/gsm/SmsManager;->mSmsMgrProxy:Landroid/telephony/SmsManager;
 Landroid/telephony/gsm/SmsManager;->sInstance:Landroid/telephony/gsm/SmsManager;
 Landroid/telephony/gsm/SmsManager;->updateMessageOnSim(II[B)Z
-Landroid/telephony/gsm/SmsMessage$MessageClass;-><init>()V
 Landroid/telephony/gsm/SmsMessage$SubmitPdu;-><init>(Lcom/android/internal/telephony/SmsMessageBase$SubmitPduBase;)V
 Landroid/telephony/gsm/SmsMessage;-><init>(Lcom/android/internal/telephony/SmsMessageBase;)V
 Landroid/telephony/gsm/SmsMessage;->getIndexOnIcc()I
@@ -72552,8 +67681,6 @@
 Landroid/telephony/IccOpenLogicalChannelResponse;->mChannel:I
 Landroid/telephony/IccOpenLogicalChannelResponse;->mSelectResponse:[B
 Landroid/telephony/IccOpenLogicalChannelResponse;->mStatus:I
-Landroid/telephony/ims/compat/feature/ImsFeature$ImsState;
-Landroid/telephony/ims/compat/feature/ImsFeature;
 Landroid/telephony/ims/compat/feature/ImsFeature;-><init>()V
 Landroid/telephony/ims/compat/feature/ImsFeature;->ACTION_IMS_SERVICE_DOWN:Ljava/lang/String;
 Landroid/telephony/ims/compat/feature/ImsFeature;->ACTION_IMS_SERVICE_UP:Ljava/lang/String;
@@ -72580,7 +67707,6 @@
 Landroid/telephony/ims/compat/feature/ImsFeature;->STATE_INITIALIZING:I
 Landroid/telephony/ims/compat/feature/ImsFeature;->STATE_NOT_AVAILABLE:I
 Landroid/telephony/ims/compat/feature/ImsFeature;->STATE_READY:I
-Landroid/telephony/ims/compat/feature/MMTelFeature;
 Landroid/telephony/ims/compat/feature/MMTelFeature;->addRegistrationListener(Lcom/android/ims/internal/IImsRegistrationListener;)V
 Landroid/telephony/ims/compat/feature/MMTelFeature;->createCallProfile(III)Landroid/telephony/ims/ImsCallProfile;
 Landroid/telephony/ims/compat/feature/MMTelFeature;->createCallSession(ILandroid/telephony/ims/ImsCallProfile;Lcom/android/ims/internal/IImsCallSessionListener;)Lcom/android/ims/internal/IImsCallSession;
@@ -72602,13 +67728,11 @@
 Landroid/telephony/ims/compat/feature/MMTelFeature;->startSession(Landroid/app/PendingIntent;Lcom/android/ims/internal/IImsRegistrationListener;)I
 Landroid/telephony/ims/compat/feature/MMTelFeature;->turnOffIms()V
 Landroid/telephony/ims/compat/feature/MMTelFeature;->turnOnIms()V
-Landroid/telephony/ims/compat/feature/RcsFeature;
 Landroid/telephony/ims/compat/feature/RcsFeature;-><init>()V
 Landroid/telephony/ims/compat/feature/RcsFeature;->getBinder()Lcom/android/ims/internal/IImsRcsFeature;
 Landroid/telephony/ims/compat/feature/RcsFeature;->mImsRcsBinder:Lcom/android/ims/internal/IImsRcsFeature;
 Landroid/telephony/ims/compat/feature/RcsFeature;->onFeatureReady()V
 Landroid/telephony/ims/compat/feature/RcsFeature;->onFeatureRemoved()V
-Landroid/telephony/ims/compat/ImsService;
 Landroid/telephony/ims/compat/ImsService;->addImsFeature(IILandroid/telephony/ims/compat/feature/ImsFeature;)V
 Landroid/telephony/ims/compat/ImsService;->createEmergencyMMTelFeatureInternal(ILcom/android/ims/internal/IImsFeatureStatusCallback;)Lcom/android/ims/internal/IImsMMTelFeature;
 Landroid/telephony/ims/compat/ImsService;->createMMTelFeatureInternal(ILcom/android/ims/internal/IImsFeatureStatusCallback;)Lcom/android/ims/internal/IImsMMTelFeature;
@@ -72622,8 +67746,6 @@
 Landroid/telephony/ims/compat/ImsService;->removeImsFeature(IILcom/android/ims/internal/IImsFeatureStatusCallback;)V
 Landroid/telephony/ims/compat/ImsService;->SERVICE_INTERFACE:Ljava/lang/String;
 Landroid/telephony/ims/compat/ImsService;->setupFeature(Landroid/telephony/ims/compat/feature/ImsFeature;IILcom/android/ims/internal/IImsFeatureStatusCallback;)V
-Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;
-Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;-><init>(Landroid/telephony/ims/aidl/IImsCallSessionListener;)V
 Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionConferenceExtended(Lcom/android/ims/internal/IImsCallSession;Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
 Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionConferenceExtendFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
 Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionConferenceExtendReceived(Lcom/android/ims/internal/IImsCallSession;Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
@@ -72659,7 +67781,6 @@
 Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionUpdateReceived(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
 Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->callSessionUssdMessageReceived(Lcom/android/ims/internal/IImsCallSession;ILjava/lang/String;)V
 Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase$ImsCallSessionListenerConverter;->mNewListener:Landroid/telephony/ims/aidl/IImsCallSessionListener;
-Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;
 Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->accept(ILandroid/telephony/ims/ImsStreamMediaProfile;)V
 Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->close()V
 Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->deflect(Ljava/lang/String;)V
@@ -72693,7 +67814,6 @@
 Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->stopDtmf()V
 Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->terminate(I)V
 Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;->update(ILandroid/telephony/ims/ImsStreamMediaProfile;)V
-Landroid/telephony/ims/compat/stub/ImsConfigImplBase$ImsConfigStub;
 Landroid/telephony/ims/compat/stub/ImsConfigImplBase$ImsConfigStub;-><init>(Landroid/telephony/ims/compat/stub/ImsConfigImplBase;Landroid/content/Context;)V
 Landroid/telephony/ims/compat/stub/ImsConfigImplBase$ImsConfigStub;->getFeatureValue(IILcom/android/ims/ImsConfigListener;)V
 Landroid/telephony/ims/compat/stub/ImsConfigImplBase$ImsConfigStub;->getImsConfigImpl()Landroid/telephony/ims/compat/stub/ImsConfigImplBase;
@@ -72713,7 +67833,6 @@
 Landroid/telephony/ims/compat/stub/ImsConfigImplBase$ImsConfigStub;->setVideoQuality(ILcom/android/ims/ImsConfigListener;)V
 Landroid/telephony/ims/compat/stub/ImsConfigImplBase$ImsConfigStub;->updateCachedValue(IIZ)V
 Landroid/telephony/ims/compat/stub/ImsConfigImplBase$ImsConfigStub;->updateCachedValue(ILjava/lang/String;Z)V
-Landroid/telephony/ims/compat/stub/ImsConfigImplBase;
 Landroid/telephony/ims/compat/stub/ImsConfigImplBase;->getFeatureValue(IILcom/android/ims/ImsConfigListener;)V
 Landroid/telephony/ims/compat/stub/ImsConfigImplBase;->getProvisionedStringValue(I)Ljava/lang/String;
 Landroid/telephony/ims/compat/stub/ImsConfigImplBase;->getProvisionedValue(I)I
@@ -72727,7 +67846,6 @@
 Landroid/telephony/ims/compat/stub/ImsConfigImplBase;->setProvisionedValue(II)I
 Landroid/telephony/ims/compat/stub/ImsConfigImplBase;->setVideoQuality(ILcom/android/ims/ImsConfigListener;)V
 Landroid/telephony/ims/compat/stub/ImsConfigImplBase;->TAG:Ljava/lang/String;
-Landroid/telephony/ims/compat/stub/ImsUtListenerImplBase;
 Landroid/telephony/ims/compat/stub/ImsUtListenerImplBase;->onSupplementaryServiceIndication(Landroid/telephony/ims/ImsSsData;)V
 Landroid/telephony/ims/compat/stub/ImsUtListenerImplBase;->utConfigurationCallBarringQueried(Lcom/android/ims/internal/IImsUt;I[Landroid/telephony/ims/ImsSsInfo;)V
 Landroid/telephony/ims/compat/stub/ImsUtListenerImplBase;->utConfigurationCallForwardQueried(Lcom/android/ims/internal/IImsUt;I[Landroid/telephony/ims/ImsCallForwardInfo;)V
@@ -72743,7 +67861,6 @@
 Landroid/telephony/ims/feature/CapabilityChangeRequest;->addAllCapabilities(Ljava/util/Set;II)V
 Landroid/telephony/ims/feature/CapabilityChangeRequest;->mCapabilitiesToDisable:Ljava/util/Set;
 Landroid/telephony/ims/feature/CapabilityChangeRequest;->mCapabilitiesToEnable:Ljava/util/Set;
-Landroid/telephony/ims/feature/ImsFeature$Capabilities;
 Landroid/telephony/ims/feature/ImsFeature$Capabilities;-><init>()V
 Landroid/telephony/ims/feature/ImsFeature$Capabilities;-><init>(I)V
 Landroid/telephony/ims/feature/ImsFeature$Capabilities;->addCapabilities(I)V
@@ -72752,7 +67869,6 @@
 Landroid/telephony/ims/feature/ImsFeature$Capabilities;->isCapable(I)Z
 Landroid/telephony/ims/feature/ImsFeature$Capabilities;->mCapabilities:I
 Landroid/telephony/ims/feature/ImsFeature$Capabilities;->removeCapabilities(I)V
-Landroid/telephony/ims/feature/ImsFeature$CapabilityCallback;
 Landroid/telephony/ims/feature/ImsFeature$CapabilityCallback;-><init>()V
 Landroid/telephony/ims/feature/ImsFeature$CapabilityCallback;->onCapabilitiesStatusChanged(I)V
 Landroid/telephony/ims/feature/ImsFeature$CapabilityCallback;->onCapabilitiesStatusChanged(Landroid/telephony/ims/feature/ImsFeature$Capabilities;)V
@@ -72760,9 +67876,6 @@
 Landroid/telephony/ims/feature/ImsFeature$CapabilityCallback;->onQueryCapabilityConfiguration(IIZ)V
 Landroid/telephony/ims/feature/ImsFeature$CapabilityCallbackProxy;-><init>(Landroid/telephony/ims/aidl/IImsCapabilityCallback;)V
 Landroid/telephony/ims/feature/ImsFeature$CapabilityCallbackProxy;->mCallback:Landroid/telephony/ims/aidl/IImsCapabilityCallback;
-Landroid/telephony/ims/feature/ImsFeature$FeatureType;
-Landroid/telephony/ims/feature/ImsFeature$ImsCapabilityError;
-Landroid/telephony/ims/feature/ImsFeature$ImsState;
 Landroid/telephony/ims/feature/ImsFeature;->ACTION_IMS_SERVICE_DOWN:Ljava/lang/String;
 Landroid/telephony/ims/feature/ImsFeature;->ACTION_IMS_SERVICE_UP:Ljava/lang/String;
 Landroid/telephony/ims/feature/ImsFeature;->addCapabilityCallback(Landroid/telephony/ims/aidl/IImsCapabilityCallback;)V
@@ -72788,7 +67901,6 @@
 Landroid/telephony/ims/feature/ImsFeature;->removeImsFeatureStatusCallback(Lcom/android/ims/internal/IImsFeatureStatusCallback;)V
 Landroid/telephony/ims/feature/ImsFeature;->requestChangeEnabledCapabilities(Landroid/telephony/ims/feature/CapabilityChangeRequest;Landroid/telephony/ims/aidl/IImsCapabilityCallback;)V
 Landroid/telephony/ims/feature/ImsFeature;->sendImsServiceIntent(I)V
-Landroid/telephony/ims/feature/MmTelFeature$Listener;
 Landroid/telephony/ims/feature/MmTelFeature$Listener;-><init>()V
 Landroid/telephony/ims/feature/MmTelFeature$Listener;->onIncomingCall(Lcom/android/ims/internal/IImsCallSession;Landroid/os/Bundle;)V
 Landroid/telephony/ims/feature/MmTelFeature$Listener;->onVoiceMessageCountUpdate(I)V
@@ -72829,8 +67941,6 @@
 Landroid/telephony/ims/ImsCallProfile;->OIRToPresentation(I)I
 Landroid/telephony/ims/ImsCallProfile;->readFromParcel(Landroid/os/Parcel;)V
 Landroid/telephony/ims/ImsCallProfile;->TAG:Ljava/lang/String;
-Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;
-Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;-><init>()V
 Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionConferenceExtended(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
 Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionConferenceExtendFailed(Landroid/telephony/ims/ImsReasonInfo;)V
 Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionConferenceExtendReceived(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
@@ -72865,7 +67975,6 @@
 Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionUpdateFailed(Landroid/telephony/ims/ImsReasonInfo;)V
 Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionUpdateReceived(Landroid/telephony/ims/ImsCallProfile;)V
 Landroid/telephony/ims/ImsCallSession$IImsCallSessionListenerProxy;->callSessionUssdMessageReceived(ILjava/lang/String;)V
-Landroid/telephony/ims/ImsCallSession$Listener;
 Landroid/telephony/ims/ImsCallSession$Listener;-><init>()V
 Landroid/telephony/ims/ImsCallSession$Listener;->callSessionConferenceExtended(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
 Landroid/telephony/ims/ImsCallSession$Listener;->callSessionConferenceExtendFailed(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
@@ -72901,7 +68010,6 @@
 Landroid/telephony/ims/ImsCallSession$Listener;->callSessionUpdateFailed(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
 Landroid/telephony/ims/ImsCallSession$Listener;->callSessionUpdateReceived(Landroid/telephony/ims/ImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
 Landroid/telephony/ims/ImsCallSession$Listener;->callSessionUssdMessageReceived(Landroid/telephony/ims/ImsCallSession;ILjava/lang/String;)V
-Landroid/telephony/ims/ImsCallSession$State;
 Landroid/telephony/ims/ImsCallSession$State;-><init>()V
 Landroid/telephony/ims/ImsCallSession$State;->ESTABLISHED:I
 Landroid/telephony/ims/ImsCallSession$State;->ESTABLISHING:I
@@ -72914,7 +68022,6 @@
 Landroid/telephony/ims/ImsCallSession$State;->TERMINATED:I
 Landroid/telephony/ims/ImsCallSession$State;->TERMINATING:I
 Landroid/telephony/ims/ImsCallSession$State;->toString(I)Ljava/lang/String;
-Landroid/telephony/ims/ImsCallSession;
 Landroid/telephony/ims/ImsCallSession;-><init>(Lcom/android/ims/internal/IImsCallSession;)V
 Landroid/telephony/ims/ImsCallSession;-><init>(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallSession$Listener;)V
 Landroid/telephony/ims/ImsCallSession;->accept(ILandroid/telephony/ims/ImsStreamMediaProfile;)V
@@ -72976,7 +68083,6 @@
 Landroid/telephony/ims/ImsReasonInfo;-><init>()V
 Landroid/telephony/ims/ImsReasonInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/ims/ImsReasonInfo;->CODE_UNOBTAINABLE_NUMBER:I
-Landroid/telephony/ims/ImsService$Listener;
 Landroid/telephony/ims/ImsService$Listener;-><init>()V
 Landroid/telephony/ims/ImsService$Listener;->onUpdateSupportedImsFeatures(Landroid/telephony/ims/stub/ImsFeatureConfiguration;)V
 Landroid/telephony/ims/ImsService;->addImsFeature(IILandroid/telephony/ims/feature/ImsFeature;)V
@@ -72990,8 +68096,6 @@
 Landroid/telephony/ims/ImsService;->removeImsFeature(IILcom/android/ims/internal/IImsFeatureStatusCallback;)V
 Landroid/telephony/ims/ImsService;->SERVICE_INTERFACE:Ljava/lang/String;
 Landroid/telephony/ims/ImsService;->setupFeature(Landroid/telephony/ims/feature/ImsFeature;IILcom/android/ims/internal/IImsFeatureStatusCallback;)V
-Landroid/telephony/ims/ImsSsData$ServiceClass;
-Landroid/telephony/ims/ImsSsData$ServiceType;
 Landroid/telephony/ims/ImsSsData;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/ims/ImsSsData;->getCallForwardInfo()[Landroid/telephony/ims/ImsCallForwardInfo;
 Landroid/telephony/ims/ImsSsData;->getImsSpecificSuppServiceInfo()[Landroid/telephony/ims/ImsSsInfo;
@@ -73033,8 +68137,6 @@
 Landroid/telephony/ims/ImsUtListener;-><init>(Lcom/android/ims/internal/IImsUtListener;)V
 Landroid/telephony/ims/ImsUtListener;->LOG_TAG:Ljava/lang/String;
 Landroid/telephony/ims/ImsUtListener;->mServiceInterface:Lcom/android/ims/internal/IImsUtListener;
-Landroid/telephony/ims/ImsVideoCallProvider$ImsVideoCallProviderBinder;
-Landroid/telephony/ims/ImsVideoCallProvider$ImsVideoCallProviderBinder;-><init>()V
 Landroid/telephony/ims/ImsVideoCallProvider$ImsVideoCallProviderBinder;->requestCallDataUsage()V
 Landroid/telephony/ims/ImsVideoCallProvider$ImsVideoCallProviderBinder;->requestCameraCapabilities()V
 Landroid/telephony/ims/ImsVideoCallProvider$ImsVideoCallProviderBinder;->sendSessionModifyRequest(Landroid/telecom/VideoProfile;Landroid/telecom/VideoProfile;)V
@@ -73066,13 +68168,11 @@
 Landroid/telephony/ims/stub/ImsCallSessionImplBase;->mServiceImpl:Lcom/android/ims/internal/IImsCallSession;
 Landroid/telephony/ims/stub/ImsCallSessionImplBase;->setListener(Landroid/telephony/ims/aidl/IImsCallSessionListener;)V
 Landroid/telephony/ims/stub/ImsCallSessionImplBase;->setServiceImpl(Lcom/android/ims/internal/IImsCallSession;)V
-Landroid/telephony/ims/stub/ImsConfigImplBase$Callback;
 Landroid/telephony/ims/stub/ImsConfigImplBase$Callback;-><init>()V
 Landroid/telephony/ims/stub/ImsConfigImplBase$Callback;->onConfigChanged(II)V
 Landroid/telephony/ims/stub/ImsConfigImplBase$Callback;->onConfigChanged(ILjava/lang/String;)V
 Landroid/telephony/ims/stub/ImsConfigImplBase$Callback;->onIntConfigChanged(II)V
 Landroid/telephony/ims/stub/ImsConfigImplBase$Callback;->onStringConfigChanged(ILjava/lang/String;)V
-Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;
 Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;-><init>(Landroid/telephony/ims/stub/ImsConfigImplBase;)V
 Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;->addImsConfigCallback(Landroid/telephony/ims/aidl/IImsConfigCallback;)V
 Landroid/telephony/ims/stub/ImsConfigImplBase$ImsConfigStub;->getConfigInt(I)I
@@ -73111,14 +68211,12 @@
 Landroid/telephony/ims/stub/ImsMultiEndpointImplBase;->mImsMultiEndpoint:Lcom/android/ims/internal/IImsMultiEndpoint;
 Landroid/telephony/ims/stub/ImsMultiEndpointImplBase;->mListener:Lcom/android/ims/internal/IImsExternalCallStateListener;
 Landroid/telephony/ims/stub/ImsMultiEndpointImplBase;->TAG:Ljava/lang/String;
-Landroid/telephony/ims/stub/ImsRegistrationImplBase$Callback;
 Landroid/telephony/ims/stub/ImsRegistrationImplBase$Callback;-><init>()V
 Landroid/telephony/ims/stub/ImsRegistrationImplBase$Callback;->onDeregistered(Landroid/telephony/ims/ImsReasonInfo;)V
 Landroid/telephony/ims/stub/ImsRegistrationImplBase$Callback;->onRegistered(I)V
 Landroid/telephony/ims/stub/ImsRegistrationImplBase$Callback;->onRegistering(I)V
 Landroid/telephony/ims/stub/ImsRegistrationImplBase$Callback;->onSubscriberAssociatedUriChanged([Landroid/net/Uri;)V
 Landroid/telephony/ims/stub/ImsRegistrationImplBase$Callback;->onTechnologyChangeFailed(ILandroid/telephony/ims/ImsReasonInfo;)V
-Landroid/telephony/ims/stub/ImsRegistrationImplBase$ImsRegistrationTech;
 Landroid/telephony/ims/stub/ImsRegistrationImplBase;->addRegistrationCallback(Landroid/telephony/ims/aidl/IImsRegistrationCallback;)V
 Landroid/telephony/ims/stub/ImsRegistrationImplBase;->getBinder()Landroid/telephony/ims/aidl/IImsRegistration;
 Landroid/telephony/ims/stub/ImsRegistrationImplBase;->getConnectionType()I
@@ -73137,14 +68235,10 @@
 Landroid/telephony/ims/stub/ImsRegistrationImplBase;->updateNewCallbackWithState(Landroid/telephony/ims/aidl/IImsRegistrationCallback;)V
 Landroid/telephony/ims/stub/ImsRegistrationImplBase;->updateToDisconnectedState(Landroid/telephony/ims/ImsReasonInfo;)V
 Landroid/telephony/ims/stub/ImsRegistrationImplBase;->updateToState(II)V
-Landroid/telephony/ims/stub/ImsSmsImplBase$DeliverStatusResult;
-Landroid/telephony/ims/stub/ImsSmsImplBase$SendStatusResult;
-Landroid/telephony/ims/stub/ImsSmsImplBase$StatusReportResult;
 Landroid/telephony/ims/stub/ImsSmsImplBase;->LOG_TAG:Ljava/lang/String;
 Landroid/telephony/ims/stub/ImsSmsImplBase;->mListener:Landroid/telephony/ims/aidl/IImsSmsListener;
 Landroid/telephony/ims/stub/ImsSmsImplBase;->mLock:Ljava/lang/Object;
 Landroid/telephony/ims/stub/ImsSmsImplBase;->registerSmsListener(Landroid/telephony/ims/aidl/IImsSmsListener;)V
-Landroid/telephony/ims/stub/ImsStreamMediaSessionImplBase;
 Landroid/telephony/ims/stub/ImsStreamMediaSessionImplBase;-><init>()V
 Landroid/telephony/ims/stub/ImsStreamMediaSessionImplBase;->close()V
 Landroid/telephony/ims/stub/ImsUtImplBase;->getInterface()Lcom/android/ims/internal/IImsUt;
@@ -73157,7 +68251,6 @@
 Landroid/telephony/ims/stub/ImsUtImplBase;->updateCLIR(I)I
 Landroid/telephony/ims/stub/ImsUtImplBase;->updateCOLP(Z)I
 Landroid/telephony/ims/stub/ImsUtImplBase;->updateCOLR(I)I
-Landroid/telephony/ImsiEncryptionInfo;
 Landroid/telephony/ImsiEncryptionInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/ImsiEncryptionInfo;-><init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/security/PublicKey;Ljava/util/Date;)V
 Landroid/telephony/ImsiEncryptionInfo;-><init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;[BLjava/util/Date;)V
@@ -73176,7 +68269,6 @@
 Landroid/telephony/ImsiEncryptionInfo;->mcc:Ljava/lang/String;
 Landroid/telephony/ImsiEncryptionInfo;->mnc:Ljava/lang/String;
 Landroid/telephony/ImsiEncryptionInfo;->publicKey:Ljava/security/PublicKey;
-Landroid/telephony/INetworkService$Stub$Proxy;
 Landroid/telephony/INetworkService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/telephony/INetworkService$Stub$Proxy;->createNetworkServiceProvider(I)V
 Landroid/telephony/INetworkService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -73185,7 +68277,6 @@
 Landroid/telephony/INetworkService$Stub$Proxy;->registerForNetworkRegistrationStateChanged(ILandroid/telephony/INetworkServiceCallback;)V
 Landroid/telephony/INetworkService$Stub$Proxy;->removeNetworkServiceProvider(I)V
 Landroid/telephony/INetworkService$Stub$Proxy;->unregisterForNetworkRegistrationStateChanged(ILandroid/telephony/INetworkServiceCallback;)V
-Landroid/telephony/INetworkService$Stub;
 Landroid/telephony/INetworkService$Stub;-><init>()V
 Landroid/telephony/INetworkService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/INetworkService;
 Landroid/telephony/INetworkService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -73194,28 +68285,23 @@
 Landroid/telephony/INetworkService$Stub;->TRANSACTION_registerForNetworkRegistrationStateChanged:I
 Landroid/telephony/INetworkService$Stub;->TRANSACTION_removeNetworkServiceProvider:I
 Landroid/telephony/INetworkService$Stub;->TRANSACTION_unregisterForNetworkRegistrationStateChanged:I
-Landroid/telephony/INetworkService;
 Landroid/telephony/INetworkService;->createNetworkServiceProvider(I)V
 Landroid/telephony/INetworkService;->getNetworkRegistrationState(IILandroid/telephony/INetworkServiceCallback;)V
 Landroid/telephony/INetworkService;->registerForNetworkRegistrationStateChanged(ILandroid/telephony/INetworkServiceCallback;)V
 Landroid/telephony/INetworkService;->removeNetworkServiceProvider(I)V
 Landroid/telephony/INetworkService;->unregisterForNetworkRegistrationStateChanged(ILandroid/telephony/INetworkServiceCallback;)V
-Landroid/telephony/INetworkServiceCallback$Stub$Proxy;
 Landroid/telephony/INetworkServiceCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/telephony/INetworkServiceCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/telephony/INetworkServiceCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/telephony/INetworkServiceCallback$Stub$Proxy;->onGetNetworkRegistrationStateComplete(ILandroid/telephony/NetworkRegistrationState;)V
 Landroid/telephony/INetworkServiceCallback$Stub$Proxy;->onNetworkStateChanged()V
-Landroid/telephony/INetworkServiceCallback$Stub;
 Landroid/telephony/INetworkServiceCallback$Stub;-><init>()V
 Landroid/telephony/INetworkServiceCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/INetworkServiceCallback;
 Landroid/telephony/INetworkServiceCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/telephony/INetworkServiceCallback$Stub;->TRANSACTION_onGetNetworkRegistrationStateComplete:I
 Landroid/telephony/INetworkServiceCallback$Stub;->TRANSACTION_onNetworkStateChanged:I
-Landroid/telephony/INetworkServiceCallback;
 Landroid/telephony/INetworkServiceCallback;->onGetNetworkRegistrationStateComplete(ILandroid/telephony/NetworkRegistrationState;)V
 Landroid/telephony/INetworkServiceCallback;->onNetworkStateChanged()V
-Landroid/telephony/LocationAccessPolicy;
 Landroid/telephony/LocationAccessPolicy;-><init>()V
 Landroid/telephony/LocationAccessPolicy;->canAccessCellLocation(Landroid/content/Context;Ljava/lang/String;IIZ)Z
 Landroid/telephony/LocationAccessPolicy;->checkInteractAcrossUsersFull(Landroid/content/Context;)Z
@@ -73228,7 +68314,6 @@
 Landroid/telephony/mbms/DownloadRequest$Builder;->source:Landroid/net/Uri;
 Landroid/telephony/mbms/DownloadRequest$Builder;->subscriptionId:I
 Landroid/telephony/mbms/DownloadRequest$Builder;->version:I
-Landroid/telephony/mbms/DownloadRequest$SerializationDataContainer;
 Landroid/telephony/mbms/DownloadRequest$SerializationDataContainer;-><init>()V
 Landroid/telephony/mbms/DownloadRequest$SerializationDataContainer;-><init>(Landroid/telephony/mbms/DownloadRequest;)V
 Landroid/telephony/mbms/DownloadRequest$SerializationDataContainer;->appIntent:Ljava/lang/String;
@@ -73257,73 +68342,59 @@
 Landroid/telephony/mbms/FileInfo;->uri:Landroid/net/Uri;
 Landroid/telephony/mbms/FileServiceInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/mbms/FileServiceInfo;->files:Ljava/util/List;
-Landroid/telephony/mbms/IDownloadProgressListener$Stub$Proxy;
 Landroid/telephony/mbms/IDownloadProgressListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/telephony/mbms/IDownloadProgressListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/telephony/mbms/IDownloadProgressListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/telephony/mbms/IDownloadProgressListener$Stub$Proxy;->onProgressUpdated(Landroid/telephony/mbms/DownloadRequest;Landroid/telephony/mbms/FileInfo;IIII)V
-Landroid/telephony/mbms/IDownloadProgressListener$Stub;
 Landroid/telephony/mbms/IDownloadProgressListener$Stub;-><init>()V
 Landroid/telephony/mbms/IDownloadProgressListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/mbms/IDownloadProgressListener;
 Landroid/telephony/mbms/IDownloadProgressListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/telephony/mbms/IDownloadProgressListener$Stub;->TRANSACTION_onProgressUpdated:I
-Landroid/telephony/mbms/IDownloadProgressListener;
 Landroid/telephony/mbms/IDownloadProgressListener;->onProgressUpdated(Landroid/telephony/mbms/DownloadRequest;Landroid/telephony/mbms/FileInfo;IIII)V
-Landroid/telephony/mbms/IDownloadStatusListener$Stub$Proxy;
 Landroid/telephony/mbms/IDownloadStatusListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/telephony/mbms/IDownloadStatusListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/telephony/mbms/IDownloadStatusListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/telephony/mbms/IDownloadStatusListener$Stub$Proxy;->onStatusUpdated(Landroid/telephony/mbms/DownloadRequest;Landroid/telephony/mbms/FileInfo;I)V
-Landroid/telephony/mbms/IDownloadStatusListener$Stub;
 Landroid/telephony/mbms/IDownloadStatusListener$Stub;-><init>()V
 Landroid/telephony/mbms/IDownloadStatusListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/mbms/IDownloadStatusListener;
 Landroid/telephony/mbms/IDownloadStatusListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/telephony/mbms/IDownloadStatusListener$Stub;->TRANSACTION_onStatusUpdated:I
-Landroid/telephony/mbms/IDownloadStatusListener;
 Landroid/telephony/mbms/IDownloadStatusListener;->onStatusUpdated(Landroid/telephony/mbms/DownloadRequest;Landroid/telephony/mbms/FileInfo;I)V
-Landroid/telephony/mbms/IMbmsDownloadSessionCallback$Stub$Proxy;
 Landroid/telephony/mbms/IMbmsDownloadSessionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/telephony/mbms/IMbmsDownloadSessionCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/telephony/mbms/IMbmsDownloadSessionCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/telephony/mbms/IMbmsDownloadSessionCallback$Stub$Proxy;->onError(ILjava/lang/String;)V
 Landroid/telephony/mbms/IMbmsDownloadSessionCallback$Stub$Proxy;->onFileServicesUpdated(Ljava/util/List;)V
 Landroid/telephony/mbms/IMbmsDownloadSessionCallback$Stub$Proxy;->onMiddlewareReady()V
-Landroid/telephony/mbms/IMbmsDownloadSessionCallback$Stub;
 Landroid/telephony/mbms/IMbmsDownloadSessionCallback$Stub;-><init>()V
 Landroid/telephony/mbms/IMbmsDownloadSessionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/mbms/IMbmsDownloadSessionCallback;
 Landroid/telephony/mbms/IMbmsDownloadSessionCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/telephony/mbms/IMbmsDownloadSessionCallback$Stub;->TRANSACTION_onError:I
 Landroid/telephony/mbms/IMbmsDownloadSessionCallback$Stub;->TRANSACTION_onFileServicesUpdated:I
 Landroid/telephony/mbms/IMbmsDownloadSessionCallback$Stub;->TRANSACTION_onMiddlewareReady:I
-Landroid/telephony/mbms/IMbmsDownloadSessionCallback;
 Landroid/telephony/mbms/IMbmsDownloadSessionCallback;->onError(ILjava/lang/String;)V
 Landroid/telephony/mbms/IMbmsDownloadSessionCallback;->onFileServicesUpdated(Ljava/util/List;)V
 Landroid/telephony/mbms/IMbmsDownloadSessionCallback;->onMiddlewareReady()V
-Landroid/telephony/mbms/IMbmsStreamingSessionCallback$Stub$Proxy;
 Landroid/telephony/mbms/IMbmsStreamingSessionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/telephony/mbms/IMbmsStreamingSessionCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/telephony/mbms/IMbmsStreamingSessionCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/telephony/mbms/IMbmsStreamingSessionCallback$Stub$Proxy;->onError(ILjava/lang/String;)V
 Landroid/telephony/mbms/IMbmsStreamingSessionCallback$Stub$Proxy;->onMiddlewareReady()V
 Landroid/telephony/mbms/IMbmsStreamingSessionCallback$Stub$Proxy;->onStreamingServicesUpdated(Ljava/util/List;)V
-Landroid/telephony/mbms/IMbmsStreamingSessionCallback$Stub;
 Landroid/telephony/mbms/IMbmsStreamingSessionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/mbms/IMbmsStreamingSessionCallback;
 Landroid/telephony/mbms/IMbmsStreamingSessionCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/telephony/mbms/IMbmsStreamingSessionCallback$Stub;->TRANSACTION_onError:I
 Landroid/telephony/mbms/IMbmsStreamingSessionCallback$Stub;->TRANSACTION_onMiddlewareReady:I
 Landroid/telephony/mbms/IMbmsStreamingSessionCallback$Stub;->TRANSACTION_onStreamingServicesUpdated:I
-Landroid/telephony/mbms/IMbmsStreamingSessionCallback;
 Landroid/telephony/mbms/IMbmsStreamingSessionCallback;->onError(ILjava/lang/String;)V
 Landroid/telephony/mbms/IMbmsStreamingSessionCallback;->onMiddlewareReady()V
 Landroid/telephony/mbms/IMbmsStreamingSessionCallback;->onStreamingServicesUpdated(Ljava/util/List;)V
-Landroid/telephony/mbms/InternalDownloadProgressListener;
 Landroid/telephony/mbms/InternalDownloadProgressListener;-><init>(Landroid/telephony/mbms/DownloadProgressListener;Ljava/util/concurrent/Executor;)V
 Landroid/telephony/mbms/InternalDownloadProgressListener;->mAppListener:Landroid/telephony/mbms/DownloadProgressListener;
 Landroid/telephony/mbms/InternalDownloadProgressListener;->mExecutor:Ljava/util/concurrent/Executor;
 Landroid/telephony/mbms/InternalDownloadProgressListener;->mIsStopped:Z
 Landroid/telephony/mbms/InternalDownloadProgressListener;->onProgressUpdated(Landroid/telephony/mbms/DownloadRequest;Landroid/telephony/mbms/FileInfo;IIII)V
 Landroid/telephony/mbms/InternalDownloadProgressListener;->stop()V
-Landroid/telephony/mbms/InternalDownloadSessionCallback;
 Landroid/telephony/mbms/InternalDownloadSessionCallback;-><init>(Landroid/telephony/mbms/MbmsDownloadSessionCallback;Ljava/util/concurrent/Executor;)V
 Landroid/telephony/mbms/InternalDownloadSessionCallback;->mAppCallback:Landroid/telephony/mbms/MbmsDownloadSessionCallback;
 Landroid/telephony/mbms/InternalDownloadSessionCallback;->mExecutor:Ljava/util/concurrent/Executor;
@@ -73332,14 +68403,12 @@
 Landroid/telephony/mbms/InternalDownloadSessionCallback;->onFileServicesUpdated(Ljava/util/List;)V
 Landroid/telephony/mbms/InternalDownloadSessionCallback;->onMiddlewareReady()V
 Landroid/telephony/mbms/InternalDownloadSessionCallback;->stop()V
-Landroid/telephony/mbms/InternalDownloadStatusListener;
 Landroid/telephony/mbms/InternalDownloadStatusListener;-><init>(Landroid/telephony/mbms/DownloadStatusListener;Ljava/util/concurrent/Executor;)V
 Landroid/telephony/mbms/InternalDownloadStatusListener;->mAppListener:Landroid/telephony/mbms/DownloadStatusListener;
 Landroid/telephony/mbms/InternalDownloadStatusListener;->mExecutor:Ljava/util/concurrent/Executor;
 Landroid/telephony/mbms/InternalDownloadStatusListener;->mIsStopped:Z
 Landroid/telephony/mbms/InternalDownloadStatusListener;->onStatusUpdated(Landroid/telephony/mbms/DownloadRequest;Landroid/telephony/mbms/FileInfo;I)V
 Landroid/telephony/mbms/InternalDownloadStatusListener;->stop()V
-Landroid/telephony/mbms/InternalStreamingServiceCallback;
 Landroid/telephony/mbms/InternalStreamingServiceCallback;-><init>(Landroid/telephony/mbms/StreamingServiceCallback;Ljava/util/concurrent/Executor;)V
 Landroid/telephony/mbms/InternalStreamingServiceCallback;->mAppCallback:Landroid/telephony/mbms/StreamingServiceCallback;
 Landroid/telephony/mbms/InternalStreamingServiceCallback;->mExecutor:Ljava/util/concurrent/Executor;
@@ -73350,7 +68419,6 @@
 Landroid/telephony/mbms/InternalStreamingServiceCallback;->onStreamMethodUpdated(I)V
 Landroid/telephony/mbms/InternalStreamingServiceCallback;->onStreamStateUpdated(II)V
 Landroid/telephony/mbms/InternalStreamingServiceCallback;->stop()V
-Landroid/telephony/mbms/InternalStreamingSessionCallback;
 Landroid/telephony/mbms/InternalStreamingSessionCallback;-><init>(Landroid/telephony/mbms/MbmsStreamingSessionCallback;Ljava/util/concurrent/Executor;)V
 Landroid/telephony/mbms/InternalStreamingSessionCallback;->mAppCallback:Landroid/telephony/mbms/MbmsStreamingSessionCallback;
 Landroid/telephony/mbms/InternalStreamingSessionCallback;->mExecutor:Ljava/util/concurrent/Executor;
@@ -73359,7 +68427,6 @@
 Landroid/telephony/mbms/InternalStreamingSessionCallback;->onMiddlewareReady()V
 Landroid/telephony/mbms/InternalStreamingSessionCallback;->onStreamingServicesUpdated(Ljava/util/List;)V
 Landroid/telephony/mbms/InternalStreamingSessionCallback;->stop()V
-Landroid/telephony/mbms/IStreamingServiceCallback$Stub$Proxy;
 Landroid/telephony/mbms/IStreamingServiceCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/telephony/mbms/IStreamingServiceCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/telephony/mbms/IStreamingServiceCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -73368,7 +68435,6 @@
 Landroid/telephony/mbms/IStreamingServiceCallback$Stub$Proxy;->onMediaDescriptionUpdated()V
 Landroid/telephony/mbms/IStreamingServiceCallback$Stub$Proxy;->onStreamMethodUpdated(I)V
 Landroid/telephony/mbms/IStreamingServiceCallback$Stub$Proxy;->onStreamStateUpdated(II)V
-Landroid/telephony/mbms/IStreamingServiceCallback$Stub;
 Landroid/telephony/mbms/IStreamingServiceCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/mbms/IStreamingServiceCallback;
 Landroid/telephony/mbms/IStreamingServiceCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/telephony/mbms/IStreamingServiceCallback$Stub;->TRANSACTION_onBroadcastSignalStrengthUpdated:I
@@ -73376,7 +68442,6 @@
 Landroid/telephony/mbms/IStreamingServiceCallback$Stub;->TRANSACTION_onMediaDescriptionUpdated:I
 Landroid/telephony/mbms/IStreamingServiceCallback$Stub;->TRANSACTION_onStreamMethodUpdated:I
 Landroid/telephony/mbms/IStreamingServiceCallback$Stub;->TRANSACTION_onStreamStateUpdated:I
-Landroid/telephony/mbms/IStreamingServiceCallback;
 Landroid/telephony/mbms/IStreamingServiceCallback;->onBroadcastSignalStrengthUpdated(I)V
 Landroid/telephony/mbms/IStreamingServiceCallback;->onError(ILjava/lang/String;)V
 Landroid/telephony/mbms/IStreamingServiceCallback;->onMediaDescriptionUpdated()V
@@ -73406,14 +68471,11 @@
 Landroid/telephony/mbms/MbmsDownloadReceiver;->verifyIntentContents(Landroid/content/Context;Landroid/content/Intent;)Z
 Landroid/telephony/mbms/MbmsDownloadReceiver;->verifyPermissionIntegrity(Landroid/content/Context;)V
 Landroid/telephony/mbms/MbmsDownloadReceiver;->verifyTempFilePath(Landroid/content/Context;Ljava/lang/String;Landroid/net/Uri;)Z
-Landroid/telephony/mbms/MbmsDownloadSessionCallback$DownloadError;
 Landroid/telephony/mbms/MbmsErrors$DownloadErrors;-><init>()V
 Landroid/telephony/mbms/MbmsErrors$GeneralErrors;-><init>()V
 Landroid/telephony/mbms/MbmsErrors$InitializationErrors;-><init>()V
 Landroid/telephony/mbms/MbmsErrors$StreamingErrors;-><init>()V
 Landroid/telephony/mbms/MbmsErrors;-><init>()V
-Landroid/telephony/mbms/MbmsStreamingSessionCallback$StreamingError;
-Landroid/telephony/mbms/MbmsTempFileProvider;
 Landroid/telephony/mbms/MbmsTempFileProvider;-><init>()V
 Landroid/telephony/mbms/MbmsTempFileProvider;->getEmbmsTempFileDir(Landroid/content/Context;)Ljava/io/File;
 Landroid/telephony/mbms/MbmsTempFileProvider;->getFileForUri(Landroid/content/Context;Ljava/lang/String;Landroid/net/Uri;)Ljava/io/File;
@@ -73422,7 +68484,6 @@
 Landroid/telephony/mbms/MbmsTempFileProvider;->mContext:Landroid/content/Context;
 Landroid/telephony/mbms/MbmsTempFileProvider;->TEMP_FILE_ROOT_PREF_FILE_NAME:Ljava/lang/String;
 Landroid/telephony/mbms/MbmsTempFileProvider;->TEMP_FILE_ROOT_PREF_NAME:Ljava/lang/String;
-Landroid/telephony/mbms/MbmsUtils;
 Landroid/telephony/mbms/MbmsUtils;-><init>()V
 Landroid/telephony/mbms/MbmsUtils;->getEmbmsTempFileDirForService(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;
 Landroid/telephony/mbms/MbmsUtils;->getMiddlewareServiceInfo(Landroid/content/Context;Ljava/lang/String;)Landroid/content/pm/ServiceInfo;
@@ -73441,8 +68502,6 @@
 Landroid/telephony/mbms/ServiceInfo;->sessionEndTime:Ljava/util/Date;
 Landroid/telephony/mbms/ServiceInfo;->sessionStartTime:Ljava/util/Date;
 Landroid/telephony/mbms/ServiceInfo;->writeToParcel(Landroid/os/Parcel;I)V
-Landroid/telephony/mbms/StreamingService$StreamingState;
-Landroid/telephony/mbms/StreamingService$StreamingStateChangeReason;
 Landroid/telephony/mbms/StreamingService;-><init>(ILandroid/telephony/mbms/vendor/IMbmsStreamingService;Landroid/telephony/MbmsStreamingSession;Landroid/telephony/mbms/StreamingServiceInfo;Landroid/telephony/mbms/InternalStreamingServiceCallback;)V
 Landroid/telephony/mbms/StreamingService;->getCallback()Landroid/telephony/mbms/InternalStreamingServiceCallback;
 Landroid/telephony/mbms/StreamingService;->LOG_TAG:Ljava/lang/String;
@@ -73452,13 +68511,11 @@
 Landroid/telephony/mbms/StreamingService;->mServiceInfo:Landroid/telephony/mbms/StreamingServiceInfo;
 Landroid/telephony/mbms/StreamingService;->mSubscriptionId:I
 Landroid/telephony/mbms/StreamingService;->sendErrorToApp(ILjava/lang/String;)V
-Landroid/telephony/mbms/StreamingServiceCallback$StreamingServiceError;
 Landroid/telephony/mbms/StreamingServiceInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/mbms/UriPathPair;-><init>(Landroid/net/Uri;Landroid/net/Uri;)V
 Landroid/telephony/mbms/UriPathPair;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/mbms/UriPathPair;->mContentUri:Landroid/net/Uri;
 Landroid/telephony/mbms/UriPathPair;->mFilePathUri:Landroid/net/Uri;
-Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub$Proxy;
 Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub$Proxy;->addProgressListener(Landroid/telephony/mbms/DownloadRequest;Landroid/telephony/mbms/IDownloadProgressListener;)I
 Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub$Proxy;->addStatusListener(Landroid/telephony/mbms/DownloadRequest;Landroid/telephony/mbms/IDownloadStatusListener;)I
@@ -73475,7 +68532,6 @@
 Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub$Proxy;->requestUpdateFileServices(ILjava/util/List;)I
 Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub$Proxy;->resetDownloadKnowledge(Landroid/telephony/mbms/DownloadRequest;)I
 Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub$Proxy;->setTempFileRootDirectory(ILjava/lang/String;)I
-Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub;
 Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub;-><init>()V
 Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/mbms/vendor/IMbmsDownloadService;
 Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -73492,7 +68548,6 @@
 Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub;->TRANSACTION_requestUpdateFileServices:I
 Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub;->TRANSACTION_resetDownloadKnowledge:I
 Landroid/telephony/mbms/vendor/IMbmsDownloadService$Stub;->TRANSACTION_setTempFileRootDirectory:I
-Landroid/telephony/mbms/vendor/IMbmsDownloadService;
 Landroid/telephony/mbms/vendor/IMbmsDownloadService;->addProgressListener(Landroid/telephony/mbms/DownloadRequest;Landroid/telephony/mbms/IDownloadProgressListener;)I
 Landroid/telephony/mbms/vendor/IMbmsDownloadService;->addStatusListener(Landroid/telephony/mbms/DownloadRequest;Landroid/telephony/mbms/IDownloadStatusListener;)I
 Landroid/telephony/mbms/vendor/IMbmsDownloadService;->cancelDownload(Landroid/telephony/mbms/DownloadRequest;)I
@@ -73506,7 +68561,6 @@
 Landroid/telephony/mbms/vendor/IMbmsDownloadService;->requestUpdateFileServices(ILjava/util/List;)I
 Landroid/telephony/mbms/vendor/IMbmsDownloadService;->resetDownloadKnowledge(Landroid/telephony/mbms/DownloadRequest;)I
 Landroid/telephony/mbms/vendor/IMbmsDownloadService;->setTempFileRootDirectory(ILjava/lang/String;)I
-Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub$Proxy;
 Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub$Proxy;->dispose(I)V
 Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -73516,7 +68570,6 @@
 Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub$Proxy;->requestUpdateStreamingServices(ILjava/util/List;)I
 Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub$Proxy;->startStreaming(ILjava/lang/String;Landroid/telephony/mbms/IStreamingServiceCallback;)I
 Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub$Proxy;->stopStreaming(ILjava/lang/String;)V
-Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub;
 Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub;-><init>()V
 Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub;->TRANSACTION_dispose:I
@@ -73525,14 +68578,11 @@
 Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub;->TRANSACTION_requestUpdateStreamingServices:I
 Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub;->TRANSACTION_startStreaming:I
 Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub;->TRANSACTION_stopStreaming:I
-Landroid/telephony/mbms/vendor/IMbmsStreamingService;
 Landroid/telephony/mbms/vendor/IMbmsStreamingService;->dispose(I)V
 Landroid/telephony/mbms/vendor/IMbmsStreamingService;->stopStreaming(ILjava/lang/String;)V
-Landroid/telephony/mbms/vendor/MbmsDownloadServiceBase$VendorDownloadProgressListener;
 Landroid/telephony/mbms/vendor/MbmsDownloadServiceBase$VendorDownloadProgressListener;-><init>(Landroid/telephony/mbms/IDownloadProgressListener;)V
 Landroid/telephony/mbms/vendor/MbmsDownloadServiceBase$VendorDownloadProgressListener;->mListener:Landroid/telephony/mbms/IDownloadProgressListener;
 Landroid/telephony/mbms/vendor/MbmsDownloadServiceBase$VendorDownloadProgressListener;->onRemoteException(Landroid/os/RemoteException;)V
-Landroid/telephony/mbms/vendor/MbmsDownloadServiceBase$VendorDownloadStatusListener;
 Landroid/telephony/mbms/vendor/MbmsDownloadServiceBase$VendorDownloadStatusListener;-><init>(Landroid/telephony/mbms/IDownloadStatusListener;)V
 Landroid/telephony/mbms/vendor/MbmsDownloadServiceBase$VendorDownloadStatusListener;->mListener:Landroid/telephony/mbms/IDownloadStatusListener;
 Landroid/telephony/mbms/vendor/MbmsDownloadServiceBase$VendorDownloadStatusListener;->onRemoteException(Landroid/os/RemoteException;)V
@@ -73546,8 +68596,6 @@
 Landroid/telephony/mbms/vendor/MbmsDownloadServiceBase;->removeStatusListener(Landroid/telephony/mbms/DownloadRequest;Landroid/telephony/mbms/IDownloadStatusListener;)I
 Landroid/telephony/mbms/vendor/MbmsStreamingServiceBase;->initialize(Landroid/telephony/mbms/IMbmsStreamingSessionCallback;I)I
 Landroid/telephony/mbms/vendor/MbmsStreamingServiceBase;->startStreaming(ILjava/lang/String;Landroid/telephony/mbms/IStreamingServiceCallback;)I
-Landroid/telephony/MbmsDownloadSession$DownloadResultCode;
-Landroid/telephony/MbmsDownloadSession$DownloadStatus;
 Landroid/telephony/MbmsDownloadSession;-><init>(Landroid/content/Context;Ljava/util/concurrent/Executor;ILandroid/telephony/mbms/MbmsDownloadSessionCallback;)V
 Landroid/telephony/MbmsDownloadSession;->bindAndInitialize()I
 Landroid/telephony/MbmsDownloadSession;->checkDownloadRequestDestination(Landroid/telephony/mbms/DownloadRequest;)V
@@ -73578,7 +68626,6 @@
 Landroid/telephony/MbmsStreamingSession;->onStreamingServiceStopped(Landroid/telephony/mbms/StreamingService;)V
 Landroid/telephony/MbmsStreamingSession;->sendErrorToApp(ILjava/lang/String;)V
 Landroid/telephony/MbmsStreamingSession;->sIsInitialized:Ljava/util/concurrent/atomic/AtomicBoolean;
-Landroid/telephony/ModemActivityInfo;
 Landroid/telephony/ModemActivityInfo;-><init>(JII[III)V
 Landroid/telephony/ModemActivityInfo;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/telephony/ModemActivityInfo;->getEnergyUsed()I
@@ -73602,10 +68649,6 @@
 Landroid/telephony/ModemActivityInfo;->setTimestamp(J)V
 Landroid/telephony/ModemActivityInfo;->setTxTimeMillis([I)V
 Landroid/telephony/ModemActivityInfo;->TX_POWER_LEVELS:I
-Landroid/telephony/NetworkRegistrationState$Domain;
-Landroid/telephony/NetworkRegistrationState$RegState;
-Landroid/telephony/NetworkRegistrationState$ServiceType;
-Landroid/telephony/NetworkRegistrationState;
 Landroid/telephony/NetworkRegistrationState;-><init>(IIIIIZ[ILandroid/telephony/CellIdentity;)V
 Landroid/telephony/NetworkRegistrationState;-><init>(IIIIIZ[ILandroid/telephony/CellIdentity;I)V
 Landroid/telephony/NetworkRegistrationState;-><init>(IIIIIZ[ILandroid/telephony/CellIdentity;ZIII)V
@@ -73646,13 +68689,11 @@
 Landroid/telephony/NetworkRegistrationState;->SERVICE_TYPE_SMS:I
 Landroid/telephony/NetworkRegistrationState;->SERVICE_TYPE_VIDEO:I
 Landroid/telephony/NetworkRegistrationState;->SERVICE_TYPE_VOICE:I
-Landroid/telephony/NetworkScan$ScanErrorCode;
 Landroid/telephony/NetworkScan;-><init>(II)V
 Landroid/telephony/NetworkScan;->getITelephony()Lcom/android/internal/telephony/ITelephony;
 Landroid/telephony/NetworkScan;->mScanId:I
 Landroid/telephony/NetworkScan;->mSubId:I
 Landroid/telephony/NetworkScan;->TAG:Ljava/lang/String;
-Landroid/telephony/NetworkScanRequest$ScanType;
 Landroid/telephony/NetworkScanRequest;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/NetworkScanRequest;->MAX_BANDS:I
 Landroid/telephony/NetworkScanRequest;->MAX_CHANNELS:I
@@ -73671,17 +68712,11 @@
 Landroid/telephony/NetworkScanRequest;->mScanType:I
 Landroid/telephony/NetworkScanRequest;->mSearchPeriodicity:I
 Landroid/telephony/NetworkScanRequest;->mSpecifiers:[Landroid/telephony/RadioAccessSpecifier;
-Landroid/telephony/NetworkService$INetworkServiceWrapper;
-Landroid/telephony/NetworkService$INetworkServiceWrapper;-><init>()V
 Landroid/telephony/NetworkService$INetworkServiceWrapper;->createNetworkServiceProvider(I)V
 Landroid/telephony/NetworkService$INetworkServiceWrapper;->getNetworkRegistrationState(IILandroid/telephony/INetworkServiceCallback;)V
 Landroid/telephony/NetworkService$INetworkServiceWrapper;->registerForNetworkRegistrationStateChanged(ILandroid/telephony/INetworkServiceCallback;)V
 Landroid/telephony/NetworkService$INetworkServiceWrapper;->removeNetworkServiceProvider(I)V
 Landroid/telephony/NetworkService$INetworkServiceWrapper;->unregisterForNetworkRegistrationStateChanged(ILandroid/telephony/INetworkServiceCallback;)V
-Landroid/telephony/NetworkService$NetworkServiceHandler;
-Landroid/telephony/NetworkService$NetworkServiceHandler;-><init>(Landroid/os/Looper;)V
-Landroid/telephony/NetworkService$NetworkServiceProvider;
-Landroid/telephony/NetworkService$NetworkServiceProvider;-><init>(I)V
 Landroid/telephony/NetworkService$NetworkServiceProvider;->getNetworkRegistrationState(ILandroid/telephony/NetworkServiceCallback;)V
 Landroid/telephony/NetworkService$NetworkServiceProvider;->getSlotId()I
 Landroid/telephony/NetworkService$NetworkServiceProvider;->mNetworkRegistrationStateChangedCallbacks:Ljava/util/List;
@@ -73691,7 +68726,6 @@
 Landroid/telephony/NetworkService$NetworkServiceProvider;->onDestroy()V
 Landroid/telephony/NetworkService$NetworkServiceProvider;->registerForStateChanged(Landroid/telephony/INetworkServiceCallback;)V
 Landroid/telephony/NetworkService$NetworkServiceProvider;->unregisterForStateChanged(Landroid/telephony/INetworkServiceCallback;)V
-Landroid/telephony/NetworkService;
 Landroid/telephony/NetworkService;-><init>()V
 Landroid/telephony/NetworkService;->createNetworkServiceProvider(I)Landroid/telephony/NetworkService$NetworkServiceProvider;
 Landroid/telephony/NetworkService;->log(Ljava/lang/String;)V
@@ -73710,8 +68744,6 @@
 Landroid/telephony/NetworkService;->NETWORK_SERVICE_REMOVE_NETWORK_SERVICE_PROVIDER:I
 Landroid/telephony/NetworkService;->NETWORK_SERVICE_UNREGISTER_FOR_STATE_CHANGE:I
 Landroid/telephony/NetworkService;->TAG:Ljava/lang/String;
-Landroid/telephony/NetworkServiceCallback$Result;
-Landroid/telephony/NetworkServiceCallback;
 Landroid/telephony/NetworkServiceCallback;-><init>(Landroid/telephony/INetworkServiceCallback;)V
 Landroid/telephony/NetworkServiceCallback;->mCallback:Ljava/lang/ref/WeakReference;
 Landroid/telephony/NetworkServiceCallback;->mTag:Ljava/lang/String;
@@ -73722,7 +68754,6 @@
 Landroid/telephony/NetworkServiceCallback;->RESULT_ERROR_INVALID_ARG:I
 Landroid/telephony/NetworkServiceCallback;->RESULT_ERROR_UNSUPPORTED:I
 Landroid/telephony/NetworkServiceCallback;->RESULT_SUCCESS:I
-Landroid/telephony/PcoData;
 Landroid/telephony/PcoData;-><init>(ILjava/lang/String;I[B)V
 Landroid/telephony/PcoData;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/PcoData;->bearerProto:Ljava/lang/String;
@@ -73736,8 +68767,6 @@
 Landroid/telephony/PhoneNumberFormattingTextWatcher;->mStopFormatting:Z
 Landroid/telephony/PhoneNumberFormattingTextWatcher;->reformat(Ljava/lang/CharSequence;I)Ljava/lang/String;
 Landroid/telephony/PhoneNumberFormattingTextWatcher;->stopFormatting()V
-Landroid/telephony/PhoneNumberUtils$BcdExtendType;
-Landroid/telephony/PhoneNumberUtils$CountryCallingCodeAndNewIndex;
 Landroid/telephony/PhoneNumberUtils$CountryCallingCodeAndNewIndex;-><init>(II)V
 Landroid/telephony/PhoneNumberUtils$CountryCallingCodeAndNewIndex;->countryCallingCode:I
 Landroid/telephony/PhoneNumberUtils$CountryCallingCodeAndNewIndex;->newIndex:I
@@ -73813,7 +68842,6 @@
 Landroid/telephony/PhoneNumberUtils;->tryGetISODigit(C)I
 Landroid/telephony/PhoneNumberUtils;->tryGetTrunkPrefixOmittedIndex(Ljava/lang/String;I)I
 Landroid/telephony/PhoneNumberUtils;->ttsSpanAsPhoneNumber(Landroid/text/Spannable;II)V
-Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;
 Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;-><init>(Landroid/telephony/PhoneStateListener;)V
 Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->mPhoneStateListenerWeakRef:Ljava/lang/ref/WeakReference;
 Landroid/telephony/PhoneStateListener$IPhoneStateListenerStub;->onCallForwardingIndicatorChanged(Z)V
@@ -73855,8 +68883,6 @@
 Landroid/telephony/PhoneStateListener;->onDataActivationStateChanged(I)V
 Landroid/telephony/PhoneStateListener;->onPhysicalChannelConfigurationChanged(Ljava/util/List;)V
 Landroid/telephony/PhoneStateListener;->onVoiceActivationStateChanged(I)V
-Landroid/telephony/PhysicalChannelConfig$ConnectionStatus;
-Landroid/telephony/PhysicalChannelConfig;
 Landroid/telephony/PhysicalChannelConfig;-><init>(II)V
 Landroid/telephony/PhysicalChannelConfig;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/PhysicalChannelConfig;->CONNECTION_PRIMARY_SERVING:I
@@ -73868,7 +68894,6 @@
 Landroid/telephony/PhysicalChannelConfig;->getConnectionStatusString()Ljava/lang/String;
 Landroid/telephony/PhysicalChannelConfig;->mCellBandwidthDownlinkKhz:I
 Landroid/telephony/PhysicalChannelConfig;->mCellConnectionStatus:I
-Landroid/telephony/PreciseCallState;
 Landroid/telephony/PreciseCallState;-><init>()V
 Landroid/telephony/PreciseCallState;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/PreciseCallState;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -73887,7 +68912,6 @@
 Landroid/telephony/PreciseCallState;->PRECISE_CALL_STATE_INCOMING:I
 Landroid/telephony/PreciseCallState;->PRECISE_CALL_STATE_NOT_VALID:I
 Landroid/telephony/PreciseCallState;->PRECISE_CALL_STATE_WAITING:I
-Landroid/telephony/PreciseDataConnectionState;
 Landroid/telephony/PreciseDataConnectionState;-><init>()V
 Landroid/telephony/PreciseDataConnectionState;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/PreciseDataConnectionState;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -73898,7 +68922,6 @@
 Landroid/telephony/PreciseDataConnectionState;->mNetworkType:I
 Landroid/telephony/PreciseDataConnectionState;->mReason:Ljava/lang/String;
 Landroid/telephony/PreciseDataConnectionState;->mState:I
-Landroid/telephony/PreciseDisconnectCause;
 Landroid/telephony/PreciseDisconnectCause;-><init>()V
 Landroid/telephony/PreciseDisconnectCause;->ACCESS_CLASS_BLOCKED:I
 Landroid/telephony/PreciseDisconnectCause;->ACCESS_INFORMATION_DISCARDED:I
@@ -74073,7 +69096,6 @@
 Landroid/telephony/PreciseDisconnectCause;->UT_OPERATION_NOT_ALLOWED:I
 Landroid/telephony/PreciseDisconnectCause;->UT_SERVICE_UNAVAILABLE:I
 Landroid/telephony/PreciseDisconnectCause;->WIFI_LOST:I
-Landroid/telephony/RadioAccessFamily;
 Landroid/telephony/RadioAccessFamily;->CDMA:I
 Landroid/telephony/RadioAccessFamily;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/telephony/RadioAccessFamily;->EVDO:I
@@ -74110,7 +69132,6 @@
 Landroid/telephony/RadioAccessSpecifier;->mBands:[I
 Landroid/telephony/RadioAccessSpecifier;->mChannels:[I
 Landroid/telephony/RadioAccessSpecifier;->mRadioAccessNetwork:I
-Landroid/telephony/Rlog;
 Landroid/telephony/Rlog;-><init>()V
 Landroid/telephony/Rlog;->isLoggable(Ljava/lang/String;I)Z
 Landroid/telephony/Rlog;->pii(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;
@@ -74120,8 +69141,6 @@
 Landroid/telephony/Rlog;->USER_BUILD:Z
 Landroid/telephony/Rlog;->v(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
 Landroid/telephony/Rlog;->w(Ljava/lang/String;Ljava/lang/Throwable;)I
-Landroid/telephony/ServiceState$DuplexMode;
-Landroid/telephony/ServiceState$RilRadioTechnology;
 Landroid/telephony/ServiceState;->addNetworkRegistrationState(Landroid/telephony/NetworkRegistrationState;)V
 Landroid/telephony/ServiceState;->convertBearerBitmaskToNetworkTypeBitmask(I)I
 Landroid/telephony/ServiceState;->convertNetworkTypeBitmaskToBearerBitmask(I)I
@@ -74305,9 +69324,6 @@
 Landroid/telephony/SmsManager;->sSubInstances:Ljava/util/Map;
 Landroid/telephony/SmsManager;->TAG:Ljava/lang/String;
 Landroid/telephony/SmsManager;->updateStoredMessageStatus(Landroid/net/Uri;Landroid/content/ContentValues;)Z
-Landroid/telephony/SmsMessage$Format;
-Landroid/telephony/SmsMessage$MessageClass;-><init>()V
-Landroid/telephony/SmsMessage$NoEmsSupportConfig;
 Landroid/telephony/SmsMessage$NoEmsSupportConfig;-><init>([Ljava/lang/String;)V
 Landroid/telephony/SmsMessage$NoEmsSupportConfig;->mGid1:Ljava/lang/String;
 Landroid/telephony/SmsMessage$NoEmsSupportConfig;->mIsPrefix:Z
@@ -74352,9 +69368,6 @@
 Landroid/telephony/SubscriptionInfo;->mSimSlotIndex:I
 Landroid/telephony/SubscriptionInfo;->setCarrierName(Ljava/lang/CharSequence;)V
 Landroid/telephony/SubscriptionInfo;->TEXT_SIZE:I
-Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener$OnSubscriptionsChangedListenerHandler;
-Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener$OnSubscriptionsChangedListenerHandler;-><init>()V
-Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener$OnSubscriptionsChangedListenerHandler;-><init>(Landroid/os/Looper;)V
 Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;-><init>(Landroid/os/Looper;)V
 Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;->callback:Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;
 Landroid/telephony/SubscriptionManager$OnSubscriptionsChangedListener;->log(Ljava/lang/String;)V
@@ -74446,7 +69459,6 @@
 Landroid/telephony/SubscriptionManager;->WFC_IMS_ROAMING_MODE:Ljava/lang/String;
 Landroid/telephony/SubscriptionPlan$Builder;-><init>(Ljava/time/ZonedDateTime;Ljava/time/ZonedDateTime;Ljava/time/Period;)V
 Landroid/telephony/SubscriptionPlan$Builder;->plan:Landroid/telephony/SubscriptionPlan;
-Landroid/telephony/SubscriptionPlan$LimitBehavior;
 Landroid/telephony/SubscriptionPlan;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/SubscriptionPlan;-><init>(Landroid/util/RecurrenceRule;)V
 Landroid/telephony/SubscriptionPlan;->cycleRule:Landroid/util/RecurrenceRule;
@@ -74474,13 +69486,7 @@
 Landroid/telephony/TelephonyHistogram;->mSampleCount:I
 Landroid/telephony/TelephonyHistogram;->PRESENT:I
 Landroid/telephony/TelephonyHistogram;->RANGE_CALCULATION_COUNT:I
-Landroid/telephony/TelephonyManager$IndicationFilters;
-Landroid/telephony/TelephonyManager$IndicationUpdateMode;
-Landroid/telephony/TelephonyManager$MultiSimVariants;
-Landroid/telephony/TelephonyManager$MultiSimVariants;-><init>()V
 Landroid/telephony/TelephonyManager$MultiSimVariants;->valueOf(Ljava/lang/String;)Landroid/telephony/TelephonyManager$MultiSimVariants;
-Landroid/telephony/TelephonyManager$SimActivationState;
-Landroid/telephony/TelephonyManager$WifiCallingChoices;
 Landroid/telephony/TelephonyManager$WifiCallingChoices;->ALWAYS_USE:I
 Landroid/telephony/TelephonyManager$WifiCallingChoices;->ASK_EVERY_TIME:I
 Landroid/telephony/TelephonyManager$WifiCallingChoices;->NEVER_USE:I
@@ -74646,7 +69652,6 @@
 Landroid/telephony/TelephonyManager;->TAG:Ljava/lang/String;
 Landroid/telephony/TelephonyManager;->USSD_RESPONSE:Ljava/lang/String;
 Landroid/telephony/TelephonyManager;->USSD_RETURN_SUCCESS:I
-Landroid/telephony/TelephonyProtoEnums;
 Landroid/telephony/TelephonyProtoEnums;-><init>()V
 Landroid/telephony/TelephonyProtoEnums;->DATA_CONNECTION_POWER_STATE_HIGH:I
 Landroid/telephony/TelephonyProtoEnums;->DATA_CONNECTION_POWER_STATE_LOW:I
@@ -74677,7 +69682,6 @@
 Landroid/telephony/TelephonyProtoEnums;->SIGNAL_STRENGTH_MODERATE:I
 Landroid/telephony/TelephonyProtoEnums;->SIGNAL_STRENGTH_NONE_OR_UNKNOWN:I
 Landroid/telephony/TelephonyProtoEnums;->SIGNAL_STRENGTH_POOR:I
-Landroid/telephony/TelephonyScanManager$NetworkScanInfo;
 Landroid/telephony/TelephonyScanManager$NetworkScanInfo;-><init>(Landroid/telephony/NetworkScanRequest;Ljava/util/concurrent/Executor;Landroid/telephony/TelephonyScanManager$NetworkScanCallback;)V
 Landroid/telephony/TelephonyScanManager$NetworkScanInfo;->mCallback:Landroid/telephony/TelephonyScanManager$NetworkScanCallback;
 Landroid/telephony/TelephonyScanManager$NetworkScanInfo;->mExecutor:Ljava/util/concurrent/Executor;
@@ -74703,7 +69707,6 @@
 Landroid/telephony/UiccAccessRule;->mCertificateHash:[B
 Landroid/telephony/UiccAccessRule;->mPackageName:Ljava/lang/String;
 Landroid/telephony/UiccAccessRule;->TAG:Ljava/lang/String;
-Landroid/telephony/UiccSlotInfo$CardStateInfo;
 Landroid/telephony/UiccSlotInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/UiccSlotInfo;->mCardId:Ljava/lang/String;
 Landroid/telephony/UiccSlotInfo;->mCardStateInfo:I
@@ -74711,7 +69714,6 @@
 Landroid/telephony/UiccSlotInfo;->mIsEuicc:Z
 Landroid/telephony/UiccSlotInfo;->mIsExtendedApduSupported:Z
 Landroid/telephony/UiccSlotInfo;->mLogicalSlotIdx:I
-Landroid/telephony/UssdResponse;
 Landroid/telephony/UssdResponse;-><init>(Ljava/lang/String;Ljava/lang/CharSequence;)V
 Landroid/telephony/UssdResponse;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/telephony/UssdResponse;->getReturnMessage()Ljava/lang/CharSequence;
@@ -74731,7 +69733,6 @@
 Landroid/telephony/VisualVoicemailService;->MSG_TASK_ENDED:I
 Landroid/telephony/VisualVoicemailService;->MSG_TASK_STOPPED:I
 Landroid/telephony/VisualVoicemailService;->TAG:Ljava/lang/String;
-Landroid/telephony/VisualVoicemailSms$Builder;
 Landroid/telephony/VisualVoicemailSms$Builder;-><init>()V
 Landroid/telephony/VisualVoicemailSms$Builder;->build()Landroid/telephony/VisualVoicemailSms;
 Landroid/telephony/VisualVoicemailSms$Builder;->mFields:Landroid/os/Bundle;
@@ -74757,7 +69758,6 @@
 Landroid/telephony/VisualVoicemailSmsFilterSettings;->DEFAULT_DESTINATION_PORT:I
 Landroid/telephony/VisualVoicemailSmsFilterSettings;->DEFAULT_ORIGINATING_NUMBERS:Ljava/util/List;
 Landroid/telephony/VisualVoicemailSmsFilterSettings;->packageName:Ljava/lang/String;
-Landroid/telephony/VoiceSpecificRegistrationStates;
 Landroid/telephony/VoiceSpecificRegistrationStates;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/VoiceSpecificRegistrationStates;-><init>(ZIII)V
 Landroid/telephony/VoiceSpecificRegistrationStates;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -74765,7 +69765,6 @@
 Landroid/telephony/VoiceSpecificRegistrationStates;->defaultRoamingIndicator:I
 Landroid/telephony/VoiceSpecificRegistrationStates;->roamingIndicator:I
 Landroid/telephony/VoiceSpecificRegistrationStates;->systemIsInPrl:I
-Landroid/telephony/VoLteServiceState;
 Landroid/telephony/VoLteServiceState;-><init>()V
 Landroid/telephony/VoLteServiceState;-><init>(Landroid/os/Parcel;)V
 Landroid/telephony/VoLteServiceState;-><init>(Landroid/telephony/VoLteServiceState;)V
@@ -74788,7 +69787,6 @@
 Landroid/telephony/VoLteServiceState;->setFromNotifierBundle(Landroid/os/Bundle;)V
 Landroid/telephony/VoLteServiceState;->SUPPORTED:I
 Landroid/telephony/VoLteServiceState;->validateInput()V
-Landroid/text/AlteredCharSequence$AlteredSpanned;
 Landroid/text/AlteredCharSequence$AlteredSpanned;-><init>(Ljava/lang/CharSequence;[CII)V
 Landroid/text/AlteredCharSequence$AlteredSpanned;->mSpanned:Landroid/text/Spanned;
 Landroid/text/AlteredCharSequence;-><init>(Ljava/lang/CharSequence;[CII)V
@@ -74797,11 +69795,9 @@
 Landroid/text/AlteredCharSequence;->mSource:Ljava/lang/CharSequence;
 Landroid/text/AlteredCharSequence;->mStart:I
 Landroid/text/AlteredCharSequence;->update([CII)V
-Landroid/text/AndroidBidi$EmojiBidiOverride;
 Landroid/text/AndroidBidi$EmojiBidiOverride;-><init>()V
 Landroid/text/AndroidBidi$EmojiBidiOverride;->classify(I)I
 Landroid/text/AndroidBidi$EmojiBidiOverride;->NO_OVERRIDE:I
-Landroid/text/AndroidBidi;
 Landroid/text/AndroidBidi;-><init>()V
 Landroid/text/AndroidBidi;->directions(I[BI[CII)Landroid/text/Layout$Directions;
 Landroid/text/AndroidBidi;->sEmojiBidiOverride:Landroid/text/AndroidBidi$EmojiBidiOverride;
@@ -74809,7 +69805,6 @@
 Landroid/text/Annotation;->mKey:Ljava/lang/String;
 Landroid/text/Annotation;->mValue:Ljava/lang/String;
 Landroid/text/Annotation;->writeToParcelInternal(Landroid/os/Parcel;I)V
-Landroid/text/AutoGrowArray$ByteArray;
 Landroid/text/AutoGrowArray$ByteArray;-><init>()V
 Landroid/text/AutoGrowArray$ByteArray;-><init>(I)V
 Landroid/text/AutoGrowArray$ByteArray;->append(B)V
@@ -74823,7 +69818,6 @@
 Landroid/text/AutoGrowArray$ByteArray;->resize(I)V
 Landroid/text/AutoGrowArray$ByteArray;->set(IB)V
 Landroid/text/AutoGrowArray$ByteArray;->size()I
-Landroid/text/AutoGrowArray$FloatArray;
 Landroid/text/AutoGrowArray$FloatArray;-><init>()V
 Landroid/text/AutoGrowArray$FloatArray;-><init>(I)V
 Landroid/text/AutoGrowArray$FloatArray;->append(F)V
@@ -74837,7 +69831,6 @@
 Landroid/text/AutoGrowArray$FloatArray;->resize(I)V
 Landroid/text/AutoGrowArray$FloatArray;->set(IF)V
 Landroid/text/AutoGrowArray$FloatArray;->size()I
-Landroid/text/AutoGrowArray$IntArray;
 Landroid/text/AutoGrowArray$IntArray;-><init>()V
 Landroid/text/AutoGrowArray$IntArray;-><init>(I)V
 Landroid/text/AutoGrowArray$IntArray;->append(I)V
@@ -74851,7 +69844,6 @@
 Landroid/text/AutoGrowArray$IntArray;->resize(I)V
 Landroid/text/AutoGrowArray$IntArray;->set(II)V
 Landroid/text/AutoGrowArray$IntArray;->size()I
-Landroid/text/AutoGrowArray;
 Landroid/text/AutoGrowArray;-><init>()V
 Landroid/text/AutoGrowArray;->computeNewCapacity(II)I
 Landroid/text/AutoGrowArray;->MAX_CAPACITY_TO_BE_KEPT:I
@@ -74884,7 +69876,6 @@
 Landroid/text/BidiFormatter$Builder;->mFlags:I
 Landroid/text/BidiFormatter$Builder;->mIsRtlContext:Z
 Landroid/text/BidiFormatter$Builder;->mTextDirectionHeuristic:Landroid/text/TextDirectionHeuristic;
-Landroid/text/BidiFormatter$DirectionalityEstimator;
 Landroid/text/BidiFormatter$DirectionalityEstimator;-><init>(Ljava/lang/CharSequence;Z)V
 Landroid/text/BidiFormatter$DirectionalityEstimator;->charIndex:I
 Landroid/text/BidiFormatter$DirectionalityEstimator;->dirTypeBackward()B
@@ -74942,7 +69933,6 @@
 Landroid/text/BoringLayout;->mMax:F
 Landroid/text/BoringLayout;->mPaint:Landroid/graphics/Paint;
 Landroid/text/BoringLayout;->mTopPadding:I
-Landroid/text/CharSequenceCharacterIterator;
 Landroid/text/CharSequenceCharacterIterator;-><init>(Ljava/lang/CharSequence;II)V
 Landroid/text/CharSequenceCharacterIterator;->mBeginIndex:I
 Landroid/text/CharSequenceCharacterIterator;->mCharSeq:Ljava/lang/CharSequence;
@@ -74967,7 +69957,6 @@
 Landroid/text/DynamicLayout$Builder;->mWidth:I
 Landroid/text/DynamicLayout$Builder;->recycle(Landroid/text/DynamicLayout$Builder;)V
 Landroid/text/DynamicLayout$Builder;->sPool:Landroid/util/Pools$SynchronizedPool;
-Landroid/text/DynamicLayout$ChangeWatcher;
 Landroid/text/DynamicLayout$ChangeWatcher;-><init>(Landroid/text/DynamicLayout;)V
 Landroid/text/DynamicLayout$ChangeWatcher;->mLayout:Ljava/lang/ref/WeakReference;
 Landroid/text/DynamicLayout$ChangeWatcher;->reflow(Ljava/lang/CharSequence;III)V
@@ -75032,7 +70021,6 @@
 Landroid/text/DynamicLayout;->updateAlwaysNeedsToBeRedrawn(I)V
 Landroid/text/DynamicLayout;->updateBlocks(III)V
 Landroid/text/Editable$Factory;->sInstance:Landroid/text/Editable$Factory;
-Landroid/text/Emoji;
 Landroid/text/Emoji;-><init>()V
 Landroid/text/Emoji;->CANCEL_TAG:I
 Landroid/text/Emoji;->COMBINING_ENCLOSING_KEYCAP:I
@@ -75045,7 +70033,6 @@
 Landroid/text/Emoji;->isTagSpecChar(I)Z
 Landroid/text/Emoji;->VARIATION_SELECTOR_16:I
 Landroid/text/Emoji;->ZERO_WIDTH_JOINER:I
-Landroid/text/FontConfig$Alias;
 Landroid/text/FontConfig$Alias;-><init>(Ljava/lang/String;Ljava/lang/String;I)V
 Landroid/text/FontConfig$Alias;->getName()Ljava/lang/String;
 Landroid/text/FontConfig$Alias;->getToName()Ljava/lang/String;
@@ -75053,8 +70040,6 @@
 Landroid/text/FontConfig$Alias;->mName:Ljava/lang/String;
 Landroid/text/FontConfig$Alias;->mToName:Ljava/lang/String;
 Landroid/text/FontConfig$Alias;->mWeight:I
-Landroid/text/FontConfig$Family$Variant;
-Landroid/text/FontConfig$Family;
 Landroid/text/FontConfig$Family;-><init>(Ljava/lang/String;[Landroid/text/FontConfig$Font;[Ljava/lang/String;I)V
 Landroid/text/FontConfig$Family;->getLanguages()[Ljava/lang/String;
 Landroid/text/FontConfig$Family;->mFonts:[Landroid/text/FontConfig$Font;
@@ -75064,7 +70049,6 @@
 Landroid/text/FontConfig$Family;->VARIANT_COMPACT:I
 Landroid/text/FontConfig$Family;->VARIANT_DEFAULT:I
 Landroid/text/FontConfig$Family;->VARIANT_ELEGANT:I
-Landroid/text/FontConfig$Font;
 Landroid/text/FontConfig$Font;-><init>(Ljava/lang/String;I[Landroid/graphics/fonts/FontVariationAxis;IZLjava/lang/String;)V
 Landroid/text/FontConfig$Font;->getFallbackFor()Ljava/lang/String;
 Landroid/text/FontConfig$Font;->getFontName()Ljava/lang/String;
@@ -75077,7 +70061,6 @@
 Landroid/text/FontConfig$Font;->mUri:Landroid/net/Uri;
 Landroid/text/FontConfig$Font;->mWeight:I
 Landroid/text/FontConfig$Font;->setUri(Landroid/net/Uri;)V
-Landroid/text/FontConfig;
 Landroid/text/FontConfig;-><init>([Landroid/text/FontConfig$Family;[Landroid/text/FontConfig$Alias;)V
 Landroid/text/FontConfig;->getAliases()[Landroid/text/FontConfig$Alias;
 Landroid/text/FontConfig;->mAliases:[Landroid/text/FontConfig$Alias;
@@ -75102,7 +70085,6 @@
 Landroid/text/format/DateUtils;->sLock:Ljava/lang/Object;
 Landroid/text/format/DateUtils;->sNowTime:Landroid/text/format/Time;
 Landroid/text/format/DateUtils;->sThenTime:Landroid/text/format/Time;
-Landroid/text/format/Formatter$BytesResult;
 Landroid/text/format/Formatter$BytesResult;-><init>(Ljava/lang/String;Ljava/lang/String;J)V
 Landroid/text/format/Formatter$BytesResult;->roundedBytes:J
 Landroid/text/format/Formatter$BytesResult;->units:Ljava/lang/String;
@@ -75117,7 +70099,6 @@
 Landroid/text/format/Formatter;->SECONDS_PER_DAY:I
 Landroid/text/format/Formatter;->SECONDS_PER_HOUR:I
 Landroid/text/format/Formatter;->SECONDS_PER_MINUTE:I
-Landroid/text/format/Time$TimeCalculator;
 Landroid/text/format/Time$TimeCalculator;-><init>(Ljava/lang/String;)V
 Landroid/text/format/Time$TimeCalculator;->compare(Landroid/text/format/Time$TimeCalculator;Landroid/text/format/Time$TimeCalculator;)I
 Landroid/text/format/Time$TimeCalculator;->copyFieldsFromTime(Landroid/text/format/Time;)V
@@ -75145,14 +70126,12 @@
 Landroid/text/format/Time;->Y_M_D:Ljava/lang/String;
 Landroid/text/format/Time;->Y_M_D_T_H_M_S_000:Ljava/lang/String;
 Landroid/text/format/Time;->Y_M_D_T_H_M_S_000_Z:Ljava/lang/String;
-Landroid/text/GraphicsOperations;
 Landroid/text/GraphicsOperations;->drawText(Landroid/graphics/BaseCanvas;IIFFLandroid/graphics/Paint;)V
 Landroid/text/GraphicsOperations;->drawTextRun(Landroid/graphics/BaseCanvas;IIIIFFZLandroid/graphics/Paint;)V
 Landroid/text/GraphicsOperations;->getTextRunAdvances(IIIIZ[FILandroid/graphics/Paint;)F
 Landroid/text/GraphicsOperations;->getTextRunCursor(IIIIILandroid/graphics/Paint;)I
 Landroid/text/GraphicsOperations;->getTextWidths(II[FLandroid/graphics/Paint;)I
 Landroid/text/GraphicsOperations;->measureText(IILandroid/graphics/Paint;)F
-Landroid/text/Html$HtmlParser;
 Landroid/text/Html$HtmlParser;-><init>()V
 Landroid/text/Html$HtmlParser;->schema:Lorg/ccil/cowan/tagsoup/HTMLSchema;
 Landroid/text/Html;-><init>()V
@@ -75166,44 +70145,31 @@
 Landroid/text/Html;->withinDiv(Ljava/lang/StringBuilder;Landroid/text/Spanned;III)V
 Landroid/text/Html;->withinHtml(Ljava/lang/StringBuilder;Landroid/text/Spanned;I)V
 Landroid/text/Html;->withinParagraph(Ljava/lang/StringBuilder;Landroid/text/Spanned;II)V
-Landroid/text/Hyphenator;
 Landroid/text/Hyphenator;-><init>()V
 Landroid/text/Hyphenator;->init()V
 Landroid/text/Hyphenator;->nInit()V
-Landroid/text/InputFilter$AllCaps$CharSequenceWrapper;
 Landroid/text/InputFilter$AllCaps$CharSequenceWrapper;-><init>(Ljava/lang/CharSequence;II)V
 Landroid/text/InputFilter$AllCaps$CharSequenceWrapper;->mEnd:I
 Landroid/text/InputFilter$AllCaps$CharSequenceWrapper;->mLength:I
 Landroid/text/InputFilter$AllCaps$CharSequenceWrapper;->mSource:Ljava/lang/CharSequence;
 Landroid/text/InputFilter$AllCaps$CharSequenceWrapper;->mStart:I
 Landroid/text/InputFilter$AllCaps;->mLocale:Ljava/util/Locale;
-Landroid/text/Layout$Alignment;-><init>()V
-Landroid/text/Layout$BreakStrategy;
-Landroid/text/Layout$Direction;
 Landroid/text/Layout$Directions;-><init>([I)V
 Landroid/text/Layout$Directions;->mDirections:[I
-Landroid/text/Layout$Ellipsizer;
 Landroid/text/Layout$Ellipsizer;-><init>(Ljava/lang/CharSequence;)V
 Landroid/text/Layout$Ellipsizer;->mLayout:Landroid/text/Layout;
 Landroid/text/Layout$Ellipsizer;->mMethod:Landroid/text/TextUtils$TruncateAt;
 Landroid/text/Layout$Ellipsizer;->mText:Ljava/lang/CharSequence;
 Landroid/text/Layout$Ellipsizer;->mWidth:I
-Landroid/text/Layout$HorizontalMeasurementProvider;
-Landroid/text/Layout$HorizontalMeasurementProvider;-><init>(IZ)V
 Landroid/text/Layout$HorizontalMeasurementProvider;->get(I)F
 Landroid/text/Layout$HorizontalMeasurementProvider;->init()V
 Landroid/text/Layout$HorizontalMeasurementProvider;->mHorizontals:[F
 Landroid/text/Layout$HorizontalMeasurementProvider;->mLine:I
 Landroid/text/Layout$HorizontalMeasurementProvider;->mLineStartOffset:I
 Landroid/text/Layout$HorizontalMeasurementProvider;->mPrimary:Z
-Landroid/text/Layout$HyphenationFrequency;
-Landroid/text/Layout$JustificationMode;
-Landroid/text/Layout$SelectionRectangleConsumer;
 Landroid/text/Layout$SelectionRectangleConsumer;->accept(FFFFI)V
-Landroid/text/Layout$SpannedEllipsizer;
 Landroid/text/Layout$SpannedEllipsizer;-><init>(Ljava/lang/CharSequence;)V
 Landroid/text/Layout$SpannedEllipsizer;->mSpanned:Landroid/text/Spanned;
-Landroid/text/Layout$TabStops;
 Landroid/text/Layout$TabStops;-><init>(I[Ljava/lang/Object;)V
 Landroid/text/Layout$TabStops;->mIncrement:I
 Landroid/text/Layout$TabStops;->mNumStops:I
@@ -75211,7 +70177,6 @@
 Landroid/text/Layout$TabStops;->nextDefaultStop(FI)F
 Landroid/text/Layout$TabStops;->nextTab(F)F
 Landroid/text/Layout$TabStops;->reset(I[Ljava/lang/Object;)V
-Landroid/text/Layout$TextSelectionLayout;
 Landroid/text/Layout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;Landroid/text/TextDirectionHeuristic;FF)V
 Landroid/text/Layout;->addSelection(IIIIILandroid/text/Layout$SelectionRectangleConsumer;)V
 Landroid/text/Layout;->DIR_REQUEST_DEFAULT_RTL:I
@@ -75272,7 +70237,6 @@
 Landroid/text/LoginFilter;-><init>()V
 Landroid/text/LoginFilter;-><init>(Z)V
 Landroid/text/LoginFilter;->mAppendInvalid:Z
-Landroid/text/MeasuredParagraph;
 Landroid/text/MeasuredParagraph;-><init>()V
 Landroid/text/MeasuredParagraph;->applyMetricsAffectingSpan(Landroid/text/TextPaint;[Landroid/text/style/MetricAffectingSpan;IIJ)V
 Landroid/text/MeasuredParagraph;->applyReplacementRun(Landroid/text/style/ReplacementSpan;IIJ)V
@@ -75328,7 +70292,6 @@
 Landroid/text/MeasuredParagraph;->sPool:Landroid/util/Pools$SynchronizedPool;
 Landroid/text/MeasuredParagraph;->sRegistry:Llibcore/util/NativeAllocationRegistry;
 Landroid/text/MeasuredParagraph;->unbindNativeObject()V
-Landroid/text/method/AllCapsTransformationMethod;
 Landroid/text/method/AllCapsTransformationMethod;->mEnabled:Z
 Landroid/text/method/AllCapsTransformationMethod;->mLocale:Ljava/util/Locale;
 Landroid/text/method/AllCapsTransformationMethod;->setLengthChangesAllowed(Z)V
@@ -75373,8 +70336,6 @@
 Landroid/text/method/BaseMovementMethod;->scrollRight(Landroid/widget/TextView;Landroid/text/Spannable;I)Z
 Landroid/text/method/BaseMovementMethod;->scrollTop(Landroid/widget/TextView;Landroid/text/Spannable;)Z
 Landroid/text/method/BaseMovementMethod;->scrollUp(Landroid/widget/TextView;Landroid/text/Spannable;I)Z
-Landroid/text/method/CharacterPickerDialog$OptionsAdapter;
-Landroid/text/method/CharacterPickerDialog$OptionsAdapter;-><init>(Landroid/content/Context;)V
 Landroid/text/method/CharacterPickerDialog;->mCancelButton:Landroid/widget/Button;
 Landroid/text/method/CharacterPickerDialog;->mInflater:Landroid/view/LayoutInflater;
 Landroid/text/method/CharacterPickerDialog;->mInsert:Z
@@ -75461,8 +70422,6 @@
 Landroid/text/method/MetaKeyKeyListener;->SELECTING:Ljava/lang/Object;
 Landroid/text/method/MetaKeyKeyListener;->SYM:Ljava/lang/Object;
 Landroid/text/method/MetaKeyKeyListener;->USED:I
-Landroid/text/method/MultiTapKeyListener$Timeout;
-Landroid/text/method/MultiTapKeyListener$Timeout;-><init>(Landroid/text/Editable;)V
 Landroid/text/method/MultiTapKeyListener$Timeout;->mBuffer:Landroid/text/Editable;
 Landroid/text/method/MultiTapKeyListener;->mAutoText:Z
 Landroid/text/method/MultiTapKeyListener;->mCapitalize:Landroid/text/method/TextKeyListener$Capitalize;
@@ -75476,17 +70435,13 @@
 Landroid/text/method/NumberKeyListener;->collectionToArray(Ljava/util/Collection;)[C
 Landroid/text/method/NumberKeyListener;->DATE_TIME_FORMAT_SYMBOLS:Ljava/lang/String;
 Landroid/text/method/NumberKeyListener;->SINGLE_QUOTE:C
-Landroid/text/method/PasswordTransformationMethod$PasswordCharSequence;
 Landroid/text/method/PasswordTransformationMethod$PasswordCharSequence;-><init>(Ljava/lang/CharSequence;)V
 Landroid/text/method/PasswordTransformationMethod$PasswordCharSequence;->mSource:Ljava/lang/CharSequence;
-Landroid/text/method/PasswordTransformationMethod$ViewReference;
 Landroid/text/method/PasswordTransformationMethod$ViewReference;-><init>(Landroid/view/View;)V
-Landroid/text/method/PasswordTransformationMethod$Visible;
 Landroid/text/method/PasswordTransformationMethod$Visible;-><init>(Landroid/text/Spannable;Landroid/text/method/PasswordTransformationMethod;)V
 Landroid/text/method/PasswordTransformationMethod$Visible;->mText:Landroid/text/Spannable;
 Landroid/text/method/PasswordTransformationMethod$Visible;->mTransformer:Landroid/text/method/PasswordTransformationMethod;
 Landroid/text/method/PasswordTransformationMethod;->removeVisibleSpans(Landroid/text/Spannable;)V
-Landroid/text/method/QwertyKeyListener$Replaced;
 Landroid/text/method/QwertyKeyListener$Replaced;-><init>([C)V
 Landroid/text/method/QwertyKeyListener$Replaced;->mText:[C
 Landroid/text/method/QwertyKeyListener;-><init>(Landroid/text/method/TextKeyListener$Capitalize;ZZ)V
@@ -75499,25 +70454,19 @@
 Landroid/text/method/QwertyKeyListener;->showCharacterPicker(Landroid/view/View;Landroid/text/Editable;CZI)Z
 Landroid/text/method/QwertyKeyListener;->sInstance:[Landroid/text/method/QwertyKeyListener;
 Landroid/text/method/QwertyKeyListener;->toTitleCase(Ljava/lang/String;)Ljava/lang/String;
-Landroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;
 Landroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;-><init>(Ljava/lang/CharSequence;[C[C)V
 Landroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;->mOriginal:[C
 Landroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;->mReplacement:[C
 Landroid/text/method/ReplacementTransformationMethod$ReplacementCharSequence;->mSource:Ljava/lang/CharSequence;
-Landroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;
 Landroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;-><init>(Landroid/text/Spanned;[C[C)V
 Landroid/text/method/ReplacementTransformationMethod$SpannedReplacementCharSequence;->mSpanned:Landroid/text/Spanned;
 Landroid/text/method/ScrollingMovementMethod;->sInstance:Landroid/text/method/ScrollingMovementMethod;
 Landroid/text/method/SingleLineTransformationMethod;->ORIGINAL:[C
 Landroid/text/method/SingleLineTransformationMethod;->REPLACEMENT:[C
 Landroid/text/method/SingleLineTransformationMethod;->sInstance:Landroid/text/method/SingleLineTransformationMethod;
-Landroid/text/method/TextKeyListener$Capitalize;-><init>()V
-Landroid/text/method/TextKeyListener$NullKeyListener;
 Landroid/text/method/TextKeyListener$NullKeyListener;-><init>()V
 Landroid/text/method/TextKeyListener$NullKeyListener;->getInstance()Landroid/text/method/TextKeyListener$NullKeyListener;
 Landroid/text/method/TextKeyListener$NullKeyListener;->sInstance:Landroid/text/method/TextKeyListener$NullKeyListener;
-Landroid/text/method/TextKeyListener$SettingsObserver;
-Landroid/text/method/TextKeyListener$SettingsObserver;-><init>()V
 Landroid/text/method/TextKeyListener;->ACTIVE:Ljava/lang/Object;
 Landroid/text/method/TextKeyListener;->AUTO_CAP:I
 Landroid/text/method/TextKeyListener;->AUTO_PERIOD:I
@@ -75544,7 +70493,6 @@
 Landroid/text/method/TimeKeyListener;->SKELETON_24HOUR:Ljava/lang/String;
 Landroid/text/method/TimeKeyListener;->sLock:Ljava/lang/Object;
 Landroid/text/method/TimeKeyListener;->SYMBOLS_TO_IGNORE:Ljava/lang/String;
-Landroid/text/method/Touch$DragState;
 Landroid/text/method/Touch$DragState;-><init>(FFII)V
 Landroid/text/method/Touch$DragState;->mFarEnough:Z
 Landroid/text/method/Touch$DragState;->mScrollX:I
@@ -75553,8 +70501,6 @@
 Landroid/text/method/Touch$DragState;->mX:F
 Landroid/text/method/Touch$DragState;->mY:F
 Landroid/text/method/Touch;-><init>()V
-Landroid/text/method/TransformationMethod2;
-Landroid/text/method/WordIterator;
 Landroid/text/method/WordIterator;-><init>()V
 Landroid/text/method/WordIterator;->checkOffsetIsValid(I)V
 Landroid/text/method/WordIterator;->getBeginning(IZ)I
@@ -75570,7 +70516,6 @@
 Landroid/text/method/WordIterator;->mIterator:Landroid/icu/text/BreakIterator;
 Landroid/text/method/WordIterator;->mStart:I
 Landroid/text/method/WordIterator;->WINDOW_WIDTH:I
-Landroid/text/PackedIntVector;
 Landroid/text/PackedIntVector;-><init>(I)V
 Landroid/text/PackedIntVector;->adjustValuesBelow(III)V
 Landroid/text/PackedIntVector;->deleteAt(II)V
@@ -75589,7 +70534,6 @@
 Landroid/text/PackedIntVector;->setValueInternal(III)V
 Landroid/text/PackedIntVector;->size()I
 Landroid/text/PackedIntVector;->width()I
-Landroid/text/PackedObjectVector;
 Landroid/text/PackedObjectVector;-><init>(I)V
 Landroid/text/PackedObjectVector;->deleteAt(II)V
 Landroid/text/PackedObjectVector;->dump()V
@@ -75607,7 +70551,6 @@
 Landroid/text/PackedObjectVector;->width()I
 Landroid/text/ParcelableSpan;->getSpanTypeIdInternal()I
 Landroid/text/ParcelableSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
-Landroid/text/PrecomputedText$ParagraphInfo;
 Landroid/text/PrecomputedText$ParagraphInfo;-><init>(ILandroid/text/MeasuredParagraph;)V
 Landroid/text/PrecomputedText$ParagraphInfo;->measured:Landroid/text/MeasuredParagraph;
 Landroid/text/PrecomputedText$ParagraphInfo;->paragraphEnd:I
@@ -75637,15 +70580,11 @@
 Landroid/text/PrecomputedText;->mParams:Landroid/text/PrecomputedText$Params;
 Landroid/text/PrecomputedText;->mStart:I
 Landroid/text/PrecomputedText;->mText:Landroid/text/SpannableString;
-Landroid/text/Selection$END;
 Landroid/text/Selection$END;-><init>()V
-Landroid/text/Selection$MEMORY;
 Landroid/text/Selection$MEMORY;-><init>()V
-Landroid/text/Selection$PositionIterator;
 Landroid/text/Selection$PositionIterator;->DONE:I
 Landroid/text/Selection$PositionIterator;->following(I)I
 Landroid/text/Selection$PositionIterator;->preceding(I)I
-Landroid/text/Selection$START;
 Landroid/text/Selection$START;-><init>()V
 Landroid/text/Selection;-><init>()V
 Landroid/text/Selection;->chooseHorizontal(Landroid/text/Layout;III)I
@@ -75722,14 +70661,12 @@
 Landroid/text/SpannableStringBuilder;->TAG:Ljava/lang/String;
 Landroid/text/SpannableStringBuilder;->treeRoot()I
 Landroid/text/SpannableStringBuilder;->updatedIntervalBound(IIIIZZ)I
-Landroid/text/SpannableStringInternal;
 Landroid/text/SpannableStringInternal;-><init>(Ljava/lang/CharSequence;IIZ)V
 Landroid/text/SpannableStringInternal;->copySpans(Landroid/text/SpannableStringInternal;IIZ)V
 Landroid/text/SpannableStringInternal;->copySpans(Landroid/text/Spanned;IIZ)V
 Landroid/text/SpannableStringInternal;->removeSpan(Ljava/lang/Object;I)V
 Landroid/text/SpannedString;-><init>(Ljava/lang/CharSequence;II)V
 Landroid/text/SpannedString;-><init>(Ljava/lang/CharSequence;Z)V
-Landroid/text/SpanSet;
 Landroid/text/SpanSet;-><init>(Ljava/lang/Class;)V
 Landroid/text/SpanSet;->classType:Ljava/lang/Class;
 Landroid/text/SpanSet;->getNextTransition(II)I
@@ -75772,7 +70709,6 @@
 Landroid/text/StaticLayout$Builder;->setText(Ljava/lang/CharSequence;II)Landroid/text/StaticLayout$Builder;
 Landroid/text/StaticLayout$Builder;->setWidth(I)Landroid/text/StaticLayout$Builder;
 Landroid/text/StaticLayout$Builder;->sPool:Landroid/util/Pools$SynchronizedPool;
-Landroid/text/StaticLayout$LineBreaks;
 Landroid/text/StaticLayout$LineBreaks;-><init>()V
 Landroid/text/StaticLayout$LineBreaks;->INITIAL_SIZE:I
 Landroid/text/StaticLayout;-><init>(Landroid/text/StaticLayout$Builder;)V
@@ -75819,7 +70755,6 @@
 Landroid/text/style/AbsoluteSizeSpan;->mDip:Z
 Landroid/text/style/AbsoluteSizeSpan;->mSize:I
 Landroid/text/style/AbsoluteSizeSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
-Landroid/text/style/AccessibilityClickableSpan;
 Landroid/text/style/AccessibilityClickableSpan;-><init>(I)V
 Landroid/text/style/AccessibilityClickableSpan;-><init>(Landroid/os/Parcel;)V
 Landroid/text/style/AccessibilityClickableSpan;->copyConnectionDataFrom(Landroid/view/accessibility/AccessibilityNodeInfo;)V
@@ -75831,7 +70766,6 @@
 Landroid/text/style/AccessibilityClickableSpan;->mSourceNodeId:J
 Landroid/text/style/AccessibilityClickableSpan;->mWindowId:I
 Landroid/text/style/AccessibilityClickableSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
-Landroid/text/style/AccessibilityURLSpan;
 Landroid/text/style/AccessibilityURLSpan;-><init>(Landroid/os/Parcel;)V
 Landroid/text/style/AccessibilityURLSpan;-><init>(Landroid/text/style/URLSpan;)V
 Landroid/text/style/AccessibilityURLSpan;->copyConnectionDataFrom(Landroid/view/accessibility/AccessibilityNodeInfo;)V
@@ -75851,7 +70785,6 @@
 Landroid/text/style/BulletSpan;->STANDARD_BULLET_RADIUS:I
 Landroid/text/style/BulletSpan;->STANDARD_COLOR:I
 Landroid/text/style/BulletSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
-Landroid/text/style/CharacterStyle$Passthrough;
 Landroid/text/style/CharacterStyle$Passthrough;-><init>(Landroid/text/style/CharacterStyle;)V
 Landroid/text/style/CharacterStyle$Passthrough;->mStyle:Landroid/text/style/CharacterStyle;
 Landroid/text/style/ClickableSpan;->getId()I
@@ -75883,7 +70816,6 @@
 Landroid/text/style/LocaleSpan;->mLocales:Landroid/os/LocaleList;
 Landroid/text/style/LocaleSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
 Landroid/text/style/MaskFilterSpan;->mFilter:Landroid/graphics/MaskFilter;
-Landroid/text/style/MetricAffectingSpan$Passthrough;
 Landroid/text/style/MetricAffectingSpan$Passthrough;-><init>(Landroid/text/style/MetricAffectingSpan;)V
 Landroid/text/style/MetricAffectingSpan$Passthrough;->mStyle:Landroid/text/style/MetricAffectingSpan;
 Landroid/text/style/QuoteSpan;->getSpanTypeIdInternal()I
@@ -75898,7 +70830,6 @@
 Landroid/text/style/ScaleXSpan;->getSpanTypeIdInternal()I
 Landroid/text/style/ScaleXSpan;->mProportion:F
 Landroid/text/style/ScaleXSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
-Landroid/text/style/SpellCheckSpan;
 Landroid/text/style/SpellCheckSpan;->getSpanTypeIdInternal()I
 Landroid/text/style/SpellCheckSpan;->mSpellCheckInProgress:Z
 Landroid/text/style/SpellCheckSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
@@ -75910,7 +70841,6 @@
 Landroid/text/style/StyleSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
 Landroid/text/style/SubscriptSpan;->getSpanTypeIdInternal()I
 Landroid/text/style/SubscriptSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
-Landroid/text/style/SuggestionRangeSpan;
 Landroid/text/style/SuggestionRangeSpan;->getSpanTypeIdInternal()I
 Landroid/text/style/SuggestionRangeSpan;->mBackgroundColor:I
 Landroid/text/style/SuggestionRangeSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
@@ -75959,28 +70889,22 @@
 Landroid/text/style/URLSpan;->getSpanTypeIdInternal()I
 Landroid/text/style/URLSpan;->mURL:Ljava/lang/String;
 Landroid/text/style/URLSpan;->writeToParcelInternal(Landroid/os/Parcel;I)V
-Landroid/text/TextDirectionHeuristics$AnyStrong;
 Landroid/text/TextDirectionHeuristics$AnyStrong;-><init>(Z)V
 Landroid/text/TextDirectionHeuristics$AnyStrong;->checkRtl(Ljava/lang/CharSequence;II)I
 Landroid/text/TextDirectionHeuristics$AnyStrong;->INSTANCE_LTR:Landroid/text/TextDirectionHeuristics$AnyStrong;
 Landroid/text/TextDirectionHeuristics$AnyStrong;->INSTANCE_RTL:Landroid/text/TextDirectionHeuristics$AnyStrong;
 Landroid/text/TextDirectionHeuristics$AnyStrong;->mLookForRtl:Z
-Landroid/text/TextDirectionHeuristics$FirstStrong;
 Landroid/text/TextDirectionHeuristics$FirstStrong;-><init>()V
 Landroid/text/TextDirectionHeuristics$FirstStrong;->checkRtl(Ljava/lang/CharSequence;II)I
 Landroid/text/TextDirectionHeuristics$FirstStrong;->INSTANCE:Landroid/text/TextDirectionHeuristics$FirstStrong;
-Landroid/text/TextDirectionHeuristics$TextDirectionAlgorithm;
 Landroid/text/TextDirectionHeuristics$TextDirectionAlgorithm;->checkRtl(Ljava/lang/CharSequence;II)I
-Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;
 Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;-><init>(Landroid/text/TextDirectionHeuristics$TextDirectionAlgorithm;)V
 Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;->defaultIsRtl()Z
 Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;->doCheck(Ljava/lang/CharSequence;II)Z
 Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;->mAlgorithm:Landroid/text/TextDirectionHeuristics$TextDirectionAlgorithm;
-Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicInternal;
 Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicInternal;-><init>(Landroid/text/TextDirectionHeuristics$TextDirectionAlgorithm;Z)V
 Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicInternal;->defaultIsRtl()Z
 Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicInternal;->mDefaultIsRtl:Z
-Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicLocale;
 Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicLocale;-><init>()V
 Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicLocale;->defaultIsRtl()Z
 Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicLocale;->INSTANCE:Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicLocale;
@@ -75988,7 +70912,6 @@
 Landroid/text/TextDirectionHeuristics;->STATE_FALSE:I
 Landroid/text/TextDirectionHeuristics;->STATE_TRUE:I
 Landroid/text/TextDirectionHeuristics;->STATE_UNKNOWN:I
-Landroid/text/TextLine$DecorationInfo;
 Landroid/text/TextLine$DecorationInfo;-><init>()V
 Landroid/text/TextLine$DecorationInfo;->copyInfo()Landroid/text/TextLine$DecorationInfo;
 Landroid/text/TextLine$DecorationInfo;->end:I
@@ -75998,7 +70921,6 @@
 Landroid/text/TextLine$DecorationInfo;->start:I
 Landroid/text/TextLine$DecorationInfo;->underlineColor:I
 Landroid/text/TextLine$DecorationInfo;->underlineThickness:F
-Landroid/text/TextLine;
 Landroid/text/TextLine;-><init>()V
 Landroid/text/TextLine;->adjustHyphenEdit(III)I
 Landroid/text/TextLine;->countStretchableSpaces(II)I
@@ -76044,7 +70966,6 @@
 Landroid/text/TextLine;->updateMetrics(Landroid/graphics/Paint$FontMetricsInt;IIIII)V
 Landroid/text/TextPaint;->getUnderlineThickness()F
 Landroid/text/TextPaint;->hasEqualAttributes(Landroid/text/TextPaint;)Z
-Landroid/text/TextUtils$Reverser;
 Landroid/text/TextUtils$Reverser;-><init>(Ljava/lang/CharSequence;II)V
 Landroid/text/TextUtils$Reverser;->mEnd:I
 Landroid/text/TextUtils$Reverser;->mSource:Ljava/lang/CharSequence;
@@ -76053,7 +70974,6 @@
 Landroid/text/TextUtils$SimpleStringSplitter;->mLength:I
 Landroid/text/TextUtils$SimpleStringSplitter;->mPosition:I
 Landroid/text/TextUtils$SimpleStringSplitter;->mString:Ljava/lang/String;
-Landroid/text/TextUtils$TruncateAt;-><init>()V
 Landroid/text/TextUtils;-><init>()V
 Landroid/text/TextUtils;->ABSOLUTE_SIZE_SPAN:I
 Landroid/text/TextUtils;->ACCESSIBILITY_CLICKABLE_SPAN:I
@@ -76116,7 +71036,6 @@
 Landroid/text/TextUtils;->URL_SPAN:I
 Landroid/text/TextUtils;->wrap(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/text/TextUtils;->writeWhere(Landroid/os/Parcel;Landroid/text/Spanned;Ljava/lang/Object;)V
-Landroid/text/util/Linkify$LinkifyMask;
 Landroid/text/util/Linkify;->addLinkMovementMethod(Landroid/widget/TextView;)V
 Landroid/text/util/Linkify;->addLinks(Landroid/text/Spannable;ILandroid/content/Context;)Z
 Landroid/text/util/Linkify;->addLinksAsync(Landroid/text/Spannable;Landroid/view/textclassifier/TextClassifier;I)Ljava/util/concurrent/Future;
@@ -76132,7 +71051,6 @@
 Landroid/text/util/Linkify;->makeUrl(Ljava/lang/String;[Ljava/lang/String;Ljava/util/regex/Matcher;Landroid/text/util/Linkify$TransformFilter;)Ljava/lang/String;
 Landroid/text/util/Linkify;->PHONE_NUMBER_MINIMUM_DIGITS:I
 Landroid/text/util/Linkify;->pruneOverlaps(Ljava/util/ArrayList;)V
-Landroid/text/util/LinkSpec;
 Landroid/text/util/LinkSpec;-><init>()V
 Landroid/text/util/LinkSpec;->end:I
 Landroid/text/util/LinkSpec;->start:I
@@ -76153,7 +71071,6 @@
 Landroid/transition/ArcMotion;->mMinimumVerticalTangent:F
 Landroid/transition/ArcMotion;->toTangent(F)F
 Landroid/transition/AutoTransition;->init()V
-Landroid/transition/ChangeBounds$ViewBounds;
 Landroid/transition/ChangeBounds$ViewBounds;-><init>(Landroid/view/View;)V
 Landroid/transition/ChangeBounds$ViewBounds;->mBottom:I
 Landroid/transition/ChangeBounds$ViewBounds;->mBottomRightCalls:I
@@ -76200,7 +71117,6 @@
 Landroid/transition/ChangeScroll;->PROPERTIES:[Ljava/lang/String;
 Landroid/transition/ChangeScroll;->PROPNAME_SCROLL_X:Ljava/lang/String;
 Landroid/transition/ChangeScroll;->PROPNAME_SCROLL_Y:Ljava/lang/String;
-Landroid/transition/ChangeText;
 Landroid/transition/ChangeText;-><init>()V
 Landroid/transition/ChangeText;->captureValues(Landroid/transition/TransitionValues;)V
 Landroid/transition/ChangeText;->CHANGE_BEHAVIOR_IN:I
@@ -76217,12 +71133,10 @@
 Landroid/transition/ChangeText;->setChangeBehavior(I)Landroid/transition/ChangeText;
 Landroid/transition/ChangeText;->setSelection(Landroid/widget/EditText;II)V
 Landroid/transition/ChangeText;->sTransitionProperties:[Ljava/lang/String;
-Landroid/transition/ChangeTransform$GhostListener;
 Landroid/transition/ChangeTransform$GhostListener;-><init>(Landroid/view/View;Landroid/view/View;Landroid/view/GhostView;)V
 Landroid/transition/ChangeTransform$GhostListener;->mGhostView:Landroid/view/GhostView;
 Landroid/transition/ChangeTransform$GhostListener;->mStartView:Landroid/view/View;
 Landroid/transition/ChangeTransform$GhostListener;->mView:Landroid/view/View;
-Landroid/transition/ChangeTransform$PathAnimatorMatrix;
 Landroid/transition/ChangeTransform$PathAnimatorMatrix;-><init>(Landroid/view/View;[F)V
 Landroid/transition/ChangeTransform$PathAnimatorMatrix;->getMatrix()Landroid/graphics/Matrix;
 Landroid/transition/ChangeTransform$PathAnimatorMatrix;->mMatrix:Landroid/graphics/Matrix;
@@ -76233,7 +71147,6 @@
 Landroid/transition/ChangeTransform$PathAnimatorMatrix;->setAnimationMatrix()V
 Landroid/transition/ChangeTransform$PathAnimatorMatrix;->setTranslation(Landroid/graphics/PointF;)V
 Landroid/transition/ChangeTransform$PathAnimatorMatrix;->setValues([F)V
-Landroid/transition/ChangeTransform$Transforms;
 Landroid/transition/ChangeTransform$Transforms;-><init>(Landroid/view/View;)V
 Landroid/transition/ChangeTransform$Transforms;->restore(Landroid/view/View;)V
 Landroid/transition/ChangeTransform$Transforms;->rotationX:F
@@ -76267,7 +71180,6 @@
 Landroid/transition/CircularPropagation;->distance(FFFF)D
 Landroid/transition/CircularPropagation;->mPropagationSpeed:F
 Landroid/transition/CircularPropagation;->TAG:Ljava/lang/String;
-Landroid/transition/Crossfade;
 Landroid/transition/Crossfade;-><init>()V
 Landroid/transition/Crossfade;->captureValues(Landroid/transition/TransitionValues;)V
 Landroid/transition/Crossfade;->FADE_BEHAVIOR_CROSSFADE:I
@@ -76294,7 +71206,6 @@
 Landroid/transition/Explode;->sAccelerate:Landroid/animation/TimeInterpolator;
 Landroid/transition/Explode;->sDecelerate:Landroid/animation/TimeInterpolator;
 Landroid/transition/Explode;->TAG:Ljava/lang/String;
-Landroid/transition/Fade$FadeAnimatorListener;
 Landroid/transition/Fade$FadeAnimatorListener;-><init>(Landroid/view/View;)V
 Landroid/transition/Fade$FadeAnimatorListener;->mLayerTypeChanged:Z
 Landroid/transition/Fade$FadeAnimatorListener;->mView:Landroid/view/View;
@@ -76306,13 +71217,11 @@
 Landroid/transition/PatternPathMotion;->mOriginalPatternPath:Landroid/graphics/Path;
 Landroid/transition/PatternPathMotion;->mPatternPath:Landroid/graphics/Path;
 Landroid/transition/PatternPathMotion;->mTempMatrix:Landroid/graphics/Matrix;
-Landroid/transition/Recolor;
 Landroid/transition/Recolor;-><init>()V
 Landroid/transition/Recolor;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/transition/Recolor;->captureValues(Landroid/transition/TransitionValues;)V
 Landroid/transition/Recolor;->PROPNAME_BACKGROUND:Ljava/lang/String;
 Landroid/transition/Recolor;->PROPNAME_TEXT_COLOR:Ljava/lang/String;
-Landroid/transition/Rotate;
 Landroid/transition/Rotate;-><init>()V
 Landroid/transition/Rotate;->PROPNAME_ROTATION:Ljava/lang/String;
 Landroid/transition/Scene;-><init>(Landroid/view/ViewGroup;ILandroid/content/Context;)V
@@ -76327,16 +71236,12 @@
 Landroid/transition/SidePropagation;->mPropagationSpeed:F
 Landroid/transition/SidePropagation;->mSide:I
 Landroid/transition/SidePropagation;->TAG:Ljava/lang/String;
-Landroid/transition/Slide$CalculateSlide;
 Landroid/transition/Slide$CalculateSlide;->getGoneX(Landroid/view/ViewGroup;Landroid/view/View;F)F
 Landroid/transition/Slide$CalculateSlide;->getGoneY(Landroid/view/ViewGroup;Landroid/view/View;F)F
-Landroid/transition/Slide$CalculateSlideHorizontal;
 Landroid/transition/Slide$CalculateSlideHorizontal;-><init>()V
 Landroid/transition/Slide$CalculateSlideHorizontal;->getGoneY(Landroid/view/ViewGroup;Landroid/view/View;F)F
-Landroid/transition/Slide$CalculateSlideVertical;
 Landroid/transition/Slide$CalculateSlideVertical;-><init>()V
 Landroid/transition/Slide$CalculateSlideVertical;->getGoneX(Landroid/view/ViewGroup;Landroid/view/View;F)F
-Landroid/transition/Slide$GravityFlag;
 Landroid/transition/Slide;->captureValues(Landroid/transition/TransitionValues;)V
 Landroid/transition/Slide;->mSlideCalculator:Landroid/transition/Slide$CalculateSlide;
 Landroid/transition/Slide;->mSlideEdge:I
@@ -76352,14 +71257,12 @@
 Landroid/transition/Slide;->sDecelerate:Landroid/animation/TimeInterpolator;
 Landroid/transition/Slide;->setSlideFraction(F)V
 Landroid/transition/Slide;->TAG:Ljava/lang/String;
-Landroid/transition/Transition$AnimationInfo;
 Landroid/transition/Transition$AnimationInfo;-><init>(Landroid/view/View;Ljava/lang/String;Landroid/transition/Transition;Landroid/view/WindowId;Landroid/transition/TransitionValues;)V
 Landroid/transition/Transition$AnimationInfo;->name:Ljava/lang/String;
 Landroid/transition/Transition$AnimationInfo;->transition:Landroid/transition/Transition;
 Landroid/transition/Transition$AnimationInfo;->values:Landroid/transition/TransitionValues;
 Landroid/transition/Transition$AnimationInfo;->view:Landroid/view/View;
 Landroid/transition/Transition$AnimationInfo;->windowId:Landroid/view/WindowId;
-Landroid/transition/Transition$ArrayListManager;
 Landroid/transition/Transition$ArrayListManager;-><init>()V
 Landroid/transition/Transition$ArrayListManager;->add(Ljava/util/ArrayList;Ljava/lang/Object;)Ljava/util/ArrayList;
 Landroid/transition/Transition$ArrayListManager;->remove(Ljava/util/ArrayList;Ljava/lang/Object;)Ljava/util/ArrayList;
@@ -76450,7 +71353,6 @@
 Landroid/transition/TransitionInflater;->mContext:Landroid/content/Context;
 Landroid/transition/TransitionInflater;->sConstructors:Landroid/util/ArrayMap;
 Landroid/transition/TransitionInflater;->sConstructorSignature:[Ljava/lang/Class;
-Landroid/transition/TransitionManager$MultiListener;
 Landroid/transition/TransitionManager$MultiListener;-><init>(Landroid/transition/Transition;Landroid/view/ViewGroup;)V
 Landroid/transition/TransitionManager$MultiListener;->mSceneRoot:Landroid/view/ViewGroup;
 Landroid/transition/TransitionManager$MultiListener;->mTransition:Landroid/transition/Transition;
@@ -76466,7 +71368,6 @@
 Landroid/transition/TransitionManager;->sceneChangeSetup(Landroid/view/ViewGroup;Landroid/transition/Transition;)V
 Landroid/transition/TransitionManager;->sDefaultTransition:Landroid/transition/Transition;
 Landroid/transition/TransitionManager;->setDefaultTransition(Landroid/transition/Transition;)V
-Landroid/transition/TransitionSet$TransitionSetListener;
 Landroid/transition/TransitionSet$TransitionSetListener;-><init>(Landroid/transition/TransitionSet;)V
 Landroid/transition/TransitionSet$TransitionSetListener;->mTransitionSet:Landroid/transition/TransitionSet;
 Landroid/transition/TransitionSet;->cancel()V
@@ -76484,28 +71385,23 @@
 Landroid/transition/TransitionSet;->setSceneRoot(Landroid/view/ViewGroup;)Landroid/transition/TransitionSet;
 Landroid/transition/TransitionSet;->setupStartEndListeners()V
 Landroid/transition/TransitionSet;->toString(Ljava/lang/String;)Ljava/lang/String;
-Landroid/transition/TransitionUtils$MatrixEvaluator;
 Landroid/transition/TransitionUtils$MatrixEvaluator;-><init>()V
 Landroid/transition/TransitionUtils$MatrixEvaluator;->evaluate(FLandroid/graphics/Matrix;Landroid/graphics/Matrix;)Landroid/graphics/Matrix;
 Landroid/transition/TransitionUtils$MatrixEvaluator;->mTempEndValues:[F
 Landroid/transition/TransitionUtils$MatrixEvaluator;->mTempMatrix:Landroid/graphics/Matrix;
 Landroid/transition/TransitionUtils$MatrixEvaluator;->mTempStartValues:[F
-Landroid/transition/TransitionUtils;
 Landroid/transition/TransitionUtils;-><init>()V
 Landroid/transition/TransitionUtils;->copyViewImage(Landroid/view/ViewGroup;Landroid/view/View;Landroid/view/View;)Landroid/view/View;
 Landroid/transition/TransitionUtils;->createDrawableBitmap(Landroid/graphics/drawable/Drawable;Landroid/view/View;)Landroid/graphics/Bitmap;
 Landroid/transition/TransitionUtils;->createViewBitmap(Landroid/view/View;Landroid/graphics/Matrix;Landroid/graphics/RectF;Landroid/view/ViewGroup;)Landroid/graphics/Bitmap;
 Landroid/transition/TransitionUtils;->MAX_IMAGE_SIZE:I
 Landroid/transition/TransitionUtils;->mergeAnimators(Landroid/animation/Animator;Landroid/animation/Animator;)Landroid/animation/Animator;
-Landroid/transition/TransitionUtils;->mergeTransitions([[Landroid/transition/Transition;)Landroid/transition/Transition;
 Landroid/transition/TransitionValues;->targetedTransitions:Ljava/util/ArrayList;
-Landroid/transition/TransitionValuesMaps;
 Landroid/transition/TransitionValuesMaps;-><init>()V
 Landroid/transition/TransitionValuesMaps;->idValues:Landroid/util/SparseArray;
 Landroid/transition/TransitionValuesMaps;->itemIdValues:Landroid/util/LongSparseArray;
 Landroid/transition/TransitionValuesMaps;->nameValues:Landroid/util/ArrayMap;
 Landroid/transition/TransitionValuesMaps;->viewValues:Landroid/util/ArrayMap;
-Landroid/transition/Visibility$DisappearListener;
 Landroid/transition/Visibility$DisappearListener;-><init>(Landroid/view/View;IZ)V
 Landroid/transition/Visibility$DisappearListener;->hideViewWhenNotCanceled()V
 Landroid/transition/Visibility$DisappearListener;->mCanceled:Z
@@ -76515,7 +71411,6 @@
 Landroid/transition/Visibility$DisappearListener;->mSuppressLayout:Z
 Landroid/transition/Visibility$DisappearListener;->mView:Landroid/view/View;
 Landroid/transition/Visibility$DisappearListener;->suppressLayout(Z)V
-Landroid/transition/Visibility$VisibilityInfo;
 Landroid/transition/Visibility$VisibilityInfo;-><init>()V
 Landroid/transition/Visibility$VisibilityInfo;->endParent:Landroid/view/ViewGroup;
 Landroid/transition/Visibility$VisibilityInfo;->endVisibility:I
@@ -76523,7 +71418,6 @@
 Landroid/transition/Visibility$VisibilityInfo;->startParent:Landroid/view/ViewGroup;
 Landroid/transition/Visibility$VisibilityInfo;->startVisibility:I
 Landroid/transition/Visibility$VisibilityInfo;->visibilityChange:Z
-Landroid/transition/Visibility$VisibilityMode;
 Landroid/transition/Visibility;->captureValues(Landroid/transition/TransitionValues;)V
 Landroid/transition/Visibility;->getVisibilityChangeInfo(Landroid/transition/TransitionValues;Landroid/transition/TransitionValues;)Landroid/transition/Visibility$VisibilityInfo;
 Landroid/transition/Visibility;->mMode:I
@@ -76537,17 +71431,14 @@
 Landroid/transition/VisibilityPropagation;->PROPNAME_VIEW_CENTER:Ljava/lang/String;
 Landroid/transition/VisibilityPropagation;->PROPNAME_VISIBILITY:Ljava/lang/String;
 Landroid/transition/VisibilityPropagation;->VISIBILITY_PROPAGATION_VALUES:[Ljava/lang/String;
-Landroid/util/AggStats;
 Landroid/util/AggStats;-><init>()V
 Landroid/util/AggStats;->AVERAGE:J
 Landroid/util/AggStats;->MAX:J
 Landroid/util/AggStats;->MIN:J
 Landroid/util/AndroidException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;ZZ)V
-Landroid/util/apk/ApkSignatureSchemeV2Verifier$VerifiedSigner;
 Landroid/util/apk/ApkSignatureSchemeV2Verifier$VerifiedSigner;-><init>([[Ljava/security/cert/X509Certificate;[B)V
 Landroid/util/apk/ApkSignatureSchemeV2Verifier$VerifiedSigner;->certs:[[Ljava/security/cert/X509Certificate;
 Landroid/util/apk/ApkSignatureSchemeV2Verifier$VerifiedSigner;->verityRootHash:[B
-Landroid/util/apk/ApkSignatureSchemeV2Verifier;
 Landroid/util/apk/ApkSignatureSchemeV2Verifier;-><init>()V
 Landroid/util/apk/ApkSignatureSchemeV2Verifier;->APK_SIGNATURE_SCHEME_V2_BLOCK_ID:I
 Landroid/util/apk/ApkSignatureSchemeV2Verifier;->findSignature(Ljava/io/RandomAccessFile;)Landroid/util/apk/SignatureInfo;
@@ -76565,18 +71456,14 @@
 Landroid/util/apk/ApkSignatureSchemeV2Verifier;->verify(Ljava/lang/String;Z)Landroid/util/apk/ApkSignatureSchemeV2Verifier$VerifiedSigner;
 Landroid/util/apk/ApkSignatureSchemeV2Verifier;->verifyAdditionalAttributes(Ljava/nio/ByteBuffer;)V
 Landroid/util/apk/ApkSignatureSchemeV2Verifier;->verifySigner(Ljava/nio/ByteBuffer;Ljava/util/Map;Ljava/security/cert/CertificateFactory;)[Ljava/security/cert/X509Certificate;
-Landroid/util/apk/ApkSignatureSchemeV3Verifier$PlatformNotSupportedException;
 Landroid/util/apk/ApkSignatureSchemeV3Verifier$PlatformNotSupportedException;-><init>(Ljava/lang/String;)V
-Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedProofOfRotation;
 Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedProofOfRotation;-><init>(Ljava/util/List;Ljava/util/List;)V
 Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedProofOfRotation;->certs:Ljava/util/List;
 Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedProofOfRotation;->flagsList:Ljava/util/List;
-Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
 Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;-><init>([Ljava/security/cert/X509Certificate;Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedProofOfRotation;)V
 Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;->certs:[Ljava/security/cert/X509Certificate;
 Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;->por:Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedProofOfRotation;
 Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;->verityRootHash:[B
-Landroid/util/apk/ApkSignatureSchemeV3Verifier;
 Landroid/util/apk/ApkSignatureSchemeV3Verifier;-><init>()V
 Landroid/util/apk/ApkSignatureSchemeV3Verifier;->APK_SIGNATURE_SCHEME_V3_BLOCK_ID:I
 Landroid/util/apk/ApkSignatureSchemeV3Verifier;->findSignature(Ljava/io/RandomAccessFile;)Landroid/util/apk/SignatureInfo;
@@ -76595,12 +71482,10 @@
 Landroid/util/apk/ApkSignatureSchemeV3Verifier;->verifyAdditionalAttributes(Ljava/nio/ByteBuffer;Ljava/util/List;Ljava/security/cert/CertificateFactory;)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
 Landroid/util/apk/ApkSignatureSchemeV3Verifier;->verifyProofOfRotationStruct(Ljava/nio/ByteBuffer;Ljava/security/cert/CertificateFactory;)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedProofOfRotation;
 Landroid/util/apk/ApkSignatureSchemeV3Verifier;->verifySigner(Ljava/nio/ByteBuffer;Ljava/util/Map;Ljava/security/cert/CertificateFactory;)Landroid/util/apk/ApkSignatureSchemeV3Verifier$VerifiedSigner;
-Landroid/util/apk/ApkSignatureVerifier$Result;
 Landroid/util/apk/ApkSignatureVerifier$Result;-><init>([[Ljava/security/cert/Certificate;[Landroid/content/pm/Signature;I)V
 Landroid/util/apk/ApkSignatureVerifier$Result;->certs:[[Ljava/security/cert/Certificate;
 Landroid/util/apk/ApkSignatureVerifier$Result;->signatureSchemeVersion:I
 Landroid/util/apk/ApkSignatureVerifier$Result;->sigs:[Landroid/content/pm/Signature;
-Landroid/util/apk/ApkSignatureVerifier;
 Landroid/util/apk/ApkSignatureVerifier;-><init>()V
 Landroid/util/apk/ApkSignatureVerifier;->closeQuietly(Landroid/util/jar/StrictJarFile;)V
 Landroid/util/apk/ApkSignatureVerifier;->convertToSignatures([[Ljava/security/cert/Certificate;)[Landroid/content/pm/Signature;
@@ -76613,16 +71498,13 @@
 Landroid/util/apk/ApkSignatureVerifier;->sBuffer:Ljava/util/concurrent/atomic/AtomicReference;
 Landroid/util/apk/ApkSignatureVerifier;->verify(Ljava/lang/String;I)Landroid/content/pm/PackageParser$SigningDetails;
 Landroid/util/apk/ApkSignatureVerifier;->verifyV1Signature(Ljava/lang/String;Z)Landroid/content/pm/PackageParser$SigningDetails;
-Landroid/util/apk/ByteBufferFactory;
 Landroid/util/apk/ByteBufferFactory;->create(I)Ljava/nio/ByteBuffer;
-Landroid/util/apk/SignatureInfo;
 Landroid/util/apk/SignatureInfo;-><init>(Ljava/nio/ByteBuffer;JJJLjava/nio/ByteBuffer;)V
 Landroid/util/apk/SignatureInfo;->apkSigningBlockOffset:J
 Landroid/util/apk/SignatureInfo;->centralDirOffset:J
 Landroid/util/apk/SignatureInfo;->eocd:Ljava/nio/ByteBuffer;
 Landroid/util/apk/SignatureInfo;->eocdOffset:J
 Landroid/util/apk/SignatureInfo;->signatureBlock:Ljava/nio/ByteBuffer;
-Landroid/util/apk/SignatureNotFoundException;
 Landroid/util/apk/SignatureNotFoundException;-><init>(Ljava/lang/String;)V
 Landroid/util/apk/SignatureNotFoundException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
 Landroid/util/ArrayMap;-><init>(IZ)V
@@ -76660,21 +71542,17 @@
 Landroid/util/AtomicFile;->startWrite(J)Ljava/io/FileOutputStream;
 Landroid/util/AtomicFile;->truncate()V
 Landroid/util/AtomicFile;->write(Ljava/util/function/Consumer;)V
-Landroid/util/BackupUtils$BadVersionException;
 Landroid/util/BackupUtils$BadVersionException;-><init>(Ljava/lang/String;)V
-Landroid/util/BackupUtils;
 Landroid/util/BackupUtils;-><init>()V
 Landroid/util/BackupUtils;->NOT_NULL:I
 Landroid/util/BackupUtils;->NULL:I
 Landroid/util/BackupUtils;->readString(Ljava/io/DataInputStream;)Ljava/lang/String;
 Landroid/util/BackupUtils;->writeString(Ljava/io/DataOutputStream;Ljava/lang/String;)V
-Landroid/util/Base64$Coder;
 Landroid/util/Base64$Coder;-><init>()V
 Landroid/util/Base64$Coder;->maxOutputSize(I)I
 Landroid/util/Base64$Coder;->op:I
 Landroid/util/Base64$Coder;->output:[B
 Landroid/util/Base64$Coder;->process([BIIZ)Z
-Landroid/util/Base64$Decoder;
 Landroid/util/Base64$Decoder;-><init>(I[B)V
 Landroid/util/Base64$Decoder;->alphabet:[I
 Landroid/util/Base64$Decoder;->DECODE:[I
@@ -76685,7 +71563,6 @@
 Landroid/util/Base64$Decoder;->SKIP:I
 Landroid/util/Base64$Decoder;->state:I
 Landroid/util/Base64$Decoder;->value:I
-Landroid/util/Base64$Encoder;
 Landroid/util/Base64$Encoder;-><init>(I[B)V
 Landroid/util/Base64$Encoder;->alphabet:[B
 Landroid/util/Base64$Encoder;->count:I
@@ -76716,8 +71593,6 @@
 Landroid/util/Base64OutputStream;->flags:I
 Landroid/util/Base64OutputStream;->flushBuffer()V
 Landroid/util/Base64OutputStream;->internalWrite([BIIZ)V
-Landroid/util/BinaryLogEntry$Elem;
-Landroid/util/BinaryLogEntry$Elem;-><init>()V
 Landroid/util/BinaryLogEntry$Elem;->EVENT_TYPE_FLOAT:I
 Landroid/util/BinaryLogEntry$Elem;->EVENT_TYPE_INT:I
 Landroid/util/BinaryLogEntry$Elem;->EVENT_TYPE_LIST:I
@@ -76730,7 +71605,6 @@
 Landroid/util/BinaryLogEntry$Elem;->VAL_INT32:J
 Landroid/util/BinaryLogEntry$Elem;->VAL_INT64:J
 Landroid/util/BinaryLogEntry$Elem;->VAL_STRING:J
-Landroid/util/BinaryLogEntry;
 Landroid/util/BinaryLogEntry;-><init>()V
 Landroid/util/BinaryLogEntry;->ELEMS:J
 Landroid/util/BinaryLogEntry;->NANOSEC:J
@@ -76739,7 +71613,6 @@
 Landroid/util/BinaryLogEntry;->TAG_INDEX:J
 Landroid/util/BinaryLogEntry;->TID:J
 Landroid/util/BinaryLogEntry;->UID:J
-Landroid/util/ByteStringUtils;
 Landroid/util/ByteStringUtils;-><init>()V
 Landroid/util/ByteStringUtils;->fromHexToByteArray(Ljava/lang/String;)[B
 Landroid/util/ByteStringUtils;->getIndex(C)I
@@ -76747,8 +71620,6 @@
 Landroid/util/ByteStringUtils;->HEX_UPPERCASE_ARRAY:[C
 Landroid/util/ByteStringUtils;->toHexString([B)Ljava/lang/String;
 Landroid/util/Config;-><init>()V
-Landroid/util/DataUnit;
-Landroid/util/DataUnit;-><init>()V
 Landroid/util/DataUnit;->GIBIBYTES:Landroid/util/DataUnit;
 Landroid/util/DataUnit;->GIGABYTES:Landroid/util/DataUnit;
 Landroid/util/DataUnit;->KIBIBYTES:Landroid/util/DataUnit;
@@ -76758,7 +71629,6 @@
 Landroid/util/DataUnit;->toBytes(J)J
 Landroid/util/DataUnit;->valueOf(Ljava/lang/String;)Landroid/util/DataUnit;
 Landroid/util/DataUnit;->values()[Landroid/util/DataUnit;
-Landroid/util/DayOfMonthCursor;
 Landroid/util/DayOfMonthCursor;-><init>(IIII)V
 Landroid/util/DayOfMonthCursor;->down()Z
 Landroid/util/DayOfMonthCursor;->getSelectedColumn()I
@@ -76786,7 +71656,6 @@
 Landroid/util/DisplayMetrics;->noncompatScaledDensity:F
 Landroid/util/DisplayMetrics;->noncompatXdpi:F
 Landroid/util/DisplayMetrics;->noncompatYdpi:F
-Landroid/util/Duration;
 Landroid/util/Duration;-><init>()V
 Landroid/util/Duration;->END_MS:J
 Landroid/util/Duration;->START_MS:J
@@ -76819,8 +71688,6 @@
 Landroid/util/EventLog;->TAG:Ljava/lang/String;
 Landroid/util/EventLog;->TAGS_FILE:Ljava/lang/String;
 Landroid/util/EventLog;->TAG_PATTERN:Ljava/lang/String;
-Landroid/util/EventLogTag$ValueDescriptor;
-Landroid/util/EventLogTag$ValueDescriptor;-><init>()V
 Landroid/util/EventLogTag$ValueDescriptor;->ALLOCATIONS:I
 Landroid/util/EventLogTag$ValueDescriptor;->BYTES:I
 Landroid/util/EventLogTag$ValueDescriptor;->FLOAT:I
@@ -76838,16 +71705,13 @@
 Landroid/util/EventLogTag$ValueDescriptor;->UNIT:J
 Landroid/util/EventLogTag$ValueDescriptor;->UNKNOWN:I
 Landroid/util/EventLogTag$ValueDescriptor;->UNSET:I
-Landroid/util/EventLogTag;
 Landroid/util/EventLogTag;-><init>()V
 Landroid/util/EventLogTag;->TAG_NAME:J
 Landroid/util/EventLogTag;->TAG_NUMBER:J
 Landroid/util/EventLogTag;->VALUE_DESCRIPTORS:J
-Landroid/util/EventLogTagMapProto;
 Landroid/util/EventLogTagMapProto;-><init>()V
 Landroid/util/EventLogTagMapProto;->EVENT_LOG_TAGS:J
 Landroid/util/EventLogTags$Description;-><init>(ILjava/lang/String;)V
-Landroid/util/ExceptionUtils;
 Landroid/util/ExceptionUtils;-><init>()V
 Landroid/util/ExceptionUtils;->appendCause(Ljava/lang/Throwable;Ljava/lang/Throwable;)Ljava/lang/Throwable;
 Landroid/util/ExceptionUtils;->getCompleteMessage(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/lang/String;
@@ -76858,15 +71722,12 @@
 Landroid/util/ExceptionUtils;->propagate(Ljava/lang/Throwable;Ljava/lang/Class;)Ljava/lang/RuntimeException;
 Landroid/util/ExceptionUtils;->propagateIfInstanceOf(Ljava/lang/Throwable;Ljava/lang/Class;)V
 Landroid/util/ExceptionUtils;->wrap(Ljava/io/IOException;)Ljava/lang/RuntimeException;
-Landroid/util/FastImmutableArraySet$FastIterator;
 Landroid/util/FastImmutableArraySet$FastIterator;-><init>([Ljava/lang/Object;)V
 Landroid/util/FastImmutableArraySet$FastIterator;->mContents:[Ljava/lang/Object;
 Landroid/util/FastImmutableArraySet$FastIterator;->mIndex:I
-Landroid/util/FastImmutableArraySet;
 Landroid/util/FastImmutableArraySet;-><init>([Ljava/lang/Object;)V
 Landroid/util/FastImmutableArraySet;->mContents:[Ljava/lang/Object;
 Landroid/util/FastImmutableArraySet;->mIterator:Landroid/util/FastImmutableArraySet$FastIterator;
-Landroid/util/FeatureFlagUtils;
 Landroid/util/FeatureFlagUtils;-><init>()V
 Landroid/util/FeatureFlagUtils;->DEFAULT_FLAGS:Ljava/util/Map;
 Landroid/util/FeatureFlagUtils;->FFLAG_OVERRIDE_PREFIX:Ljava/lang/String;
@@ -76891,7 +71752,6 @@
 Landroid/util/Half;->FP32_SIGNIFICAND_MASK:I
 Landroid/util/Half;->FP32_SIGN_SHIFT:I
 Landroid/util/Half;->mValue:S
-Landroid/util/IconDrawableFactory;
 Landroid/util/IconDrawableFactory;-><init>(Landroid/content/Context;Z)V
 Landroid/util/IconDrawableFactory;->CORP_BADGE_COLORS:[I
 Landroid/util/IconDrawableFactory;->getBadgedIcon(Landroid/content/pm/ApplicationInfo;I)Landroid/graphics/drawable/Drawable;
@@ -76904,7 +71764,6 @@
 Landroid/util/IconDrawableFactory;->mUm:Landroid/os/UserManager;
 Landroid/util/IconDrawableFactory;->needsBadging(Landroid/content/pm/ApplicationInfo;I)Z
 Landroid/util/IconDrawableFactory;->newInstance(Landroid/content/Context;Z)Landroid/util/IconDrawableFactory;
-Landroid/util/IntArray;
 Landroid/util/IntArray;-><init>()V
 Landroid/util/IntArray;-><init>(I)V
 Landroid/util/IntArray;-><init>([II)V
@@ -76969,8 +71828,6 @@
 Landroid/util/JsonReader;->value:Ljava/lang/String;
 Landroid/util/JsonReader;->valueLength:I
 Landroid/util/JsonReader;->valuePos:I
-Landroid/util/JsonScope;
-Landroid/util/JsonScope;-><init>()V
 Landroid/util/JsonScope;->CLOSED:Landroid/util/JsonScope;
 Landroid/util/JsonScope;->DANGLING_NAME:Landroid/util/JsonScope;
 Landroid/util/JsonScope;->EMPTY_ARRAY:Landroid/util/JsonScope;
@@ -76981,7 +71838,6 @@
 Landroid/util/JsonScope;->NONEMPTY_OBJECT:Landroid/util/JsonScope;
 Landroid/util/JsonScope;->valueOf(Ljava/lang/String;)Landroid/util/JsonScope;
 Landroid/util/JsonScope;->values()[Landroid/util/JsonScope;
-Landroid/util/JsonToken;-><init>()V
 Landroid/util/JsonWriter;->beforeName()V
 Landroid/util/JsonWriter;->beforeValue(Z)V
 Landroid/util/JsonWriter;->close(Landroid/util/JsonScope;Landroid/util/JsonScope;Ljava/lang/String;)Landroid/util/JsonWriter;
@@ -76995,7 +71851,6 @@
 Landroid/util/JsonWriter;->separator:Ljava/lang/String;
 Landroid/util/JsonWriter;->stack:Ljava/util/List;
 Landroid/util/JsonWriter;->string(Ljava/lang/String;)V
-Landroid/util/KeyValueListParser;
 Landroid/util/KeyValueListParser;-><init>(C)V
 Landroid/util/KeyValueListParser;->getBoolean(Ljava/lang/String;Z)Z
 Landroid/util/KeyValueListParser;->getDurationMillis(Ljava/lang/String;J)J
@@ -77009,9 +71864,6 @@
 Landroid/util/KeyValueListParser;->mValues:Landroid/util/ArrayMap;
 Landroid/util/KeyValueListParser;->setString(Ljava/lang/String;)V
 Landroid/util/KeyValueListParser;->size()I
-Landroid/util/KeyValueSettingObserver$SettingObserver;
-Landroid/util/KeyValueSettingObserver$SettingObserver;-><init>(Landroid/os/Handler;)V
-Landroid/util/KeyValueSettingObserver;
 Landroid/util/KeyValueSettingObserver;-><init>(Landroid/os/Handler;Landroid/content/ContentResolver;Landroid/net/Uri;)V
 Landroid/util/KeyValueSettingObserver;->getSettingValue(Landroid/content/ContentResolver;)Ljava/lang/String;
 Landroid/util/KeyValueSettingObserver;->mObserver:Landroid/database/ContentObserver;
@@ -77023,16 +71875,13 @@
 Landroid/util/KeyValueSettingObserver;->stop()V
 Landroid/util/KeyValueSettingObserver;->TAG:Ljava/lang/String;
 Landroid/util/KeyValueSettingObserver;->update(Landroid/util/KeyValueListParser;)V
-Landroid/util/LauncherIcons$ShadowDrawable$MyConstantState;
 Landroid/util/LauncherIcons$ShadowDrawable$MyConstantState;-><init>(Landroid/graphics/Bitmap;Landroid/graphics/drawable/Drawable$ConstantState;)V
 Landroid/util/LauncherIcons$ShadowDrawable$MyConstantState;->mChildState:Landroid/graphics/drawable/Drawable$ConstantState;
 Landroid/util/LauncherIcons$ShadowDrawable$MyConstantState;->mPaint:Landroid/graphics/Paint;
 Landroid/util/LauncherIcons$ShadowDrawable$MyConstantState;->mShadow:Landroid/graphics/Bitmap;
-Landroid/util/LauncherIcons$ShadowDrawable;
 Landroid/util/LauncherIcons$ShadowDrawable;-><init>(Landroid/graphics/Bitmap;Landroid/graphics/drawable/Drawable;)V
 Landroid/util/LauncherIcons$ShadowDrawable;-><init>(Landroid/util/LauncherIcons$ShadowDrawable$MyConstantState;)V
 Landroid/util/LauncherIcons$ShadowDrawable;->mState:Landroid/util/LauncherIcons$ShadowDrawable$MyConstantState;
-Landroid/util/LauncherIcons;
 Landroid/util/LauncherIcons;-><init>(Landroid/content/Context;)V
 Landroid/util/LauncherIcons;->AMBIENT_SHADOW_ALPHA:I
 Landroid/util/LauncherIcons;->getBadgedDrawable(Landroid/graphics/drawable/Drawable;II)Landroid/graphics/drawable/Drawable;
@@ -77047,28 +71896,22 @@
 Landroid/util/LauncherIcons;->wrapIconDrawableWithShadow(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;
 Landroid/util/LayoutDirection;-><init>()V
 Landroid/util/LayoutDirection;->UNDEFINED:I
-Landroid/util/LocalLog$ReadOnlyLocalLog;
 Landroid/util/LocalLog$ReadOnlyLocalLog;-><init>(Landroid/util/LocalLog;)V
 Landroid/util/LocalLog$ReadOnlyLocalLog;->mLog:Landroid/util/LocalLog;
 Landroid/util/LocalLog$ReadOnlyLocalLog;->reverseDump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
-Landroid/util/LocalLog;
 Landroid/util/LocalLog;->append(Ljava/lang/String;)V
 Landroid/util/LocalLog;->mLog:Ljava/util/Deque;
 Landroid/util/LocalLog;->mMaxLines:I
 Landroid/util/LocalLog;->reverseDump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V
-Landroid/util/Log$ImmediateLogWriter;
 Landroid/util/Log$ImmediateLogWriter;-><init>(IILjava/lang/String;)V
 Landroid/util/Log$ImmediateLogWriter;->bufID:I
 Landroid/util/Log$ImmediateLogWriter;->getWritten()I
 Landroid/util/Log$ImmediateLogWriter;->priority:I
 Landroid/util/Log$ImmediateLogWriter;->tag:Ljava/lang/String;
 Landroid/util/Log$ImmediateLogWriter;->written:I
-Landroid/util/Log$PreloadHolder;
 Landroid/util/Log$PreloadHolder;-><init>()V
 Landroid/util/Log$PreloadHolder;->LOGGER_ENTRY_MAX_PAYLOAD:I
-Landroid/util/Log$TerribleFailure;
 Landroid/util/Log$TerribleFailure;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
-Landroid/util/Log$TerribleFailureHandler;
 Landroid/util/Log$TerribleFailureHandler;->onTerribleFailure(Ljava/lang/String;Landroid/util/Log$TerribleFailure;Z)V
 Landroid/util/Log;-><init>()V
 Landroid/util/Log;->logger_entry_max_payload_native()I
@@ -77086,18 +71929,15 @@
 Landroid/util/LogPrinter;->mBuffer:I
 Landroid/util/LogPrinter;->mPriority:I
 Landroid/util/LogPrinter;->mTag:Ljava/lang/String;
-Landroid/util/LogProto;
 Landroid/util/LogProto;-><init>()V
 Landroid/util/LogProto;->BINARY_LOGS:J
 Landroid/util/LogProto;->TEXT_LOGS:J
-Landroid/util/LogWriter;
 Landroid/util/LogWriter;-><init>(ILjava/lang/String;I)V
 Landroid/util/LogWriter;->flushBuilder()V
 Landroid/util/LogWriter;->mBuffer:I
 Landroid/util/LogWriter;->mBuilder:Ljava/lang/StringBuilder;
 Landroid/util/LogWriter;->mPriority:I
 Landroid/util/LogWriter;->mTag:Ljava/lang/String;
-Landroid/util/LongArray;
 Landroid/util/LongArray;-><init>(I)V
 Landroid/util/LongArray;-><init>([JI)V
 Landroid/util/LongArray;->add(J)V
@@ -77123,7 +71963,6 @@
 Landroid/util/LongSparseArray;->mKeys:[J
 Landroid/util/LongSparseArray;->mSize:I
 Landroid/util/LongSparseArray;->mValues:[Ljava/lang/Object;
-Landroid/util/LongSparseLongArray;
 Landroid/util/LongSparseLongArray;-><init>()V
 Landroid/util/LongSparseLongArray;-><init>(I)V
 Landroid/util/LongSparseLongArray;->append(JJ)V
@@ -77146,30 +71985,19 @@
 Landroid/util/LruCache;->putCount:I
 Landroid/util/LruCache;->safeSizeOf(Ljava/lang/Object;Ljava/lang/Object;)I
 Landroid/util/LruCache;->size:I
-Landroid/util/MapCollections$ArrayIterator;
-Landroid/util/MapCollections$ArrayIterator;-><init>(I)V
 Landroid/util/MapCollections$ArrayIterator;->mCanRemove:Z
 Landroid/util/MapCollections$ArrayIterator;->mIndex:I
 Landroid/util/MapCollections$ArrayIterator;->mOffset:I
 Landroid/util/MapCollections$ArrayIterator;->mSize:I
-Landroid/util/MapCollections$EntrySet;
-Landroid/util/MapCollections$EntrySet;-><init>()V
 Landroid/util/MapCollections$EntrySet;->add(Ljava/util/Map$Entry;)Z
 Landroid/util/MapCollections$EntrySet;->addAll(Ljava/util/Collection;)Z
-Landroid/util/MapCollections$KeySet;
-Landroid/util/MapCollections$KeySet;-><init>()V
 Landroid/util/MapCollections$KeySet;->add(Ljava/lang/Object;)Z
 Landroid/util/MapCollections$KeySet;->addAll(Ljava/util/Collection;)Z
-Landroid/util/MapCollections$MapIterator;
-Landroid/util/MapCollections$MapIterator;-><init>()V
 Landroid/util/MapCollections$MapIterator;->mEnd:I
 Landroid/util/MapCollections$MapIterator;->mEntryValid:Z
 Landroid/util/MapCollections$MapIterator;->mIndex:I
-Landroid/util/MapCollections$ValuesCollection;
-Landroid/util/MapCollections$ValuesCollection;-><init>()V
 Landroid/util/MapCollections$ValuesCollection;->add(Ljava/lang/Object;)Z
 Landroid/util/MapCollections$ValuesCollection;->addAll(Ljava/util/Collection;)Z
-Landroid/util/MapCollections;
 Landroid/util/MapCollections;-><init>()V
 Landroid/util/MapCollections;->colClear()V
 Landroid/util/MapCollections;->colGetEntry(II)Ljava/lang/Object;
@@ -77192,7 +72020,6 @@
 Landroid/util/MapCollections;->retainAllHelper(Ljava/util/Map;Ljava/util/Collection;)Z
 Landroid/util/MapCollections;->toArrayHelper(I)[Ljava/lang/Object;
 Landroid/util/MapCollections;->toArrayHelper([Ljava/lang/Object;I)[Ljava/lang/Object;
-Landroid/util/MathUtils;
 Landroid/util/MathUtils;-><init>()V
 Landroid/util/MathUtils;->acos(F)F
 Landroid/util/MathUtils;->addOrThrow(II)I
@@ -77226,7 +72053,6 @@
 Landroid/util/MathUtils;->sq(F)F
 Landroid/util/MathUtils;->sqrt(F)F
 Landroid/util/MathUtils;->tan(F)F
-Landroid/util/MemoryIntArray;
 Landroid/util/MemoryIntArray;-><init>(I)V
 Landroid/util/MemoryIntArray;-><init>(Landroid/os/Parcel;)V
 Landroid/util/MemoryIntArray;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -77251,7 +72077,6 @@
 Landroid/util/MemoryIntArray;->set(II)V
 Landroid/util/MemoryIntArray;->size()I
 Landroid/util/MemoryIntArray;->TAG:Ljava/lang/String;
-Landroid/util/MergedConfiguration;
 Landroid/util/MergedConfiguration;-><init>()V
 Landroid/util/MergedConfiguration;-><init>(Landroid/content/res/Configuration;)V
 Landroid/util/MergedConfiguration;-><init>(Landroid/content/res/Configuration;Landroid/content/res/Configuration;)V
@@ -77278,7 +72103,6 @@
 Landroid/util/MonthDisplayHelper;->mOffset:I
 Landroid/util/MonthDisplayHelper;->mWeekStartDay:I
 Landroid/util/MonthDisplayHelper;->recalculate()V
-Landroid/util/NtpTrustedTime;
 Landroid/util/NtpTrustedTime;-><init>(Ljava/lang/String;J)V
 Landroid/util/NtpTrustedTime;->forceRefresh(Landroid/net/Network;)Z
 Landroid/util/NtpTrustedTime;->getCacheAge()J
@@ -77294,21 +72118,18 @@
 Landroid/util/NtpTrustedTime;->sContext:Landroid/content/Context;
 Landroid/util/NtpTrustedTime;->sSingleton:Landroid/util/NtpTrustedTime;
 Landroid/util/NtpTrustedTime;->TAG:Ljava/lang/String;
-Landroid/util/PackageUtils;
 Landroid/util/PackageUtils;-><init>()V
 Landroid/util/PackageUtils;->computeSha256Digest([B)Ljava/lang/String;
 Landroid/util/PackageUtils;->computeSha256DigestBytes([B)[B
 Landroid/util/PackageUtils;->computeSignaturesSha256Digest([Landroid/content/pm/Signature;)Ljava/lang/String;
 Landroid/util/PackageUtils;->computeSignaturesSha256Digest([Ljava/lang/String;)Ljava/lang/String;
 Landroid/util/PackageUtils;->computeSignaturesSha256Digests([Landroid/content/pm/Signature;)[Ljava/lang/String;
-Landroid/util/PathParser$PathData;
 Landroid/util/PathParser$PathData;-><init>()V
 Landroid/util/PathParser$PathData;-><init>(Landroid/util/PathParser$PathData;)V
 Landroid/util/PathParser$PathData;-><init>(Ljava/lang/String;)V
 Landroid/util/PathParser$PathData;->getNativePtr()J
 Landroid/util/PathParser$PathData;->mNativePathData:J
 Landroid/util/PathParser$PathData;->setPathData(Landroid/util/PathParser$PathData;)V
-Landroid/util/PathParser;
 Landroid/util/PathParser;-><init>()V
 Landroid/util/PathParser;->canMorph(Landroid/util/PathParser$PathData;Landroid/util/PathParser$PathData;)Z
 Landroid/util/PathParser;->createPathFromPathData(Landroid/graphics/Path;Landroid/util/PathParser$PathData;)V
@@ -77350,16 +72171,11 @@
 Landroid/util/Patterns;->WEB_URL_WITHOUT_PROTOCOL:Ljava/lang/String;
 Landroid/util/Patterns;->WEB_URL_WITH_PROTOCOL:Ljava/lang/String;
 Landroid/util/Patterns;->WORD_BOUNDARY:Ljava/lang/String;
-Landroid/util/Pools$Pool;
-Landroid/util/Pools$SimplePool;
 Landroid/util/Pools$SimplePool;->isInPool(Ljava/lang/Object;)Z
 Landroid/util/Pools$SimplePool;->mPoolSize:I
-Landroid/util/Pools$SynchronizedPool;
 Landroid/util/Pools$SynchronizedPool;-><init>(ILjava/lang/Object;)V
 Landroid/util/Pools$SynchronizedPool;->mLock:Ljava/lang/Object;
-Landroid/util/Pools;
 Landroid/util/Pools;-><init>()V
-Landroid/util/PrefixPrinter;
 Landroid/util/PrefixPrinter;-><init>(Landroid/util/Printer;Ljava/lang/String;)V
 Landroid/util/PrefixPrinter;->create(Landroid/util/Printer;Ljava/lang/String;)Landroid/util/Printer;
 Landroid/util/PrefixPrinter;->mPrefix:Ljava/lang/String;
@@ -77440,7 +72256,6 @@
 Landroid/util/proto/ProtoOutputStream;->writeUInt64Impl(IJ)V
 Landroid/util/proto/ProtoOutputStream;->writeUnsignedVarintFromSignedInt(I)V
 Landroid/util/proto/ProtoOutputStream;->writeUtf8String(ILjava/lang/String;)V
-Landroid/util/proto/ProtoUtils;
 Landroid/util/proto/ProtoUtils;-><init>()V
 Landroid/util/proto/ProtoUtils;->toAggStatsProto(Landroid/util/proto/ProtoOutputStream;JJJJ)V
 Landroid/util/proto/ProtoUtils;->toDuration(Landroid/util/proto/ProtoOutputStream;JJJ)V
@@ -77453,17 +72268,12 @@
 Landroid/util/Rational;->isNegInf()Z
 Landroid/util/Rational;->isPosInf()Z
 Landroid/util/Rational;->toFloat()F
-Landroid/util/RecurrenceRule$NonrecurringIterator;
-Landroid/util/RecurrenceRule$NonrecurringIterator;-><init>()V
 Landroid/util/RecurrenceRule$NonrecurringIterator;->hasNext:Z
-Landroid/util/RecurrenceRule$RecurringIterator;
-Landroid/util/RecurrenceRule$RecurringIterator;-><init>()V
 Landroid/util/RecurrenceRule$RecurringIterator;->cycleEnd:Ljava/time/ZonedDateTime;
 Landroid/util/RecurrenceRule$RecurringIterator;->cycleStart:Ljava/time/ZonedDateTime;
 Landroid/util/RecurrenceRule$RecurringIterator;->i:I
 Landroid/util/RecurrenceRule$RecurringIterator;->roundBoundaryTime(Ljava/time/ZonedDateTime;)Ljava/time/ZonedDateTime;
 Landroid/util/RecurrenceRule$RecurringIterator;->updateCycle()V
-Landroid/util/RecurrenceRule;
 Landroid/util/RecurrenceRule;-><init>(Landroid/os/Parcel;)V
 Landroid/util/RecurrenceRule;-><init>(Ljava/io/DataInputStream;)V
 Landroid/util/RecurrenceRule;-><init>(Ljava/time/ZonedDateTime;Ljava/time/ZonedDateTime;Ljava/time/Period;)V
@@ -77483,7 +72293,6 @@
 Landroid/util/RecurrenceRule;->TAG:Ljava/lang/String;
 Landroid/util/RecurrenceRule;->VERSION_INIT:I
 Landroid/util/RecurrenceRule;->writeToStream(Ljava/io/DataOutputStream;)V
-Landroid/util/Singleton;
 Landroid/util/Singleton;->create()Ljava/lang/Object;
 Landroid/util/Size;->invalidSize(Ljava/lang/String;)Ljava/lang/NumberFormatException;
 Landroid/util/Size;->mHeight:I
@@ -77491,7 +72300,6 @@
 Landroid/util/SizeF;->invalidSizeF(Ljava/lang/String;)Ljava/lang/NumberFormatException;
 Landroid/util/SizeF;->mHeight:F
 Landroid/util/SizeF;->mWidth:F
-Landroid/util/Slog;
 Landroid/util/Slog;-><init>()V
 Landroid/util/Slog;->i(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
 Landroid/util/Slog;->v(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
@@ -77511,7 +72319,6 @@
 Landroid/util/SparseLongArray;->mSize:I
 Landroid/util/SparseLongArray;->mValues:[J
 Landroid/util/SparseLongArray;->removeAtRange(II)V
-Landroid/util/SparseSetArray;
 Landroid/util/SparseSetArray;-><init>()V
 Landroid/util/SparseSetArray;->add(ILjava/lang/Object;)Z
 Landroid/util/SparseSetArray;->contains(ILjava/lang/Object;)Z
@@ -77522,19 +72329,16 @@
 Landroid/util/SparseSetArray;->size()I
 Landroid/util/SparseSetArray;->sizeAt(I)I
 Landroid/util/SparseSetArray;->valueAt(II)Ljava/lang/Object;
-Landroid/util/Spline$LinearSpline;
 Landroid/util/Spline$LinearSpline;-><init>([F[F)V
 Landroid/util/Spline$LinearSpline;->interpolate(F)F
 Landroid/util/Spline$LinearSpline;->mM:[F
 Landroid/util/Spline$LinearSpline;->mX:[F
 Landroid/util/Spline$LinearSpline;->mY:[F
-Landroid/util/Spline$MonotoneCubicSpline;
 Landroid/util/Spline$MonotoneCubicSpline;-><init>([F[F)V
 Landroid/util/Spline$MonotoneCubicSpline;->interpolate(F)F
 Landroid/util/Spline$MonotoneCubicSpline;->mM:[F
 Landroid/util/Spline$MonotoneCubicSpline;->mX:[F
 Landroid/util/Spline$MonotoneCubicSpline;->mY:[F
-Landroid/util/Spline;
 Landroid/util/Spline;-><init>()V
 Landroid/util/Spline;->createLinearSpline([F[F)Landroid/util/Spline;
 Landroid/util/Spline;->createMonotoneCubicSpline([F[F)Landroid/util/Spline;
@@ -77562,7 +72366,6 @@
 Landroid/util/StatsLog;->getIStatsManagerLocked()Landroid/os/IStatsManager;
 Landroid/util/StatsLog;->sService:Landroid/os/IStatsManager;
 Landroid/util/StatsLog;->TAG:Ljava/lang/String;
-Landroid/util/StatsLogInternal;
 Landroid/util/StatsLogInternal;-><init>()V
 Landroid/util/StatsLogInternal;->ACTIVITY_FOREGROUND_STATE_CHANGED:I
 Landroid/util/StatsLogInternal;->ACTIVITY_FOREGROUND_STATE_CHANGED__STATE__BACKGROUND:I
@@ -77965,9 +72768,7 @@
 Landroid/util/StatsLogInternal;->write_non_chained(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)I
 Landroid/util/StatsLogInternal;->WTF_OCCURRED:I
 Landroid/util/StringBuilderPrinter;->mBuilder:Ljava/lang/StringBuilder;
-Landroid/util/SuperNotCalledException;
 Landroid/util/SuperNotCalledException;-><init>(Ljava/lang/String;)V
-Landroid/util/TextLogEntry;
 Landroid/util/TextLogEntry;-><init>()V
 Landroid/util/TextLogEntry;->LOG:J
 Landroid/util/TextLogEntry;->LOG_DEBUG:I
@@ -77986,7 +72787,6 @@
 Landroid/util/TextLogEntry;->TAG:J
 Landroid/util/TextLogEntry;->TID:J
 Landroid/util/TextLogEntry;->UID:J
-Landroid/util/TimedRemoteCaller;
 Landroid/util/TimedRemoteCaller;-><init>(J)V
 Landroid/util/TimedRemoteCaller;->DEFAULT_CALL_TIMEOUT_MILLIS:J
 Landroid/util/TimedRemoteCaller;->getResultTimed(I)Ljava/lang/Object;
@@ -78023,7 +72823,6 @@
 Landroid/util/TimingLogger;->mSplitLabels:Ljava/util/ArrayList;
 Landroid/util/TimingLogger;->mSplits:Ljava/util/ArrayList;
 Landroid/util/TimingLogger;->mTag:Ljava/lang/String;
-Landroid/util/TimingsTraceLog;
 Landroid/util/TimingsTraceLog;-><init>(Ljava/lang/String;J)V
 Landroid/util/TimingsTraceLog;->assertSameThread()V
 Landroid/util/TimingsTraceLog;->DEBUG_BOOT_TIME:Z
@@ -78034,26 +72833,21 @@
 Landroid/util/TimingsTraceLog;->mTraceTag:J
 Landroid/util/TimingsTraceLog;->traceBegin(Ljava/lang/String;)V
 Landroid/util/TimingsTraceLog;->traceEnd()V
-Landroid/util/TrustedTime;
 Landroid/util/TrustedTime;->getCacheCertainty()J
 Landroid/util/TypedValue;->complexToDimensionNoisy(ILandroid/util/DisplayMetrics;)F
 Landroid/util/TypedValue;->DIMENSION_UNIT_STRS:[Ljava/lang/String;
 Landroid/util/TypedValue;->FRACTION_UNIT_STRS:[Ljava/lang/String;
 Landroid/util/TypedValue;->MANTISSA_MULT:F
 Landroid/util/TypedValue;->RADIX_MULTS:[F
-Landroid/util/Xml$Encoding;-><init>(Ljava/lang/String;)V
 Landroid/util/Xml$Encoding;->expatName:Ljava/lang/String;
-Landroid/util/Xml$XmlSerializerFactory;
 Landroid/util/Xml$XmlSerializerFactory;-><init>()V
 Landroid/util/Xml$XmlSerializerFactory;->instance:Lorg/xmlpull/v1/XmlPullParserFactory;
 Landroid/util/Xml$XmlSerializerFactory;->TYPE:Ljava/lang/String;
 Landroid/util/Xml;-><init>()V
 Landroid/view/AbsSavedState;-><init>()V
 Landroid/view/AbsSavedState;->mSuperState:Landroid/os/Parcelable;
-Landroid/view/accessibility/AccessibilityCache$AccessibilityNodeRefresher;
 Landroid/view/accessibility/AccessibilityCache$AccessibilityNodeRefresher;-><init>()V
 Landroid/view/accessibility/AccessibilityCache$AccessibilityNodeRefresher;->refreshNode(Landroid/view/accessibility/AccessibilityNodeInfo;Z)Z
-Landroid/view/accessibility/AccessibilityCache;
 Landroid/view/accessibility/AccessibilityCache;-><init>(Landroid/view/accessibility/AccessibilityCache$AccessibilityNodeRefresher;)V
 Landroid/view/accessibility/AccessibilityCache;->add(Landroid/view/accessibility/AccessibilityNodeInfo;)V
 Landroid/view/accessibility/AccessibilityCache;->addWindow(Landroid/view/accessibility/AccessibilityWindowInfo;)V
@@ -78081,9 +72875,6 @@
 Landroid/view/accessibility/AccessibilityCache;->onAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V
 Landroid/view/accessibility/AccessibilityCache;->refreshCachedNodeLocked(IJ)V
 Landroid/view/accessibility/AccessibilityCache;->setWindows(Ljava/util/List;)V
-Landroid/view/accessibility/AccessibilityEvent$ContentChangeTypes;
-Landroid/view/accessibility/AccessibilityEvent$EventType;
-Landroid/view/accessibility/AccessibilityEvent$WindowsChangeTypes;
 Landroid/view/accessibility/AccessibilityEvent;-><init>()V
 Landroid/view/accessibility/AccessibilityEvent;->clear()V
 Landroid/view/accessibility/AccessibilityEvent;->contentChangeTypesToString(I)Ljava/lang/String;
@@ -78108,7 +72899,6 @@
 Landroid/view/accessibility/AccessibilityEvent;->sPool:Landroid/util/Pools$SynchronizedPool;
 Landroid/view/accessibility/AccessibilityEvent;->windowChangeTypesToString(I)Ljava/lang/String;
 Landroid/view/accessibility/AccessibilityEvent;->writeAccessibilityRecordToParcel(Landroid/view/accessibility/AccessibilityRecord;Landroid/os/Parcel;I)V
-Landroid/view/accessibility/AccessibilityInteractionClient;
 Landroid/view/accessibility/AccessibilityInteractionClient;-><init>()V
 Landroid/view/accessibility/AccessibilityInteractionClient;->addConnection(ILandroid/accessibilityservice/IAccessibilityServiceConnection;)V
 Landroid/view/accessibility/AccessibilityInteractionClient;->checkFindAccessibilityNodeInfoResultIntegrity(Ljava/util/List;)V
@@ -78154,18 +72944,13 @@
 Landroid/view/accessibility/AccessibilityInteractionClient;->sStaticLock:Ljava/lang/Object;
 Landroid/view/accessibility/AccessibilityInteractionClient;->TIMEOUT_INTERACTION_MILLIS:J
 Landroid/view/accessibility/AccessibilityInteractionClient;->waitForResultTimedLocked(I)Z
-Landroid/view/accessibility/AccessibilityManager$AccessibilityPolicy;
 Landroid/view/accessibility/AccessibilityManager$AccessibilityPolicy;->getEnabledAccessibilityServiceList(ILjava/util/List;)Ljava/util/List;
 Landroid/view/accessibility/AccessibilityManager$AccessibilityPolicy;->getInstalledAccessibilityServiceList(Ljava/util/List;)Ljava/util/List;
 Landroid/view/accessibility/AccessibilityManager$AccessibilityPolicy;->getRelevantEventTypes(I)I
 Landroid/view/accessibility/AccessibilityManager$AccessibilityPolicy;->isEnabled(Z)Z
 Landroid/view/accessibility/AccessibilityManager$AccessibilityPolicy;->onAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;ZI)Landroid/view/accessibility/AccessibilityEvent;
-Landroid/view/accessibility/AccessibilityManager$AccessibilityServicesStateChangeListener;
 Landroid/view/accessibility/AccessibilityManager$AccessibilityServicesStateChangeListener;->onAccessibilityServicesStateChanged(Landroid/view/accessibility/AccessibilityManager;)V
-Landroid/view/accessibility/AccessibilityManager$HighTextContrastChangeListener;
 Landroid/view/accessibility/AccessibilityManager$HighTextContrastChangeListener;->onHighTextContrastStateChanged(Z)V
-Landroid/view/accessibility/AccessibilityManager$MyCallback;
-Landroid/view/accessibility/AccessibilityManager$MyCallback;-><init>()V
 Landroid/view/accessibility/AccessibilityManager$MyCallback;->MSG_SET_STATE:I
 Landroid/view/accessibility/AccessibilityManager;-><init>(Landroid/content/Context;Landroid/view/accessibility/IAccessibilityManager;I)V
 Landroid/view/accessibility/AccessibilityManager;-><init>(Landroid/os/Handler;Landroid/view/accessibility/IAccessibilityManager;I)V
@@ -78412,9 +73197,6 @@
 Landroid/view/accessibility/AccessibilityRecord;->sPoolLock:Ljava/lang/Object;
 Landroid/view/accessibility/AccessibilityRecord;->sPoolSize:I
 Landroid/view/accessibility/AccessibilityRecord;->UNDEFINED:I
-Landroid/view/accessibility/AccessibilityRequestPreparer$RequestTypes;
-Landroid/view/accessibility/AccessibilityRequestPreparer$ViewAttachStateListener;
-Landroid/view/accessibility/AccessibilityRequestPreparer$ViewAttachStateListener;-><init>()V
 Landroid/view/accessibility/AccessibilityRequestPreparer;->mRequestTypes:I
 Landroid/view/accessibility/AccessibilityRequestPreparer;->mViewRef:Ljava/lang/ref/WeakReference;
 Landroid/view/accessibility/AccessibilityWindowInfo;-><init>()V
@@ -78481,8 +73263,6 @@
 Landroid/view/accessibility/CaptioningManager$CaptionStyle;->WHITE_ON_BLACK:Landroid/view/accessibility/CaptioningManager$CaptionStyle;
 Landroid/view/accessibility/CaptioningManager$CaptionStyle;->YELLOW_ON_BLACK:Landroid/view/accessibility/CaptioningManager$CaptionStyle;
 Landroid/view/accessibility/CaptioningManager$CaptionStyle;->YELLOW_ON_BLUE:Landroid/view/accessibility/CaptioningManager$CaptionStyle;
-Landroid/view/accessibility/CaptioningManager$MyContentObserver;
-Landroid/view/accessibility/CaptioningManager$MyContentObserver;-><init>(Landroid/os/Handler;)V
 Landroid/view/accessibility/CaptioningManager$MyContentObserver;->mHandler:Landroid/os/Handler;
 Landroid/view/accessibility/CaptioningManager;-><init>(Landroid/content/Context;)V
 Landroid/view/accessibility/CaptioningManager;->DEFAULT_ENABLED:I
@@ -78499,7 +73279,6 @@
 Landroid/view/accessibility/CaptioningManager;->notifyLocaleChanged()V
 Landroid/view/accessibility/CaptioningManager;->notifyUserStyleChanged()V
 Landroid/view/accessibility/CaptioningManager;->registerObserver(Ljava/lang/String;)V
-Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub$Proxy;
 Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub$Proxy;->findAccessibilityNodeInfoByAccessibilityId(JLandroid/graphics/Region;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJLandroid/view/MagnificationSpec;Landroid/os/Bundle;)V
 Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub$Proxy;->findAccessibilityNodeInfosByText(JLjava/lang/String;Landroid/graphics/Region;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJLandroid/view/MagnificationSpec;)V
@@ -78509,7 +73288,6 @@
 Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub$Proxy;->performAccessibilityAction(JILandroid/os/Bundle;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJ)V
-Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub;
 Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub;-><init>()V
 Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/accessibility/IAccessibilityInteractionConnection;
 Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -78519,29 +73297,24 @@
 Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub;->TRANSACTION_findFocus:I
 Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub;->TRANSACTION_focusSearch:I
 Landroid/view/accessibility/IAccessibilityInteractionConnection$Stub;->TRANSACTION_performAccessibilityAction:I
-Landroid/view/accessibility/IAccessibilityInteractionConnection;
 Landroid/view/accessibility/IAccessibilityInteractionConnection;->findAccessibilityNodeInfoByAccessibilityId(JLandroid/graphics/Region;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJLandroid/view/MagnificationSpec;Landroid/os/Bundle;)V
 Landroid/view/accessibility/IAccessibilityInteractionConnection;->findAccessibilityNodeInfosByText(JLjava/lang/String;Landroid/graphics/Region;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJLandroid/view/MagnificationSpec;)V
 Landroid/view/accessibility/IAccessibilityInteractionConnection;->findAccessibilityNodeInfosByViewId(JLjava/lang/String;Landroid/graphics/Region;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJLandroid/view/MagnificationSpec;)V
 Landroid/view/accessibility/IAccessibilityInteractionConnection;->findFocus(JILandroid/graphics/Region;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJLandroid/view/MagnificationSpec;)V
 Landroid/view/accessibility/IAccessibilityInteractionConnection;->focusSearch(JILandroid/graphics/Region;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJLandroid/view/MagnificationSpec;)V
 Landroid/view/accessibility/IAccessibilityInteractionConnection;->performAccessibilityAction(JILandroid/os/Bundle;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJ)V
-Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback$Stub$Proxy;
 Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback$Stub$Proxy;->setFindAccessibilityNodeInfoResult(Landroid/view/accessibility/AccessibilityNodeInfo;I)V
 Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback$Stub$Proxy;->setFindAccessibilityNodeInfosResult(Ljava/util/List;I)V
 Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback$Stub$Proxy;->setPerformAccessibilityActionResult(ZI)V
-Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback$Stub;
 Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback$Stub;-><init>()V
 Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback;
 Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback$Stub;->TRANSACTION_setFindAccessibilityNodeInfoResult:I
 Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback$Stub;->TRANSACTION_setFindAccessibilityNodeInfosResult:I
 Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback$Stub;->TRANSACTION_setPerformAccessibilityActionResult:I
-Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback;
-Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;
 Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->addAccessibilityInteractionConnection(Landroid/view/IWindow;Landroid/view/accessibility/IAccessibilityInteractionConnection;Ljava/lang/String;I)I
 Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->addClient(Landroid/view/accessibility/IAccessibilityManagerClient;I)J
 Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->getEnabledAccessibilityServiceList(II)Ljava/util/List;
@@ -78560,7 +73333,6 @@
 Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->setPictureInPictureActionReplacingConnection(Landroid/view/accessibility/IAccessibilityInteractionConnection;)V
 Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->temporaryEnableAccessibilityStateUntilKeyguardRemoved(Landroid/content/ComponentName;Z)V
 Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;->unregisterUiTestAutomationService(Landroid/accessibilityservice/IAccessibilityServiceClient;)V
-Landroid/view/accessibility/IAccessibilityManager$Stub;
 Landroid/view/accessibility/IAccessibilityManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/accessibility/IAccessibilityManager$Stub;->TRANSACTION_addAccessibilityInteractionConnection:I
 Landroid/view/accessibility/IAccessibilityManager$Stub;->TRANSACTION_addClient:I
@@ -78578,7 +73350,6 @@
 Landroid/view/accessibility/IAccessibilityManager$Stub;->TRANSACTION_setPictureInPictureActionReplacingConnection:I
 Landroid/view/accessibility/IAccessibilityManager$Stub;->TRANSACTION_temporaryEnableAccessibilityStateUntilKeyguardRemoved:I
 Landroid/view/accessibility/IAccessibilityManager$Stub;->TRANSACTION_unregisterUiTestAutomationService:I
-Landroid/view/accessibility/IAccessibilityManager;
 Landroid/view/accessibility/IAccessibilityManager;->addAccessibilityInteractionConnection(Landroid/view/IWindow;Landroid/view/accessibility/IAccessibilityInteractionConnection;Ljava/lang/String;I)I
 Landroid/view/accessibility/IAccessibilityManager;->addClient(Landroid/view/accessibility/IAccessibilityManagerClient;I)J
 Landroid/view/accessibility/IAccessibilityManager;->getInstalledAccessibilityServiceList(I)Ljava/util/List;
@@ -78594,26 +73365,21 @@
 Landroid/view/accessibility/IAccessibilityManager;->setPictureInPictureActionReplacingConnection(Landroid/view/accessibility/IAccessibilityInteractionConnection;)V
 Landroid/view/accessibility/IAccessibilityManager;->temporaryEnableAccessibilityStateUntilKeyguardRemoved(Landroid/content/ComponentName;Z)V
 Landroid/view/accessibility/IAccessibilityManager;->unregisterUiTestAutomationService(Landroid/accessibilityservice/IAccessibilityServiceClient;)V
-Landroid/view/accessibility/IAccessibilityManagerClient$Stub$Proxy;
 Landroid/view/accessibility/IAccessibilityManagerClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/accessibility/IAccessibilityManagerClient$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/accessibility/IAccessibilityManagerClient$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/view/accessibility/IAccessibilityManagerClient$Stub$Proxy;->notifyServicesStateChanged()V
 Landroid/view/accessibility/IAccessibilityManagerClient$Stub$Proxy;->setRelevantEventTypes(I)V
 Landroid/view/accessibility/IAccessibilityManagerClient$Stub$Proxy;->setState(I)V
-Landroid/view/accessibility/IAccessibilityManagerClient$Stub;
 Landroid/view/accessibility/IAccessibilityManagerClient$Stub;-><init>()V
 Landroid/view/accessibility/IAccessibilityManagerClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/accessibility/IAccessibilityManagerClient;
 Landroid/view/accessibility/IAccessibilityManagerClient$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/accessibility/IAccessibilityManagerClient$Stub;->TRANSACTION_notifyServicesStateChanged:I
 Landroid/view/accessibility/IAccessibilityManagerClient$Stub;->TRANSACTION_setRelevantEventTypes:I
 Landroid/view/accessibility/IAccessibilityManagerClient$Stub;->TRANSACTION_setState:I
-Landroid/view/accessibility/IAccessibilityManagerClient;
 Landroid/view/accessibility/IAccessibilityManagerClient;->notifyServicesStateChanged()V
 Landroid/view/accessibility/IAccessibilityManagerClient;->setRelevantEventTypes(I)V
 Landroid/view/accessibility/IAccessibilityManagerClient;->setState(I)V
-Landroid/view/AccessibilityInteractionController$AccessibilityNodePrefetcher;
-Landroid/view/AccessibilityInteractionController$AccessibilityNodePrefetcher;-><init>()V
 Landroid/view/AccessibilityInteractionController$AccessibilityNodePrefetcher;->enforceNodeTreeConsistent(Ljava/util/List;)V
 Landroid/view/AccessibilityInteractionController$AccessibilityNodePrefetcher;->MAX_ACCESSIBILITY_NODE_INFO_BATCH_SIZE:I
 Landroid/view/AccessibilityInteractionController$AccessibilityNodePrefetcher;->mTempViewList:Ljava/util/ArrayList;
@@ -78624,20 +73390,15 @@
 Landroid/view/AccessibilityInteractionController$AccessibilityNodePrefetcher;->prefetchPredecessorsOfVirtualNode(Landroid/view/accessibility/AccessibilityNodeInfo;Landroid/view/View;Landroid/view/accessibility/AccessibilityNodeProvider;Ljava/util/List;)V
 Landroid/view/AccessibilityInteractionController$AccessibilityNodePrefetcher;->prefetchSiblingsOfRealNode(Landroid/view/View;Ljava/util/List;)V
 Landroid/view/AccessibilityInteractionController$AccessibilityNodePrefetcher;->prefetchSiblingsOfVirtualNode(Landroid/view/accessibility/AccessibilityNodeInfo;Landroid/view/View;Landroid/view/accessibility/AccessibilityNodeProvider;Ljava/util/List;)V
-Landroid/view/AccessibilityInteractionController$AddNodeInfosForViewId;
-Landroid/view/AccessibilityInteractionController$AddNodeInfosForViewId;-><init>()V
 Landroid/view/AccessibilityInteractionController$AddNodeInfosForViewId;->init(ILjava/util/List;)V
 Landroid/view/AccessibilityInteractionController$AddNodeInfosForViewId;->mInfos:Ljava/util/List;
 Landroid/view/AccessibilityInteractionController$AddNodeInfosForViewId;->mViewId:I
 Landroid/view/AccessibilityInteractionController$AddNodeInfosForViewId;->reset()V
 Landroid/view/AccessibilityInteractionController$AddNodeInfosForViewId;->test(Landroid/view/View;)Z
-Landroid/view/AccessibilityInteractionController$MessageHolder;
 Landroid/view/AccessibilityInteractionController$MessageHolder;-><init>(Landroid/os/Message;IJ)V
 Landroid/view/AccessibilityInteractionController$MessageHolder;->mInterrogatingPid:I
 Landroid/view/AccessibilityInteractionController$MessageHolder;->mInterrogatingTid:J
 Landroid/view/AccessibilityInteractionController$MessageHolder;->mMessage:Landroid/os/Message;
-Landroid/view/AccessibilityInteractionController$PrivateHandler;
-Landroid/view/AccessibilityInteractionController$PrivateHandler;-><init>(Landroid/os/Looper;)V
 Landroid/view/AccessibilityInteractionController$PrivateHandler;->MSG_APP_PREPARATION_FINISHED:I
 Landroid/view/AccessibilityInteractionController$PrivateHandler;->MSG_APP_PREPARATION_TIMEOUT:I
 Landroid/view/AccessibilityInteractionController$PrivateHandler;->MSG_FIND_ACCESSIBILITY_NODE_INFOS_BY_VIEW_ID:I
@@ -78647,7 +73408,6 @@
 Landroid/view/AccessibilityInteractionController$PrivateHandler;->MSG_FOCUS_SEARCH:I
 Landroid/view/AccessibilityInteractionController$PrivateHandler;->MSG_PERFORM_ACCESSIBILITY_ACTION:I
 Landroid/view/AccessibilityInteractionController$PrivateHandler;->MSG_PREPARE_FOR_EXTRA_DATA_REQUEST:I
-Landroid/view/AccessibilityInteractionController;
 Landroid/view/AccessibilityInteractionController;-><init>(Landroid/view/ViewRootImpl;)V
 Landroid/view/AccessibilityInteractionController;->adjustIsVisibleToUserIfNeeded(Landroid/view/accessibility/AccessibilityNodeInfo;Landroid/graphics/Region;)V
 Landroid/view/AccessibilityInteractionController;->adjustIsVisibleToUserIfNeeded(Ljava/util/List;Landroid/graphics/Region;)V
@@ -78701,11 +73461,9 @@
 Landroid/view/AccessibilityInteractionController;->shouldApplyAppScaleAndMagnificationSpec(FLandroid/view/MagnificationSpec;)Z
 Landroid/view/AccessibilityInteractionController;->updateInfoForViewportAndReturnFindNodeResult(Landroid/view/accessibility/AccessibilityNodeInfo;Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback;ILandroid/view/MagnificationSpec;Landroid/graphics/Region;)V
 Landroid/view/AccessibilityInteractionController;->updateInfosForViewportAndReturnFindNodeResult(Ljava/util/List;Landroid/view/accessibility/IAccessibilityInteractionConnectionCallback;ILandroid/view/MagnificationSpec;Landroid/graphics/Region;)V
-Landroid/view/AccessibilityIterators$AbstractTextSegmentIterator;
 Landroid/view/AccessibilityIterators$AbstractTextSegmentIterator;->getRange(II)[I
 Landroid/view/AccessibilityIterators$AbstractTextSegmentIterator;->initialize(Ljava/lang/String;)V
 Landroid/view/AccessibilityIterators$AbstractTextSegmentIterator;->mSegment:[I
-Landroid/view/AccessibilityIterators$CharacterTextSegmentIterator;
 Landroid/view/AccessibilityIterators$CharacterTextSegmentIterator;-><init>(Ljava/util/Locale;)V
 Landroid/view/AccessibilityIterators$CharacterTextSegmentIterator;->following(I)[I
 Landroid/view/AccessibilityIterators$CharacterTextSegmentIterator;->getInstance(Ljava/util/Locale;)Landroid/view/AccessibilityIterators$CharacterTextSegmentIterator;
@@ -78716,7 +73474,6 @@
 Landroid/view/AccessibilityIterators$CharacterTextSegmentIterator;->onLocaleChanged(Ljava/util/Locale;)V
 Landroid/view/AccessibilityIterators$CharacterTextSegmentIterator;->preceding(I)[I
 Landroid/view/AccessibilityIterators$CharacterTextSegmentIterator;->sInstance:Landroid/view/AccessibilityIterators$CharacterTextSegmentIterator;
-Landroid/view/AccessibilityIterators$ParagraphTextSegmentIterator;
 Landroid/view/AccessibilityIterators$ParagraphTextSegmentIterator;-><init>()V
 Landroid/view/AccessibilityIterators$ParagraphTextSegmentIterator;->following(I)[I
 Landroid/view/AccessibilityIterators$ParagraphTextSegmentIterator;->getInstance()Landroid/view/AccessibilityIterators$ParagraphTextSegmentIterator;
@@ -78724,10 +73481,8 @@
 Landroid/view/AccessibilityIterators$ParagraphTextSegmentIterator;->isStartBoundary(I)Z
 Landroid/view/AccessibilityIterators$ParagraphTextSegmentIterator;->preceding(I)[I
 Landroid/view/AccessibilityIterators$ParagraphTextSegmentIterator;->sInstance:Landroid/view/AccessibilityIterators$ParagraphTextSegmentIterator;
-Landroid/view/AccessibilityIterators$TextSegmentIterator;
 Landroid/view/AccessibilityIterators$TextSegmentIterator;->following(I)[I
 Landroid/view/AccessibilityIterators$TextSegmentIterator;->preceding(I)[I
-Landroid/view/AccessibilityIterators$WordTextSegmentIterator;
 Landroid/view/AccessibilityIterators$WordTextSegmentIterator;-><init>(Ljava/util/Locale;)V
 Landroid/view/AccessibilityIterators$WordTextSegmentIterator;->following(I)[I
 Landroid/view/AccessibilityIterators$WordTextSegmentIterator;->getInstance(Ljava/util/Locale;)Landroid/view/AccessibilityIterators$WordTextSegmentIterator;
@@ -78737,12 +73492,10 @@
 Landroid/view/AccessibilityIterators$WordTextSegmentIterator;->onLocaleChanged(Ljava/util/Locale;)V
 Landroid/view/AccessibilityIterators$WordTextSegmentIterator;->preceding(I)[I
 Landroid/view/AccessibilityIterators$WordTextSegmentIterator;->sInstance:Landroid/view/AccessibilityIterators$WordTextSegmentIterator;
-Landroid/view/AccessibilityIterators;
 Landroid/view/AccessibilityIterators;-><init>()V
 Landroid/view/ActionMode;->mTag:Ljava/lang/Object;
 Landroid/view/ActionMode;->mTitleOptionalHint:Z
 Landroid/view/ActionMode;->mType:I
-Landroid/view/ActionProvider$SubUiVisibilityListener;
 Landroid/view/ActionProvider$SubUiVisibilityListener;->onSubUiVisibilityChanged(Z)V
 Landroid/view/ActionProvider;->mSubUiVisibilityListener:Landroid/view/ActionProvider$SubUiVisibilityListener;
 Landroid/view/ActionProvider;->mVisibilityListener:Landroid/view/ActionProvider$VisibilityListener;
@@ -78757,7 +73510,6 @@
 Landroid/view/animation/AlphaAnimation;->mFromAlpha:F
 Landroid/view/animation/AlphaAnimation;->mToAlpha:F
 Landroid/view/animation/Animation$Description;->parseValue(Landroid/util/TypedValue;)Landroid/view/animation/Animation$Description;
-Landroid/view/animation/Animation$NoImagePreloadHolder;
 Landroid/view/animation/Animation$NoImagePreloadHolder;-><init>()V
 Landroid/view/animation/Animation$NoImagePreloadHolder;->USE_CLOSEGUARD:Z
 Landroid/view/animation/Animation;->fireAnimationEnd()V
@@ -78814,7 +73566,6 @@
 Landroid/view/animation/AnimationSet;->PROPERTY_START_OFFSET_MASK:I
 Landroid/view/animation/AnimationSet;->restoreChildrenStartOffset()V
 Landroid/view/animation/AnimationSet;->setFlag(IZ)V
-Landroid/view/animation/AnimationUtils$AnimationState;
 Landroid/view/animation/AnimationUtils$AnimationState;-><init>()V
 Landroid/view/animation/AnimationUtils$AnimationState;->animationClockLocked:Z
 Landroid/view/animation/AnimationUtils$AnimationState;->currentVsyncTimeMillis:J
@@ -78840,7 +73591,6 @@
 Landroid/view/animation/BaseInterpolator;->setChangingConfiguration(I)V
 Landroid/view/animation/BounceInterpolator;->bounce(F)F
 Landroid/view/animation/BounceInterpolator;->createNativeInterpolator()J
-Landroid/view/animation/ClipRectAnimation;
 Landroid/view/animation/ClipRectAnimation;-><init>(IIIIIIII)V
 Landroid/view/animation/ClipRectAnimation;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/view/animation/ClipRectAnimation;-><init>(Landroid/graphics/Rect;Landroid/graphics/Rect;)V
@@ -78937,14 +73687,11 @@
 Landroid/view/animation/TranslateAnimation;->mToXType:I
 Landroid/view/animation/TranslateAnimation;->mToYDelta:F
 Landroid/view/animation/TranslateAnimation;->mToYType:I
-Landroid/view/animation/TranslateXAnimation;
 Landroid/view/animation/TranslateXAnimation;-><init>(FF)V
 Landroid/view/animation/TranslateXAnimation;-><init>(IFIF)V
 Landroid/view/animation/TranslateXAnimation;->mTmpValues:[F
-Landroid/view/animation/TranslateYAnimation;
 Landroid/view/animation/TranslateYAnimation;-><init>(FF)V
 Landroid/view/animation/TranslateYAnimation;->mTmpValues:[F
-Landroid/view/AppTransitionAnimationSpec;
 Landroid/view/AppTransitionAnimationSpec;-><init>(Landroid/os/Parcel;)V
 Landroid/view/AppTransitionAnimationSpec;->buffer:Landroid/graphics/GraphicBuffer;
 Landroid/view/AppTransitionAnimationSpec;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -78958,8 +73705,6 @@
 Landroid/view/autofill/AutofillId;->mViewId:I
 Landroid/view/autofill/AutofillId;->mVirtual:Z
 Landroid/view/autofill/AutofillId;->mVirtualId:I
-Landroid/view/autofill/AutofillManager$AutofillCallback$AutofillEventType;
-Landroid/view/autofill/AutofillManager$AutofillClient;
 Landroid/view/autofill/AutofillManager$AutofillClient;->autofillClientAuthenticate(ILandroid/content/IntentSender;Landroid/content/Intent;)V
 Landroid/view/autofill/AutofillManager$AutofillClient;->autofillClientDispatchUnhandledKey(Landroid/view/View;Landroid/view/KeyEvent;)V
 Landroid/view/autofill/AutofillManager$AutofillClient;->autofillClientFindViewByAccessibilityIdTraversal(II)Landroid/view/View;
@@ -78977,7 +73722,6 @@
 Landroid/view/autofill/AutofillManager$AutofillClient;->autofillClientResetableStateAvailable()V
 Landroid/view/autofill/AutofillManager$AutofillClient;->autofillClientRunOnUiThread(Ljava/lang/Runnable;)V
 Landroid/view/autofill/AutofillManager$AutofillClient;->isDisablingEnterExitEventForAutofill()Z
-Landroid/view/autofill/AutofillManager$AutofillManagerClient;
 Landroid/view/autofill/AutofillManager$AutofillManagerClient;-><init>(Landroid/view/autofill/AutofillManager;)V
 Landroid/view/autofill/AutofillManager$AutofillManagerClient;->authenticate(IILandroid/content/IntentSender;Landroid/content/Intent;)V
 Landroid/view/autofill/AutofillManager$AutofillManagerClient;->autofill(ILjava/util/List;Ljava/util/List;)V
@@ -78991,8 +73735,6 @@
 Landroid/view/autofill/AutofillManager$AutofillManagerClient;->setState(I)V
 Landroid/view/autofill/AutofillManager$AutofillManagerClient;->setTrackedViews(I[Landroid/view/autofill/AutofillId;ZZ[Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillId;)V
 Landroid/view/autofill/AutofillManager$AutofillManagerClient;->startIntentSender(Landroid/content/IntentSender;Landroid/content/Intent;)V
-Landroid/view/autofill/AutofillManager$CompatibilityBridge;
-Landroid/view/autofill/AutofillManager$CompatibilityBridge;-><init>()V
 Landroid/view/autofill/AutofillManager$CompatibilityBridge;->findViewByAccessibilityId(IJ)Landroid/view/View;
 Landroid/view/autofill/AutofillManager$CompatibilityBridge;->findVirtualNodeByAccessibilityId(Landroid/view/View;I)Landroid/view/accessibility/AccessibilityNodeInfo;
 Landroid/view/autofill/AutofillManager$CompatibilityBridge;->getCompatServiceInfo()Landroid/accessibilityservice/AccessibilityServiceInfo;
@@ -79012,8 +73754,6 @@
 Landroid/view/autofill/AutofillManager$CompatibilityBridge;->notifyViewExited(IJ)V
 Landroid/view/autofill/AutofillManager$CompatibilityBridge;->onAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;ZI)Landroid/view/accessibility/AccessibilityEvent;
 Landroid/view/autofill/AutofillManager$CompatibilityBridge;->updateTrackedViewsLocked()V
-Landroid/view/autofill/AutofillManager$TrackedViews;
-Landroid/view/autofill/AutofillManager$TrackedViews;-><init>([Landroid/view/autofill/AutofillId;)V
 Landroid/view/autofill/AutofillManager$TrackedViews;->addToSet(Landroid/util/ArraySet;Ljava/lang/Object;)Landroid/util/ArraySet;
 Landroid/view/autofill/AutofillManager$TrackedViews;->isInSet(Landroid/util/ArraySet;Ljava/lang/Object;)Z
 Landroid/view/autofill/AutofillManager$TrackedViews;->mInvisibleTrackedIds:Landroid/util/ArraySet;
@@ -79132,16 +73872,12 @@
 Landroid/view/autofill/AutofillManager;->STATE_UNKNOWN_COMPAT_MODE:I
 Landroid/view/autofill/AutofillManager;->TAG:Ljava/lang/String;
 Landroid/view/autofill/AutofillManager;->updateSessionLocked(Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;II)V
-Landroid/view/autofill/AutofillManagerInternal;
 Landroid/view/autofill/AutofillManagerInternal;-><init>()V
 Landroid/view/autofill/AutofillManagerInternal;->isCompatibilityModeRequested(Ljava/lang/String;JI)Z
 Landroid/view/autofill/AutofillManagerInternal;->onBackKeyPressed()V
-Landroid/view/autofill/AutofillPopupWindow$WindowPresenter;
-Landroid/view/autofill/AutofillPopupWindow$WindowPresenter;-><init>(Landroid/view/autofill/IAutofillWindowPresenter;)V
 Landroid/view/autofill/AutofillPopupWindow$WindowPresenter;->hide(Landroid/graphics/Rect;)V
 Landroid/view/autofill/AutofillPopupWindow$WindowPresenter;->mPresenter:Landroid/view/autofill/IAutofillWindowPresenter;
 Landroid/view/autofill/AutofillPopupWindow$WindowPresenter;->show(Landroid/view/WindowManager$LayoutParams;Landroid/graphics/Rect;ZI)V
-Landroid/view/autofill/AutofillPopupWindow;
 Landroid/view/autofill/AutofillPopupWindow;-><init>(Landroid/view/autofill/IAutofillWindowPresenter;)V
 Landroid/view/autofill/AutofillPopupWindow;->attachToAnchor(Landroid/view/View;III)V
 Landroid/view/autofill/AutofillPopupWindow;->detachFromAnchor()V
@@ -79161,7 +73897,6 @@
 Landroid/view/autofill/AutofillValue;->isEmpty()Z
 Landroid/view/autofill/AutofillValue;->mType:I
 Landroid/view/autofill/AutofillValue;->mValue:Ljava/lang/Object;
-Landroid/view/autofill/Helper;
 Landroid/view/autofill/Helper;-><init>()V
 Landroid/view/autofill/Helper;->appendRedacted(Ljava/lang/StringBuilder;Ljava/lang/CharSequence;)V
 Landroid/view/autofill/Helper;->appendRedacted(Ljava/lang/StringBuilder;[Ljava/lang/String;)V
@@ -79169,7 +73904,6 @@
 Landroid/view/autofill/Helper;->sDebug:Z
 Landroid/view/autofill/Helper;->sVerbose:Z
 Landroid/view/autofill/Helper;->toArray(Ljava/util/Collection;)[Landroid/view/autofill/AutofillId;
-Landroid/view/autofill/IAutoFillManager$Stub$Proxy;
 Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->addClient(Landroid/view/autofill/IAutoFillManagerClient;I)I
 Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->cancelSession(II)V
 Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->disableOwnedAutofillServices(I)V
@@ -79195,7 +73929,6 @@
 Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->startSession(Landroid/os/IBinder;Landroid/os/IBinder;Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;IZILandroid/content/ComponentName;Z)I
 Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->updateOrRestartSession(Landroid/os/IBinder;Landroid/os/IBinder;Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;IZILandroid/content/ComponentName;IIZ)I
 Landroid/view/autofill/IAutoFillManager$Stub$Proxy;->updateSession(ILandroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;III)V
-Landroid/view/autofill/IAutoFillManager$Stub;
 Landroid/view/autofill/IAutoFillManager$Stub;-><init>()V
 Landroid/view/autofill/IAutoFillManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_addClient:I
@@ -79221,7 +73954,6 @@
 Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_startSession:I
 Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_updateOrRestartSession:I
 Landroid/view/autofill/IAutoFillManager$Stub;->TRANSACTION_updateSession:I
-Landroid/view/autofill/IAutoFillManager;
 Landroid/view/autofill/IAutoFillManager;->addClient(Landroid/view/autofill/IAutoFillManagerClient;I)I
 Landroid/view/autofill/IAutoFillManager;->cancelSession(II)V
 Landroid/view/autofill/IAutoFillManager;->disableOwnedAutofillServices(I)V
@@ -79245,7 +73977,6 @@
 Landroid/view/autofill/IAutoFillManager;->startSession(Landroid/os/IBinder;Landroid/os/IBinder;Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;IZILandroid/content/ComponentName;Z)I
 Landroid/view/autofill/IAutoFillManager;->updateOrRestartSession(Landroid/os/IBinder;Landroid/os/IBinder;Landroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;IZILandroid/content/ComponentName;IIZ)I
 Landroid/view/autofill/IAutoFillManager;->updateSession(ILandroid/view/autofill/AutofillId;Landroid/graphics/Rect;Landroid/view/autofill/AutofillValue;III)V
-Landroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;
 Landroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;->authenticate(IILandroid/content/IntentSender;Landroid/content/Intent;)V
 Landroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;->autofill(ILjava/util/List;Ljava/util/List;)V
@@ -79260,7 +73991,6 @@
 Landroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;->setState(I)V
 Landroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;->setTrackedViews(I[Landroid/view/autofill/AutofillId;ZZ[Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillId;)V
 Landroid/view/autofill/IAutoFillManagerClient$Stub$Proxy;->startIntentSender(Landroid/content/IntentSender;Landroid/content/Intent;)V
-Landroid/view/autofill/IAutoFillManagerClient$Stub;
 Landroid/view/autofill/IAutoFillManagerClient$Stub;-><init>()V
 Landroid/view/autofill/IAutoFillManagerClient$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/autofill/IAutoFillManagerClient;
 Landroid/view/autofill/IAutoFillManagerClient$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -79275,7 +74005,6 @@
 Landroid/view/autofill/IAutoFillManagerClient$Stub;->TRANSACTION_setState:I
 Landroid/view/autofill/IAutoFillManagerClient$Stub;->TRANSACTION_setTrackedViews:I
 Landroid/view/autofill/IAutoFillManagerClient$Stub;->TRANSACTION_startIntentSender:I
-Landroid/view/autofill/IAutoFillManagerClient;
 Landroid/view/autofill/IAutoFillManagerClient;->authenticate(IILandroid/content/IntentSender;Landroid/content/Intent;)V
 Landroid/view/autofill/IAutoFillManagerClient;->autofill(ILjava/util/List;Ljava/util/List;)V
 Landroid/view/autofill/IAutoFillManagerClient;->dispatchUnhandledKey(ILandroid/view/autofill/AutofillId;Landroid/view/KeyEvent;)V
@@ -79287,27 +74016,20 @@
 Landroid/view/autofill/IAutoFillManagerClient;->setState(I)V
 Landroid/view/autofill/IAutoFillManagerClient;->setTrackedViews(I[Landroid/view/autofill/AutofillId;ZZ[Landroid/view/autofill/AutofillId;Landroid/view/autofill/AutofillId;)V
 Landroid/view/autofill/IAutoFillManagerClient;->startIntentSender(Landroid/content/IntentSender;Landroid/content/Intent;)V
-Landroid/view/autofill/IAutofillWindowPresenter$Stub$Proxy;
 Landroid/view/autofill/IAutofillWindowPresenter$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/autofill/IAutofillWindowPresenter$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/autofill/IAutofillWindowPresenter$Stub$Proxy;->hide(Landroid/graphics/Rect;)V
 Landroid/view/autofill/IAutofillWindowPresenter$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/view/autofill/IAutofillWindowPresenter$Stub$Proxy;->show(Landroid/view/WindowManager$LayoutParams;Landroid/graphics/Rect;ZI)V
-Landroid/view/autofill/IAutofillWindowPresenter$Stub;
 Landroid/view/autofill/IAutofillWindowPresenter$Stub;-><init>()V
 Landroid/view/autofill/IAutofillWindowPresenter$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/autofill/IAutofillWindowPresenter;
 Landroid/view/autofill/IAutofillWindowPresenter$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/autofill/IAutofillWindowPresenter$Stub;->TRANSACTION_hide:I
 Landroid/view/autofill/IAutofillWindowPresenter$Stub;->TRANSACTION_show:I
-Landroid/view/autofill/IAutofillWindowPresenter;
 Landroid/view/autofill/IAutofillWindowPresenter;->hide(Landroid/graphics/Rect;)V
 Landroid/view/autofill/IAutofillWindowPresenter;->show(Landroid/view/WindowManager$LayoutParams;Landroid/graphics/Rect;ZI)V
-Landroid/view/autofill/ParcelableMap;
 Landroid/view/autofill/ParcelableMap;-><init>(I)V
 Landroid/view/autofill/ParcelableMap;->CREATOR:Landroid/os/Parcelable$Creator;
-Landroid/view/BatchedInputEventReceiver$BatchedInputRunnable;
-Landroid/view/BatchedInputEventReceiver$BatchedInputRunnable;-><init>()V
-Landroid/view/BatchedInputEventReceiver;
 Landroid/view/BatchedInputEventReceiver;->dispose()V
 Landroid/view/BatchedInputEventReceiver;->doConsumeBatchedInput(J)V
 Landroid/view/BatchedInputEventReceiver;->mBatchedInputRunnable:Landroid/view/BatchedInputEventReceiver$BatchedInputRunnable;
@@ -79316,26 +74038,19 @@
 Landroid/view/BatchedInputEventReceiver;->onBatchedInputEventPending()V
 Landroid/view/BatchedInputEventReceiver;->scheduleBatchedInput()V
 Landroid/view/BatchedInputEventReceiver;->unscheduleBatchedInput()V
-Landroid/view/Choreographer$CallbackQueue;
-Landroid/view/Choreographer$CallbackQueue;-><init>()V
 Landroid/view/Choreographer$CallbackQueue;->extractDueCallbacksLocked(J)Landroid/view/Choreographer$CallbackRecord;
 Landroid/view/Choreographer$CallbackQueue;->hasDueCallbacksLocked(J)Z
 Landroid/view/Choreographer$CallbackQueue;->mHead:Landroid/view/Choreographer$CallbackRecord;
 Landroid/view/Choreographer$CallbackQueue;->removeCallbacksLocked(Ljava/lang/Object;Ljava/lang/Object;)V
-Landroid/view/Choreographer$CallbackRecord;
 Landroid/view/Choreographer$CallbackRecord;-><init>()V
 Landroid/view/Choreographer$CallbackRecord;->action:Ljava/lang/Object;
 Landroid/view/Choreographer$CallbackRecord;->dueTime:J
 Landroid/view/Choreographer$CallbackRecord;->next:Landroid/view/Choreographer$CallbackRecord;
 Landroid/view/Choreographer$CallbackRecord;->token:Ljava/lang/Object;
-Landroid/view/Choreographer$FrameDisplayEventReceiver;
-Landroid/view/Choreographer$FrameDisplayEventReceiver;-><init>(Landroid/os/Looper;I)V
 Landroid/view/Choreographer$FrameDisplayEventReceiver;->mFrame:I
 Landroid/view/Choreographer$FrameDisplayEventReceiver;->mHavePendingVsync:Z
 Landroid/view/Choreographer$FrameDisplayEventReceiver;->mTimestampNanos:J
 Landroid/view/Choreographer$FrameDisplayEventReceiver;->onVsync(JII)V
-Landroid/view/Choreographer$FrameHandler;
-Landroid/view/Choreographer$FrameHandler;-><init>(Landroid/os/Looper;)V
 Landroid/view/Choreographer;-><init>(Landroid/os/Looper;I)V
 Landroid/view/Choreographer;->CALLBACK_COMMIT:I
 Landroid/view/Choreographer;->CALLBACK_INPUT:I
@@ -79385,7 +74100,6 @@
 Landroid/view/ContextThemeWrapper;->getOverrideConfiguration()Landroid/content/res/Configuration;
 Landroid/view/ContextThemeWrapper;->getResourcesInternal()Landroid/content/res/Resources;
 Landroid/view/ContextThemeWrapper;->mOverrideConfiguration:Landroid/content/res/Configuration;
-Landroid/view/Display$HdrCapabilities$HdrType;
 Landroid/view/Display$HdrCapabilities;-><init>()V
 Landroid/view/Display$HdrCapabilities;-><init>(Landroid/os/Parcel;)V
 Landroid/view/Display$HdrCapabilities;->mMaxAverageLuminance:F
@@ -79454,7 +74168,6 @@
 Landroid/view/Display;->TYPE_OVERLAY:I
 Landroid/view/Display;->updateCachedAppSizeIfNeededLocked()V
 Landroid/view/Display;->updateDisplayInfoLocked()V
-Landroid/view/DisplayAdjustments;
 Landroid/view/DisplayAdjustments;-><init>(Landroid/content/res/Configuration;)V
 Landroid/view/DisplayAdjustments;-><init>(Landroid/view/DisplayAdjustments;)V
 Landroid/view/DisplayAdjustments;->DEFAULT_DISPLAY_ADJUSTMENTS:Landroid/view/DisplayAdjustments;
@@ -79462,7 +74175,6 @@
 Landroid/view/DisplayAdjustments;->mCompatInfo:Landroid/content/res/CompatibilityInfo;
 Landroid/view/DisplayAdjustments;->mConfiguration:Landroid/content/res/Configuration;
 Landroid/view/DisplayAdjustments;->setConfiguration(Landroid/content/res/Configuration;)V
-Landroid/view/DisplayCutout$ParcelableWrapper;
 Landroid/view/DisplayCutout$ParcelableWrapper;-><init>()V
 Landroid/view/DisplayCutout$ParcelableWrapper;-><init>(Landroid/view/DisplayCutout;)V
 Landroid/view/DisplayCutout$ParcelableWrapper;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -79506,11 +74218,9 @@
 Landroid/view/DisplayCutout;->TAG:Ljava/lang/String;
 Landroid/view/DisplayCutout;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
 Landroid/view/DisplayCutout;->ZERO_RECT:Landroid/graphics/Rect;
-Landroid/view/DisplayCutoutProto;
 Landroid/view/DisplayCutoutProto;-><init>()V
 Landroid/view/DisplayCutoutProto;->BOUNDS:J
 Landroid/view/DisplayCutoutProto;->INSETS:J
-Landroid/view/DisplayEventReceiver;
 Landroid/view/DisplayEventReceiver;-><init>(Landroid/os/Looper;I)V
 Landroid/view/DisplayEventReceiver;->dispose()V
 Landroid/view/DisplayEventReceiver;->dispose(Z)V
@@ -79522,7 +74232,6 @@
 Landroid/view/DisplayEventReceiver;->TAG:Ljava/lang/String;
 Landroid/view/DisplayEventReceiver;->VSYNC_SOURCE_APP:I
 Landroid/view/DisplayEventReceiver;->VSYNC_SOURCE_SURFACE_FLINGER:I
-Landroid/view/DisplayInfo;
 Landroid/view/DisplayInfo;-><init>(Landroid/os/Parcel;)V
 Landroid/view/DisplayInfo;-><init>(Landroid/view/DisplayInfo;)V
 Landroid/view/DisplayInfo;->address:Ljava/lang/String;
@@ -79577,14 +74286,12 @@
 Landroid/view/DisplayInfo;->type:I
 Landroid/view/DisplayInfo;->uniqueId:Ljava/lang/String;
 Landroid/view/DisplayInfo;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/view/DisplayInfoProto;
 Landroid/view/DisplayInfoProto;-><init>()V
 Landroid/view/DisplayInfoProto;->APP_HEIGHT:J
 Landroid/view/DisplayInfoProto;->APP_WIDTH:J
 Landroid/view/DisplayInfoProto;->LOGICAL_HEIGHT:J
 Landroid/view/DisplayInfoProto;->LOGICAL_WIDTH:J
 Landroid/view/DisplayInfoProto;->NAME:J
-Landroid/view/DisplayListCanvas;
 Landroid/view/DisplayListCanvas;-><init>(Landroid/view/RenderNode;II)V
 Landroid/view/DisplayListCanvas;->drawRoundRect(Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;Landroid/graphics/CanvasProperty;)V
 Landroid/view/DisplayListCanvas;->drawTextureLayer(Landroid/view/TextureLayer;)V
@@ -79612,7 +74319,6 @@
 Landroid/view/DisplayListCanvas;->recycle()V
 Landroid/view/DisplayListCanvas;->sPool:Landroid/util/Pools$SynchronizedPool;
 Landroid/view/DisplayListCanvas;->throwIfCannotDraw(Landroid/graphics/Bitmap;)V
-Landroid/view/DisplayProto;
 Landroid/view/DisplayProto;-><init>()V
 Landroid/view/DisplayProto;->COLOR_MODE_ADOBE_RGB:I
 Landroid/view/DisplayProto;->COLOR_MODE_BT601_525:I
@@ -79652,11 +74358,9 @@
 Landroid/view/DragEvent;->obtain(IFFLjava/lang/Object;Landroid/content/ClipDescription;Landroid/content/ClipData;Lcom/android/internal/view/IDragAndDropPermissions;Z)Landroid/view/DragEvent;
 Landroid/view/DragEvent;->recycle()V
 Landroid/view/DragEvent;->TRACK_RECYCLED_LOCATION:Z
-Landroid/view/FallbackEventHandler;
 Landroid/view/FallbackEventHandler;->dispatchKeyEvent(Landroid/view/KeyEvent;)Z
 Landroid/view/FallbackEventHandler;->preDispatchKeyEvent(Landroid/view/KeyEvent;)V
 Landroid/view/FallbackEventHandler;->setView(Landroid/view/View;)V
-Landroid/view/FocusFinder$FocusSorter;
 Landroid/view/FocusFinder$FocusSorter;-><init>()V
 Landroid/view/FocusFinder$FocusSorter;->mLastPoolRect:I
 Landroid/view/FocusFinder$FocusSorter;->mRectByView:Ljava/util/HashMap;
@@ -79665,9 +74369,7 @@
 Landroid/view/FocusFinder$FocusSorter;->mSidesComparator:Ljava/util/Comparator;
 Landroid/view/FocusFinder$FocusSorter;->mTopsComparator:Ljava/util/Comparator;
 Landroid/view/FocusFinder$FocusSorter;->sort([Landroid/view/View;IILandroid/view/ViewGroup;Z)V
-Landroid/view/FocusFinder$UserSpecifiedFocusComparator$NextFocusGetter;
 Landroid/view/FocusFinder$UserSpecifiedFocusComparator$NextFocusGetter;->get(Landroid/view/View;Landroid/view/View;)Landroid/view/View;
-Landroid/view/FocusFinder$UserSpecifiedFocusComparator;
 Landroid/view/FocusFinder$UserSpecifiedFocusComparator;-><init>(Landroid/view/FocusFinder$UserSpecifiedFocusComparator$NextFocusGetter;)V
 Landroid/view/FocusFinder$UserSpecifiedFocusComparator;->compare(Landroid/view/View;Landroid/view/View;)I
 Landroid/view/FocusFinder$UserSpecifiedFocusComparator;->mHeadsOfChains:Landroid/util/ArrayMap;
@@ -79715,7 +74417,6 @@
 Landroid/view/FocusFinder;->setFocusBottomRight(Landroid/view/ViewGroup;Landroid/graphics/Rect;)V
 Landroid/view/FocusFinder;->setFocusTopLeft(Landroid/view/ViewGroup;Landroid/graphics/Rect;)V
 Landroid/view/FocusFinder;->tlFocusFinder:Ljava/lang/ThreadLocal;
-Landroid/view/FocusFinderHelper;
 Landroid/view/FocusFinderHelper;-><init>(Landroid/view/FocusFinder;)V
 Landroid/view/FocusFinderHelper;->beamBeats(ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;)Z
 Landroid/view/FocusFinderHelper;->beamsOverlap(ILandroid/graphics/Rect;Landroid/graphics/Rect;)Z
@@ -79724,8 +74425,6 @@
 Landroid/view/FocusFinderHelper;->majorAxisDistance(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I
 Landroid/view/FocusFinderHelper;->majorAxisDistanceToFarEdge(ILandroid/graphics/Rect;Landroid/graphics/Rect;)I
 Landroid/view/FocusFinderHelper;->mFocusFinder:Landroid/view/FocusFinder;
-Landroid/view/FrameInfo$FrameInfoFlags;
-Landroid/view/FrameInfo;
 Landroid/view/FrameInfo;-><init>()V
 Landroid/view/FrameInfo;->addFlags(J)V
 Landroid/view/FrameInfo;->ANIMATION_START:I
@@ -79745,7 +74444,6 @@
 Landroid/view/FrameInfo;->setVsync(JJ)V
 Landroid/view/FrameInfo;->updateInputEventTime(JJ)V
 Landroid/view/FrameInfo;->VSYNC:I
-Landroid/view/FrameMetrics$Index;
 Landroid/view/FrameMetrics$Index;->ANIMATION_START:I
 Landroid/view/FrameMetrics$Index;->DRAW_START:I
 Landroid/view/FrameMetrics$Index;->FLAGS:I
@@ -79761,20 +74459,15 @@
 Landroid/view/FrameMetrics$Index;->SYNC_QUEUED:I
 Landroid/view/FrameMetrics$Index;->SYNC_START:I
 Landroid/view/FrameMetrics$Index;->VSYNC:I
-Landroid/view/FrameMetrics$Metric;
 Landroid/view/FrameMetrics;-><init>()V
 Landroid/view/FrameMetrics;->DURATIONS:[I
 Landroid/view/FrameMetrics;->FRAME_INFO_FLAG_FIRST_DRAW:I
-Landroid/view/FrameMetricsObserver;
 Landroid/view/FrameMetricsObserver;-><init>(Landroid/view/Window;Landroid/os/Looper;Landroid/view/Window$OnFrameMetricsAvailableListener;)V
 Landroid/view/FrameMetricsObserver;->mListener:Landroid/view/Window$OnFrameMetricsAvailableListener;
 Landroid/view/FrameMetricsObserver;->mNative:Lcom/android/internal/util/VirtualRefBasePtr;
 Landroid/view/FrameMetricsObserver;->mWindow:Ljava/lang/ref/WeakReference;
 Landroid/view/FrameStats;->mFramesPresentedTimeNano:[J
 Landroid/view/FrameStats;->mRefreshPeriodNano:J
-Landroid/view/GestureDetector$GestureHandler;
-Landroid/view/GestureDetector$GestureHandler;-><init>()V
-Landroid/view/GestureDetector$GestureHandler;-><init>(Landroid/os/Handler;)V
 Landroid/view/GestureDetector;->cancel()V
 Landroid/view/GestureDetector;->cancelTaps()V
 Landroid/view/GestureDetector;->dispatchLongPress()V
@@ -79808,7 +74501,6 @@
 Landroid/view/GestureDetector;->SHOW_PRESS:I
 Landroid/view/GestureDetector;->TAP:I
 Landroid/view/GestureDetector;->TAP_TIMEOUT:I
-Landroid/view/GhostView;
 Landroid/view/GhostView;-><init>(Landroid/view/View;)V
 Landroid/view/GhostView;->calculateMatrix(Landroid/view/View;Landroid/view/ViewGroup;Landroid/graphics/Matrix;)V
 Landroid/view/GhostView;->copySize(Landroid/view/View;Landroid/view/View;)V
@@ -79825,12 +74517,10 @@
 Landroid/view/GhostView;->mView:Landroid/view/View;
 Landroid/view/GhostView;->setMatrix(Landroid/graphics/Matrix;)V
 Landroid/view/Gravity;->toString(I)Ljava/lang/String;
-Landroid/view/HandlerActionQueue$HandlerAction;
 Landroid/view/HandlerActionQueue$HandlerAction;-><init>(Ljava/lang/Runnable;J)V
 Landroid/view/HandlerActionQueue$HandlerAction;->action:Ljava/lang/Runnable;
 Landroid/view/HandlerActionQueue$HandlerAction;->delay:J
 Landroid/view/HandlerActionQueue$HandlerAction;->matches(Ljava/lang/Runnable;)Z
-Landroid/view/HandlerActionQueue;
 Landroid/view/HandlerActionQueue;-><init>()V
 Landroid/view/HandlerActionQueue;->executeActions(Landroid/os/Handler;)V
 Landroid/view/HandlerActionQueue;->getDelay(I)J
@@ -79852,29 +74542,22 @@
 Landroid/view/HapticFeedbackConstants;->GESTURE_START:I
 Landroid/view/HapticFeedbackConstants;->REJECT:I
 Landroid/view/HapticFeedbackConstants;->SAFE_MODE_ENABLED:I
-Landroid/view/IApplicationToken$Stub$Proxy;
 Landroid/view/IApplicationToken$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IApplicationToken$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/IApplicationToken$Stub$Proxy;->getName()Ljava/lang/String;
 Landroid/view/IApplicationToken$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/view/IApplicationToken$Stub;
 Landroid/view/IApplicationToken$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IApplicationToken;
 Landroid/view/IApplicationToken$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/IApplicationToken$Stub;->TRANSACTION_getName:I
-Landroid/view/IApplicationToken;
 Landroid/view/IApplicationToken;->getName()Ljava/lang/String;
-Landroid/view/IAppTransitionAnimationSpecsFuture$Stub$Proxy;
 Landroid/view/IAppTransitionAnimationSpecsFuture$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IAppTransitionAnimationSpecsFuture$Stub$Proxy;->get()[Landroid/view/AppTransitionAnimationSpec;
 Landroid/view/IAppTransitionAnimationSpecsFuture$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/IAppTransitionAnimationSpecsFuture$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/view/IAppTransitionAnimationSpecsFuture$Stub;
 Landroid/view/IAppTransitionAnimationSpecsFuture$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IAppTransitionAnimationSpecsFuture;
 Landroid/view/IAppTransitionAnimationSpecsFuture$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/IAppTransitionAnimationSpecsFuture$Stub;->TRANSACTION_get:I
-Landroid/view/IAppTransitionAnimationSpecsFuture;
 Landroid/view/IAppTransitionAnimationSpecsFuture;->get()[Landroid/view/AppTransitionAnimationSpec;
-Landroid/view/IDockedStackListener$Stub$Proxy;
 Landroid/view/IDockedStackListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IDockedStackListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/IDockedStackListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -79883,7 +74566,6 @@
 Landroid/view/IDockedStackListener$Stub$Proxy;->onDockedStackExistsChanged(Z)V
 Landroid/view/IDockedStackListener$Stub$Proxy;->onDockedStackMinimizedChanged(ZJZ)V
 Landroid/view/IDockedStackListener$Stub$Proxy;->onDockSideChanged(I)V
-Landroid/view/IDockedStackListener$Stub;
 Landroid/view/IDockedStackListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IDockedStackListener;
 Landroid/view/IDockedStackListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/IDockedStackListener$Stub;->TRANSACTION_onAdjustedForImeChanged:I
@@ -79891,65 +74573,51 @@
 Landroid/view/IDockedStackListener$Stub;->TRANSACTION_onDockedStackExistsChanged:I
 Landroid/view/IDockedStackListener$Stub;->TRANSACTION_onDockedStackMinimizedChanged:I
 Landroid/view/IDockedStackListener$Stub;->TRANSACTION_onDockSideChanged:I
-Landroid/view/IDockedStackListener;
 Landroid/view/IDockedStackListener;->onAdjustedForImeChanged(ZJ)V
 Landroid/view/IDockedStackListener;->onDividerVisibilityChanged(Z)V
 Landroid/view/IDockedStackListener;->onDockedStackExistsChanged(Z)V
 Landroid/view/IDockedStackListener;->onDockedStackMinimizedChanged(ZJZ)V
 Landroid/view/IDockedStackListener;->onDockSideChanged(I)V
-Landroid/view/IGraphicsStats$Stub$Proxy;
 Landroid/view/IGraphicsStats$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/IGraphicsStats$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/view/IGraphicsStats$Stub$Proxy;->requestBufferForProcess(Ljava/lang/String;Landroid/view/IGraphicsStatsCallback;)Landroid/os/ParcelFileDescriptor;
-Landroid/view/IGraphicsStats$Stub;
 Landroid/view/IGraphicsStats$Stub;-><init>()V
 Landroid/view/IGraphicsStats$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/IGraphicsStats$Stub;->TRANSACTION_requestBufferForProcess:I
-Landroid/view/IGraphicsStats;
 Landroid/view/IGraphicsStats;->requestBufferForProcess(Ljava/lang/String;Landroid/view/IGraphicsStatsCallback;)Landroid/os/ParcelFileDescriptor;
-Landroid/view/IGraphicsStatsCallback$Stub$Proxy;
 Landroid/view/IGraphicsStatsCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IGraphicsStatsCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/IGraphicsStatsCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/view/IGraphicsStatsCallback$Stub$Proxy;->onRotateGraphicsStatsBuffer()V
-Landroid/view/IGraphicsStatsCallback$Stub;
 Landroid/view/IGraphicsStatsCallback$Stub;-><init>()V
 Landroid/view/IGraphicsStatsCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IGraphicsStatsCallback;
 Landroid/view/IGraphicsStatsCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/IGraphicsStatsCallback$Stub;->TRANSACTION_onRotateGraphicsStatsBuffer:I
-Landroid/view/IGraphicsStatsCallback;
 Landroid/view/IGraphicsStatsCallback;->onRotateGraphicsStatsBuffer()V
-Landroid/view/IInputFilter$Stub$Proxy;
 Landroid/view/IInputFilter$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IInputFilter$Stub$Proxy;->filterInputEvent(Landroid/view/InputEvent;I)V
 Landroid/view/IInputFilter$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/IInputFilter$Stub$Proxy;->install(Landroid/view/IInputFilterHost;)V
 Landroid/view/IInputFilter$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/view/IInputFilter$Stub$Proxy;->uninstall()V
-Landroid/view/IInputFilter$Stub;
 Landroid/view/IInputFilter$Stub;-><init>()V
 Landroid/view/IInputFilter$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IInputFilter;
 Landroid/view/IInputFilter$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/IInputFilter$Stub;->TRANSACTION_filterInputEvent:I
 Landroid/view/IInputFilter$Stub;->TRANSACTION_install:I
 Landroid/view/IInputFilter$Stub;->TRANSACTION_uninstall:I
-Landroid/view/IInputFilter;
 Landroid/view/IInputFilter;->filterInputEvent(Landroid/view/InputEvent;I)V
 Landroid/view/IInputFilter;->install(Landroid/view/IInputFilterHost;)V
 Landroid/view/IInputFilter;->uninstall()V
-Landroid/view/IInputFilterHost$Stub$Proxy;
 Landroid/view/IInputFilterHost$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IInputFilterHost$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/IInputFilterHost$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/view/IInputFilterHost$Stub$Proxy;->sendInputEvent(Landroid/view/InputEvent;I)V
-Landroid/view/IInputFilterHost$Stub;
 Landroid/view/IInputFilterHost$Stub;-><init>()V
 Landroid/view/IInputFilterHost$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IInputFilterHost;
 Landroid/view/IInputFilterHost$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/IInputFilterHost$Stub;->TRANSACTION_sendInputEvent:I
-Landroid/view/IInputFilterHost;
 Landroid/view/IInputFilterHost;->sendInputEvent(Landroid/view/InputEvent;I)V
-Landroid/view/InputChannel;
 Landroid/view/InputChannel;->DEBUG:Z
 Landroid/view/InputChannel;->dispose()V
 Landroid/view/InputChannel;->dup()Landroid/view/InputChannel;
@@ -80015,7 +74683,6 @@
 Landroid/view/InputEvent;->setSource(I)V
 Landroid/view/InputEvent;->setTainted(Z)V
 Landroid/view/InputEvent;->TRACK_RECYCLED_LOCATION:Z
-Landroid/view/InputEventConsistencyVerifier$KeyState;
 Landroid/view/InputEventConsistencyVerifier$KeyState;-><init>()V
 Landroid/view/InputEventConsistencyVerifier$KeyState;->deviceId:I
 Landroid/view/InputEventConsistencyVerifier$KeyState;->keyCode:I
@@ -80026,7 +74693,6 @@
 Landroid/view/InputEventConsistencyVerifier$KeyState;->recycle()V
 Landroid/view/InputEventConsistencyVerifier$KeyState;->source:I
 Landroid/view/InputEventConsistencyVerifier$KeyState;->unhandled:Z
-Landroid/view/InputEventConsistencyVerifier;
 Landroid/view/InputEventConsistencyVerifier;-><init>(Ljava/lang/Object;ILjava/lang/String;)V
 Landroid/view/InputEventConsistencyVerifier;->addKeyState(III)V
 Landroid/view/InputEventConsistencyVerifier;->appendEvent(Ljava/lang/StringBuilder;ILandroid/view/InputEvent;Z)V
@@ -80072,9 +74738,7 @@
 Landroid/view/InputEventConsistencyVerifier;->RECENT_EVENTS_TO_LOG:I
 Landroid/view/InputEventConsistencyVerifier;->reset()V
 Landroid/view/InputEventConsistencyVerifier;->startEvent(Landroid/view/InputEvent;ILjava/lang/String;)Z
-Landroid/view/InputEventReceiver$Factory;
 Landroid/view/InputEventReceiver$Factory;->createInputEventReceiver(Landroid/view/InputChannel;Landroid/os/Looper;)Landroid/view/InputEventReceiver;
-Landroid/view/InputEventReceiver;
 Landroid/view/InputEventReceiver;-><init>(Landroid/view/InputChannel;Landroid/os/Looper;)V
 Landroid/view/InputEventReceiver;->consumeBatchedInputEvents(J)Z
 Landroid/view/InputEventReceiver;->dispose()V
@@ -80091,7 +74755,6 @@
 Landroid/view/InputEventReceiver;->nativeInit(Ljava/lang/ref/WeakReference;Landroid/view/InputChannel;Landroid/os/MessageQueue;)J
 Landroid/view/InputEventReceiver;->onBatchedInputEventPending()V
 Landroid/view/InputEventReceiver;->TAG:Ljava/lang/String;
-Landroid/view/InputEventSender;
 Landroid/view/InputEventSender;-><init>(Landroid/view/InputChannel;Landroid/os/Looper;)V
 Landroid/view/InputEventSender;->dispose()V
 Landroid/view/InputEventSender;->dispose(Z)V
@@ -80106,9 +74769,6 @@
 Landroid/view/InputEventSender;->onInputEventFinished(IZ)V
 Landroid/view/InputEventSender;->sendInputEvent(ILandroid/view/InputEvent;)Z
 Landroid/view/InputEventSender;->TAG:Ljava/lang/String;
-Landroid/view/InputFilter$H;
-Landroid/view/InputFilter$H;-><init>(Landroid/os/Looper;)V
-Landroid/view/InputFilter;
 Landroid/view/InputFilter;->filterInputEvent(Landroid/view/InputEvent;I)V
 Landroid/view/InputFilter;->install(Landroid/view/IInputFilterHost;)V
 Landroid/view/InputFilter;->mH:Landroid/view/InputFilter$H;
@@ -80180,7 +74840,6 @@
 Landroid/view/inputmethod/InputBinding;->mPid:I
 Landroid/view/inputmethod/InputBinding;->mUid:I
 Landroid/view/inputmethod/InputBinding;->TAG:Ljava/lang/String;
-Landroid/view/inputmethod/InputConnectionInspector$MissingMethodFlags;
 Landroid/view/inputmethod/InputConnectionInspector$MissingMethodFlags;->CLOSE_CONNECTION:I
 Landroid/view/inputmethod/InputConnectionInspector$MissingMethodFlags;->COMMIT_CONTENT:I
 Landroid/view/inputmethod/InputConnectionInspector$MissingMethodFlags;->COMMIT_CORRECTION:I
@@ -80189,7 +74848,6 @@
 Landroid/view/inputmethod/InputConnectionInspector$MissingMethodFlags;->GET_SELECTED_TEXT:I
 Landroid/view/inputmethod/InputConnectionInspector$MissingMethodFlags;->REQUEST_CURSOR_UPDATES:I
 Landroid/view/inputmethod/InputConnectionInspector$MissingMethodFlags;->SET_COMPOSING_REGION:I
-Landroid/view/inputmethod/InputConnectionInspector;
 Landroid/view/inputmethod/InputConnectionInspector;-><init>()V
 Landroid/view/inputmethod/InputConnectionInspector;->getMissingMethodFlags(Landroid/view/inputmethod/InputConnection;)I
 Landroid/view/inputmethod/InputConnectionInspector;->getMissingMethodFlagsAsString(I)Ljava/lang/String;
@@ -80235,21 +74893,13 @@
 Landroid/view/inputmethod/InputMethodInfo;->mSupportsSwitchingToNextInputMethod:Z
 Landroid/view/inputmethod/InputMethodInfo;->supportsSwitchingToNextInputMethod()Z
 Landroid/view/inputmethod/InputMethodInfo;->TAG:Ljava/lang/String;
-Landroid/view/inputmethod/InputMethodManager$ControlledInputConnectionWrapper;
 Landroid/view/inputmethod/InputMethodManager$ControlledInputConnectionWrapper;-><init>(Landroid/os/Looper;Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/InputMethodManager;)V
 Landroid/view/inputmethod/InputMethodManager$ControlledInputConnectionWrapper;->deactivate()V
 Landroid/view/inputmethod/InputMethodManager$ControlledInputConnectionWrapper;->isActive()Z
 Landroid/view/inputmethod/InputMethodManager$ControlledInputConnectionWrapper;->mParentInputMethodManager:Landroid/view/inputmethod/InputMethodManager;
 Landroid/view/inputmethod/InputMethodManager$ControlledInputConnectionWrapper;->onUserAction()V
-Landroid/view/inputmethod/InputMethodManager$FinishedInputEventCallback;
 Landroid/view/inputmethod/InputMethodManager$FinishedInputEventCallback;->onFinishedInputEvent(Ljava/lang/Object;Z)V
-Landroid/view/inputmethod/InputMethodManager$H;
-Landroid/view/inputmethod/InputMethodManager$H;-><init>(Landroid/os/Looper;)V
-Landroid/view/inputmethod/InputMethodManager$ImeInputEventSender;
-Landroid/view/inputmethod/InputMethodManager$ImeInputEventSender;-><init>(Landroid/view/InputChannel;Landroid/os/Looper;)V
 Landroid/view/inputmethod/InputMethodManager$ImeInputEventSender;->onInputEventFinished(IZ)V
-Landroid/view/inputmethod/InputMethodManager$PendingEvent;
-Landroid/view/inputmethod/InputMethodManager$PendingEvent;-><init>()V
 Landroid/view/inputmethod/InputMethodManager$PendingEvent;->mCallback:Landroid/view/inputmethod/InputMethodManager$FinishedInputEventCallback;
 Landroid/view/inputmethod/InputMethodManager$PendingEvent;->mEvent:Landroid/view/InputEvent;
 Landroid/view/inputmethod/InputMethodManager$PendingEvent;->mHandled:Z
@@ -80344,7 +74994,6 @@
 Landroid/view/inputmethod/InputMethodManager;->switchToNextInputMethodInternal(Landroid/os/IBinder;Z)Z
 Landroid/view/inputmethod/InputMethodManager;->switchToPreviousInputMethodInternal(Landroid/os/IBinder;)Z
 Landroid/view/inputmethod/InputMethodManager;->TAG:Ljava/lang/String;
-Landroid/view/inputmethod/InputMethodManagerInternal;
 Landroid/view/inputmethod/InputMethodManagerInternal;->hideCurrentInputMethod()V
 Landroid/view/inputmethod/InputMethodManagerInternal;->setInteractive(Z)V
 Landroid/view/inputmethod/InputMethodManagerInternal;->startVrInputMethodNoCheck(Landroid/content/ComponentName;)V
@@ -80390,7 +75039,6 @@
 Landroid/view/inputmethod/InputMethodSubtype;->sort(Landroid/content/Context;ILandroid/view/inputmethod/InputMethodInfo;Ljava/util/List;)Ljava/util/List;
 Landroid/view/inputmethod/InputMethodSubtype;->SUBTYPE_ID_NONE:I
 Landroid/view/inputmethod/InputMethodSubtype;->TAG:Ljava/lang/String;
-Landroid/view/inputmethod/InputMethodSubtypeArray;
 Landroid/view/inputmethod/InputMethodSubtypeArray;-><init>(Landroid/os/Parcel;)V
 Landroid/view/inputmethod/InputMethodSubtypeArray;->compress([B)[B
 Landroid/view/inputmethod/InputMethodSubtypeArray;->decompress([BI)[B
@@ -80405,7 +75053,6 @@
 Landroid/view/inputmethod/InputMethodSubtypeArray;->TAG:Ljava/lang/String;
 Landroid/view/inputmethod/InputMethodSubtypeArray;->unmarshall([B)[Landroid/view/inputmethod/InputMethodSubtype;
 Landroid/view/inputmethod/InputMethodSubtypeArray;->writeToParcel(Landroid/os/Parcel;)V
-Landroid/view/inputmethod/SparseRectFArray$SparseRectFArrayBuilder;
 Landroid/view/inputmethod/SparseRectFArray$SparseRectFArrayBuilder;-><init>()V
 Landroid/view/inputmethod/SparseRectFArray$SparseRectFArrayBuilder;->append(IFFFFI)Landroid/view/inputmethod/SparseRectFArray$SparseRectFArrayBuilder;
 Landroid/view/inputmethod/SparseRectFArray$SparseRectFArrayBuilder;->build()Landroid/view/inputmethod/SparseRectFArray;
@@ -80418,7 +75065,6 @@
 Landroid/view/inputmethod/SparseRectFArray$SparseRectFArrayBuilder;->mFlagsArray:[I
 Landroid/view/inputmethod/SparseRectFArray$SparseRectFArrayBuilder;->mKeys:[I
 Landroid/view/inputmethod/SparseRectFArray$SparseRectFArrayBuilder;->reset()V
-Landroid/view/inputmethod/SparseRectFArray;
 Landroid/view/inputmethod/SparseRectFArray;-><init>(Landroid/os/Parcel;)V
 Landroid/view/inputmethod/SparseRectFArray;-><init>(Landroid/view/inputmethod/SparseRectFArray$SparseRectFArrayBuilder;)V
 Landroid/view/inputmethod/SparseRectFArray;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -80427,12 +75073,9 @@
 Landroid/view/inputmethod/SparseRectFArray;->mCoordinates:[F
 Landroid/view/inputmethod/SparseRectFArray;->mFlagsArray:[I
 Landroid/view/inputmethod/SparseRectFArray;->mKeys:[I
-Landroid/view/InputQueue$ActiveInputEvent;
-Landroid/view/InputQueue$ActiveInputEvent;-><init>()V
 Landroid/view/InputQueue$ActiveInputEvent;->mCallback:Landroid/view/InputQueue$FinishedInputEventCallback;
 Landroid/view/InputQueue$ActiveInputEvent;->mToken:Ljava/lang/Object;
 Landroid/view/InputQueue$ActiveInputEvent;->recycle()V
-Landroid/view/InputQueue$FinishedInputEventCallback;
 Landroid/view/InputQueue$FinishedInputEventCallback;->onFinishedInputEvent(Ljava/lang/Object;Z)V
 Landroid/view/InputQueue;-><init>()V
 Landroid/view/InputQueue;->dispose()V
@@ -80449,36 +75092,29 @@
 Landroid/view/InputQueue;->obtainActiveInputEvent(Ljava/lang/Object;Landroid/view/InputQueue$FinishedInputEventCallback;)Landroid/view/InputQueue$ActiveInputEvent;
 Landroid/view/InputQueue;->recycleActiveInputEvent(Landroid/view/InputQueue$ActiveInputEvent;)V
 Landroid/view/InputQueue;->sendInputEvent(Landroid/view/InputEvent;Ljava/lang/Object;ZLandroid/view/InputQueue$FinishedInputEventCallback;)V
-Landroid/view/IOnKeyguardExitResult$Stub$Proxy;
 Landroid/view/IOnKeyguardExitResult$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IOnKeyguardExitResult$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/IOnKeyguardExitResult$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/view/IOnKeyguardExitResult$Stub$Proxy;->onKeyguardExitResult(Z)V
-Landroid/view/IOnKeyguardExitResult$Stub;
 Landroid/view/IOnKeyguardExitResult$Stub;-><init>()V
 Landroid/view/IOnKeyguardExitResult$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IOnKeyguardExitResult;
 Landroid/view/IOnKeyguardExitResult$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/IOnKeyguardExitResult$Stub;->TRANSACTION_onKeyguardExitResult:I
-Landroid/view/IOnKeyguardExitResult;
-Landroid/view/IPinnedStackController$Stub$Proxy;
 Landroid/view/IPinnedStackController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IPinnedStackController$Stub$Proxy;->getDisplayRotation()I
 Landroid/view/IPinnedStackController$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/IPinnedStackController$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/view/IPinnedStackController$Stub$Proxy;->setIsMinimized(Z)V
 Landroid/view/IPinnedStackController$Stub$Proxy;->setMinEdgeSize(I)V
-Landroid/view/IPinnedStackController$Stub;
 Landroid/view/IPinnedStackController$Stub;-><init>()V
 Landroid/view/IPinnedStackController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IPinnedStackController;
 Landroid/view/IPinnedStackController$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/IPinnedStackController$Stub;->TRANSACTION_getDisplayRotation:I
 Landroid/view/IPinnedStackController$Stub;->TRANSACTION_setIsMinimized:I
 Landroid/view/IPinnedStackController$Stub;->TRANSACTION_setMinEdgeSize:I
-Landroid/view/IPinnedStackController;
 Landroid/view/IPinnedStackController;->getDisplayRotation()I
 Landroid/view/IPinnedStackController;->setIsMinimized(Z)V
 Landroid/view/IPinnedStackController;->setMinEdgeSize(I)V
-Landroid/view/IPinnedStackListener$Stub$Proxy;
 Landroid/view/IPinnedStackListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IPinnedStackListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/IPinnedStackListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -80488,7 +75124,6 @@
 Landroid/view/IPinnedStackListener$Stub$Proxy;->onMinimizedStateChanged(Z)V
 Landroid/view/IPinnedStackListener$Stub$Proxy;->onMovementBoundsChanged(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZZI)V
 Landroid/view/IPinnedStackListener$Stub$Proxy;->onShelfVisibilityChanged(ZI)V
-Landroid/view/IPinnedStackListener$Stub;
 Landroid/view/IPinnedStackListener$Stub;-><init>()V
 Landroid/view/IPinnedStackListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IPinnedStackListener;
 Landroid/view/IPinnedStackListener$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -80498,14 +75133,12 @@
 Landroid/view/IPinnedStackListener$Stub;->TRANSACTION_onMinimizedStateChanged:I
 Landroid/view/IPinnedStackListener$Stub;->TRANSACTION_onMovementBoundsChanged:I
 Landroid/view/IPinnedStackListener$Stub;->TRANSACTION_onShelfVisibilityChanged:I
-Landroid/view/IPinnedStackListener;
 Landroid/view/IPinnedStackListener;->onActionsChanged(Landroid/content/pm/ParceledListSlice;)V
 Landroid/view/IPinnedStackListener;->onImeVisibilityChanged(ZI)V
 Landroid/view/IPinnedStackListener;->onListenerRegistered(Landroid/view/IPinnedStackController;)V
 Landroid/view/IPinnedStackListener;->onMinimizedStateChanged(Z)V
 Landroid/view/IPinnedStackListener;->onMovementBoundsChanged(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZZI)V
 Landroid/view/IPinnedStackListener;->onShelfVisibilityChanged(ZI)V
-Landroid/view/IRecentsAnimationController$Stub$Proxy;
 Landroid/view/IRecentsAnimationController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IRecentsAnimationController$Stub$Proxy;->finish(Z)V
 Landroid/view/IRecentsAnimationController$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -80515,7 +75148,6 @@
 Landroid/view/IRecentsAnimationController$Stub$Proxy;->setAnimationTargetsBehindSystemBars(Z)V
 Landroid/view/IRecentsAnimationController$Stub$Proxy;->setInputConsumerEnabled(Z)V
 Landroid/view/IRecentsAnimationController$Stub$Proxy;->setSplitScreenMinimized(Z)V
-Landroid/view/IRecentsAnimationController$Stub;
 Landroid/view/IRecentsAnimationController$Stub;-><init>()V
 Landroid/view/IRecentsAnimationController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IRecentsAnimationController;
 Landroid/view/IRecentsAnimationController$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -80525,67 +75157,50 @@
 Landroid/view/IRecentsAnimationController$Stub;->TRANSACTION_setAnimationTargetsBehindSystemBars:I
 Landroid/view/IRecentsAnimationController$Stub;->TRANSACTION_setInputConsumerEnabled:I
 Landroid/view/IRecentsAnimationController$Stub;->TRANSACTION_setSplitScreenMinimized:I
-Landroid/view/IRecentsAnimationController;
 Landroid/view/IRecentsAnimationController;->hideCurrentInputMethod()V
 Landroid/view/IRecentsAnimationController;->setSplitScreenMinimized(Z)V
-Landroid/view/IRecentsAnimationRunner$Stub$Proxy;
 Landroid/view/IRecentsAnimationRunner$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IRecentsAnimationRunner$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/IRecentsAnimationRunner$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/view/IRecentsAnimationRunner$Stub$Proxy;->onAnimationCanceled()V
 Landroid/view/IRecentsAnimationRunner$Stub$Proxy;->onAnimationStart(Landroid/view/IRecentsAnimationController;[Landroid/view/RemoteAnimationTarget;Landroid/graphics/Rect;Landroid/graphics/Rect;)V
-Landroid/view/IRecentsAnimationRunner$Stub;
 Landroid/view/IRecentsAnimationRunner$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IRecentsAnimationRunner;
 Landroid/view/IRecentsAnimationRunner$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/IRecentsAnimationRunner$Stub;->TRANSACTION_onAnimationCanceled:I
 Landroid/view/IRecentsAnimationRunner$Stub;->TRANSACTION_onAnimationStart:I
-Landroid/view/IRecentsAnimationRunner;
-Landroid/view/IRemoteAnimationFinishedCallback$Stub$Proxy;
 Landroid/view/IRemoteAnimationFinishedCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IRemoteAnimationFinishedCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/IRemoteAnimationFinishedCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/view/IRemoteAnimationFinishedCallback$Stub$Proxy;->onAnimationFinished()V
-Landroid/view/IRemoteAnimationFinishedCallback$Stub;
 Landroid/view/IRemoteAnimationFinishedCallback$Stub;-><init>()V
 Landroid/view/IRemoteAnimationFinishedCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IRemoteAnimationFinishedCallback;
 Landroid/view/IRemoteAnimationFinishedCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/IRemoteAnimationFinishedCallback$Stub;->TRANSACTION_onAnimationFinished:I
-Landroid/view/IRemoteAnimationFinishedCallback;
-Landroid/view/IRemoteAnimationRunner$Stub$Proxy;
 Landroid/view/IRemoteAnimationRunner$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IRemoteAnimationRunner$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/IRemoteAnimationRunner$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/view/IRemoteAnimationRunner$Stub$Proxy;->onAnimationCancelled()V
 Landroid/view/IRemoteAnimationRunner$Stub$Proxy;->onAnimationStart([Landroid/view/RemoteAnimationTarget;Landroid/view/IRemoteAnimationFinishedCallback;)V
-Landroid/view/IRemoteAnimationRunner$Stub;
 Landroid/view/IRemoteAnimationRunner$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IRemoteAnimationRunner;
 Landroid/view/IRemoteAnimationRunner$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/IRemoteAnimationRunner$Stub;->TRANSACTION_onAnimationCancelled:I
 Landroid/view/IRemoteAnimationRunner$Stub;->TRANSACTION_onAnimationStart:I
-Landroid/view/IRemoteAnimationRunner;
-Landroid/view/IRotationWatcher$Stub$Proxy;
 Landroid/view/IRotationWatcher$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IRotationWatcher$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/IRotationWatcher$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/view/IRotationWatcher$Stub$Proxy;->onRotationChanged(I)V
-Landroid/view/IRotationWatcher$Stub;
 Landroid/view/IRotationWatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IRotationWatcher;
 Landroid/view/IRotationWatcher$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/IRotationWatcher$Stub;->TRANSACTION_onRotationChanged:I
-Landroid/view/IRotationWatcher;
-Landroid/view/IWallpaperVisibilityListener$Stub$Proxy;
 Landroid/view/IWallpaperVisibilityListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IWallpaperVisibilityListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/IWallpaperVisibilityListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/view/IWallpaperVisibilityListener$Stub$Proxy;->onWallpaperVisibilityChanged(ZI)V
-Landroid/view/IWallpaperVisibilityListener$Stub;
 Landroid/view/IWallpaperVisibilityListener$Stub;-><init>()V
 Landroid/view/IWallpaperVisibilityListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWallpaperVisibilityListener;
 Landroid/view/IWallpaperVisibilityListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/IWallpaperVisibilityListener$Stub;->TRANSACTION_onWallpaperVisibilityChanged:I
-Landroid/view/IWallpaperVisibilityListener;
 Landroid/view/IWallpaperVisibilityListener;->onWallpaperVisibilityChanged(ZI)V
-Landroid/view/IWindow$Stub$Proxy;
 Landroid/view/IWindow$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IWindow$Stub$Proxy;->closeSystemDialogs(Ljava/lang/String;)V
 Landroid/view/IWindow$Stub$Proxy;->dispatchAppVisibility(Z)V
@@ -80604,7 +75219,6 @@
 Landroid/view/IWindow$Stub$Proxy;->resized(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZLandroid/util/MergedConfiguration;Landroid/graphics/Rect;ZZILandroid/view/DisplayCutout$ParcelableWrapper;)V
 Landroid/view/IWindow$Stub$Proxy;->updatePointerIcon(FF)V
 Landroid/view/IWindow$Stub$Proxy;->windowFocusChanged(ZZ)V
-Landroid/view/IWindow$Stub;
 Landroid/view/IWindow$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/IWindow$Stub;->TRANSACTION_closeSystemDialogs:I
 Landroid/view/IWindow$Stub;->TRANSACTION_dispatchAppVisibility:I
@@ -80621,7 +75235,6 @@
 Landroid/view/IWindow$Stub;->TRANSACTION_resized:I
 Landroid/view/IWindow$Stub;->TRANSACTION_updatePointerIcon:I
 Landroid/view/IWindow$Stub;->TRANSACTION_windowFocusChanged:I
-Landroid/view/IWindow;
 Landroid/view/IWindow;->dispatchDragEvent(Landroid/view/DragEvent;)V
 Landroid/view/IWindow;->dispatchPointerCaptureChanged(Z)V
 Landroid/view/IWindow;->dispatchSystemUiVisibilityChanged(IIII)V
@@ -80631,40 +75244,33 @@
 Landroid/view/IWindow;->requestAppKeyboardShortcuts(Lcom/android/internal/os/IResultReceiver;I)V
 Landroid/view/IWindow;->resized(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZLandroid/util/MergedConfiguration;Landroid/graphics/Rect;ZZILandroid/view/DisplayCutout$ParcelableWrapper;)V
 Landroid/view/IWindow;->updatePointerIcon(FF)V
-Landroid/view/IWindowFocusObserver$Stub$Proxy;
 Landroid/view/IWindowFocusObserver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IWindowFocusObserver$Stub$Proxy;->focusGained(Landroid/os/IBinder;)V
 Landroid/view/IWindowFocusObserver$Stub$Proxy;->focusLost(Landroid/os/IBinder;)V
 Landroid/view/IWindowFocusObserver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/IWindowFocusObserver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Landroid/view/IWindowFocusObserver$Stub;
 Landroid/view/IWindowFocusObserver$Stub;-><init>()V
 Landroid/view/IWindowFocusObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowFocusObserver;
 Landroid/view/IWindowFocusObserver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/IWindowFocusObserver$Stub;->TRANSACTION_focusGained:I
 Landroid/view/IWindowFocusObserver$Stub;->TRANSACTION_focusLost:I
-Landroid/view/IWindowFocusObserver;
 Landroid/view/IWindowFocusObserver;->focusGained(Landroid/os/IBinder;)V
 Landroid/view/IWindowFocusObserver;->focusLost(Landroid/os/IBinder;)V
-Landroid/view/IWindowId$Stub$Proxy;
 Landroid/view/IWindowId$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IWindowId$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/IWindowId$Stub$Proxy;->isFocused()Z
 Landroid/view/IWindowId$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/view/IWindowId$Stub$Proxy;->registerFocusObserver(Landroid/view/IWindowFocusObserver;)V
 Landroid/view/IWindowId$Stub$Proxy;->unregisterFocusObserver(Landroid/view/IWindowFocusObserver;)V
-Landroid/view/IWindowId$Stub;
 Landroid/view/IWindowId$Stub;-><init>()V
 Landroid/view/IWindowId$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowId;
 Landroid/view/IWindowId$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/IWindowId$Stub;->TRANSACTION_isFocused:I
 Landroid/view/IWindowId$Stub;->TRANSACTION_registerFocusObserver:I
 Landroid/view/IWindowId$Stub;->TRANSACTION_unregisterFocusObserver:I
-Landroid/view/IWindowId;
 Landroid/view/IWindowId;->isFocused()Z
 Landroid/view/IWindowId;->registerFocusObserver(Landroid/view/IWindowFocusObserver;)V
 Landroid/view/IWindowId;->unregisterFocusObserver(Landroid/view/IWindowFocusObserver;)V
-Landroid/view/IWindowManager$Stub$Proxy;
 Landroid/view/IWindowManager$Stub$Proxy;->addWindowToken(Landroid/os/IBinder;II)V
 Landroid/view/IWindowManager$Stub$Proxy;->clearForcedDisplayDensityForUser(II)V
 Landroid/view/IWindowManager$Stub$Proxy;->clearForcedDisplaySize(I)V
@@ -80755,7 +75361,6 @@
 Landroid/view/IWindowManager$Stub$Proxy;->unregisterWallpaperVisibilityListener(Landroid/view/IWallpaperVisibilityListener;I)V
 Landroid/view/IWindowManager$Stub$Proxy;->updateOrientationFromAppTokens(Landroid/content/res/Configuration;Landroid/os/IBinder;I)Landroid/content/res/Configuration;
 Landroid/view/IWindowManager$Stub$Proxy;->updateRotation(ZZ)V
-Landroid/view/IWindowManager$Stub;
 Landroid/view/IWindowManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/IWindowManager$Stub;->TRANSACTION_addWindowToken:I
 Landroid/view/IWindowManager$Stub;->TRANSACTION_clearForcedDisplayDensityForUser:I
@@ -80850,7 +75455,6 @@
 Landroid/view/IWindowManager$Stub;->TRANSACTION_updateOrientationFromAppTokens:I
 Landroid/view/IWindowManager$Stub;->TRANSACTION_updateRotation:I
 Landroid/view/IWindowManager$Stub;->TRANSACTION_watchRotation:I
-Landroid/view/IWindowManager;
 Landroid/view/IWindowManager;->addWindowToken(Landroid/os/IBinder;II)V
 Landroid/view/IWindowManager;->clearForcedDisplayDensityForUser(II)V
 Landroid/view/IWindowManager;->clearForcedDisplaySize(I)V
@@ -80913,7 +75517,6 @@
 Landroid/view/IWindowManager;->updateOrientationFromAppTokens(Landroid/content/res/Configuration;Landroid/os/IBinder;I)Landroid/content/res/Configuration;
 Landroid/view/IWindowManager;->updateRotation(ZZ)V
 Landroid/view/IWindowManager;->watchRotation(Landroid/view/IRotationWatcher;I)I
-Landroid/view/IWindowSession$Stub$Proxy;
 Landroid/view/IWindowSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IWindowSession$Stub$Proxy;->add(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/InputChannel;)I
 Landroid/view/IWindowSession$Stub$Proxy;->addToDisplay(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/view/InputChannel;)I
@@ -80947,7 +75550,6 @@
 Landroid/view/IWindowSession$Stub$Proxy;->updateTapExcludeRegion(Landroid/view/IWindow;IIIII)V
 Landroid/view/IWindowSession$Stub$Proxy;->wallpaperCommandComplete(Landroid/os/IBinder;Landroid/os/Bundle;)V
 Landroid/view/IWindowSession$Stub$Proxy;->wallpaperOffsetsComplete(Landroid/os/IBinder;)V
-Landroid/view/IWindowSession$Stub;
 Landroid/view/IWindowSession$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/IWindowSession$Stub;->TRANSACTION_add:I
 Landroid/view/IWindowSession$Stub;->TRANSACTION_addToDisplay:I
@@ -80980,7 +75582,6 @@
 Landroid/view/IWindowSession$Stub;->TRANSACTION_updateTapExcludeRegion:I
 Landroid/view/IWindowSession$Stub;->TRANSACTION_wallpaperCommandComplete:I
 Landroid/view/IWindowSession$Stub;->TRANSACTION_wallpaperOffsetsComplete:I
-Landroid/view/IWindowSession;
 Landroid/view/IWindowSession;->add(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;ILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/InputChannel;)I
 Landroid/view/IWindowSession;->addToDisplay(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IILandroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/DisplayCutout$ParcelableWrapper;Landroid/view/InputChannel;)I
 Landroid/view/IWindowSession;->addToDisplayWithoutInputChannel(Landroid/view/IWindow;ILandroid/view/WindowManager$LayoutParams;IILandroid/graphics/Rect;Landroid/graphics/Rect;)I
@@ -81003,17 +75604,14 @@
 Landroid/view/IWindowSession;->startMovingTask(Landroid/view/IWindow;FF)Z
 Landroid/view/IWindowSession;->updatePointerIcon(Landroid/view/IWindow;)V
 Landroid/view/IWindowSession;->updateTapExcludeRegion(Landroid/view/IWindow;IIIII)V
-Landroid/view/IWindowSessionCallback$Stub$Proxy;
 Landroid/view/IWindowSessionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IWindowSessionCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Landroid/view/IWindowSessionCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/view/IWindowSessionCallback$Stub$Proxy;->onAnimatorScaleChanged(F)V
-Landroid/view/IWindowSessionCallback$Stub;
 Landroid/view/IWindowSessionCallback$Stub;-><init>()V
 Landroid/view/IWindowSessionCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowSessionCallback;
 Landroid/view/IWindowSessionCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/view/IWindowSessionCallback$Stub;->TRANSACTION_onAnimatorScaleChanged:I
-Landroid/view/IWindowSessionCallback;
 Landroid/view/IWindowSessionCallback;->onAnimatorScaleChanged(F)V
 Landroid/view/KeyboardShortcutGroup;-><init>(Landroid/os/Parcel;)V
 Landroid/view/KeyboardShortcutGroup;->mItems:Ljava/util/List;
@@ -81027,7 +75625,6 @@
 Landroid/view/KeyboardShortcutInfo;->mKeycode:I
 Landroid/view/KeyboardShortcutInfo;->mLabel:Ljava/lang/CharSequence;
 Landroid/view/KeyboardShortcutInfo;->mModifiers:I
-Landroid/view/KeyCharacterMap$FallbackAction;
 Landroid/view/KeyCharacterMap$FallbackAction;-><init>()V
 Landroid/view/KeyCharacterMap$FallbackAction;->MAX_RECYCLED:I
 Landroid/view/KeyCharacterMap$FallbackAction;->next:Landroid/view/KeyCharacterMap$FallbackAction;
@@ -81121,7 +75718,6 @@
 Landroid/view/KeyEvent;->recycleIfNeededAfterDispatch()V
 Landroid/view/KeyEvent;->setTainted(Z)V
 Landroid/view/KeyEvent;->TAG:Ljava/lang/String;
-Landroid/view/LayoutInflater$BlinkLayout;
 Landroid/view/LayoutInflater$BlinkLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/view/LayoutInflater$BlinkLayout;->BLINK_DELAY:I
 Landroid/view/LayoutInflater$BlinkLayout;->makeBlink()V
@@ -81129,7 +75725,6 @@
 Landroid/view/LayoutInflater$BlinkLayout;->mBlinkState:Z
 Landroid/view/LayoutInflater$BlinkLayout;->MESSAGE_BLINK:I
 Landroid/view/LayoutInflater$BlinkLayout;->mHandler:Landroid/os/Handler;
-Landroid/view/LayoutInflater$FactoryMerger;
 Landroid/view/LayoutInflater$FactoryMerger;-><init>(Landroid/view/LayoutInflater$Factory;Landroid/view/LayoutInflater$Factory2;Landroid/view/LayoutInflater$Factory;Landroid/view/LayoutInflater$Factory2;)V
 Landroid/view/LayoutInflater$FactoryMerger;->mF12:Landroid/view/LayoutInflater$Factory2;
 Landroid/view/LayoutInflater$FactoryMerger;->mF1:Landroid/view/LayoutInflater$Factory;
@@ -81154,7 +75749,6 @@
 Landroid/view/LayoutInflater;->TAG_REQUEST_FOCUS:Ljava/lang/String;
 Landroid/view/LayoutInflater;->TAG_TAG:Ljava/lang/String;
 Landroid/view/LayoutInflater;->verifyClassLoader(Ljava/lang/reflect/Constructor;)Z
-Landroid/view/MagnificationSpec;
 Landroid/view/MagnificationSpec;-><init>()V
 Landroid/view/MagnificationSpec;->clear()V
 Landroid/view/MagnificationSpec;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -81174,13 +75768,10 @@
 Landroid/view/Menu;->CATEGORY_SHIFT:I
 Landroid/view/Menu;->USER_MASK:I
 Landroid/view/Menu;->USER_SHIFT:I
-Landroid/view/MenuInflater$InflatedOnMenuItemClickListener;
 Landroid/view/MenuInflater$InflatedOnMenuItemClickListener;-><init>(Ljava/lang/Object;Ljava/lang/String;)V
 Landroid/view/MenuInflater$InflatedOnMenuItemClickListener;->mMethod:Ljava/lang/reflect/Method;
 Landroid/view/MenuInflater$InflatedOnMenuItemClickListener;->mRealOwner:Ljava/lang/Object;
 Landroid/view/MenuInflater$InflatedOnMenuItemClickListener;->PARAM_TYPES:[Ljava/lang/Class;
-Landroid/view/MenuInflater$MenuState;
-Landroid/view/MenuInflater$MenuState;-><init>(Landroid/view/Menu;)V
 Landroid/view/MenuInflater$MenuState;->addItem()Landroid/view/MenuItem;
 Landroid/view/MenuInflater$MenuState;->addSubMenuItem()Landroid/view/SubMenu;
 Landroid/view/MenuInflater$MenuState;->defaultGroupId:I
@@ -81330,8 +75921,6 @@
 Landroid/view/MotionEvent;->setTargetAccessibilityFocus(Z)V
 Landroid/view/MotionEvent;->toolTypeToString(I)Ljava/lang/String;
 Landroid/view/MotionEvent;->TOOL_TYPE_SYMBOLIC_NAMES:Landroid/util/SparseArray;
-Landroid/view/NotificationHeaderView$HeaderTouchListener;
-Landroid/view/NotificationHeaderView$HeaderTouchListener;-><init>()V
 Landroid/view/NotificationHeaderView$HeaderTouchListener;->addRectAroundView(Landroid/view/View;)Landroid/graphics/Rect;
 Landroid/view/NotificationHeaderView$HeaderTouchListener;->addWidthRect()V
 Landroid/view/NotificationHeaderView$HeaderTouchListener;->bindTouchRects()V
@@ -81344,7 +75933,6 @@
 Landroid/view/NotificationHeaderView$HeaderTouchListener;->mTouchRects:Ljava/util/ArrayList;
 Landroid/view/NotificationHeaderView$HeaderTouchListener;->mTouchSlop:I
 Landroid/view/NotificationHeaderView$HeaderTouchListener;->mTrackGesture:Z
-Landroid/view/NotificationHeaderView;
 Landroid/view/NotificationHeaderView;-><init>(Landroid/content/Context;)V
 Landroid/view/NotificationHeaderView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 Landroid/view/NotificationHeaderView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
@@ -81396,8 +75984,6 @@
 Landroid/view/NotificationHeaderView;->shrinkViewForOverflow(IILandroid/view/View;I)I
 Landroid/view/NotificationHeaderView;->updateExpandButton()V
 Landroid/view/NotificationHeaderView;->updateTouchListener()V
-Landroid/view/OrientationEventListener$SensorEventListenerImpl;
-Landroid/view/OrientationEventListener$SensorEventListenerImpl;-><init>()V
 Landroid/view/OrientationEventListener$SensorEventListenerImpl;->_DATA_X:I
 Landroid/view/OrientationEventListener$SensorEventListenerImpl;->_DATA_Y:I
 Landroid/view/OrientationEventListener$SensorEventListenerImpl;->_DATA_Z:I
@@ -81412,11 +75998,7 @@
 Landroid/view/OrientationEventListener;->mSensorManager:Landroid/hardware/SensorManager;
 Landroid/view/OrientationEventListener;->registerListener(Landroid/view/OrientationListener;)V
 Landroid/view/OrientationEventListener;->TAG:Ljava/lang/String;
-Landroid/view/OrientationListener$OrientationEventListenerInternal;
-Landroid/view/OrientationListener$OrientationEventListenerInternal;-><init>(Landroid/content/Context;)V
-Landroid/view/OrientationListener$OrientationEventListenerInternal;-><init>(Landroid/content/Context;I)V
 Landroid/view/OrientationListener;->mOrientationEventLis:Landroid/view/OrientationEventListener;
-Landroid/view/PixelCopy$CopyResultStatus;
 Landroid/view/PixelCopy;-><init>()V
 Landroid/view/PixelCopy;->validateBitmapDest(Landroid/graphics/Bitmap;)V
 Landroid/view/PointerIcon;-><init>(I)V
@@ -81439,7 +76021,6 @@
 Landroid/view/PointerIcon;->TYPE_SPOT_HOVER:I
 Landroid/view/PointerIcon;->TYPE_SPOT_TOUCH:I
 Landroid/view/PointerIcon;->validateHotSpot(Landroid/graphics/Bitmap;FF)V
-Landroid/view/RecordingCanvas;
 Landroid/view/RecordingCanvas;-><init>(J)V
 Landroid/view/RecordingCanvas;->drawPatch(Landroid/graphics/NinePatch;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
 Landroid/view/RecordingCanvas;->drawPatch(Landroid/graphics/NinePatch;Landroid/graphics/RectF;Landroid/graphics/Paint;)V
@@ -81469,8 +76050,6 @@
 Landroid/view/RecordingCanvas;->nDrawTextRun(JLjava/lang/String;IIIIFFZJ)V
 Landroid/view/RecordingCanvas;->nDrawTextRun(J[CIIIIFFZJJ)V
 Landroid/view/RecordingCanvas;->nDrawVertices(JII[FI[FI[II[SIIJ)V
-Landroid/view/RemotableViewMethod;
-Landroid/view/RemoteAnimationAdapter;
 Landroid/view/RemoteAnimationAdapter;-><init>(Landroid/os/Parcel;)V
 Landroid/view/RemoteAnimationAdapter;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/view/RemoteAnimationAdapter;->getCallingPid()I
@@ -81482,21 +76061,17 @@
 Landroid/view/RemoteAnimationAdapter;->mRunner:Landroid/view/IRemoteAnimationRunner;
 Landroid/view/RemoteAnimationAdapter;->mStatusBarTransitionDelay:J
 Landroid/view/RemoteAnimationAdapter;->setCallingPid(I)V
-Landroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry;
 Landroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry;-><init>(Landroid/os/Parcel;)V
 Landroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry;-><init>(Landroid/view/RemoteAnimationAdapter;I)V
 Landroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry;->activityTypeFilter:I
 Landroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry;->adapter:Landroid/view/RemoteAnimationAdapter;
 Landroid/view/RemoteAnimationDefinition$RemoteAnimationAdapterEntry;->CREATOR:Landroid/os/Parcelable$Creator;
-Landroid/view/RemoteAnimationDefinition;
 Landroid/view/RemoteAnimationDefinition;-><init>(Landroid/os/Parcel;)V
 Landroid/view/RemoteAnimationDefinition;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/view/RemoteAnimationDefinition;->getAdapter(ILandroid/util/ArraySet;)Landroid/view/RemoteAnimationAdapter;
 Landroid/view/RemoteAnimationDefinition;->hasTransition(ILandroid/util/ArraySet;)Z
 Landroid/view/RemoteAnimationDefinition;->mTransitionAnimationMap:Landroid/util/SparseArray;
 Landroid/view/RemoteAnimationDefinition;->setCallingPid(I)V
-Landroid/view/RemoteAnimationTarget$Mode;
-Landroid/view/RemoteAnimationTarget;
 Landroid/view/RemoteAnimationTarget;-><init>(IILandroid/view/SurfaceControl;ZLandroid/graphics/Rect;Landroid/graphics/Rect;ILandroid/graphics/Point;Landroid/graphics/Rect;Landroid/app/WindowConfiguration;Z)V
 Landroid/view/RemoteAnimationTarget;-><init>(Landroid/os/Parcel;)V
 Landroid/view/RemoteAnimationTarget;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -81504,10 +76079,8 @@
 Landroid/view/RemoteAnimationTarget;->MODE_CLOSING:I
 Landroid/view/RemoteAnimationTarget;->MODE_OPENING:I
 Landroid/view/RemoteAnimationTarget;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/view/RenderNode$NoImagePreloadHolder;
 Landroid/view/RenderNode$NoImagePreloadHolder;-><init>()V
 Landroid/view/RenderNode$NoImagePreloadHolder;->sRegistry:Llibcore/util/NativeAllocationRegistry;
-Landroid/view/RenderNode;
 Landroid/view/RenderNode;-><init>(J)V
 Landroid/view/RenderNode;-><init>(Ljava/lang/String;Landroid/view/View;)V
 Landroid/view/RenderNode;->addAnimator(Landroid/view/RenderNodeAnimator;)V
@@ -81643,7 +76216,6 @@
 Landroid/view/RenderNode;->setTranslationX(F)Z
 Landroid/view/RenderNode;->setTranslationY(F)Z
 Landroid/view/RenderNode;->setTranslationZ(F)Z
-Landroid/view/RenderNodeAnimator$DelayedAnimationHelper;
 Landroid/view/RenderNodeAnimator$DelayedAnimationHelper;-><init>()V
 Landroid/view/RenderNodeAnimator$DelayedAnimationHelper;->addDelayedAnimation(Landroid/view/RenderNodeAnimator;)V
 Landroid/view/RenderNodeAnimator$DelayedAnimationHelper;->mCallbackScheduled:Z
@@ -81651,7 +76223,6 @@
 Landroid/view/RenderNodeAnimator$DelayedAnimationHelper;->mDelayedAnims:Ljava/util/ArrayList;
 Landroid/view/RenderNodeAnimator$DelayedAnimationHelper;->removeDelayedAnimation(Landroid/view/RenderNodeAnimator;)V
 Landroid/view/RenderNodeAnimator$DelayedAnimationHelper;->scheduleCallback()V
-Landroid/view/RenderNodeAnimator;
 Landroid/view/RenderNodeAnimator;-><init>(IIFF)V
 Landroid/view/RenderNodeAnimator;->ALPHA:I
 Landroid/view/RenderNodeAnimator;->applyInterpolator()V
@@ -81715,11 +76286,9 @@
 Landroid/view/RenderNodeAnimator;->X:I
 Landroid/view/RenderNodeAnimator;->Y:I
 Landroid/view/RenderNodeAnimator;->Z:I
-Landroid/view/RenderNodeAnimatorSetHelper;
 Landroid/view/RenderNodeAnimatorSetHelper;-><init>()V
 Landroid/view/RenderNodeAnimatorSetHelper;->createNativeInterpolator(Landroid/animation/TimeInterpolator;J)J
 Landroid/view/RenderNodeAnimatorSetHelper;->getTarget(Landroid/view/DisplayListCanvas;)Landroid/view/RenderNode;
-Landroid/view/RoundScrollbarRenderer;
 Landroid/view/RoundScrollbarRenderer;-><init>(Landroid/view/View;)V
 Landroid/view/RoundScrollbarRenderer;->applyAlpha(IF)I
 Landroid/view/RoundScrollbarRenderer;->clamp(FFF)F
@@ -81767,11 +76336,7 @@
 Landroid/view/ScaleGestureDetector;->TOUCH_STABILIZE_TIME:J
 Landroid/view/SearchEvent;->mInputDevice:Landroid/view/InputDevice;
 Landroid/view/SoundEffectConstants;-><init>()V
-Landroid/view/Surface$CompatibleCanvas;
-Landroid/view/Surface$CompatibleCanvas;-><init>()V
 Landroid/view/Surface$CompatibleCanvas;->mOrigMatrix:Landroid/graphics/Matrix;
-Landroid/view/Surface$HwuiContext;
-Landroid/view/Surface$HwuiContext;-><init>(Z)V
 Landroid/view/Surface$HwuiContext;->destroy()V
 Landroid/view/Surface$HwuiContext;->isWideColorGamut()Z
 Landroid/view/Surface$HwuiContext;->lockCanvas(II)Landroid/graphics/Canvas;
@@ -81781,8 +76346,6 @@
 Landroid/view/Surface$HwuiContext;->mRenderNode:Landroid/view/RenderNode;
 Landroid/view/Surface$HwuiContext;->unlockAndPost(Landroid/graphics/Canvas;)V
 Landroid/view/Surface$HwuiContext;->updateSurface()V
-Landroid/view/Surface$Rotation;
-Landroid/view/Surface$ScalingMode;
 Landroid/view/Surface;->allocateBuffers()V
 Landroid/view/Surface;->attachAndQueueBuffer(Landroid/graphics/GraphicBuffer;)V
 Landroid/view/Surface;->checkNotReleasedLocked()V
@@ -81837,7 +76400,6 @@
 Landroid/view/Surface;->setSharedBufferModeEnabled(Z)V
 Landroid/view/Surface;->TAG:Ljava/lang/String;
 Landroid/view/Surface;->unlockSwCanvasAndPost(Landroid/graphics/Canvas;)V
-Landroid/view/SurfaceControl$Builder;
 Landroid/view/SurfaceControl$Builder;-><init>(Landroid/view/SurfaceSession;)V
 Landroid/view/SurfaceControl$Builder;->build()Landroid/view/SurfaceControl;
 Landroid/view/SurfaceControl$Builder;->mFlags:I
@@ -81859,11 +76421,9 @@
 Landroid/view/SurfaceControl$Builder;->setProtected(Z)Landroid/view/SurfaceControl$Builder;
 Landroid/view/SurfaceControl$Builder;->setSecure(Z)Landroid/view/SurfaceControl$Builder;
 Landroid/view/SurfaceControl$Builder;->setSize(II)Landroid/view/SurfaceControl$Builder;
-Landroid/view/SurfaceControl$PhysicalDisplayInfo;
 Landroid/view/SurfaceControl$PhysicalDisplayInfo;-><init>(Landroid/view/SurfaceControl$PhysicalDisplayInfo;)V
 Landroid/view/SurfaceControl$PhysicalDisplayInfo;->copyFrom(Landroid/view/SurfaceControl$PhysicalDisplayInfo;)V
 Landroid/view/SurfaceControl$PhysicalDisplayInfo;->equals(Landroid/view/SurfaceControl$PhysicalDisplayInfo;)Z
-Landroid/view/SurfaceControl$Transaction;
 Landroid/view/SurfaceControl$Transaction;->apply(Z)V
 Landroid/view/SurfaceControl$Transaction;->applyResizedSurfaces()V
 Landroid/view/SurfaceControl$Transaction;->destroy(Landroid/view/SurfaceControl;)Landroid/view/SurfaceControl$Transaction;
@@ -81888,7 +76448,6 @@
 Landroid/view/SurfaceControl$Transaction;->setSecure(Landroid/view/SurfaceControl;Z)Landroid/view/SurfaceControl$Transaction;
 Landroid/view/SurfaceControl$Transaction;->setTransparentRegionHint(Landroid/view/SurfaceControl;Landroid/graphics/Region;)Landroid/view/SurfaceControl$Transaction;
 Landroid/view/SurfaceControl$Transaction;->sRegistry:Llibcore/util/NativeAllocationRegistry;
-Landroid/view/SurfaceControl;
 Landroid/view/SurfaceControl;-><init>(Landroid/os/Parcel;)V
 Landroid/view/SurfaceControl;-><init>(Landroid/view/SurfaceControl;)V
 Landroid/view/SurfaceControl;-><init>(Landroid/view/SurfaceSession;Ljava/lang/String;IIIILandroid/view/SurfaceControl;II)V
@@ -82026,24 +76585,19 @@
 Landroid/view/SurfaceControl;->TAG:Ljava/lang/String;
 Landroid/view/SurfaceControl;->WINDOW_TYPE_DONT_SCREENSHOT:I
 Landroid/view/SurfaceControl;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/view/SurfaceControlProto;
 Landroid/view/SurfaceControlProto;-><init>()V
 Landroid/view/SurfaceControlProto;->HASH_CODE:J
 Landroid/view/SurfaceControlProto;->NAME:J
-Landroid/view/SurfaceProto;
 Landroid/view/SurfaceProto;-><init>()V
 Landroid/view/SurfaceProto;->ROTATION_0:I
 Landroid/view/SurfaceProto;->ROTATION_180:I
 Landroid/view/SurfaceProto;->ROTATION_270:I
 Landroid/view/SurfaceProto;->ROTATION_90:I
-Landroid/view/SurfaceSession;
 Landroid/view/SurfaceSession;-><init>(Landroid/view/Surface;)V
 Landroid/view/SurfaceSession;->nativeCreate()J
 Landroid/view/SurfaceSession;->nativeCreateScoped(J)J
 Landroid/view/SurfaceSession;->nativeDestroy(J)V
 Landroid/view/SurfaceSession;->nativeKill(J)V
-Landroid/view/SurfaceView$SurfaceControlWithBackground;
-Landroid/view/SurfaceView$SurfaceControlWithBackground;-><init>(Ljava/lang/String;ZLandroid/view/SurfaceControl$Builder;)V
 Landroid/view/SurfaceView$SurfaceControlWithBackground;->deferTransactionUntil(Landroid/os/IBinder;J)V
 Landroid/view/SurfaceView$SurfaceControlWithBackground;->deferTransactionUntil(Landroid/view/Surface;J)V
 Landroid/view/SurfaceView$SurfaceControlWithBackground;->destroy()V
@@ -82114,7 +76668,6 @@
 Landroid/view/SurfaceView;->updateRequestedVisibility()V
 Landroid/view/SurfaceView;->updateSurface()V
 Landroid/view/SurfaceView;->windowStopped(Z)V
-Landroid/view/textclassifier/EntityConfidence;
 Landroid/view/textclassifier/EntityConfidence;-><init>()V
 Landroid/view/textclassifier/EntityConfidence;-><init>(Landroid/os/Parcel;)V
 Landroid/view/textclassifier/EntityConfidence;-><init>(Landroid/view/textclassifier/EntityConfidence;)V
@@ -82125,12 +76678,10 @@
 Landroid/view/textclassifier/EntityConfidence;->mEntityConfidence:Landroid/util/ArrayMap;
 Landroid/view/textclassifier/EntityConfidence;->mSortedEntities:Ljava/util/ArrayList;
 Landroid/view/textclassifier/EntityConfidence;->resetSortedEntitiesFromMap()V
-Landroid/view/textclassifier/GenerateLinksLogger$LinkifyStats;
 Landroid/view/textclassifier/GenerateLinksLogger$LinkifyStats;-><init>()V
 Landroid/view/textclassifier/GenerateLinksLogger$LinkifyStats;->countLink(Landroid/view/textclassifier/TextLinks$TextLink;)V
 Landroid/view/textclassifier/GenerateLinksLogger$LinkifyStats;->mNumLinks:I
 Landroid/view/textclassifier/GenerateLinksLogger$LinkifyStats;->mNumLinksTextLength:I
-Landroid/view/textclassifier/GenerateLinksLogger;
 Landroid/view/textclassifier/GenerateLinksLogger;-><init>(I)V
 Landroid/view/textclassifier/GenerateLinksLogger;-><init>(ILcom/android/internal/logging/MetricsLogger;)V
 Landroid/view/textclassifier/GenerateLinksLogger;->debugLog(Landroid/metrics/LogMaker;)V
@@ -82143,7 +76694,6 @@
 Landroid/view/textclassifier/GenerateLinksLogger;->shouldLog()Z
 Landroid/view/textclassifier/GenerateLinksLogger;->writeStats(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/view/textclassifier/GenerateLinksLogger$LinkifyStats;Ljava/lang/CharSequence;J)V
 Landroid/view/textclassifier/GenerateLinksLogger;->ZERO:Ljava/lang/String;
-Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent$ActionType;
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent$ActionType;->ABANDON:I
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent$ActionType;->COPY:I
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent$ActionType;->CUT:I
@@ -82155,13 +76705,11 @@
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent$ActionType;->SELECT_ALL:I
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent$ActionType;->SHARE:I
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent$ActionType;->SMART_SHARE:I
-Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent$EventType;
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent$EventType;->AUTO_SELECTION:I
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent$EventType;->SELECTION_MODIFIED:I
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent$EventType;->SELECTION_STARTED:I
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent$EventType;->SMART_SELECTION_MULTI:I
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent$EventType;->SMART_SELECTION_SINGLE:I
-Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;-><init>(IIILjava/lang/String;Ljava/lang/String;)V
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->getSourceClassifier(Ljava/lang/String;)Ljava/lang/String;
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->getVersionInfo(Ljava/lang/String;)Ljava/lang/String;
@@ -82174,7 +76722,6 @@
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->NO_VERSION_TAG:Ljava/lang/String;
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->OUT_OF_BOUNDS:I
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->OUT_OF_BOUNDS_NEGATIVE:I
-Landroid/view/textclassifier/logging/SmartSelectionEventTracker$WidgetType;
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$WidgetType;->CUSTOM_EDITTEXT:I
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$WidgetType;->CUSTOM_TEXTVIEW:I
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$WidgetType;->CUSTOM_UNSELECTABLE_TEXTVIEW:I
@@ -82184,7 +76731,6 @@
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$WidgetType;->UNSELECTABLE_TEXTVIEW:I
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$WidgetType;->UNSPECIFIED:I
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker$WidgetType;->WEBVIEW:I
-Landroid/view/textclassifier/logging/SmartSelectionEventTracker;
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker;-><init>(Landroid/content/Context;ILjava/lang/String;)V
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->createSessionId()Ljava/lang/String;
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->CUSTOM_EDITTEXT:Ljava/lang/String;
@@ -82234,9 +76780,6 @@
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->WIDGET_VERSION:I
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->writeEvent(Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;J)V
 Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->ZERO:Ljava/lang/String;
-Landroid/view/textclassifier/SelectionEvent$ActionType;
-Landroid/view/textclassifier/SelectionEvent$EventType;
-Landroid/view/textclassifier/SelectionEvent$InvocationMethod;
 Landroid/view/textclassifier/SelectionEvent;-><init>(IIILjava/lang/String;ILjava/lang/String;)V
 Landroid/view/textclassifier/SelectionEvent;-><init>(Landroid/os/Parcel;)V
 Landroid/view/textclassifier/SelectionEvent;->checkActionType(I)V
@@ -82275,13 +76818,11 @@
 Landroid/view/textclassifier/SelectionEvent;->setSmartStart(I)Landroid/view/textclassifier/SelectionEvent;
 Landroid/view/textclassifier/SelectionEvent;->setStart(I)Landroid/view/textclassifier/SelectionEvent;
 Landroid/view/textclassifier/SelectionEvent;->setTextClassificationSessionContext(Landroid/view/textclassifier/TextClassificationContext;)V
-Landroid/view/textclassifier/SelectionSessionLogger$SignatureParser;
 Landroid/view/textclassifier/SelectionSessionLogger$SignatureParser;-><init>()V
 Landroid/view/textclassifier/SelectionSessionLogger$SignatureParser;->createSignature(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
 Landroid/view/textclassifier/SelectionSessionLogger$SignatureParser;->getClassifierId(Ljava/lang/String;)Ljava/lang/String;
 Landroid/view/textclassifier/SelectionSessionLogger$SignatureParser;->getHash(Ljava/lang/String;)I
 Landroid/view/textclassifier/SelectionSessionLogger$SignatureParser;->getModelName(Ljava/lang/String;)Ljava/lang/String;
-Landroid/view/textclassifier/SelectionSessionLogger;
 Landroid/view/textclassifier/SelectionSessionLogger;-><init>()V
 Landroid/view/textclassifier/SelectionSessionLogger;-><init>(Lcom/android/internal/logging/MetricsLogger;)V
 Landroid/view/textclassifier/SelectionSessionLogger;->CLASSIFIER_ID:Ljava/lang/String;
@@ -82310,29 +76851,24 @@
 Landroid/view/textclassifier/SelectionSessionLogger;->WIDGET_VERSION:I
 Landroid/view/textclassifier/SelectionSessionLogger;->writeEvent(Landroid/view/textclassifier/SelectionEvent;)V
 Landroid/view/textclassifier/SelectionSessionLogger;->ZERO:Ljava/lang/String;
-Landroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;
 Landroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;-><init>()V
 Landroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;->get()Ljava/lang/Object;
 Landroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;->mLatch:Ljava/util/concurrent/CountDownLatch;
 Landroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;->mResponse:Ljava/lang/Object;
 Landroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;->onFailure()V
 Landroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;->onSuccess(Ljava/lang/Object;)V
-Landroid/view/textclassifier/SystemTextClassifier$TextClassificationCallback;
 Landroid/view/textclassifier/SystemTextClassifier$TextClassificationCallback;-><init>()V
 Landroid/view/textclassifier/SystemTextClassifier$TextClassificationCallback;->mReceiver:Landroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;
 Landroid/view/textclassifier/SystemTextClassifier$TextClassificationCallback;->onFailure()V
 Landroid/view/textclassifier/SystemTextClassifier$TextClassificationCallback;->onSuccess(Landroid/view/textclassifier/TextClassification;)V
-Landroid/view/textclassifier/SystemTextClassifier$TextLinksCallback;
 Landroid/view/textclassifier/SystemTextClassifier$TextLinksCallback;-><init>()V
 Landroid/view/textclassifier/SystemTextClassifier$TextLinksCallback;->mReceiver:Landroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;
 Landroid/view/textclassifier/SystemTextClassifier$TextLinksCallback;->onFailure()V
 Landroid/view/textclassifier/SystemTextClassifier$TextLinksCallback;->onSuccess(Landroid/view/textclassifier/TextLinks;)V
-Landroid/view/textclassifier/SystemTextClassifier$TextSelectionCallback;
 Landroid/view/textclassifier/SystemTextClassifier$TextSelectionCallback;-><init>()V
 Landroid/view/textclassifier/SystemTextClassifier$TextSelectionCallback;->mReceiver:Landroid/view/textclassifier/SystemTextClassifier$ResponseReceiver;
 Landroid/view/textclassifier/SystemTextClassifier$TextSelectionCallback;->onFailure()V
 Landroid/view/textclassifier/SystemTextClassifier$TextSelectionCallback;->onSuccess(Landroid/view/textclassifier/TextSelection;)V
-Landroid/view/textclassifier/SystemTextClassifier;
 Landroid/view/textclassifier/SystemTextClassifier;-><init>(Landroid/content/Context;Landroid/view/textclassifier/TextClassificationConstants;)V
 Landroid/view/textclassifier/SystemTextClassifier;->initializeRemoteSession(Landroid/view/textclassifier/TextClassificationContext;Landroid/view/textclassifier/TextClassificationSessionId;)V
 Landroid/view/textclassifier/SystemTextClassifier;->LOG_TAG:Ljava/lang/String;
@@ -82349,11 +76885,9 @@
 Landroid/view/textclassifier/TextClassification$Builder;->mLegacyLabel:Ljava/lang/String;
 Landroid/view/textclassifier/TextClassification$Builder;->mLegacyOnClickListener:Landroid/view/View$OnClickListener;
 Landroid/view/textclassifier/TextClassification$Builder;->mText:Ljava/lang/String;
-Landroid/view/textclassifier/TextClassification$IntentType;
 Landroid/view/textclassifier/TextClassification$IntentType;->ACTIVITY:I
 Landroid/view/textclassifier/TextClassification$IntentType;->SERVICE:I
 Landroid/view/textclassifier/TextClassification$IntentType;->UNSUPPORTED:I
-Landroid/view/textclassifier/TextClassification$Options;
 Landroid/view/textclassifier/TextClassification$Options;-><init>()V
 Landroid/view/textclassifier/TextClassification$Options;-><init>(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassification$Request;)V
 Landroid/view/textclassifier/TextClassification$Options;->from(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextClassification$Request;)Landroid/view/textclassifier/TextClassification$Options;
@@ -82397,7 +76931,6 @@
 Landroid/view/textclassifier/TextClassification;->mLegacyLabel:Ljava/lang/String;
 Landroid/view/textclassifier/TextClassification;->mLegacyOnClickListener:Landroid/view/View$OnClickListener;
 Landroid/view/textclassifier/TextClassification;->mText:Ljava/lang/String;
-Landroid/view/textclassifier/TextClassificationConstants;
 Landroid/view/textclassifier/TextClassificationConstants;-><init>(Ljava/lang/String;)V
 Landroid/view/textclassifier/TextClassificationConstants;->CLASSIFY_TEXT_MAX_RANGE_LENGTH:Ljava/lang/String;
 Landroid/view/textclassifier/TextClassificationConstants;->CLASSIFY_TEXT_MAX_RANGE_LENGTH_DEFAULT:I
@@ -82465,7 +76998,6 @@
 Landroid/view/textclassifier/TextClassificationContext;->mPackageName:Ljava/lang/String;
 Landroid/view/textclassifier/TextClassificationContext;->mWidgetType:Ljava/lang/String;
 Landroid/view/textclassifier/TextClassificationContext;->mWidgetVersion:Ljava/lang/String;
-Landroid/view/textclassifier/TextClassificationManager$SettingsObserver;
 Landroid/view/textclassifier/TextClassificationManager$SettingsObserver;-><init>(Landroid/view/textclassifier/TextClassificationManager;)V
 Landroid/view/textclassifier/TextClassificationManager$SettingsObserver;->mTcm:Ljava/lang/ref/WeakReference;
 Landroid/view/textclassifier/TextClassificationManager;-><init>(Landroid/content/Context;)V
@@ -82500,10 +77032,6 @@
 Landroid/view/textclassifier/TextClassifier$EntityConfig;->mHints:Ljava/util/Collection;
 Landroid/view/textclassifier/TextClassifier$EntityConfig;->mIncludedEntityTypes:Ljava/util/Collection;
 Landroid/view/textclassifier/TextClassifier$EntityConfig;->mUseHints:Z
-Landroid/view/textclassifier/TextClassifier$EntityType;
-Landroid/view/textclassifier/TextClassifier$Hints;
-Landroid/view/textclassifier/TextClassifier$TextClassifierType;
-Landroid/view/textclassifier/TextClassifier$Utils;
 Landroid/view/textclassifier/TextClassifier$Utils;-><init>()V
 Landroid/view/textclassifier/TextClassifier$Utils;->addLinks(Landroid/view/textclassifier/TextLinks$Builder;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/view/textclassifier/TextClassifier$Utils;->checkArgument(Ljava/lang/CharSequence;II)V
@@ -82512,11 +77040,9 @@
 Landroid/view/textclassifier/TextClassifier$Utils;->entityScores(Ljava/lang/String;)Ljava/util/Map;
 Landroid/view/textclassifier/TextClassifier$Utils;->generateLegacyLinks(Landroid/view/textclassifier/TextLinks$Request;)Landroid/view/textclassifier/TextLinks;
 Landroid/view/textclassifier/TextClassifier$Utils;->linkMask(Ljava/lang/String;)I
-Landroid/view/textclassifier/TextClassifier$WidgetType;
 Landroid/view/textclassifier/TextClassifier;->DEFAULT_LOG_TAG:Ljava/lang/String;
 Landroid/view/textclassifier/TextClassifier;->LOCAL:I
 Landroid/view/textclassifier/TextClassifier;->SYSTEM:I
-Landroid/view/textclassifier/TextClassifierImpl$IntentFactory;
 Landroid/view/textclassifier/TextClassifierImpl$IntentFactory;-><init>()V
 Landroid/view/textclassifier/TextClassifierImpl$IntentFactory;->create(Landroid/content/Context;Ljava/time/Instant;Landroid/view/textclassifier/TextClassifierImplNative$ClassificationResult;Ljava/lang/String;)Ljava/util/List;
 Landroid/view/textclassifier/TextClassifierImpl$IntentFactory;->createCalendarCreateEventIntent(Landroid/content/Context;Ljava/time/Instant;Ljava/lang/String;)Landroid/view/textclassifier/TextClassifierImpl$LabeledIntent;
@@ -82529,7 +77055,6 @@
 Landroid/view/textclassifier/TextClassifierImpl$IntentFactory;->createForUrl(Landroid/content/Context;Ljava/lang/String;)Ljava/util/List;
 Landroid/view/textclassifier/TextClassifierImpl$IntentFactory;->DEFAULT_EVENT_DURATION:J
 Landroid/view/textclassifier/TextClassifierImpl$IntentFactory;->MIN_EVENT_FUTURE_MILLIS:J
-Landroid/view/textclassifier/TextClassifierImpl$LabeledIntent;
 Landroid/view/textclassifier/TextClassifierImpl$LabeledIntent;-><init>(Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;I)V
 Landroid/view/textclassifier/TextClassifierImpl$LabeledIntent;->asRemoteAction(Landroid/content/Context;)Landroid/app/RemoteAction;
 Landroid/view/textclassifier/TextClassifierImpl$LabeledIntent;->DEFAULT_REQUEST_CODE:I
@@ -82541,7 +77066,6 @@
 Landroid/view/textclassifier/TextClassifierImpl$LabeledIntent;->mIntent:Landroid/content/Intent;
 Landroid/view/textclassifier/TextClassifierImpl$LabeledIntent;->mRequestCode:I
 Landroid/view/textclassifier/TextClassifierImpl$LabeledIntent;->mTitle:Ljava/lang/String;
-Landroid/view/textclassifier/TextClassifierImpl$ModelFile;
 Landroid/view/textclassifier/TextClassifierImpl$ModelFile;-><init>(Ljava/lang/String;Ljava/lang/String;ILjava/util/List;Z)V
 Landroid/view/textclassifier/TextClassifierImpl$ModelFile;->fromPath(Ljava/lang/String;)Landroid/view/textclassifier/TextClassifierImpl$ModelFile;
 Landroid/view/textclassifier/TextClassifierImpl$ModelFile;->getName()Ljava/lang/String;
@@ -82555,7 +77079,6 @@
 Landroid/view/textclassifier/TextClassifierImpl$ModelFile;->mPath:Ljava/lang/String;
 Landroid/view/textclassifier/TextClassifierImpl$ModelFile;->mSupportedLocales:Ljava/util/List;
 Landroid/view/textclassifier/TextClassifierImpl$ModelFile;->mVersion:I
-Landroid/view/textclassifier/TextClassifierImpl;
 Landroid/view/textclassifier/TextClassifierImpl;-><init>(Landroid/content/Context;Landroid/view/textclassifier/TextClassificationConstants;)V
 Landroid/view/textclassifier/TextClassifierImpl;-><init>(Landroid/content/Context;Landroid/view/textclassifier/TextClassificationConstants;Landroid/view/textclassifier/TextClassifier;)V
 Landroid/view/textclassifier/TextClassifierImpl;->closeAndLogError(Landroid/os/ParcelFileDescriptor;)V
@@ -82581,7 +77104,6 @@
 Landroid/view/textclassifier/TextClassifierImpl;->mSessionLogger:Landroid/view/textclassifier/SelectionSessionLogger;
 Landroid/view/textclassifier/TextClassifierImpl;->mSettings:Landroid/view/textclassifier/TextClassificationConstants;
 Landroid/view/textclassifier/TextClassifierImpl;->UPDATED_MODEL_FILE_PATH:Ljava/lang/String;
-Landroid/view/textclassifier/TextClassifierImplNative$AnnotatedSpan;
 Landroid/view/textclassifier/TextClassifierImplNative$AnnotatedSpan;-><init>(II[Landroid/view/textclassifier/TextClassifierImplNative$ClassificationResult;)V
 Landroid/view/textclassifier/TextClassifierImplNative$AnnotatedSpan;->getClassification()[Landroid/view/textclassifier/TextClassifierImplNative$ClassificationResult;
 Landroid/view/textclassifier/TextClassifierImplNative$AnnotatedSpan;->getEndIndex()I
@@ -82589,7 +77111,6 @@
 Landroid/view/textclassifier/TextClassifierImplNative$AnnotatedSpan;->mClassification:[Landroid/view/textclassifier/TextClassifierImplNative$ClassificationResult;
 Landroid/view/textclassifier/TextClassifierImplNative$AnnotatedSpan;->mEndIndex:I
 Landroid/view/textclassifier/TextClassifierImplNative$AnnotatedSpan;->mStartIndex:I
-Landroid/view/textclassifier/TextClassifierImplNative$AnnotationOptions;
 Landroid/view/textclassifier/TextClassifierImplNative$AnnotationOptions;-><init>(JLjava/lang/String;Ljava/lang/String;)V
 Landroid/view/textclassifier/TextClassifierImplNative$AnnotationOptions;->getLocale()Ljava/lang/String;
 Landroid/view/textclassifier/TextClassifierImplNative$AnnotationOptions;->getReferenceTimeMsUtc()J
@@ -82597,7 +77118,6 @@
 Landroid/view/textclassifier/TextClassifierImplNative$AnnotationOptions;->mLocales:Ljava/lang/String;
 Landroid/view/textclassifier/TextClassifierImplNative$AnnotationOptions;->mReferenceTimeMsUtc:J
 Landroid/view/textclassifier/TextClassifierImplNative$AnnotationOptions;->mReferenceTimezone:Ljava/lang/String;
-Landroid/view/textclassifier/TextClassifierImplNative$ClassificationOptions;
 Landroid/view/textclassifier/TextClassifierImplNative$ClassificationOptions;-><init>(JLjava/lang/String;Ljava/lang/String;)V
 Landroid/view/textclassifier/TextClassifierImplNative$ClassificationOptions;->getLocale()Ljava/lang/String;
 Landroid/view/textclassifier/TextClassifierImplNative$ClassificationOptions;->getReferenceTimeMsUtc()J
@@ -82605,7 +77125,6 @@
 Landroid/view/textclassifier/TextClassifierImplNative$ClassificationOptions;->mLocales:Ljava/lang/String;
 Landroid/view/textclassifier/TextClassifierImplNative$ClassificationOptions;->mReferenceTimeMsUtc:J
 Landroid/view/textclassifier/TextClassifierImplNative$ClassificationOptions;->mReferenceTimezone:Ljava/lang/String;
-Landroid/view/textclassifier/TextClassifierImplNative$ClassificationResult;
 Landroid/view/textclassifier/TextClassifierImplNative$ClassificationResult;-><init>(Ljava/lang/String;FLandroid/view/textclassifier/TextClassifierImplNative$DatetimeResult;)V
 Landroid/view/textclassifier/TextClassifierImplNative$ClassificationResult;->getCollection()Ljava/lang/String;
 Landroid/view/textclassifier/TextClassifierImplNative$ClassificationResult;->getDatetimeResult()Landroid/view/textclassifier/TextClassifierImplNative$DatetimeResult;
@@ -82613,7 +77132,6 @@
 Landroid/view/textclassifier/TextClassifierImplNative$ClassificationResult;->mCollection:Ljava/lang/String;
 Landroid/view/textclassifier/TextClassifierImplNative$ClassificationResult;->mDatetimeResult:Landroid/view/textclassifier/TextClassifierImplNative$DatetimeResult;
 Landroid/view/textclassifier/TextClassifierImplNative$ClassificationResult;->mScore:F
-Landroid/view/textclassifier/TextClassifierImplNative$DatetimeResult;
 Landroid/view/textclassifier/TextClassifierImplNative$DatetimeResult;-><init>(JI)V
 Landroid/view/textclassifier/TextClassifierImplNative$DatetimeResult;->getGranularity()I
 Landroid/view/textclassifier/TextClassifierImplNative$DatetimeResult;->getTimeMsUtc()J
@@ -82626,11 +77144,9 @@
 Landroid/view/textclassifier/TextClassifierImplNative$DatetimeResult;->GRANULARITY_YEAR:I
 Landroid/view/textclassifier/TextClassifierImplNative$DatetimeResult;->mGranularity:I
 Landroid/view/textclassifier/TextClassifierImplNative$DatetimeResult;->mTimeMsUtc:J
-Landroid/view/textclassifier/TextClassifierImplNative$SelectionOptions;
 Landroid/view/textclassifier/TextClassifierImplNative$SelectionOptions;-><init>(Ljava/lang/String;)V
 Landroid/view/textclassifier/TextClassifierImplNative$SelectionOptions;->getLocales()Ljava/lang/String;
 Landroid/view/textclassifier/TextClassifierImplNative$SelectionOptions;->mLocales:Ljava/lang/String;
-Landroid/view/textclassifier/TextClassifierImplNative;
 Landroid/view/textclassifier/TextClassifierImplNative;-><init>(I)V
 Landroid/view/textclassifier/TextClassifierImplNative;-><init>(Landroid/content/res/AssetFileDescriptor;)V
 Landroid/view/textclassifier/TextClassifierImplNative;-><init>(Ljava/lang/String;)V
@@ -82650,11 +77166,9 @@
 Landroid/view/textclassifier/TextClassifierImplNative;->nativeNewFromPath(Ljava/lang/String;)J
 Landroid/view/textclassifier/TextClassifierImplNative;->nativeSuggestSelection(JLjava/lang/String;IILandroid/view/textclassifier/TextClassifierImplNative$SelectionOptions;)[I
 Landroid/view/textclassifier/TextClassifierImplNative;->suggestSelection(Ljava/lang/String;IILandroid/view/textclassifier/TextClassifierImplNative$SelectionOptions;)[I
-Landroid/view/textclassifier/TextLinks$ApplyStrategy;
 Landroid/view/textclassifier/TextLinks$Builder;->addLink(IILjava/util/Map;Landroid/text/style/URLSpan;)Landroid/view/textclassifier/TextLinks$Builder;
 Landroid/view/textclassifier/TextLinks$Builder;->mFullText:Ljava/lang/String;
 Landroid/view/textclassifier/TextLinks$Builder;->mLinks:Ljava/util/ArrayList;
-Landroid/view/textclassifier/TextLinks$Options;
 Landroid/view/textclassifier/TextLinks$Options;-><init>(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextLinks$Request;)V
 Landroid/view/textclassifier/TextLinks$Options;->checkValidApplyStrategy(I)V
 Landroid/view/textclassifier/TextLinks$Options;->from(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextLinks$Request;)Landroid/view/textclassifier/TextLinks$Options;
@@ -82694,14 +77208,12 @@
 Landroid/view/textclassifier/TextLinks$Request;->mLegacyFallback:Z
 Landroid/view/textclassifier/TextLinks$Request;->mText:Ljava/lang/CharSequence;
 Landroid/view/textclassifier/TextLinks$Request;->setCallingPackageName(Ljava/lang/String;)V
-Landroid/view/textclassifier/TextLinks$Status;
 Landroid/view/textclassifier/TextLinks$TextLink;-><init>(IILjava/util/Map;Landroid/text/style/URLSpan;)V
 Landroid/view/textclassifier/TextLinks$TextLink;-><init>(Landroid/os/Parcel;)V
 Landroid/view/textclassifier/TextLinks$TextLink;->mEnd:I
 Landroid/view/textclassifier/TextLinks$TextLink;->mEntityScores:Landroid/view/textclassifier/EntityConfidence;
 Landroid/view/textclassifier/TextLinks$TextLink;->mStart:I
 Landroid/view/textclassifier/TextLinks$TextLink;->mUrlSpan:Landroid/text/style/URLSpan;
-Landroid/view/textclassifier/TextLinks$TextLinkSpan$InvocationMethod;
 Landroid/view/textclassifier/TextLinks$TextLinkSpan;->getUrl()Ljava/lang/String;
 Landroid/view/textclassifier/TextLinks$TextLinkSpan;->INVOCATION_METHOD_KEYBOARD:I
 Landroid/view/textclassifier/TextLinks$TextLinkSpan;->INVOCATION_METHOD_TOUCH:I
@@ -82713,7 +77225,6 @@
 Landroid/view/textclassifier/TextLinks;->getText()Ljava/lang/String;
 Landroid/view/textclassifier/TextLinks;->mFullText:Ljava/lang/String;
 Landroid/view/textclassifier/TextLinks;->mLinks:Ljava/util/List;
-Landroid/view/textclassifier/TextLinksParams$Builder;
 Landroid/view/textclassifier/TextLinksParams$Builder;-><init>()V
 Landroid/view/textclassifier/TextLinksParams$Builder;->build()Landroid/view/textclassifier/TextLinksParams;
 Landroid/view/textclassifier/TextLinksParams$Builder;->mApplyStrategy:I
@@ -82721,7 +77232,6 @@
 Landroid/view/textclassifier/TextLinksParams$Builder;->setApplyStrategy(I)Landroid/view/textclassifier/TextLinksParams$Builder;
 Landroid/view/textclassifier/TextLinksParams$Builder;->setEntityConfig(Landroid/view/textclassifier/TextClassifier$EntityConfig;)Landroid/view/textclassifier/TextLinksParams$Builder;
 Landroid/view/textclassifier/TextLinksParams$Builder;->setSpanFactory(Ljava/util/function/Function;)Landroid/view/textclassifier/TextLinksParams$Builder;
-Landroid/view/textclassifier/TextLinksParams;
 Landroid/view/textclassifier/TextLinksParams;-><init>(ILjava/util/function/Function;)V
 Landroid/view/textclassifier/TextLinksParams;->apply(Landroid/text/Spannable;Landroid/view/textclassifier/TextLinks;)I
 Landroid/view/textclassifier/TextLinksParams;->checkApplyStrategy(I)I
@@ -82735,7 +77245,6 @@
 Landroid/view/textclassifier/TextSelection$Builder;->mEntityConfidence:Ljava/util/Map;
 Landroid/view/textclassifier/TextSelection$Builder;->mId:Ljava/lang/String;
 Landroid/view/textclassifier/TextSelection$Builder;->mStartIndex:I
-Landroid/view/textclassifier/TextSelection$Options;
 Landroid/view/textclassifier/TextSelection$Options;-><init>()V
 Landroid/view/textclassifier/TextSelection$Options;-><init>(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextSelection$Request;)V
 Landroid/view/textclassifier/TextSelection$Options;->from(Landroid/view/textclassifier/TextClassificationSessionId;Landroid/view/textclassifier/TextSelection$Request;)Landroid/view/textclassifier/TextSelection$Options;
@@ -82779,18 +77288,15 @@
 Landroid/view/textservice/SpellCheckerInfo;->mSettingsActivityName:Ljava/lang/String;
 Landroid/view/textservice/SpellCheckerInfo;->mSubtypes:Ljava/util/ArrayList;
 Landroid/view/textservice/SpellCheckerInfo;->TAG:Ljava/lang/String;
-Landroid/view/textservice/SpellCheckerSession$InternalListener;
 Landroid/view/textservice/SpellCheckerSession$InternalListener;-><init>(Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;)V
 Landroid/view/textservice/SpellCheckerSession$InternalListener;->mParentSpellCheckerSessionListenerImpl:Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;
 Landroid/view/textservice/SpellCheckerSession$InternalListener;->onServiceConnected(Lcom/android/internal/textservice/ISpellCheckerSession;)V
-Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;
 Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;-><init>(I[Landroid/view/textservice/TextInfo;IZ)V
 Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;->mSequentialWords:Z
 Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;->mSession:Lcom/android/internal/textservice/ISpellCheckerSession;
 Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;->mSuggestionsLimit:I
 Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;->mTextInfos:[Landroid/view/textservice/TextInfo;
 Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl$SpellCheckerParams;->mWhat:I
-Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;
 Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;-><init>(Landroid/os/Handler;)V
 Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->cancel()V
 Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListenerImpl;->close()V
@@ -82871,7 +77377,6 @@
 Landroid/view/textservice/TextServicesManager;->parseLanguageFromLocaleString(Ljava/lang/String;)Ljava/lang/String;
 Landroid/view/textservice/TextServicesManager;->sInstance:Landroid/view/textservice/TextServicesManager;
 Landroid/view/textservice/TextServicesManager;->TAG:Ljava/lang/String;
-Landroid/view/TextureLayer;
 Landroid/view/TextureLayer;-><init>(Landroid/view/ThreadedRenderer;J)V
 Landroid/view/TextureLayer;->adoptTextureLayer(Landroid/view/ThreadedRenderer;J)Landroid/view/TextureLayer;
 Landroid/view/TextureLayer;->copyInto(Landroid/graphics/Bitmap;)Z
@@ -82910,15 +77415,10 @@
 Landroid/view/TextureView;->releaseSurfaceTexture()V
 Landroid/view/TextureView;->updateLayer()V
 Landroid/view/TextureView;->updateLayerAndInvalidate()V
-Landroid/view/ThreadedRenderer$DrawCallbacks;
 Landroid/view/ThreadedRenderer$DrawCallbacks;->onPostDraw(Landroid/view/DisplayListCanvas;)V
 Landroid/view/ThreadedRenderer$DrawCallbacks;->onPreDraw(Landroid/view/DisplayListCanvas;)V
-Landroid/view/ThreadedRenderer$DumpFlags;
-Landroid/view/ThreadedRenderer$FrameCompleteCallback;
 Landroid/view/ThreadedRenderer$FrameCompleteCallback;->onFrameComplete(J)V
-Landroid/view/ThreadedRenderer$FrameDrawingCallback;
 Landroid/view/ThreadedRenderer$FrameDrawingCallback;->onFrameDraw(J)V
-Landroid/view/ThreadedRenderer$ProcessInitializer;
 Landroid/view/ThreadedRenderer$ProcessInitializer;-><init>()V
 Landroid/view/ThreadedRenderer$ProcessInitializer;->init(Landroid/content/Context;J)V
 Landroid/view/ThreadedRenderer$ProcessInitializer;->initGraphicsStats()V
@@ -82930,7 +77430,6 @@
 Landroid/view/ThreadedRenderer$ProcessInitializer;->requestBuffer()V
 Landroid/view/ThreadedRenderer$ProcessInitializer;->rotateBuffer()V
 Landroid/view/ThreadedRenderer$ProcessInitializer;->sInstance:Landroid/view/ThreadedRenderer$ProcessInitializer;
-Landroid/view/ThreadedRenderer$SimpleRenderer;
 Landroid/view/ThreadedRenderer$SimpleRenderer;-><init>(Landroid/content/Context;Ljava/lang/String;Landroid/view/Surface;)V
 Landroid/view/ThreadedRenderer$SimpleRenderer;->destroy()V
 Landroid/view/ThreadedRenderer$SimpleRenderer;->draw(Landroid/view/ThreadedRenderer$FrameDrawingCallback;)V
@@ -82942,7 +77441,6 @@
 Landroid/view/ThreadedRenderer$SimpleRenderer;->mRootNode:Landroid/view/RenderNode;
 Landroid/view/ThreadedRenderer$SimpleRenderer;->mSurface:Landroid/view/Surface;
 Landroid/view/ThreadedRenderer$SimpleRenderer;->setLightCenter(Landroid/view/Display;II)V
-Landroid/view/ThreadedRenderer;
 Landroid/view/ThreadedRenderer;-><init>(Landroid/content/Context;ZLjava/lang/String;)V
 Landroid/view/ThreadedRenderer;->addFrameMetricsObserver(Landroid/view/FrameMetricsObserver;)V
 Landroid/view/ThreadedRenderer;->buildLayer(Landroid/view/RenderNode;)V
@@ -83102,7 +77600,6 @@
 Landroid/view/TouchDelegate;->mDelegateView:Landroid/view/View;
 Landroid/view/TouchDelegate;->mSlop:I
 Landroid/view/TouchDelegate;->mSlopBounds:Landroid/graphics/Rect;
-Landroid/view/VelocityTracker$Estimator;
 Landroid/view/VelocityTracker$Estimator;-><init>()V
 Landroid/view/VelocityTracker$Estimator;->estimate(F[F)F
 Landroid/view/VelocityTracker$Estimator;->estimateX(F)F
@@ -83124,15 +77621,12 @@
 Landroid/view/VelocityTracker;->nativeGetYVelocity(JI)F
 Landroid/view/VelocityTracker;->nativeInitialize(Ljava/lang/String;)J
 Landroid/view/VelocityTracker;->sPool:Landroid/util/Pools$SynchronizedPool;
-Landroid/view/View$AttachInfo$Callbacks;
 Landroid/view/View$AttachInfo$Callbacks;->performHapticFeedback(IZ)Z
 Landroid/view/View$AttachInfo$Callbacks;->playSoundEffect(I)V
-Landroid/view/View$AttachInfo$InvalidateInfo;
 Landroid/view/View$AttachInfo$InvalidateInfo;->obtain()Landroid/view/View$AttachInfo$InvalidateInfo;
 Landroid/view/View$AttachInfo$InvalidateInfo;->POOL_LIMIT:I
 Landroid/view/View$AttachInfo$InvalidateInfo;->recycle()V
 Landroid/view/View$AttachInfo$InvalidateInfo;->sPool:Landroid/util/Pools$SynchronizedPool;
-Landroid/view/View$AttachInfo;
 Landroid/view/View$AttachInfo;-><init>(Landroid/view/IWindowSession;Landroid/view/IWindow;Landroid/view/Display;Landroid/view/ViewRootImpl;Landroid/os/Handler;Landroid/view/View$AttachInfo$Callbacks;Landroid/content/Context;)V
 Landroid/view/View$AttachInfo;->mAccessibilityFetchFlags:I
 Landroid/view/View$AttachInfo;->mAccessibilityFocusDrawable:Landroid/graphics/drawable/Drawable;
@@ -83191,9 +77685,6 @@
 Landroid/view/View$AttachInfo;->mWindowToken:Landroid/os/IBinder;
 Landroid/view/View$AttachInfo;->mWindowTop:I
 Landroid/view/View$AttachInfo;->mWindowVisibility:I
-Landroid/view/View$AutofillFlags;
-Landroid/view/View$AutofillImportance;
-Landroid/view/View$AutofillType;
 Landroid/view/View$BaseSavedState;->AUTOFILL_ID:I
 Landroid/view/View$BaseSavedState;->IS_AUTOFILLED:I
 Landroid/view/View$BaseSavedState;->mAutofillViewId:I
@@ -83201,8 +77692,6 @@
 Landroid/view/View$BaseSavedState;->mSavedData:I
 Landroid/view/View$BaseSavedState;->mStartActivityRequestWhoSaved:Ljava/lang/String;
 Landroid/view/View$BaseSavedState;->START_ACTIVITY_REQUESTED_WHO_SAVED:I
-Landroid/view/View$CheckForLongPress;
-Landroid/view/View$CheckForLongPress;-><init>()V
 Landroid/view/View$CheckForLongPress;->mOriginalPressedState:Z
 Landroid/view/View$CheckForLongPress;->mOriginalWindowAttachCount:I
 Landroid/view/View$CheckForLongPress;->mX:F
@@ -83210,24 +77699,14 @@
 Landroid/view/View$CheckForLongPress;->rememberPressedState()V
 Landroid/view/View$CheckForLongPress;->rememberWindowAttachCount()V
 Landroid/view/View$CheckForLongPress;->setAnchor(FF)V
-Landroid/view/View$CheckForTap;
-Landroid/view/View$CheckForTap;-><init>()V
 Landroid/view/View$CheckForTap;->x:F
 Landroid/view/View$CheckForTap;->y:F
-Landroid/view/View$DeclaredOnClickListener;
 Landroid/view/View$DeclaredOnClickListener;-><init>(Landroid/view/View;Ljava/lang/String;)V
 Landroid/view/View$DeclaredOnClickListener;->mHostView:Landroid/view/View;
 Landroid/view/View$DeclaredOnClickListener;->mMethodName:Ljava/lang/String;
 Landroid/view/View$DeclaredOnClickListener;->mResolvedContext:Landroid/content/Context;
 Landroid/view/View$DeclaredOnClickListener;->mResolvedMethod:Ljava/lang/reflect/Method;
 Landroid/view/View$DeclaredOnClickListener;->resolveMethod(Landroid/content/Context;Ljava/lang/String;)V
-Landroid/view/View$DrawingCacheQuality;
-Landroid/view/View$FindViewFlags;
-Landroid/view/View$Focusable;
-Landroid/view/View$FocusableMode;
-Landroid/view/View$FocusDirection;
-Landroid/view/View$FocusRealDirection;
-Landroid/view/View$ForegroundInfo;
 Landroid/view/View$ForegroundInfo;-><init>()V
 Landroid/view/View$ForegroundInfo;->mBoundsChanged:Z
 Landroid/view/View$ForegroundInfo;->mDrawable:Landroid/graphics/drawable/Drawable;
@@ -83236,8 +77715,6 @@
 Landroid/view/View$ForegroundInfo;->mOverlayBounds:Landroid/graphics/Rect;
 Landroid/view/View$ForegroundInfo;->mSelfBounds:Landroid/graphics/Rect;
 Landroid/view/View$ForegroundInfo;->mTintInfo:Landroid/view/View$TintInfo;
-Landroid/view/View$LayoutDir;
-Landroid/view/View$ListenerInfo;
 Landroid/view/View$ListenerInfo;->mOnApplyWindowInsetsListener:Landroid/view/View$OnApplyWindowInsetsListener;
 Landroid/view/View$ListenerInfo;->mOnAttachStateChangeListeners:Ljava/util/concurrent/CopyOnWriteArrayList;
 Landroid/view/View$ListenerInfo;->mOnCapturedPointerListener:Landroid/view/View$OnCapturedPointerListener;
@@ -83246,22 +77723,15 @@
 Landroid/view/View$ListenerInfo;->mOnScrollChangeListener:Landroid/view/View$OnScrollChangeListener;
 Landroid/view/View$ListenerInfo;->mOnSystemUiVisibilityChangeListener:Landroid/view/View$OnSystemUiVisibilityChangeListener;
 Landroid/view/View$ListenerInfo;->mUnhandledKeyListeners:Ljava/util/ArrayList;
-Landroid/view/View$MatchIdPredicate;
 Landroid/view/View$MatchIdPredicate;-><init>()V
 Landroid/view/View$MatchIdPredicate;->mId:I
 Landroid/view/View$MatchIdPredicate;->test(Landroid/view/View;)Z
-Landroid/view/View$MatchLabelForPredicate;
 Landroid/view/View$MatchLabelForPredicate;-><init>()V
 Landroid/view/View$MatchLabelForPredicate;->mLabeledId:I
 Landroid/view/View$MatchLabelForPredicate;->test(Landroid/view/View;)Z
-Landroid/view/View$MeasureSpec$MeasureSpecMode;
 Landroid/view/View$MeasureSpec;->adjust(II)I
 Landroid/view/View$MeasureSpec;->MODE_MASK:I
 Landroid/view/View$MeasureSpec;->MODE_SHIFT:I
-Landroid/view/View$PerformClick;
-Landroid/view/View$PerformClick;-><init>()V
-Landroid/view/View$ResolvedLayoutDir;
-Landroid/view/View$ScrollabilityCache;
 Landroid/view/View$ScrollabilityCache;-><init>(Landroid/view/ViewConfiguration;Landroid/view/View;)V
 Landroid/view/View$ScrollabilityCache;->DRAGGING_HORIZONTAL_SCROLL_BAR:I
 Landroid/view/View$ScrollabilityCache;->DRAGGING_VERTICAL_SCROLL_BAR:I
@@ -83289,23 +77759,16 @@
 Landroid/view/View$ScrollabilityCache;->setFadeColor(I)V
 Landroid/view/View$ScrollabilityCache;->shader:Landroid/graphics/Shader;
 Landroid/view/View$ScrollabilityCache;->TRANSPARENT:[F
-Landroid/view/View$ScrollBarStyle;
-Landroid/view/View$ScrollIndicators;
-Landroid/view/View$SendViewScrolledAccessibilityEvent;
-Landroid/view/View$SendViewScrolledAccessibilityEvent;-><init>()V
 Landroid/view/View$SendViewScrolledAccessibilityEvent;->mDeltaX:I
 Landroid/view/View$SendViewScrolledAccessibilityEvent;->mDeltaY:I
 Landroid/view/View$SendViewScrolledAccessibilityEvent;->mIsPending:Z
 Landroid/view/View$SendViewScrolledAccessibilityEvent;->post(II)V
 Landroid/view/View$SendViewScrolledAccessibilityEvent;->reset()V
-Landroid/view/View$TextAlignment;
-Landroid/view/View$TintInfo;
 Landroid/view/View$TintInfo;-><init>()V
 Landroid/view/View$TintInfo;->mHasTintList:Z
 Landroid/view/View$TintInfo;->mHasTintMode:Z
 Landroid/view/View$TintInfo;->mTintList:Landroid/content/res/ColorStateList;
 Landroid/view/View$TintInfo;->mTintMode:Landroid/graphics/PorterDuff$Mode;
-Landroid/view/View$TooltipInfo;
 Landroid/view/View$TooltipInfo;-><init>()V
 Landroid/view/View$TooltipInfo;->clearAnchorPos()V
 Landroid/view/View$TooltipInfo;->mAnchorX:I
@@ -83317,16 +77780,11 @@
 Landroid/view/View$TooltipInfo;->mTooltipPopup:Lcom/android/internal/view/TooltipPopup;
 Landroid/view/View$TooltipInfo;->mTooltipText:Ljava/lang/CharSequence;
 Landroid/view/View$TooltipInfo;->updateAnchorPos(Landroid/view/MotionEvent;)Z
-Landroid/view/View$TransformationInfo;
 Landroid/view/View$TransformationInfo;-><init>()V
 Landroid/view/View$TransformationInfo;->mAlpha:F
 Landroid/view/View$TransformationInfo;->mInverseMatrix:Landroid/graphics/Matrix;
 Landroid/view/View$TransformationInfo;->mMatrix:Landroid/graphics/Matrix;
 Landroid/view/View$TransformationInfo;->mTransitionAlpha:F
-Landroid/view/View$UnsetPressedState;
-Landroid/view/View$UnsetPressedState;-><init>()V
-Landroid/view/View$Visibility;
-Landroid/view/View$VisibilityChangeForAutofillHandler;
 Landroid/view/View$VisibilityChangeForAutofillHandler;-><init>(Landroid/view/autofill/AutofillManager;Landroid/view/View;)V
 Landroid/view/View$VisibilityChangeForAutofillHandler;->mAfm:Landroid/view/autofill/AutofillManager;
 Landroid/view/View$VisibilityChangeForAutofillHandler;->mView:Landroid/view/View;
@@ -83890,27 +78348,20 @@
 Landroid/view/ViewConfiguration;->VERTICAL_SCROLL_FACTOR:F
 Landroid/view/ViewConfiguration;->WINDOW_TOUCH_SLOP:I
 Landroid/view/ViewConfiguration;->ZOOM_CONTROLS_TIMEOUT:I
-Landroid/view/ViewDebug$CanvasProvider;
 Landroid/view/ViewDebug$CanvasProvider;->createBitmap()Landroid/graphics/Bitmap;
 Landroid/view/ViewDebug$CanvasProvider;->getCanvas(Landroid/view/View;II)Landroid/graphics/Canvas;
-Landroid/view/ViewDebug$HardwareCanvasProvider;
 Landroid/view/ViewDebug$HardwareCanvasProvider;-><init>()V
 Landroid/view/ViewDebug$HardwareCanvasProvider;->createBitmap()Landroid/graphics/Bitmap;
 Landroid/view/ViewDebug$HardwareCanvasProvider;->getCanvas(Landroid/view/View;II)Landroid/graphics/Canvas;
 Landroid/view/ViewDebug$HardwareCanvasProvider;->mPicture:Landroid/graphics/Picture;
-Landroid/view/ViewDebug$HierarchyHandler;
 Landroid/view/ViewDebug$HierarchyHandler;->dumpViewHierarchyWithProperties(Ljava/io/BufferedWriter;I)V
 Landroid/view/ViewDebug$HierarchyHandler;->findHierarchyView(Ljava/lang/String;I)Landroid/view/View;
-Landroid/view/ViewDebug$HierarchyTraceType;-><init>()V
-Landroid/view/ViewDebug$RecyclerTraceType;-><init>()V
-Landroid/view/ViewDebug$SoftwareCanvasProvider;
 Landroid/view/ViewDebug$SoftwareCanvasProvider;-><init>()V
 Landroid/view/ViewDebug$SoftwareCanvasProvider;->createBitmap()Landroid/graphics/Bitmap;
 Landroid/view/ViewDebug$SoftwareCanvasProvider;->getCanvas(Landroid/view/View;II)Landroid/graphics/Canvas;
 Landroid/view/ViewDebug$SoftwareCanvasProvider;->mBitmap:Landroid/graphics/Bitmap;
 Landroid/view/ViewDebug$SoftwareCanvasProvider;->mCanvas:Landroid/graphics/Canvas;
 Landroid/view/ViewDebug$SoftwareCanvasProvider;->mEnabledHwBitmapsInSwMode:Z
-Landroid/view/ViewDebug$ViewOperation;
 Landroid/view/ViewDebug$ViewOperation;->pre()V
 Landroid/view/ViewDebug$ViewOperation;->run()V
 Landroid/view/ViewDebug;->callMethodOnAppropriateTheadBlocking(Ljava/lang/reflect/Method;Ljava/lang/Object;)Ljava/lang/Object;
@@ -83976,7 +78427,6 @@
 Landroid/view/ViewDebug;->sMethodsForClasses:Ljava/util/HashMap;
 Landroid/view/ViewDebug;->writeEntry(Ljava/io/BufferedWriter;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
 Landroid/view/ViewDebug;->writeValue(Ljava/io/BufferedWriter;Ljava/lang/Object;)V
-Landroid/view/ViewGroup$ChildListForAccessibility;
 Landroid/view/ViewGroup$ChildListForAccessibility;-><init>()V
 Landroid/view/ViewGroup$ChildListForAccessibility;->clear()V
 Landroid/view/ViewGroup$ChildListForAccessibility;->getChildAt(I)Landroid/view/View;
@@ -83989,13 +78439,11 @@
 Landroid/view/ViewGroup$ChildListForAccessibility;->recycle()V
 Landroid/view/ViewGroup$ChildListForAccessibility;->sort(Ljava/util/ArrayList;)V
 Landroid/view/ViewGroup$ChildListForAccessibility;->sPool:Landroid/util/Pools$SynchronizedPool;
-Landroid/view/ViewGroup$ChildListForAutoFill;
 Landroid/view/ViewGroup$ChildListForAutoFill;-><init>()V
 Landroid/view/ViewGroup$ChildListForAutoFill;->MAX_POOL_SIZE:I
 Landroid/view/ViewGroup$ChildListForAutoFill;->obtain()Landroid/view/ViewGroup$ChildListForAutoFill;
 Landroid/view/ViewGroup$ChildListForAutoFill;->recycle()V
 Landroid/view/ViewGroup$ChildListForAutoFill;->sPool:Landroid/util/Pools$SimplePool;
-Landroid/view/ViewGroup$HoverTarget;
 Landroid/view/ViewGroup$HoverTarget;-><init>()V
 Landroid/view/ViewGroup$HoverTarget;->child:Landroid/view/View;
 Landroid/view/ViewGroup$HoverTarget;->MAX_RECYCLED:I
@@ -84024,7 +78472,6 @@
 Landroid/view/ViewGroup$MarginLayoutParams;->RIGHT_MARGIN_UNDEFINED_MASK:I
 Landroid/view/ViewGroup$MarginLayoutParams;->RTL_COMPATIBILITY_MODE_MASK:I
 Landroid/view/ViewGroup$MarginLayoutParams;->UNDEFINED_MARGIN:I
-Landroid/view/ViewGroup$TouchTarget;
 Landroid/view/ViewGroup$TouchTarget;->ALL_POINTER_IDS:I
 Landroid/view/ViewGroup$TouchTarget;->MAX_RECYCLED:I
 Landroid/view/ViewGroup$TouchTarget;->next:Landroid/view/ViewGroup$TouchTarget;
@@ -84034,7 +78481,6 @@
 Landroid/view/ViewGroup$TouchTarget;->sRecycleBin:Landroid/view/ViewGroup$TouchTarget;
 Landroid/view/ViewGroup$TouchTarget;->sRecycledCount:I
 Landroid/view/ViewGroup$TouchTarget;->sRecycleLock:Ljava/lang/Object;
-Landroid/view/ViewGroup$ViewLocationHolder;
 Landroid/view/ViewGroup$ViewLocationHolder;-><init>()V
 Landroid/view/ViewGroup$ViewLocationHolder;->clear()V
 Landroid/view/ViewGroup$ViewLocationHolder;->compareBoundsOfTree(Landroid/view/ViewGroup$ViewLocationHolder;Landroid/view/ViewGroup$ViewLocationHolder;)I
@@ -84239,7 +78685,6 @@
 Landroid/view/ViewGroup;->unFocus(Landroid/view/View;)V
 Landroid/view/ViewGroup;->updateLocalSystemUiVisibility(II)Z
 Landroid/view/ViewGroupOverlay;-><init>(Landroid/content/Context;Landroid/view/View;)V
-Landroid/view/ViewHierarchyEncoder;
 Landroid/view/ViewHierarchyEncoder;-><init>(Ljava/io/ByteArrayOutputStream;)V
 Landroid/view/ViewHierarchyEncoder;->addProperty(Ljava/lang/String;S)V
 Landroid/view/ViewHierarchyEncoder;->addPropertyKey(Ljava/lang/String;)V
@@ -84268,7 +78713,6 @@
 Landroid/view/ViewHierarchyEncoder;->writeInt(I)V
 Landroid/view/ViewHierarchyEncoder;->writeShort(S)V
 Landroid/view/ViewHierarchyEncoder;->writeString(Ljava/lang/String;)V
-Landroid/view/ViewOverlay$OverlayViewGroup;
 Landroid/view/ViewOverlay$OverlayViewGroup;-><init>(Landroid/content/Context;Landroid/view/View;)V
 Landroid/view/ViewOverlay$OverlayViewGroup;->add(Landroid/graphics/drawable/Drawable;)V
 Landroid/view/ViewOverlay$OverlayViewGroup;->add(Landroid/view/View;)V
@@ -84284,14 +78728,10 @@
 Landroid/view/ViewOverlay$OverlayViewGroup;->remove(Landroid/view/View;)V
 Landroid/view/ViewOverlay;-><init>(Landroid/content/Context;Landroid/view/View;)V
 Landroid/view/ViewOverlay;->mOverlayViewGroup:Landroid/view/ViewOverlay$OverlayViewGroup;
-Landroid/view/ViewPropertyAnimator$AnimatorEventListener;
-Landroid/view/ViewPropertyAnimator$AnimatorEventListener;-><init>()V
-Landroid/view/ViewPropertyAnimator$NameValuesHolder;
 Landroid/view/ViewPropertyAnimator$NameValuesHolder;-><init>(IFF)V
 Landroid/view/ViewPropertyAnimator$NameValuesHolder;->mDeltaValue:F
 Landroid/view/ViewPropertyAnimator$NameValuesHolder;->mFromValue:F
 Landroid/view/ViewPropertyAnimator$NameValuesHolder;->mNameConstant:I
-Landroid/view/ViewPropertyAnimator$PropertyBundle;
 Landroid/view/ViewPropertyAnimator$PropertyBundle;-><init>(ILjava/util/ArrayList;)V
 Landroid/view/ViewPropertyAnimator$PropertyBundle;->cancel(I)Z
 Landroid/view/ViewPropertyAnimator$PropertyBundle;->mNameValuesHolder:Ljava/util/ArrayList;
@@ -84342,7 +78782,6 @@
 Landroid/view/ViewPropertyAnimator;->X:I
 Landroid/view/ViewPropertyAnimator;->Y:I
 Landroid/view/ViewPropertyAnimator;->Z:I
-Landroid/view/ViewPropertyAnimatorRT;
 Landroid/view/ViewPropertyAnimatorRT;-><init>(Landroid/view/View;)V
 Landroid/view/ViewPropertyAnimatorRT;->cancelAll()V
 Landroid/view/ViewPropertyAnimatorRT;->cancelAnimators(Ljava/util/ArrayList;)V
@@ -84352,7 +78791,6 @@
 Landroid/view/ViewPropertyAnimatorRT;->mView:Landroid/view/View;
 Landroid/view/ViewPropertyAnimatorRT;->sLinearInterpolator:Landroid/view/animation/Interpolator;
 Landroid/view/ViewPropertyAnimatorRT;->startAnimation(Landroid/view/ViewPropertyAnimator;)Z
-Landroid/view/ViewProtoEnums;
 Landroid/view/ViewProtoEnums;-><init>()V
 Landroid/view/ViewProtoEnums;->DISPLAY_STATE_DOZE:I
 Landroid/view/ViewProtoEnums;->DISPLAY_STATE_DOZE_SUSPEND:I
@@ -84361,7 +78799,6 @@
 Landroid/view/ViewProtoEnums;->DISPLAY_STATE_ON_SUSPEND:I
 Landroid/view/ViewProtoEnums;->DISPLAY_STATE_UNKNOWN:I
 Landroid/view/ViewProtoEnums;->DISPLAY_STATE_VR:I
-Landroid/view/ViewRootImpl$AccessibilityInteractionConnection;
 Landroid/view/ViewRootImpl$AccessibilityInteractionConnection;-><init>(Landroid/view/ViewRootImpl;)V
 Landroid/view/ViewRootImpl$AccessibilityInteractionConnection;->findAccessibilityNodeInfoByAccessibilityId(JLandroid/graphics/Region;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJLandroid/view/MagnificationSpec;Landroid/os/Bundle;)V
 Landroid/view/ViewRootImpl$AccessibilityInteractionConnection;->findAccessibilityNodeInfosByText(JLjava/lang/String;Landroid/graphics/Region;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJLandroid/view/MagnificationSpec;)V
@@ -84370,14 +78807,9 @@
 Landroid/view/ViewRootImpl$AccessibilityInteractionConnection;->focusSearch(JILandroid/graphics/Region;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJLandroid/view/MagnificationSpec;)V
 Landroid/view/ViewRootImpl$AccessibilityInteractionConnection;->mViewRootImpl:Ljava/lang/ref/WeakReference;
 Landroid/view/ViewRootImpl$AccessibilityInteractionConnection;->performAccessibilityAction(JILandroid/os/Bundle;ILandroid/view/accessibility/IAccessibilityInteractionConnectionCallback;IIJ)V
-Landroid/view/ViewRootImpl$AccessibilityInteractionConnectionManager;
-Landroid/view/ViewRootImpl$AccessibilityInteractionConnectionManager;-><init>()V
 Landroid/view/ViewRootImpl$AccessibilityInteractionConnectionManager;->ensureConnection()V
 Landroid/view/ViewRootImpl$AccessibilityInteractionConnectionManager;->ensureNoConnection()V
-Landroid/view/ViewRootImpl$ActivityConfigCallback;
 Landroid/view/ViewRootImpl$ActivityConfigCallback;->onConfigurationChanged(Landroid/content/res/Configuration;I)V
-Landroid/view/ViewRootImpl$AsyncInputStage;
-Landroid/view/ViewRootImpl$AsyncInputStage;-><init>(Landroid/view/ViewRootImpl$InputStage;Ljava/lang/String;)V
 Landroid/view/ViewRootImpl$AsyncInputStage;->apply(Landroid/view/ViewRootImpl$QueuedInputEvent;I)V
 Landroid/view/ViewRootImpl$AsyncInputStage;->defer(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
 Landroid/view/ViewRootImpl$AsyncInputStage;->DEFER:I
@@ -84389,27 +78821,13 @@
 Landroid/view/ViewRootImpl$AsyncInputStage;->mQueueLength:I
 Landroid/view/ViewRootImpl$AsyncInputStage;->mQueueTail:Landroid/view/ViewRootImpl$QueuedInputEvent;
 Landroid/view/ViewRootImpl$AsyncInputStage;->mTraceCounter:Ljava/lang/String;
-Landroid/view/ViewRootImpl$CalledFromWrongThreadException;
-Landroid/view/ViewRootImpl$ConfigChangedCallback;
 Landroid/view/ViewRootImpl$ConfigChangedCallback;->onConfigurationChanged(Landroid/content/res/Configuration;)V
-Landroid/view/ViewRootImpl$ConsumeBatchedInputImmediatelyRunnable;
-Landroid/view/ViewRootImpl$ConsumeBatchedInputImmediatelyRunnable;-><init>()V
-Landroid/view/ViewRootImpl$ConsumeBatchedInputRunnable;
-Landroid/view/ViewRootImpl$ConsumeBatchedInputRunnable;-><init>()V
-Landroid/view/ViewRootImpl$EarlyPostImeInputStage;
-Landroid/view/ViewRootImpl$EarlyPostImeInputStage;-><init>(Landroid/view/ViewRootImpl$InputStage;)V
 Landroid/view/ViewRootImpl$EarlyPostImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
 Landroid/view/ViewRootImpl$EarlyPostImeInputStage;->processKeyEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
 Landroid/view/ViewRootImpl$EarlyPostImeInputStage;->processPointerEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
-Landroid/view/ViewRootImpl$HighContrastTextManager;
-Landroid/view/ViewRootImpl$HighContrastTextManager;-><init>()V
 Landroid/view/ViewRootImpl$HighContrastTextManager;->onHighTextContrastStateChanged(Z)V
-Landroid/view/ViewRootImpl$ImeInputStage;
-Landroid/view/ViewRootImpl$ImeInputStage;-><init>(Landroid/view/ViewRootImpl$InputStage;Ljava/lang/String;)V
 Landroid/view/ViewRootImpl$ImeInputStage;->onFinishedInputEvent(Ljava/lang/Object;Z)V
 Landroid/view/ViewRootImpl$ImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
-Landroid/view/ViewRootImpl$InputStage;
-Landroid/view/ViewRootImpl$InputStage;-><init>(Landroid/view/ViewRootImpl$InputStage;)V
 Landroid/view/ViewRootImpl$InputStage;->apply(Landroid/view/ViewRootImpl$QueuedInputEvent;I)V
 Landroid/view/ViewRootImpl$InputStage;->deliver(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
 Landroid/view/ViewRootImpl$InputStage;->dump(Ljava/lang/String;Ljava/io/PrintWriter;)V
@@ -84425,8 +78843,6 @@
 Landroid/view/ViewRootImpl$InputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
 Landroid/view/ViewRootImpl$InputStage;->onWindowFocusChanged(Z)V
 Landroid/view/ViewRootImpl$InputStage;->shouldDropInputEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)Z
-Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;
-Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;-><init>()V
 Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->addView(Landroid/view/View;)V
 Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->addViewRect(Landroid/view/View$AttachInfo$InvalidateInfo;)V
 Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->mPosted:Z
@@ -84436,15 +78852,10 @@
 Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->mViews:Ljava/util/ArrayList;
 Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->postIfNeededLocked()V
 Landroid/view/ViewRootImpl$InvalidateOnAnimationRunnable;->removeView(Landroid/view/View;)V
-Landroid/view/ViewRootImpl$NativePostImeInputStage;
-Landroid/view/ViewRootImpl$NativePostImeInputStage;-><init>(Landroid/view/ViewRootImpl$InputStage;Ljava/lang/String;)V
 Landroid/view/ViewRootImpl$NativePostImeInputStage;->onFinishedInputEvent(Ljava/lang/Object;Z)V
 Landroid/view/ViewRootImpl$NativePostImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
-Landroid/view/ViewRootImpl$NativePreImeInputStage;
-Landroid/view/ViewRootImpl$NativePreImeInputStage;-><init>(Landroid/view/ViewRootImpl$InputStage;Ljava/lang/String;)V
 Landroid/view/ViewRootImpl$NativePreImeInputStage;->onFinishedInputEvent(Ljava/lang/Object;Z)V
 Landroid/view/ViewRootImpl$NativePreImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
-Landroid/view/ViewRootImpl$QueuedInputEvent;
 Landroid/view/ViewRootImpl$QueuedInputEvent;-><init>()V
 Landroid/view/ViewRootImpl$QueuedInputEvent;->flagToString(Ljava/lang/String;IZLjava/lang/StringBuilder;)Z
 Landroid/view/ViewRootImpl$QueuedInputEvent;->FLAG_DEFERRED:I
@@ -84459,16 +78870,12 @@
 Landroid/view/ViewRootImpl$QueuedInputEvent;->mReceiver:Landroid/view/InputEventReceiver;
 Landroid/view/ViewRootImpl$QueuedInputEvent;->shouldSendToSynthesizer()Z
 Landroid/view/ViewRootImpl$QueuedInputEvent;->shouldSkipIme()Z
-Landroid/view/ViewRootImpl$SendWindowContentChangedAccessibilityEvent;
-Landroid/view/ViewRootImpl$SendWindowContentChangedAccessibilityEvent;-><init>()V
 Landroid/view/ViewRootImpl$SendWindowContentChangedAccessibilityEvent;->mChangeTypes:I
 Landroid/view/ViewRootImpl$SendWindowContentChangedAccessibilityEvent;->mLastEventTimeMillis:J
 Landroid/view/ViewRootImpl$SendWindowContentChangedAccessibilityEvent;->mOrigin:[Ljava/lang/StackTraceElement;
 Landroid/view/ViewRootImpl$SendWindowContentChangedAccessibilityEvent;->mSource:Landroid/view/View;
 Landroid/view/ViewRootImpl$SendWindowContentChangedAccessibilityEvent;->removeCallbacksAndRun()V
 Landroid/view/ViewRootImpl$SendWindowContentChangedAccessibilityEvent;->runOrPost(Landroid/view/View;I)V
-Landroid/view/ViewRootImpl$SyntheticInputStage;
-Landroid/view/ViewRootImpl$SyntheticInputStage;-><init>()V
 Landroid/view/ViewRootImpl$SyntheticInputStage;->mJoystick:Landroid/view/ViewRootImpl$SyntheticJoystickHandler;
 Landroid/view/ViewRootImpl$SyntheticInputStage;->mKeyboard:Landroid/view/ViewRootImpl$SyntheticKeyboardHandler;
 Landroid/view/ViewRootImpl$SyntheticInputStage;->mTouchNavigation:Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;
@@ -84477,8 +78884,6 @@
 Landroid/view/ViewRootImpl$SyntheticInputStage;->onDetachedFromWindow()V
 Landroid/view/ViewRootImpl$SyntheticInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
 Landroid/view/ViewRootImpl$SyntheticInputStage;->onWindowFocusChanged(Z)V
-Landroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState;
-Landroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState;-><init>()V
 Landroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState;->isXAxis(I)Z
 Landroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState;->isYAxis(I)Z
 Landroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState;->joystickAxisAndStateToKeycode(II)I
@@ -84490,8 +78895,6 @@
 Landroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState;->STATE_NEUTRAL:I
 Landroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState;->STATE_UP_OR_LEFT:I
 Landroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState;->updateStateForAxis(Landroid/view/MotionEvent;JIF)V
-Landroid/view/ViewRootImpl$SyntheticJoystickHandler;
-Landroid/view/ViewRootImpl$SyntheticJoystickHandler;-><init>()V
 Landroid/view/ViewRootImpl$SyntheticJoystickHandler;->cancel()V
 Landroid/view/ViewRootImpl$SyntheticJoystickHandler;->mDeviceKeyEvents:Landroid/util/SparseArray;
 Landroid/view/ViewRootImpl$SyntheticJoystickHandler;->mJoystickAxesState:Landroid/view/ViewRootImpl$SyntheticJoystickHandler$JoystickAxesState;
@@ -84499,11 +78902,7 @@
 Landroid/view/ViewRootImpl$SyntheticJoystickHandler;->MSG_ENQUEUE_Y_AXIS_KEY_REPEAT:I
 Landroid/view/ViewRootImpl$SyntheticJoystickHandler;->process(Landroid/view/MotionEvent;)V
 Landroid/view/ViewRootImpl$SyntheticJoystickHandler;->update(Landroid/view/MotionEvent;)V
-Landroid/view/ViewRootImpl$SyntheticKeyboardHandler;
-Landroid/view/ViewRootImpl$SyntheticKeyboardHandler;-><init>()V
 Landroid/view/ViewRootImpl$SyntheticKeyboardHandler;->process(Landroid/view/KeyEvent;)V
-Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;
-Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;-><init>()V
 Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->cancel(Landroid/view/MotionEvent;)V
 Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->cancelFling()V
 Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->consumeAccumulatedMovement(JI)V
@@ -84545,25 +78944,19 @@
 Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->sendKeyUp(J)V
 Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->startFling(JFF)Z
 Landroid/view/ViewRootImpl$SyntheticTouchNavigationHandler;->TICK_DISTANCE_MILLIMETERS:I
-Landroid/view/ViewRootImpl$SyntheticTrackballHandler;
-Landroid/view/ViewRootImpl$SyntheticTrackballHandler;-><init>()V
 Landroid/view/ViewRootImpl$SyntheticTrackballHandler;->cancel()V
 Landroid/view/ViewRootImpl$SyntheticTrackballHandler;->mLastTime:J
 Landroid/view/ViewRootImpl$SyntheticTrackballHandler;->mX:Landroid/view/ViewRootImpl$TrackballAxis;
 Landroid/view/ViewRootImpl$SyntheticTrackballHandler;->mY:Landroid/view/ViewRootImpl$TrackballAxis;
 Landroid/view/ViewRootImpl$SyntheticTrackballHandler;->process(Landroid/view/MotionEvent;)V
-Landroid/view/ViewRootImpl$SystemUiVisibilityInfo;
 Landroid/view/ViewRootImpl$SystemUiVisibilityInfo;-><init>()V
 Landroid/view/ViewRootImpl$SystemUiVisibilityInfo;->globalVisibility:I
 Landroid/view/ViewRootImpl$SystemUiVisibilityInfo;->localChanges:I
 Landroid/view/ViewRootImpl$SystemUiVisibilityInfo;->localValue:I
 Landroid/view/ViewRootImpl$SystemUiVisibilityInfo;->seq:I
-Landroid/view/ViewRootImpl$TakenSurfaceHolder;
-Landroid/view/ViewRootImpl$TakenSurfaceHolder;-><init>()V
 Landroid/view/ViewRootImpl$TakenSurfaceHolder;->onAllowLockCanvas()Z
 Landroid/view/ViewRootImpl$TakenSurfaceHolder;->onRelayoutContainer()V
 Landroid/view/ViewRootImpl$TakenSurfaceHolder;->onUpdateSurface()V
-Landroid/view/ViewRootImpl$TrackballAxis;
 Landroid/view/ViewRootImpl$TrackballAxis;-><init>()V
 Landroid/view/ViewRootImpl$TrackballAxis;->acceleration:F
 Landroid/view/ViewRootImpl$TrackballAxis;->ACCEL_MOVE_SCALING_FACTOR:F
@@ -84580,9 +78973,6 @@
 Landroid/view/ViewRootImpl$TrackballAxis;->SECOND_CUMULATIVE_MOVEMENT_THRESHOLD:F
 Landroid/view/ViewRootImpl$TrackballAxis;->step:I
 Landroid/view/ViewRootImpl$TrackballAxis;->SUBSEQUENT_INCREMENTAL_MOVEMENT_THRESHOLD:F
-Landroid/view/ViewRootImpl$TraversalRunnable;
-Landroid/view/ViewRootImpl$TraversalRunnable;-><init>()V
-Landroid/view/ViewRootImpl$UnhandledKeyManager;
 Landroid/view/ViewRootImpl$UnhandledKeyManager;-><init>()V
 Landroid/view/ViewRootImpl$UnhandledKeyManager;->dispatch(Landroid/view/View;Landroid/view/KeyEvent;)Z
 Landroid/view/ViewRootImpl$UnhandledKeyManager;->mCapturedKeys:Landroid/util/SparseArray;
@@ -84590,8 +78980,6 @@
 Landroid/view/ViewRootImpl$UnhandledKeyManager;->mDispatched:Z
 Landroid/view/ViewRootImpl$UnhandledKeyManager;->preDispatch(Landroid/view/KeyEvent;)V
 Landroid/view/ViewRootImpl$UnhandledKeyManager;->preViewDispatch(Landroid/view/KeyEvent;)Z
-Landroid/view/ViewRootImpl$ViewPostImeInputStage;
-Landroid/view/ViewRootImpl$ViewPostImeInputStage;-><init>(Landroid/view/ViewRootImpl$InputStage;)V
 Landroid/view/ViewRootImpl$ViewPostImeInputStage;->maybeUpdatePointerIcon(Landroid/view/MotionEvent;)V
 Landroid/view/ViewRootImpl$ViewPostImeInputStage;->onDeliverToNext(Landroid/view/ViewRootImpl$QueuedInputEvent;)V
 Landroid/view/ViewRootImpl$ViewPostImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
@@ -84601,13 +78989,8 @@
 Landroid/view/ViewRootImpl$ViewPostImeInputStage;->processKeyEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
 Landroid/view/ViewRootImpl$ViewPostImeInputStage;->processPointerEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
 Landroid/view/ViewRootImpl$ViewPostImeInputStage;->processTrackballEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
-Landroid/view/ViewRootImpl$ViewPreImeInputStage;
-Landroid/view/ViewRootImpl$ViewPreImeInputStage;-><init>(Landroid/view/ViewRootImpl$InputStage;)V
 Landroid/view/ViewRootImpl$ViewPreImeInputStage;->onProcess(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
 Landroid/view/ViewRootImpl$ViewPreImeInputStage;->processKeyEvent(Landroid/view/ViewRootImpl$QueuedInputEvent;)I
-Landroid/view/ViewRootImpl$ViewRootHandler;
-Landroid/view/ViewRootImpl$ViewRootHandler;-><init>()V
-Landroid/view/ViewRootImpl$W;
 Landroid/view/ViewRootImpl$W;-><init>(Landroid/view/ViewRootImpl;)V
 Landroid/view/ViewRootImpl$W;->checkCallingPermission(Ljava/lang/String;)I
 Landroid/view/ViewRootImpl$W;->closeSystemDialogs(Ljava/lang/String;)V
@@ -84627,14 +79010,10 @@
 Landroid/view/ViewRootImpl$W;->resized(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Rect;ZLandroid/util/MergedConfiguration;Landroid/graphics/Rect;ZZILandroid/view/DisplayCutout$ParcelableWrapper;)V
 Landroid/view/ViewRootImpl$W;->updatePointerIcon(FF)V
 Landroid/view/ViewRootImpl$W;->windowFocusChanged(ZZ)V
-Landroid/view/ViewRootImpl$WindowInputEventReceiver;
-Landroid/view/ViewRootImpl$WindowInputEventReceiver;-><init>(Landroid/view/InputChannel;Landroid/os/Looper;)V
 Landroid/view/ViewRootImpl$WindowInputEventReceiver;->dispose()V
 Landroid/view/ViewRootImpl$WindowInputEventReceiver;->onBatchedInputEventPending()V
 Landroid/view/ViewRootImpl$WindowInputEventReceiver;->onInputEvent(Landroid/view/InputEvent;I)V
-Landroid/view/ViewRootImpl$WindowStoppedCallback;
 Landroid/view/ViewRootImpl$WindowStoppedCallback;->windowStopped(Z)V
-Landroid/view/ViewRootImpl;
 Landroid/view/ViewRootImpl;-><init>(Landroid/content/Context;Landroid/view/Display;)V
 Landroid/view/ViewRootImpl;->addFirstDrawHandler(Ljava/lang/Runnable;)V
 Landroid/view/ViewRootImpl;->addWindowCallbacks(Landroid/view/WindowCallbacks;)V
@@ -85009,8 +79388,6 @@
 Landroid/view/ViewRootImpl;->windowFocusChanged(ZZ)V
 Landroid/view/ViewStructure;->getTempRect()Landroid/graphics/Rect;
 Landroid/view/ViewStructure;->setAssistBlocked(Z)V
-Landroid/view/ViewStub$ViewReplaceRunnable;
-Landroid/view/ViewStub$ViewReplaceRunnable;-><init>(Landroid/view/View;)V
 Landroid/view/ViewStub$ViewReplaceRunnable;->view:Landroid/view/View;
 Landroid/view/ViewStub;->inflateViewNoAdd(Landroid/view/ViewGroup;)Landroid/view/View;
 Landroid/view/ViewStub;->mInflatedId:I
@@ -85022,13 +79399,11 @@
 Landroid/view/ViewStub;->setInflatedIdAsync(I)Ljava/lang/Runnable;
 Landroid/view/ViewStub;->setLayoutResourceAsync(I)Ljava/lang/Runnable;
 Landroid/view/ViewStub;->setVisibilityAsync(I)Ljava/lang/Runnable;
-Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;
 Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;-><init>()V
 Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;->get(I)Ljava/lang/Object;
 Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;->mData:Ljava/util/ArrayList;
 Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;->mSize:I
 Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;->size()I
-Landroid/view/ViewTreeObserver$CopyOnWriteArray;
 Landroid/view/ViewTreeObserver$CopyOnWriteArray;-><init>()V
 Landroid/view/ViewTreeObserver$CopyOnWriteArray;->add(Ljava/lang/Object;)V
 Landroid/view/ViewTreeObserver$CopyOnWriteArray;->addAll(Landroid/view/ViewTreeObserver$CopyOnWriteArray;)V
@@ -85042,17 +79417,13 @@
 Landroid/view/ViewTreeObserver$CopyOnWriteArray;->remove(Ljava/lang/Object;)V
 Landroid/view/ViewTreeObserver$CopyOnWriteArray;->size()I
 Landroid/view/ViewTreeObserver$CopyOnWriteArray;->start()Landroid/view/ViewTreeObserver$CopyOnWriteArray$Access;
-Landroid/view/ViewTreeObserver$InternalInsetsInfo;
 Landroid/view/ViewTreeObserver$InternalInsetsInfo;->isEmpty()Z
 Landroid/view/ViewTreeObserver$InternalInsetsInfo;->reset()V
 Landroid/view/ViewTreeObserver$InternalInsetsInfo;->TOUCHABLE_INSETS_CONTENT:I
 Landroid/view/ViewTreeObserver$InternalInsetsInfo;->TOUCHABLE_INSETS_FRAME:I
 Landroid/view/ViewTreeObserver$InternalInsetsInfo;->TOUCHABLE_INSETS_VISIBLE:I
-Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;
 Landroid/view/ViewTreeObserver$OnComputeInternalInsetsListener;->onComputeInternalInsets(Landroid/view/ViewTreeObserver$InternalInsetsInfo;)V
-Landroid/view/ViewTreeObserver$OnEnterAnimationCompleteListener;
 Landroid/view/ViewTreeObserver$OnEnterAnimationCompleteListener;->onEnterAnimationComplete()V
-Landroid/view/ViewTreeObserver$OnWindowShownListener;
 Landroid/view/ViewTreeObserver$OnWindowShownListener;->onWindowShown()V
 Landroid/view/ViewTreeObserver;-><init>(Landroid/content/Context;)V
 Landroid/view/ViewTreeObserver;->addOnEnterAnimationCompleteListener(Landroid/view/ViewTreeObserver$OnEnterAnimationCompleteListener;)V
@@ -85078,11 +79449,8 @@
 Landroid/view/ViewTreeObserver;->removeOnEnterAnimationCompleteListener(Landroid/view/ViewTreeObserver$OnEnterAnimationCompleteListener;)V
 Landroid/view/ViewTreeObserver;->removeOnWindowShownListener(Landroid/view/ViewTreeObserver$OnWindowShownListener;)V
 Landroid/view/ViewTreeObserver;->sIllegalOnDrawModificationIsFatal:Z
-Landroid/view/Window$OnWindowDismissedCallback;
 Landroid/view/Window$OnWindowDismissedCallback;->onWindowDismissed(ZZ)V
-Landroid/view/Window$OnWindowSwipeDismissedCallback;
 Landroid/view/Window$OnWindowSwipeDismissedCallback;->onWindowSwipeDismissed()V
-Landroid/view/Window$WindowControllerCallback;
 Landroid/view/Window$WindowControllerCallback;->enterPictureInPictureModeIfPossible()V
 Landroid/view/Window$WindowControllerCallback;->exitFreeformMode()V
 Landroid/view/Window$WindowControllerCallback;->isTaskRoot()Z
@@ -85133,7 +79501,6 @@
 Landroid/view/Window;->setWindowControllerCallback(Landroid/view/Window$WindowControllerCallback;)V
 Landroid/view/WindowAnimationFrameStats;-><init>()V
 Landroid/view/WindowAnimationFrameStats;-><init>(Landroid/os/Parcel;)V
-Landroid/view/WindowCallbacks;
 Landroid/view/WindowCallbacks;->onContentDrawn(IIII)Z
 Landroid/view/WindowCallbacks;->onPostDraw(Landroid/view/DisplayListCanvas;)V
 Landroid/view/WindowCallbacks;->onRequestDraw(Z)V
@@ -85143,15 +79510,12 @@
 Landroid/view/WindowCallbacks;->RESIZE_MODE_DOCKED_DIVIDER:I
 Landroid/view/WindowCallbacks;->RESIZE_MODE_FREEFORM:I
 Landroid/view/WindowCallbacks;->RESIZE_MODE_INVALID:I
-Landroid/view/WindowCallbackWrapper;
 Landroid/view/WindowCallbackWrapper;-><init>(Landroid/view/Window$Callback;)V
 Landroid/view/WindowCallbackWrapper;->mWrapped:Landroid/view/Window$Callback;
 Landroid/view/WindowContentFrameStats;-><init>()V
 Landroid/view/WindowContentFrameStats;-><init>(Landroid/os/Parcel;)V
 Landroid/view/WindowContentFrameStats;->mFramesPostedTimeNano:[J
 Landroid/view/WindowContentFrameStats;->mFramesReadyTimeNano:[J
-Landroid/view/WindowId$FocusObserver$H;
-Landroid/view/WindowId$FocusObserver$H;-><init>()V
 Landroid/view/WindowId$FocusObserver;->mHandler:Landroid/os/Handler;
 Landroid/view/WindowId$FocusObserver;->mIObserver:Landroid/view/IWindowFocusObserver$Stub;
 Landroid/view/WindowId$FocusObserver;->mRegistrations:Ljava/util/HashMap;
@@ -85159,7 +79523,6 @@
 Landroid/view/WindowId;-><init>(Landroid/view/IWindowId;)V
 Landroid/view/WindowId;->getTarget()Landroid/view/IWindowId;
 Landroid/view/WindowId;->mToken:Landroid/view/IWindowId;
-Landroid/view/WindowInfo;
 Landroid/view/WindowInfo;-><init>()V
 Landroid/view/WindowInfo;->accessibilityIdOfAnchor:J
 Landroid/view/WindowInfo;->activityToken:Landroid/os/IBinder;
@@ -85206,7 +79569,6 @@
 Landroid/view/WindowInsets;->mWindowDecorInsetsConsumed:Z
 Landroid/view/WindowInsets;->replaceWindowDecorInsets(IIII)Landroid/view/WindowInsets;
 Landroid/view/WindowInsets;->shouldAlwaysConsumeNavBar()Z
-Landroid/view/WindowLayoutParamsProto;
 Landroid/view/WindowLayoutParamsProto;-><init>()V
 Landroid/view/WindowLayoutParamsProto;->ALPHA:J
 Landroid/view/WindowLayoutParamsProto;->BUTTON_BRIGHTNESS:J
@@ -85241,11 +79603,7 @@
 Landroid/view/WindowLayoutParamsProto;->WINDOW_ANIMATIONS:J
 Landroid/view/WindowLayoutParamsProto;->X:J
 Landroid/view/WindowLayoutParamsProto;->Y:J
-Landroid/view/WindowLeaked;
-Landroid/view/WindowManager$KeyboardShortcutsReceiver;
 Landroid/view/WindowManager$KeyboardShortcutsReceiver;->onKeyboardShortcutsReceived(Ljava/util/List;)V
-Landroid/view/WindowManager$LayoutParams$LayoutInDisplayCutoutMode;
-Landroid/view/WindowManager$LayoutParams$SoftInputModeFlags;
 Landroid/view/WindowManager$LayoutParams;->accessibilityIdOfAnchor:J
 Landroid/view/WindowManager$LayoutParams;->ACCESSIBILITY_ANCHOR_CHANGED:I
 Landroid/view/WindowManager$LayoutParams;->BUTTON_BRIGHTNESS_CHANGED:I
@@ -85321,8 +79679,6 @@
 Landroid/view/WindowManager$LayoutParams;->TYPE_VOLUME_OVERLAY:I
 Landroid/view/WindowManager$LayoutParams;->USER_ACTIVITY_TIMEOUT_CHANGED:I
 Landroid/view/WindowManager$LayoutParams;->writeToProto(Landroid/util/proto/ProtoOutputStream;J)V
-Landroid/view/WindowManager$TransitionFlags;
-Landroid/view/WindowManager$TransitionType;
 Landroid/view/WindowManager;->DOCKED_BOTTOM:I
 Landroid/view/WindowManager;->DOCKED_INVALID:I
 Landroid/view/WindowManager;->DOCKED_LEFT:I
@@ -85362,7 +79718,6 @@
 Landroid/view/WindowManager;->TRANSIT_WALLPAPER_INTRA_CLOSE:I
 Landroid/view/WindowManager;->TRANSIT_WALLPAPER_INTRA_OPEN:I
 Landroid/view/WindowManager;->TRANSIT_WALLPAPER_OPEN:I
-Landroid/view/WindowManagerGlobal;
 Landroid/view/WindowManagerGlobal;-><init>()V
 Landroid/view/WindowManagerGlobal;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;Landroid/view/Display;Landroid/view/Window;)V
 Landroid/view/WindowManagerGlobal;->ADD_APP_EXITING:I
@@ -85406,7 +79761,6 @@
 Landroid/view/WindowManagerGlobal;->TAG:Ljava/lang/String;
 Landroid/view/WindowManagerGlobal;->trimForeground()V
 Landroid/view/WindowManagerGlobal;->updateViewLayout(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
-Landroid/view/WindowManagerImpl;
 Landroid/view/WindowManagerImpl;-><init>(Landroid/content/Context;)V
 Landroid/view/WindowManagerImpl;-><init>(Landroid/content/Context;Landroid/view/Window;)V
 Landroid/view/WindowManagerImpl;->applyDefaultToken(Landroid/view/ViewGroup$LayoutParams;)V
@@ -85417,10 +79771,8 @@
 Landroid/view/WindowManagerImpl;->mParentWindow:Landroid/view/Window;
 Landroid/view/WindowManagerImpl;->requestAppKeyboardShortcuts(Landroid/view/WindowManager$KeyboardShortcutsReceiver;I)V
 Landroid/view/WindowManagerImpl;->setDefaultToken(Landroid/os/IBinder;)V
-Landroid/view/WindowManagerPolicyConstants$PointerEventListener;
 Landroid/view/WindowManagerPolicyConstants$PointerEventListener;->onPointerEvent(Landroid/view/MotionEvent;)V
 Landroid/view/WindowManagerPolicyConstants$PointerEventListener;->onPointerEvent(Landroid/view/MotionEvent;I)V
-Landroid/view/WindowManagerPolicyConstants;
 Landroid/view/WindowManagerPolicyConstants;->ACTION_HDMI_PLUGGED:Ljava/lang/String;
 Landroid/view/WindowManagerPolicyConstants;->ACTION_USER_ACTIVITY_NOTIFICATION:Ljava/lang/String;
 Landroid/view/WindowManagerPolicyConstants;->APPLICATION_ABOVE_SUB_PANEL_SUBLAYER:I
@@ -85451,11 +79803,8 @@
 Landroid/view/WindowManagerPolicyConstants;->OFF_BECAUSE_OF_USER:I
 Landroid/view/WindowManagerPolicyConstants;->PRESENCE_EXTERNAL:I
 Landroid/view/WindowManagerPolicyConstants;->PRESENCE_INTERNAL:I
-Landroid/webkit/CacheManager$CacheResult;
 Landroid/webkit/CacheManager$CacheResult;->setContentLength(J)V
-Landroid/webkit/CacheManager;
 Landroid/webkit/CacheManager;-><init>()V
-Landroid/webkit/ConsoleMessage$MessageLevel;-><init>()V
 Landroid/webkit/CookieSyncManager;-><init>()V
 Landroid/webkit/CookieSyncManager;->checkInstanceIsAllowed()V
 Landroid/webkit/CookieSyncManager;->setGetInstanceIsAllowed()V
@@ -85467,7 +79816,6 @@
 Landroid/webkit/DateSorter;->mBins:[J
 Landroid/webkit/DateSorter;->mLabels:[Ljava/lang/String;
 Landroid/webkit/DateSorter;->NUM_DAYS_AGO:I
-Landroid/webkit/EventLogTags;
 Landroid/webkit/EventLogTags;-><init>()V
 Landroid/webkit/EventLogTags;->BROWSER_DOUBLE_TAP_DURATION:I
 Landroid/webkit/EventLogTags;->BROWSER_SNAP_CENTER:I
@@ -85491,7 +79839,6 @@
 Landroid/webkit/FindActionModeCallback;->mResources:Landroid/content/res/Resources;
 Landroid/webkit/FindActionModeCallback;->mWebView:Landroid/webkit/WebView;
 Landroid/webkit/FindActionModeCallback;->updateMatchesString()V
-Landroid/webkit/IWebViewUpdateService$Stub$Proxy;
 Landroid/webkit/IWebViewUpdateService$Stub$Proxy;->changeProviderAndSetting(Ljava/lang/String;)Ljava/lang/String;
 Landroid/webkit/IWebViewUpdateService$Stub$Proxy;->enableFallbackLogic(Z)V
 Landroid/webkit/IWebViewUpdateService$Stub$Proxy;->enableMultiProcess(Z)V
@@ -85504,7 +79851,6 @@
 Landroid/webkit/IWebViewUpdateService$Stub$Proxy;->isMultiProcessEnabled()Z
 Landroid/webkit/IWebViewUpdateService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/webkit/IWebViewUpdateService$Stub$Proxy;->notifyRelroCreationCompleted()V
-Landroid/webkit/IWebViewUpdateService$Stub;
 Landroid/webkit/IWebViewUpdateService$Stub;-><init>()V
 Landroid/webkit/IWebViewUpdateService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Landroid/webkit/IWebViewUpdateService$Stub;->TRANSACTION_changeProviderAndSetting:I
@@ -85518,7 +79864,6 @@
 Landroid/webkit/IWebViewUpdateService$Stub;->TRANSACTION_isMultiProcessEnabled:I
 Landroid/webkit/IWebViewUpdateService$Stub;->TRANSACTION_notifyRelroCreationCompleted:I
 Landroid/webkit/IWebViewUpdateService$Stub;->TRANSACTION_waitForAndGetProvider:I
-Landroid/webkit/IWebViewUpdateService;
 Landroid/webkit/IWebViewUpdateService;->changeProviderAndSetting(Ljava/lang/String;)Ljava/lang/String;
 Landroid/webkit/IWebViewUpdateService;->enableFallbackLogic(Z)V
 Landroid/webkit/IWebViewUpdateService;->enableMultiProcess(Z)V
@@ -85527,10 +79872,6 @@
 Landroid/webkit/IWebViewUpdateService;->isMultiProcessEnabled()Z
 Landroid/webkit/IWebViewUpdateService;->notifyRelroCreationCompleted()V
 Landroid/webkit/IWebViewUpdateService;->waitForAndGetProvider()Landroid/webkit/WebViewProviderResponse;
-Landroid/webkit/JsDialogHelper$CancelListener;
-Landroid/webkit/JsDialogHelper$CancelListener;-><init>()V
-Landroid/webkit/JsDialogHelper$PositiveListener;
-Landroid/webkit/JsDialogHelper$PositiveListener;-><init>(Landroid/widget/EditText;)V
 Landroid/webkit/JsDialogHelper$PositiveListener;->mEdit:Landroid/widget/EditText;
 Landroid/webkit/JsDialogHelper;->canShowAlertDialog(Landroid/content/Context;)Z
 Landroid/webkit/JsDialogHelper;->getJsDialogTitle(Landroid/content/Context;)Ljava/lang/String;
@@ -85547,13 +79888,9 @@
 Landroid/webkit/MimeTypeMap;->mimeTypeFromExtension(Ljava/lang/String;)Ljava/lang/String;
 Landroid/webkit/MimeTypeMap;->remapGenericMimeType(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
 Landroid/webkit/MimeTypeMap;->sMimeTypeMap:Landroid/webkit/MimeTypeMap;
-Landroid/webkit/Plugin$DefaultClickHandler;
-Landroid/webkit/Plugin$DefaultClickHandler;-><init>()V
 Landroid/webkit/Plugin$DefaultClickHandler;->handleClickEvent(Landroid/content/Context;)V
 Landroid/webkit/Plugin$DefaultClickHandler;->mDialog:Landroid/app/AlertDialog;
-Landroid/webkit/Plugin$PreferencesClickHandler;
 Landroid/webkit/Plugin$PreferencesClickHandler;->handleClickEvent(Landroid/content/Context;)V
-Landroid/webkit/Plugin;
 Landroid/webkit/Plugin;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 Landroid/webkit/Plugin;->dispatchClickEvent(Landroid/content/Context;)V
 Landroid/webkit/Plugin;->getDescription()Ljava/lang/String;
@@ -85570,12 +79907,10 @@
 Landroid/webkit/Plugin;->setFileName(Ljava/lang/String;)V
 Landroid/webkit/Plugin;->setName(Ljava/lang/String;)V
 Landroid/webkit/Plugin;->setPath(Ljava/lang/String;)V
-Landroid/webkit/PluginData;
 Landroid/webkit/PluginData;->mContentLength:J
 Landroid/webkit/PluginData;->mHeaders:Ljava/util/Map;
 Landroid/webkit/PluginData;->mStatusCode:I
 Landroid/webkit/PluginData;->mStream:Ljava/io/InputStream;
-Landroid/webkit/PluginList;
 Landroid/webkit/PluginList;-><init>()V
 Landroid/webkit/PluginList;->addPlugin(Landroid/webkit/Plugin;)V
 Landroid/webkit/PluginList;->clear()V
@@ -85586,14 +79921,10 @@
 Landroid/webkit/TracingConfig$Builder;->mCustomIncludedCategories:Ljava/util/List;
 Landroid/webkit/TracingConfig$Builder;->mPredefinedCategories:I
 Landroid/webkit/TracingConfig$Builder;->mTracingMode:I
-Landroid/webkit/TracingConfig$PredefinedCategories;
-Landroid/webkit/TracingConfig$TracingMode;
 Landroid/webkit/TracingConfig;-><init>(ILjava/util/List;I)V
 Landroid/webkit/TracingConfig;->mCustomIncludedCategories:Ljava/util/List;
 Landroid/webkit/TracingConfig;->mPredefinedCategories:I
 Landroid/webkit/TracingConfig;->mTracingMode:I
-Landroid/webkit/UrlInterceptHandler;
-Landroid/webkit/UrlInterceptRegistry;
 Landroid/webkit/UrlInterceptRegistry;-><init>()V
 Landroid/webkit/UrlInterceptRegistry;->getHandlers()Ljava/util/LinkedList;
 Landroid/webkit/UrlInterceptRegistry;->getSurrogate(Ljava/lang/String;Ljava/util/Map;)Landroid/webkit/CacheManager$CacheResult;
@@ -85610,7 +79941,6 @@
 Landroid/webkit/URLUtil;->PROXY_BASE:Ljava/lang/String;
 Landroid/webkit/URLUtil;->RESOURCE_BASE:Ljava/lang/String;
 Landroid/webkit/URLUtil;->TRACE:Z
-Landroid/webkit/UserPackage;
 Landroid/webkit/UserPackage;-><init>(Landroid/content/pm/UserInfo;Landroid/content/pm/PackageInfo;)V
 Landroid/webkit/UserPackage;->getAllUsers(Landroid/content/Context;)Ljava/util/List;
 Landroid/webkit/UserPackage;->getPackageInfo()Landroid/content/pm/PackageInfo;
@@ -85631,19 +79961,11 @@
 Landroid/webkit/WebResourceResponse;->mMimeType:Ljava/lang/String;
 Landroid/webkit/WebResourceResponse;->mReasonPhrase:Ljava/lang/String;
 Landroid/webkit/WebResourceResponse;->mResponseHeaders:Ljava/util/Map;
-Landroid/webkit/WebSettings$CacheMode;
-Landroid/webkit/WebSettings$LayoutAlgorithm;-><init>()V
-Landroid/webkit/WebSettings$MenuItemFlags;
-Landroid/webkit/WebSettings$PluginState;-><init>()V
-Landroid/webkit/WebSettings$RenderPriority;-><init>()V
-Landroid/webkit/WebSettings$TextSize;-><init>(I)V
-Landroid/webkit/WebSettings$ZoomDensity;-><init>(I)V
 Landroid/webkit/WebSettings$ZoomDensity;->getValue()I
 Landroid/webkit/WebSettings$ZoomDensity;->value:I
 Landroid/webkit/WebStorage$Origin;->mOrigin:Ljava/lang/String;
 Landroid/webkit/WebStorage$Origin;->mQuota:J
 Landroid/webkit/WebStorage$Origin;->mUsage:J
-Landroid/webkit/WebSyncManager;
 Landroid/webkit/WebSyncManager;-><init>(Landroid/content/Context;Ljava/lang/String;)V
 Landroid/webkit/WebSyncManager;->LOGTAG:Ljava/lang/String;
 Landroid/webkit/WebSyncManager;->mDataBase:Landroid/webkit/WebViewDatabase;
@@ -85652,13 +79974,10 @@
 Landroid/webkit/WebSyncManager;->startSync()V
 Landroid/webkit/WebSyncManager;->stopSync()V
 Landroid/webkit/WebSyncManager;->sync()V
-Landroid/webkit/WebView$FindListenerDistributor;
-Landroid/webkit/WebView$FindListenerDistributor;-><init>()V
 Landroid/webkit/WebView$FindListenerDistributor;->mFindDialogFindListener:Landroid/webkit/WebView$FindListener;
 Landroid/webkit/WebView$FindListenerDistributor;->mUserFindListener:Landroid/webkit/WebView$FindListener;
 Landroid/webkit/WebView$HitTestResult;->mExtra:Ljava/lang/String;
 Landroid/webkit/WebView$HitTestResult;->mType:I
-Landroid/webkit/WebView$RendererPriority;
 Landroid/webkit/WebView$WebViewTransport;->mWebview:Landroid/webkit/WebView;
 Landroid/webkit/WebView;->dumpViewHierarchyWithProperties(Ljava/io/BufferedWriter;I)V
 Landroid/webkit/WebView;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
@@ -85674,10 +79993,8 @@
 Landroid/webkit/WebView;->performAccessibilityActionInternal(ILandroid/os/Bundle;)Z
 Landroid/webkit/WebView;->setFindDialogFindListener(Landroid/webkit/WebView$FindListener;)V
 Landroid/webkit/WebView;->setupFindListenerIfNeeded()V
-Landroid/webkit/WebViewClient$SafeBrowsingThreat;
 Landroid/webkit/WebViewClient;->onUnhandledInputEventInternal(Landroid/webkit/WebView;Landroid/view/InputEvent;)V
 Landroid/webkit/WebViewDatabase;->LOGTAG:Ljava/lang/String;
-Landroid/webkit/WebViewFactory$MissingWebViewPackageException;
 Landroid/webkit/WebViewFactory$MissingWebViewPackageException;-><init>(Ljava/lang/Exception;)V
 Landroid/webkit/WebViewFactory$MissingWebViewPackageException;-><init>(Ljava/lang/String;)V
 Landroid/webkit/WebViewFactory;->CHROMIUM_WEBVIEW_FACTORY:Ljava/lang/String;
@@ -85703,14 +80020,11 @@
 Landroid/webkit/WebViewFactory;->WEBVIEW_UPDATE_SERVICE_NAME:Ljava/lang/String;
 Landroid/webkit/WebViewFragment;->mIsWebViewAvailable:Z
 Landroid/webkit/WebViewFragment;->mWebView:Landroid/webkit/WebView;
-Landroid/webkit/WebViewLibraryLoader$RelroFileCreator;
 Landroid/webkit/WebViewLibraryLoader$RelroFileCreator;-><init>()V
 Landroid/webkit/WebViewLibraryLoader$RelroFileCreator;->main([Ljava/lang/String;)V
-Landroid/webkit/WebViewLibraryLoader$WebViewNativeLibrary;
 Landroid/webkit/WebViewLibraryLoader$WebViewNativeLibrary;-><init>(Ljava/lang/String;J)V
 Landroid/webkit/WebViewLibraryLoader$WebViewNativeLibrary;->path:Ljava/lang/String;
 Landroid/webkit/WebViewLibraryLoader$WebViewNativeLibrary;->size:J
-Landroid/webkit/WebViewLibraryLoader;
 Landroid/webkit/WebViewLibraryLoader;-><init>()V
 Landroid/webkit/WebViewLibraryLoader;->CHROMIUM_WEBVIEW_DEFAULT_VMSIZE_BYTES:J
 Landroid/webkit/WebViewLibraryLoader;->CHROMIUM_WEBVIEW_NATIVE_RELRO_32:Ljava/lang/String;
@@ -85732,13 +80046,11 @@
 Landroid/webkit/WebViewLibraryLoader;->sAddressSpaceReserved:Z
 Landroid/webkit/WebViewLibraryLoader;->setWebViewZygoteVmSize(J)V
 Landroid/webkit/WebViewLibraryLoader;->updateWebViewZygoteVmSize(Landroid/webkit/WebViewLibraryLoader$WebViewNativeLibrary;Landroid/webkit/WebViewLibraryLoader$WebViewNativeLibrary;)V
-Landroid/webkit/WebViewProviderResponse;
 Landroid/webkit/WebViewProviderResponse;-><init>(Landroid/content/pm/PackageInfo;I)V
 Landroid/webkit/WebViewProviderResponse;-><init>(Landroid/os/Parcel;)V
 Landroid/webkit/WebViewProviderResponse;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/webkit/WebViewProviderResponse;->status:I
 Landroid/webkit/WebViewUpdateService;->getUpdateService()Landroid/webkit/IWebViewUpdateService;
-Landroid/webkit/WebViewZygote;
 Landroid/webkit/WebViewZygote;-><init>()V
 Landroid/webkit/WebViewZygote;->connectToZygoteIfNeededLocked()V
 Landroid/webkit/WebViewZygote;->getPackageName()Ljava/lang/String;
@@ -85753,29 +80065,18 @@
 Landroid/webkit/WebViewZygote;->sPackageOriginalAppInfo:Landroid/content/pm/ApplicationInfo;
 Landroid/webkit/WebViewZygote;->stopZygoteLocked()V
 Landroid/webkit/WebViewZygote;->sZygote:Landroid/os/ChildZygoteProcess;
-Landroid/widget/AbsListView$AbsPositionScroller;
 Landroid/widget/AbsListView$AbsPositionScroller;-><init>()V
 Landroid/widget/AbsListView$AbsPositionScroller;->start(I)V
 Landroid/widget/AbsListView$AbsPositionScroller;->start(II)V
 Landroid/widget/AbsListView$AbsPositionScroller;->startWithOffset(II)V
 Landroid/widget/AbsListView$AbsPositionScroller;->startWithOffset(III)V
 Landroid/widget/AbsListView$AbsPositionScroller;->stop()V
-Landroid/widget/AbsListView$AdapterDataSetObserver;
-Landroid/widget/AbsListView$AdapterDataSetObserver;-><init>()V
-Landroid/widget/AbsListView$CheckForKeyLongPress;
-Landroid/widget/AbsListView$CheckForKeyLongPress;-><init>()V
-Landroid/widget/AbsListView$CheckForLongPress;
-Landroid/widget/AbsListView$CheckForLongPress;-><init>()V
 Landroid/widget/AbsListView$CheckForLongPress;->INVALID_COORD:I
 Landroid/widget/AbsListView$CheckForLongPress;->mX:F
 Landroid/widget/AbsListView$CheckForLongPress;->mY:F
 Landroid/widget/AbsListView$CheckForLongPress;->setCoords(FF)V
-Landroid/widget/AbsListView$CheckForTap;
-Landroid/widget/AbsListView$CheckForTap;-><init>()V
 Landroid/widget/AbsListView$CheckForTap;->x:F
 Landroid/widget/AbsListView$CheckForTap;->y:F
-Landroid/widget/AbsListView$FlingRunnable;
-Landroid/widget/AbsListView$FlingRunnable;-><init>()V
 Landroid/widget/AbsListView$FlingRunnable;->edgeReached(I)V
 Landroid/widget/AbsListView$FlingRunnable;->flywheelTouch()V
 Landroid/widget/AbsListView$FlingRunnable;->FLYWHEEL_TIMEOUT:I
@@ -85785,8 +80086,6 @@
 Landroid/widget/AbsListView$FlingRunnable;->startOverfling(I)V
 Landroid/widget/AbsListView$FlingRunnable;->startScroll(IIZZ)V
 Landroid/widget/AbsListView$FlingRunnable;->startSpringback()V
-Landroid/widget/AbsListView$InputConnectionWrapper;
-Landroid/widget/AbsListView$InputConnectionWrapper;-><init>(Landroid/view/inputmethod/EditorInfo;)V
 Landroid/widget/AbsListView$InputConnectionWrapper;->getTarget()Landroid/view/inputmethod/InputConnection;
 Landroid/widget/AbsListView$InputConnectionWrapper;->mOutAttrs:Landroid/view/inputmethod/EditorInfo;
 Landroid/widget/AbsListView$InputConnectionWrapper;->mTarget:Landroid/view/inputmethod/InputConnection;
@@ -85795,18 +80094,10 @@
 Landroid/widget/AbsListView$LayoutParams;->isEnabled:Z
 Landroid/widget/AbsListView$LayoutParams;->itemId:J
 Landroid/widget/AbsListView$LayoutParams;->recycledHeaderFooter:Z
-Landroid/widget/AbsListView$ListItemAccessibilityDelegate;
-Landroid/widget/AbsListView$ListItemAccessibilityDelegate;-><init>()V
-Landroid/widget/AbsListView$MultiChoiceModeWrapper;
-Landroid/widget/AbsListView$MultiChoiceModeWrapper;-><init>()V
 Landroid/widget/AbsListView$MultiChoiceModeWrapper;->hasWrappedCallback()Z
 Landroid/widget/AbsListView$MultiChoiceModeWrapper;->mWrapped:Landroid/widget/AbsListView$MultiChoiceModeListener;
 Landroid/widget/AbsListView$MultiChoiceModeWrapper;->setWrapped(Landroid/widget/AbsListView$MultiChoiceModeListener;)V
-Landroid/widget/AbsListView$PerformClick;
-Landroid/widget/AbsListView$PerformClick;-><init>()V
 Landroid/widget/AbsListView$PerformClick;->mClickMotionPosition:I
-Landroid/widget/AbsListView$PositionScroller;
-Landroid/widget/AbsListView$PositionScroller;-><init>()V
 Landroid/widget/AbsListView$PositionScroller;->mBoundPos:I
 Landroid/widget/AbsListView$PositionScroller;->mExtraScroll:I
 Landroid/widget/AbsListView$PositionScroller;->mLastSeenPos:I
@@ -85826,8 +80117,6 @@
 Landroid/widget/AbsListView$PositionScroller;->startWithOffset(II)V
 Landroid/widget/AbsListView$PositionScroller;->startWithOffset(III)V
 Landroid/widget/AbsListView$PositionScroller;->stop()V
-Landroid/widget/AbsListView$RecycleBin;
-Landroid/widget/AbsListView$RecycleBin;-><init>()V
 Landroid/widget/AbsListView$RecycleBin;->addScrapView(Landroid/view/View;I)V
 Landroid/widget/AbsListView$RecycleBin;->clearScrap(Ljava/util/ArrayList;)V
 Landroid/widget/AbsListView$RecycleBin;->clearScrapForRebind(Landroid/view/View;)V
@@ -85856,7 +80145,6 @@
 Landroid/widget/AbsListView$RecycleBin;->setCacheColorHint(I)V
 Landroid/widget/AbsListView$RecycleBin;->setViewTypeCount(I)V
 Landroid/widget/AbsListView$RecycleBin;->shouldRecycleViewType(I)Z
-Landroid/widget/AbsListView$SavedState;
 Landroid/widget/AbsListView$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/AbsListView$SavedState;-><init>(Landroid/os/Parcelable;)V
 Landroid/widget/AbsListView$SavedState;->checkedItemCount:I
@@ -85868,8 +80156,6 @@
 Landroid/widget/AbsListView$SavedState;->inActionMode:Z
 Landroid/widget/AbsListView$SavedState;->position:I
 Landroid/widget/AbsListView$SavedState;->selectedId:J
-Landroid/widget/AbsListView$WindowRunnnable;
-Landroid/widget/AbsListView$WindowRunnnable;-><init>()V
 Landroid/widget/AbsListView$WindowRunnnable;->mOriginalAttachCount:I
 Landroid/widget/AbsListView$WindowRunnnable;->rememberWindowAttachCount()V
 Landroid/widget/AbsListView$WindowRunnnable;->sameWindow()Z
@@ -86079,13 +80365,10 @@
 Landroid/widget/AbsSeekBar;->setThumbPos(ILandroid/graphics/drawable/Drawable;FI)V
 Landroid/widget/AbsSeekBar;->startDrag(Landroid/view/MotionEvent;)V
 Landroid/widget/AbsSeekBar;->updateThumbAndTrackPos(II)V
-Landroid/widget/AbsSpinner$RecycleBin;
-Landroid/widget/AbsSpinner$RecycleBin;-><init>()V
 Landroid/widget/AbsSpinner$RecycleBin;->clear()V
 Landroid/widget/AbsSpinner$RecycleBin;->get(I)Landroid/view/View;
 Landroid/widget/AbsSpinner$RecycleBin;->mScrapHeap:Landroid/util/SparseArray;
 Landroid/widget/AbsSpinner$RecycleBin;->put(ILandroid/view/View;)V
-Landroid/widget/AbsSpinner$SavedState;
 Landroid/widget/AbsSpinner$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/AbsSpinner$SavedState;-><init>(Landroid/os/Parcelable;)V
 Landroid/widget/AbsSpinner$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -86110,13 +80393,8 @@
 Landroid/widget/AbsSpinner;->recycleAllViews()V
 Landroid/widget/AbsSpinner;->resetList()V
 Landroid/widget/AbsSpinner;->setSelectionInt(IZ)V
-Landroid/widget/ActionMenuPresenter$ActionButtonSubmenu;
-Landroid/widget/ActionMenuPresenter$ActionButtonSubmenu;-><init>(Landroid/content/Context;Lcom/android/internal/view/menu/SubMenuBuilder;Landroid/view/View;)V
 Landroid/widget/ActionMenuPresenter$ActionButtonSubmenu;->onDismiss()V
-Landroid/widget/ActionMenuPresenter$ActionMenuPopupCallback;
-Landroid/widget/ActionMenuPresenter$ActionMenuPopupCallback;-><init>()V
 Landroid/widget/ActionMenuPresenter$ActionMenuPopupCallback;->getPopup()Lcom/android/internal/view/menu/ShowableListMenu;
-Landroid/widget/ActionMenuPresenter$ItemAnimationInfo;
 Landroid/widget/ActionMenuPresenter$ItemAnimationInfo;-><init>(ILandroid/widget/ActionMenuPresenter$MenuItemLayoutInfo;Landroid/animation/Animator;I)V
 Landroid/widget/ActionMenuPresenter$ItemAnimationInfo;->animator:Landroid/animation/Animator;
 Landroid/widget/ActionMenuPresenter$ItemAnimationInfo;->animType:I
@@ -86125,32 +80403,21 @@
 Landroid/widget/ActionMenuPresenter$ItemAnimationInfo;->id:I
 Landroid/widget/ActionMenuPresenter$ItemAnimationInfo;->menuItemLayoutInfo:Landroid/widget/ActionMenuPresenter$MenuItemLayoutInfo;
 Landroid/widget/ActionMenuPresenter$ItemAnimationInfo;->MOVE:I
-Landroid/widget/ActionMenuPresenter$MenuItemLayoutInfo;
 Landroid/widget/ActionMenuPresenter$MenuItemLayoutInfo;-><init>(Landroid/view/View;Z)V
 Landroid/widget/ActionMenuPresenter$MenuItemLayoutInfo;->left:I
 Landroid/widget/ActionMenuPresenter$MenuItemLayoutInfo;->top:I
 Landroid/widget/ActionMenuPresenter$MenuItemLayoutInfo;->view:Landroid/view/View;
-Landroid/widget/ActionMenuPresenter$OpenOverflowRunnable;
-Landroid/widget/ActionMenuPresenter$OpenOverflowRunnable;-><init>(Landroid/widget/ActionMenuPresenter$OverflowPopup;)V
 Landroid/widget/ActionMenuPresenter$OpenOverflowRunnable;->mPopup:Landroid/widget/ActionMenuPresenter$OverflowPopup;
-Landroid/widget/ActionMenuPresenter$OverflowMenuButton;
-Landroid/widget/ActionMenuPresenter$OverflowMenuButton;-><init>(Landroid/content/Context;)V
 Landroid/widget/ActionMenuPresenter$OverflowMenuButton;->needsDividerAfter()Z
 Landroid/widget/ActionMenuPresenter$OverflowMenuButton;->needsDividerBefore()Z
 Landroid/widget/ActionMenuPresenter$OverflowMenuButton;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
-Landroid/widget/ActionMenuPresenter$OverflowPopup;
-Landroid/widget/ActionMenuPresenter$OverflowPopup;-><init>(Landroid/content/Context;Lcom/android/internal/view/menu/MenuBuilder;Landroid/view/View;Z)V
 Landroid/widget/ActionMenuPresenter$OverflowPopup;->onDismiss()V
-Landroid/widget/ActionMenuPresenter$PopupPresenterCallback;
-Landroid/widget/ActionMenuPresenter$PopupPresenterCallback;-><init>()V
 Landroid/widget/ActionMenuPresenter$PopupPresenterCallback;->onCloseMenu(Lcom/android/internal/view/menu/MenuBuilder;Z)V
 Landroid/widget/ActionMenuPresenter$PopupPresenterCallback;->onOpenSubMenu(Lcom/android/internal/view/menu/MenuBuilder;)Z
-Landroid/widget/ActionMenuPresenter$SavedState;
 Landroid/widget/ActionMenuPresenter$SavedState;-><init>()V
 Landroid/widget/ActionMenuPresenter$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/ActionMenuPresenter$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/widget/ActionMenuPresenter$SavedState;->openSubMenuId:I
-Landroid/widget/ActionMenuPresenter;
 Landroid/widget/ActionMenuPresenter;-><init>(Landroid/content/Context;)V
 Landroid/widget/ActionMenuPresenter;->ACTIONBAR_ANIMATIONS_ENABLED:Z
 Landroid/widget/ActionMenuPresenter;->bindItemView(Lcom/android/internal/view/menu/MenuItemImpl;Lcom/android/internal/view/menu/MenuView$ItemView;)V
@@ -86207,16 +80474,11 @@
 Landroid/widget/ActionMenuPresenter;->shouldIncludeItem(ILcom/android/internal/view/menu/MenuItemImpl;)Z
 Landroid/widget/ActionMenuPresenter;->showOverflowMenu()Z
 Landroid/widget/ActionMenuPresenter;->updateMenuView(Z)V
-Landroid/widget/ActionMenuView$ActionMenuChildView;
 Landroid/widget/ActionMenuView$ActionMenuChildView;->needsDividerAfter()Z
-Landroid/widget/ActionMenuView$ActionMenuPresenterCallback;
-Landroid/widget/ActionMenuView$ActionMenuPresenterCallback;-><init>()V
 Landroid/widget/ActionMenuView$ActionMenuPresenterCallback;->onCloseMenu(Lcom/android/internal/view/menu/MenuBuilder;Z)V
 Landroid/widget/ActionMenuView$ActionMenuPresenterCallback;->onOpenSubMenu(Lcom/android/internal/view/menu/MenuBuilder;)Z
 Landroid/widget/ActionMenuView$LayoutParams;-><init>(IIZ)V
 Landroid/widget/ActionMenuView$LayoutParams;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
-Landroid/widget/ActionMenuView$MenuBuilderCallback;
-Landroid/widget/ActionMenuView$MenuBuilderCallback;-><init>()V
 Landroid/widget/ActionMenuView$MenuBuilderCallback;->onMenuItemSelected(Lcom/android/internal/view/menu/MenuBuilder;Landroid/view/MenuItem;)Z
 Landroid/widget/ActionMenuView$MenuBuilderCallback;->onMenuModeChange(Lcom/android/internal/view/menu/MenuBuilder;)V
 Landroid/widget/ActionMenuView;->dispatchPopulateAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)Z
@@ -86243,35 +80505,21 @@
 Landroid/widget/ActionMenuView;->setOverflowReserved(Z)V
 Landroid/widget/ActionMenuView;->setPresenter(Landroid/widget/ActionMenuPresenter;)V
 Landroid/widget/ActionMenuView;->TAG:Ljava/lang/String;
-Landroid/widget/ActivityChooserModel$ActivityChooserModelClient;
 Landroid/widget/ActivityChooserModel$ActivityChooserModelClient;->setActivityChooserModel(Landroid/widget/ActivityChooserModel;)V
-Landroid/widget/ActivityChooserModel$ActivityResolveInfo;
-Landroid/widget/ActivityChooserModel$ActivityResolveInfo;-><init>(Landroid/content/pm/ResolveInfo;)V
 Landroid/widget/ActivityChooserModel$ActivityResolveInfo;->compareTo(Landroid/widget/ActivityChooserModel$ActivityResolveInfo;)I
 Landroid/widget/ActivityChooserModel$ActivityResolveInfo;->resolveInfo:Landroid/content/pm/ResolveInfo;
 Landroid/widget/ActivityChooserModel$ActivityResolveInfo;->weight:F
-Landroid/widget/ActivityChooserModel$ActivitySorter;
 Landroid/widget/ActivityChooserModel$ActivitySorter;->sort(Landroid/content/Intent;Ljava/util/List;Ljava/util/List;)V
-Landroid/widget/ActivityChooserModel$DataModelPackageMonitor;
-Landroid/widget/ActivityChooserModel$DataModelPackageMonitor;-><init>()V
 Landroid/widget/ActivityChooserModel$DataModelPackageMonitor;->onSomePackagesChanged()V
-Landroid/widget/ActivityChooserModel$DefaultSorter;
-Landroid/widget/ActivityChooserModel$DefaultSorter;-><init>()V
 Landroid/widget/ActivityChooserModel$DefaultSorter;->mPackageNameToActivityMap:Ljava/util/Map;
 Landroid/widget/ActivityChooserModel$DefaultSorter;->sort(Landroid/content/Intent;Ljava/util/List;Ljava/util/List;)V
 Landroid/widget/ActivityChooserModel$DefaultSorter;->WEIGHT_DECAY_COEFFICIENT:F
-Landroid/widget/ActivityChooserModel$HistoricalRecord;
 Landroid/widget/ActivityChooserModel$HistoricalRecord;-><init>(Landroid/content/ComponentName;JF)V
 Landroid/widget/ActivityChooserModel$HistoricalRecord;-><init>(Ljava/lang/String;JF)V
 Landroid/widget/ActivityChooserModel$HistoricalRecord;->activity:Landroid/content/ComponentName;
 Landroid/widget/ActivityChooserModel$HistoricalRecord;->time:J
 Landroid/widget/ActivityChooserModel$HistoricalRecord;->weight:F
-Landroid/widget/ActivityChooserModel$OnChooseActivityListener;
 Landroid/widget/ActivityChooserModel$OnChooseActivityListener;->onChooseActivity(Landroid/widget/ActivityChooserModel;Landroid/content/Intent;)Z
-Landroid/widget/ActivityChooserModel$PersistHistoryAsyncTask;
-Landroid/widget/ActivityChooserModel$PersistHistoryAsyncTask;-><init>()V
-Landroid/widget/ActivityChooserModel$PersistHistoryAsyncTask;->doInBackground([[Ljava/lang/Object;)Ljava/lang/Void;
-Landroid/widget/ActivityChooserModel;
 Landroid/widget/ActivityChooserModel;-><init>(Landroid/content/Context;Ljava/lang/String;)V
 Landroid/widget/ActivityChooserModel;->addHisoricalRecord(Landroid/widget/ActivityChooserModel$HistoricalRecord;)Z
 Landroid/widget/ActivityChooserModel;->ATTRIBUTE_ACTIVITY:Ljava/lang/String;
@@ -86318,8 +80566,6 @@
 Landroid/widget/ActivityChooserModel;->sRegistryLock:Ljava/lang/Object;
 Landroid/widget/ActivityChooserModel;->TAG_HISTORICAL_RECORD:Ljava/lang/String;
 Landroid/widget/ActivityChooserModel;->TAG_HISTORICAL_RECORDS:Ljava/lang/String;
-Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;
-Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;-><init>()V
 Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;->getActivityCount()I
 Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;->getDataModel()Landroid/widget/ActivityChooserModel;
 Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;->getDefaultActivity()Landroid/content/pm/ResolveInfo;
@@ -86340,11 +80586,8 @@
 Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;->setMaxActivityCount(I)V
 Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;->setShowDefaultActivity(ZZ)V
 Landroid/widget/ActivityChooserView$ActivityChooserViewAdapter;->setShowFooterView(Z)V
-Landroid/widget/ActivityChooserView$Callbacks;
-Landroid/widget/ActivityChooserView$Callbacks;-><init>()V
 Landroid/widget/ActivityChooserView$Callbacks;->notifyOnDismissListener()V
 Landroid/widget/ActivityChooserView$Callbacks;->startActivity(Landroid/content/Intent;Landroid/content/pm/ResolveInfo;)V
-Landroid/widget/ActivityChooserView;
 Landroid/widget/ActivityChooserView;-><init>(Landroid/content/Context;)V
 Landroid/widget/ActivityChooserView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/widget/ActivityChooserView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
@@ -86381,12 +80624,8 @@
 Landroid/widget/ActivityChooserView;->showPopup()Z
 Landroid/widget/ActivityChooserView;->showPopupUnchecked(I)V
 Landroid/widget/ActivityChooserView;->updateAppearance()V
-Landroid/widget/AdapterView$AdapterDataSetObserver;
-Landroid/widget/AdapterView$AdapterDataSetObserver;-><init>()V
 Landroid/widget/AdapterView$AdapterDataSetObserver;->clearSavedState()V
 Landroid/widget/AdapterView$AdapterDataSetObserver;->mInstanceState:Landroid/os/Parcelable;
-Landroid/widget/AdapterView$SelectionNotifier;
-Landroid/widget/AdapterView$SelectionNotifier;-><init>()V
 Landroid/widget/AdapterView;->checkFocus()V
 Landroid/widget/AdapterView;->checkSelectionChanged()V
 Landroid/widget/AdapterView;->dispatchOnItemSelected()V
@@ -86424,15 +80663,10 @@
 Landroid/widget/AdapterView;->SYNC_MAX_DURATION_MILLIS:I
 Landroid/widget/AdapterView;->SYNC_SELECTED_POSITION:I
 Landroid/widget/AdapterView;->updateEmptyStatus(Z)V
-Landroid/widget/AdapterViewAnimator$CheckForTap;
-Landroid/widget/AdapterViewAnimator$CheckForTap;-><init>()V
-Landroid/widget/AdapterViewAnimator$SavedState;
 Landroid/widget/AdapterViewAnimator$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/AdapterViewAnimator$SavedState;-><init>(Landroid/os/Parcelable;I)V
 Landroid/widget/AdapterViewAnimator$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/widget/AdapterViewAnimator$SavedState;->whichChild:I
-Landroid/widget/AdapterViewAnimator$ViewAndMetaData;
-Landroid/widget/AdapterViewAnimator$ViewAndMetaData;-><init>(Landroid/view/View;IIJ)V
 Landroid/widget/AdapterViewAnimator$ViewAndMetaData;->adapterPosition:I
 Landroid/widget/AdapterViewAnimator$ViewAndMetaData;->itemId:J
 Landroid/widget/AdapterViewAnimator$ViewAndMetaData;->relativeIndex:I
@@ -86517,28 +80751,23 @@
 Landroid/widget/AnalogClock;->mMinutes:F
 Landroid/widget/AnalogClock;->onTimeChanged()V
 Landroid/widget/AnalogClock;->updateContentDescription(Landroid/text/format/Time;)V
-Landroid/widget/AppSecurityPermissions$MyPermissionGroupInfo;
 Landroid/widget/AppSecurityPermissions$MyPermissionGroupInfo;-><init>(Landroid/content/pm/PermissionGroupInfo;)V
 Landroid/widget/AppSecurityPermissions$MyPermissionGroupInfo;-><init>(Landroid/content/pm/PermissionInfo;)V
 Landroid/widget/AppSecurityPermissions$MyPermissionGroupInfo;->loadGroupIcon(Landroid/content/Context;Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;
 Landroid/widget/AppSecurityPermissions$MyPermissionGroupInfo;->mAllPermissions:Ljava/util/ArrayList;
 Landroid/widget/AppSecurityPermissions$MyPermissionGroupInfo;->mLabel:Ljava/lang/CharSequence;
 Landroid/widget/AppSecurityPermissions$MyPermissionGroupInfo;->mNewPermissions:Ljava/util/ArrayList;
-Landroid/widget/AppSecurityPermissions$MyPermissionInfo;
 Landroid/widget/AppSecurityPermissions$MyPermissionInfo;-><init>(Landroid/content/pm/PermissionInfo;)V
 Landroid/widget/AppSecurityPermissions$MyPermissionInfo;->mExistingReqFlags:I
 Landroid/widget/AppSecurityPermissions$MyPermissionInfo;->mLabel:Ljava/lang/CharSequence;
 Landroid/widget/AppSecurityPermissions$MyPermissionInfo;->mNew:Z
 Landroid/widget/AppSecurityPermissions$MyPermissionInfo;->mNewReqFlags:I
-Landroid/widget/AppSecurityPermissions$PermissionGroupInfoComparator;
 Landroid/widget/AppSecurityPermissions$PermissionGroupInfoComparator;-><init>()V
 Landroid/widget/AppSecurityPermissions$PermissionGroupInfoComparator;->compare(Landroid/widget/AppSecurityPermissions$MyPermissionGroupInfo;Landroid/widget/AppSecurityPermissions$MyPermissionGroupInfo;)I
 Landroid/widget/AppSecurityPermissions$PermissionGroupInfoComparator;->sCollator:Ljava/text/Collator;
-Landroid/widget/AppSecurityPermissions$PermissionInfoComparator;
 Landroid/widget/AppSecurityPermissions$PermissionInfoComparator;-><init>()V
 Landroid/widget/AppSecurityPermissions$PermissionInfoComparator;->compare(Landroid/widget/AppSecurityPermissions$MyPermissionInfo;Landroid/widget/AppSecurityPermissions$MyPermissionInfo;)I
 Landroid/widget/AppSecurityPermissions$PermissionInfoComparator;->sCollator:Ljava/text/Collator;
-Landroid/widget/AppSecurityPermissions$PermissionItemView;
 Landroid/widget/AppSecurityPermissions$PermissionItemView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/widget/AppSecurityPermissions$PermissionItemView;->addRevokeUIIfNecessary(Landroid/app/AlertDialog$Builder;)V
 Landroid/widget/AppSecurityPermissions$PermissionItemView;->mDialog:Landroid/app/AlertDialog;
@@ -86547,7 +80776,6 @@
 Landroid/widget/AppSecurityPermissions$PermissionItemView;->mPerm:Landroid/widget/AppSecurityPermissions$MyPermissionInfo;
 Landroid/widget/AppSecurityPermissions$PermissionItemView;->mShowRevokeUI:Z
 Landroid/widget/AppSecurityPermissions$PermissionItemView;->setPermission(Landroid/widget/AppSecurityPermissions$MyPermissionGroupInfo;Landroid/widget/AppSecurityPermissions$MyPermissionInfo;ZLjava/lang/CharSequence;Ljava/lang/String;Z)V
-Landroid/widget/AppSecurityPermissions;
 Landroid/widget/AppSecurityPermissions;-><init>(Landroid/content/Context;)V
 Landroid/widget/AppSecurityPermissions;-><init>(Landroid/content/Context;Landroid/content/pm/PackageInfo;)V
 Landroid/widget/AppSecurityPermissions;->addPermToList(Ljava/util/List;Landroid/widget/AppSecurityPermissions$MyPermissionInfo;)V
@@ -86580,8 +80808,6 @@
 Landroid/widget/AppSecurityPermissions;->TAG:Ljava/lang/String;
 Landroid/widget/AppSecurityPermissions;->WHICH_ALL:I
 Landroid/widget/AppSecurityPermissions;->WHICH_NEW:I
-Landroid/widget/ArrayAdapter$ArrayFilter;
-Landroid/widget/ArrayAdapter$ArrayFilter;-><init>()V
 Landroid/widget/ArrayAdapter;-><init>(Landroid/content/Context;IILjava/util/List;Z)V
 Landroid/widget/ArrayAdapter;->createViewFromResource(Landroid/view/LayoutInflater;ILandroid/view/View;Landroid/view/ViewGroup;I)Landroid/view/View;
 Landroid/widget/ArrayAdapter;->mContext:Landroid/content/Context;
@@ -86593,15 +80819,8 @@
 Landroid/widget/ArrayAdapter;->mNotifyOnChange:Z
 Landroid/widget/ArrayAdapter;->mObjectsFromResources:Z
 Landroid/widget/ArrayAdapter;->mResource:I
-Landroid/widget/AutoCompleteTextView$DropDownItemClickListener;
-Landroid/widget/AutoCompleteTextView$DropDownItemClickListener;-><init>()V
 Landroid/widget/AutoCompleteTextView$DropDownItemClickListener;->onItemClick(Landroid/widget/AdapterView;Landroid/view/View;IJ)V
-Landroid/widget/AutoCompleteTextView$MyWatcher;
-Landroid/widget/AutoCompleteTextView$MyWatcher;-><init>()V
-Landroid/widget/AutoCompleteTextView$PassThroughClickListener;
-Landroid/widget/AutoCompleteTextView$PassThroughClickListener;-><init>()V
 Landroid/widget/AutoCompleteTextView$PassThroughClickListener;->mWrapped:Landroid/view/View$OnClickListener;
-Landroid/widget/AutoCompleteTextView$PopupDataSetObserver;
 Landroid/widget/AutoCompleteTextView$PopupDataSetObserver;-><init>(Landroid/widget/AutoCompleteTextView;)V
 Landroid/widget/AutoCompleteTextView$PopupDataSetObserver;->mViewReference:Ljava/lang/ref/WeakReference;
 Landroid/widget/AutoCompleteTextView$PopupDataSetObserver;->updateRunnable:Ljava/lang/Runnable;
@@ -86632,7 +80851,6 @@
 Landroid/widget/AutoCompleteTextView;->updateDropDownForFilter(I)V
 Landroid/widget/BaseAdapter;->mAutofillOptions:[Ljava/lang/CharSequence;
 Landroid/widget/BaseExpandableListAdapter;->mDataSetObservable:Landroid/database/DataSetObservable;
-Landroid/widget/CalendarView$AbstractCalendarViewDelegate;
 Landroid/widget/CalendarView$AbstractCalendarViewDelegate;-><init>(Landroid/widget/CalendarView;Landroid/content/Context;)V
 Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->DEFAULT_MAX_DATE:Ljava/lang/String;
 Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->DEFAULT_MIN_DATE:Ljava/lang/String;
@@ -86658,7 +80876,6 @@
 Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->setUnfocusedMonthDateColor(I)V
 Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->setWeekNumberColor(I)V
 Landroid/widget/CalendarView$AbstractCalendarViewDelegate;->setWeekSeparatorLineColor(I)V
-Landroid/widget/CalendarView$CalendarViewDelegate;
 Landroid/widget/CalendarView$CalendarViewDelegate;->getBoundsForDate(JLandroid/graphics/Rect;)Z
 Landroid/widget/CalendarView$CalendarViewDelegate;->getDate()J
 Landroid/widget/CalendarView$CalendarViewDelegate;->getDateTextAppearance()I
@@ -86698,7 +80915,6 @@
 Landroid/widget/CalendarView;->MODE_HOLO:I
 Landroid/widget/CalendarView;->MODE_MATERIAL:I
 Landroid/widget/CalendarView;->parseDate(Ljava/lang/String;Landroid/icu/util/Calendar;)Z
-Landroid/widget/CheckedTextView$SavedState;
 Landroid/widget/CheckedTextView$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/CheckedTextView$SavedState;-><init>(Landroid/os/Parcelable;)V
 Landroid/widget/CheckedTextView$SavedState;->checked:Z
@@ -86746,7 +80962,6 @@
 Landroid/widget/Chronometer;->TAG:Ljava/lang/String;
 Landroid/widget/Chronometer;->updateRunning()V
 Landroid/widget/Chronometer;->updateText(J)V
-Landroid/widget/CompoundButton$SavedState;
 Landroid/widget/CompoundButton$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/CompoundButton$SavedState;-><init>(Landroid/os/Parcelable;)V
 Landroid/widget/CompoundButton$SavedState;->checked:Z
@@ -86767,29 +80982,17 @@
 Landroid/widget/CompoundButton;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
 Landroid/widget/CompoundButton;->onResolveDrawables(I)V
 Landroid/widget/CompoundButton;->setOnCheckedChangeWidgetListener(Landroid/widget/CompoundButton$OnCheckedChangeListener;)V
-Landroid/widget/CursorAdapter$ChangeObserver;
-Landroid/widget/CursorAdapter$ChangeObserver;-><init>()V
-Landroid/widget/CursorAdapter$MyDataSetObserver;
-Landroid/widget/CursorAdapter$MyDataSetObserver;-><init>()V
 Landroid/widget/CursorAdapter;->init(Landroid/content/Context;Landroid/database/Cursor;I)V
 Landroid/widget/CursorAdapter;->mAutoRequery:Z
 Landroid/widget/CursorAdapter;->mCursorFilter:Landroid/widget/CursorFilter;
 Landroid/widget/CursorAdapter;->mDropDownContext:Landroid/content/Context;
 Landroid/widget/CursorAdapter;->mFilterQueryProvider:Landroid/widget/FilterQueryProvider;
-Landroid/widget/CursorFilter$CursorFilterClient;
 Landroid/widget/CursorFilter$CursorFilterClient;->changeCursor(Landroid/database/Cursor;)V
 Landroid/widget/CursorFilter$CursorFilterClient;->convertToString(Landroid/database/Cursor;)Ljava/lang/CharSequence;
 Landroid/widget/CursorFilter$CursorFilterClient;->getCursor()Landroid/database/Cursor;
 Landroid/widget/CursorFilter$CursorFilterClient;->runQueryOnBackgroundThread(Ljava/lang/CharSequence;)Landroid/database/Cursor;
-Landroid/widget/CursorFilter;
 Landroid/widget/CursorFilter;-><init>(Landroid/widget/CursorFilter$CursorFilterClient;)V
 Landroid/widget/CursorFilter;->mClient:Landroid/widget/CursorFilter$CursorFilterClient;
-Landroid/widget/CursorTreeAdapter$MyCursorHelper$MyContentObserver;
-Landroid/widget/CursorTreeAdapter$MyCursorHelper$MyContentObserver;-><init>()V
-Landroid/widget/CursorTreeAdapter$MyCursorHelper$MyDataSetObserver;
-Landroid/widget/CursorTreeAdapter$MyCursorHelper$MyDataSetObserver;-><init>()V
-Landroid/widget/CursorTreeAdapter$MyCursorHelper;
-Landroid/widget/CursorTreeAdapter$MyCursorHelper;-><init>(Landroid/database/Cursor;)V
 Landroid/widget/CursorTreeAdapter$MyCursorHelper;->changeCursor(Landroid/database/Cursor;Z)V
 Landroid/widget/CursorTreeAdapter$MyCursorHelper;->deactivate()V
 Landroid/widget/CursorTreeAdapter$MyCursorHelper;->getCount()I
@@ -86813,7 +81016,6 @@
 Landroid/widget/CursorTreeAdapter;->mGroupCursorHelper:Landroid/widget/CursorTreeAdapter$MyCursorHelper;
 Landroid/widget/CursorTreeAdapter;->mHandler:Landroid/os/Handler;
 Landroid/widget/CursorTreeAdapter;->releaseCursorHelpers()V
-Landroid/widget/DatePicker$AbstractDatePickerDelegate$SavedState;
 Landroid/widget/DatePicker$AbstractDatePickerDelegate$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/DatePicker$AbstractDatePickerDelegate$SavedState;-><init>(Landroid/os/Parcelable;IIIJJ)V
 Landroid/widget/DatePicker$AbstractDatePickerDelegate$SavedState;-><init>(Landroid/os/Parcelable;IIIJJIII)V
@@ -86834,7 +81036,6 @@
 Landroid/widget/DatePicker$AbstractDatePickerDelegate$SavedState;->mSelectedDay:I
 Landroid/widget/DatePicker$AbstractDatePickerDelegate$SavedState;->mSelectedMonth:I
 Landroid/widget/DatePicker$AbstractDatePickerDelegate$SavedState;->mSelectedYear:I
-Landroid/widget/DatePicker$AbstractDatePickerDelegate;
 Landroid/widget/DatePicker$AbstractDatePickerDelegate;-><init>(Landroid/widget/DatePicker;Landroid/content/Context;)V
 Landroid/widget/DatePicker$AbstractDatePickerDelegate;->autofill(Landroid/view/autofill/AutofillValue;)V
 Landroid/widget/DatePicker$AbstractDatePickerDelegate;->getAutofillValue()Landroid/view/autofill/AutofillValue;
@@ -86855,7 +81056,6 @@
 Landroid/widget/DatePicker$AbstractDatePickerDelegate;->setCurrentLocale(Ljava/util/Locale;)V
 Landroid/widget/DatePicker$AbstractDatePickerDelegate;->setOnDateChangedListener(Landroid/widget/DatePicker$OnDateChangedListener;)V
 Landroid/widget/DatePicker$AbstractDatePickerDelegate;->setValidationCallback(Landroid/widget/DatePicker$ValidationCallback;)V
-Landroid/widget/DatePicker$DatePickerDelegate;
 Landroid/widget/DatePicker$DatePickerDelegate;->autofill(Landroid/view/autofill/AutofillValue;)V
 Landroid/widget/DatePicker$DatePickerDelegate;->dispatchPopulateAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)Z
 Landroid/widget/DatePicker$DatePickerDelegate;->getAutofillValue()Landroid/view/autofill/AutofillValue;
@@ -86884,8 +81084,6 @@
 Landroid/widget/DatePicker$DatePickerDelegate;->setSpinnersShown(Z)V
 Landroid/widget/DatePicker$DatePickerDelegate;->setValidationCallback(Landroid/widget/DatePicker$ValidationCallback;)V
 Landroid/widget/DatePicker$DatePickerDelegate;->updateDate(III)V
-Landroid/widget/DatePicker$DatePickerMode;
-Landroid/widget/DatePicker$ValidationCallback;
 Landroid/widget/DatePicker$ValidationCallback;->onValidationChanged(Z)V
 Landroid/widget/DatePicker;->createCalendarUIDelegate(Landroid/content/Context;Landroid/util/AttributeSet;II)Landroid/widget/DatePicker$DatePickerDelegate;
 Landroid/widget/DatePicker;->createSpinnerUIDelegate(Landroid/content/Context;Landroid/util/AttributeSet;II)Landroid/widget/DatePicker$DatePickerDelegate;
@@ -86893,7 +81091,6 @@
 Landroid/widget/DatePicker;->LOG_TAG:Ljava/lang/String;
 Landroid/widget/DatePicker;->mMode:I
 Landroid/widget/DatePicker;->onPopulateAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
-Landroid/widget/DateTimeView$ReceiverInfo;
 Landroid/widget/DateTimeView$ReceiverInfo;-><init>()V
 Landroid/widget/DateTimeView$ReceiverInfo;->addView(Landroid/widget/DateTimeView;)V
 Landroid/widget/DateTimeView$ReceiverInfo;->getApplicationContextIfAvailable(Landroid/content/Context;)Landroid/content/Context;
@@ -86907,7 +81104,6 @@
 Landroid/widget/DateTimeView$ReceiverInfo;->setHandler(Landroid/os/Handler;)V
 Landroid/widget/DateTimeView$ReceiverInfo;->unregister(Landroid/content/Context;)V
 Landroid/widget/DateTimeView$ReceiverInfo;->updateAll()V
-Landroid/widget/DateTimeView;
 Landroid/widget/DateTimeView;-><init>(Landroid/content/Context;)V
 Landroid/widget/DateTimeView;->clearFormatAndUpdate()V
 Landroid/widget/DateTimeView;->computeNextMidnight(Ljava/util/TimeZone;)J
@@ -86939,8 +81135,6 @@
 Landroid/widget/DialerFilter;->mMode:I
 Landroid/widget/DialerFilter;->mPrimary:Landroid/widget/EditText;
 Landroid/widget/DialerFilter;->swapPrimaryAndHint(Z)V
-Landroid/widget/DigitalClock$FormatChangeObserver;
-Landroid/widget/DigitalClock$FormatChangeObserver;-><init>()V
 Landroid/widget/DigitalClock;->initClock()V
 Landroid/widget/DigitalClock;->mCalendar:Ljava/util/Calendar;
 Landroid/widget/DigitalClock;->mFormat:Ljava/lang/String;
@@ -86949,11 +81143,8 @@
 Landroid/widget/DigitalClock;->mTicker:Ljava/lang/Runnable;
 Landroid/widget/DigitalClock;->mTickerStopped:Z
 Landroid/widget/DigitalClock;->setFormat()V
-Landroid/widget/DropDownListView$ResolveHoverRunnable;
-Landroid/widget/DropDownListView$ResolveHoverRunnable;-><init>()V
 Landroid/widget/DropDownListView$ResolveHoverRunnable;->cancel()V
 Landroid/widget/DropDownListView$ResolveHoverRunnable;->post()V
-Landroid/widget/DropDownListView;
 Landroid/widget/DropDownListView;-><init>(Landroid/content/Context;Z)V
 Landroid/widget/DropDownListView;-><init>(Landroid/content/Context;ZI)V
 Landroid/widget/DropDownListView;->clearPressedItem()V
@@ -87006,13 +81197,9 @@
 Landroid/widget/EdgeEffect;->TAG:Ljava/lang/String;
 Landroid/widget/EdgeEffect;->update()V
 Landroid/widget/EdgeEffect;->VELOCITY_GLOW_FACTOR:I
-Landroid/widget/Editor$Blink;
-Landroid/widget/Editor$Blink;-><init>()V
 Landroid/widget/Editor$Blink;->cancel()V
 Landroid/widget/Editor$Blink;->mCancelled:Z
 Landroid/widget/Editor$Blink;->uncancel()V
-Landroid/widget/Editor$CorrectionHighlighter;
-Landroid/widget/Editor$CorrectionHighlighter;-><init>()V
 Landroid/widget/Editor$CorrectionHighlighter;->draw(Landroid/graphics/Canvas;I)V
 Landroid/widget/Editor$CorrectionHighlighter;->FADE_OUT_DURATION:I
 Landroid/widget/Editor$CorrectionHighlighter;->highlight(Landroid/view/inputmethod/CorrectionInfo;)V
@@ -87026,27 +81213,20 @@
 Landroid/widget/Editor$CorrectionHighlighter;->stopAnimation()V
 Landroid/widget/Editor$CorrectionHighlighter;->updatePaint()Z
 Landroid/widget/Editor$CorrectionHighlighter;->updatePath()Z
-Landroid/widget/Editor$CursorAnchorInfoNotifier;
-Landroid/widget/Editor$CursorAnchorInfoNotifier;-><init>()V
 Landroid/widget/Editor$CursorAnchorInfoNotifier;->mSelectionInfoBuilder:Landroid/view/inputmethod/CursorAnchorInfo$Builder;
 Landroid/widget/Editor$CursorAnchorInfoNotifier;->mTmpIntOffset:[I
 Landroid/widget/Editor$CursorAnchorInfoNotifier;->mViewToScreenMatrix:Landroid/graphics/Matrix;
 Landroid/widget/Editor$CursorAnchorInfoNotifier;->updatePosition(IIZZ)V
-Landroid/widget/Editor$CursorController;
 Landroid/widget/Editor$CursorController;->hide()V
 Landroid/widget/Editor$CursorController;->isActive()Z
 Landroid/widget/Editor$CursorController;->isCursorBeingModified()Z
 Landroid/widget/Editor$CursorController;->onDetached()V
 Landroid/widget/Editor$CursorController;->show()V
-Landroid/widget/Editor$DragLocalState;
 Landroid/widget/Editor$DragLocalState;-><init>(Landroid/widget/TextView;II)V
 Landroid/widget/Editor$DragLocalState;->end:I
 Landroid/widget/Editor$DragLocalState;->sourceTextView:Landroid/widget/TextView;
 Landroid/widget/Editor$DragLocalState;->start:I
-Landroid/widget/Editor$EasyEditDeleteListener;
 Landroid/widget/Editor$EasyEditDeleteListener;->onDeleteClick(Landroid/text/style/EasyEditSpan;)V
-Landroid/widget/Editor$EasyEditPopupWindow;
-Landroid/widget/Editor$EasyEditPopupWindow;-><init>()V
 Landroid/widget/Editor$EasyEditPopupWindow;->clipVertically(I)I
 Landroid/widget/Editor$EasyEditPopupWindow;->createPopupWindow()V
 Landroid/widget/Editor$EasyEditPopupWindow;->getTextOffset()I
@@ -87059,7 +81239,6 @@
 Landroid/widget/Editor$EasyEditPopupWindow;->POPUP_TEXT_LAYOUT:I
 Landroid/widget/Editor$EasyEditPopupWindow;->setEasyEditSpan(Landroid/text/style/EasyEditSpan;)V
 Landroid/widget/Editor$EasyEditPopupWindow;->setOnDeleteListener(Landroid/widget/Editor$EasyEditDeleteListener;)V
-Landroid/widget/Editor$EditOperation;
 Landroid/widget/Editor$EditOperation;-><init>(Landroid/os/Parcel;Ljava/lang/ClassLoader;)V
 Landroid/widget/Editor$EditOperation;-><init>(Landroid/widget/Editor;Ljava/lang/String;ILjava/lang/String;Z)V
 Landroid/widget/Editor$EditOperation;->commit()V
@@ -87086,7 +81265,6 @@
 Landroid/widget/Editor$EditOperation;->TYPE_INSERT:I
 Landroid/widget/Editor$EditOperation;->TYPE_REPLACE:I
 Landroid/widget/Editor$EditOperation;->undo()V
-Landroid/widget/Editor$ErrorPopup;
 Landroid/widget/Editor$ErrorPopup;-><init>(Landroid/widget/TextView;II)V
 Landroid/widget/Editor$ErrorPopup;->fixDirection(Z)V
 Landroid/widget/Editor$ErrorPopup;->getResourceId(II)I
@@ -87094,9 +81272,6 @@
 Landroid/widget/Editor$ErrorPopup;->mPopupInlineErrorAboveBackgroundId:I
 Landroid/widget/Editor$ErrorPopup;->mPopupInlineErrorBackgroundId:I
 Landroid/widget/Editor$ErrorPopup;->mView:Landroid/widget/TextView;
-Landroid/widget/Editor$HandleType;
-Landroid/widget/Editor$HandleView;
-Landroid/widget/Editor$HandleView;-><init>(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;I)V
 Landroid/widget/Editor$HandleView;->addPositionToTouchUpFilter(I)V
 Landroid/widget/Editor$HandleView;->dismiss()V
 Landroid/widget/Editor$HandleView;->dismissMagnifier()V
@@ -87164,7 +81339,6 @@
 Landroid/widget/Editor$HandleView;->updatePosition(FFZ)V
 Landroid/widget/Editor$HandleView;->updatePosition(IIZZ)V
 Landroid/widget/Editor$HandleView;->updateSelection(I)V
-Landroid/widget/Editor$InputContentType;
 Landroid/widget/Editor$InputContentType;-><init>()V
 Landroid/widget/Editor$InputContentType;->enterDown:Z
 Landroid/widget/Editor$InputContentType;->extras:Landroid/os/Bundle;
@@ -87173,7 +81347,6 @@
 Landroid/widget/Editor$InputContentType;->imeHintLocales:Landroid/os/LocaleList;
 Landroid/widget/Editor$InputContentType;->imeOptions:I
 Landroid/widget/Editor$InputContentType;->onEditorActionListener:Landroid/widget/TextView$OnEditorActionListener;
-Landroid/widget/Editor$InputMethodState;
 Landroid/widget/Editor$InputMethodState;-><init>()V
 Landroid/widget/Editor$InputMethodState;->mBatchEditNesting:I
 Landroid/widget/Editor$InputMethodState;->mChangedDelta:I
@@ -87184,8 +81357,6 @@
 Landroid/widget/Editor$InputMethodState;->mExtractedText:Landroid/view/inputmethod/ExtractedText;
 Landroid/widget/Editor$InputMethodState;->mExtractedTextRequest:Landroid/view/inputmethod/ExtractedTextRequest;
 Landroid/widget/Editor$InputMethodState;->mSelectionModeChanged:Z
-Landroid/widget/Editor$InsertionHandleView;
-Landroid/widget/Editor$InsertionHandleView;-><init>(Landroid/graphics/drawable/Drawable;)V
 Landroid/widget/Editor$InsertionHandleView;->DELAY_BEFORE_HANDLE_FADES_OUT:I
 Landroid/widget/Editor$InsertionHandleView;->getCurrentCursorOffset()I
 Landroid/widget/Editor$InsertionHandleView;->getCursorHorizontalPosition(Landroid/text/Layout;I)I
@@ -87204,8 +81375,6 @@
 Landroid/widget/Editor$InsertionHandleView;->show()V
 Landroid/widget/Editor$InsertionHandleView;->updatePosition(FFZ)V
 Landroid/widget/Editor$InsertionHandleView;->updateSelection(I)V
-Landroid/widget/Editor$InsertionPointCursorController;
-Landroid/widget/Editor$InsertionPointCursorController;-><init>()V
 Landroid/widget/Editor$InsertionPointCursorController;->getHandle()Landroid/widget/Editor$InsertionHandleView;
 Landroid/widget/Editor$InsertionPointCursorController;->hide()V
 Landroid/widget/Editor$InsertionPointCursorController;->invalidateHandle()V
@@ -87214,11 +81383,9 @@
 Landroid/widget/Editor$InsertionPointCursorController;->mHandle:Landroid/widget/Editor$InsertionHandleView;
 Landroid/widget/Editor$InsertionPointCursorController;->onDetached()V
 Landroid/widget/Editor$InsertionPointCursorController;->show()V
-Landroid/widget/Editor$MagnifierHandleTrigger;
 Landroid/widget/Editor$MagnifierHandleTrigger;->INSERTION:I
 Landroid/widget/Editor$MagnifierHandleTrigger;->SELECTION_END:I
 Landroid/widget/Editor$MagnifierHandleTrigger;->SELECTION_START:I
-Landroid/widget/Editor$MagnifierMotionAnimator;
 Landroid/widget/Editor$MagnifierMotionAnimator;-><init>(Landroid/widget/Magnifier;)V
 Landroid/widget/Editor$MagnifierMotionAnimator;->dismiss()V
 Landroid/widget/Editor$MagnifierMotionAnimator;->DURATION:J
@@ -87233,8 +81400,6 @@
 Landroid/widget/Editor$MagnifierMotionAnimator;->mMagnifierIsShowing:Z
 Landroid/widget/Editor$MagnifierMotionAnimator;->show(FF)V
 Landroid/widget/Editor$MagnifierMotionAnimator;->update()V
-Landroid/widget/Editor$PinnedPopupWindow;
-Landroid/widget/Editor$PinnedPopupWindow;-><init>()V
 Landroid/widget/Editor$PinnedPopupWindow;->clipVertically(I)I
 Landroid/widget/Editor$PinnedPopupWindow;->computeLocalPosition()V
 Landroid/widget/Editor$PinnedPopupWindow;->createPopupWindow()V
@@ -87254,8 +81419,6 @@
 Landroid/widget/Editor$PinnedPopupWindow;->show()V
 Landroid/widget/Editor$PinnedPopupWindow;->updatePosition(II)V
 Landroid/widget/Editor$PinnedPopupWindow;->updatePosition(IIZZ)V
-Landroid/widget/Editor$PositionListener;
-Landroid/widget/Editor$PositionListener;-><init>()V
 Landroid/widget/Editor$PositionListener;->addSubscriber(Landroid/widget/Editor$TextViewPositionListener;Z)V
 Landroid/widget/Editor$PositionListener;->getPositionX()I
 Landroid/widget/Editor$PositionListener;->getPositionXOnScreen()I
@@ -87275,7 +81438,6 @@
 Landroid/widget/Editor$PositionListener;->onScrollChanged()V
 Landroid/widget/Editor$PositionListener;->removeSubscriber(Landroid/widget/Editor$TextViewPositionListener;)V
 Landroid/widget/Editor$PositionListener;->updatePosition()V
-Landroid/widget/Editor$ProcessTextIntentActionsHandler;
 Landroid/widget/Editor$ProcessTextIntentActionsHandler;-><init>(Landroid/widget/Editor;)V
 Landroid/widget/Editor$ProcessTextIntentActionsHandler;->createProcessTextIntent()Landroid/content/Intent;
 Landroid/widget/Editor$ProcessTextIntentActionsHandler;->createProcessTextIntentForResolveInfo(Landroid/content/pm/ResolveInfo;)Landroid/content/Intent;
@@ -87296,8 +81458,6 @@
 Landroid/widget/Editor$ProcessTextIntentActionsHandler;->onInitializeMenu(Landroid/view/Menu;)V
 Landroid/widget/Editor$ProcessTextIntentActionsHandler;->performAccessibilityAction(I)Z
 Landroid/widget/Editor$ProcessTextIntentActionsHandler;->performMenuItemAction(Landroid/view/MenuItem;)Z
-Landroid/widget/Editor$SelectionHandleView;
-Landroid/widget/Editor$SelectionHandleView;-><init>(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;II)V
 Landroid/widget/Editor$SelectionHandleView;->getCurrentCursorOffset()I
 Landroid/widget/Editor$SelectionHandleView;->getHorizontal(Landroid/text/Layout;I)F
 Landroid/widget/Editor$SelectionHandleView;->getHorizontal(Landroid/text/Layout;IZ)F
@@ -87319,8 +81479,6 @@
 Landroid/widget/Editor$SelectionHandleView;->positionNearEdgeOfScrollingView(FZ)Z
 Landroid/widget/Editor$SelectionHandleView;->updatePosition(FFZ)V
 Landroid/widget/Editor$SelectionHandleView;->updateSelection(I)V
-Landroid/widget/Editor$SelectionModifierCursorController;
-Landroid/widget/Editor$SelectionModifierCursorController;-><init>()V
 Landroid/widget/Editor$SelectionModifierCursorController;->DRAG_ACCELERATOR_MODE_CHARACTER:I
 Landroid/widget/Editor$SelectionModifierCursorController;->DRAG_ACCELERATOR_MODE_INACTIVE:I
 Landroid/widget/Editor$SelectionModifierCursorController;->DRAG_ACCELERATOR_MODE_PARAGRAPH:I
@@ -87360,24 +81518,17 @@
 Landroid/widget/Editor$SelectionModifierCursorController;->updateSelection(Landroid/view/MotionEvent;)V
 Landroid/widget/Editor$SelectionModifierCursorController;->updateSelectionInternal(IIZ)V
 Landroid/widget/Editor$SelectionModifierCursorController;->updateWordBasedSelection(Landroid/view/MotionEvent;)V
-Landroid/widget/Editor$SpanController;
-Landroid/widget/Editor$SpanController;-><init>()V
 Landroid/widget/Editor$SpanController;->DISPLAY_TIMEOUT_MS:I
 Landroid/widget/Editor$SpanController;->hide()V
 Landroid/widget/Editor$SpanController;->isNonIntermediateSelectionSpan(Landroid/text/Spannable;Ljava/lang/Object;)Z
 Landroid/widget/Editor$SpanController;->mHidePopup:Ljava/lang/Runnable;
 Landroid/widget/Editor$SpanController;->mPopupWindow:Landroid/widget/Editor$EasyEditPopupWindow;
 Landroid/widget/Editor$SpanController;->sendEasySpanNotification(ILandroid/text/style/EasyEditSpan;)V
-Landroid/widget/Editor$SuggestionHelper$SuggestionSpanComparator;
-Landroid/widget/Editor$SuggestionHelper$SuggestionSpanComparator;-><init>()V
 Landroid/widget/Editor$SuggestionHelper$SuggestionSpanComparator;->compare(Landroid/text/style/SuggestionSpan;Landroid/text/style/SuggestionSpan;)I
-Landroid/widget/Editor$SuggestionHelper;
-Landroid/widget/Editor$SuggestionHelper;-><init>()V
 Landroid/widget/Editor$SuggestionHelper;->getSortedSuggestionSpans()[Landroid/text/style/SuggestionSpan;
 Landroid/widget/Editor$SuggestionHelper;->getSuggestionInfo([Landroid/widget/Editor$SuggestionInfo;Landroid/widget/Editor$SuggestionSpanInfo;)I
 Landroid/widget/Editor$SuggestionHelper;->mSpansLengths:Ljava/util/HashMap;
 Landroid/widget/Editor$SuggestionHelper;->mSuggestionSpanComparator:Ljava/util/Comparator;
-Landroid/widget/Editor$SuggestionInfo;
 Landroid/widget/Editor$SuggestionInfo;-><init>()V
 Landroid/widget/Editor$SuggestionInfo;->clear()V
 Landroid/widget/Editor$SuggestionInfo;->mSuggestionEnd:I
@@ -87386,19 +81537,12 @@
 Landroid/widget/Editor$SuggestionInfo;->mSuggestionStart:I
 Landroid/widget/Editor$SuggestionInfo;->mText:Landroid/text/SpannableStringBuilder;
 Landroid/widget/Editor$SuggestionInfo;->setSpanInfo(Landroid/text/style/SuggestionSpan;II)V
-Landroid/widget/Editor$SuggestionSpanInfo;
 Landroid/widget/Editor$SuggestionSpanInfo;-><init>()V
 Landroid/widget/Editor$SuggestionSpanInfo;->clear()V
 Landroid/widget/Editor$SuggestionSpanInfo;->mSpanEnd:I
 Landroid/widget/Editor$SuggestionSpanInfo;->mSpanStart:I
 Landroid/widget/Editor$SuggestionSpanInfo;->mSuggestionSpan:Landroid/text/style/SuggestionSpan;
-Landroid/widget/Editor$SuggestionsPopupWindow$CustomPopupWindow;
-Landroid/widget/Editor$SuggestionsPopupWindow$CustomPopupWindow;-><init>()V
-Landroid/widget/Editor$SuggestionsPopupWindow$SuggestionAdapter;
-Landroid/widget/Editor$SuggestionsPopupWindow$SuggestionAdapter;-><init>()V
 Landroid/widget/Editor$SuggestionsPopupWindow$SuggestionAdapter;->mInflater:Landroid/view/LayoutInflater;
-Landroid/widget/Editor$SuggestionsPopupWindow;
-Landroid/widget/Editor$SuggestionsPopupWindow;-><init>()V
 Landroid/widget/Editor$SuggestionsPopupWindow;->applyDefaultTheme(Landroid/content/Context;)Landroid/content/Context;
 Landroid/widget/Editor$SuggestionsPopupWindow;->clipVertically(I)I
 Landroid/widget/Editor$SuggestionsPopupWindow;->createPopupWindow()V
@@ -87431,12 +81575,9 @@
 Landroid/widget/Editor$SuggestionsPopupWindow;->updateSuggestions()Z
 Landroid/widget/Editor$SuggestionsPopupWindow;->USER_DICTIONARY_EXTRA_LOCALE:Ljava/lang/String;
 Landroid/widget/Editor$SuggestionsPopupWindow;->USER_DICTIONARY_EXTRA_WORD:Ljava/lang/String;
-Landroid/widget/Editor$TextActionMode;
 Landroid/widget/Editor$TextActionMode;->INSERTION:I
 Landroid/widget/Editor$TextActionMode;->SELECTION:I
 Landroid/widget/Editor$TextActionMode;->TEXT_LINK:I
-Landroid/widget/Editor$TextActionModeCallback;
-Landroid/widget/Editor$TextActionModeCallback;-><init>(I)V
 Landroid/widget/Editor$TextActionModeCallback;->addAssistMenuItem(Landroid/view/Menu;Landroid/app/RemoteAction;III)Landroid/view/MenuItem;
 Landroid/widget/Editor$TextActionModeCallback;->clearAssistMenuItems(Landroid/view/Menu;)V
 Landroid/widget/Editor$TextActionModeCallback;->createAssistMenuItemPendingIntentRequestCode()I
@@ -87453,16 +81594,12 @@
 Landroid/widget/Editor$TextActionModeCallback;->updateAssistMenuItems(Landroid/view/Menu;)V
 Landroid/widget/Editor$TextActionModeCallback;->updateReplaceItem(Landroid/view/Menu;)V
 Landroid/widget/Editor$TextActionModeCallback;->updateSelectAllItem(Landroid/view/Menu;)V
-Landroid/widget/Editor$TextRenderNode;
 Landroid/widget/Editor$TextRenderNode;-><init>(Ljava/lang/String;)V
 Landroid/widget/Editor$TextRenderNode;->isDirty:Z
 Landroid/widget/Editor$TextRenderNode;->needsRecord()Z
 Landroid/widget/Editor$TextRenderNode;->needsToBeShifted:Z
 Landroid/widget/Editor$TextRenderNode;->renderNode:Landroid/view/RenderNode;
-Landroid/widget/Editor$TextViewPositionListener;
 Landroid/widget/Editor$TextViewPositionListener;->updatePosition(IIZZ)V
-Landroid/widget/Editor$UndoInputFilter$MergeMode;
-Landroid/widget/Editor$UndoInputFilter;
 Landroid/widget/Editor$UndoInputFilter;-><init>(Landroid/widget/Editor;)V
 Landroid/widget/Editor$UndoInputFilter;->beginBatchEdit()V
 Landroid/widget/Editor$UndoInputFilter;->canUndoEdit(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Z
@@ -87483,7 +81620,6 @@
 Landroid/widget/Editor$UndoInputFilter;->recordEdit(Landroid/widget/Editor$EditOperation;I)V
 Landroid/widget/Editor$UndoInputFilter;->restoreInstanceState(Landroid/os/Parcel;)V
 Landroid/widget/Editor$UndoInputFilter;->saveInstanceState(Landroid/os/Parcel;)V
-Landroid/widget/Editor;
 Landroid/widget/Editor;-><init>(Landroid/widget/TextView;)V
 Landroid/widget/Editor;->addSpanWatchers(Landroid/text/Spannable;)V
 Landroid/widget/Editor;->adjustInputType(ZZZZ)V
@@ -87706,7 +81842,6 @@
 Landroid/widget/Editor;->updateTapState(Landroid/view/MotionEvent;)V
 Landroid/widget/EditText;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
 Landroid/widget/EditText;->supportsAutoSizeText()Z
-Landroid/widget/ExpandableListConnector$GroupMetadata;
 Landroid/widget/ExpandableListConnector$GroupMetadata;-><init>()V
 Landroid/widget/ExpandableListConnector$GroupMetadata;->compareTo(Landroid/widget/ExpandableListConnector$GroupMetadata;)I
 Landroid/widget/ExpandableListConnector$GroupMetadata;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -87716,9 +81851,6 @@
 Landroid/widget/ExpandableListConnector$GroupMetadata;->lastChildFlPos:I
 Landroid/widget/ExpandableListConnector$GroupMetadata;->obtain(IIIJ)Landroid/widget/ExpandableListConnector$GroupMetadata;
 Landroid/widget/ExpandableListConnector$GroupMetadata;->REFRESH:I
-Landroid/widget/ExpandableListConnector$MyDataSetObserver;
-Landroid/widget/ExpandableListConnector$MyDataSetObserver;-><init>()V
-Landroid/widget/ExpandableListConnector$PositionMetadata;
 Landroid/widget/ExpandableListConnector$PositionMetadata;-><init>()V
 Landroid/widget/ExpandableListConnector$PositionMetadata;->getRecycledOrCreate()Landroid/widget/ExpandableListConnector$PositionMetadata;
 Landroid/widget/ExpandableListConnector$PositionMetadata;->groupInsertIndex:I
@@ -87730,7 +81862,6 @@
 Landroid/widget/ExpandableListConnector$PositionMetadata;->recycle()V
 Landroid/widget/ExpandableListConnector$PositionMetadata;->resetState()V
 Landroid/widget/ExpandableListConnector$PositionMetadata;->sPool:Ljava/util/ArrayList;
-Landroid/widget/ExpandableListConnector;
 Landroid/widget/ExpandableListConnector;-><init>(Landroid/widget/ExpandableListAdapter;)V
 Landroid/widget/ExpandableListConnector;->collapseGroup(I)Z
 Landroid/widget/ExpandableListConnector;->collapseGroup(Landroid/widget/ExpandableListConnector$PositionMetadata;)Z
@@ -87751,7 +81882,6 @@
 Landroid/widget/ExpandableListConnector;->setExpandableListAdapter(Landroid/widget/ExpandableListAdapter;)V
 Landroid/widget/ExpandableListConnector;->setExpandedGroupMetadataList(Ljava/util/ArrayList;)V
 Landroid/widget/ExpandableListConnector;->setMaxExpGroupCount(I)V
-Landroid/widget/ExpandableListPosition;
 Landroid/widget/ExpandableListPosition;-><init>()V
 Landroid/widget/ExpandableListPosition;->CHILD:I
 Landroid/widget/ExpandableListPosition;->childPos:I
@@ -87769,7 +81899,6 @@
 Landroid/widget/ExpandableListPosition;->resetState()V
 Landroid/widget/ExpandableListPosition;->sPool:Ljava/util/ArrayList;
 Landroid/widget/ExpandableListPosition;->type:I
-Landroid/widget/ExpandableListView$SavedState;
 Landroid/widget/ExpandableListView$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/ExpandableListView$SavedState;-><init>(Landroid/os/Parcelable;Ljava/util/ArrayList;)V
 Landroid/widget/ExpandableListView$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -87808,7 +81937,6 @@
 Landroid/widget/ExpandableListView;->PACKED_POSITION_SHIFT_TYPE:J
 Landroid/widget/ExpandableListView;->resolveChildIndicator()V
 Landroid/widget/ExpandableListView;->resolveIndicator()V
-Landroid/widget/FastScroller;
 Landroid/widget/FastScroller;->animateAlpha(Landroid/view/View;F)Landroid/animation/Animator;
 Landroid/widget/FastScroller;->animateBounds(Landroid/view/View;Landroid/graphics/Rect;)Landroid/animation/Animator;
 Landroid/widget/FastScroller;->animateScaleX(Landroid/view/View;F)Landroid/animation/Animator;
@@ -87827,7 +81955,6 @@
 Landroid/widget/FastScroller;->getPosFromMotionEvent(F)F
 Landroid/widget/FastScroller;->getSectionsFromIndexer()V
 Landroid/widget/FastScroller;->getWidth()I
-Landroid/widget/FastScroller;->groupAnimatorOfFloat(Landroid/util/Property;F[[Landroid/view/View;)Landroid/animation/Animator;
 Landroid/widget/FastScroller;->isAlwaysShowEnabled()Z
 Landroid/widget/FastScroller;->isEnabled()Z
 Landroid/widget/FastScroller;->isPointInside(FF)Z
@@ -87925,17 +82052,11 @@
 Landroid/widget/FastScroller;->updateLayout()V
 Landroid/widget/FastScroller;->updateLongList(II)V
 Landroid/widget/FastScroller;->updateOffsetAndRange()V
-Landroid/widget/Filter$Delayer;
 Landroid/widget/Filter$Delayer;->getPostingDelay(Ljava/lang/CharSequence;)J
-Landroid/widget/Filter$RequestArguments;
 Landroid/widget/Filter$RequestArguments;-><init>()V
 Landroid/widget/Filter$RequestArguments;->constraint:Ljava/lang/CharSequence;
 Landroid/widget/Filter$RequestArguments;->listener:Landroid/widget/Filter$FilterListener;
 Landroid/widget/Filter$RequestArguments;->results:Landroid/widget/Filter$FilterResults;
-Landroid/widget/Filter$RequestHandler;
-Landroid/widget/Filter$RequestHandler;-><init>(Landroid/os/Looper;)V
-Landroid/widget/Filter$ResultsHandler;
-Landroid/widget/Filter$ResultsHandler;-><init>()V
 Landroid/widget/Filter;->FILTER_TOKEN:I
 Landroid/widget/Filter;->FINISH_TOKEN:I
 Landroid/widget/Filter;->LOG_TAG:Ljava/lang/String;
@@ -87944,11 +82065,6 @@
 Landroid/widget/Filter;->mResultHandler:Landroid/os/Handler;
 Landroid/widget/Filter;->mThreadHandler:Landroid/os/Handler;
 Landroid/widget/Filter;->THREAD_NAME:Ljava/lang/String;
-Landroid/widget/ForwardingListener$DisallowIntercept;
-Landroid/widget/ForwardingListener$DisallowIntercept;-><init>()V
-Landroid/widget/ForwardingListener$TriggerLongPress;
-Landroid/widget/ForwardingListener$TriggerLongPress;-><init>()V
-Landroid/widget/ForwardingListener;
 Landroid/widget/ForwardingListener;-><init>(Landroid/view/View;)V
 Landroid/widget/ForwardingListener;->clearCallbacks()V
 Landroid/widget/ForwardingListener;->getPopup()Lcom/android/internal/view/menu/ShowableListMenu;
@@ -87973,8 +82089,6 @@
 Landroid/widget/FrameLayout;->getPaddingTopWithForeground()I
 Landroid/widget/FrameLayout;->layoutChildren(IIIIZ)V
 Landroid/widget/FrameLayout;->mMatchParentChildren:Ljava/util/ArrayList;
-Landroid/widget/Gallery$FlingRunnable;
-Landroid/widget/Gallery$FlingRunnable;-><init>()V
 Landroid/widget/Gallery$FlingRunnable;->endFling(Z)V
 Landroid/widget/Gallery$FlingRunnable;->mLastFlingX:I
 Landroid/widget/Gallery$FlingRunnable;->mScroller:Landroid/widget/Scroller;
@@ -88032,21 +82146,16 @@
 Landroid/widget/GridLayout$Alignment;->getBounds()Landroid/widget/GridLayout$Bounds;
 Landroid/widget/GridLayout$Alignment;->getGravityOffset(Landroid/view/View;I)I
 Landroid/widget/GridLayout$Alignment;->getSizeInCell(Landroid/view/View;II)I
-Landroid/widget/GridLayout$AlignmentMode;
-Landroid/widget/GridLayout$Arc;
 Landroid/widget/GridLayout$Arc;-><init>(Landroid/widget/GridLayout$Interval;Landroid/widget/GridLayout$MutableInt;)V
 Landroid/widget/GridLayout$Arc;->span:Landroid/widget/GridLayout$Interval;
 Landroid/widget/GridLayout$Arc;->valid:Z
 Landroid/widget/GridLayout$Arc;->value:Landroid/widget/GridLayout$MutableInt;
-Landroid/widget/GridLayout$Assoc;
 Landroid/widget/GridLayout$Assoc;-><init>(Ljava/lang/Class;Ljava/lang/Class;)V
 Landroid/widget/GridLayout$Assoc;->keyType:Ljava/lang/Class;
 Landroid/widget/GridLayout$Assoc;->of(Ljava/lang/Class;Ljava/lang/Class;)Landroid/widget/GridLayout$Assoc;
 Landroid/widget/GridLayout$Assoc;->pack()Landroid/widget/GridLayout$PackedMap;
 Landroid/widget/GridLayout$Assoc;->put(Ljava/lang/Object;Ljava/lang/Object;)V
 Landroid/widget/GridLayout$Assoc;->valueType:Ljava/lang/Class;
-Landroid/widget/GridLayout$Axis;
-Landroid/widget/GridLayout$Axis;-><init>(Z)V
 Landroid/widget/GridLayout$Axis;->addComponentSizes(Ljava/util/List;Landroid/widget/GridLayout$PackedMap;)V
 Landroid/widget/GridLayout$Axis;->arcs:[Landroid/widget/GridLayout$Arc;
 Landroid/widget/GridLayout$Axis;->arcsToString(Ljava/util/List;)Ljava/lang/String;
@@ -88120,7 +82229,6 @@
 Landroid/widget/GridLayout$Axis;->topologicalSort([Landroid/widget/GridLayout$Arc;)[Landroid/widget/GridLayout$Arc;
 Landroid/widget/GridLayout$Axis;->trailingMargins:[I
 Landroid/widget/GridLayout$Axis;->trailingMarginsValid:Z
-Landroid/widget/GridLayout$Bounds;
 Landroid/widget/GridLayout$Bounds;-><init>()V
 Landroid/widget/GridLayout$Bounds;->after:I
 Landroid/widget/GridLayout$Bounds;->before:I
@@ -88130,7 +82238,6 @@
 Landroid/widget/GridLayout$Bounds;->include(Landroid/widget/GridLayout;Landroid/view/View;Landroid/widget/GridLayout$Spec;Landroid/widget/GridLayout$Axis;I)V
 Landroid/widget/GridLayout$Bounds;->reset()V
 Landroid/widget/GridLayout$Bounds;->size(Z)I
-Landroid/widget/GridLayout$Interval;
 Landroid/widget/GridLayout$Interval;-><init>(II)V
 Landroid/widget/GridLayout$Interval;->inverse()Landroid/widget/GridLayout$Interval;
 Landroid/widget/GridLayout$Interval;->max:I
@@ -88160,13 +82267,10 @@
 Landroid/widget/GridLayout$LayoutParams;->setColumnSpecSpan(Landroid/widget/GridLayout$Interval;)V
 Landroid/widget/GridLayout$LayoutParams;->setRowSpecSpan(Landroid/widget/GridLayout$Interval;)V
 Landroid/widget/GridLayout$LayoutParams;->TOP_MARGIN:I
-Landroid/widget/GridLayout$MutableInt;
 Landroid/widget/GridLayout$MutableInt;-><init>()V
 Landroid/widget/GridLayout$MutableInt;-><init>(I)V
 Landroid/widget/GridLayout$MutableInt;->reset()V
 Landroid/widget/GridLayout$MutableInt;->value:I
-Landroid/widget/GridLayout$Orientation;
-Landroid/widget/GridLayout$PackedMap;
 Landroid/widget/GridLayout$PackedMap;-><init>([Ljava/lang/Object;[Ljava/lang/Object;)V
 Landroid/widget/GridLayout$PackedMap;->compact([Ljava/lang/Object;[I)[Ljava/lang/Object;
 Landroid/widget/GridLayout$PackedMap;->createIndex([Ljava/lang/Object;)[I
@@ -88250,7 +82354,6 @@
 Landroid/widget/GridLayout;->UNINITIALIZED_HASH:I
 Landroid/widget/GridLayout;->USE_DEFAULT_MARGINS:I
 Landroid/widget/GridLayout;->validateLayoutParams()V
-Landroid/widget/GridView$StretchMode;
 Landroid/widget/GridView;->adjustForBottomFadingEdge(Landroid/view/View;II)V
 Landroid/widget/GridView;->adjustForTopFadingEdge(Landroid/view/View;II)V
 Landroid/widget/GridView;->adjustViewsUpOrDown()V
@@ -88290,7 +82393,6 @@
 Landroid/widget/HeaderViewListAdapter;->EMPTY_INFO_LIST:Ljava/util/ArrayList;
 Landroid/widget/HeaderViewListAdapter;->mAreAllFixedViewsSelectable:Z
 Landroid/widget/HeaderViewListAdapter;->mIsFilterable:Z
-Landroid/widget/HorizontalScrollView$SavedState;
 Landroid/widget/HorizontalScrollView$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/HorizontalScrollView$SavedState;-><init>(Landroid/os/Parcelable;)V
 Landroid/widget/HorizontalScrollView$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -88331,12 +82433,9 @@
 Landroid/widget/HorizontalScrollView;->scrollToChild(Landroid/view/View;)V
 Landroid/widget/HorizontalScrollView;->scrollToChildRect(Landroid/graphics/Rect;Z)Z
 Landroid/widget/HorizontalScrollView;->TAG:Ljava/lang/String;
-Landroid/widget/ImageView$ImageDrawableCallback;
-Landroid/widget/ImageView$ImageDrawableCallback;-><init>(Landroid/graphics/drawable/Drawable;Landroid/net/Uri;I)V
 Landroid/widget/ImageView$ImageDrawableCallback;->drawable:Landroid/graphics/drawable/Drawable;
 Landroid/widget/ImageView$ImageDrawableCallback;->resource:I
 Landroid/widget/ImageView$ImageDrawableCallback;->uri:Landroid/net/Uri;
-Landroid/widget/ImageView$ScaleType;-><init>(I)V
 Landroid/widget/ImageView$ScaleType;->nativeInt:I
 Landroid/widget/ImageView;->applyColorMod()V
 Landroid/widget/ImageView;->applyImageTint()V
@@ -88375,8 +82474,6 @@
 Landroid/widget/ImageView;->setXfermode(Landroid/graphics/Xfermode;)V
 Landroid/widget/ImageView;->sS2FArray:[Landroid/graphics/Matrix$ScaleToFit;
 Landroid/widget/ImageView;->sScaleTypeArray:[Landroid/widget/ImageView$ScaleType;
-Landroid/widget/LinearLayout$DividerMode;
-Landroid/widget/LinearLayout$OrientationMode;
 Landroid/widget/LinearLayout;->allViewsAreGoneBefore(I)Z
 Landroid/widget/LinearLayout;->drawDividersHorizontal(Landroid/graphics/Canvas;)V
 Landroid/widget/LinearLayout;->drawDividersVertical(Landroid/graphics/Canvas;)V
@@ -88417,16 +82514,6 @@
 Landroid/widget/LinearLayout;->setChildFrame(Landroid/view/View;IIII)V
 Landroid/widget/LinearLayout;->sRemeasureWeightedChildren:Z
 Landroid/widget/LinearLayout;->VERTICAL_GRAVITY_COUNT:I
-Landroid/widget/ListPopupWindow$ListSelectorHider;
-Landroid/widget/ListPopupWindow$ListSelectorHider;-><init>()V
-Landroid/widget/ListPopupWindow$PopupDataSetObserver;
-Landroid/widget/ListPopupWindow$PopupDataSetObserver;-><init>()V
-Landroid/widget/ListPopupWindow$PopupScrollListener;
-Landroid/widget/ListPopupWindow$PopupScrollListener;-><init>()V
-Landroid/widget/ListPopupWindow$PopupTouchInterceptor;
-Landroid/widget/ListPopupWindow$PopupTouchInterceptor;-><init>()V
-Landroid/widget/ListPopupWindow$ResizePopupRunnable;
-Landroid/widget/ListPopupWindow$ResizePopupRunnable;-><init>()V
 Landroid/widget/ListPopupWindow;->createDropDownListView(Landroid/content/Context;Z)Landroid/widget/DropDownListView;
 Landroid/widget/ListPopupWindow;->DEBUG:Z
 Landroid/widget/ListPopupWindow;->EXPAND_LIST_TIMEOUT:I
@@ -88465,15 +82552,12 @@
 Landroid/widget/ListPopupWindow;->setEpicenterBounds(Landroid/graphics/Rect;)V
 Landroid/widget/ListPopupWindow;->setOverlapAnchor(Z)V
 Landroid/widget/ListPopupWindow;->TAG:Ljava/lang/String;
-Landroid/widget/ListView$ArrowScrollFocusResult;
 Landroid/widget/ListView$ArrowScrollFocusResult;-><init>()V
 Landroid/widget/ListView$ArrowScrollFocusResult;->getAmountToScroll()I
 Landroid/widget/ListView$ArrowScrollFocusResult;->getSelectedPosition()I
 Landroid/widget/ListView$ArrowScrollFocusResult;->mAmountToScroll:I
 Landroid/widget/ListView$ArrowScrollFocusResult;->mSelectedPosition:I
 Landroid/widget/ListView$ArrowScrollFocusResult;->populate(II)V
-Landroid/widget/ListView$FocusSelector;
-Landroid/widget/ListView$FocusSelector;-><init>()V
 Landroid/widget/ListView$FocusSelector;->mAction:I
 Landroid/widget/ListView$FocusSelector;->mPosition:I
 Landroid/widget/ListView$FocusSelector;->mPositionTop:I
@@ -88552,7 +82636,6 @@
 Landroid/widget/ListView;->TAG:Ljava/lang/String;
 Landroid/widget/ListView;->wrapHeaderListAdapterInternal()V
 Landroid/widget/ListView;->wrapHeaderListAdapterInternal(Ljava/util/ArrayList;Ljava/util/ArrayList;Landroid/widget/ListAdapter;)Landroid/widget/HeaderViewListAdapter;
-Landroid/widget/Magnifier$InternalPopupWindow;
 Landroid/widget/Magnifier$InternalPopupWindow;-><init>(Landroid/content/Context;Landroid/view/Display;Landroid/view/Surface;IIFFLandroid/os/Handler;Ljava/lang/Object;Landroid/widget/Magnifier$Callback;)V
 Landroid/widget/Magnifier$InternalPopupWindow;->CONTENT_BITMAP_ALPHA:I
 Landroid/widget/Magnifier$InternalPopupWindow;->createRenderNodeForBitmap(Ljava/lang/String;FF)Landroid/view/RenderNode;
@@ -88587,7 +82670,6 @@
 Landroid/widget/Magnifier$InternalPopupWindow;->setContentPositionForNextDraw(II)V
 Landroid/widget/Magnifier$InternalPopupWindow;->SURFACE_Z:I
 Landroid/widget/Magnifier$InternalPopupWindow;->updateContent(Landroid/graphics/Bitmap;)V
-Landroid/widget/Magnifier$SurfaceInfo;
 Landroid/widget/Magnifier$SurfaceInfo;-><init>(Landroid/view/Surface;IIZ)V
 Landroid/widget/Magnifier$SurfaceInfo;->mHeight:I
 Landroid/widget/Magnifier$SurfaceInfo;->mIsMainWindowSurface:Z
@@ -88649,10 +82731,7 @@
 Landroid/widget/MediaController;->setProgress()I
 Landroid/widget/MediaController;->stringForTime(I)Ljava/lang/String;
 Landroid/widget/MediaController;->updateFloatingWindowLayout()V
-Landroid/widget/MediaControlView2$Button;
-Landroid/widget/MediaControlView2$OnFullScreenListener;
 Landroid/widget/MediaControlView2$OnFullScreenListener;->onFullScreen(Landroid/view/View;Z)V
-Landroid/widget/MediaControlView2;
 Landroid/widget/MediaControlView2;-><init>(Landroid/content/Context;)V
 Landroid/widget/MediaControlView2;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/widget/MediaControlView2;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
@@ -88673,10 +82752,8 @@
 Landroid/widget/MediaControlView2;->setController(Landroid/media/session/MediaController;)V
 Landroid/widget/MediaControlView2;->setMediaSessionToken(Landroid/media/SessionToken2;)V
 Landroid/widget/MediaControlView2;->setOnFullScreenListener(Landroid/widget/MediaControlView2$OnFullScreenListener;)V
-Landroid/widget/MenuItemHoverListener;
 Landroid/widget/MenuItemHoverListener;->onItemHoverEnter(Lcom/android/internal/view/menu/MenuBuilder;Landroid/view/MenuItem;)V
 Landroid/widget/MenuItemHoverListener;->onItemHoverExit(Lcom/android/internal/view/menu/MenuBuilder;Landroid/view/MenuItem;)V
-Landroid/widget/MenuPopupWindow$MenuDropDownListView;
 Landroid/widget/MenuPopupWindow$MenuDropDownListView;-><init>(Landroid/content/Context;Z)V
 Landroid/widget/MenuPopupWindow$MenuDropDownListView;->clearSelection()V
 Landroid/widget/MenuPopupWindow$MenuDropDownListView;->mAdvanceKey:I
@@ -88684,7 +82761,6 @@
 Landroid/widget/MenuPopupWindow$MenuDropDownListView;->mHoverListener:Landroid/widget/MenuItemHoverListener;
 Landroid/widget/MenuPopupWindow$MenuDropDownListView;->mRetreatKey:I
 Landroid/widget/MenuPopupWindow$MenuDropDownListView;->setHoverListener(Landroid/widget/MenuItemHoverListener;)V
-Landroid/widget/MenuPopupWindow;
 Landroid/widget/MenuPopupWindow;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
 Landroid/widget/MenuPopupWindow;->createDropDownListView(Landroid/content/Context;Z)Landroid/widget/DropDownListView;
 Landroid/widget/MenuPopupWindow;->mHoverListener:Landroid/widget/MenuItemHoverListener;
@@ -88696,8 +82772,6 @@
 Landroid/widget/MenuPopupWindow;->setTouchModal(Z)V
 Landroid/widget/MultiAutoCompleteTextView;->finishInit()V
 Landroid/widget/MultiAutoCompleteTextView;->mTokenizer:Landroid/widget/MultiAutoCompleteTextView$Tokenizer;
-Landroid/widget/NumberPicker$AccessibilityNodeProviderImpl;
-Landroid/widget/NumberPicker$AccessibilityNodeProviderImpl;-><init>()V
 Landroid/widget/NumberPicker$AccessibilityNodeProviderImpl;->createAccessibilityNodeInfoForNumberPicker(IIII)Landroid/view/accessibility/AccessibilityNodeInfo;
 Landroid/widget/NumberPicker$AccessibilityNodeProviderImpl;->createAccessibilityNodeInfoForVirtualButton(ILjava/lang/String;IIII)Landroid/view/accessibility/AccessibilityNodeInfo;
 Landroid/widget/NumberPicker$AccessibilityNodeProviderImpl;->createAccessibiltyNodeInfoForInputText(IIII)Landroid/view/accessibility/AccessibilityNodeInfo;
@@ -88716,19 +82790,9 @@
 Landroid/widget/NumberPicker$AccessibilityNodeProviderImpl;->VIRTUAL_VIEW_ID_DECREMENT:I
 Landroid/widget/NumberPicker$AccessibilityNodeProviderImpl;->VIRTUAL_VIEW_ID_INCREMENT:I
 Landroid/widget/NumberPicker$AccessibilityNodeProviderImpl;->VIRTUAL_VIEW_ID_INPUT:I
-Landroid/widget/NumberPicker$BeginSoftInputOnLongPressCommand;
-Landroid/widget/NumberPicker$BeginSoftInputOnLongPressCommand;-><init>()V
-Landroid/widget/NumberPicker$ChangeCurrentByOneFromLongPressCommand;
-Landroid/widget/NumberPicker$ChangeCurrentByOneFromLongPressCommand;-><init>()V
 Landroid/widget/NumberPicker$ChangeCurrentByOneFromLongPressCommand;->mIncrement:Z
 Landroid/widget/NumberPicker$ChangeCurrentByOneFromLongPressCommand;->setStep(Z)V
-Landroid/widget/NumberPicker$CustomEditText;
 Landroid/widget/NumberPicker$CustomEditText;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-Landroid/widget/NumberPicker$InputTextFilter;
-Landroid/widget/NumberPicker$InputTextFilter;-><init>()V
-Landroid/widget/NumberPicker$OnScrollListener$ScrollState;
-Landroid/widget/NumberPicker$PressedStateHelper;
-Landroid/widget/NumberPicker$PressedStateHelper;-><init>()V
 Landroid/widget/NumberPicker$PressedStateHelper;->buttonPressDelayed(I)V
 Landroid/widget/NumberPicker$PressedStateHelper;->buttonTapped(I)V
 Landroid/widget/NumberPicker$PressedStateHelper;->BUTTON_DECREMENT:I
@@ -88738,7 +82802,6 @@
 Landroid/widget/NumberPicker$PressedStateHelper;->mMode:I
 Landroid/widget/NumberPicker$PressedStateHelper;->MODE_PRESS:I
 Landroid/widget/NumberPicker$PressedStateHelper;->MODE_TAPPED:I
-Landroid/widget/NumberPicker$SetSelectionCommand;
 Landroid/widget/NumberPicker$SetSelectionCommand;-><init>(Landroid/widget/EditText;)V
 Landroid/widget/NumberPicker$SetSelectionCommand;->cancel()V
 Landroid/widget/NumberPicker$SetSelectionCommand;->mInputText:Landroid/widget/EditText;
@@ -88746,7 +82809,6 @@
 Landroid/widget/NumberPicker$SetSelectionCommand;->mSelectionEnd:I
 Landroid/widget/NumberPicker$SetSelectionCommand;->mSelectionStart:I
 Landroid/widget/NumberPicker$SetSelectionCommand;->post(II)V
-Landroid/widget/NumberPicker$TwoDigitFormatter;
 Landroid/widget/NumberPicker$TwoDigitFormatter;-><init>()V
 Landroid/widget/NumberPicker$TwoDigitFormatter;->createFormatter(Ljava/util/Locale;)Ljava/util/Formatter;
 Landroid/widget/NumberPicker$TwoDigitFormatter;->getZeroDigit(Ljava/util/Locale;)C
@@ -88843,7 +82905,6 @@
 Landroid/widget/NumberPicker;->updateInputTextView()Z
 Landroid/widget/NumberPicker;->updateWrapSelectorWheel()V
 Landroid/widget/NumberPicker;->validateInputTextView(Landroid/view/View;)V
-Landroid/widget/OverScroller$SplineOverScroller;
 Landroid/widget/OverScroller$SplineOverScroller;-><init>(Landroid/content/Context;)V
 Landroid/widget/OverScroller$SplineOverScroller;->adjustDuration(III)V
 Landroid/widget/OverScroller$SplineOverScroller;->BALLISTIC:I
@@ -88908,10 +82969,6 @@
 Landroid/widget/PopupMenu;->mMenu:Lcom/android/internal/view/menu/MenuBuilder;
 Landroid/widget/PopupMenu;->mMenuItemClickListener:Landroid/widget/PopupMenu$OnMenuItemClickListener;
 Landroid/widget/PopupMenu;->mOnDismissListener:Landroid/widget/PopupMenu$OnDismissListener;
-Landroid/widget/PopupWindow$PopupBackgroundView;
-Landroid/widget/PopupWindow$PopupBackgroundView;-><init>(Landroid/content/Context;)V
-Landroid/widget/PopupWindow$PopupDecorView;
-Landroid/widget/PopupWindow$PopupDecorView;-><init>(Landroid/content/Context;)V
 Landroid/widget/PopupWindow$PopupDecorView;->cancelTransitions()V
 Landroid/widget/PopupWindow$PopupDecorView;->mCleanupAfterExit:Ljava/lang/Runnable;
 Landroid/widget/PopupWindow$PopupDecorView;->mOnAnchorRootDetachedListener:Landroid/view/View$OnAttachStateChangeListener;
@@ -88989,9 +83046,6 @@
 Landroid/widget/PopupWindow;->tryFitVertical(Landroid/view/WindowManager$LayoutParams;IIIIIIIZ)Z
 Landroid/widget/PopupWindow;->update(Landroid/view/View;Landroid/view/WindowManager$LayoutParams;)V
 Landroid/widget/PopupWindow;->update(Landroid/view/View;ZIIII)V
-Landroid/widget/ProgressBar$AccessibilityEventSender;
-Landroid/widget/ProgressBar$AccessibilityEventSender;-><init>()V
-Landroid/widget/ProgressBar$ProgressTintInfo;
 Landroid/widget/ProgressBar$ProgressTintInfo;-><init>()V
 Landroid/widget/ProgressBar$ProgressTintInfo;->mHasIndeterminateTint:Z
 Landroid/widget/ProgressBar$ProgressTintInfo;->mHasIndeterminateTintMode:Z
@@ -89009,7 +83063,6 @@
 Landroid/widget/ProgressBar$ProgressTintInfo;->mProgressTintMode:Landroid/graphics/PorterDuff$Mode;
 Landroid/widget/ProgressBar$ProgressTintInfo;->mSecondaryProgressTintList:Landroid/content/res/ColorStateList;
 Landroid/widget/ProgressBar$ProgressTintInfo;->mSecondaryProgressTintMode:Landroid/graphics/PorterDuff$Mode;
-Landroid/widget/ProgressBar$RefreshData;
 Landroid/widget/ProgressBar$RefreshData;-><init>()V
 Landroid/widget/ProgressBar$RefreshData;->animate:Z
 Landroid/widget/ProgressBar$RefreshData;->fromUser:Z
@@ -89019,9 +83072,6 @@
 Landroid/widget/ProgressBar$RefreshData;->progress:I
 Landroid/widget/ProgressBar$RefreshData;->recycle()V
 Landroid/widget/ProgressBar$RefreshData;->sPool:Landroid/util/Pools$SynchronizedPool;
-Landroid/widget/ProgressBar$RefreshProgressRunnable;
-Landroid/widget/ProgressBar$RefreshProgressRunnable;-><init>()V
-Landroid/widget/ProgressBar$SavedState;
 Landroid/widget/ProgressBar$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/ProgressBar$SavedState;-><init>(Landroid/os/Parcelable;)V
 Landroid/widget/ProgressBar$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -89084,8 +83134,6 @@
 Landroid/widget/ProgressBar;->updateDrawableBounds(II)V
 Landroid/widget/ProgressBar;->updateDrawableState()V
 Landroid/widget/ProgressBar;->VISUAL_PROGRESS:Landroid/util/FloatProperty;
-Landroid/widget/QuickContactBadge$QueryHandler;
-Landroid/widget/QuickContactBadge$QueryHandler;-><init>(Landroid/content/ContentResolver;)V
 Landroid/widget/QuickContactBadge;->EMAIL_ID_COLUMN_INDEX:I
 Landroid/widget/QuickContactBadge;->EMAIL_LOOKUP_PROJECTION:[Ljava/lang/String;
 Landroid/widget/QuickContactBadge;->EMAIL_LOOKUP_STRING_COLUMN_INDEX:I
@@ -89106,11 +83154,7 @@
 Landroid/widget/QuickContactBadge;->TOKEN_EMAIL_LOOKUP_AND_TRIGGER:I
 Landroid/widget/QuickContactBadge;->TOKEN_PHONE_LOOKUP:I
 Landroid/widget/QuickContactBadge;->TOKEN_PHONE_LOOKUP_AND_TRIGGER:I
-Landroid/widget/RadialTimePickerView$OnValueSelectedListener;
 Landroid/widget/RadialTimePickerView$OnValueSelectedListener;->onValueSelected(IIZ)V
-Landroid/widget/RadialTimePickerView$PickerType;
-Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;
-Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;-><init>()V
 Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->adjustPicker(I)V
 Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->getBoundsForVirtualView(ILandroid/graphics/Rect;)V
 Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->getCircularDiff(III)I
@@ -89135,7 +83179,6 @@
 Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->SHIFT_VALUE:I
 Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->TYPE_HOUR:I
 Landroid/widget/RadialTimePickerView$RadialPickerTouchHelper;->TYPE_MINUTE:I
-Landroid/widget/RadialTimePickerView;
 Landroid/widget/RadialTimePickerView;-><init>(Landroid/content/Context;)V
 Landroid/widget/RadialTimePickerView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/widget/RadialTimePickerView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
@@ -89251,10 +83294,6 @@
 Landroid/widget/RadialTimePickerView;->snapPrefer30s(I)I
 Landroid/widget/RadialTimePickerView;->SNAP_PREFER_30S_MAP:[I
 Landroid/widget/RadialTimePickerView;->TAG:Ljava/lang/String;
-Landroid/widget/RadioGroup$CheckedStateTracker;
-Landroid/widget/RadioGroup$CheckedStateTracker;-><init>()V
-Landroid/widget/RadioGroup$PassThroughHierarchyChangeListener;
-Landroid/widget/RadioGroup$PassThroughHierarchyChangeListener;-><init>()V
 Landroid/widget/RadioGroup$PassThroughHierarchyChangeListener;->mOnHierarchyChangeListener:Landroid/view/ViewGroup$OnHierarchyChangeListener;
 Landroid/widget/RadioGroup;->init()V
 Landroid/widget/RadioGroup;->LOG_TAG:Ljava/lang/String;
@@ -89276,7 +83315,6 @@
 Landroid/widget/RatingBar;->onStartTrackingTouch()V
 Landroid/widget/RatingBar;->onStopTrackingTouch()V
 Landroid/widget/RatingBar;->updateSecondaryProgress(I)V
-Landroid/widget/RelativeLayout$DependencyGraph$Node;
 Landroid/widget/RelativeLayout$DependencyGraph$Node;->acquire(Landroid/view/View;)Landroid/widget/RelativeLayout$DependencyGraph$Node;
 Landroid/widget/RelativeLayout$DependencyGraph$Node;->dependencies:Landroid/util/SparseArray;
 Landroid/widget/RelativeLayout$DependencyGraph$Node;->dependents:Landroid/util/ArrayMap;
@@ -89284,12 +83322,10 @@
 Landroid/widget/RelativeLayout$DependencyGraph$Node;->release()V
 Landroid/widget/RelativeLayout$DependencyGraph$Node;->sPool:Landroid/util/Pools$SynchronizedPool;
 Landroid/widget/RelativeLayout$DependencyGraph$Node;->view:Landroid/view/View;
-Landroid/widget/RelativeLayout$DependencyGraph;
 Landroid/widget/RelativeLayout$DependencyGraph;-><init>()V
 Landroid/widget/RelativeLayout$DependencyGraph;->add(Landroid/view/View;)V
 Landroid/widget/RelativeLayout$DependencyGraph;->clear()V
 Landroid/widget/RelativeLayout$DependencyGraph;->findRoots([I)Ljava/util/ArrayDeque;
-Landroid/widget/RelativeLayout$DependencyGraph;->getSortedViews([Landroid/view/View;[[I)V
 Landroid/widget/RelativeLayout$DependencyGraph;->mKeyNodes:Landroid/util/SparseArray;
 Landroid/widget/RelativeLayout$DependencyGraph;->mNodes:Ljava/util/ArrayList;
 Landroid/widget/RelativeLayout$DependencyGraph;->mRoots:Ljava/util/ArrayDeque;
@@ -89304,8 +83340,6 @@
 Landroid/widget/RelativeLayout$LayoutParams;->mRulesChanged:Z
 Landroid/widget/RelativeLayout$LayoutParams;->resolveRules(I)V
 Landroid/widget/RelativeLayout$LayoutParams;->shouldResolveLayoutDirection(I)Z
-Landroid/widget/RelativeLayout$TopToBottomLeftToRightComparator;
-Landroid/widget/RelativeLayout$TopToBottomLeftToRightComparator;-><init>()V
 Landroid/widget/RelativeLayout$TopToBottomLeftToRightComparator;->compare(Landroid/view/View;Landroid/view/View;)I
 Landroid/widget/RelativeLayout;->applyHorizontalSizeRules(Landroid/widget/RelativeLayout$LayoutParams;I[I)V
 Landroid/widget/RelativeLayout;->applyVerticalSizeRules(Landroid/widget/RelativeLayout$LayoutParams;II)V
@@ -89341,7 +83375,6 @@
 Landroid/widget/RelativeLayout;->sortChildren()V
 Landroid/widget/RelativeLayout;->VALUE_NOT_SET:I
 Landroid/widget/RelativeLayout;->VERB_COUNT:I
-Landroid/widget/RemoteViews$Action;
 Landroid/widget/RemoteViews$Action;-><init>()V
 Landroid/widget/RemoteViews$Action;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 Landroid/widget/RemoteViews$Action;->getActionTag()I
@@ -89355,9 +83388,6 @@
 Landroid/widget/RemoteViews$Action;->setBitmapCache(Landroid/widget/RemoteViews$BitmapCache;)V
 Landroid/widget/RemoteViews$Action;->visitUris(Ljava/util/function/Consumer;)V
 Landroid/widget/RemoteViews$ActionException;-><init>(Ljava/lang/Throwable;)V
-Landroid/widget/RemoteViews$AsyncApplyTask;
-Landroid/widget/RemoteViews$AsyncApplyTask;-><init>(Landroid/widget/RemoteViews;Landroid/view/ViewGroup;Landroid/content/Context;Landroid/widget/RemoteViews$OnViewAppliedListener;Landroid/widget/RemoteViews$OnClickHandler;Landroid/view/View;)V
-Landroid/widget/RemoteViews$AsyncApplyTask;->doInBackground([[Ljava/lang/Void;)Landroid/widget/RemoteViews$ViewTree;
 Landroid/widget/RemoteViews$AsyncApplyTask;->mActions:[Landroid/widget/RemoteViews$Action;
 Landroid/widget/RemoteViews$AsyncApplyTask;->mContext:Landroid/content/Context;
 Landroid/widget/RemoteViews$AsyncApplyTask;->mError:Ljava/lang/Exception;
@@ -89368,7 +83398,6 @@
 Landroid/widget/RemoteViews$AsyncApplyTask;->mRV:Landroid/widget/RemoteViews;
 Landroid/widget/RemoteViews$AsyncApplyTask;->mTree:Landroid/widget/RemoteViews$ViewTree;
 Landroid/widget/RemoteViews$AsyncApplyTask;->onPostExecute(Landroid/widget/RemoteViews$ViewTree;)V
-Landroid/widget/RemoteViews$BitmapCache;
 Landroid/widget/RemoteViews$BitmapCache;-><init>()V
 Landroid/widget/RemoteViews$BitmapCache;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/RemoteViews$BitmapCache;->getBitmapForId(I)Landroid/graphics/Bitmap;
@@ -89376,14 +83405,10 @@
 Landroid/widget/RemoteViews$BitmapCache;->getBitmapMemory()I
 Landroid/widget/RemoteViews$BitmapCache;->mBitmapMemory:I
 Landroid/widget/RemoteViews$BitmapCache;->writeBitmapsToParcel(Landroid/os/Parcel;I)V
-Landroid/widget/RemoteViews$BitmapReflectionAction;
-Landroid/widget/RemoteViews$BitmapReflectionAction;-><init>(ILjava/lang/String;Landroid/graphics/Bitmap;)V
-Landroid/widget/RemoteViews$BitmapReflectionAction;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/RemoteViews$BitmapReflectionAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 Landroid/widget/RemoteViews$BitmapReflectionAction;->bitmapId:I
 Landroid/widget/RemoteViews$BitmapReflectionAction;->getActionTag()I
 Landroid/widget/RemoteViews$BitmapReflectionAction;->setBitmapCache(Landroid/widget/RemoteViews$BitmapCache;)V
-Landroid/widget/RemoteViews$LayoutParamAction;
 Landroid/widget/RemoteViews$LayoutParamAction;-><init>(III)V
 Landroid/widget/RemoteViews$LayoutParamAction;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/RemoteViews$LayoutParamAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
@@ -89396,33 +83421,23 @@
 Landroid/widget/RemoteViews$LayoutParamAction;->mProperty:I
 Landroid/widget/RemoteViews$LayoutParamAction;->mValue:I
 Landroid/widget/RemoteViews$LayoutParamAction;->resolveDimenPixelOffset(Landroid/view/View;I)I
-Landroid/widget/RemoteViews$MethodArgs;
 Landroid/widget/RemoteViews$MethodArgs;-><init>()V
 Landroid/widget/RemoteViews$MethodArgs;->asyncMethod:Ljava/lang/invoke/MethodHandle;
 Landroid/widget/RemoteViews$MethodArgs;->asyncMethodName:Ljava/lang/String;
 Landroid/widget/RemoteViews$MethodArgs;->syncMethod:Ljava/lang/invoke/MethodHandle;
-Landroid/widget/RemoteViews$MethodKey;
 Landroid/widget/RemoteViews$MethodKey;-><init>()V
 Landroid/widget/RemoteViews$MethodKey;->methodName:Ljava/lang/String;
 Landroid/widget/RemoteViews$MethodKey;->paramClass:Ljava/lang/Class;
 Landroid/widget/RemoteViews$MethodKey;->set(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)V
 Landroid/widget/RemoteViews$MethodKey;->targetClass:Ljava/lang/Class;
-Landroid/widget/RemoteViews$OnClickHandler;
 Landroid/widget/RemoteViews$OnClickHandler;->mEnterAnimationId:I
 Landroid/widget/RemoteViews$OnClickHandler;->onClickHandler(Landroid/view/View;Landroid/app/PendingIntent;Landroid/content/Intent;I)Z
 Landroid/widget/RemoteViews$OnClickHandler;->setEnterAnimationId(I)V
-Landroid/widget/RemoteViews$OnViewAppliedListener;
 Landroid/widget/RemoteViews$OnViewAppliedListener;->onError(Ljava/lang/Exception;)V
 Landroid/widget/RemoteViews$OnViewAppliedListener;->onViewApplied(Landroid/view/View;)V
-Landroid/widget/RemoteViews$OverrideTextColorsAction;
-Landroid/widget/RemoteViews$OverrideTextColorsAction;-><init>(I)V
-Landroid/widget/RemoteViews$OverrideTextColorsAction;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/RemoteViews$OverrideTextColorsAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 Landroid/widget/RemoteViews$OverrideTextColorsAction;->getActionTag()I
 Landroid/widget/RemoteViews$OverrideTextColorsAction;->textColor:I
-Landroid/widget/RemoteViews$ReflectionAction;
-Landroid/widget/RemoteViews$ReflectionAction;-><init>(ILjava/lang/String;ILjava/lang/Object;)V
-Landroid/widget/RemoteViews$ReflectionAction;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/RemoteViews$ReflectionAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 Landroid/widget/RemoteViews$ReflectionAction;->BITMAP:I
 Landroid/widget/RemoteViews$ReflectionAction;->BOOLEAN:I
@@ -89448,71 +83463,40 @@
 Landroid/widget/RemoteViews$ReflectionAction;->type:I
 Landroid/widget/RemoteViews$ReflectionAction;->URI:I
 Landroid/widget/RemoteViews$ReflectionAction;->visitUris(Ljava/util/function/Consumer;)V
-Landroid/widget/RemoteViews$RemoteViewsContextWrapper;
 Landroid/widget/RemoteViews$RemoteViewsContextWrapper;-><init>(Landroid/content/Context;Landroid/content/Context;)V
 Landroid/widget/RemoteViews$RemoteViewsContextWrapper;->mContextForResources:Landroid/content/Context;
-Landroid/widget/RemoteViews$RunnableAction;
 Landroid/widget/RemoteViews$RunnableAction;-><init>(Ljava/lang/Runnable;)V
 Landroid/widget/RemoteViews$RunnableAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 Landroid/widget/RemoteViews$RunnableAction;->mRunnable:Ljava/lang/Runnable;
-Landroid/widget/RemoteViews$RuntimeAction;
 Landroid/widget/RemoteViews$RuntimeAction;-><init>()V
 Landroid/widget/RemoteViews$RuntimeAction;->getActionTag()I
-Landroid/widget/RemoteViews$SetDrawableTint;
-Landroid/widget/RemoteViews$SetDrawableTint;-><init>(IZILandroid/graphics/PorterDuff$Mode;)V
-Landroid/widget/RemoteViews$SetDrawableTint;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/RemoteViews$SetDrawableTint;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 Landroid/widget/RemoteViews$SetDrawableTint;->colorFilter:I
 Landroid/widget/RemoteViews$SetDrawableTint;->filterMode:Landroid/graphics/PorterDuff$Mode;
 Landroid/widget/RemoteViews$SetDrawableTint;->getActionTag()I
 Landroid/widget/RemoteViews$SetDrawableTint;->targetBackground:Z
-Landroid/widget/RemoteViews$SetEmptyView;
-Landroid/widget/RemoteViews$SetEmptyView;-><init>(II)V
-Landroid/widget/RemoteViews$SetEmptyView;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/RemoteViews$SetEmptyView;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 Landroid/widget/RemoteViews$SetEmptyView;->emptyViewId:I
 Landroid/widget/RemoteViews$SetEmptyView;->getActionTag()I
-Landroid/widget/RemoteViews$SetOnClickFillInIntent;
-Landroid/widget/RemoteViews$SetOnClickFillInIntent;-><init>(ILandroid/content/Intent;)V
-Landroid/widget/RemoteViews$SetOnClickFillInIntent;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/RemoteViews$SetOnClickFillInIntent;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 Landroid/widget/RemoteViews$SetOnClickFillInIntent;->fillInIntent:Landroid/content/Intent;
 Landroid/widget/RemoteViews$SetOnClickFillInIntent;->getActionTag()I
-Landroid/widget/RemoteViews$SetOnClickPendingIntent;
-Landroid/widget/RemoteViews$SetOnClickPendingIntent;-><init>(ILandroid/app/PendingIntent;)V
-Landroid/widget/RemoteViews$SetOnClickPendingIntent;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/RemoteViews$SetOnClickPendingIntent;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 Landroid/widget/RemoteViews$SetOnClickPendingIntent;->getActionTag()I
-Landroid/widget/RemoteViews$SetPendingIntentTemplate;
-Landroid/widget/RemoteViews$SetPendingIntentTemplate;-><init>(ILandroid/app/PendingIntent;)V
-Landroid/widget/RemoteViews$SetPendingIntentTemplate;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/RemoteViews$SetPendingIntentTemplate;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 Landroid/widget/RemoteViews$SetPendingIntentTemplate;->getActionTag()I
-Landroid/widget/RemoteViews$SetRemoteInputsAction;
-Landroid/widget/RemoteViews$SetRemoteInputsAction;-><init>(I[Landroid/app/RemoteInput;)V
-Landroid/widget/RemoteViews$SetRemoteInputsAction;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/RemoteViews$SetRemoteInputsAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 Landroid/widget/RemoteViews$SetRemoteInputsAction;->getActionTag()I
 Landroid/widget/RemoteViews$SetRemoteInputsAction;->remoteInputs:[Landroid/os/Parcelable;
-Landroid/widget/RemoteViews$SetRemoteViewsAdapterIntent;
-Landroid/widget/RemoteViews$SetRemoteViewsAdapterIntent;-><init>(ILandroid/content/Intent;)V
-Landroid/widget/RemoteViews$SetRemoteViewsAdapterIntent;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/RemoteViews$SetRemoteViewsAdapterIntent;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 Landroid/widget/RemoteViews$SetRemoteViewsAdapterIntent;->getActionTag()I
 Landroid/widget/RemoteViews$SetRemoteViewsAdapterIntent;->initActionAsync(Landroid/widget/RemoteViews$ViewTree;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/widget/RemoteViews$Action;
 Landroid/widget/RemoteViews$SetRemoteViewsAdapterIntent;->intent:Landroid/content/Intent;
 Landroid/widget/RemoteViews$SetRemoteViewsAdapterIntent;->isAsync:Z
-Landroid/widget/RemoteViews$SetRemoteViewsAdapterList;
-Landroid/widget/RemoteViews$SetRemoteViewsAdapterList;-><init>(ILjava/util/ArrayList;I)V
-Landroid/widget/RemoteViews$SetRemoteViewsAdapterList;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/RemoteViews$SetRemoteViewsAdapterList;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 Landroid/widget/RemoteViews$SetRemoteViewsAdapterList;->getActionTag()I
 Landroid/widget/RemoteViews$SetRemoteViewsAdapterList;->list:Ljava/util/ArrayList;
 Landroid/widget/RemoteViews$SetRemoteViewsAdapterList;->viewTypeCount:I
-Landroid/widget/RemoteViews$TextViewDrawableAction;
-Landroid/widget/RemoteViews$TextViewDrawableAction;-><init>(IZIIII)V
-Landroid/widget/RemoteViews$TextViewDrawableAction;-><init>(IZLandroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;Landroid/graphics/drawable/Icon;)V
-Landroid/widget/RemoteViews$TextViewDrawableAction;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/RemoteViews$TextViewDrawableAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 Landroid/widget/RemoteViews$TextViewDrawableAction;->d1:I
 Landroid/widget/RemoteViews$TextViewDrawableAction;->d2:I
@@ -89533,24 +83517,14 @@
 Landroid/widget/RemoteViews$TextViewDrawableAction;->prefersAsyncApply()Z
 Landroid/widget/RemoteViews$TextViewDrawableAction;->useIcons:Z
 Landroid/widget/RemoteViews$TextViewDrawableAction;->visitUris(Ljava/util/function/Consumer;)V
-Landroid/widget/RemoteViews$TextViewSizeAction;
-Landroid/widget/RemoteViews$TextViewSizeAction;-><init>(IIF)V
-Landroid/widget/RemoteViews$TextViewSizeAction;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/RemoteViews$TextViewSizeAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 Landroid/widget/RemoteViews$TextViewSizeAction;->getActionTag()I
 Landroid/widget/RemoteViews$TextViewSizeAction;->size:F
 Landroid/widget/RemoteViews$TextViewSizeAction;->units:I
-Landroid/widget/RemoteViews$ViewContentNavigation;
-Landroid/widget/RemoteViews$ViewContentNavigation;-><init>(IZ)V
-Landroid/widget/RemoteViews$ViewContentNavigation;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/RemoteViews$ViewContentNavigation;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 Landroid/widget/RemoteViews$ViewContentNavigation;->getActionTag()I
 Landroid/widget/RemoteViews$ViewContentNavigation;->mergeBehavior()I
 Landroid/widget/RemoteViews$ViewContentNavigation;->mNext:Z
-Landroid/widget/RemoteViews$ViewGroupActionAdd;
-Landroid/widget/RemoteViews$ViewGroupActionAdd;-><init>(ILandroid/widget/RemoteViews;)V
-Landroid/widget/RemoteViews$ViewGroupActionAdd;-><init>(ILandroid/widget/RemoteViews;I)V
-Landroid/widget/RemoteViews$ViewGroupActionAdd;-><init>(Landroid/os/Parcel;Landroid/widget/RemoteViews$BitmapCache;Landroid/content/pm/ApplicationInfo;ILjava/util/Map;)V
 Landroid/widget/RemoteViews$ViewGroupActionAdd;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 Landroid/widget/RemoteViews$ViewGroupActionAdd;->getActionTag()I
 Landroid/widget/RemoteViews$ViewGroupActionAdd;->hasSameAppInfo(Landroid/content/pm/ApplicationInfo;)Z
@@ -89559,10 +83533,6 @@
 Landroid/widget/RemoteViews$ViewGroupActionAdd;->mIndex:I
 Landroid/widget/RemoteViews$ViewGroupActionAdd;->prefersAsyncApply()Z
 Landroid/widget/RemoteViews$ViewGroupActionAdd;->setBitmapCache(Landroid/widget/RemoteViews$BitmapCache;)V
-Landroid/widget/RemoteViews$ViewGroupActionRemove;
-Landroid/widget/RemoteViews$ViewGroupActionRemove;-><init>(I)V
-Landroid/widget/RemoteViews$ViewGroupActionRemove;-><init>(II)V
-Landroid/widget/RemoteViews$ViewGroupActionRemove;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/RemoteViews$ViewGroupActionRemove;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 Landroid/widget/RemoteViews$ViewGroupActionRemove;->getActionTag()I
 Landroid/widget/RemoteViews$ViewGroupActionRemove;->initActionAsync(Landroid/widget/RemoteViews$ViewTree;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)Landroid/widget/RemoteViews$Action;
@@ -89570,16 +83540,12 @@
 Landroid/widget/RemoteViews$ViewGroupActionRemove;->mViewIdToKeep:I
 Landroid/widget/RemoteViews$ViewGroupActionRemove;->removeAllViewsExceptIdToKeep(Landroid/view/ViewGroup;)V
 Landroid/widget/RemoteViews$ViewGroupActionRemove;->REMOVE_ALL_VIEWS_ID:I
-Landroid/widget/RemoteViews$ViewPaddingAction;
-Landroid/widget/RemoteViews$ViewPaddingAction;-><init>(IIIII)V
-Landroid/widget/RemoteViews$ViewPaddingAction;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/RemoteViews$ViewPaddingAction;->apply(Landroid/view/View;Landroid/view/ViewGroup;Landroid/widget/RemoteViews$OnClickHandler;)V
 Landroid/widget/RemoteViews$ViewPaddingAction;->bottom:I
 Landroid/widget/RemoteViews$ViewPaddingAction;->getActionTag()I
 Landroid/widget/RemoteViews$ViewPaddingAction;->left:I
 Landroid/widget/RemoteViews$ViewPaddingAction;->right:I
 Landroid/widget/RemoteViews$ViewPaddingAction;->top:I
-Landroid/widget/RemoteViews$ViewTree;
 Landroid/widget/RemoteViews$ViewTree;-><init>(Landroid/view/View;)V
 Landroid/widget/RemoteViews$ViewTree;->addChild(Landroid/widget/RemoteViews$ViewTree;)V
 Landroid/widget/RemoteViews$ViewTree;->addChild(Landroid/widget/RemoteViews$ViewTree;I)V
@@ -89676,11 +83642,9 @@
 Landroid/widget/RemoteViews;->visitIconUri(Landroid/graphics/drawable/Icon;Ljava/util/function/Consumer;)V
 Landroid/widget/RemoteViews;->visitUris(Ljava/util/function/Consumer;)V
 Landroid/widget/RemoteViews;->writeActionsToParcel(Landroid/os/Parcel;)V
-Landroid/widget/RemoteViewsAdapter$AsyncRemoteAdapterAction;
 Landroid/widget/RemoteViewsAdapter$AsyncRemoteAdapterAction;-><init>(Landroid/widget/RemoteViewsAdapter$RemoteAdapterConnectionCallback;Landroid/content/Intent;)V
 Landroid/widget/RemoteViewsAdapter$AsyncRemoteAdapterAction;->mCallback:Landroid/widget/RemoteViewsAdapter$RemoteAdapterConnectionCallback;
 Landroid/widget/RemoteViewsAdapter$AsyncRemoteAdapterAction;->mIntent:Landroid/content/Intent;
-Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;
 Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;-><init>(I)V
 Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->commitTemporaryMetaData()V
 Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->containsMetaDataAt(I)Z
@@ -89708,20 +83672,16 @@
 Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->reset()V
 Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->sMaxCountSlackPercent:F
 Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;->sMaxMemoryLimitInBytes:I
-Landroid/widget/RemoteViewsAdapter$HandlerThreadExecutor;
 Landroid/widget/RemoteViewsAdapter$HandlerThreadExecutor;-><init>(Landroid/os/HandlerThread;)V
 Landroid/widget/RemoteViewsAdapter$HandlerThreadExecutor;->mThread:Landroid/os/HandlerThread;
-Landroid/widget/RemoteViewsAdapter$LoadingViewTemplate;
 Landroid/widget/RemoteViewsAdapter$LoadingViewTemplate;-><init>(Landroid/widget/RemoteViews;Landroid/content/Context;)V
 Landroid/widget/RemoteViewsAdapter$LoadingViewTemplate;->defaultHeight:I
 Landroid/widget/RemoteViewsAdapter$LoadingViewTemplate;->loadFirstViewHeight(Landroid/widget/RemoteViews;Landroid/content/Context;Ljava/util/concurrent/Executor;)V
 Landroid/widget/RemoteViewsAdapter$LoadingViewTemplate;->remoteViews:Landroid/widget/RemoteViews;
-Landroid/widget/RemoteViewsAdapter$RemoteAdapterConnectionCallback;
 Landroid/widget/RemoteViewsAdapter$RemoteAdapterConnectionCallback;->deferNotifyDataSetChanged()V
 Landroid/widget/RemoteViewsAdapter$RemoteAdapterConnectionCallback;->onRemoteAdapterConnected()Z
 Landroid/widget/RemoteViewsAdapter$RemoteAdapterConnectionCallback;->onRemoteAdapterDisconnected()V
 Landroid/widget/RemoteViewsAdapter$RemoteAdapterConnectionCallback;->setRemoteViewsAdapter(Landroid/content/Intent;Z)V
-Landroid/widget/RemoteViewsAdapter$RemoteServiceHandler;
 Landroid/widget/RemoteViewsAdapter$RemoteServiceHandler;-><init>(Landroid/os/Looper;Landroid/widget/RemoteViewsAdapter;Landroid/content/Context;)V
 Landroid/widget/RemoteViewsAdapter$RemoteServiceHandler;->enqueueDeferredUnbindServiceMessage()V
 Landroid/widget/RemoteViewsAdapter$RemoteServiceHandler;->mAdapter:Ljava/lang/ref/WeakReference;
@@ -89731,27 +83691,21 @@
 Landroid/widget/RemoteViewsAdapter$RemoteServiceHandler;->mRemoteViewsFactory:Lcom/android/internal/widget/IRemoteViewsFactory;
 Landroid/widget/RemoteViewsAdapter$RemoteServiceHandler;->sendNotifyDataSetChange(Z)Z
 Landroid/widget/RemoteViewsAdapter$RemoteServiceHandler;->unbindNow()V
-Landroid/widget/RemoteViewsAdapter$RemoteViewsCacheKey;
 Landroid/widget/RemoteViewsAdapter$RemoteViewsCacheKey;-><init>(Landroid/content/Intent$FilterComparison;I)V
 Landroid/widget/RemoteViewsAdapter$RemoteViewsCacheKey;->filter:Landroid/content/Intent$FilterComparison;
 Landroid/widget/RemoteViewsAdapter$RemoteViewsCacheKey;->widgetId:I
-Landroid/widget/RemoteViewsAdapter$RemoteViewsFrameLayout;
 Landroid/widget/RemoteViewsAdapter$RemoteViewsFrameLayout;-><init>(Landroid/content/Context;Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;)V
 Landroid/widget/RemoteViewsAdapter$RemoteViewsFrameLayout;->cacheIndex:I
 Landroid/widget/RemoteViewsAdapter$RemoteViewsFrameLayout;->getRemoteContext()Landroid/content/Context;
 Landroid/widget/RemoteViewsAdapter$RemoteViewsFrameLayout;->mCache:Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;
 Landroid/widget/RemoteViewsAdapter$RemoteViewsFrameLayout;->onRemoteViewsLoaded(Landroid/widget/RemoteViews;Landroid/widget/RemoteViews$OnClickHandler;Z)V
-Landroid/widget/RemoteViewsAdapter$RemoteViewsFrameLayoutRefSet;
-Landroid/widget/RemoteViewsAdapter$RemoteViewsFrameLayoutRefSet;-><init>()V
 Landroid/widget/RemoteViewsAdapter$RemoteViewsFrameLayoutRefSet;->add(ILandroid/widget/RemoteViewsAdapter$RemoteViewsFrameLayout;)V
 Landroid/widget/RemoteViewsAdapter$RemoteViewsFrameLayoutRefSet;->notifyOnRemoteViewsLoaded(ILandroid/widget/RemoteViews;)V
 Landroid/widget/RemoteViewsAdapter$RemoteViewsFrameLayoutRefSet;->removeView(Landroid/widget/RemoteViewsAdapter$RemoteViewsFrameLayout;)V
-Landroid/widget/RemoteViewsAdapter$RemoteViewsIndexMetaData;
 Landroid/widget/RemoteViewsAdapter$RemoteViewsIndexMetaData;-><init>(Landroid/widget/RemoteViews;J)V
 Landroid/widget/RemoteViewsAdapter$RemoteViewsIndexMetaData;->itemId:J
 Landroid/widget/RemoteViewsAdapter$RemoteViewsIndexMetaData;->set(Landroid/widget/RemoteViews;J)V
 Landroid/widget/RemoteViewsAdapter$RemoteViewsIndexMetaData;->typeId:I
-Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;
 Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;-><init>()V
 Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;->count:I
 Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;->getLoadingTemplate(Landroid/content/Context;)Landroid/widget/RemoteViewsAdapter$LoadingViewTemplate;
@@ -89763,7 +83717,6 @@
 Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;->reset()V
 Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;->set(Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;)V
 Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;->viewTypeCount:I
-Landroid/widget/RemoteViewsAdapter;
 Landroid/widget/RemoteViewsAdapter;-><init>(Landroid/content/Context;Landroid/content/Intent;Landroid/widget/RemoteViewsAdapter$RemoteAdapterConnectionCallback;Z)V
 Landroid/widget/RemoteViewsAdapter;->DEFAULT_CACHE_SIZE:I
 Landroid/widget/RemoteViewsAdapter;->DEFAULT_LOADING_VIEW_HEIGHT:I
@@ -89801,7 +83754,6 @@
 Landroid/widget/RemoteViewsAdapter;->UNBIND_SERVICE_DELAY:I
 Landroid/widget/RemoteViewsAdapter;->updateRemoteViews(Lcom/android/internal/widget/IRemoteViewsFactory;IZ)V
 Landroid/widget/RemoteViewsAdapter;->updateTemporaryMetaData(Lcom/android/internal/widget/IRemoteViewsFactory;)V
-Landroid/widget/RemoteViewsListAdapter;
 Landroid/widget/RemoteViewsListAdapter;-><init>(Landroid/content/Context;Ljava/util/ArrayList;I)V
 Landroid/widget/RemoteViewsListAdapter;->init()V
 Landroid/widget/RemoteViewsListAdapter;->mContext:Landroid/content/Context;
@@ -89809,7 +83761,6 @@
 Landroid/widget/RemoteViewsListAdapter;->mViewTypeCount:I
 Landroid/widget/RemoteViewsListAdapter;->mViewTypes:Ljava/util/ArrayList;
 Landroid/widget/RemoteViewsListAdapter;->setViewsList(Ljava/util/ArrayList;)V
-Landroid/widget/RemoteViewsService$RemoteViewsFactoryAdapter;
 Landroid/widget/RemoteViewsService$RemoteViewsFactoryAdapter;-><init>(Landroid/widget/RemoteViewsService$RemoteViewsFactory;Z)V
 Landroid/widget/RemoteViewsService$RemoteViewsFactoryAdapter;->getCount()I
 Landroid/widget/RemoteViewsService$RemoteViewsFactoryAdapter;->getItemId(I)J
@@ -89835,7 +83786,6 @@
 Landroid/widget/ResourceCursorTreeAdapter;->mExpandedGroupLayout:I
 Landroid/widget/ResourceCursorTreeAdapter;->mInflater:Landroid/view/LayoutInflater;
 Landroid/widget/ResourceCursorTreeAdapter;->mLastChildLayout:I
-Landroid/widget/RtlSpacingHelper;
 Landroid/widget/RtlSpacingHelper;-><init>()V
 Landroid/widget/RtlSpacingHelper;->getEnd()I
 Landroid/widget/RtlSpacingHelper;->getLeft()I
@@ -89853,7 +83803,6 @@
 Landroid/widget/RtlSpacingHelper;->setDirection(Z)V
 Landroid/widget/RtlSpacingHelper;->setRelative(II)V
 Landroid/widget/RtlSpacingHelper;->UNDEFINED:I
-Landroid/widget/ScrollBarDrawable;
 Landroid/widget/ScrollBarDrawable;->drawThumb(Landroid/graphics/Canvas;Landroid/graphics/Rect;IIZ)V
 Landroid/widget/ScrollBarDrawable;->drawTrack(Landroid/graphics/Canvas;Landroid/graphics/Rect;Z)V
 Landroid/widget/ScrollBarDrawable;->getAlwaysDrawHorizontalTrack()Z
@@ -89881,7 +83830,6 @@
 Landroid/widget/ScrollBarDrawable;->setHorizontalTrackDrawable(Landroid/graphics/drawable/Drawable;)V
 Landroid/widget/ScrollBarDrawable;->setParameters(IIIZ)V
 Landroid/widget/ScrollBarDrawable;->setVerticalTrackDrawable(Landroid/graphics/drawable/Drawable;)V
-Landroid/widget/Scroller$ViscousFluidInterpolator;
 Landroid/widget/Scroller$ViscousFluidInterpolator;-><init>()V
 Landroid/widget/Scroller$ViscousFluidInterpolator;->viscousFluid(F)F
 Landroid/widget/Scroller$ViscousFluidInterpolator;->VISCOUS_FLUID_NORMALIZE:F
@@ -89924,7 +83872,6 @@
 Landroid/widget/Scroller;->SPLINE_POSITION:[F
 Landroid/widget/Scroller;->SPLINE_TIME:[F
 Landroid/widget/Scroller;->START_TENSION:F
-Landroid/widget/ScrollView$SavedState;
 Landroid/widget/ScrollView$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/ScrollView$SavedState;-><init>(Landroid/os/Parcelable;)V
 Landroid/widget/ScrollView$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -89967,12 +83914,10 @@
 Landroid/widget/ScrollView;->scrollToChild(Landroid/view/View;)V
 Landroid/widget/ScrollView;->scrollToChildRect(Landroid/graphics/Rect;Z)Z
 Landroid/widget/ScrollView;->TAG:Ljava/lang/String;
-Landroid/widget/SearchView$SavedState;
 Landroid/widget/SearchView$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/SearchView$SavedState;-><init>(Landroid/os/Parcelable;)V
 Landroid/widget/SearchView$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/widget/SearchView$SavedState;->isIconified:Z
-Landroid/widget/SearchView$SearchAutoComplete;
 Landroid/widget/SearchView$SearchAutoComplete;-><init>(Landroid/content/Context;)V
 Landroid/widget/SearchView$SearchAutoComplete;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
 Landroid/widget/SearchView$SearchAutoComplete;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
@@ -89985,7 +83930,6 @@
 Landroid/widget/SearchView$SearchAutoComplete;->setImeVisibility(Z)V
 Landroid/widget/SearchView$SearchAutoComplete;->setSearchView(Landroid/widget/SearchView;)V
 Landroid/widget/SearchView$SearchAutoComplete;->showSoftInputIfNecessary()V
-Landroid/widget/SearchView$UpdatableTouchDelegate;
 Landroid/widget/SearchView$UpdatableTouchDelegate;-><init>(Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/view/View;)V
 Landroid/widget/SearchView$UpdatableTouchDelegate;->mActualBounds:Landroid/graphics/Rect;
 Landroid/widget/SearchView$UpdatableTouchDelegate;->mDelegateTargeted:Z
@@ -90068,7 +84012,6 @@
 Landroid/widget/SeekBar;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
 Landroid/widget/SeekBar;->onStartTrackingTouch()V
 Landroid/widget/SeekBar;->onStopTrackingTouch()V
-Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;
 Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;-><init>(Landroid/widget/TextView;)V
 Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;->countWordsBackward(I)I
 Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;->countWordsForward(I)I
@@ -90088,18 +84031,14 @@
 Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;->mText:Ljava/lang/String;
 Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;->mTokenIterator:Ljava/text/BreakIterator;
 Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;->PATTERN_WHITESPACE:Ljava/util/regex/Pattern;
-Landroid/widget/SelectionActionModeHelper$SelectionResult;
 Landroid/widget/SelectionActionModeHelper$SelectionResult;-><init>(IILandroid/view/textclassifier/TextClassification;Landroid/view/textclassifier/TextSelection;)V
 Landroid/widget/SelectionActionModeHelper$SelectionResult;->mClassification:Landroid/view/textclassifier/TextClassification;
 Landroid/widget/SelectionActionModeHelper$SelectionResult;->mEnd:I
 Landroid/widget/SelectionActionModeHelper$SelectionResult;->mSelection:Landroid/view/textclassifier/TextSelection;
 Landroid/widget/SelectionActionModeHelper$SelectionResult;->mStart:I
-Landroid/widget/SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable;
-Landroid/widget/SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable;-><init>()V
 Landroid/widget/SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable;->flush()V
 Landroid/widget/SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable;->mIsPending:Z
 Landroid/widget/SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable;->schedule(I)V
-Landroid/widget/SelectionActionModeHelper$SelectionTracker;
 Landroid/widget/SelectionActionModeHelper$SelectionTracker;-><init>(Landroid/widget/TextView;)V
 Landroid/widget/SelectionActionModeHelper$SelectionTracker;->isSelectionStarted()Z
 Landroid/widget/SelectionActionModeHelper$SelectionTracker;->mAllowReset:Z
@@ -90120,9 +84059,7 @@
 Landroid/widget/SelectionActionModeHelper$SelectionTracker;->onSmartSelection(Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
 Landroid/widget/SelectionActionModeHelper$SelectionTracker;->onTextChanged(IILandroid/view/textclassifier/TextClassification;)V
 Landroid/widget/SelectionActionModeHelper$SelectionTracker;->resetSelection(ILandroid/widget/Editor;)Z
-Landroid/widget/SelectionActionModeHelper$TextClassificationAsyncTask;
 Landroid/widget/SelectionActionModeHelper$TextClassificationAsyncTask;-><init>(Landroid/widget/TextView;ILjava/util/function/Supplier;Ljava/util/function/Consumer;Ljava/util/function/Supplier;)V
-Landroid/widget/SelectionActionModeHelper$TextClassificationAsyncTask;->doInBackground([[Ljava/lang/Void;)Landroid/widget/SelectionActionModeHelper$SelectionResult;
 Landroid/widget/SelectionActionModeHelper$TextClassificationAsyncTask;->mOriginalText:Ljava/lang/String;
 Landroid/widget/SelectionActionModeHelper$TextClassificationAsyncTask;->mSelectionResultCallback:Ljava/util/function/Consumer;
 Landroid/widget/SelectionActionModeHelper$TextClassificationAsyncTask;->mSelectionResultSupplier:Ljava/util/function/Supplier;
@@ -90131,7 +84068,6 @@
 Landroid/widget/SelectionActionModeHelper$TextClassificationAsyncTask;->mTimeOutResultSupplier:Ljava/util/function/Supplier;
 Landroid/widget/SelectionActionModeHelper$TextClassificationAsyncTask;->onPostExecute(Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
 Landroid/widget/SelectionActionModeHelper$TextClassificationAsyncTask;->onTimeOut()V
-Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;
 Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;-><init>(Landroid/content/Context;Ljava/util/function/Supplier;Ljava/lang/CharSequence;IILandroid/os/LocaleList;)V
 Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->classifyText()Landroid/widget/SelectionActionModeHelper$SelectionResult;
 Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->getOriginalSelection()Landroid/widget/SelectionActionModeHelper$SelectionResult;
@@ -90158,7 +84094,6 @@
 Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->suggestSelection()Landroid/widget/SelectionActionModeHelper$SelectionResult;
 Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->trimText()V
 Landroid/widget/SelectionActionModeHelper$TextClassificationHelper;->TRIM_DELTA:I
-Landroid/widget/SelectionActionModeHelper;
 Landroid/widget/SelectionActionModeHelper;-><init>(Landroid/widget/Editor;)V
 Landroid/widget/SelectionActionModeHelper;->cancelAsyncTask()V
 Landroid/widget/SelectionActionModeHelper;->cancelSmartSelectAnimation()V
@@ -90195,11 +84130,7 @@
 Landroid/widget/SelectionActionModeHelper;->startSelectionActionMode(Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
 Landroid/widget/SelectionActionModeHelper;->startSelectionActionModeAsync(Z)V
 Landroid/widget/SelectionActionModeHelper;->startSelectionActionModeWithSmartSelectAnimation(Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
-Landroid/widget/ShareActionProvider$ShareActivityChooserModelPolicy;
-Landroid/widget/ShareActionProvider$ShareActivityChooserModelPolicy;-><init>()V
 Landroid/widget/ShareActionProvider$ShareActivityChooserModelPolicy;->onChooseActivity(Landroid/widget/ActivityChooserModel;Landroid/content/Intent;)Z
-Landroid/widget/ShareActionProvider$ShareMenuItemOnMenuItemClickListener;
-Landroid/widget/ShareActionProvider$ShareMenuItemOnMenuItemClickListener;-><init>()V
 Landroid/widget/ShareActionProvider;->DEFAULT_INITIAL_ACTIVITY_COUNT:I
 Landroid/widget/ShareActionProvider;->mContext:Landroid/content/Context;
 Landroid/widget/ShareActionProvider;->mMaxShownActivityCount:I
@@ -90208,8 +84139,6 @@
 Landroid/widget/ShareActionProvider;->mOnShareTargetSelectedListener:Landroid/widget/ShareActionProvider$OnShareTargetSelectedListener;
 Landroid/widget/ShareActionProvider;->mShareHistoryFileName:Ljava/lang/String;
 Landroid/widget/ShareActionProvider;->setActivityChooserPolicyIfNeeded()V
-Landroid/widget/SimpleAdapter$SimpleFilter;
-Landroid/widget/SimpleAdapter$SimpleFilter;-><init>()V
 Landroid/widget/SimpleAdapter;->bindView(ILandroid/view/View;)V
 Landroid/widget/SimpleAdapter;->createViewFromResource(Landroid/view/LayoutInflater;ILandroid/view/View;Landroid/view/ViewGroup;I)Landroid/view/View;
 Landroid/widget/SimpleAdapter;->mDropDownInflater:Landroid/view/LayoutInflater;
@@ -90248,8 +84177,6 @@
 Landroid/widget/SimpleExpandableListAdapter;->mGroupTo:[I
 Landroid/widget/SimpleExpandableListAdapter;->mInflater:Landroid/view/LayoutInflater;
 Landroid/widget/SimpleExpandableListAdapter;->mLastChildLayout:I
-Landroid/widget/SlidingDrawer$DrawerToggler;
-Landroid/widget/SlidingDrawer$DrawerToggler;-><init>()V
 Landroid/widget/SlidingDrawer;->animateClose(IZ)V
 Landroid/widget/SlidingDrawer;->animateOpen(IZ)V
 Landroid/widget/SlidingDrawer;->ANIMATION_FRAME_DURATION:I
@@ -90298,10 +84225,8 @@
 Landroid/widget/SlidingDrawer;->stopTracking(Z)V
 Landroid/widget/SlidingDrawer;->TAP_THRESHOLD:I
 Landroid/widget/SlidingDrawer;->VELOCITY_UNITS:I
-Landroid/widget/SmartSelectSprite$RectangleList$DisplayType;
 Landroid/widget/SmartSelectSprite$RectangleList$DisplayType;->POLYGON:I
 Landroid/widget/SmartSelectSprite$RectangleList$DisplayType;->RECTANGLES:I
-Landroid/widget/SmartSelectSprite$RectangleList;
 Landroid/widget/SmartSelectSprite$RectangleList;-><init>(Ljava/util/List;)V
 Landroid/widget/SmartSelectSprite$RectangleList;->drawPolygon(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
 Landroid/widget/SmartSelectSprite$RectangleList;->drawRectangles(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V
@@ -90316,17 +84241,14 @@
 Landroid/widget/SmartSelectSprite$RectangleList;->setDisplayType(I)V
 Landroid/widget/SmartSelectSprite$RectangleList;->setLeftBoundary(F)V
 Landroid/widget/SmartSelectSprite$RectangleList;->setRightBoundary(F)V
-Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;
 Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;-><init>(Landroid/graphics/RectF;I)V
 Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;->getRectangle()Landroid/graphics/RectF;
 Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;->getTextSelectionLayout()I
 Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;->mRectangle:Landroid/graphics/RectF;
 Landroid/widget/SmartSelectSprite$RectangleWithTextSelectionLayout;->mTextSelectionLayout:I
-Landroid/widget/SmartSelectSprite$RoundedRectangleShape$ExpansionDirection;
 Landroid/widget/SmartSelectSprite$RoundedRectangleShape$ExpansionDirection;->CENTER:I
 Landroid/widget/SmartSelectSprite$RoundedRectangleShape$ExpansionDirection;->LEFT:I
 Landroid/widget/SmartSelectSprite$RoundedRectangleShape$ExpansionDirection;->RIGHT:I
-Landroid/widget/SmartSelectSprite$RoundedRectangleShape;
 Landroid/widget/SmartSelectSprite$RoundedRectangleShape;-><init>(Landroid/graphics/RectF;IZ)V
 Landroid/widget/SmartSelectSprite$RoundedRectangleShape;->getAdjustedCornerRadius()F
 Landroid/widget/SmartSelectSprite$RoundedRectangleShape;->getBoundingWidth()F
@@ -90346,7 +84268,6 @@
 Landroid/widget/SmartSelectSprite$RoundedRectangleShape;->setEndBoundary(F)V
 Landroid/widget/SmartSelectSprite$RoundedRectangleShape;->setRoundRatio(F)V
 Landroid/widget/SmartSelectSprite$RoundedRectangleShape;->setStartBoundary(F)V
-Landroid/widget/SmartSelectSprite;
 Landroid/widget/SmartSelectSprite;-><init>(Landroid/content/Context;ILjava/lang/Runnable;)V
 Landroid/widget/SmartSelectSprite;->cancelAnimation()V
 Landroid/widget/SmartSelectSprite;->contains(Landroid/graphics/RectF;Landroid/graphics/PointF;)Z
@@ -90369,8 +84290,6 @@
 Landroid/widget/SmartSelectSprite;->setUpAnimatorListener(Landroid/animation/Animator;Ljava/lang/Runnable;)V
 Landroid/widget/SmartSelectSprite;->startAnimation(Landroid/graphics/PointF;Ljava/util/List;Ljava/lang/Runnable;)V
 Landroid/widget/Space;->getDefaultSize2(II)I
-Landroid/widget/SpellChecker$SpellParser;
-Landroid/widget/SpellChecker$SpellParser;-><init>()V
 Landroid/widget/SpellChecker$SpellParser;->isFinished()Z
 Landroid/widget/SpellChecker$SpellParser;->mRange:Ljava/lang/Object;
 Landroid/widget/SpellChecker$SpellParser;->parse()V
@@ -90379,7 +84298,6 @@
 Landroid/widget/SpellChecker$SpellParser;->removeSpansAt(Landroid/text/Editable;I[Ljava/lang/Object;)V
 Landroid/widget/SpellChecker$SpellParser;->setRangeSpan(Landroid/text/Editable;II)V
 Landroid/widget/SpellChecker$SpellParser;->stop()V
-Landroid/widget/SpellChecker;
 Landroid/widget/SpellChecker;-><init>(Landroid/widget/TextView;)V
 Landroid/widget/SpellChecker;->addSpellCheckSpan(Landroid/text/Editable;II)V
 Landroid/widget/SpellChecker;->AVERAGE_WORD_LENGTH:I
@@ -90418,8 +84336,6 @@
 Landroid/widget/SpellChecker;->TAG:Ljava/lang/String;
 Landroid/widget/SpellChecker;->USE_SPAN_RANGE:I
 Landroid/widget/SpellChecker;->WORD_ITERATOR_INTERVAL:I
-Landroid/widget/Spinner$DialogPopup;
-Landroid/widget/Spinner$DialogPopup;-><init>()V
 Landroid/widget/Spinner$DialogPopup;->dismiss()V
 Landroid/widget/Spinner$DialogPopup;->getBackground()Landroid/graphics/drawable/Drawable;
 Landroid/widget/Spinner$DialogPopup;->getHintText()Ljava/lang/CharSequence;
@@ -90434,24 +84350,19 @@
 Landroid/widget/Spinner$DialogPopup;->setPromptText(Ljava/lang/CharSequence;)V
 Landroid/widget/Spinner$DialogPopup;->setVerticalOffset(I)V
 Landroid/widget/Spinner$DialogPopup;->show(II)V
-Landroid/widget/Spinner$DropDownAdapter;
 Landroid/widget/Spinner$DropDownAdapter;-><init>(Landroid/widget/SpinnerAdapter;Landroid/content/res/Resources$Theme;)V
 Landroid/widget/Spinner$DropDownAdapter;->mAdapter:Landroid/widget/SpinnerAdapter;
 Landroid/widget/Spinner$DropDownAdapter;->mListAdapter:Landroid/widget/ListAdapter;
-Landroid/widget/Spinner$DropdownPopup;
-Landroid/widget/Spinner$DropdownPopup;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V
 Landroid/widget/Spinner$DropdownPopup;->computeContentWidth()V
 Landroid/widget/Spinner$DropdownPopup;->getHintText()Ljava/lang/CharSequence;
 Landroid/widget/Spinner$DropdownPopup;->mAdapter:Landroid/widget/ListAdapter;
 Landroid/widget/Spinner$DropdownPopup;->mHintText:Ljava/lang/CharSequence;
 Landroid/widget/Spinner$DropdownPopup;->setPromptText(Ljava/lang/CharSequence;)V
 Landroid/widget/Spinner$DropdownPopup;->show(II)V
-Landroid/widget/Spinner$SavedState;
 Landroid/widget/Spinner$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/Spinner$SavedState;-><init>(Landroid/os/Parcelable;)V
 Landroid/widget/Spinner$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
 Landroid/widget/Spinner$SavedState;->showDropdown:Z
-Landroid/widget/Spinner$SpinnerPopup;
 Landroid/widget/Spinner$SpinnerPopup;->dismiss()V
 Landroid/widget/Spinner$SpinnerPopup;->getBackground()Landroid/graphics/drawable/Drawable;
 Landroid/widget/Spinner$SpinnerPopup;->getHintText()Ljava/lang/CharSequence;
@@ -90477,7 +84388,6 @@
 Landroid/widget/Spinner;->onInitializeAccessibilityNodeInfoInternal(Landroid/view/accessibility/AccessibilityNodeInfo;)V
 Landroid/widget/Spinner;->setUpChild(Landroid/view/View;Z)V
 Landroid/widget/Spinner;->TAG:Ljava/lang/String;
-Landroid/widget/StackView$HolographicHelper;
 Landroid/widget/StackView$HolographicHelper;-><init>(Landroid/content/Context;)V
 Landroid/widget/StackView$HolographicHelper;->CLICK_FEEDBACK:I
 Landroid/widget/StackView$HolographicHelper;->createClickOutline(Landroid/view/View;I)Landroid/graphics/Bitmap;
@@ -90495,9 +84405,6 @@
 Landroid/widget/StackView$HolographicHelper;->mSmallBlurMaskFilter:Landroid/graphics/BlurMaskFilter;
 Landroid/widget/StackView$HolographicHelper;->mTmpXY:[I
 Landroid/widget/StackView$HolographicHelper;->RES_OUT:I
-Landroid/widget/StackView$LayoutParams;
-Landroid/widget/StackView$LayoutParams;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-Landroid/widget/StackView$LayoutParams;-><init>(Landroid/view/View;)V
 Landroid/widget/StackView$LayoutParams;->getInvalidateRect()Landroid/graphics/Rect;
 Landroid/widget/StackView$LayoutParams;->globalInvalidateRect:Landroid/graphics/Rect;
 Landroid/widget/StackView$LayoutParams;->horizontalOffset:I
@@ -90511,7 +84418,6 @@
 Landroid/widget/StackView$LayoutParams;->setOffsets(II)V
 Landroid/widget/StackView$LayoutParams;->setVerticalOffset(I)V
 Landroid/widget/StackView$LayoutParams;->verticalOffset:I
-Landroid/widget/StackView$StackFrame;
 Landroid/widget/StackView$StackFrame;-><init>(Landroid/content/Context;)V
 Landroid/widget/StackView$StackFrame;->cancelSliderAnimator()Z
 Landroid/widget/StackView$StackFrame;->cancelTransformAnimator()Z
@@ -90519,9 +84425,6 @@
 Landroid/widget/StackView$StackFrame;->setTransformAnimator(Landroid/animation/ObjectAnimator;)V
 Landroid/widget/StackView$StackFrame;->sliderAnimator:Ljava/lang/ref/WeakReference;
 Landroid/widget/StackView$StackFrame;->transformAnimator:Ljava/lang/ref/WeakReference;
-Landroid/widget/StackView$StackSlider;
-Landroid/widget/StackView$StackSlider;-><init>()V
-Landroid/widget/StackView$StackSlider;-><init>(Landroid/widget/StackView$StackSlider;)V
 Landroid/widget/StackView$StackSlider;->BEGINNING_OF_STACK_MODE:I
 Landroid/widget/StackView$StackSlider;->cubic(F)F
 Landroid/widget/StackView$StackSlider;->END_OF_STACK_MODE:I
@@ -90666,41 +84569,26 @@
 Landroid/widget/Switch;->TOUCH_MODE_DOWN:I
 Landroid/widget/Switch;->TOUCH_MODE_DRAGGING:I
 Landroid/widget/Switch;->TOUCH_MODE_IDLE:I
-Landroid/widget/TabHost$ContentStrategy;
 Landroid/widget/TabHost$ContentStrategy;->getContentView()Landroid/view/View;
 Landroid/widget/TabHost$ContentStrategy;->tabClosed()V
-Landroid/widget/TabHost$FactoryContentStrategy;
-Landroid/widget/TabHost$FactoryContentStrategy;-><init>(Ljava/lang/CharSequence;Landroid/widget/TabHost$TabContentFactory;)V
 Landroid/widget/TabHost$FactoryContentStrategy;->getContentView()Landroid/view/View;
 Landroid/widget/TabHost$FactoryContentStrategy;->mFactory:Landroid/widget/TabHost$TabContentFactory;
 Landroid/widget/TabHost$FactoryContentStrategy;->mTabContent:Landroid/view/View;
 Landroid/widget/TabHost$FactoryContentStrategy;->mTag:Ljava/lang/CharSequence;
 Landroid/widget/TabHost$FactoryContentStrategy;->tabClosed()V
-Landroid/widget/TabHost$IndicatorStrategy;
 Landroid/widget/TabHost$IndicatorStrategy;->createIndicatorView()Landroid/view/View;
-Landroid/widget/TabHost$IntentContentStrategy;
-Landroid/widget/TabHost$IntentContentStrategy;-><init>(Ljava/lang/String;Landroid/content/Intent;)V
 Landroid/widget/TabHost$IntentContentStrategy;->mIntent:Landroid/content/Intent;
 Landroid/widget/TabHost$IntentContentStrategy;->mLaunchedView:Landroid/view/View;
 Landroid/widget/TabHost$IntentContentStrategy;->mTag:Ljava/lang/String;
-Landroid/widget/TabHost$LabelAndIconIndicatorStrategy;
-Landroid/widget/TabHost$LabelAndIconIndicatorStrategy;-><init>(Ljava/lang/CharSequence;Landroid/graphics/drawable/Drawable;)V
 Landroid/widget/TabHost$LabelAndIconIndicatorStrategy;->createIndicatorView()Landroid/view/View;
 Landroid/widget/TabHost$LabelAndIconIndicatorStrategy;->mIcon:Landroid/graphics/drawable/Drawable;
 Landroid/widget/TabHost$LabelAndIconIndicatorStrategy;->mLabel:Ljava/lang/CharSequence;
-Landroid/widget/TabHost$LabelIndicatorStrategy;
-Landroid/widget/TabHost$LabelIndicatorStrategy;-><init>(Ljava/lang/CharSequence;)V
 Landroid/widget/TabHost$LabelIndicatorStrategy;->createIndicatorView()Landroid/view/View;
 Landroid/widget/TabHost$LabelIndicatorStrategy;->mLabel:Ljava/lang/CharSequence;
-Landroid/widget/TabHost$TabSpec;-><init>(Ljava/lang/String;)V
 Landroid/widget/TabHost$TabSpec;->mTag:Ljava/lang/String;
-Landroid/widget/TabHost$ViewIdContentStrategy;
-Landroid/widget/TabHost$ViewIdContentStrategy;-><init>(I)V
 Landroid/widget/TabHost$ViewIdContentStrategy;->getContentView()Landroid/view/View;
 Landroid/widget/TabHost$ViewIdContentStrategy;->mView:Landroid/view/View;
 Landroid/widget/TabHost$ViewIdContentStrategy;->tabClosed()V
-Landroid/widget/TabHost$ViewIndicatorStrategy;
-Landroid/widget/TabHost$ViewIndicatorStrategy;-><init>(Landroid/view/View;)V
 Landroid/widget/TabHost$ViewIndicatorStrategy;->createIndicatorView()Landroid/view/View;
 Landroid/widget/TabHost$ViewIndicatorStrategy;->mView:Landroid/view/View;
 Landroid/widget/TabHost;->getTabWidgetLocation()I
@@ -90717,8 +84605,6 @@
 Landroid/widget/TabHost;->TABWIDGET_LOCATION_LEFT:I
 Landroid/widget/TabHost;->TABWIDGET_LOCATION_RIGHT:I
 Landroid/widget/TabHost;->TABWIDGET_LOCATION_TOP:I
-Landroid/widget/TableLayout$PassThroughHierarchyChangeListener;
-Landroid/widget/TableLayout$PassThroughHierarchyChangeListener;-><init>()V
 Landroid/widget/TableLayout$PassThroughHierarchyChangeListener;->mOnHierarchyChangeListener:Landroid/view/ViewGroup$OnHierarchyChangeListener;
 Landroid/widget/TableLayout;->findLargestCells(II)V
 Landroid/widget/TableLayout;->initTableLayout()V
@@ -90737,8 +84623,6 @@
 Landroid/widget/TableLayout;->requestRowsLayout()V
 Landroid/widget/TableLayout;->shrinkAndStretchColumns(I)V
 Landroid/widget/TableLayout;->trackCollapsedColumns(Landroid/view/View;)V
-Landroid/widget/TableRow$ChildrenTracker;
-Landroid/widget/TableRow$ChildrenTracker;-><init>()V
 Landroid/widget/TableRow$ChildrenTracker;->listener:Landroid/view/ViewGroup$OnHierarchyChangeListener;
 Landroid/widget/TableRow$ChildrenTracker;->setOnHierarchyChangeListener(Landroid/view/ViewGroup$OnHierarchyChangeListener;)V
 Landroid/widget/TableRow$LayoutParams;->encodeProperties(Landroid/view/ViewHierarchyEncoder;)V
@@ -90760,10 +84644,7 @@
 Landroid/widget/TableRow;->mNumColumns:I
 Landroid/widget/TableRow;->setColumnCollapsed(IZ)V
 Landroid/widget/TableRow;->setColumnsWidthConstraints([I)V
-Landroid/widget/TabWidget$OnTabSelectionChanged;
 Landroid/widget/TabWidget$OnTabSelectionChanged;->onTabSelectionChanged(IZ)V
-Landroid/widget/TabWidget$TabClickListener;
-Landroid/widget/TabWidget$TabClickListener;-><init>(I)V
 Landroid/widget/TabWidget$TabClickListener;->mTabIndex:I
 Landroid/widget/TabWidget;->mBounds:Landroid/graphics/Rect;
 Landroid/widget/TabWidget;->measureChildBeforeLayout(Landroid/view/View;IIIII)V
@@ -90775,8 +84656,6 @@
 Landroid/widget/TabWidget;->mSelectionChangedListener:Landroid/widget/TabWidget$OnTabSelectionChanged;
 Landroid/widget/TabWidget;->mStripMoved:Z
 Landroid/widget/TabWidget;->onInitializeAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)V
-Landroid/widget/TextClock$FormatChangeObserver;
-Landroid/widget/TextClock$FormatChangeObserver;-><init>(Landroid/os/Handler;)V
 Landroid/widget/TextClock;->abc(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
 Landroid/widget/TextClock;->chooseFormat()V
 Landroid/widget/TextClock;->createTime(Ljava/lang/String;)V
@@ -90806,9 +84685,7 @@
 Landroid/widget/TextClock;->setShowCurrentUserTime(Z)V
 Landroid/widget/TextClock;->unregisterObserver()V
 Landroid/widget/TextClock;->unregisterReceiver()V
-Landroid/widget/TextInputTimePickerView$OnValueTypedListener;
 Landroid/widget/TextInputTimePickerView$OnValueTypedListener;->onValueChanged(II)V
-Landroid/widget/TextInputTimePickerView;
 Landroid/widget/TextInputTimePickerView;-><init>(Landroid/content/Context;)V
 Landroid/widget/TextInputTimePickerView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/widget/TextInputTimePickerView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
@@ -90839,12 +84716,7 @@
 Landroid/widget/TextInputTimePickerView;->updateSeparator(Ljava/lang/String;)V
 Landroid/widget/TextInputTimePickerView;->updateTextInputValues(IIIZZ)V
 Landroid/widget/TextInputTimePickerView;->validateInput()Z
-Landroid/widget/TextView$AutoSizeTextType;
-Landroid/widget/TextView$BufferType;-><init>()V
-Landroid/widget/TextView$ChangeWatcher;
-Landroid/widget/TextView$ChangeWatcher;-><init>()V
 Landroid/widget/TextView$ChangeWatcher;->mBeforeText:Ljava/lang/CharSequence;
-Landroid/widget/TextView$CharWrapper;
 Landroid/widget/TextView$CharWrapper;-><init>([CII)V
 Landroid/widget/TextView$CharWrapper;->drawText(Landroid/graphics/BaseCanvas;IIFFLandroid/graphics/Paint;)V
 Landroid/widget/TextView$CharWrapper;->drawTextRun(Landroid/graphics/BaseCanvas;IIIIFFZLandroid/graphics/Paint;)V
@@ -90856,7 +84728,6 @@
 Landroid/widget/TextView$CharWrapper;->mLength:I
 Landroid/widget/TextView$CharWrapper;->mStart:I
 Landroid/widget/TextView$CharWrapper;->set([CII)V
-Landroid/widget/TextView$Drawables;
 Landroid/widget/TextView$Drawables;-><init>(Landroid/content/Context;)V
 Landroid/widget/TextView$Drawables;->applyErrorDrawableIfNeeded(I)V
 Landroid/widget/TextView$Drawables;->BOTTOM:I
@@ -90901,7 +84772,6 @@
 Landroid/widget/TextView$Drawables;->RIGHT:I
 Landroid/widget/TextView$Drawables;->setErrorDrawable(Landroid/graphics/drawable/Drawable;Landroid/widget/TextView;)V
 Landroid/widget/TextView$Drawables;->TOP:I
-Landroid/widget/TextView$Marquee;
 Landroid/widget/TextView$Marquee;-><init>(Landroid/widget/TextView;)V
 Landroid/widget/TextView$Marquee;->getGhostOffset()F
 Landroid/widget/TextView$Marquee;->getMaxFadeScroll()F
@@ -90942,7 +84812,6 @@
 Landroid/widget/TextView$SavedState;->frozenWithFocus:Z
 Landroid/widget/TextView$SavedState;->selEnd:I
 Landroid/widget/TextView$SavedState;->selStart:I
-Landroid/widget/TextView$TextAppearanceAttributes;
 Landroid/widget/TextView$TextAppearanceAttributes;-><init>()V
 Landroid/widget/TextView$TextAppearanceAttributes;->mAllCaps:Z
 Landroid/widget/TextView$TextAppearanceAttributes;->mElegant:Z
@@ -90967,7 +84836,6 @@
 Landroid/widget/TextView$TextAppearanceAttributes;->mTextColorLink:Landroid/content/res/ColorStateList;
 Landroid/widget/TextView$TextAppearanceAttributes;->mTextSize:I
 Landroid/widget/TextView$TextAppearanceAttributes;->mTypefaceIndex:I
-Landroid/widget/TextView$XMLTypefaceAttr;
 Landroid/widget/TextView;->ACCESSIBILITY_ACTION_PROCESS_TEXT_START_ID:I
 Landroid/widget/TextView;->ACCESSIBILITY_ACTION_SHARE:I
 Landroid/widget/TextView;->ANIMATED_SCROLL_GAP:I
@@ -91222,12 +85090,10 @@
 Landroid/widget/TextView;->VERY_WIDE:I
 Landroid/widget/TextView;->viewClicked(Landroid/view/inputmethod/InputMethodManager;)V
 Landroid/widget/TextView;->viewportToContentHorizontalOffset()I
-Landroid/widget/TextViewMetrics;
 Landroid/widget/TextViewMetrics;-><init>()V
 Landroid/widget/TextViewMetrics;->SUBTYPE_LONG_PRESS_DRAG_AND_DROP:I
 Landroid/widget/TextViewMetrics;->SUBTYPE_LONG_PRESS_OTHER:I
 Landroid/widget/TextViewMetrics;->SUBTYPE_LONG_PRESS_SELECTION:I
-Landroid/widget/TimePicker$AbstractTimePickerDelegate$SavedState;
 Landroid/widget/TimePicker$AbstractTimePickerDelegate$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/TimePicker$AbstractTimePickerDelegate$SavedState;-><init>(Landroid/os/Parcelable;IIZ)V
 Landroid/widget/TimePicker$AbstractTimePickerDelegate$SavedState;-><init>(Landroid/os/Parcelable;IIZI)V
@@ -91240,7 +85106,6 @@
 Landroid/widget/TimePicker$AbstractTimePickerDelegate$SavedState;->mHour:I
 Landroid/widget/TimePicker$AbstractTimePickerDelegate$SavedState;->mIs24HourMode:Z
 Landroid/widget/TimePicker$AbstractTimePickerDelegate$SavedState;->mMinute:I
-Landroid/widget/TimePicker$AbstractTimePickerDelegate;
 Landroid/widget/TimePicker$AbstractTimePickerDelegate;-><init>(Landroid/widget/TimePicker;Landroid/content/Context;)V
 Landroid/widget/TimePicker$AbstractTimePickerDelegate;->autofill(Landroid/view/autofill/AutofillValue;)V
 Landroid/widget/TimePicker$AbstractTimePickerDelegate;->getAutofillValue()Landroid/view/autofill/AutofillValue;
@@ -91253,7 +85118,6 @@
 Landroid/widget/TimePicker$AbstractTimePickerDelegate;->resetAutofilledValue()V
 Landroid/widget/TimePicker$AbstractTimePickerDelegate;->setAutoFillChangeListener(Landroid/widget/TimePicker$OnTimeChangedListener;)V
 Landroid/widget/TimePicker$AbstractTimePickerDelegate;->setOnTimeChangedListener(Landroid/widget/TimePicker$OnTimeChangedListener;)V
-Landroid/widget/TimePicker$TimePickerDelegate;
 Landroid/widget/TimePicker$TimePickerDelegate;->autofill(Landroid/view/autofill/AutofillValue;)V
 Landroid/widget/TimePicker$TimePickerDelegate;->dispatchPopulateAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)Z
 Landroid/widget/TimePicker$TimePickerDelegate;->getAmView()Landroid/view/View;
@@ -91277,13 +85141,10 @@
 Landroid/widget/TimePicker$TimePickerDelegate;->setMinute(I)V
 Landroid/widget/TimePicker$TimePickerDelegate;->setOnTimeChangedListener(Landroid/widget/TimePicker$OnTimeChangedListener;)V
 Landroid/widget/TimePicker$TimePickerDelegate;->validateInput()Z
-Landroid/widget/TimePicker$TimePickerMode;
 Landroid/widget/TimePicker;->dispatchPopulateAccessibilityEventInternal(Landroid/view/accessibility/AccessibilityEvent;)Z
 Landroid/widget/TimePicker;->getAmPmStrings(Landroid/content/Context;)[Ljava/lang/String;
 Landroid/widget/TimePicker;->LOG_TAG:Ljava/lang/String;
 Landroid/widget/TimePicker;->mMode:I
-Landroid/widget/Toast$Duration;
-Landroid/widget/Toast$TN;
 Landroid/widget/Toast$TN;-><init>(Ljava/lang/String;Landroid/os/Looper;)V
 Landroid/widget/Toast$TN;->cancel()V
 Landroid/widget/Toast$TN;->CANCEL:I
@@ -91314,8 +85175,6 @@
 Landroid/widget/ToggleButton;->NO_ALPHA:I
 Landroid/widget/ToggleButton;->syncTextState()V
 Landroid/widget/ToggleButton;->updateReferenceToIndicatorDrawable(Landroid/graphics/drawable/Drawable;)V
-Landroid/widget/Toolbar$ExpandedActionViewMenuPresenter;
-Landroid/widget/Toolbar$ExpandedActionViewMenuPresenter;-><init>()V
 Landroid/widget/Toolbar$ExpandedActionViewMenuPresenter;->collapseItemActionView(Lcom/android/internal/view/menu/MenuBuilder;Lcom/android/internal/view/menu/MenuItemImpl;)Z
 Landroid/widget/Toolbar$ExpandedActionViewMenuPresenter;->expandItemActionView(Lcom/android/internal/view/menu/MenuBuilder;Lcom/android/internal/view/menu/MenuItemImpl;)Z
 Landroid/widget/Toolbar$ExpandedActionViewMenuPresenter;->flagActionItems()Z
@@ -91334,7 +85193,6 @@
 Landroid/widget/Toolbar$LayoutParams;->EXPANDED:I
 Landroid/widget/Toolbar$LayoutParams;->mViewType:I
 Landroid/widget/Toolbar$LayoutParams;->SYSTEM:I
-Landroid/widget/Toolbar$SavedState;
 Landroid/widget/Toolbar$SavedState;-><init>(Landroid/os/Parcel;)V
 Landroid/widget/Toolbar$SavedState;-><init>(Landroid/os/Parcelable;)V
 Landroid/widget/Toolbar$SavedState;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -91414,13 +85272,8 @@
 Landroid/widget/Toolbar;->TAG:Ljava/lang/String;
 Landroid/widget/TwoLineListItem;->mText1:Landroid/widget/TextView;
 Landroid/widget/TwoLineListItem;->mText2:Landroid/widget/TextView;
-Landroid/widget/VideoView2$OnCustomActionListener;
 Landroid/widget/VideoView2$OnCustomActionListener;->onCustomAction(Ljava/lang/String;Landroid/os/Bundle;)V
-Landroid/widget/VideoView2$OnFullScreenRequestListener;
 Landroid/widget/VideoView2$OnFullScreenRequestListener;->onFullScreenRequest(Landroid/view/View;Z)V
-Landroid/widget/VideoView2$OnViewTypeChangedListener;
-Landroid/widget/VideoView2$ViewType;
-Landroid/widget/VideoView2;
 Landroid/widget/VideoView2;-><init>(Landroid/content/Context;)V
 Landroid/widget/VideoView2;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Landroid/widget/VideoView2;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
@@ -91501,8 +85354,6 @@
 Landroid/widget/ZoomButton;->mIsInLongpress:Z
 Landroid/widget/ZoomButton;->mRunnable:Ljava/lang/Runnable;
 Landroid/widget/ZoomButton;->mZoomSpeed:J
-Landroid/widget/ZoomButtonsController$Container;
-Landroid/widget/ZoomButtonsController$Container;-><init>(Landroid/content/Context;)V
 Landroid/widget/ZoomButtonsController;->createContainer()Landroid/widget/FrameLayout;
 Landroid/widget/ZoomButtonsController;->dismissControlsDelayed(I)V
 Landroid/widget/ZoomButtonsController;->findViewForTouch(II)Landroid/view/View;
@@ -91593,10 +85444,8 @@
 Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->SEPARATOR_BEFORE_NATIONAL_NUMBER:C
 Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->shouldAddSpaceAfterNationalPrefix:Z
 Lcom/android/i18n/phonenumbers/AsYouTypeFormatter;->STANDALONE_DIGIT_PATTERN:Ljava/util/regex/Pattern;
-Lcom/android/i18n/phonenumbers/MetadataSource;
 Lcom/android/i18n/phonenumbers/MetadataSource;->getMetadataForNonGeographicalRegion(I)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
 Lcom/android/i18n/phonenumbers/MetadataSource;->getMetadataForRegion(Ljava/lang/String;)Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneMetadata;
-Lcom/android/i18n/phonenumbers/NumberParseException$ErrorType;-><init>()V
 Lcom/android/i18n/phonenumbers/NumberParseException;->errorType:Lcom/android/i18n/phonenumbers/NumberParseException$ErrorType;
 Lcom/android/i18n/phonenumbers/NumberParseException;->message:Ljava/lang/String;
 Lcom/android/i18n/phonenumbers/Phonemetadata$NumberFormat;->domesticCarrierCodeFormattingRule_:Ljava/lang/String;
@@ -91680,7 +85529,6 @@
 Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->possibleLengthLocalOnly_:Ljava/util/List;
 Lcom/android/i18n/phonenumbers/Phonemetadata$PhoneNumberDesc;->possibleLength_:Ljava/util/List;
 Lcom/android/i18n/phonenumbers/Phonemetadata;-><init>()V
-Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;-><init>()V
 Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->countryCodeSource_:Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber$CountryCodeSource;
 Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->countryCode_:I
 Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;->extension_:Ljava/lang/String;
@@ -91702,12 +85550,7 @@
 Lcom/android/i18n/phonenumbers/PhoneNumberMatch;->number:Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;
 Lcom/android/i18n/phonenumbers/PhoneNumberMatch;->rawString:Ljava/lang/String;
 Lcom/android/i18n/phonenumbers/PhoneNumberMatch;->start:I
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency;-><init>()V
 Lcom/android/i18n/phonenumbers/PhoneNumberUtil$Leniency;->verify(Lcom/android/i18n/phonenumbers/Phonenumber$PhoneNumber;Ljava/lang/CharSequence;Lcom/android/i18n/phonenumbers/PhoneNumberUtil;)Z
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$MatchType;-><init>()V
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberFormat;-><init>()V
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$PhoneNumberType;-><init>()V
-Lcom/android/i18n/phonenumbers/PhoneNumberUtil$ValidationResult;-><init>()V
 Lcom/android/i18n/phonenumbers/PhoneNumberUtil;-><init>(Lcom/android/i18n/phonenumbers/MetadataSource;Ljava/util/Map;)V
 Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->ALL_PLUS_NUMBER_GROUPING_SYMBOLS:Ljava/util/Map;
 Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->ALPHA_MAPPINGS:Ljava/util/Map;
@@ -91812,7 +85655,6 @@
 Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->VALID_PUNCTUATION:Ljava/lang/String;
 Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->VALID_START_CHAR:Ljava/lang/String;
 Lcom/android/i18n/phonenumbers/PhoneNumberUtil;->VALID_START_CHAR_PATTERN:Ljava/util/regex/Pattern;
-Lcom/android/ims/ImsConfigListener$Stub$Proxy;
 Lcom/android/ims/ImsConfigListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/ImsConfigListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/ims/ImsConfigListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -91820,18 +85662,15 @@
 Lcom/android/ims/ImsConfigListener$Stub$Proxy;->onGetVideoQuality(II)V
 Lcom/android/ims/ImsConfigListener$Stub$Proxy;->onSetFeatureResponse(IIII)V
 Lcom/android/ims/ImsConfigListener$Stub$Proxy;->onSetVideoQuality(I)V
-Lcom/android/ims/ImsConfigListener$Stub;
 Lcom/android/ims/ImsConfigListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/ImsConfigListener;
 Lcom/android/ims/ImsConfigListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/ims/ImsConfigListener$Stub;->TRANSACTION_onGetFeatureResponse:I
 Lcom/android/ims/ImsConfigListener$Stub;->TRANSACTION_onGetVideoQuality:I
 Lcom/android/ims/ImsConfigListener$Stub;->TRANSACTION_onSetFeatureResponse:I
 Lcom/android/ims/ImsConfigListener$Stub;->TRANSACTION_onSetVideoQuality:I
-Lcom/android/ims/ImsConfigListener;
 Lcom/android/ims/ImsConfigListener;->onGetFeatureResponse(IIII)V
 Lcom/android/ims/ImsConfigListener;->onGetVideoQuality(II)V
 Lcom/android/ims/ImsConfigListener;->onSetVideoQuality(I)V
-Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;
 Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->accept(ILandroid/telephony/ims/ImsStreamMediaProfile;)V
 Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->close()V
@@ -91867,7 +85706,6 @@
 Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->stopDtmf()V
 Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->terminate(I)V
 Lcom/android/ims/internal/IImsCallSession$Stub$Proxy;->update(ILandroid/telephony/ims/ImsStreamMediaProfile;)V
-Lcom/android/ims/internal/IImsCallSession$Stub;
 Lcom/android/ims/internal/IImsCallSession$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_accept:I
 Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_close:I
@@ -91901,7 +85739,6 @@
 Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_stopDtmf:I
 Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_terminate:I
 Lcom/android/ims/internal/IImsCallSession$Stub;->TRANSACTION_update:I
-Lcom/android/ims/internal/IImsCallSession;
 Lcom/android/ims/internal/IImsCallSession;->accept(ILandroid/telephony/ims/ImsStreamMediaProfile;)V
 Lcom/android/ims/internal/IImsCallSession;->close()V
 Lcom/android/ims/internal/IImsCallSession;->deflect(Ljava/lang/String;)V
@@ -91934,7 +85771,6 @@
 Lcom/android/ims/internal/IImsCallSession;->stopDtmf()V
 Lcom/android/ims/internal/IImsCallSession;->terminate(I)V
 Lcom/android/ims/internal/IImsCallSession;->update(ILandroid/telephony/ims/ImsStreamMediaProfile;)V
-Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;
 Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionConferenceExtended(Lcom/android/ims/internal/IImsCallSession;Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
 Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionConferenceExtendFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
@@ -91972,7 +85808,6 @@
 Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->callSessionUssdMessageReceived(Lcom/android/ims/internal/IImsCallSession;ILjava/lang/String;)V
 Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/ims/internal/IImsCallSessionListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Lcom/android/ims/internal/IImsCallSessionListener$Stub;
 Lcom/android/ims/internal/IImsCallSessionListener$Stub;-><init>()V
 Lcom/android/ims/internal/IImsCallSessionListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsCallSessionListener;
 Lcom/android/ims/internal/IImsCallSessionListener$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -92010,7 +85845,6 @@
 Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionUpdateFailed:I
 Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionUpdateReceived:I
 Lcom/android/ims/internal/IImsCallSessionListener$Stub;->TRANSACTION_callSessionUssdMessageReceived:I
-Lcom/android/ims/internal/IImsCallSessionListener;
 Lcom/android/ims/internal/IImsCallSessionListener;->callSessionConferenceExtended(Lcom/android/ims/internal/IImsCallSession;Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
 Lcom/android/ims/internal/IImsCallSessionListener;->callSessionConferenceExtendFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
 Lcom/android/ims/internal/IImsCallSessionListener;->callSessionConferenceExtendReceived(Lcom/android/ims/internal/IImsCallSession;Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
@@ -92023,7 +85857,6 @@
 Lcom/android/ims/internal/IImsCallSessionListener;->callSessionUpdateFailed(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsReasonInfo;)V
 Lcom/android/ims/internal/IImsCallSessionListener;->callSessionUpdateReceived(Lcom/android/ims/internal/IImsCallSession;Landroid/telephony/ims/ImsCallProfile;)V
 Lcom/android/ims/internal/IImsCallSessionListener;->callSessionUssdMessageReceived(Lcom/android/ims/internal/IImsCallSession;ILjava/lang/String;)V
-Lcom/android/ims/internal/IImsConfig$Stub$Proxy;
 Lcom/android/ims/internal/IImsConfig$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/IImsConfig$Stub$Proxy;->getFeatureValue(IILcom/android/ims/ImsConfigListener;)V
 Lcom/android/ims/internal/IImsConfig$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -92036,7 +85869,6 @@
 Lcom/android/ims/internal/IImsConfig$Stub$Proxy;->setProvisionedStringValue(ILjava/lang/String;)I
 Lcom/android/ims/internal/IImsConfig$Stub$Proxy;->setProvisionedValue(II)I
 Lcom/android/ims/internal/IImsConfig$Stub$Proxy;->setVideoQuality(ILcom/android/ims/ImsConfigListener;)V
-Lcom/android/ims/internal/IImsConfig$Stub;
 Lcom/android/ims/internal/IImsConfig$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsConfig;
 Lcom/android/ims/internal/IImsConfig$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/ims/internal/IImsConfig$Stub;->TRANSACTION_getFeatureValue:I
@@ -92048,7 +85880,6 @@
 Lcom/android/ims/internal/IImsConfig$Stub;->TRANSACTION_setProvisionedStringValue:I
 Lcom/android/ims/internal/IImsConfig$Stub;->TRANSACTION_setProvisionedValue:I
 Lcom/android/ims/internal/IImsConfig$Stub;->TRANSACTION_setVideoQuality:I
-Lcom/android/ims/internal/IImsConfig;
 Lcom/android/ims/internal/IImsConfig;->getFeatureValue(IILcom/android/ims/ImsConfigListener;)V
 Lcom/android/ims/internal/IImsConfig;->getProvisionedStringValue(I)Ljava/lang/String;
 Lcom/android/ims/internal/IImsConfig;->getProvisionedValue(I)I
@@ -92058,60 +85889,47 @@
 Lcom/android/ims/internal/IImsConfig;->setProvisionedStringValue(ILjava/lang/String;)I
 Lcom/android/ims/internal/IImsConfig;->setProvisionedValue(II)I
 Lcom/android/ims/internal/IImsConfig;->setVideoQuality(ILcom/android/ims/ImsConfigListener;)V
-Lcom/android/ims/internal/IImsEcbm$Stub$Proxy;
 Lcom/android/ims/internal/IImsEcbm$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/IImsEcbm$Stub$Proxy;->exitEmergencyCallbackMode()V
 Lcom/android/ims/internal/IImsEcbm$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/ims/internal/IImsEcbm$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/ims/internal/IImsEcbm$Stub$Proxy;->setListener(Lcom/android/ims/internal/IImsEcbmListener;)V
-Lcom/android/ims/internal/IImsEcbm$Stub;
 Lcom/android/ims/internal/IImsEcbm$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsEcbm;
 Lcom/android/ims/internal/IImsEcbm$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/ims/internal/IImsEcbm$Stub;->TRANSACTION_exitEmergencyCallbackMode:I
 Lcom/android/ims/internal/IImsEcbm$Stub;->TRANSACTION_setListener:I
-Lcom/android/ims/internal/IImsEcbm;
 Lcom/android/ims/internal/IImsEcbm;->exitEmergencyCallbackMode()V
 Lcom/android/ims/internal/IImsEcbm;->setListener(Lcom/android/ims/internal/IImsEcbmListener;)V
-Lcom/android/ims/internal/IImsEcbmListener$Stub$Proxy;
 Lcom/android/ims/internal/IImsEcbmListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/IImsEcbmListener$Stub$Proxy;->enteredECBM()V
 Lcom/android/ims/internal/IImsEcbmListener$Stub$Proxy;->exitedECBM()V
 Lcom/android/ims/internal/IImsEcbmListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/ims/internal/IImsEcbmListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Lcom/android/ims/internal/IImsEcbmListener$Stub;
 Lcom/android/ims/internal/IImsEcbmListener$Stub;-><init>()V
 Lcom/android/ims/internal/IImsEcbmListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsEcbmListener;
 Lcom/android/ims/internal/IImsEcbmListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/ims/internal/IImsEcbmListener$Stub;->TRANSACTION_enteredECBM:I
 Lcom/android/ims/internal/IImsEcbmListener$Stub;->TRANSACTION_exitedECBM:I
-Lcom/android/ims/internal/IImsEcbmListener;
 Lcom/android/ims/internal/IImsEcbmListener;->enteredECBM()V
 Lcom/android/ims/internal/IImsEcbmListener;->exitedECBM()V
-Lcom/android/ims/internal/IImsExternalCallStateListener$Stub$Proxy;
 Lcom/android/ims/internal/IImsExternalCallStateListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/IImsExternalCallStateListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/ims/internal/IImsExternalCallStateListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/ims/internal/IImsExternalCallStateListener$Stub$Proxy;->onImsExternalCallStateUpdate(Ljava/util/List;)V
-Lcom/android/ims/internal/IImsExternalCallStateListener$Stub;
 Lcom/android/ims/internal/IImsExternalCallStateListener$Stub;-><init>()V
 Lcom/android/ims/internal/IImsExternalCallStateListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsExternalCallStateListener;
 Lcom/android/ims/internal/IImsExternalCallStateListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/ims/internal/IImsExternalCallStateListener$Stub;->TRANSACTION_onImsExternalCallStateUpdate:I
-Lcom/android/ims/internal/IImsExternalCallStateListener;
 Lcom/android/ims/internal/IImsExternalCallStateListener;->onImsExternalCallStateUpdate(Ljava/util/List;)V
-Lcom/android/ims/internal/IImsFeatureStatusCallback$Stub$Proxy;
 Lcom/android/ims/internal/IImsFeatureStatusCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/IImsFeatureStatusCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/ims/internal/IImsFeatureStatusCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/ims/internal/IImsFeatureStatusCallback$Stub$Proxy;->notifyImsFeatureStatus(I)V
-Lcom/android/ims/internal/IImsFeatureStatusCallback$Stub;
 Lcom/android/ims/internal/IImsFeatureStatusCallback$Stub;-><init>()V
 Lcom/android/ims/internal/IImsFeatureStatusCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsFeatureStatusCallback;
 Lcom/android/ims/internal/IImsFeatureStatusCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/ims/internal/IImsFeatureStatusCallback$Stub;->TRANSACTION_notifyImsFeatureStatus:I
-Lcom/android/ims/internal/IImsFeatureStatusCallback;
 Lcom/android/ims/internal/IImsFeatureStatusCallback;->notifyImsFeatureStatus(I)V
-Lcom/android/ims/internal/IImsMMTelFeature$Stub$Proxy;
 Lcom/android/ims/internal/IImsMMTelFeature$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/IImsMMTelFeature$Stub$Proxy;->addRegistrationListener(Lcom/android/ims/internal/IImsRegistrationListener;)V
 Lcom/android/ims/internal/IImsMMTelFeature$Stub$Proxy;->createCallProfile(III)Landroid/telephony/ims/ImsCallProfile;
@@ -92132,7 +85950,6 @@
 Lcom/android/ims/internal/IImsMMTelFeature$Stub$Proxy;->startSession(Landroid/app/PendingIntent;Lcom/android/ims/internal/IImsRegistrationListener;)I
 Lcom/android/ims/internal/IImsMMTelFeature$Stub$Proxy;->turnOffIms()V
 Lcom/android/ims/internal/IImsMMTelFeature$Stub$Proxy;->turnOnIms()V
-Lcom/android/ims/internal/IImsMMTelFeature$Stub;
 Lcom/android/ims/internal/IImsMMTelFeature$Stub;-><init>()V
 Lcom/android/ims/internal/IImsMMTelFeature$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsMMTelFeature;
 Lcom/android/ims/internal/IImsMMTelFeature$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -92153,7 +85970,6 @@
 Lcom/android/ims/internal/IImsMMTelFeature$Stub;->TRANSACTION_startSession:I
 Lcom/android/ims/internal/IImsMMTelFeature$Stub;->TRANSACTION_turnOffIms:I
 Lcom/android/ims/internal/IImsMMTelFeature$Stub;->TRANSACTION_turnOnIms:I
-Lcom/android/ims/internal/IImsMMTelFeature;
 Lcom/android/ims/internal/IImsMMTelFeature;->addRegistrationListener(Lcom/android/ims/internal/IImsRegistrationListener;)V
 Lcom/android/ims/internal/IImsMMTelFeature;->createCallProfile(III)Landroid/telephony/ims/ImsCallProfile;
 Lcom/android/ims/internal/IImsMMTelFeature;->createCallSession(ILandroid/telephony/ims/ImsCallProfile;)Lcom/android/ims/internal/IImsCallSession;
@@ -92171,31 +85987,24 @@
 Lcom/android/ims/internal/IImsMMTelFeature;->startSession(Landroid/app/PendingIntent;Lcom/android/ims/internal/IImsRegistrationListener;)I
 Lcom/android/ims/internal/IImsMMTelFeature;->turnOffIms()V
 Lcom/android/ims/internal/IImsMMTelFeature;->turnOnIms()V
-Lcom/android/ims/internal/IImsMultiEndpoint$Stub$Proxy;
 Lcom/android/ims/internal/IImsMultiEndpoint$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/IImsMultiEndpoint$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/ims/internal/IImsMultiEndpoint$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/ims/internal/IImsMultiEndpoint$Stub$Proxy;->requestImsExternalCallStateInfo()V
 Lcom/android/ims/internal/IImsMultiEndpoint$Stub$Proxy;->setListener(Lcom/android/ims/internal/IImsExternalCallStateListener;)V
-Lcom/android/ims/internal/IImsMultiEndpoint$Stub;
 Lcom/android/ims/internal/IImsMultiEndpoint$Stub;-><init>()V
 Lcom/android/ims/internal/IImsMultiEndpoint$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsMultiEndpoint;
 Lcom/android/ims/internal/IImsMultiEndpoint$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/ims/internal/IImsMultiEndpoint$Stub;->TRANSACTION_requestImsExternalCallStateInfo:I
 Lcom/android/ims/internal/IImsMultiEndpoint$Stub;->TRANSACTION_setListener:I
-Lcom/android/ims/internal/IImsMultiEndpoint;
 Lcom/android/ims/internal/IImsMultiEndpoint;->requestImsExternalCallStateInfo()V
 Lcom/android/ims/internal/IImsMultiEndpoint;->setListener(Lcom/android/ims/internal/IImsExternalCallStateListener;)V
-Lcom/android/ims/internal/IImsRcsFeature$Stub$Proxy;
 Lcom/android/ims/internal/IImsRcsFeature$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/IImsRcsFeature$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/ims/internal/IImsRcsFeature$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Lcom/android/ims/internal/IImsRcsFeature$Stub;
 Lcom/android/ims/internal/IImsRcsFeature$Stub;-><init>()V
 Lcom/android/ims/internal/IImsRcsFeature$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsRcsFeature;
 Lcom/android/ims/internal/IImsRcsFeature$Stub;->DESCRIPTOR:Ljava/lang/String;
-Lcom/android/ims/internal/IImsRcsFeature;
-Lcom/android/ims/internal/IImsRegistrationListener$Stub$Proxy;
 Lcom/android/ims/internal/IImsRegistrationListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/IImsRegistrationListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/ims/internal/IImsRegistrationListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -92211,7 +86020,6 @@
 Lcom/android/ims/internal/IImsRegistrationListener$Stub$Proxy;->registrationServiceCapabilityChanged(II)V
 Lcom/android/ims/internal/IImsRegistrationListener$Stub$Proxy;->registrationSuspended()V
 Lcom/android/ims/internal/IImsRegistrationListener$Stub$Proxy;->voiceMessageCountUpdate(I)V
-Lcom/android/ims/internal/IImsRegistrationListener$Stub;
 Lcom/android/ims/internal/IImsRegistrationListener$Stub;-><init>()V
 Lcom/android/ims/internal/IImsRegistrationListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsRegistrationListener;
 Lcom/android/ims/internal/IImsRegistrationListener$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -92227,12 +86035,10 @@
 Lcom/android/ims/internal/IImsRegistrationListener$Stub;->TRANSACTION_registrationServiceCapabilityChanged:I
 Lcom/android/ims/internal/IImsRegistrationListener$Stub;->TRANSACTION_registrationSuspended:I
 Lcom/android/ims/internal/IImsRegistrationListener$Stub;->TRANSACTION_voiceMessageCountUpdate:I
-Lcom/android/ims/internal/IImsRegistrationListener;
 Lcom/android/ims/internal/IImsRegistrationListener;->registrationProgressing()V
 Lcom/android/ims/internal/IImsRegistrationListener;->registrationResumed()V
 Lcom/android/ims/internal/IImsRegistrationListener;->registrationServiceCapabilityChanged(II)V
 Lcom/android/ims/internal/IImsRegistrationListener;->registrationSuspended()V
-Lcom/android/ims/internal/IImsService$Stub$Proxy;
 Lcom/android/ims/internal/IImsService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/IImsService$Stub$Proxy;->addRegistrationListener(IILcom/android/ims/internal/IImsRegistrationListener;)V
 Lcom/android/ims/internal/IImsService$Stub$Proxy;->close(I)V
@@ -92252,7 +86058,6 @@
 Lcom/android/ims/internal/IImsService$Stub$Proxy;->setUiTTYMode(IILandroid/os/Message;)V
 Lcom/android/ims/internal/IImsService$Stub$Proxy;->turnOffIms(I)V
 Lcom/android/ims/internal/IImsService$Stub$Proxy;->turnOnIms(I)V
-Lcom/android/ims/internal/IImsService$Stub;
 Lcom/android/ims/internal/IImsService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/ims/internal/IImsService$Stub;->TRANSACTION_addRegistrationListener:I
 Lcom/android/ims/internal/IImsService$Stub;->TRANSACTION_close:I
@@ -92270,7 +86075,6 @@
 Lcom/android/ims/internal/IImsService$Stub;->TRANSACTION_setUiTTYMode:I
 Lcom/android/ims/internal/IImsService$Stub;->TRANSACTION_turnOffIms:I
 Lcom/android/ims/internal/IImsService$Stub;->TRANSACTION_turnOnIms:I
-Lcom/android/ims/internal/IImsService;
 Lcom/android/ims/internal/IImsService;->addRegistrationListener(IILcom/android/ims/internal/IImsRegistrationListener;)V
 Lcom/android/ims/internal/IImsService;->close(I)V
 Lcom/android/ims/internal/IImsService;->createCallProfile(III)Landroid/telephony/ims/ImsCallProfile;
@@ -92287,7 +86091,6 @@
 Lcom/android/ims/internal/IImsService;->setUiTTYMode(IILandroid/os/Message;)V
 Lcom/android/ims/internal/IImsService;->turnOffIms(I)V
 Lcom/android/ims/internal/IImsService;->turnOnIms(I)V
-Lcom/android/ims/internal/IImsServiceController$Stub$Proxy;
 Lcom/android/ims/internal/IImsServiceController$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/IImsServiceController$Stub$Proxy;->createEmergencyMMTelFeature(ILcom/android/ims/internal/IImsFeatureStatusCallback;)Lcom/android/ims/internal/IImsMMTelFeature;
 Lcom/android/ims/internal/IImsServiceController$Stub$Proxy;->createMMTelFeature(ILcom/android/ims/internal/IImsFeatureStatusCallback;)Lcom/android/ims/internal/IImsMMTelFeature;
@@ -92295,7 +86098,6 @@
 Lcom/android/ims/internal/IImsServiceController$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/ims/internal/IImsServiceController$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/ims/internal/IImsServiceController$Stub$Proxy;->removeImsFeature(IILcom/android/ims/internal/IImsFeatureStatusCallback;)V
-Lcom/android/ims/internal/IImsServiceController$Stub;
 Lcom/android/ims/internal/IImsServiceController$Stub;-><init>()V
 Lcom/android/ims/internal/IImsServiceController$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsServiceController;
 Lcom/android/ims/internal/IImsServiceController$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -92303,42 +86105,34 @@
 Lcom/android/ims/internal/IImsServiceController$Stub;->TRANSACTION_createMMTelFeature:I
 Lcom/android/ims/internal/IImsServiceController$Stub;->TRANSACTION_createRcsFeature:I
 Lcom/android/ims/internal/IImsServiceController$Stub;->TRANSACTION_removeImsFeature:I
-Lcom/android/ims/internal/IImsServiceController;
 Lcom/android/ims/internal/IImsServiceController;->createEmergencyMMTelFeature(ILcom/android/ims/internal/IImsFeatureStatusCallback;)Lcom/android/ims/internal/IImsMMTelFeature;
 Lcom/android/ims/internal/IImsServiceController;->createMMTelFeature(ILcom/android/ims/internal/IImsFeatureStatusCallback;)Lcom/android/ims/internal/IImsMMTelFeature;
 Lcom/android/ims/internal/IImsServiceController;->createRcsFeature(ILcom/android/ims/internal/IImsFeatureStatusCallback;)Lcom/android/ims/internal/IImsRcsFeature;
 Lcom/android/ims/internal/IImsServiceController;->removeImsFeature(IILcom/android/ims/internal/IImsFeatureStatusCallback;)V
-Lcom/android/ims/internal/IImsServiceFeatureCallback$Stub$Proxy;
 Lcom/android/ims/internal/IImsServiceFeatureCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/IImsServiceFeatureCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/ims/internal/IImsServiceFeatureCallback$Stub$Proxy;->imsFeatureCreated(II)V
 Lcom/android/ims/internal/IImsServiceFeatureCallback$Stub$Proxy;->imsFeatureRemoved(II)V
 Lcom/android/ims/internal/IImsServiceFeatureCallback$Stub$Proxy;->imsStatusChanged(III)V
 Lcom/android/ims/internal/IImsServiceFeatureCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Lcom/android/ims/internal/IImsServiceFeatureCallback$Stub;
 Lcom/android/ims/internal/IImsServiceFeatureCallback$Stub;-><init>()V
 Lcom/android/ims/internal/IImsServiceFeatureCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsServiceFeatureCallback;
 Lcom/android/ims/internal/IImsServiceFeatureCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/ims/internal/IImsServiceFeatureCallback$Stub;->TRANSACTION_imsFeatureCreated:I
 Lcom/android/ims/internal/IImsServiceFeatureCallback$Stub;->TRANSACTION_imsFeatureRemoved:I
 Lcom/android/ims/internal/IImsServiceFeatureCallback$Stub;->TRANSACTION_imsStatusChanged:I
-Lcom/android/ims/internal/IImsServiceFeatureCallback;
 Lcom/android/ims/internal/IImsServiceFeatureCallback;->imsFeatureCreated(II)V
 Lcom/android/ims/internal/IImsServiceFeatureCallback;->imsFeatureRemoved(II)V
 Lcom/android/ims/internal/IImsServiceFeatureCallback;->imsStatusChanged(III)V
-Lcom/android/ims/internal/IImsStreamMediaSession$Stub$Proxy;
 Lcom/android/ims/internal/IImsStreamMediaSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/IImsStreamMediaSession$Stub$Proxy;->close()V
 Lcom/android/ims/internal/IImsStreamMediaSession$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/ims/internal/IImsStreamMediaSession$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Lcom/android/ims/internal/IImsStreamMediaSession$Stub;
 Lcom/android/ims/internal/IImsStreamMediaSession$Stub;-><init>()V
 Lcom/android/ims/internal/IImsStreamMediaSession$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsStreamMediaSession;
 Lcom/android/ims/internal/IImsStreamMediaSession$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/ims/internal/IImsStreamMediaSession$Stub;->TRANSACTION_close:I
-Lcom/android/ims/internal/IImsStreamMediaSession;
 Lcom/android/ims/internal/IImsStreamMediaSession;->close()V
-Lcom/android/ims/internal/IImsUt$Stub$Proxy;
 Lcom/android/ims/internal/IImsUt$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/IImsUt$Stub$Proxy;->close()V
 Lcom/android/ims/internal/IImsUt$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -92361,7 +86155,6 @@
 Lcom/android/ims/internal/IImsUt$Stub$Proxy;->updateCLIR(I)I
 Lcom/android/ims/internal/IImsUt$Stub$Proxy;->updateCOLP(Z)I
 Lcom/android/ims/internal/IImsUt$Stub$Proxy;->updateCOLR(I)I
-Lcom/android/ims/internal/IImsUt$Stub;
 Lcom/android/ims/internal/IImsUt$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsUt;
 Lcom/android/ims/internal/IImsUt$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/ims/internal/IImsUt$Stub;->TRANSACTION_close:I
@@ -92383,7 +86176,6 @@
 Lcom/android/ims/internal/IImsUt$Stub;->TRANSACTION_updateCLIR:I
 Lcom/android/ims/internal/IImsUt$Stub;->TRANSACTION_updateCOLP:I
 Lcom/android/ims/internal/IImsUt$Stub;->TRANSACTION_updateCOLR:I
-Lcom/android/ims/internal/IImsUt;
 Lcom/android/ims/internal/IImsUt;->close()V
 Lcom/android/ims/internal/IImsUt;->queryCallBarring(I)I
 Lcom/android/ims/internal/IImsUt;->queryCallBarringForServiceClass(II)I
@@ -92403,7 +86195,6 @@
 Lcom/android/ims/internal/IImsUt;->updateCLIR(I)I
 Lcom/android/ims/internal/IImsUt;->updateCOLP(Z)I
 Lcom/android/ims/internal/IImsUt;->updateCOLR(I)I
-Lcom/android/ims/internal/IImsUtListener$Stub$Proxy;
 Lcom/android/ims/internal/IImsUtListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/IImsUtListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/ims/internal/IImsUtListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -92415,7 +86206,6 @@
 Lcom/android/ims/internal/IImsUtListener$Stub$Proxy;->utConfigurationQueryFailed(Lcom/android/ims/internal/IImsUt;ILandroid/telephony/ims/ImsReasonInfo;)V
 Lcom/android/ims/internal/IImsUtListener$Stub$Proxy;->utConfigurationUpdated(Lcom/android/ims/internal/IImsUt;I)V
 Lcom/android/ims/internal/IImsUtListener$Stub$Proxy;->utConfigurationUpdateFailed(Lcom/android/ims/internal/IImsUt;ILandroid/telephony/ims/ImsReasonInfo;)V
-Lcom/android/ims/internal/IImsUtListener$Stub;
 Lcom/android/ims/internal/IImsUtListener$Stub;-><init>()V
 Lcom/android/ims/internal/IImsUtListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsUtListener;
 Lcom/android/ims/internal/IImsUtListener$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -92427,9 +86217,7 @@
 Lcom/android/ims/internal/IImsUtListener$Stub;->TRANSACTION_utConfigurationQueryFailed:I
 Lcom/android/ims/internal/IImsUtListener$Stub;->TRANSACTION_utConfigurationUpdated:I
 Lcom/android/ims/internal/IImsUtListener$Stub;->TRANSACTION_utConfigurationUpdateFailed:I
-Lcom/android/ims/internal/IImsUtListener;
 Lcom/android/ims/internal/IImsUtListener;->onSupplementaryServiceIndication(Landroid/telephony/ims/ImsSsData;)V
-Lcom/android/ims/internal/IImsVideoCallCallback$Stub$Proxy;
 Lcom/android/ims/internal/IImsVideoCallCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/IImsVideoCallCallback$Stub$Proxy;->changeCallDataUsage(J)V
 Lcom/android/ims/internal/IImsVideoCallCallback$Stub$Proxy;->changeCameraCapabilities(Landroid/telecom/VideoProfile$CameraCapabilities;)V
@@ -92440,7 +86228,6 @@
 Lcom/android/ims/internal/IImsVideoCallCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/ims/internal/IImsVideoCallCallback$Stub$Proxy;->receiveSessionModifyRequest(Landroid/telecom/VideoProfile;)V
 Lcom/android/ims/internal/IImsVideoCallCallback$Stub$Proxy;->receiveSessionModifyResponse(ILandroid/telecom/VideoProfile;Landroid/telecom/VideoProfile;)V
-Lcom/android/ims/internal/IImsVideoCallCallback$Stub;
 Lcom/android/ims/internal/IImsVideoCallCallback$Stub;-><init>()V
 Lcom/android/ims/internal/IImsVideoCallCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsVideoCallCallback;
 Lcom/android/ims/internal/IImsVideoCallCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -92451,8 +86238,6 @@
 Lcom/android/ims/internal/IImsVideoCallCallback$Stub;->TRANSACTION_handleCallSessionEvent:I
 Lcom/android/ims/internal/IImsVideoCallCallback$Stub;->TRANSACTION_receiveSessionModifyRequest:I
 Lcom/android/ims/internal/IImsVideoCallCallback$Stub;->TRANSACTION_receiveSessionModifyResponse:I
-Lcom/android/ims/internal/IImsVideoCallCallback;
-Lcom/android/ims/internal/IImsVideoCallProvider$Stub$Proxy;
 Lcom/android/ims/internal/IImsVideoCallProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/IImsVideoCallProvider$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/ims/internal/IImsVideoCallProvider$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -92467,7 +86252,6 @@
 Lcom/android/ims/internal/IImsVideoCallProvider$Stub$Proxy;->setPauseImage(Landroid/net/Uri;)V
 Lcom/android/ims/internal/IImsVideoCallProvider$Stub$Proxy;->setPreviewSurface(Landroid/view/Surface;)V
 Lcom/android/ims/internal/IImsVideoCallProvider$Stub$Proxy;->setZoom(F)V
-Lcom/android/ims/internal/IImsVideoCallProvider$Stub;
 Lcom/android/ims/internal/IImsVideoCallProvider$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsVideoCallProvider;
 Lcom/android/ims/internal/IImsVideoCallProvider$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/ims/internal/IImsVideoCallProvider$Stub;->TRANSACTION_requestCallDataUsage:I
@@ -92481,7 +86265,6 @@
 Lcom/android/ims/internal/IImsVideoCallProvider$Stub;->TRANSACTION_setPauseImage:I
 Lcom/android/ims/internal/IImsVideoCallProvider$Stub;->TRANSACTION_setPreviewSurface:I
 Lcom/android/ims/internal/IImsVideoCallProvider$Stub;->TRANSACTION_setZoom:I
-Lcom/android/ims/internal/IImsVideoCallProvider;
 Lcom/android/ims/internal/IImsVideoCallProvider;->requestCallDataUsage()V
 Lcom/android/ims/internal/IImsVideoCallProvider;->requestCameraCapabilities()V
 Lcom/android/ims/internal/IImsVideoCallProvider;->sendSessionModifyRequest(Landroid/telecom/VideoProfile;Landroid/telecom/VideoProfile;)V
@@ -92492,7 +86275,6 @@
 Lcom/android/ims/internal/IImsVideoCallProvider;->setPauseImage(Landroid/net/Uri;)V
 Lcom/android/ims/internal/IImsVideoCallProvider;->setPreviewSurface(Landroid/view/Surface;)V
 Lcom/android/ims/internal/IImsVideoCallProvider;->setZoom(F)V
-Lcom/android/ims/internal/uce/common/CapInfo;
 Lcom/android/ims/internal/uce/common/CapInfo;-><init>(Landroid/os/Parcel;)V
 Lcom/android/ims/internal/uce/common/CapInfo;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/ims/internal/uce/common/CapInfo;->getExts()[Ljava/lang/String;
@@ -92519,7 +86301,6 @@
 Lcom/android/ims/internal/uce/common/CapInfo;->mVsDuringCSSupported:Z
 Lcom/android/ims/internal/uce/common/CapInfo;->mVsSupported:Z
 Lcom/android/ims/internal/uce/common/CapInfo;->readFromParcel(Landroid/os/Parcel;)V
-Lcom/android/ims/internal/uce/common/StatusCode;
 Lcom/android/ims/internal/uce/common/StatusCode;-><init>(Landroid/os/Parcel;)V
 Lcom/android/ims/internal/uce/common/StatusCode;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/ims/internal/uce/common/StatusCode;->mStatusCode:I
@@ -92539,7 +86320,6 @@
 Lcom/android/ims/internal/uce/common/StatusCode;->UCE_SERVICE_UNKNOWN:I
 Lcom/android/ims/internal/uce/common/StatusCode;->UCE_SUCCESS:I
 Lcom/android/ims/internal/uce/common/StatusCode;->UCE_SUCCESS_ASYC_UPDATE:I
-Lcom/android/ims/internal/uce/common/UceLong;
 Lcom/android/ims/internal/uce/common/UceLong;-><init>(Landroid/os/Parcel;)V
 Lcom/android/ims/internal/uce/common/UceLong;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/ims/internal/uce/common/UceLong;->getUceLongInstance()Lcom/android/ims/internal/uce/common/UceLong;
@@ -92547,7 +86327,6 @@
 Lcom/android/ims/internal/uce/common/UceLong;->mUceLong:J
 Lcom/android/ims/internal/uce/common/UceLong;->readFromParcel(Landroid/os/Parcel;)V
 Lcom/android/ims/internal/uce/common/UceLong;->writeToParcel(Landroid/os/Parcel;)V
-Lcom/android/ims/internal/uce/options/IOptionsListener$Stub$Proxy;
 Lcom/android/ims/internal/uce/options/IOptionsListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/uce/options/IOptionsListener$Stub$Proxy;->cmdStatus(Lcom/android/ims/internal/uce/options/OptionsCmdStatus;)V
 Lcom/android/ims/internal/uce/options/IOptionsListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -92557,7 +86336,6 @@
 Lcom/android/ims/internal/uce/options/IOptionsListener$Stub$Proxy;->serviceAvailable(Lcom/android/ims/internal/uce/common/StatusCode;)V
 Lcom/android/ims/internal/uce/options/IOptionsListener$Stub$Proxy;->serviceUnavailable(Lcom/android/ims/internal/uce/common/StatusCode;)V
 Lcom/android/ims/internal/uce/options/IOptionsListener$Stub$Proxy;->sipResponseReceived(Ljava/lang/String;Lcom/android/ims/internal/uce/options/OptionsSipResponse;Lcom/android/ims/internal/uce/options/OptionsCapInfo;)V
-Lcom/android/ims/internal/uce/options/IOptionsListener$Stub;
 Lcom/android/ims/internal/uce/options/IOptionsListener$Stub;-><init>()V
 Lcom/android/ims/internal/uce/options/IOptionsListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/uce/options/IOptionsListener;
 Lcom/android/ims/internal/uce/options/IOptionsListener$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -92567,8 +86345,6 @@
 Lcom/android/ims/internal/uce/options/IOptionsListener$Stub;->TRANSACTION_serviceAvailable:I
 Lcom/android/ims/internal/uce/options/IOptionsListener$Stub;->TRANSACTION_serviceUnavailable:I
 Lcom/android/ims/internal/uce/options/IOptionsListener$Stub;->TRANSACTION_sipResponseReceived:I
-Lcom/android/ims/internal/uce/options/IOptionsListener;
-Lcom/android/ims/internal/uce/options/IOptionsService$Stub$Proxy;
 Lcom/android/ims/internal/uce/options/IOptionsService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/uce/options/IOptionsService$Stub$Proxy;->addListener(ILcom/android/ims/internal/uce/options/IOptionsListener;Lcom/android/ims/internal/uce/common/UceLong;)Lcom/android/ims/internal/uce/common/StatusCode;
 Lcom/android/ims/internal/uce/options/IOptionsService$Stub$Proxy;->getContactCap(ILjava/lang/String;I)Lcom/android/ims/internal/uce/common/StatusCode;
@@ -92580,7 +86356,6 @@
 Lcom/android/ims/internal/uce/options/IOptionsService$Stub$Proxy;->removeListener(ILcom/android/ims/internal/uce/common/UceLong;)Lcom/android/ims/internal/uce/common/StatusCode;
 Lcom/android/ims/internal/uce/options/IOptionsService$Stub$Proxy;->responseIncomingOptions(IIILjava/lang/String;Lcom/android/ims/internal/uce/options/OptionsCapInfo;Z)Lcom/android/ims/internal/uce/common/StatusCode;
 Lcom/android/ims/internal/uce/options/IOptionsService$Stub$Proxy;->setMyInfo(ILcom/android/ims/internal/uce/common/CapInfo;I)Lcom/android/ims/internal/uce/common/StatusCode;
-Lcom/android/ims/internal/uce/options/IOptionsService$Stub;
 Lcom/android/ims/internal/uce/options/IOptionsService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/uce/options/IOptionsService;
 Lcom/android/ims/internal/uce/options/IOptionsService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/ims/internal/uce/options/IOptionsService$Stub;->TRANSACTION_addListener:I
@@ -92591,15 +86366,12 @@
 Lcom/android/ims/internal/uce/options/IOptionsService$Stub;->TRANSACTION_removeListener:I
 Lcom/android/ims/internal/uce/options/IOptionsService$Stub;->TRANSACTION_responseIncomingOptions:I
 Lcom/android/ims/internal/uce/options/IOptionsService$Stub;->TRANSACTION_setMyInfo:I
-Lcom/android/ims/internal/uce/options/IOptionsService;
-Lcom/android/ims/internal/uce/options/OptionsCapInfo;
 Lcom/android/ims/internal/uce/options/OptionsCapInfo;-><init>(Landroid/os/Parcel;)V
 Lcom/android/ims/internal/uce/options/OptionsCapInfo;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/ims/internal/uce/options/OptionsCapInfo;->getOptionsCapInfoInstance()Lcom/android/ims/internal/uce/options/OptionsCapInfo;
 Lcom/android/ims/internal/uce/options/OptionsCapInfo;->mCapInfo:Lcom/android/ims/internal/uce/common/CapInfo;
 Lcom/android/ims/internal/uce/options/OptionsCapInfo;->mSdp:Ljava/lang/String;
 Lcom/android/ims/internal/uce/options/OptionsCapInfo;->readFromParcel(Landroid/os/Parcel;)V
-Lcom/android/ims/internal/uce/options/OptionsCmdId;
 Lcom/android/ims/internal/uce/options/OptionsCmdId;-><init>(Landroid/os/Parcel;)V
 Lcom/android/ims/internal/uce/options/OptionsCmdId;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/ims/internal/uce/options/OptionsCmdId;->getCmdId()I
@@ -92612,7 +86384,6 @@
 Lcom/android/ims/internal/uce/options/OptionsCmdId;->UCE_OPTIONS_CMD_RESPONSEINCOMINGOPTIONS:I
 Lcom/android/ims/internal/uce/options/OptionsCmdId;->UCE_OPTIONS_CMD_SETMYCDINFO:I
 Lcom/android/ims/internal/uce/options/OptionsCmdId;->UCE_OPTIONS_CMD_UNKNOWN:I
-Lcom/android/ims/internal/uce/options/OptionsCmdStatus;
 Lcom/android/ims/internal/uce/options/OptionsCmdStatus;-><init>(Landroid/os/Parcel;)V
 Lcom/android/ims/internal/uce/options/OptionsCmdStatus;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/ims/internal/uce/options/OptionsCmdStatus;->getCapInfo()Lcom/android/ims/internal/uce/common/CapInfo;
@@ -92625,7 +86396,6 @@
 Lcom/android/ims/internal/uce/options/OptionsCmdStatus;->mStatus:Lcom/android/ims/internal/uce/common/StatusCode;
 Lcom/android/ims/internal/uce/options/OptionsCmdStatus;->mUserData:I
 Lcom/android/ims/internal/uce/options/OptionsCmdStatus;->readFromParcel(Landroid/os/Parcel;)V
-Lcom/android/ims/internal/uce/options/OptionsSipResponse;
 Lcom/android/ims/internal/uce/options/OptionsSipResponse;-><init>(Landroid/os/Parcel;)V
 Lcom/android/ims/internal/uce/options/OptionsSipResponse;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/ims/internal/uce/options/OptionsSipResponse;->getCmdId()Lcom/android/ims/internal/uce/options/OptionsCmdId;
@@ -92639,7 +86409,6 @@
 Lcom/android/ims/internal/uce/options/OptionsSipResponse;->mRetryAfter:I
 Lcom/android/ims/internal/uce/options/OptionsSipResponse;->mSipResponseCode:I
 Lcom/android/ims/internal/uce/options/OptionsSipResponse;->readFromParcel(Landroid/os/Parcel;)V
-Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub$Proxy;
 Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub$Proxy;->capInfoReceived(Ljava/lang/String;[Lcom/android/ims/internal/uce/presence/PresTupleInfo;)V
 Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub$Proxy;->cmdStatus(Lcom/android/ims/internal/uce/presence/PresCmdStatus;)V
@@ -92652,7 +86421,6 @@
 Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub$Proxy;->serviceUnAvailable(Lcom/android/ims/internal/uce/common/StatusCode;)V
 Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub$Proxy;->sipResponseReceived(Lcom/android/ims/internal/uce/presence/PresSipResponse;)V
 Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub$Proxy;->unpublishMessageSent()V
-Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub;
 Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub;-><init>()V
 Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/uce/presence/IPresenceListener;
 Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -92665,8 +86433,6 @@
 Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub;->TRANSACTION_serviceUnAvailable:I
 Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub;->TRANSACTION_sipResponseReceived:I
 Lcom/android/ims/internal/uce/presence/IPresenceListener$Stub;->TRANSACTION_unpublishMessageSent:I
-Lcom/android/ims/internal/uce/presence/IPresenceListener;
-Lcom/android/ims/internal/uce/presence/IPresenceService$Stub$Proxy;
 Lcom/android/ims/internal/uce/presence/IPresenceService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/uce/presence/IPresenceService$Stub$Proxy;->addListener(ILcom/android/ims/internal/uce/presence/IPresenceListener;Lcom/android/ims/internal/uce/common/UceLong;)Lcom/android/ims/internal/uce/common/StatusCode;
 Lcom/android/ims/internal/uce/presence/IPresenceService$Stub$Proxy;->getContactCap(ILjava/lang/String;I)Lcom/android/ims/internal/uce/common/StatusCode;
@@ -92678,7 +86444,6 @@
 Lcom/android/ims/internal/uce/presence/IPresenceService$Stub$Proxy;->reenableService(II)Lcom/android/ims/internal/uce/common/StatusCode;
 Lcom/android/ims/internal/uce/presence/IPresenceService$Stub$Proxy;->removeListener(ILcom/android/ims/internal/uce/common/UceLong;)Lcom/android/ims/internal/uce/common/StatusCode;
 Lcom/android/ims/internal/uce/presence/IPresenceService$Stub$Proxy;->setNewFeatureTag(ILjava/lang/String;Lcom/android/ims/internal/uce/presence/PresServiceInfo;I)Lcom/android/ims/internal/uce/common/StatusCode;
-Lcom/android/ims/internal/uce/presence/IPresenceService$Stub;
 Lcom/android/ims/internal/uce/presence/IPresenceService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/uce/presence/IPresenceService;
 Lcom/android/ims/internal/uce/presence/IPresenceService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/ims/internal/uce/presence/IPresenceService$Stub;->TRANSACTION_addListener:I
@@ -92689,8 +86454,6 @@
 Lcom/android/ims/internal/uce/presence/IPresenceService$Stub;->TRANSACTION_reenableService:I
 Lcom/android/ims/internal/uce/presence/IPresenceService$Stub;->TRANSACTION_removeListener:I
 Lcom/android/ims/internal/uce/presence/IPresenceService$Stub;->TRANSACTION_setNewFeatureTag:I
-Lcom/android/ims/internal/uce/presence/IPresenceService;
-Lcom/android/ims/internal/uce/presence/PresCapInfo;
 Lcom/android/ims/internal/uce/presence/PresCapInfo;-><init>()V
 Lcom/android/ims/internal/uce/presence/PresCapInfo;-><init>(Landroid/os/Parcel;)V
 Lcom/android/ims/internal/uce/presence/PresCapInfo;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -92698,7 +86461,6 @@
 Lcom/android/ims/internal/uce/presence/PresCapInfo;->readFromParcel(Landroid/os/Parcel;)V
 Lcom/android/ims/internal/uce/presence/PresCapInfo;->setCapInfo(Lcom/android/ims/internal/uce/common/CapInfo;)V
 Lcom/android/ims/internal/uce/presence/PresCapInfo;->setContactUri(Ljava/lang/String;)V
-Lcom/android/ims/internal/uce/presence/PresCmdId;
 Lcom/android/ims/internal/uce/presence/PresCmdId;-><init>(Landroid/os/Parcel;)V
 Lcom/android/ims/internal/uce/presence/PresCmdId;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/ims/internal/uce/presence/PresCmdId;->getCmdId()I
@@ -92711,7 +86473,6 @@
 Lcom/android/ims/internal/uce/presence/PresCmdId;->UCE_PRES_CMD_REENABLE_SERVICE:I
 Lcom/android/ims/internal/uce/presence/PresCmdId;->UCE_PRES_CMD_SETNEWFEATURETAG:I
 Lcom/android/ims/internal/uce/presence/PresCmdId;->UCE_PRES_CMD_UNKNOWN:I
-Lcom/android/ims/internal/uce/presence/PresCmdStatus;
 Lcom/android/ims/internal/uce/presence/PresCmdStatus;-><init>(Landroid/os/Parcel;)V
 Lcom/android/ims/internal/uce/presence/PresCmdStatus;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/ims/internal/uce/presence/PresCmdStatus;->getCmdId()Lcom/android/ims/internal/uce/presence/PresCmdId;
@@ -92723,7 +86484,6 @@
 Lcom/android/ims/internal/uce/presence/PresCmdStatus;->mStatus:Lcom/android/ims/internal/uce/common/StatusCode;
 Lcom/android/ims/internal/uce/presence/PresCmdStatus;->mUserData:I
 Lcom/android/ims/internal/uce/presence/PresCmdStatus;->readFromParcel(Landroid/os/Parcel;)V
-Lcom/android/ims/internal/uce/presence/PresPublishTriggerType;
 Lcom/android/ims/internal/uce/presence/PresPublishTriggerType;-><init>(Landroid/os/Parcel;)V
 Lcom/android/ims/internal/uce/presence/PresPublishTriggerType;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/ims/internal/uce/presence/PresPublishTriggerType;->getPublishTrigeerType()I
@@ -92739,7 +86499,6 @@
 Lcom/android/ims/internal/uce/presence/PresPublishTriggerType;->UCE_PRES_PUBLISH_TRIGGER_MOVE_TO_LTE_VOPS_ENABLED:I
 Lcom/android/ims/internal/uce/presence/PresPublishTriggerType;->UCE_PRES_PUBLISH_TRIGGER_MOVE_TO_WLAN:I
 Lcom/android/ims/internal/uce/presence/PresPublishTriggerType;->UCE_PRES_PUBLISH_TRIGGER_UNKNOWN:I
-Lcom/android/ims/internal/uce/presence/PresResInfo;
 Lcom/android/ims/internal/uce/presence/PresResInfo;-><init>(Landroid/os/Parcel;)V
 Lcom/android/ims/internal/uce/presence/PresResInfo;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/ims/internal/uce/presence/PresResInfo;->getDisplayName()Ljava/lang/String;
@@ -92749,7 +86508,6 @@
 Lcom/android/ims/internal/uce/presence/PresResInfo;->mInstanceInfo:Lcom/android/ims/internal/uce/presence/PresResInstanceInfo;
 Lcom/android/ims/internal/uce/presence/PresResInfo;->mResUri:Ljava/lang/String;
 Lcom/android/ims/internal/uce/presence/PresResInfo;->readFromParcel(Landroid/os/Parcel;)V
-Lcom/android/ims/internal/uce/presence/PresResInstanceInfo;
 Lcom/android/ims/internal/uce/presence/PresResInstanceInfo;-><init>(Landroid/os/Parcel;)V
 Lcom/android/ims/internal/uce/presence/PresResInstanceInfo;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/ims/internal/uce/presence/PresResInstanceInfo;->getPresentityUri()Ljava/lang/String;
@@ -92768,7 +86526,6 @@
 Lcom/android/ims/internal/uce/presence/PresResInstanceInfo;->UCE_PRES_RES_INSTANCE_STATE_TERMINATED:I
 Lcom/android/ims/internal/uce/presence/PresResInstanceInfo;->UCE_PRES_RES_INSTANCE_STATE_UNKNOWN:I
 Lcom/android/ims/internal/uce/presence/PresResInstanceInfo;->UCE_PRES_RES_INSTANCE_UNKNOWN:I
-Lcom/android/ims/internal/uce/presence/PresRlmiInfo;
 Lcom/android/ims/internal/uce/presence/PresRlmiInfo;-><init>(Landroid/os/Parcel;)V
 Lcom/android/ims/internal/uce/presence/PresRlmiInfo;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/ims/internal/uce/presence/PresRlmiInfo;->getListName()Ljava/lang/String;
@@ -92788,7 +86545,6 @@
 Lcom/android/ims/internal/uce/presence/PresRlmiInfo;->mUri:Ljava/lang/String;
 Lcom/android/ims/internal/uce/presence/PresRlmiInfo;->mVersion:I
 Lcom/android/ims/internal/uce/presence/PresRlmiInfo;->readFromParcel(Landroid/os/Parcel;)V
-Lcom/android/ims/internal/uce/presence/PresServiceInfo;
 Lcom/android/ims/internal/uce/presence/PresServiceInfo;-><init>()V
 Lcom/android/ims/internal/uce/presence/PresServiceInfo;-><init>(Landroid/os/Parcel;)V
 Lcom/android/ims/internal/uce/presence/PresServiceInfo;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -92805,7 +86561,6 @@
 Lcom/android/ims/internal/uce/presence/PresServiceInfo;->UCE_PRES_MEDIA_CAP_FULL_AUDIO_ONLY:I
 Lcom/android/ims/internal/uce/presence/PresServiceInfo;->UCE_PRES_MEDIA_CAP_NONE:I
 Lcom/android/ims/internal/uce/presence/PresServiceInfo;->UCE_PRES_MEDIA_CAP_UNKNOWN:I
-Lcom/android/ims/internal/uce/presence/PresSipResponse;
 Lcom/android/ims/internal/uce/presence/PresSipResponse;-><init>(Landroid/os/Parcel;)V
 Lcom/android/ims/internal/uce/presence/PresSipResponse;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/ims/internal/uce/presence/PresSipResponse;->mCmdId:Lcom/android/ims/internal/uce/presence/PresCmdId;
@@ -92814,7 +86569,6 @@
 Lcom/android/ims/internal/uce/presence/PresSipResponse;->mRetryAfter:I
 Lcom/android/ims/internal/uce/presence/PresSipResponse;->mSipResponseCode:I
 Lcom/android/ims/internal/uce/presence/PresSipResponse;->readFromParcel(Landroid/os/Parcel;)V
-Lcom/android/ims/internal/uce/presence/PresSubscriptionState;
 Lcom/android/ims/internal/uce/presence/PresSubscriptionState;-><init>(Landroid/os/Parcel;)V
 Lcom/android/ims/internal/uce/presence/PresSubscriptionState;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/ims/internal/uce/presence/PresSubscriptionState;->getPresSubscriptionStateValue()I
@@ -92824,7 +86578,6 @@
 Lcom/android/ims/internal/uce/presence/PresSubscriptionState;->UCE_PRES_SUBSCRIPTION_STATE_PENDING:I
 Lcom/android/ims/internal/uce/presence/PresSubscriptionState;->UCE_PRES_SUBSCRIPTION_STATE_TERMINATED:I
 Lcom/android/ims/internal/uce/presence/PresSubscriptionState;->UCE_PRES_SUBSCRIPTION_STATE_UNKNOWN:I
-Lcom/android/ims/internal/uce/presence/PresTupleInfo;
 Lcom/android/ims/internal/uce/presence/PresTupleInfo;-><init>(Landroid/os/Parcel;)V
 Lcom/android/ims/internal/uce/presence/PresTupleInfo;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/ims/internal/uce/presence/PresTupleInfo;->getContactUri()Ljava/lang/String;
@@ -92834,17 +86587,13 @@
 Lcom/android/ims/internal/uce/presence/PresTupleInfo;->mFeatureTag:Ljava/lang/String;
 Lcom/android/ims/internal/uce/presence/PresTupleInfo;->mTimestamp:Ljava/lang/String;
 Lcom/android/ims/internal/uce/presence/PresTupleInfo;->readFromParcel(Landroid/os/Parcel;)V
-Lcom/android/ims/internal/uce/uceservice/IUceListener$Stub$Proxy;
 Lcom/android/ims/internal/uce/uceservice/IUceListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/uce/uceservice/IUceListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/ims/internal/uce/uceservice/IUceListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/ims/internal/uce/uceservice/IUceListener$Stub$Proxy;->setStatus(I)V
-Lcom/android/ims/internal/uce/uceservice/IUceListener$Stub;
 Lcom/android/ims/internal/uce/uceservice/IUceListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/uce/uceservice/IUceListener;
 Lcom/android/ims/internal/uce/uceservice/IUceListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/ims/internal/uce/uceservice/IUceListener$Stub;->TRANSACTION_setStatus:I
-Lcom/android/ims/internal/uce/uceservice/IUceListener;
-Lcom/android/ims/internal/uce/uceservice/IUceService$Stub$Proxy;
 Lcom/android/ims/internal/uce/uceservice/IUceService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/ims/internal/uce/uceservice/IUceService$Stub$Proxy;->createOptionsService(Lcom/android/ims/internal/uce/options/IOptionsListener;Lcom/android/ims/internal/uce/common/UceLong;)I
 Lcom/android/ims/internal/uce/uceservice/IUceService$Stub$Proxy;->createPresenceService(Lcom/android/ims/internal/uce/presence/IPresenceListener;Lcom/android/ims/internal/uce/common/UceLong;)I
@@ -92858,7 +86607,6 @@
 Lcom/android/ims/internal/uce/uceservice/IUceService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/ims/internal/uce/uceservice/IUceService$Stub$Proxy;->startService(Lcom/android/ims/internal/uce/uceservice/IUceListener;)Z
 Lcom/android/ims/internal/uce/uceservice/IUceService$Stub$Proxy;->stopService()Z
-Lcom/android/ims/internal/uce/uceservice/IUceService$Stub;
 Lcom/android/ims/internal/uce/uceservice/IUceService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/uce/uceservice/IUceService;
 Lcom/android/ims/internal/uce/uceservice/IUceService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/ims/internal/uce/uceservice/IUceService$Stub;->TRANSACTION_createOptionsService:I
@@ -92871,10 +86619,7 @@
 Lcom/android/ims/internal/uce/uceservice/IUceService$Stub;->TRANSACTION_isServiceStarted:I
 Lcom/android/ims/internal/uce/uceservice/IUceService$Stub;->TRANSACTION_startService:I
 Lcom/android/ims/internal/uce/uceservice/IUceService$Stub;->TRANSACTION_stopService:I
-Lcom/android/ims/internal/uce/uceservice/IUceService;
-Lcom/android/internal/app/AlertController$AlertParams$OnPrepareListViewListener;
 Lcom/android/internal/app/AlertController$AlertParams$OnPrepareListViewListener;->onPrepareListView(Landroid/widget/ListView;)V
-Lcom/android/internal/app/AlertController$AlertParams;
 Lcom/android/internal/app/AlertController$AlertParams;->createListView(Lcom/android/internal/app/AlertController;)V
 Lcom/android/internal/app/AlertController$AlertParams;->mForceInverseBackground:Z
 Lcom/android/internal/app/AlertController$AlertParams;->mIconAttrId:I
@@ -92886,19 +86631,15 @@
 Lcom/android/internal/app/AlertController$AlertParams;->mViewSpacingRight:I
 Lcom/android/internal/app/AlertController$AlertParams;->mViewSpacingSpecified:Z
 Lcom/android/internal/app/AlertController$AlertParams;->mViewSpacingTop:I
-Lcom/android/internal/app/AlertController$ButtonHandler;
 Lcom/android/internal/app/AlertController$ButtonHandler;-><init>(Landroid/content/DialogInterface;)V
 Lcom/android/internal/app/AlertController$ButtonHandler;->mDialog:Ljava/lang/ref/WeakReference;
 Lcom/android/internal/app/AlertController$ButtonHandler;->MSG_DISMISS_DIALOG:I
-Lcom/android/internal/app/AlertController$CheckedItemAdapter;
 Lcom/android/internal/app/AlertController$CheckedItemAdapter;-><init>(Landroid/content/Context;II[Ljava/lang/CharSequence;)V
-Lcom/android/internal/app/AlertController$RecycleListView;
 Lcom/android/internal/app/AlertController$RecycleListView;->mPaddingBottomNoButtons:I
 Lcom/android/internal/app/AlertController$RecycleListView;->mPaddingTopNoTitle:I
 Lcom/android/internal/app/AlertController$RecycleListView;->mRecycleOnMeasure:Z
 Lcom/android/internal/app/AlertController$RecycleListView;->recycleOnMeasure()Z
 Lcom/android/internal/app/AlertController$RecycleListView;->setHasDecor(ZZ)V
-Lcom/android/internal/app/AlertController;
 Lcom/android/internal/app/AlertController;->canTextInput(Landroid/view/View;)Z
 Lcom/android/internal/app/AlertController;->centerButton(Landroid/widget/Button;)V
 Lcom/android/internal/app/AlertController;->create(Landroid/content/Context;Landroid/content/DialogInterface;Landroid/view/Window;)Lcom/android/internal/app/AlertController;
@@ -92961,36 +86702,28 @@
 Lcom/android/internal/app/AlertController;->setView(I)V
 Lcom/android/internal/app/AlertController;->setView(Landroid/view/View;IIII)V
 Lcom/android/internal/app/AlertController;->shouldCenterSingleButton(Landroid/content/Context;)Z
-Lcom/android/internal/app/EventLogTags;
 Lcom/android/internal/app/EventLogTags;-><init>()V
 Lcom/android/internal/app/EventLogTags;->HARMFUL_APP_WARNING_LAUNCH_ANYWAY:I
 Lcom/android/internal/app/EventLogTags;->HARMFUL_APP_WARNING_UNINSTALL:I
 Lcom/android/internal/app/EventLogTags;->writeHarmfulAppWarningLaunchAnyway(Ljava/lang/String;)V
 Lcom/android/internal/app/EventLogTags;->writeHarmfulAppWarningUninstall(Ljava/lang/String;)V
-Lcom/android/internal/app/IAppOpsActiveCallback$Stub$Proxy;
 Lcom/android/internal/app/IAppOpsActiveCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/app/IAppOpsActiveCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/app/IAppOpsActiveCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/app/IAppOpsActiveCallback$Stub$Proxy;->opActiveChanged(IILjava/lang/String;Z)V
-Lcom/android/internal/app/IAppOpsActiveCallback$Stub;
 Lcom/android/internal/app/IAppOpsActiveCallback$Stub;-><init>()V
 Lcom/android/internal/app/IAppOpsActiveCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IAppOpsActiveCallback;
 Lcom/android/internal/app/IAppOpsActiveCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/app/IAppOpsActiveCallback$Stub;->TRANSACTION_opActiveChanged:I
-Lcom/android/internal/app/IAppOpsActiveCallback;
 Lcom/android/internal/app/IAppOpsActiveCallback;->opActiveChanged(IILjava/lang/String;Z)V
-Lcom/android/internal/app/IAppOpsCallback$Stub$Proxy;
 Lcom/android/internal/app/IAppOpsCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/app/IAppOpsCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/app/IAppOpsCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/app/IAppOpsCallback$Stub$Proxy;->opChanged(IILjava/lang/String;)V
-Lcom/android/internal/app/IAppOpsCallback$Stub;
 Lcom/android/internal/app/IAppOpsCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IAppOpsCallback;
 Lcom/android/internal/app/IAppOpsCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/app/IAppOpsCallback$Stub;->TRANSACTION_opChanged:I
-Lcom/android/internal/app/IAppOpsCallback;
 Lcom/android/internal/app/IAppOpsCallback;->opChanged(IILjava/lang/String;)V
-Lcom/android/internal/app/IAppOpsService$Stub$Proxy;
 Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkAudioOperation(IIILjava/lang/String;)I
 Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkPackage(ILjava/lang/String;)I
 Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->finishOperation(Landroid/os/IBinder;IILjava/lang/String;)V
@@ -93016,7 +86749,6 @@
 Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->startWatchingModeWithFlags(ILjava/lang/String;ILcom/android/internal/app/IAppOpsCallback;)V
 Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->stopWatchingActive(Lcom/android/internal/app/IAppOpsActiveCallback;)V
 Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->stopWatchingMode(Lcom/android/internal/app/IAppOpsCallback;)V
-Lcom/android/internal/app/IAppOpsService$Stub;
 Lcom/android/internal/app/IAppOpsService$Stub;-><init>()V
 Lcom/android/internal/app/IAppOpsService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_getToken:I
@@ -93026,7 +86758,6 @@
 Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_startWatchingActive:I
 Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_startWatchingModeWithFlags:I
 Lcom/android/internal/app/IAppOpsService$Stub;->TRANSACTION_stopWatchingActive:I
-Lcom/android/internal/app/IAppOpsService;
 Lcom/android/internal/app/IAppOpsService;->checkAudioOperation(IIILjava/lang/String;)I
 Lcom/android/internal/app/IAppOpsService;->checkOperation(IILjava/lang/String;)I
 Lcom/android/internal/app/IAppOpsService;->checkPackage(ILjava/lang/String;)I
@@ -93047,7 +86778,6 @@
 Lcom/android/internal/app/IAppOpsService;->startWatchingModeWithFlags(ILjava/lang/String;ILcom/android/internal/app/IAppOpsCallback;)V
 Lcom/android/internal/app/IAppOpsService;->stopWatchingActive(Lcom/android/internal/app/IAppOpsActiveCallback;)V
 Lcom/android/internal/app/IAppOpsService;->stopWatchingMode(Lcom/android/internal/app/IAppOpsCallback;)V
-Lcom/android/internal/app/IBatteryStats$Stub$Proxy;
 Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->computeBatteryTimeRemaining()J
 Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->computeChargeTimeRemaining()J
 Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->getAwakeTimeBattery()J
@@ -93138,7 +86868,6 @@
 Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->setBatteryState(IIIIIIII)V
 Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->takeUidSnapshot(I)Landroid/os/health/HealthStatsParceler;
 Lcom/android/internal/app/IBatteryStats$Stub$Proxy;->takeUidSnapshots([I)[Landroid/os/health/HealthStatsParceler;
-Lcom/android/internal/app/IBatteryStats$Stub;
 Lcom/android/internal/app/IBatteryStats$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_computeBatteryTimeRemaining:I
 Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_computeChargeTimeRemaining:I
@@ -93228,7 +86957,6 @@
 Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_setBatteryState:I
 Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_takeUidSnapshot:I
 Lcom/android/internal/app/IBatteryStats$Stub;->TRANSACTION_takeUidSnapshots:I
-Lcom/android/internal/app/IBatteryStats;
 Lcom/android/internal/app/IBatteryStats;->computeBatteryTimeRemaining()J
 Lcom/android/internal/app/IBatteryStats;->getAwakeTimePlugged()J
 Lcom/android/internal/app/IBatteryStats;->getCellularBatteryStats()Landroid/os/connectivity/CellularBatteryStats;
@@ -93300,7 +87028,6 @@
 Lcom/android/internal/app/IBatteryStats;->setBatteryState(IIIIIIII)V
 Lcom/android/internal/app/IBatteryStats;->takeUidSnapshot(I)Landroid/os/health/HealthStatsParceler;
 Lcom/android/internal/app/IBatteryStats;->takeUidSnapshots([I)[Landroid/os/health/HealthStatsParceler;
-Lcom/android/internal/app/IMediaContainerService$Stub$Proxy;
 Lcom/android/internal/app/IMediaContainerService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/app/IMediaContainerService$Stub$Proxy;->calculateInstalledSize(Ljava/lang/String;Ljava/lang/String;)J
 Lcom/android/internal/app/IMediaContainerService$Stub$Proxy;->clearDirectory(Ljava/lang/String;)V
@@ -93309,7 +87036,6 @@
 Lcom/android/internal/app/IMediaContainerService$Stub$Proxy;->getMinimalPackageInfo(Ljava/lang/String;ILjava/lang/String;)Landroid/content/pm/PackageInfoLite;
 Lcom/android/internal/app/IMediaContainerService$Stub$Proxy;->getObbInfo(Ljava/lang/String;)Landroid/content/res/ObbInfo;
 Lcom/android/internal/app/IMediaContainerService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Lcom/android/internal/app/IMediaContainerService$Stub;
 Lcom/android/internal/app/IMediaContainerService$Stub;-><init>()V
 Lcom/android/internal/app/IMediaContainerService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/app/IMediaContainerService$Stub;->TRANSACTION_calculateInstalledSize:I
@@ -93317,13 +87043,11 @@
 Lcom/android/internal/app/IMediaContainerService$Stub;->TRANSACTION_copyPackage:I
 Lcom/android/internal/app/IMediaContainerService$Stub;->TRANSACTION_getMinimalPackageInfo:I
 Lcom/android/internal/app/IMediaContainerService$Stub;->TRANSACTION_getObbInfo:I
-Lcom/android/internal/app/IMediaContainerService;
 Lcom/android/internal/app/IMediaContainerService;->calculateInstalledSize(Ljava/lang/String;Ljava/lang/String;)J
 Lcom/android/internal/app/IMediaContainerService;->clearDirectory(Ljava/lang/String;)V
 Lcom/android/internal/app/IMediaContainerService;->copyPackage(Ljava/lang/String;Lcom/android/internal/os/IParcelFileDescriptorFactory;)I
 Lcom/android/internal/app/IMediaContainerService;->getMinimalPackageInfo(Ljava/lang/String;ILjava/lang/String;)Landroid/content/pm/PackageInfoLite;
 Lcom/android/internal/app/IMediaContainerService;->getObbInfo(Ljava/lang/String;)Landroid/content/res/ObbInfo;
-Lcom/android/internal/app/ISoundTriggerService$Stub$Proxy;
 Lcom/android/internal/app/ISoundTriggerService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/app/ISoundTriggerService$Stub$Proxy;->deleteSoundModel(Landroid/os/ParcelUuid;)V
 Lcom/android/internal/app/ISoundTriggerService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -93339,7 +87063,6 @@
 Lcom/android/internal/app/ISoundTriggerService$Stub$Proxy;->stopRecognitionForIntent(Landroid/os/ParcelUuid;)I
 Lcom/android/internal/app/ISoundTriggerService$Stub$Proxy;->unloadSoundModel(Landroid/os/ParcelUuid;)I
 Lcom/android/internal/app/ISoundTriggerService$Stub$Proxy;->updateSoundModel(Landroid/hardware/soundtrigger/SoundTrigger$GenericSoundModel;)V
-Lcom/android/internal/app/ISoundTriggerService$Stub;
 Lcom/android/internal/app/ISoundTriggerService$Stub;-><init>()V
 Lcom/android/internal/app/ISoundTriggerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/ISoundTriggerService;
 Lcom/android/internal/app/ISoundTriggerService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -93355,7 +87078,6 @@
 Lcom/android/internal/app/ISoundTriggerService$Stub;->TRANSACTION_stopRecognitionForIntent:I
 Lcom/android/internal/app/ISoundTriggerService$Stub;->TRANSACTION_unloadSoundModel:I
 Lcom/android/internal/app/ISoundTriggerService$Stub;->TRANSACTION_updateSoundModel:I
-Lcom/android/internal/app/ISoundTriggerService;
 Lcom/android/internal/app/ISoundTriggerService;->deleteSoundModel(Landroid/os/ParcelUuid;)V
 Lcom/android/internal/app/ISoundTriggerService;->getSoundModel(Landroid/os/ParcelUuid;)Landroid/hardware/soundtrigger/SoundTrigger$GenericSoundModel;
 Lcom/android/internal/app/ISoundTriggerService;->isRecognitionActive(Landroid/os/ParcelUuid;)Z
@@ -93368,7 +87090,6 @@
 Lcom/android/internal/app/ISoundTriggerService;->stopRecognitionForIntent(Landroid/os/ParcelUuid;)I
 Lcom/android/internal/app/ISoundTriggerService;->unloadSoundModel(Landroid/os/ParcelUuid;)I
 Lcom/android/internal/app/ISoundTriggerService;->updateSoundModel(Landroid/hardware/soundtrigger/SoundTrigger$GenericSoundModel;)V
-Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;
 Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->activeServiceSupportsAssist()Z
 Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->activeServiceSupportsLaunchFromKeyguard()Z
@@ -93399,7 +87120,6 @@
 Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->startVoiceActivity(Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;)I
 Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->stopRecognition(Landroid/service/voice/IVoiceInteractionService;ILandroid/hardware/soundtrigger/IRecognitionStatusCallback;)I
 Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->updateKeyphraseSoundModel(Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;)I
-Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;
 Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;-><init>()V
 Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_activeServiceSupportsAssist:I
@@ -93430,7 +87150,6 @@
 Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_startVoiceActivity:I
 Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_stopRecognition:I
 Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->TRANSACTION_updateKeyphraseSoundModel:I
-Lcom/android/internal/app/IVoiceInteractionManagerService;
 Lcom/android/internal/app/IVoiceInteractionManagerService;->activeServiceSupportsAssist()Z
 Lcom/android/internal/app/IVoiceInteractionManagerService;->activeServiceSupportsLaunchFromKeyguard()Z
 Lcom/android/internal/app/IVoiceInteractionManagerService;->closeSystemDialogs(Landroid/os/IBinder;)V
@@ -93458,37 +87177,30 @@
 Lcom/android/internal/app/IVoiceInteractionManagerService;->startVoiceActivity(Landroid/os/IBinder;Landroid/content/Intent;Ljava/lang/String;)I
 Lcom/android/internal/app/IVoiceInteractionManagerService;->stopRecognition(Landroid/service/voice/IVoiceInteractionService;ILandroid/hardware/soundtrigger/IRecognitionStatusCallback;)I
 Lcom/android/internal/app/IVoiceInteractionManagerService;->updateKeyphraseSoundModel(Landroid/hardware/soundtrigger/SoundTrigger$KeyphraseSoundModel;)I
-Lcom/android/internal/app/IVoiceInteractionSessionListener$Stub$Proxy;
 Lcom/android/internal/app/IVoiceInteractionSessionListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/app/IVoiceInteractionSessionListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/app/IVoiceInteractionSessionListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/app/IVoiceInteractionSessionListener$Stub$Proxy;->onVoiceSessionHidden()V
 Lcom/android/internal/app/IVoiceInteractionSessionListener$Stub$Proxy;->onVoiceSessionShown()V
-Lcom/android/internal/app/IVoiceInteractionSessionListener$Stub;
 Lcom/android/internal/app/IVoiceInteractionSessionListener$Stub;-><init>()V
 Lcom/android/internal/app/IVoiceInteractionSessionListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractionSessionListener;
 Lcom/android/internal/app/IVoiceInteractionSessionListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/app/IVoiceInteractionSessionListener$Stub;->TRANSACTION_onVoiceSessionHidden:I
 Lcom/android/internal/app/IVoiceInteractionSessionListener$Stub;->TRANSACTION_onVoiceSessionShown:I
-Lcom/android/internal/app/IVoiceInteractionSessionListener;
 Lcom/android/internal/app/IVoiceInteractionSessionListener;->onVoiceSessionHidden()V
 Lcom/android/internal/app/IVoiceInteractionSessionListener;->onVoiceSessionShown()V
-Lcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub$Proxy;
 Lcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub$Proxy;->onFailed()V
 Lcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub$Proxy;->onShown()V
-Lcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub;
 Lcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub;-><init>()V
 Lcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractionSessionShowCallback;
 Lcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub;->TRANSACTION_onFailed:I
 Lcom/android/internal/app/IVoiceInteractionSessionShowCallback$Stub;->TRANSACTION_onShown:I
-Lcom/android/internal/app/IVoiceInteractionSessionShowCallback;
 Lcom/android/internal/app/IVoiceInteractionSessionShowCallback;->onFailed()V
 Lcom/android/internal/app/IVoiceInteractionSessionShowCallback;->onShown()V
-Lcom/android/internal/app/IVoiceInteractor$Stub$Proxy;
 Lcom/android/internal/app/IVoiceInteractor$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/app/IVoiceInteractor$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/app/IVoiceInteractor$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -93498,7 +87210,6 @@
 Lcom/android/internal/app/IVoiceInteractor$Stub$Proxy;->startConfirmation(Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractorCallback;Landroid/app/VoiceInteractor$Prompt;Landroid/os/Bundle;)Lcom/android/internal/app/IVoiceInteractorRequest;
 Lcom/android/internal/app/IVoiceInteractor$Stub$Proxy;->startPickOption(Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractorCallback;Landroid/app/VoiceInteractor$Prompt;[Landroid/app/VoiceInteractor$PickOptionRequest$Option;Landroid/os/Bundle;)Lcom/android/internal/app/IVoiceInteractorRequest;
 Lcom/android/internal/app/IVoiceInteractor$Stub$Proxy;->supportsCommands(Ljava/lang/String;[Ljava/lang/String;)[Z
-Lcom/android/internal/app/IVoiceInteractor$Stub;
 Lcom/android/internal/app/IVoiceInteractor$Stub;-><init>()V
 Lcom/android/internal/app/IVoiceInteractor$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractor;
 Lcom/android/internal/app/IVoiceInteractor$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -93508,14 +87219,12 @@
 Lcom/android/internal/app/IVoiceInteractor$Stub;->TRANSACTION_startConfirmation:I
 Lcom/android/internal/app/IVoiceInteractor$Stub;->TRANSACTION_startPickOption:I
 Lcom/android/internal/app/IVoiceInteractor$Stub;->TRANSACTION_supportsCommands:I
-Lcom/android/internal/app/IVoiceInteractor;
 Lcom/android/internal/app/IVoiceInteractor;->startAbortVoice(Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractorCallback;Landroid/app/VoiceInteractor$Prompt;Landroid/os/Bundle;)Lcom/android/internal/app/IVoiceInteractorRequest;
 Lcom/android/internal/app/IVoiceInteractor;->startCommand(Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractorCallback;Ljava/lang/String;Landroid/os/Bundle;)Lcom/android/internal/app/IVoiceInteractorRequest;
 Lcom/android/internal/app/IVoiceInteractor;->startCompleteVoice(Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractorCallback;Landroid/app/VoiceInteractor$Prompt;Landroid/os/Bundle;)Lcom/android/internal/app/IVoiceInteractorRequest;
 Lcom/android/internal/app/IVoiceInteractor;->startConfirmation(Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractorCallback;Landroid/app/VoiceInteractor$Prompt;Landroid/os/Bundle;)Lcom/android/internal/app/IVoiceInteractorRequest;
 Lcom/android/internal/app/IVoiceInteractor;->startPickOption(Ljava/lang/String;Lcom/android/internal/app/IVoiceInteractorCallback;Landroid/app/VoiceInteractor$Prompt;[Landroid/app/VoiceInteractor$PickOptionRequest$Option;Landroid/os/Bundle;)Lcom/android/internal/app/IVoiceInteractorRequest;
 Lcom/android/internal/app/IVoiceInteractor;->supportsCommands(Ljava/lang/String;[Ljava/lang/String;)[Z
-Lcom/android/internal/app/IVoiceInteractorCallback$Stub$Proxy;
 Lcom/android/internal/app/IVoiceInteractorCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/app/IVoiceInteractorCallback$Stub$Proxy;->deliverAbortVoiceResult(Lcom/android/internal/app/IVoiceInteractorRequest;Landroid/os/Bundle;)V
 Lcom/android/internal/app/IVoiceInteractorCallback$Stub$Proxy;->deliverCancel(Lcom/android/internal/app/IVoiceInteractorRequest;)V
@@ -93525,7 +87234,6 @@
 Lcom/android/internal/app/IVoiceInteractorCallback$Stub$Proxy;->deliverPickOptionResult(Lcom/android/internal/app/IVoiceInteractorRequest;Z[Landroid/app/VoiceInteractor$PickOptionRequest$Option;Landroid/os/Bundle;)V
 Lcom/android/internal/app/IVoiceInteractorCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/app/IVoiceInteractorCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Lcom/android/internal/app/IVoiceInteractorCallback$Stub;
 Lcom/android/internal/app/IVoiceInteractorCallback$Stub;-><init>()V
 Lcom/android/internal/app/IVoiceInteractorCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractorCallback;
 Lcom/android/internal/app/IVoiceInteractorCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -93535,26 +87243,21 @@
 Lcom/android/internal/app/IVoiceInteractorCallback$Stub;->TRANSACTION_deliverCompleteVoiceResult:I
 Lcom/android/internal/app/IVoiceInteractorCallback$Stub;->TRANSACTION_deliverConfirmationResult:I
 Lcom/android/internal/app/IVoiceInteractorCallback$Stub;->TRANSACTION_deliverPickOptionResult:I
-Lcom/android/internal/app/IVoiceInteractorCallback;
 Lcom/android/internal/app/IVoiceInteractorCallback;->deliverAbortVoiceResult(Lcom/android/internal/app/IVoiceInteractorRequest;Landroid/os/Bundle;)V
 Lcom/android/internal/app/IVoiceInteractorCallback;->deliverCancel(Lcom/android/internal/app/IVoiceInteractorRequest;)V
 Lcom/android/internal/app/IVoiceInteractorCallback;->deliverCommandResult(Lcom/android/internal/app/IVoiceInteractorRequest;ZLandroid/os/Bundle;)V
 Lcom/android/internal/app/IVoiceInteractorCallback;->deliverCompleteVoiceResult(Lcom/android/internal/app/IVoiceInteractorRequest;Landroid/os/Bundle;)V
 Lcom/android/internal/app/IVoiceInteractorCallback;->deliverConfirmationResult(Lcom/android/internal/app/IVoiceInteractorRequest;ZLandroid/os/Bundle;)V
 Lcom/android/internal/app/IVoiceInteractorCallback;->deliverPickOptionResult(Lcom/android/internal/app/IVoiceInteractorRequest;Z[Landroid/app/VoiceInteractor$PickOptionRequest$Option;Landroid/os/Bundle;)V
-Lcom/android/internal/app/IVoiceInteractorRequest$Stub$Proxy;
 Lcom/android/internal/app/IVoiceInteractorRequest$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/app/IVoiceInteractorRequest$Stub$Proxy;->cancel()V
 Lcom/android/internal/app/IVoiceInteractorRequest$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/app/IVoiceInteractorRequest$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Lcom/android/internal/app/IVoiceInteractorRequest$Stub;
 Lcom/android/internal/app/IVoiceInteractorRequest$Stub;-><init>()V
 Lcom/android/internal/app/IVoiceInteractorRequest$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractorRequest;
 Lcom/android/internal/app/IVoiceInteractorRequest$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/app/IVoiceInteractorRequest$Stub;->TRANSACTION_cancel:I
-Lcom/android/internal/app/IVoiceInteractorRequest;
 Lcom/android/internal/app/IVoiceInteractorRequest;->cancel()V
-Lcom/android/internal/appwidget/IAppWidgetHost$Stub$Proxy;
 Lcom/android/internal/appwidget/IAppWidgetHost$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/appwidget/IAppWidgetHost$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/appwidget/IAppWidgetHost$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -93562,7 +87265,6 @@
 Lcom/android/internal/appwidget/IAppWidgetHost$Stub$Proxy;->providersChanged()V
 Lcom/android/internal/appwidget/IAppWidgetHost$Stub$Proxy;->updateAppWidget(ILandroid/widget/RemoteViews;)V
 Lcom/android/internal/appwidget/IAppWidgetHost$Stub$Proxy;->viewDataChanged(II)V
-Lcom/android/internal/appwidget/IAppWidgetHost$Stub;
 Lcom/android/internal/appwidget/IAppWidgetHost$Stub;-><init>()V
 Lcom/android/internal/appwidget/IAppWidgetHost$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/appwidget/IAppWidgetHost;
 Lcom/android/internal/appwidget/IAppWidgetHost$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -93570,10 +87272,8 @@
 Lcom/android/internal/appwidget/IAppWidgetHost$Stub;->TRANSACTION_providersChanged:I
 Lcom/android/internal/appwidget/IAppWidgetHost$Stub;->TRANSACTION_updateAppWidget:I
 Lcom/android/internal/appwidget/IAppWidgetHost$Stub;->TRANSACTION_viewDataChanged:I
-Lcom/android/internal/appwidget/IAppWidgetHost;
 Lcom/android/internal/appwidget/IAppWidgetHost;->providersChanged()V
 Lcom/android/internal/appwidget/IAppWidgetHost;->viewDataChanged(II)V
-Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;
 Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->allocateAppWidgetId(Ljava/lang/String;I)I
 Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->bindAppWidgetId(Ljava/lang/String;IILandroid/content/ComponentName;Landroid/os/Bundle;)Z
@@ -93603,7 +87303,6 @@
 Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->updateAppWidgetOptions(Ljava/lang/String;ILandroid/os/Bundle;)V
 Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->updateAppWidgetProvider(Landroid/content/ComponentName;Landroid/widget/RemoteViews;)V
 Lcom/android/internal/appwidget/IAppWidgetService$Stub$Proxy;->updateAppWidgetProviderInfo(Landroid/content/ComponentName;Ljava/lang/String;)V
-Lcom/android/internal/appwidget/IAppWidgetService$Stub;
 Lcom/android/internal/appwidget/IAppWidgetService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_allocateAppWidgetId:I
 Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_bindRemoteViewsService:I
@@ -93630,7 +87329,6 @@
 Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_updateAppWidgetOptions:I
 Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_updateAppWidgetProvider:I
 Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_updateAppWidgetProviderInfo:I
-Lcom/android/internal/appwidget/IAppWidgetService;
 Lcom/android/internal/appwidget/IAppWidgetService;->allocateAppWidgetId(Ljava/lang/String;I)I
 Lcom/android/internal/appwidget/IAppWidgetService;->createAppWidgetConfigIntentSender(Ljava/lang/String;II)Landroid/content/IntentSender;
 Lcom/android/internal/appwidget/IAppWidgetService;->deleteAllHosts()V
@@ -93653,7 +87351,6 @@
 Lcom/android/internal/appwidget/IAppWidgetService;->updateAppWidgetOptions(Ljava/lang/String;ILandroid/os/Bundle;)V
 Lcom/android/internal/appwidget/IAppWidgetService;->updateAppWidgetProvider(Landroid/content/ComponentName;Landroid/widget/RemoteViews;)V
 Lcom/android/internal/appwidget/IAppWidgetService;->updateAppWidgetProviderInfo(Landroid/content/ComponentName;Ljava/lang/String;)V
-Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;
 Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->abortFullRestore()I
 Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->cancelFullBackup()V
@@ -93684,7 +87381,6 @@
 Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->sendBackupData(I)I
 Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->startRestore(J[Landroid/content/pm/PackageInfo;)I
 Lcom/android/internal/backup/IBackupTransport$Stub$Proxy;->transportDirName()Ljava/lang/String;
-Lcom/android/internal/backup/IBackupTransport$Stub;
 Lcom/android/internal/backup/IBackupTransport$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_abortFullRestore:I
 Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_cancelFullBackup:I
@@ -93713,7 +87409,6 @@
 Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_sendBackupData:I
 Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_startRestore:I
 Lcom/android/internal/backup/IBackupTransport$Stub;->TRANSACTION_transportDirName:I
-Lcom/android/internal/backup/IBackupTransport;
 Lcom/android/internal/backup/IBackupTransport;->abortFullRestore()I
 Lcom/android/internal/backup/IBackupTransport;->cancelFullBackup()V
 Lcom/android/internal/backup/IBackupTransport;->checkFullBackupSize(J)I
@@ -93733,22 +87428,18 @@
 Lcom/android/internal/backup/IBackupTransport;->performFullBackup(Landroid/content/pm/PackageInfo;Landroid/os/ParcelFileDescriptor;I)I
 Lcom/android/internal/backup/IBackupTransport;->requestFullBackupTime()J
 Lcom/android/internal/backup/IBackupTransport;->sendBackupData(I)I
-Lcom/android/internal/backup/IObbBackupService$Stub$Proxy;
 Lcom/android/internal/backup/IObbBackupService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/backup/IObbBackupService$Stub$Proxy;->backupObbs(Ljava/lang/String;Landroid/os/ParcelFileDescriptor;ILandroid/app/backup/IBackupManager;)V
 Lcom/android/internal/backup/IObbBackupService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/backup/IObbBackupService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/backup/IObbBackupService$Stub$Proxy;->restoreObbFile(Ljava/lang/String;Landroid/os/ParcelFileDescriptor;JILjava/lang/String;JJILandroid/app/backup/IBackupManager;)V
-Lcom/android/internal/backup/IObbBackupService$Stub;
 Lcom/android/internal/backup/IObbBackupService$Stub;-><init>()V
 Lcom/android/internal/backup/IObbBackupService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/backup/IObbBackupService;
 Lcom/android/internal/backup/IObbBackupService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/backup/IObbBackupService$Stub;->TRANSACTION_backupObbs:I
 Lcom/android/internal/backup/IObbBackupService$Stub;->TRANSACTION_restoreObbFile:I
-Lcom/android/internal/backup/IObbBackupService;
 Lcom/android/internal/backup/IObbBackupService;->backupObbs(Ljava/lang/String;Landroid/os/ParcelFileDescriptor;ILandroid/app/backup/IBackupManager;)V
 Lcom/android/internal/backup/IObbBackupService;->restoreObbFile(Ljava/lang/String;Landroid/os/ParcelFileDescriptor;JILjava/lang/String;JJILandroid/app/backup/IBackupManager;)V
-Lcom/android/internal/content/PackageMonitor;
 Lcom/android/internal/content/PackageMonitor;->anyPackagesAppearing()Z
 Lcom/android/internal/content/PackageMonitor;->anyPackagesDisappearing()Z
 Lcom/android/internal/content/PackageMonitor;->didSomePackagesChange()Z
@@ -93797,10 +87488,8 @@
 Lcom/android/internal/content/PackageMonitor;->sExternalFilt:Landroid/content/IntentFilter;
 Lcom/android/internal/content/PackageMonitor;->sNonDataFilt:Landroid/content/IntentFilter;
 Lcom/android/internal/content/PackageMonitor;->sPackageFilt:Landroid/content/IntentFilter;
-Lcom/android/internal/content/ReferrerIntent;
 Lcom/android/internal/content/ReferrerIntent;-><init>(Landroid/os/Parcel;)V
 Lcom/android/internal/content/ReferrerIntent;->CREATOR:Landroid/os/Parcelable$Creator;
-Lcom/android/internal/location/ILocationProvider$Stub$Proxy;
 Lcom/android/internal/location/ILocationProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/location/ILocationProvider$Stub$Proxy;->disable()V
 Lcom/android/internal/location/ILocationProvider$Stub$Proxy;->enable()V
@@ -93811,7 +87500,6 @@
 Lcom/android/internal/location/ILocationProvider$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/location/ILocationProvider$Stub$Proxy;->sendExtraCommand(Ljava/lang/String;Landroid/os/Bundle;)Z
 Lcom/android/internal/location/ILocationProvider$Stub$Proxy;->setRequest(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
-Lcom/android/internal/location/ILocationProvider$Stub;
 Lcom/android/internal/location/ILocationProvider$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/location/ILocationProvider$Stub;->TRANSACTION_disable:I
 Lcom/android/internal/location/ILocationProvider$Stub;->TRANSACTION_enable:I
@@ -93820,8 +87508,6 @@
 Lcom/android/internal/location/ILocationProvider$Stub;->TRANSACTION_getStatusUpdateTime:I
 Lcom/android/internal/location/ILocationProvider$Stub;->TRANSACTION_sendExtraCommand:I
 Lcom/android/internal/location/ILocationProvider$Stub;->TRANSACTION_setRequest:I
-Lcom/android/internal/location/ILocationProvider;
-Lcom/android/internal/location/ProviderProperties;
 Lcom/android/internal/location/ProviderProperties;-><init>(ZZZZZZZII)V
 Lcom/android/internal/location/ProviderProperties;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/internal/location/ProviderProperties;->mAccuracy:I
@@ -93833,10 +87519,8 @@
 Lcom/android/internal/location/ProviderProperties;->mSupportsAltitude:Z
 Lcom/android/internal/location/ProviderProperties;->mSupportsBearing:Z
 Lcom/android/internal/location/ProviderProperties;->mSupportsSpeed:Z
-Lcom/android/internal/location/ProviderRequest;
 Lcom/android/internal/location/ProviderRequest;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/internal/location/ProviderRequest;->lowPowerMode:Z
-Lcom/android/internal/logging/EventLogTags;
 Lcom/android/internal/logging/EventLogTags;-><init>()V
 Lcom/android/internal/logging/EventLogTags;->COMMIT_SYS_CONFIG_FILE:I
 Lcom/android/internal/logging/EventLogTags;->SYSUI_ACTION:I
@@ -93852,7 +87536,6 @@
 Lcom/android/internal/logging/EventLogTags;->writeSysuiLatency(II)V
 Lcom/android/internal/logging/EventLogTags;->writeSysuiMultiAction([Ljava/lang/Object;)V
 Lcom/android/internal/logging/EventLogTags;->writeSysuiViewVisibility(II)V
-Lcom/android/internal/logging/MetricsLogger;
 Lcom/android/internal/logging/MetricsLogger;->action(I)V
 Lcom/android/internal/logging/MetricsLogger;->action(II)V
 Lcom/android/internal/logging/MetricsLogger;->action(ILjava/lang/String;)V
@@ -93879,7 +87562,6 @@
 Lcom/android/internal/logging/MetricsLogger;->visibility(Landroid/content/Context;IZ)V
 Lcom/android/internal/logging/MetricsLogger;->visible(I)V
 Lcom/android/internal/logging/MetricsLogger;->visible(Landroid/content/Context;I)V
-Lcom/android/internal/net/INetworkWatchlistManager$Stub$Proxy;
 Lcom/android/internal/net/INetworkWatchlistManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/net/INetworkWatchlistManager$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/net/INetworkWatchlistManager$Stub$Proxy;->getWatchlistConfigHash()[B
@@ -93888,7 +87570,6 @@
 Lcom/android/internal/net/INetworkWatchlistManager$Stub$Proxy;->reportWatchlistIfNecessary()V
 Lcom/android/internal/net/INetworkWatchlistManager$Stub$Proxy;->startWatchlistLogging()Z
 Lcom/android/internal/net/INetworkWatchlistManager$Stub$Proxy;->stopWatchlistLogging()Z
-Lcom/android/internal/net/INetworkWatchlistManager$Stub;
 Lcom/android/internal/net/INetworkWatchlistManager$Stub;-><init>()V
 Lcom/android/internal/net/INetworkWatchlistManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/net/INetworkWatchlistManager;
 Lcom/android/internal/net/INetworkWatchlistManager$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -93897,13 +87578,11 @@
 Lcom/android/internal/net/INetworkWatchlistManager$Stub;->TRANSACTION_reportWatchlistIfNecessary:I
 Lcom/android/internal/net/INetworkWatchlistManager$Stub;->TRANSACTION_startWatchlistLogging:I
 Lcom/android/internal/net/INetworkWatchlistManager$Stub;->TRANSACTION_stopWatchlistLogging:I
-Lcom/android/internal/net/INetworkWatchlistManager;
 Lcom/android/internal/net/INetworkWatchlistManager;->getWatchlistConfigHash()[B
 Lcom/android/internal/net/INetworkWatchlistManager;->reloadWatchlist()V
 Lcom/android/internal/net/INetworkWatchlistManager;->reportWatchlistIfNecessary()V
 Lcom/android/internal/net/INetworkWatchlistManager;->startWatchlistLogging()Z
 Lcom/android/internal/net/INetworkWatchlistManager;->stopWatchlistLogging()Z
-Lcom/android/internal/net/LegacyVpnInfo;
 Lcom/android/internal/net/LegacyVpnInfo;->intent:Landroid/app/PendingIntent;
 Lcom/android/internal/net/LegacyVpnInfo;->stateFromNetworkInfo(Landroid/net/NetworkInfo;)I
 Lcom/android/internal/net/LegacyVpnInfo;->STATE_CONNECTED:I
@@ -93913,7 +87592,6 @@
 Lcom/android/internal/net/LegacyVpnInfo;->STATE_INITIALIZING:I
 Lcom/android/internal/net/LegacyVpnInfo;->STATE_TIMEOUT:I
 Lcom/android/internal/net/LegacyVpnInfo;->TAG:Ljava/lang/String;
-Lcom/android/internal/net/NetworkStatsFactory;
 Lcom/android/internal/net/NetworkStatsFactory;-><init>()V
 Lcom/android/internal/net/NetworkStatsFactory;-><init>(Ljava/io/File;Z)V
 Lcom/android/internal/net/NetworkStatsFactory;->apply464xlatAdjustments(Landroid/net/NetworkStats;Landroid/net/NetworkStats;)V
@@ -93938,7 +87616,6 @@
 Lcom/android/internal/net/NetworkStatsFactory;->sStackedIfaces:Ljava/util/concurrent/ConcurrentHashMap;
 Lcom/android/internal/net/NetworkStatsFactory;->TAG:Ljava/lang/String;
 Lcom/android/internal/net/NetworkStatsFactory;->USE_NATIVE_PARSING:Z
-Lcom/android/internal/net/VpnConfig;
 Lcom/android/internal/net/VpnConfig;->addLegacyAddresses(Ljava/lang/String;)V
 Lcom/android/internal/net/VpnConfig;->addLegacyRoutes(Ljava/lang/String;)V
 Lcom/android/internal/net/VpnConfig;->addresses:Ljava/util/List;
@@ -93967,13 +87644,11 @@
 Lcom/android/internal/net/VpnConfig;->underlyingNetworks:[Landroid/net/Network;
 Lcom/android/internal/net/VpnConfig;->updateAllowedFamilies(Ljava/net/InetAddress;)V
 Lcom/android/internal/net/VpnConfig;->user:Ljava/lang/String;
-Lcom/android/internal/net/VpnInfo;
 Lcom/android/internal/net/VpnInfo;-><init>()V
 Lcom/android/internal/net/VpnInfo;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/internal/net/VpnInfo;->ownerUid:I
 Lcom/android/internal/net/VpnInfo;->primaryUnderlyingIface:Ljava/lang/String;
 Lcom/android/internal/net/VpnInfo;->vpnIface:Ljava/lang/String;
-Lcom/android/internal/net/VpnProfile;
 Lcom/android/internal/net/VpnProfile;-><init>(Ljava/lang/String;)V
 Lcom/android/internal/net/VpnProfile;->areDnsAddressesNumeric()Z
 Lcom/android/internal/net/VpnProfile;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -94001,18 +87676,14 @@
 Lcom/android/internal/net/VpnProfile;->TYPE_L2TP_IPSEC_RSA:I
 Lcom/android/internal/net/VpnProfile;->TYPE_MAX:I
 Lcom/android/internal/net/VpnProfile;->TYPE_PPTP:I
-Lcom/android/internal/os/AppFuseMount;
 Lcom/android/internal/os/AppFuseMount;-><init>(ILandroid/os/ParcelFileDescriptor;)V
 Lcom/android/internal/os/AppFuseMount;->CREATOR:Landroid/os/Parcelable$Creator;
 Lcom/android/internal/os/AppFuseMount;->fd:Landroid/os/ParcelFileDescriptor;
 Lcom/android/internal/os/AppFuseMount;->mountPointId:I
-Lcom/android/internal/os/AtomicFile;
 Lcom/android/internal/os/AtomicFile;->delete()V
 Lcom/android/internal/os/AtomicFile;->exists()Z
 Lcom/android/internal/os/AtomicFile;->mBackupName:Ljava/io/File;
 Lcom/android/internal/os/AtomicFile;->mBaseName:Ljava/io/File;
-Lcom/android/internal/os/BatterySipper$DrainType;
-Lcom/android/internal/os/BatterySipper$DrainType;-><init>()V
 Lcom/android/internal/os/BatterySipper$DrainType;->AMBIENT_DISPLAY:Lcom/android/internal/os/BatterySipper$DrainType;
 Lcom/android/internal/os/BatterySipper$DrainType;->BLUETOOTH:Lcom/android/internal/os/BatterySipper$DrainType;
 Lcom/android/internal/os/BatterySipper$DrainType;->CAMERA:Lcom/android/internal/os/BatterySipper$DrainType;
@@ -94027,7 +87698,6 @@
 Lcom/android/internal/os/BatterySipper$DrainType;->USER:Lcom/android/internal/os/BatterySipper$DrainType;
 Lcom/android/internal/os/BatterySipper$DrainType;->valueOf(Ljava/lang/String;)Lcom/android/internal/os/BatterySipper$DrainType;
 Lcom/android/internal/os/BatterySipper$DrainType;->WIFI:Lcom/android/internal/os/BatterySipper$DrainType;
-Lcom/android/internal/os/BatterySipper;
 Lcom/android/internal/os/BatterySipper;->audioPowerMah:D
 Lcom/android/internal/os/BatterySipper;->audioTimeMs:J
 Lcom/android/internal/os/BatterySipper;->bluetoothPowerMah:D
@@ -94066,7 +87736,6 @@
 Lcom/android/internal/os/BatterySipper;->wifiRxPackets:J
 Lcom/android/internal/os/BatterySipper;->wifiTxBytes:J
 Lcom/android/internal/os/BatterySipper;->wifiTxPackets:J
-Lcom/android/internal/os/BatteryStatsHelper;
 Lcom/android/internal/os/BatteryStatsHelper;->addAmbientDisplayUsage()V
 Lcom/android/internal/os/BatteryStatsHelper;->addBluetoothUsage()V
 Lcom/android/internal/os/BatteryStatsHelper;->addEntry(Lcom/android/internal/os/BatterySipper$DrainType;JD)Lcom/android/internal/os/BatterySipper;
@@ -94157,7 +87826,6 @@
 Lcom/android/internal/os/BatteryStatsHelper;->statsFromFile(Landroid/content/Context;Ljava/lang/String;)Landroid/os/BatteryStats;
 Lcom/android/internal/os/BatteryStatsHelper;->storeStatsHistoryInFile(Ljava/lang/String;)V
 Lcom/android/internal/os/BatteryStatsHelper;->TAG:Ljava/lang/String;
-Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;
 Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Lcom/android/internal/os/BatteryStatsImpl$Uid;ILcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
 Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Lcom/android/internal/os/BatteryStatsImpl$Uid;ILcom/android/internal/os/BatteryStatsImpl$TimeBase;Landroid/os/Parcel;)V
 Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;->abortLastDuration(Lcom/android/internal/os/BatteryStatsImpl;)V
@@ -94175,13 +87843,10 @@
 Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;->recomputeLastDuration(JZ)V
 Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;->reset(Z)Z
 Lcom/android/internal/os/BatteryStatsImpl$BatchTimer;->writeToParcel(Landroid/os/Parcel;J)V
-Lcom/android/internal/os/BatteryStatsImpl$BatteryCallback;
 Lcom/android/internal/os/BatteryStatsImpl$BatteryCallback;->batteryNeedsCpuUpdate()V
 Lcom/android/internal/os/BatteryStatsImpl$BatteryCallback;->batteryPowerChanged(Z)V
 Lcom/android/internal/os/BatteryStatsImpl$BatteryCallback;->batterySendBroadcast(Landroid/content/Intent;)V
 Lcom/android/internal/os/BatteryStatsImpl$BatteryCallback;->batteryStatsReset()V
-Lcom/android/internal/os/BatteryStatsImpl$BluetoothActivityInfoCache;
-Lcom/android/internal/os/BatteryStatsImpl$BluetoothActivityInfoCache;-><init>()V
 Lcom/android/internal/os/BatteryStatsImpl$BluetoothActivityInfoCache;->energy:J
 Lcom/android/internal/os/BatteryStatsImpl$BluetoothActivityInfoCache;->idleTimeMs:J
 Lcom/android/internal/os/BatteryStatsImpl$BluetoothActivityInfoCache;->rxTimeMs:J
@@ -94189,11 +87854,8 @@
 Lcom/android/internal/os/BatteryStatsImpl$BluetoothActivityInfoCache;->txTimeMs:J
 Lcom/android/internal/os/BatteryStatsImpl$BluetoothActivityInfoCache;->uidRxBytes:Landroid/util/SparseLongArray;
 Lcom/android/internal/os/BatteryStatsImpl$BluetoothActivityInfoCache;->uidTxBytes:Landroid/util/SparseLongArray;
-Lcom/android/internal/os/BatteryStatsImpl$Clocks;
 Lcom/android/internal/os/BatteryStatsImpl$Clocks;->elapsedRealtime()J
 Lcom/android/internal/os/BatteryStatsImpl$Clocks;->uptimeMillis()J
-Lcom/android/internal/os/BatteryStatsImpl$Constants;
-Lcom/android/internal/os/BatteryStatsImpl$Constants;-><init>(Landroid/os/Handler;)V
 Lcom/android/internal/os/BatteryStatsImpl$Constants;->BATTERY_LEVEL_COLLECTION_DELAY_MS:J
 Lcom/android/internal/os/BatteryStatsImpl$Constants;->DEFAULT_BATTERY_LEVEL_COLLECTION_DELAY_MS:J
 Lcom/android/internal/os/BatteryStatsImpl$Constants;->DEFAULT_EXTERNAL_STATS_COLLECTION_RATE_LIMIT_MS:J
@@ -94224,7 +87886,6 @@
 Lcom/android/internal/os/BatteryStatsImpl$Constants;->updateProcStateCpuTimesReadDelayMs(JJ)V
 Lcom/android/internal/os/BatteryStatsImpl$Constants;->updateTrackCpuTimesByProcStateLocked(ZZ)V
 Lcom/android/internal/os/BatteryStatsImpl$Constants;->updateUidRemoveDelay(J)V
-Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;
 Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;-><init>(Lcom/android/internal/os/BatteryStatsImpl$TimeBase;I)V
 Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;-><init>(Lcom/android/internal/os/BatteryStatsImpl$TimeBase;ILandroid/os/Parcel;)V
 Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->detach()V
@@ -94243,7 +87904,6 @@
 Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->readSummaryFromParcel(Landroid/os/Parcel;)V
 Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->reset(Z)V
 Lcom/android/internal/os/BatteryStatsImpl$ControllerActivityCounterImpl;->writeSummaryToParcel(Landroid/os/Parcel;)V
-Lcom/android/internal/os/BatteryStatsImpl$Counter;
 Lcom/android/internal/os/BatteryStatsImpl$Counter;-><init>(Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
 Lcom/android/internal/os/BatteryStatsImpl$Counter;-><init>(Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Landroid/os/Parcel;)V
 Lcom/android/internal/os/BatteryStatsImpl$Counter;->addAtomic(I)V
@@ -94263,7 +87923,6 @@
 Lcom/android/internal/os/BatteryStatsImpl$Counter;->writeCounterToParcel(Landroid/os/Parcel;Lcom/android/internal/os/BatteryStatsImpl$Counter;)V
 Lcom/android/internal/os/BatteryStatsImpl$Counter;->writeSummaryFromParcelLocked(Landroid/os/Parcel;)V
 Lcom/android/internal/os/BatteryStatsImpl$Counter;->writeToParcel(Landroid/os/Parcel;)V
-Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
 Lcom/android/internal/os/BatteryStatsImpl$DualTimer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Lcom/android/internal/os/BatteryStatsImpl$Uid;ILjava/util/ArrayList;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
 Lcom/android/internal/os/BatteryStatsImpl$DualTimer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Lcom/android/internal/os/BatteryStatsImpl$Uid;ILjava/util/ArrayList;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Landroid/os/Parcel;)V
 Lcom/android/internal/os/BatteryStatsImpl$DualTimer;->detach()V
@@ -94276,7 +87935,6 @@
 Lcom/android/internal/os/BatteryStatsImpl$DualTimer;->stopRunningLocked(J)V
 Lcom/android/internal/os/BatteryStatsImpl$DualTimer;->writeSummaryFromParcelLocked(Landroid/os/Parcel;J)V
 Lcom/android/internal/os/BatteryStatsImpl$DualTimer;->writeToParcel(Landroid/os/Parcel;J)V
-Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;
 Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Lcom/android/internal/os/BatteryStatsImpl$Uid;ILjava/util/ArrayList;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
 Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Lcom/android/internal/os/BatteryStatsImpl$Uid;ILjava/util/ArrayList;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Landroid/os/Parcel;)V
 Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;->getCurrentDurationMsLocked(J)J
@@ -94295,7 +87953,6 @@
 Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;->stopRunningLocked(J)V
 Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;->writeSummaryFromParcelLocked(Landroid/os/Parcel;J)V
 Lcom/android/internal/os/BatteryStatsImpl$DurationTimer;->writeToParcel(Landroid/os/Parcel;J)V
-Lcom/android/internal/os/BatteryStatsImpl$ExternalStatsSync;
 Lcom/android/internal/os/BatteryStatsImpl$ExternalStatsSync;->cancelCpuSyncDueToWakelockChange()V
 Lcom/android/internal/os/BatteryStatsImpl$ExternalStatsSync;->scheduleCopyFromAllUidsCpuTimes(ZZ)Ljava/util/concurrent/Future;
 Lcom/android/internal/os/BatteryStatsImpl$ExternalStatsSync;->scheduleCpuSyncDueToRemovedUid(I)Ljava/util/concurrent/Future;
@@ -94311,7 +87968,6 @@
 Lcom/android/internal/os/BatteryStatsImpl$ExternalStatsSync;->UPDATE_RADIO:I
 Lcom/android/internal/os/BatteryStatsImpl$ExternalStatsSync;->UPDATE_RPM:I
 Lcom/android/internal/os/BatteryStatsImpl$ExternalStatsSync;->UPDATE_WIFI:I
-Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;
 Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;-><init>(Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
 Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;-><init>(Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Landroid/os/Parcel;)V
 Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->addCountLocked(J)V
@@ -94332,7 +87988,6 @@
 Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->update(JZ)V
 Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->writeSummaryFromParcelLocked(Landroid/os/Parcel;)V
 Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounter;->writeToParcel(Landroid/os/Parcel;)V
-Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;
 Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;-><init>(Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
 Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;-><init>(Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Landroid/os/Parcel;)V
 Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->addCountLocked([J)V
@@ -94358,10 +88013,6 @@
 Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->writeSummaryToParcelLocked(Landroid/os/Parcel;Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;)V
 Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->writeToParcel(Landroid/os/Parcel;)V
 Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;->writeToParcel(Landroid/os/Parcel;Lcom/android/internal/os/BatteryStatsImpl$LongSamplingCounterArray;)V
-Lcom/android/internal/os/BatteryStatsImpl$MyHandler;
-Lcom/android/internal/os/BatteryStatsImpl$MyHandler;-><init>(Landroid/os/Looper;)V
-Lcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;
-Lcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;-><init>(I)V
 Lcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->add(Ljava/lang/String;Ljava/lang/Object;)V
 Lcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->cleanup()V
 Lcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->clear()V
@@ -94378,11 +88029,9 @@
 Lcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->OVERFLOW_NAME:Ljava/lang/String;
 Lcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->startObject(Ljava/lang/String;)Ljava/lang/Object;
 Lcom/android/internal/os/BatteryStatsImpl$OverflowArrayMap;->stopObject(Ljava/lang/String;)Ljava/lang/Object;
-Lcom/android/internal/os/BatteryStatsImpl$PlatformIdleStateCallback;
 Lcom/android/internal/os/BatteryStatsImpl$PlatformIdleStateCallback;->fillLowPowerStats(Lcom/android/internal/os/RpmStats;)V
 Lcom/android/internal/os/BatteryStatsImpl$PlatformIdleStateCallback;->getPlatformLowPowerStats()Ljava/lang/String;
 Lcom/android/internal/os/BatteryStatsImpl$PlatformIdleStateCallback;->getSubsystemLowPowerStats()Ljava/lang/String;
-Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;
 Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
 Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Landroid/os/Parcel;)V
 Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->add(JI)V
@@ -94404,7 +88053,6 @@
 Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->setUpdateVersion(I)V
 Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->update(JI)V
 Lcom/android/internal/os/BatteryStatsImpl$SamplingTimer;->writeToParcel(Landroid/os/Parcel;J)V
-Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
 Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Lcom/android/internal/os/BatteryStatsImpl$Uid;ILjava/util/ArrayList;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
 Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Lcom/android/internal/os/BatteryStatsImpl$Uid;ILjava/util/ArrayList;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Landroid/os/Parcel;)V
 Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->computeCurrentCountLocked()I
@@ -94428,11 +88076,9 @@
 Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->stopAllRunningLocked(J)V
 Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->stopRunningLocked(J)V
 Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;->writeToParcel(Landroid/os/Parcel;J)V
-Lcom/android/internal/os/BatteryStatsImpl$SystemClocks;
 Lcom/android/internal/os/BatteryStatsImpl$SystemClocks;-><init>()V
 Lcom/android/internal/os/BatteryStatsImpl$SystemClocks;->elapsedRealtime()J
 Lcom/android/internal/os/BatteryStatsImpl$SystemClocks;->uptimeMillis()J
-Lcom/android/internal/os/BatteryStatsImpl$TimeBase;
 Lcom/android/internal/os/BatteryStatsImpl$TimeBase;-><init>()V
 Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->add(Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;)V
 Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->computeRealtime(JI)J
@@ -94462,10 +88108,8 @@
 Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->setRunning(ZJJ)Z
 Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->writeSummaryToParcel(Landroid/os/Parcel;JJ)V
 Lcom/android/internal/os/BatteryStatsImpl$TimeBase;->writeToParcel(Landroid/os/Parcel;JJ)V
-Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;
 Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;->onTimeStarted(JJJ)V
 Lcom/android/internal/os/BatteryStatsImpl$TimeBaseObs;->onTimeStopped(JJJ)V
-Lcom/android/internal/os/BatteryStatsImpl$Timer;
 Lcom/android/internal/os/BatteryStatsImpl$Timer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;ILcom/android/internal/os/BatteryStatsImpl$TimeBase;)V
 Lcom/android/internal/os/BatteryStatsImpl$Timer;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;ILcom/android/internal/os/BatteryStatsImpl$TimeBase;Landroid/os/Parcel;)V
 Lcom/android/internal/os/BatteryStatsImpl$Timer;->computeCurrentCountLocked()I
@@ -94491,7 +88135,6 @@
 Lcom/android/internal/os/BatteryStatsImpl$Timer;->reset(Z)Z
 Lcom/android/internal/os/BatteryStatsImpl$Timer;->writeSummaryFromParcelLocked(Landroid/os/Parcel;J)V
 Lcom/android/internal/os/BatteryStatsImpl$Timer;->writeToParcel(Landroid/os/Parcel;J)V
-Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;-><init>(Lcom/android/internal/os/BatteryStatsImpl;)V
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->detach()V
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->getLaunches(I)I
@@ -94522,7 +88165,6 @@
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->onTimeStopped(JJJ)V
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->readFromParcelLocked(Landroid/os/Parcel;)V
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg$Serv;->writeToParcelLocked(Landroid/os/Parcel;)V
-Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;-><init>(Lcom/android/internal/os/BatteryStatsImpl;)V
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->detach()V
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->getServiceStats()Landroid/util/ArrayMap;
@@ -94536,7 +88178,6 @@
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->onTimeStopped(JJJ)V
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->readFromParcelLocked(Landroid/os/Parcel;)V
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Pkg;->writeToParcelLocked(Landroid/os/Parcel;)V
-Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Ljava/lang/String;)V
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->addCpuTimeLocked(IIZ)V
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->addExcessiveCpu(JJ)V
@@ -94576,7 +88217,6 @@
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->readFromParcelLocked(Landroid/os/Parcel;)V
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->writeExcessivePowerToParcelLocked(Landroid/os/Parcel;)V
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Proc;->writeToParcelLocked(Landroid/os/Parcel;)V
-Lcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Lcom/android/internal/os/BatteryStatsImpl$Uid;I)V
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->getSensorBackgroundTime()Lcom/android/internal/os/BatteryStatsImpl$Timer;
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->mBsi:Lcom/android/internal/os/BatteryStatsImpl;
@@ -94587,7 +88227,6 @@
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->readTimersFromParcel(Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Landroid/os/Parcel;)Lcom/android/internal/os/BatteryStatsImpl$DualTimer;
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->reset()Z
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Sensor;->writeToParcelLocked(Landroid/os/Parcel;J)V
-Lcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;-><init>(Lcom/android/internal/os/BatteryStatsImpl;Lcom/android/internal/os/BatteryStatsImpl$Uid;)V
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;->mBsi:Lcom/android/internal/os/BatteryStatsImpl;
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;->mTimerDraw:Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
@@ -94600,7 +88239,6 @@
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;->readStopwatchTimerFromParcel(ILjava/util/ArrayList;Lcom/android/internal/os/BatteryStatsImpl$TimeBase;Landroid/os/Parcel;)Lcom/android/internal/os/BatteryStatsImpl$StopwatchTimer;
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;->reset()Z
 Lcom/android/internal/os/BatteryStatsImpl$Uid$Wakelock;->writeToParcelLocked(Landroid/os/Parcel;J)V
-Lcom/android/internal/os/BatteryStatsImpl$Uid;
 Lcom/android/internal/os/BatteryStatsImpl$Uid;-><init>(Lcom/android/internal/os/BatteryStatsImpl;I)V
 Lcom/android/internal/os/BatteryStatsImpl$Uid;->addIsolatedUid(I)V
 Lcom/android/internal/os/BatteryStatsImpl$Uid;->addProcStateScreenOffTimesMs(I[JZ)V
@@ -94816,20 +88454,15 @@
 Lcom/android/internal/os/BatteryStatsImpl$Uid;->updateUidProcessStateLocked(I)V
 Lcom/android/internal/os/BatteryStatsImpl$Uid;->writeJobCompletionsToParcelLocked(Landroid/os/Parcel;)V
 Lcom/android/internal/os/BatteryStatsImpl$Uid;->writeToParcelLocked(Landroid/os/Parcel;JJ)V
-Lcom/android/internal/os/BatteryStatsImpl$UidToRemove;
-Lcom/android/internal/os/BatteryStatsImpl$UidToRemove;-><init>(IIJ)V
-Lcom/android/internal/os/BatteryStatsImpl$UidToRemove;-><init>(IJ)V
 Lcom/android/internal/os/BatteryStatsImpl$UidToRemove;->endUid:I
 Lcom/android/internal/os/BatteryStatsImpl$UidToRemove;->remove()V
 Lcom/android/internal/os/BatteryStatsImpl$UidToRemove;->startUid:I
 Lcom/android/internal/os/BatteryStatsImpl$UidToRemove;->timeAddedInQueue:J
-Lcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;
 Lcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;-><init>()V
 Lcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;->exists(I)Z
 Lcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;->getUserIds()[I
 Lcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;->refreshUserIds()V
 Lcom/android/internal/os/BatteryStatsImpl$UserInfoProvider;->userIds:[I
-Lcom/android/internal/os/BatteryStatsImpl;
 Lcom/android/internal/os/BatteryStatsImpl;-><init>()V
 Lcom/android/internal/os/BatteryStatsImpl;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;)V
 Lcom/android/internal/os/BatteryStatsImpl;-><init>(Lcom/android/internal/os/BatteryStatsImpl$Clocks;Landroid/os/Parcel;)V
@@ -95481,7 +89114,6 @@
 Lcom/android/internal/os/BatteryStatsImpl;->writeSyncLocked()V
 Lcom/android/internal/os/BatteryStatsImpl;->writeToParcelLocked(Landroid/os/Parcel;ZI)V
 Lcom/android/internal/os/BatteryStatsImpl;->writeToParcelWithoutUids(Landroid/os/Parcel;I)V
-Lcom/android/internal/os/FuseAppLoop$Args;
 Lcom/android/internal/os/FuseAppLoop$Args;-><init>()V
 Lcom/android/internal/os/FuseAppLoop$Args;->data:[B
 Lcom/android/internal/os/FuseAppLoop$Args;->entry:Lcom/android/internal/os/FuseAppLoop$CallbackEntry;
@@ -95489,25 +89121,20 @@
 Lcom/android/internal/os/FuseAppLoop$Args;->offset:J
 Lcom/android/internal/os/FuseAppLoop$Args;->size:I
 Lcom/android/internal/os/FuseAppLoop$Args;->unique:J
-Lcom/android/internal/os/FuseAppLoop$BytesMap;
 Lcom/android/internal/os/FuseAppLoop$BytesMap;-><init>()V
 Lcom/android/internal/os/FuseAppLoop$BytesMap;->clear()V
 Lcom/android/internal/os/FuseAppLoop$BytesMap;->mEntries:Ljava/util/Map;
 Lcom/android/internal/os/FuseAppLoop$BytesMap;->startUsing(J)[B
 Lcom/android/internal/os/FuseAppLoop$BytesMap;->stopUsing(J)V
-Lcom/android/internal/os/FuseAppLoop$BytesMapEntry;
 Lcom/android/internal/os/FuseAppLoop$BytesMapEntry;-><init>()V
 Lcom/android/internal/os/FuseAppLoop$BytesMapEntry;->bytes:[B
 Lcom/android/internal/os/FuseAppLoop$BytesMapEntry;->counter:I
-Lcom/android/internal/os/FuseAppLoop$CallbackEntry;
 Lcom/android/internal/os/FuseAppLoop$CallbackEntry;-><init>(Landroid/os/ProxyFileDescriptorCallback;Landroid/os/Handler;)V
 Lcom/android/internal/os/FuseAppLoop$CallbackEntry;->callback:Landroid/os/ProxyFileDescriptorCallback;
 Lcom/android/internal/os/FuseAppLoop$CallbackEntry;->getThreadId()J
 Lcom/android/internal/os/FuseAppLoop$CallbackEntry;->handler:Landroid/os/Handler;
 Lcom/android/internal/os/FuseAppLoop$CallbackEntry;->opened:Z
-Lcom/android/internal/os/FuseAppLoop$UnmountedException;
 Lcom/android/internal/os/FuseAppLoop$UnmountedException;-><init>()V
-Lcom/android/internal/os/FuseAppLoop;
 Lcom/android/internal/os/FuseAppLoop;-><init>(ILandroid/os/ParcelFileDescriptor;Ljava/util/concurrent/ThreadFactory;)V
 Lcom/android/internal/os/FuseAppLoop;->ARGS_POOL_SIZE:I
 Lcom/android/internal/os/FuseAppLoop;->checkInode(J)I
@@ -95549,13 +89176,8 @@
 Lcom/android/internal/os/FuseAppLoop;->sDefaultThreadFactory:Ljava/util/concurrent/ThreadFactory;
 Lcom/android/internal/os/FuseAppLoop;->TAG:Ljava/lang/String;
 Lcom/android/internal/os/FuseAppLoop;->unregisterCallback(I)V
-Lcom/android/internal/os/FuseUnavailableMountException;
 Lcom/android/internal/os/FuseUnavailableMountException;-><init>(I)V
-Lcom/android/internal/os/HandlerCaller$Callback;
 Lcom/android/internal/os/HandlerCaller$Callback;->executeMessage(Landroid/os/Message;)V
-Lcom/android/internal/os/HandlerCaller$MyHandler;
-Lcom/android/internal/os/HandlerCaller$MyHandler;-><init>(Landroid/os/Looper;Z)V
-Lcom/android/internal/os/HandlerCaller;
 Lcom/android/internal/os/HandlerCaller;-><init>(Landroid/content/Context;Landroid/os/Looper;Lcom/android/internal/os/HandlerCaller$Callback;Z)V
 Lcom/android/internal/os/HandlerCaller;->executeOrSendMessage(Landroid/os/Message;)V
 Lcom/android/internal/os/HandlerCaller;->getHandler()Landroid/os/Handler;
@@ -95582,59 +89204,46 @@
 Lcom/android/internal/os/HandlerCaller;->removeMessages(ILjava/lang/Object;)V
 Lcom/android/internal/os/HandlerCaller;->sendMessageAndWait(Landroid/os/Message;)Lcom/android/internal/os/SomeArgs;
 Lcom/android/internal/os/HandlerCaller;->sendMessageDelayed(Landroid/os/Message;J)V
-Lcom/android/internal/os/IDropBoxManagerService$Stub$Proxy;
 Lcom/android/internal/os/IDropBoxManagerService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/os/IDropBoxManagerService$Stub$Proxy;->add(Landroid/os/DropBoxManager$Entry;)V
 Lcom/android/internal/os/IDropBoxManagerService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/os/IDropBoxManagerService$Stub$Proxy;->getNextEntry(Ljava/lang/String;J)Landroid/os/DropBoxManager$Entry;
 Lcom/android/internal/os/IDropBoxManagerService$Stub$Proxy;->isTagEnabled(Ljava/lang/String;)Z
 Lcom/android/internal/os/IDropBoxManagerService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Lcom/android/internal/os/IDropBoxManagerService$Stub;
 Lcom/android/internal/os/IDropBoxManagerService$Stub;-><init>()V
 Lcom/android/internal/os/IDropBoxManagerService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/os/IDropBoxManagerService$Stub;->TRANSACTION_add:I
 Lcom/android/internal/os/IDropBoxManagerService$Stub;->TRANSACTION_getNextEntry:I
 Lcom/android/internal/os/IDropBoxManagerService$Stub;->TRANSACTION_isTagEnabled:I
-Lcom/android/internal/os/IDropBoxManagerService;
 Lcom/android/internal/os/IDropBoxManagerService;->add(Landroid/os/DropBoxManager$Entry;)V
 Lcom/android/internal/os/IDropBoxManagerService;->isTagEnabled(Ljava/lang/String;)Z
-Lcom/android/internal/os/IParcelFileDescriptorFactory$Stub$Proxy;
 Lcom/android/internal/os/IParcelFileDescriptorFactory$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/os/IParcelFileDescriptorFactory$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/os/IParcelFileDescriptorFactory$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/os/IParcelFileDescriptorFactory$Stub$Proxy;->open(Ljava/lang/String;I)Landroid/os/ParcelFileDescriptor;
-Lcom/android/internal/os/IParcelFileDescriptorFactory$Stub;
 Lcom/android/internal/os/IParcelFileDescriptorFactory$Stub;-><init>()V
 Lcom/android/internal/os/IParcelFileDescriptorFactory$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/os/IParcelFileDescriptorFactory;
 Lcom/android/internal/os/IParcelFileDescriptorFactory$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/os/IParcelFileDescriptorFactory$Stub;->TRANSACTION_open:I
-Lcom/android/internal/os/IParcelFileDescriptorFactory;
 Lcom/android/internal/os/IParcelFileDescriptorFactory;->open(Ljava/lang/String;I)Landroid/os/ParcelFileDescriptor;
-Lcom/android/internal/os/IResultReceiver$Stub$Proxy;
 Lcom/android/internal/os/IResultReceiver$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/os/IResultReceiver$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/os/IResultReceiver$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/os/IResultReceiver$Stub$Proxy;->send(ILandroid/os/Bundle;)V
-Lcom/android/internal/os/IResultReceiver$Stub;
 Lcom/android/internal/os/IResultReceiver$Stub;-><init>()V
 Lcom/android/internal/os/IResultReceiver$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/os/IResultReceiver;
 Lcom/android/internal/os/IResultReceiver$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/os/IResultReceiver$Stub;->TRANSACTION_send:I
-Lcom/android/internal/os/IResultReceiver;
 Lcom/android/internal/os/IResultReceiver;->send(ILandroid/os/Bundle;)V
-Lcom/android/internal/os/IShellCallback$Stub$Proxy;
 Lcom/android/internal/os/IShellCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/os/IShellCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/os/IShellCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/os/IShellCallback$Stub$Proxy;->openFile(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
-Lcom/android/internal/os/IShellCallback$Stub;
 Lcom/android/internal/os/IShellCallback$Stub;-><init>()V
 Lcom/android/internal/os/IShellCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/os/IShellCallback;
 Lcom/android/internal/os/IShellCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/os/IShellCallback$Stub;->TRANSACTION_openFile:I
-Lcom/android/internal/os/IShellCallback;
 Lcom/android/internal/os/IShellCallback;->openFile(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
-Lcom/android/internal/os/KernelCpuProcReader;
 Lcom/android/internal/os/KernelCpuProcReader;-><init>(Ljava/lang/String;)V
 Lcom/android/internal/os/KernelCpuProcReader;->DEFAULT_THROTTLE_INTERVAL:J
 Lcom/android/internal/os/KernelCpuProcReader;->ERROR_THRESHOLD:I
@@ -95658,7 +89267,6 @@
 Lcom/android/internal/os/KernelCpuProcReader;->resize()Z
 Lcom/android/internal/os/KernelCpuProcReader;->setThrottleInterval(J)V
 Lcom/android/internal/os/KernelCpuProcReader;->TAG:Ljava/lang/String;
-Lcom/android/internal/os/KernelCpuSpeedReader;
 Lcom/android/internal/os/KernelCpuSpeedReader;-><init>(II)V
 Lcom/android/internal/os/KernelCpuSpeedReader;->mDeltaSpeedTimesMs:[J
 Lcom/android/internal/os/KernelCpuSpeedReader;->mJiffyMillis:J
@@ -95668,7 +89276,6 @@
 Lcom/android/internal/os/KernelCpuSpeedReader;->readAbsolute()[J
 Lcom/android/internal/os/KernelCpuSpeedReader;->readDelta()[J
 Lcom/android/internal/os/KernelCpuSpeedReader;->TAG:Ljava/lang/String;
-Lcom/android/internal/os/KernelMemoryBandwidthStats;
 Lcom/android/internal/os/KernelMemoryBandwidthStats;-><init>()V
 Lcom/android/internal/os/KernelMemoryBandwidthStats;->DEBUG:Z
 Lcom/android/internal/os/KernelMemoryBandwidthStats;->getBandwidthEntries()Landroid/util/LongSparseLongArray;
@@ -95678,10 +89285,8 @@
 Lcom/android/internal/os/KernelMemoryBandwidthStats;->parseStats(Ljava/io/BufferedReader;)V
 Lcom/android/internal/os/KernelMemoryBandwidthStats;->TAG:Ljava/lang/String;
 Lcom/android/internal/os/KernelMemoryBandwidthStats;->updateStats()V
-Lcom/android/internal/os/KernelSingleUidTimeReader$Injector;
 Lcom/android/internal/os/KernelSingleUidTimeReader$Injector;-><init>()V
 Lcom/android/internal/os/KernelSingleUidTimeReader$Injector;->readData(Ljava/lang/String;)[B
-Lcom/android/internal/os/KernelSingleUidTimeReader;
 Lcom/android/internal/os/KernelSingleUidTimeReader;-><init>(I)V
 Lcom/android/internal/os/KernelSingleUidTimeReader;-><init>(ILcom/android/internal/os/KernelSingleUidTimeReader$Injector;)V
 Lcom/android/internal/os/KernelSingleUidTimeReader;->computeDelta(I[J)[J
@@ -95709,9 +89314,7 @@
 Lcom/android/internal/os/KernelSingleUidTimeReader;->TAG:Ljava/lang/String;
 Lcom/android/internal/os/KernelSingleUidTimeReader;->TOTAL_READ_ERROR_COUNT:I
 Lcom/android/internal/os/KernelSingleUidTimeReader;->verifyCpuFreqsCount(ILjava/lang/String;)V
-Lcom/android/internal/os/KernelUidCpuActiveTimeReader$Callback;
 Lcom/android/internal/os/KernelUidCpuActiveTimeReader$Callback;->onUidCpuActiveTime(IJ)V
-Lcom/android/internal/os/KernelUidCpuActiveTimeReader;
 Lcom/android/internal/os/KernelUidCpuActiveTimeReader;-><init>()V
 Lcom/android/internal/os/KernelUidCpuActiveTimeReader;-><init>(Lcom/android/internal/os/KernelCpuProcReader;)V
 Lcom/android/internal/os/KernelUidCpuActiveTimeReader;->mCores:I
@@ -95724,9 +89327,7 @@
 Lcom/android/internal/os/KernelUidCpuActiveTimeReader;->removeUidsInRange(II)V
 Lcom/android/internal/os/KernelUidCpuActiveTimeReader;->sumActiveTime(Ljava/nio/IntBuffer;)D
 Lcom/android/internal/os/KernelUidCpuActiveTimeReader;->TAG:Ljava/lang/String;
-Lcom/android/internal/os/KernelUidCpuClusterTimeReader$Callback;
 Lcom/android/internal/os/KernelUidCpuClusterTimeReader$Callback;->onUidCpuPolicyTime(I[J)V
-Lcom/android/internal/os/KernelUidCpuClusterTimeReader;
 Lcom/android/internal/os/KernelUidCpuClusterTimeReader;-><init>()V
 Lcom/android/internal/os/KernelUidCpuClusterTimeReader;-><init>(Lcom/android/internal/os/KernelCpuProcReader;)V
 Lcom/android/internal/os/KernelUidCpuClusterTimeReader;->mCurTime:[D
@@ -95745,9 +89346,7 @@
 Lcom/android/internal/os/KernelUidCpuClusterTimeReader;->removeUidsInRange(II)V
 Lcom/android/internal/os/KernelUidCpuClusterTimeReader;->sumClusterTime(Ljava/nio/IntBuffer;[D)Z
 Lcom/android/internal/os/KernelUidCpuClusterTimeReader;->TAG:Ljava/lang/String;
-Lcom/android/internal/os/KernelUidCpuFreqTimeReader$Callback;
 Lcom/android/internal/os/KernelUidCpuFreqTimeReader$Callback;->onUidCpuFreqTime(I[J)V
-Lcom/android/internal/os/KernelUidCpuFreqTimeReader;
 Lcom/android/internal/os/KernelUidCpuFreqTimeReader;-><init>()V
 Lcom/android/internal/os/KernelUidCpuFreqTimeReader;-><init>(Lcom/android/internal/os/KernelCpuProcReader;)V
 Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->allUidTimesAvailable()Z
@@ -95774,9 +89373,7 @@
 Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->TAG:Ljava/lang/String;
 Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->TOTAL_READ_ERROR_COUNT:I
 Lcom/android/internal/os/KernelUidCpuFreqTimeReader;->UID_TIMES_PROC_FILE:Ljava/lang/String;
-Lcom/android/internal/os/KernelUidCpuTimeReader$Callback;
 Lcom/android/internal/os/KernelUidCpuTimeReader$Callback;->onUidCpuTime(IJJ)V
-Lcom/android/internal/os/KernelUidCpuTimeReader;
 Lcom/android/internal/os/KernelUidCpuTimeReader;-><init>()V
 Lcom/android/internal/os/KernelUidCpuTimeReader;->mLastSystemTimeUs:Landroid/util/SparseLongArray;
 Lcom/android/internal/os/KernelUidCpuTimeReader;->mLastTimeReadUs:J
@@ -95789,8 +89386,6 @@
 Lcom/android/internal/os/KernelUidCpuTimeReader;->sProcFile:Ljava/lang/String;
 Lcom/android/internal/os/KernelUidCpuTimeReader;->sRemoveUidProcFile:Ljava/lang/String;
 Lcom/android/internal/os/KernelUidCpuTimeReader;->TAG:Ljava/lang/String;
-Lcom/android/internal/os/KernelUidCpuTimeReaderBase$Callback;
-Lcom/android/internal/os/KernelUidCpuTimeReaderBase;
 Lcom/android/internal/os/KernelUidCpuTimeReaderBase;-><init>()V
 Lcom/android/internal/os/KernelUidCpuTimeReaderBase;->DEBUG:Z
 Lcom/android/internal/os/KernelUidCpuTimeReaderBase;->DEFAULT_THROTTLE_INTERVAL:J
@@ -95800,7 +89395,6 @@
 Lcom/android/internal/os/KernelUidCpuTimeReaderBase;->readDeltaImpl(Lcom/android/internal/os/KernelUidCpuTimeReaderBase$Callback;)V
 Lcom/android/internal/os/KernelUidCpuTimeReaderBase;->setThrottleInterval(J)V
 Lcom/android/internal/os/KernelUidCpuTimeReaderBase;->TAG:Ljava/lang/String;
-Lcom/android/internal/os/KernelWakelockReader;
 Lcom/android/internal/os/KernelWakelockReader;-><init>()V
 Lcom/android/internal/os/KernelWakelockReader;->mProcWakelocksData:[J
 Lcom/android/internal/os/KernelWakelockReader;->mProcWakelocksName:[Ljava/lang/String;
@@ -95812,15 +89406,12 @@
 Lcom/android/internal/os/KernelWakelockReader;->sWakeupSourceFile:Ljava/lang/String;
 Lcom/android/internal/os/KernelWakelockReader;->TAG:Ljava/lang/String;
 Lcom/android/internal/os/KernelWakelockReader;->WAKEUP_SOURCES_FORMAT:[I
-Lcom/android/internal/os/KernelWakelockStats$Entry;
 Lcom/android/internal/os/KernelWakelockStats$Entry;-><init>(IJI)V
 Lcom/android/internal/os/KernelWakelockStats$Entry;->mCount:I
 Lcom/android/internal/os/KernelWakelockStats$Entry;->mTotalTime:J
 Lcom/android/internal/os/KernelWakelockStats$Entry;->mVersion:I
-Lcom/android/internal/os/KernelWakelockStats;
 Lcom/android/internal/os/KernelWakelockStats;-><init>()V
 Lcom/android/internal/os/KernelWakelockStats;->kernelWakelockVersion:I
-Lcom/android/internal/os/MobileRadioPowerCalculator;
 Lcom/android/internal/os/MobileRadioPowerCalculator;-><init>(Lcom/android/internal/os/PowerProfile;Landroid/os/BatteryStats;)V
 Lcom/android/internal/os/MobileRadioPowerCalculator;->calculateApp(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
 Lcom/android/internal/os/MobileRadioPowerCalculator;->calculateRemaining(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats;JJI)V
@@ -95834,18 +89425,15 @@
 Lcom/android/internal/os/MobileRadioPowerCalculator;->reset()V
 Lcom/android/internal/os/MobileRadioPowerCalculator;->reset(Landroid/os/BatteryStats;)V
 Lcom/android/internal/os/MobileRadioPowerCalculator;->TAG:Ljava/lang/String;
-Lcom/android/internal/os/PowerCalculator;
 Lcom/android/internal/os/PowerCalculator;-><init>()V
 Lcom/android/internal/os/PowerCalculator;->calculateApp(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats$Uid;JJI)V
 Lcom/android/internal/os/PowerCalculator;->calculateRemaining(Lcom/android/internal/os/BatterySipper;Landroid/os/BatteryStats;JJI)V
 Lcom/android/internal/os/PowerCalculator;->reset()V
-Lcom/android/internal/os/PowerProfile$CpuClusterKey;
 Lcom/android/internal/os/PowerProfile$CpuClusterKey;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
 Lcom/android/internal/os/PowerProfile$CpuClusterKey;->clusterPowerKey:Ljava/lang/String;
 Lcom/android/internal/os/PowerProfile$CpuClusterKey;->corePowerKey:Ljava/lang/String;
 Lcom/android/internal/os/PowerProfile$CpuClusterKey;->freqKey:Ljava/lang/String;
 Lcom/android/internal/os/PowerProfile$CpuClusterKey;->numCpus:I
-Lcom/android/internal/os/PowerProfile;
 Lcom/android/internal/os/PowerProfile;-><init>(Landroid/content/Context;Z)V
 Lcom/android/internal/os/PowerProfile;->ATTR_NAME:Ljava/lang/String;
 Lcom/android/internal/os/PowerProfile;->CPU_CLUSTER_POWER_COUNT:Ljava/lang/String;
@@ -95893,27 +89481,22 @@
 Lcom/android/internal/os/PowerProfile;->TAG_ARRAYITEM:Ljava/lang/String;
 Lcom/android/internal/os/PowerProfile;->TAG_DEVICE:Ljava/lang/String;
 Lcom/android/internal/os/PowerProfile;->TAG_ITEM:Ljava/lang/String;
-Lcom/android/internal/os/RpmStats$PowerStateElement;
 Lcom/android/internal/os/RpmStats$PowerStateElement;-><init>(JI)V
 Lcom/android/internal/os/RpmStats$PowerStateElement;->mCount:I
 Lcom/android/internal/os/RpmStats$PowerStateElement;->mTimeMs:J
-Lcom/android/internal/os/RpmStats$PowerStatePlatformSleepState;
 Lcom/android/internal/os/RpmStats$PowerStatePlatformSleepState;-><init>()V
 Lcom/android/internal/os/RpmStats$PowerStatePlatformSleepState;->mCount:I
 Lcom/android/internal/os/RpmStats$PowerStatePlatformSleepState;->mTimeMs:J
 Lcom/android/internal/os/RpmStats$PowerStatePlatformSleepState;->mVoters:Ljava/util/Map;
 Lcom/android/internal/os/RpmStats$PowerStatePlatformSleepState;->putVoter(Ljava/lang/String;JI)V
-Lcom/android/internal/os/RpmStats$PowerStateSubsystem;
 Lcom/android/internal/os/RpmStats$PowerStateSubsystem;-><init>()V
 Lcom/android/internal/os/RpmStats$PowerStateSubsystem;->mStates:Ljava/util/Map;
 Lcom/android/internal/os/RpmStats$PowerStateSubsystem;->putState(Ljava/lang/String;JI)V
-Lcom/android/internal/os/RpmStats;
 Lcom/android/internal/os/RpmStats;-><init>()V
 Lcom/android/internal/os/RpmStats;->getAndUpdatePlatformState(Ljava/lang/String;JI)Lcom/android/internal/os/RpmStats$PowerStatePlatformSleepState;
 Lcom/android/internal/os/RpmStats;->getSubsystem(Ljava/lang/String;)Lcom/android/internal/os/RpmStats$PowerStateSubsystem;
 Lcom/android/internal/os/RpmStats;->mPlatformLowPowerStats:Ljava/util/Map;
 Lcom/android/internal/os/RpmStats;->mSubsystemLowPowerStats:Ljava/util/Map;
-Lcom/android/internal/os/SomeArgs;
 Lcom/android/internal/os/SomeArgs;-><init>()V
 Lcom/android/internal/os/SomeArgs;->arg4:Ljava/lang/Object;
 Lcom/android/internal/os/SomeArgs;->arg5:Ljava/lang/Object;
@@ -95937,49 +89520,39 @@
 Lcom/android/internal/os/SomeArgs;->WAIT_FINISHED:I
 Lcom/android/internal/os/SomeArgs;->WAIT_NONE:I
 Lcom/android/internal/os/SomeArgs;->WAIT_WAITING:I
-Lcom/android/internal/policy/IKeyguardDismissCallback$Stub$Proxy;
 Lcom/android/internal/policy/IKeyguardDismissCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/policy/IKeyguardDismissCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/policy/IKeyguardDismissCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/policy/IKeyguardDismissCallback$Stub$Proxy;->onDismissCancelled()V
 Lcom/android/internal/policy/IKeyguardDismissCallback$Stub$Proxy;->onDismissError()V
 Lcom/android/internal/policy/IKeyguardDismissCallback$Stub$Proxy;->onDismissSucceeded()V
-Lcom/android/internal/policy/IKeyguardDismissCallback$Stub;
 Lcom/android/internal/policy/IKeyguardDismissCallback$Stub;-><init>()V
 Lcom/android/internal/policy/IKeyguardDismissCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/policy/IKeyguardDismissCallback;
 Lcom/android/internal/policy/IKeyguardDismissCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/policy/IKeyguardDismissCallback$Stub;->TRANSACTION_onDismissCancelled:I
 Lcom/android/internal/policy/IKeyguardDismissCallback$Stub;->TRANSACTION_onDismissError:I
 Lcom/android/internal/policy/IKeyguardDismissCallback$Stub;->TRANSACTION_onDismissSucceeded:I
-Lcom/android/internal/policy/IKeyguardDismissCallback;
 Lcom/android/internal/policy/IKeyguardDismissCallback;->onDismissCancelled()V
 Lcom/android/internal/policy/IKeyguardDismissCallback;->onDismissError()V
 Lcom/android/internal/policy/IKeyguardDismissCallback;->onDismissSucceeded()V
-Lcom/android/internal/policy/IKeyguardDrawnCallback$Stub$Proxy;
 Lcom/android/internal/policy/IKeyguardDrawnCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/policy/IKeyguardDrawnCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/policy/IKeyguardDrawnCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/policy/IKeyguardDrawnCallback$Stub$Proxy;->onDrawn()V
-Lcom/android/internal/policy/IKeyguardDrawnCallback$Stub;
 Lcom/android/internal/policy/IKeyguardDrawnCallback$Stub;-><init>()V
 Lcom/android/internal/policy/IKeyguardDrawnCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/policy/IKeyguardDrawnCallback;
 Lcom/android/internal/policy/IKeyguardDrawnCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/policy/IKeyguardDrawnCallback$Stub;->TRANSACTION_onDrawn:I
-Lcom/android/internal/policy/IKeyguardDrawnCallback;
 Lcom/android/internal/policy/IKeyguardDrawnCallback;->onDrawn()V
-Lcom/android/internal/policy/IKeyguardExitCallback$Stub$Proxy;
 Lcom/android/internal/policy/IKeyguardExitCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/policy/IKeyguardExitCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/policy/IKeyguardExitCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/policy/IKeyguardExitCallback$Stub$Proxy;->onKeyguardExitResult(Z)V
-Lcom/android/internal/policy/IKeyguardExitCallback$Stub;
 Lcom/android/internal/policy/IKeyguardExitCallback$Stub;-><init>()V
 Lcom/android/internal/policy/IKeyguardExitCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/policy/IKeyguardExitCallback;
 Lcom/android/internal/policy/IKeyguardExitCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/policy/IKeyguardExitCallback$Stub;->TRANSACTION_onKeyguardExitResult:I
-Lcom/android/internal/policy/IKeyguardExitCallback;
 Lcom/android/internal/policy/IKeyguardExitCallback;->onKeyguardExitResult(Z)V
-Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;
 Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->addStateMonitorCallback(Lcom/android/internal/policy/IKeyguardStateCallback;)V
 Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->dismiss(Lcom/android/internal/policy/IKeyguardDismissCallback;Ljava/lang/CharSequence;)V
@@ -96005,7 +89578,6 @@
 Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->setSwitchingUser(Z)V
 Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->startKeyguardExitAnimation(JJ)V
 Lcom/android/internal/policy/IKeyguardService$Stub$Proxy;->verifyUnlock(Lcom/android/internal/policy/IKeyguardExitCallback;)V
-Lcom/android/internal/policy/IKeyguardService$Stub;
 Lcom/android/internal/policy/IKeyguardService$Stub;-><init>()V
 Lcom/android/internal/policy/IKeyguardService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_addStateMonitorCallback:I
@@ -96030,7 +89602,6 @@
 Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_setSwitchingUser:I
 Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_startKeyguardExitAnimation:I
 Lcom/android/internal/policy/IKeyguardService$Stub;->TRANSACTION_verifyUnlock:I
-Lcom/android/internal/policy/IKeyguardService;
 Lcom/android/internal/policy/IKeyguardService;->addStateMonitorCallback(Lcom/android/internal/policy/IKeyguardStateCallback;)V
 Lcom/android/internal/policy/IKeyguardService;->dismiss(Lcom/android/internal/policy/IKeyguardDismissCallback;Ljava/lang/CharSequence;)V
 Lcom/android/internal/policy/IKeyguardService;->onBootCompleted()V
@@ -96051,7 +89622,6 @@
 Lcom/android/internal/policy/IKeyguardService;->setSwitchingUser(Z)V
 Lcom/android/internal/policy/IKeyguardService;->startKeyguardExitAnimation(JJ)V
 Lcom/android/internal/policy/IKeyguardService;->verifyUnlock(Lcom/android/internal/policy/IKeyguardExitCallback;)V
-Lcom/android/internal/policy/IKeyguardStateCallback$Stub$Proxy;
 Lcom/android/internal/policy/IKeyguardStateCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/policy/IKeyguardStateCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/policy/IKeyguardStateCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -96060,7 +89630,6 @@
 Lcom/android/internal/policy/IKeyguardStateCallback$Stub$Proxy;->onShowingStateChanged(Z)V
 Lcom/android/internal/policy/IKeyguardStateCallback$Stub$Proxy;->onSimSecureStateChanged(Z)V
 Lcom/android/internal/policy/IKeyguardStateCallback$Stub$Proxy;->onTrustedChanged(Z)V
-Lcom/android/internal/policy/IKeyguardStateCallback$Stub;
 Lcom/android/internal/policy/IKeyguardStateCallback$Stub;-><init>()V
 Lcom/android/internal/policy/IKeyguardStateCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/policy/IKeyguardStateCallback$Stub;->TRANSACTION_onHasLockscreenWallpaperChanged:I
@@ -96068,25 +89637,20 @@
 Lcom/android/internal/policy/IKeyguardStateCallback$Stub;->TRANSACTION_onShowingStateChanged:I
 Lcom/android/internal/policy/IKeyguardStateCallback$Stub;->TRANSACTION_onSimSecureStateChanged:I
 Lcom/android/internal/policy/IKeyguardStateCallback$Stub;->TRANSACTION_onTrustedChanged:I
-Lcom/android/internal/policy/IKeyguardStateCallback;
 Lcom/android/internal/policy/IKeyguardStateCallback;->onHasLockscreenWallpaperChanged(Z)V
 Lcom/android/internal/policy/IKeyguardStateCallback;->onInputRestrictedStateChanged(Z)V
 Lcom/android/internal/policy/IKeyguardStateCallback;->onShowingStateChanged(Z)V
 Lcom/android/internal/policy/IKeyguardStateCallback;->onSimSecureStateChanged(Z)V
 Lcom/android/internal/policy/IKeyguardStateCallback;->onTrustedChanged(Z)V
-Lcom/android/internal/policy/IShortcutService$Stub$Proxy;
 Lcom/android/internal/policy/IShortcutService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/policy/IShortcutService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/policy/IShortcutService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/policy/IShortcutService$Stub$Proxy;->notifyShortcutKeyPressed(J)V
-Lcom/android/internal/policy/IShortcutService$Stub;
 Lcom/android/internal/policy/IShortcutService$Stub;-><init>()V
 Lcom/android/internal/policy/IShortcutService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/policy/IShortcutService;
 Lcom/android/internal/policy/IShortcutService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/policy/IShortcutService$Stub;->TRANSACTION_notifyShortcutKeyPressed:I
-Lcom/android/internal/policy/IShortcutService;
 Lcom/android/internal/policy/IShortcutService;->notifyShortcutKeyPressed(J)V
-Lcom/android/internal/R$anim;
 Lcom/android/internal/R$anim;-><init>()V
 Lcom/android/internal/R$anim;->accelerate_decelerate_interpolator:I
 Lcom/android/internal/R$anim;->accelerate_interpolator:I
@@ -96159,11 +89723,9 @@
 Lcom/android/internal/R$anim;->voice_activity_open_exit:I
 Lcom/android/internal/R$anim;->wallpaper_open_exit:I
 Lcom/android/internal/R$anim;->window_move_from_decor:I
-Lcom/android/internal/R$animator;
 Lcom/android/internal/R$animator;-><init>()V
 Lcom/android/internal/R$animator;->fade_in:I
 Lcom/android/internal/R$animator;->fade_out:I
-Lcom/android/internal/R$array;
 Lcom/android/internal/R$array;-><init>()V
 Lcom/android/internal/R$array;->carrier_properties:I
 Lcom/android/internal/R$array;->common_nicknames:I
@@ -96271,7 +89833,6 @@
 Lcom/android/internal/R$array;->wfcOperatorErrorAlertMessages:I
 Lcom/android/internal/R$array;->wfcOperatorErrorNotificationMessages:I
 Lcom/android/internal/R$array;->wfcSpnFormats:I
-Lcom/android/internal/R$attr;
 Lcom/android/internal/R$attr;-><init>()V
 Lcom/android/internal/R$attr;->absListViewStyle:I
 Lcom/android/internal/R$attr;->accessibilityEventTypes:I
@@ -97680,7 +91241,6 @@
 Lcom/android/internal/R$attr;->yearListSelectorColor:I
 Lcom/android/internal/R$attr;->yesNoPreferenceStyle:I
 Lcom/android/internal/R$attr;->zAdjustment:I
-Lcom/android/internal/R$bool;
 Lcom/android/internal/R$bool;->action_bar_embed_tabs:I
 Lcom/android/internal/R$bool;->action_bar_expanded_action_views_exclusive:I
 Lcom/android/internal/R$bool;->config_allow3rdPartyAppOnInternal:I
@@ -97903,7 +91463,6 @@
 Lcom/android/internal/R$bool;->split_action_bar_is_narrow:I
 Lcom/android/internal/R$bool;->target_honeycomb_needs_options_menu:I
 Lcom/android/internal/R$bool;->use_lock_pattern_drawable:I
-Lcom/android/internal/R$color;
 Lcom/android/internal/R$color;-><init>()V
 Lcom/android/internal/R$color;->background_dark:I
 Lcom/android/internal/R$color;->background_light:I
@@ -97979,7 +91538,6 @@
 Lcom/android/internal/R$color;->user_icon_default_white:I
 Lcom/android/internal/R$color;->white:I
 Lcom/android/internal/R$color;->widget_edittext_dark:I
-Lcom/android/internal/R$dimen;
 Lcom/android/internal/R$dimen;->accessibility_magnification_indicator_width:I
 Lcom/android/internal/R$dimen;->accessibility_touch_slop:I
 Lcom/android/internal/R$dimen;->action_bar_stacked_max_height:I
@@ -98170,7 +91728,6 @@
 Lcom/android/internal/R$dimen;->tooltip_precise_anchor_threshold:I
 Lcom/android/internal/R$dimen;->tooltip_y_offset_non_touch:I
 Lcom/android/internal/R$dimen;->tooltip_y_offset_touch:I
-Lcom/android/internal/R$drawable;
 Lcom/android/internal/R$drawable;-><init>()V
 Lcom/android/internal/R$drawable;->alert_dark_frame:I
 Lcom/android/internal/R$drawable;->alert_light_frame:I
@@ -98616,7 +92173,6 @@
 Lcom/android/internal/R$drawable;->vpn_connected:I
 Lcom/android/internal/R$drawable;->vpn_disconnected:I
 Lcom/android/internal/R$drawable;->zoom_plate:I
-Lcom/android/internal/R$fraction;
 Lcom/android/internal/R$fraction;-><init>()V
 Lcom/android/internal/R$fraction;->config_dimBehindFadeDuration:I
 Lcom/android/internal/R$fraction;->config_maximumScreenDimRatio:I
@@ -98629,7 +92185,6 @@
 Lcom/android/internal/R$fraction;->input_extract_layout_padding_right:I
 Lcom/android/internal/R$fraction;->input_extract_text_margin_bottom:I
 Lcom/android/internal/R$fraction;->thumbnail_fullscreen_scale:I
-Lcom/android/internal/R$id;
 Lcom/android/internal/R$id;-><init>()V
 Lcom/android/internal/R$id;->accessibilityActionClickOnClickableSpan:I
 Lcom/android/internal/R$id;->accessibilityActionContextClick:I
@@ -98985,7 +92540,6 @@
 Lcom/android/internal/R$id;->zero:I
 Lcom/android/internal/R$id;->zoomIn:I
 Lcom/android/internal/R$id;->zoomOut:I
-Lcom/android/internal/R$integer;
 Lcom/android/internal/R$integer;-><init>()V
 Lcom/android/internal/R$integer;->autofill_max_visible_datasets:I
 Lcom/android/internal/R$integer;->config_activeTaskDurationHours:I
@@ -99197,7 +92751,6 @@
 Lcom/android/internal/R$integer;->status_bar_notification_info_maxnum:I
 Lcom/android/internal/R$integer;->thumbnail_width_tv:I
 Lcom/android/internal/R$integer;->time_picker_mode:I
-Lcom/android/internal/R$interpolator;
 Lcom/android/internal/R$interpolator;-><init>()V
 Lcom/android/internal/R$interpolator;->accelerate_decelerate:I
 Lcom/android/internal/R$interpolator;->accelerate_quad:I
@@ -99214,7 +92767,6 @@
 Lcom/android/internal/R$interpolator;->linear:I
 Lcom/android/internal/R$interpolator;->linear_out_slow_in:I
 Lcom/android/internal/R$interpolator;->overshoot:I
-Lcom/android/internal/R$layout;
 Lcom/android/internal/R$layout;-><init>()V
 Lcom/android/internal/R$layout;->accessibility_button_chooser:I
 Lcom/android/internal/R$layout;->accessibility_button_chooser_item:I
@@ -99411,15 +92963,12 @@
 Lcom/android/internal/R$layout;->year_label_text_view:I
 Lcom/android/internal/R$layout;->zoom_container:I
 Lcom/android/internal/R$layout;->zoom_controls:I
-Lcom/android/internal/R$menu;
 Lcom/android/internal/R$menu;-><init>()V
 Lcom/android/internal/R$menu;->language_selection_list:I
 Lcom/android/internal/R$menu;->webview_copy:I
 Lcom/android/internal/R$menu;->webview_find:I
-Lcom/android/internal/R$mipmap;
 Lcom/android/internal/R$mipmap;-><init>()V
 Lcom/android/internal/R$mipmap;->sym_def_app_icon:I
-Lcom/android/internal/R$plurals;
 Lcom/android/internal/R$plurals;-><init>()V
 Lcom/android/internal/R$plurals;->autofill_picker_some_suggestions:I
 Lcom/android/internal/R$plurals;->bugreport_countdown:I
@@ -99454,13 +93003,11 @@
 Lcom/android/internal/R$plurals;->zen_mode_duration_minutes_short:I
 Lcom/android/internal/R$plurals;->zen_mode_duration_minutes_summary:I
 Lcom/android/internal/R$plurals;->zen_mode_duration_minutes_summary_short:I
-Lcom/android/internal/R$raw;
 Lcom/android/internal/R$raw;-><init>()V
 Lcom/android/internal/R$raw;->color_fade_frag:I
 Lcom/android/internal/R$raw;->color_fade_vert:I
 Lcom/android/internal/R$raw;->fallbackring:I
 Lcom/android/internal/R$raw;->fallback_categories:I
-Lcom/android/internal/R$string;
 Lcom/android/internal/R$string;-><init>()V
 Lcom/android/internal/R$string;->accept:I
 Lcom/android/internal/R$string;->accessibility_binding_label:I
@@ -100711,7 +94258,6 @@
 Lcom/android/internal/R$string;->zen_upgrade_notification_title:I
 Lcom/android/internal/R$string;->zen_upgrade_notification_visd_content:I
 Lcom/android/internal/R$string;->zen_upgrade_notification_visd_title:I
-Lcom/android/internal/R$style;
 Lcom/android/internal/R$style;-><init>()V
 Lcom/android/internal/R$style;->ActiveWallpaperSettings:I
 Lcom/android/internal/R$style;->Animation:I
@@ -101490,7 +95036,6 @@
 Lcom/android/internal/R$style;->Widget_Toolbar:I
 Lcom/android/internal/R$style;->Widget_Toolbar_Button_Navigation:I
 Lcom/android/internal/R$style;->Widget_WebView:I
-Lcom/android/internal/R$styleable;
 Lcom/android/internal/R$styleable;->AbsListView_fastScrollStyle:I
 Lcom/android/internal/R$styleable;->AbsoluteLayout_Layout:[I
 Lcom/android/internal/R$styleable;->AbsoluteLayout_Layout_layout_x:I
@@ -103775,7 +97320,6 @@
 Lcom/android/internal/R$styleable;->Window_windowTransitionBackgroundFadeDuration:I
 Lcom/android/internal/R$styleable;->Window_windowTranslucentNavigation:I
 Lcom/android/internal/R$styleable;->Window_windowTranslucentStatus:I
-Lcom/android/internal/R$transition;
 Lcom/android/internal/R$transition;-><init>()V
 Lcom/android/internal/R$transition;->explode:I
 Lcom/android/internal/R$transition;->fade:I
@@ -103785,7 +97329,6 @@
 Lcom/android/internal/R$transition;->slide_left:I
 Lcom/android/internal/R$transition;->slide_right:I
 Lcom/android/internal/R$transition;->slide_top:I
-Lcom/android/internal/R$xml;
 Lcom/android/internal/R$xml;-><init>()V
 Lcom/android/internal/R$xml;->apns:I
 Lcom/android/internal/R$xml;->audio_assets:I
@@ -103804,9 +97347,7 @@
 Lcom/android/internal/R$xml;->sms_7bit_translation_table:I
 Lcom/android/internal/R$xml;->sms_short_codes:I
 Lcom/android/internal/R$xml;->storage_list:I
-Lcom/android/internal/R;
 Lcom/android/internal/R;-><init>()V
-Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;
 Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->addQsTile(Landroid/content/ComponentName;)V
 Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->animateCollapsePanels()V
@@ -103854,7 +97395,6 @@
 Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->toggleRecentApps()V
 Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->toggleSplitScreen()V
 Lcom/android/internal/statusbar/IStatusBar$Stub$Proxy;->topAppWindowChanged(Z)V
-Lcom/android/internal/statusbar/IStatusBar$Stub;
 Lcom/android/internal/statusbar/IStatusBar$Stub;-><init>()V
 Lcom/android/internal/statusbar/IStatusBar$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_addQsTile:I
@@ -103901,7 +97441,6 @@
 Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_toggleRecentApps:I
 Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_toggleSplitScreen:I
 Lcom/android/internal/statusbar/IStatusBar$Stub;->TRANSACTION_topAppWindowChanged:I
-Lcom/android/internal/statusbar/IStatusBar;
 Lcom/android/internal/statusbar/IStatusBar;->addQsTile(Landroid/content/ComponentName;)V
 Lcom/android/internal/statusbar/IStatusBar;->animateCollapsePanels()V
 Lcom/android/internal/statusbar/IStatusBar;->animateExpandNotificationsPanel()V
@@ -103946,7 +97485,6 @@
 Lcom/android/internal/statusbar/IStatusBar;->toggleRecentApps()V
 Lcom/android/internal/statusbar/IStatusBar;->toggleSplitScreen()V
 Lcom/android/internal/statusbar/IStatusBar;->topAppWindowChanged(Z)V
-Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;
 Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->addTile(Landroid/content/ComponentName;)V
 Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->clearNotificationEffects()V
@@ -103993,7 +97531,6 @@
 Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->showPinningEscapeToast()V
 Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->shutdown()V
 Lcom/android/internal/statusbar/IStatusBarService$Stub$Proxy;->togglePanel()V
-Lcom/android/internal/statusbar/IStatusBarService$Stub;
 Lcom/android/internal/statusbar/IStatusBarService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_addTile:I
 Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_clearNotificationEffects:I
@@ -104038,7 +97575,6 @@
 Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_showPinningEscapeToast:I
 Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_shutdown:I
 Lcom/android/internal/statusbar/IStatusBarService$Stub;->TRANSACTION_togglePanel:I
-Lcom/android/internal/statusbar/IStatusBarService;
 Lcom/android/internal/statusbar/IStatusBarService;->addTile(Landroid/content/ComponentName;)V
 Lcom/android/internal/statusbar/IStatusBarService;->clearNotificationEffects()V
 Lcom/android/internal/statusbar/IStatusBarService;->clickTile(Landroid/content/ComponentName;)V
@@ -104076,7 +97612,6 @@
 Lcom/android/internal/statusbar/IStatusBarService;->showPinningEscapeToast()V
 Lcom/android/internal/statusbar/IStatusBarService;->shutdown()V
 Lcom/android/internal/statusbar/IStatusBarService;->togglePanel()V
-Lcom/android/internal/statusbar/NotificationVisibility;
 Lcom/android/internal/statusbar/NotificationVisibility;-><init>()V
 Lcom/android/internal/statusbar/NotificationVisibility;-><init>(Ljava/lang/String;IIZ)V
 Lcom/android/internal/statusbar/NotificationVisibility;->count:I
@@ -104094,7 +97629,6 @@
 Lcom/android/internal/statusbar/NotificationVisibility;->sPool:Ljava/util/ArrayDeque;
 Lcom/android/internal/statusbar/NotificationVisibility;->TAG:Ljava/lang/String;
 Lcom/android/internal/statusbar/NotificationVisibility;->visible:Z
-Lcom/android/internal/statusbar/StatusBarIcon;
 Lcom/android/internal/statusbar/StatusBarIcon;-><init>(Landroid/os/Parcel;)V
 Lcom/android/internal/statusbar/StatusBarIcon;-><init>(Landroid/os/UserHandle;Ljava/lang/String;Landroid/graphics/drawable/Icon;IILjava/lang/CharSequence;)V
 Lcom/android/internal/statusbar/StatusBarIcon;-><init>(Ljava/lang/String;Landroid/os/UserHandle;IIILjava/lang/CharSequence;)V
@@ -104107,34 +97641,27 @@
 Lcom/android/internal/statusbar/StatusBarIcon;->readFromParcel(Landroid/os/Parcel;)V
 Lcom/android/internal/statusbar/StatusBarIcon;->user:Landroid/os/UserHandle;
 Lcom/android/internal/statusbar/StatusBarIcon;->visible:Z
-Lcom/android/internal/telecom/ICallScreeningAdapter$Stub$Proxy;
 Lcom/android/internal/telecom/ICallScreeningAdapter$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/telecom/ICallScreeningAdapter$Stub$Proxy;->allowCall(Ljava/lang/String;)V
 Lcom/android/internal/telecom/ICallScreeningAdapter$Stub$Proxy;->disallowCall(Ljava/lang/String;ZZZ)V
 Lcom/android/internal/telecom/ICallScreeningAdapter$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/telecom/ICallScreeningAdapter$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Lcom/android/internal/telecom/ICallScreeningAdapter$Stub;
 Lcom/android/internal/telecom/ICallScreeningAdapter$Stub;-><init>()V
 Lcom/android/internal/telecom/ICallScreeningAdapter$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/ICallScreeningAdapter;
 Lcom/android/internal/telecom/ICallScreeningAdapter$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/telecom/ICallScreeningAdapter$Stub;->TRANSACTION_allowCall:I
 Lcom/android/internal/telecom/ICallScreeningAdapter$Stub;->TRANSACTION_disallowCall:I
-Lcom/android/internal/telecom/ICallScreeningAdapter;
 Lcom/android/internal/telecom/ICallScreeningAdapter;->allowCall(Ljava/lang/String;)V
 Lcom/android/internal/telecom/ICallScreeningAdapter;->disallowCall(Ljava/lang/String;ZZZ)V
-Lcom/android/internal/telecom/ICallScreeningService$Stub$Proxy;
 Lcom/android/internal/telecom/ICallScreeningService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/telecom/ICallScreeningService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/telecom/ICallScreeningService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/telecom/ICallScreeningService$Stub$Proxy;->screenCall(Lcom/android/internal/telecom/ICallScreeningAdapter;Landroid/telecom/ParcelableCall;)V
-Lcom/android/internal/telecom/ICallScreeningService$Stub;
 Lcom/android/internal/telecom/ICallScreeningService$Stub;-><init>()V
 Lcom/android/internal/telecom/ICallScreeningService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/ICallScreeningService;
 Lcom/android/internal/telecom/ICallScreeningService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/telecom/ICallScreeningService$Stub;->TRANSACTION_screenCall:I
-Lcom/android/internal/telecom/ICallScreeningService;
 Lcom/android/internal/telecom/ICallScreeningService;->screenCall(Lcom/android/internal/telecom/ICallScreeningAdapter;Landroid/telecom/ParcelableCall;)V
-Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;
 Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->abort(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
 Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->addConnectionServiceAdapter(Lcom/android/internal/telecom/IConnectionServiceAdapter;Landroid/telecom/Logging/Session$Info;)V
@@ -104171,7 +97698,6 @@
 Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->stopRtt(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
 Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->swapConference(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
 Lcom/android/internal/telecom/IConnectionService$Stub$Proxy;->unhold(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
-Lcom/android/internal/telecom/IConnectionService$Stub;
 Lcom/android/internal/telecom/IConnectionService$Stub;-><init>()V
 Lcom/android/internal/telecom/IConnectionService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/IConnectionService;
 Lcom/android/internal/telecom/IConnectionService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -104208,7 +97734,6 @@
 Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_stopRtt:I
 Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_swapConference:I
 Lcom/android/internal/telecom/IConnectionService$Stub;->TRANSACTION_unhold:I
-Lcom/android/internal/telecom/IConnectionService;
 Lcom/android/internal/telecom/IConnectionService;->abort(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
 Lcom/android/internal/telecom/IConnectionService;->addConnectionServiceAdapter(Lcom/android/internal/telecom/IConnectionServiceAdapter;Landroid/telecom/Logging/Session$Info;)V
 Lcom/android/internal/telecom/IConnectionService;->answer(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
@@ -104242,7 +97767,6 @@
 Lcom/android/internal/telecom/IConnectionService;->stopRtt(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
 Lcom/android/internal/telecom/IConnectionService;->swapConference(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
 Lcom/android/internal/telecom/IConnectionService;->unhold(Ljava/lang/String;Landroid/telecom/Logging/Session$Info;)V
-Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;
 Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->addConferenceCall(Ljava/lang/String;Landroid/telecom/ParcelableConference;Landroid/telecom/Logging/Session$Info;)V
 Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->addExistingConnection(Ljava/lang/String;Landroid/telecom/ParcelableConnection;Landroid/telecom/Logging/Session$Info;)V
@@ -104281,7 +97805,6 @@
 Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->setStatusHints(Ljava/lang/String;Landroid/telecom/StatusHints;Landroid/telecom/Logging/Session$Info;)V
 Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->setVideoProvider(Ljava/lang/String;Lcom/android/internal/telecom/IVideoProvider;Landroid/telecom/Logging/Session$Info;)V
 Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub$Proxy;->setVideoState(Ljava/lang/String;ILandroid/telecom/Logging/Session$Info;)V
-Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;
 Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;-><init>()V
 Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/IConnectionServiceAdapter;
 Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -104320,7 +97843,6 @@
 Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_setStatusHints:I
 Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_setVideoProvider:I
 Lcom/android/internal/telecom/IConnectionServiceAdapter$Stub;->TRANSACTION_setVideoState:I
-Lcom/android/internal/telecom/IConnectionServiceAdapter;
 Lcom/android/internal/telecom/IConnectionServiceAdapter;->addConferenceCall(Ljava/lang/String;Landroid/telecom/ParcelableConference;Landroid/telecom/Logging/Session$Info;)V
 Lcom/android/internal/telecom/IConnectionServiceAdapter;->addExistingConnection(Ljava/lang/String;Landroid/telecom/ParcelableConnection;Landroid/telecom/Logging/Session$Info;)V
 Lcom/android/internal/telecom/IConnectionServiceAdapter;->handleCreateConnectionComplete(Ljava/lang/String;Landroid/telecom/ConnectionRequest;Landroid/telecom/ParcelableConnection;Landroid/telecom/Logging/Session$Info;)V
@@ -104356,7 +97878,6 @@
 Lcom/android/internal/telecom/IConnectionServiceAdapter;->setStatusHints(Ljava/lang/String;Landroid/telecom/StatusHints;Landroid/telecom/Logging/Session$Info;)V
 Lcom/android/internal/telecom/IConnectionServiceAdapter;->setVideoProvider(Ljava/lang/String;Lcom/android/internal/telecom/IVideoProvider;Landroid/telecom/Logging/Session$Info;)V
 Lcom/android/internal/telecom/IConnectionServiceAdapter;->setVideoState(Ljava/lang/String;ILandroid/telecom/Logging/Session$Info;)V
-Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;
 Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->answerCall(Ljava/lang/String;I)V
 Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->conference(Ljava/lang/String;Ljava/lang/String;)V
@@ -104387,7 +97908,6 @@
 Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->turnOffProximitySensor(Z)V
 Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->turnOnProximitySensor()V
 Lcom/android/internal/telecom/IInCallAdapter$Stub$Proxy;->unholdCall(Ljava/lang/String;)V
-Lcom/android/internal/telecom/IInCallAdapter$Stub;
 Lcom/android/internal/telecom/IInCallAdapter$Stub;-><init>()V
 Lcom/android/internal/telecom/IInCallAdapter$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/IInCallAdapter;
 Lcom/android/internal/telecom/IInCallAdapter$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -104418,7 +97938,6 @@
 Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_turnOffProximitySensor:I
 Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_turnOnProximitySensor:I
 Lcom/android/internal/telecom/IInCallAdapter$Stub;->TRANSACTION_unholdCall:I
-Lcom/android/internal/telecom/IInCallAdapter;
 Lcom/android/internal/telecom/IInCallAdapter;->answerCall(Ljava/lang/String;I)V
 Lcom/android/internal/telecom/IInCallAdapter;->conference(Ljava/lang/String;Ljava/lang/String;)V
 Lcom/android/internal/telecom/IInCallAdapter;->deflectCall(Ljava/lang/String;Landroid/net/Uri;)V
@@ -104446,7 +97965,6 @@
 Lcom/android/internal/telecom/IInCallAdapter;->turnOffProximitySensor(Z)V
 Lcom/android/internal/telecom/IInCallAdapter;->turnOnProximitySensor()V
 Lcom/android/internal/telecom/IInCallAdapter;->unholdCall(Ljava/lang/String;)V
-Lcom/android/internal/telecom/IInCallService$Stub$Proxy;
 Lcom/android/internal/telecom/IInCallService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/telecom/IInCallService$Stub$Proxy;->addCall(Landroid/telecom/ParcelableCall;)V
 Lcom/android/internal/telecom/IInCallService$Stub$Proxy;->bringToForeground(Z)V
@@ -104464,7 +97982,6 @@
 Lcom/android/internal/telecom/IInCallService$Stub$Proxy;->setPostDialWait(Ljava/lang/String;Ljava/lang/String;)V
 Lcom/android/internal/telecom/IInCallService$Stub$Proxy;->silenceRinger()V
 Lcom/android/internal/telecom/IInCallService$Stub$Proxy;->updateCall(Landroid/telecom/ParcelableCall;)V
-Lcom/android/internal/telecom/IInCallService$Stub;
 Lcom/android/internal/telecom/IInCallService$Stub;-><init>()V
 Lcom/android/internal/telecom/IInCallService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/IInCallService;
 Lcom/android/internal/telecom/IInCallService$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -104482,7 +97999,6 @@
 Lcom/android/internal/telecom/IInCallService$Stub;->TRANSACTION_setPostDialWait:I
 Lcom/android/internal/telecom/IInCallService$Stub;->TRANSACTION_silenceRinger:I
 Lcom/android/internal/telecom/IInCallService$Stub;->TRANSACTION_updateCall:I
-Lcom/android/internal/telecom/IInCallService;
 Lcom/android/internal/telecom/IInCallService;->addCall(Landroid/telecom/ParcelableCall;)V
 Lcom/android/internal/telecom/IInCallService;->bringToForeground(Z)V
 Lcom/android/internal/telecom/IInCallService;->onCallAudioStateChanged(Landroid/telecom/CallAudioState;)V
@@ -104497,7 +98013,6 @@
 Lcom/android/internal/telecom/IInCallService;->setPostDialWait(Ljava/lang/String;Ljava/lang/String;)V
 Lcom/android/internal/telecom/IInCallService;->silenceRinger()V
 Lcom/android/internal/telecom/IInCallService;->updateCall(Landroid/telecom/ParcelableCall;)V
-Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;
 Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->acceptHandover(Landroid/net/Uri;ILandroid/telecom/PhoneAccountHandle;)V
 Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->acceptRingingCall(Ljava/lang/String;)V
@@ -104549,7 +98064,6 @@
 Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->silenceRinger(Ljava/lang/String;)V
 Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->unregisterPhoneAccount(Landroid/telecom/PhoneAccountHandle;)V
 Lcom/android/internal/telecom/ITelecomService$Stub$Proxy;->waitOnHandlers()V
-Lcom/android/internal/telecom/ITelecomService$Stub;
 Lcom/android/internal/telecom/ITelecomService$Stub;-><init>()V
 Lcom/android/internal/telecom/ITelecomService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_acceptHandover:I
@@ -104600,7 +98114,6 @@
 Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_silenceRinger:I
 Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_unregisterPhoneAccount:I
 Lcom/android/internal/telecom/ITelecomService$Stub;->TRANSACTION_waitOnHandlers:I
-Lcom/android/internal/telecom/ITelecomService;
 Lcom/android/internal/telecom/ITelecomService;->acceptHandover(Landroid/net/Uri;ILandroid/telecom/PhoneAccountHandle;)V
 Lcom/android/internal/telecom/ITelecomService;->acceptRingingCall(Ljava/lang/String;)V
 Lcom/android/internal/telecom/ITelecomService;->acceptRingingCallWithVideoState(Ljava/lang/String;I)V
@@ -104648,7 +98161,6 @@
 Lcom/android/internal/telecom/ITelecomService;->silenceRinger(Ljava/lang/String;)V
 Lcom/android/internal/telecom/ITelecomService;->unregisterPhoneAccount(Landroid/telecom/PhoneAccountHandle;)V
 Lcom/android/internal/telecom/ITelecomService;->waitOnHandlers()V
-Lcom/android/internal/telecom/IVideoCallback$Stub$Proxy;
 Lcom/android/internal/telecom/IVideoCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/telecom/IVideoCallback$Stub$Proxy;->changeCallDataUsage(J)V
 Lcom/android/internal/telecom/IVideoCallback$Stub$Proxy;->changeCameraCapabilities(Landroid/telecom/VideoProfile$CameraCapabilities;)V
@@ -104659,7 +98171,6 @@
 Lcom/android/internal/telecom/IVideoCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/telecom/IVideoCallback$Stub$Proxy;->receiveSessionModifyRequest(Landroid/telecom/VideoProfile;)V
 Lcom/android/internal/telecom/IVideoCallback$Stub$Proxy;->receiveSessionModifyResponse(ILandroid/telecom/VideoProfile;Landroid/telecom/VideoProfile;)V
-Lcom/android/internal/telecom/IVideoCallback$Stub;
 Lcom/android/internal/telecom/IVideoCallback$Stub;-><init>()V
 Lcom/android/internal/telecom/IVideoCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/IVideoCallback;
 Lcom/android/internal/telecom/IVideoCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -104670,7 +98181,6 @@
 Lcom/android/internal/telecom/IVideoCallback$Stub;->TRANSACTION_handleCallSessionEvent:I
 Lcom/android/internal/telecom/IVideoCallback$Stub;->TRANSACTION_receiveSessionModifyRequest:I
 Lcom/android/internal/telecom/IVideoCallback$Stub;->TRANSACTION_receiveSessionModifyResponse:I
-Lcom/android/internal/telecom/IVideoCallback;
 Lcom/android/internal/telecom/IVideoCallback;->changeCallDataUsage(J)V
 Lcom/android/internal/telecom/IVideoCallback;->changeCameraCapabilities(Landroid/telecom/VideoProfile$CameraCapabilities;)V
 Lcom/android/internal/telecom/IVideoCallback;->changePeerDimensions(II)V
@@ -104678,7 +98188,6 @@
 Lcom/android/internal/telecom/IVideoCallback;->handleCallSessionEvent(I)V
 Lcom/android/internal/telecom/IVideoCallback;->receiveSessionModifyRequest(Landroid/telecom/VideoProfile;)V
 Lcom/android/internal/telecom/IVideoCallback;->receiveSessionModifyResponse(ILandroid/telecom/VideoProfile;Landroid/telecom/VideoProfile;)V
-Lcom/android/internal/telecom/IVideoProvider$Stub$Proxy;
 Lcom/android/internal/telecom/IVideoProvider$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/telecom/IVideoProvider$Stub$Proxy;->addVideoCallback(Landroid/os/IBinder;)V
 Lcom/android/internal/telecom/IVideoProvider$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -104694,7 +98203,6 @@
 Lcom/android/internal/telecom/IVideoProvider$Stub$Proxy;->setPauseImage(Landroid/net/Uri;)V
 Lcom/android/internal/telecom/IVideoProvider$Stub$Proxy;->setPreviewSurface(Landroid/view/Surface;)V
 Lcom/android/internal/telecom/IVideoProvider$Stub$Proxy;->setZoom(F)V
-Lcom/android/internal/telecom/IVideoProvider$Stub;
 Lcom/android/internal/telecom/IVideoProvider$Stub;-><init>()V
 Lcom/android/internal/telecom/IVideoProvider$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/IVideoProvider;
 Lcom/android/internal/telecom/IVideoProvider$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -104710,7 +98218,6 @@
 Lcom/android/internal/telecom/IVideoProvider$Stub;->TRANSACTION_setPauseImage:I
 Lcom/android/internal/telecom/IVideoProvider$Stub;->TRANSACTION_setPreviewSurface:I
 Lcom/android/internal/telecom/IVideoProvider$Stub;->TRANSACTION_setZoom:I
-Lcom/android/internal/telecom/IVideoProvider;
 Lcom/android/internal/telecom/IVideoProvider;->addVideoCallback(Landroid/os/IBinder;)V
 Lcom/android/internal/telecom/IVideoProvider;->removeVideoCallback(Landroid/os/IBinder;)V
 Lcom/android/internal/telecom/IVideoProvider;->requestCallDataUsage()V
@@ -104723,22 +98230,18 @@
 Lcom/android/internal/telecom/IVideoProvider;->setPauseImage(Landroid/net/Uri;)V
 Lcom/android/internal/telecom/IVideoProvider;->setPreviewSurface(Landroid/view/Surface;)V
 Lcom/android/internal/telecom/IVideoProvider;->setZoom(F)V
-Lcom/android/internal/telecom/RemoteServiceCallback$Stub$Proxy;
 Lcom/android/internal/telecom/RemoteServiceCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/telecom/RemoteServiceCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/telecom/RemoteServiceCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/telecom/RemoteServiceCallback$Stub$Proxy;->onError()V
 Lcom/android/internal/telecom/RemoteServiceCallback$Stub$Proxy;->onResult(Ljava/util/List;Ljava/util/List;)V
-Lcom/android/internal/telecom/RemoteServiceCallback$Stub;
 Lcom/android/internal/telecom/RemoteServiceCallback$Stub;-><init>()V
 Lcom/android/internal/telecom/RemoteServiceCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/RemoteServiceCallback;
 Lcom/android/internal/telecom/RemoteServiceCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/telecom/RemoteServiceCallback$Stub;->TRANSACTION_onError:I
 Lcom/android/internal/telecom/RemoteServiceCallback$Stub;->TRANSACTION_onResult:I
-Lcom/android/internal/telecom/RemoteServiceCallback;
 Lcom/android/internal/telecom/RemoteServiceCallback;->onError()V
 Lcom/android/internal/telecom/RemoteServiceCallback;->onResult(Ljava/util/List;Ljava/util/List;)V
-Lcom/android/internal/telephony/CallerInfo;
 Lcom/android/internal/telephony/CallerInfo;->cachedPhoto:Landroid/graphics/drawable/Drawable;
 Lcom/android/internal/telephony/CallerInfo;->cachedPhotoIcon:Landroid/graphics/Bitmap;
 Lcom/android/internal/telephony/CallerInfo;->cnapName:Ljava/lang/String;
@@ -104776,7 +98279,6 @@
 Lcom/android/internal/telephony/CallerInfo;->USER_TYPE_CURRENT:J
 Lcom/android/internal/telephony/CallerInfo;->USER_TYPE_WORK:J
 Lcom/android/internal/telephony/CallerInfo;->VDBG:Z
-Lcom/android/internal/telephony/CellNetworkScanResult;
 Lcom/android/internal/telephony/CellNetworkScanResult;-><init>(ILjava/util/List;)V
 Lcom/android/internal/telephony/CellNetworkScanResult;-><init>(Landroid/os/Parcel;)V
 Lcom/android/internal/telephony/CellNetworkScanResult;->CREATOR:Landroid/os/Parcelable$Creator;
@@ -104788,11 +98290,7 @@
 Lcom/android/internal/telephony/CellNetworkScanResult;->STATUS_RADIO_NOT_AVAILABLE:I
 Lcom/android/internal/telephony/CellNetworkScanResult;->STATUS_SUCCESS:I
 Lcom/android/internal/telephony/CellNetworkScanResult;->STATUS_UNKNOWN_ERROR:I
-Lcom/android/internal/telephony/EncodeException;
 Lcom/android/internal/telephony/EncodeException;-><init>()V
-Lcom/android/internal/telephony/GsmAlphabet$LanguagePairCount;
-Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;
-Lcom/android/internal/telephony/GsmAlphabet;
 Lcom/android/internal/telephony/GsmAlphabet;-><init>()V
 Lcom/android/internal/telephony/GsmAlphabet;->charToGsmExtended(C)I
 Lcom/android/internal/telephony/GsmAlphabet;->countGsmSeptets(C)I
@@ -104815,19 +98313,15 @@
 Lcom/android/internal/telephony/GsmAlphabet;->UDH_SEPTET_COST_LENGTH:I
 Lcom/android/internal/telephony/GsmAlphabet;->UDH_SEPTET_COST_ONE_SHIFT_TABLE:I
 Lcom/android/internal/telephony/GsmAlphabet;->UDH_SEPTET_COST_TWO_SHIFT_TABLES:I
-Lcom/android/internal/telephony/IApnSourceService$Stub$Proxy;
 Lcom/android/internal/telephony/IApnSourceService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/telephony/IApnSourceService$Stub$Proxy;->getApns()[Landroid/content/ContentValues;
 Lcom/android/internal/telephony/IApnSourceService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/telephony/IApnSourceService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Lcom/android/internal/telephony/IApnSourceService$Stub;
 Lcom/android/internal/telephony/IApnSourceService$Stub;-><init>()V
 Lcom/android/internal/telephony/IApnSourceService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IApnSourceService;
 Lcom/android/internal/telephony/IApnSourceService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/telephony/IApnSourceService$Stub;->TRANSACTION_getApns:I
-Lcom/android/internal/telephony/IApnSourceService;
 Lcom/android/internal/telephony/IApnSourceService;->getApns()[Landroid/content/ContentValues;
-Lcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;
 Lcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;->getConfigForSubId(I)Landroid/os/PersistableBundle;
 Lcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;->getDefaultCarrierServicePackageName()Ljava/lang/String;
@@ -104835,7 +98329,6 @@
 Lcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;->notifyConfigChangedForSubId(I)V
 Lcom/android/internal/telephony/ICarrierConfigLoader$Stub$Proxy;->updateConfigForPhoneId(ILjava/lang/String;)V
-Lcom/android/internal/telephony/ICarrierConfigLoader$Stub;
 Lcom/android/internal/telephony/ICarrierConfigLoader$Stub;-><init>()V
 Lcom/android/internal/telephony/ICarrierConfigLoader$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ICarrierConfigLoader;
 Lcom/android/internal/telephony/ICarrierConfigLoader$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -104843,11 +98336,9 @@
 Lcom/android/internal/telephony/ICarrierConfigLoader$Stub;->TRANSACTION_getDefaultCarrierServicePackageName:I
 Lcom/android/internal/telephony/ICarrierConfigLoader$Stub;->TRANSACTION_notifyConfigChangedForSubId:I
 Lcom/android/internal/telephony/ICarrierConfigLoader$Stub;->TRANSACTION_updateConfigForPhoneId:I
-Lcom/android/internal/telephony/ICarrierConfigLoader;
 Lcom/android/internal/telephony/ICarrierConfigLoader;->getDefaultCarrierServicePackageName()Ljava/lang/String;
 Lcom/android/internal/telephony/ICarrierConfigLoader;->notifyConfigChangedForSubId(I)V
 Lcom/android/internal/telephony/ICarrierConfigLoader;->updateConfigForPhoneId(ILjava/lang/String;)V
-Lcom/android/internal/telephony/IMms$Stub$Proxy;
 Lcom/android/internal/telephony/IMms$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/telephony/IMms$Stub$Proxy;->addMultimediaMessageDraft(Ljava/lang/String;Landroid/net/Uri;)Landroid/net/Uri;
 Lcom/android/internal/telephony/IMms$Stub$Proxy;->addTextMessageDraft(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri;
@@ -104865,7 +98356,6 @@
 Lcom/android/internal/telephony/IMms$Stub$Proxy;->sendStoredMessage(ILjava/lang/String;Landroid/net/Uri;Landroid/os/Bundle;Landroid/app/PendingIntent;)V
 Lcom/android/internal/telephony/IMms$Stub$Proxy;->setAutoPersisting(Ljava/lang/String;Z)V
 Lcom/android/internal/telephony/IMms$Stub$Proxy;->updateStoredMessageStatus(Ljava/lang/String;Landroid/net/Uri;Landroid/content/ContentValues;)Z
-Lcom/android/internal/telephony/IMms$Stub;
 Lcom/android/internal/telephony/IMms$Stub;-><init>()V
 Lcom/android/internal/telephony/IMms$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/telephony/IMms$Stub;->TRANSACTION_addMultimediaMessageDraft:I
@@ -104882,7 +98372,6 @@
 Lcom/android/internal/telephony/IMms$Stub;->TRANSACTION_sendStoredMessage:I
 Lcom/android/internal/telephony/IMms$Stub;->TRANSACTION_setAutoPersisting:I
 Lcom/android/internal/telephony/IMms$Stub;->TRANSACTION_updateStoredMessageStatus:I
-Lcom/android/internal/telephony/IMms;
 Lcom/android/internal/telephony/IMms;->addMultimediaMessageDraft(Ljava/lang/String;Landroid/net/Uri;)Landroid/net/Uri;
 Lcom/android/internal/telephony/IMms;->addTextMessageDraft(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri;
 Lcom/android/internal/telephony/IMms;->archiveStoredConversation(Ljava/lang/String;JZ)Z
@@ -104897,19 +98386,15 @@
 Lcom/android/internal/telephony/IMms;->sendStoredMessage(ILjava/lang/String;Landroid/net/Uri;Landroid/os/Bundle;Landroid/app/PendingIntent;)V
 Lcom/android/internal/telephony/IMms;->setAutoPersisting(Ljava/lang/String;Z)V
 Lcom/android/internal/telephony/IMms;->updateStoredMessageStatus(Ljava/lang/String;Landroid/net/Uri;Landroid/content/ContentValues;)Z
-Lcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub$Proxy;
 Lcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub$Proxy;->onSubscriptionsChanged()V
-Lcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;
 Lcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;-><init>()V
 Lcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;
 Lcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/telephony/IOnSubscriptionsChangedListener$Stub;->TRANSACTION_onSubscriptionsChanged:I
-Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;
 Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;->onSubscriptionsChanged()V
-Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;
 Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -104934,7 +98419,6 @@
 Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onUserMobileDataStateChanged(Z)V
 Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onVoiceActivationStateChanged(I)V
 Lcom/android/internal/telephony/IPhoneStateListener$Stub$Proxy;->onVoLteServiceStateChanged(Landroid/telephony/VoLteServiceState;)V
-Lcom/android/internal/telephony/IPhoneStateListener$Stub;
 Lcom/android/internal/telephony/IPhoneStateListener$Stub;-><init>()V
 Lcom/android/internal/telephony/IPhoneStateListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/telephony/IPhoneStateListener$Stub;->TRANSACTION_onCallForwardingIndicatorChanged:I
@@ -104958,7 +98442,6 @@
 Lcom/android/internal/telephony/IPhoneStateListener$Stub;->TRANSACTION_onUserMobileDataStateChanged:I
 Lcom/android/internal/telephony/IPhoneStateListener$Stub;->TRANSACTION_onVoiceActivationStateChanged:I
 Lcom/android/internal/telephony/IPhoneStateListener$Stub;->TRANSACTION_onVoLteServiceStateChanged:I
-Lcom/android/internal/telephony/IPhoneStateListener;
 Lcom/android/internal/telephony/IPhoneStateListener;->onCarrierNetworkChange(Z)V
 Lcom/android/internal/telephony/IPhoneStateListener;->onCellInfoChanged(Ljava/util/List;)V
 Lcom/android/internal/telephony/IPhoneStateListener;->onDataActivationStateChanged(I)V
@@ -104971,7 +98454,6 @@
 Lcom/android/internal/telephony/IPhoneStateListener;->onUserMobileDataStateChanged(Z)V
 Lcom/android/internal/telephony/IPhoneStateListener;->onVoiceActivationStateChanged(I)V
 Lcom/android/internal/telephony/IPhoneStateListener;->onVoLteServiceStateChanged(Landroid/telephony/VoLteServiceState;)V
-Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;
 Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getCarrierInfoForImsiEncryption(IILjava/lang/String;)Landroid/telephony/ImsiEncryptionInfo;
 Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getCompleteVoiceMailNumber()Ljava/lang/String;
 Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getCompleteVoiceMailNumberForSubscriber(I)Ljava/lang/String;
@@ -105005,7 +98487,6 @@
 Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->resetCarrierKeysForImsiEncryption(ILjava/lang/String;)V
 Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->setCarrierInfoForImsiEncryption(ILjava/lang/String;Landroid/telephony/ImsiEncryptionInfo;)V
-Lcom/android/internal/telephony/IPhoneSubInfo$Stub;
 Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getCarrierInfoForImsiEncryption:I
 Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getCompleteVoiceMailNumber:I
@@ -105038,7 +98519,6 @@
 Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_getVoiceMailNumberForSubscriber:I
 Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_resetCarrierKeysForImsiEncryption:I
 Lcom/android/internal/telephony/IPhoneSubInfo$Stub;->TRANSACTION_setCarrierInfoForImsiEncryption:I
-Lcom/android/internal/telephony/IPhoneSubInfo;
 Lcom/android/internal/telephony/IPhoneSubInfo;->getCarrierInfoForImsiEncryption(IILjava/lang/String;)Landroid/telephony/ImsiEncryptionInfo;
 Lcom/android/internal/telephony/IPhoneSubInfo;->getCompleteVoiceMailNumber()Ljava/lang/String;
 Lcom/android/internal/telephony/IPhoneSubInfo;->getCompleteVoiceMailNumberForSubscriber(I)Ljava/lang/String;
@@ -105069,7 +98549,6 @@
 Lcom/android/internal/telephony/IPhoneSubInfo;->getVoiceMailNumberForSubscriber(ILjava/lang/String;)Ljava/lang/String;
 Lcom/android/internal/telephony/IPhoneSubInfo;->resetCarrierKeysForImsiEncryption(ILjava/lang/String;)V
 Lcom/android/internal/telephony/IPhoneSubInfo;->setCarrierInfoForImsiEncryption(ILjava/lang/String;Landroid/telephony/ImsiEncryptionInfo;)V
-Lcom/android/internal/telephony/ISms$Stub$Proxy;
 Lcom/android/internal/telephony/ISms$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/telephony/ISms$Stub$Proxy;->copyMessageToIccEfForSubscriber(ILjava/lang/String;I[B[B)Z
 Lcom/android/internal/telephony/ISms$Stub$Proxy;->createAppSpecificSmsToken(ILjava/lang/String;Landroid/app/PendingIntent;)Ljava/lang/String;
@@ -105100,7 +98579,6 @@
 Lcom/android/internal/telephony/ISms$Stub$Proxy;->setPremiumSmsPermission(Ljava/lang/String;I)V
 Lcom/android/internal/telephony/ISms$Stub$Proxy;->setPremiumSmsPermissionForSubscriber(ILjava/lang/String;I)V
 Lcom/android/internal/telephony/ISms$Stub$Proxy;->updateMessageOnIccEfForSubscriber(ILjava/lang/String;II[B)Z
-Lcom/android/internal/telephony/ISms$Stub;
 Lcom/android/internal/telephony/ISms$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_copyMessageToIccEfForSubscriber:I
 Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_createAppSpecificSmsToken:I
@@ -105129,7 +98607,6 @@
 Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_setPremiumSmsPermission:I
 Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_setPremiumSmsPermissionForSubscriber:I
 Lcom/android/internal/telephony/ISms$Stub;->TRANSACTION_updateMessageOnIccEfForSubscriber:I
-Lcom/android/internal/telephony/ISms;
 Lcom/android/internal/telephony/ISms;->copyMessageToIccEfForSubscriber(ILjava/lang/String;I[B[B)Z
 Lcom/android/internal/telephony/ISms;->createAppSpecificSmsToken(ILjava/lang/String;Landroid/app/PendingIntent;)Ljava/lang/String;
 Lcom/android/internal/telephony/ISms;->disableCellBroadcastForSubscriber(III)Z
@@ -105157,7 +98634,6 @@
 Lcom/android/internal/telephony/ISms;->setPremiumSmsPermission(Ljava/lang/String;I)V
 Lcom/android/internal/telephony/ISms;->setPremiumSmsPermissionForSubscriber(ILjava/lang/String;I)V
 Lcom/android/internal/telephony/ISms;->updateMessageOnIccEfForSubscriber(ILjava/lang/String;II[B)Z
-Lcom/android/internal/telephony/ISub$Stub$Proxy;
 Lcom/android/internal/telephony/ISub$Stub$Proxy;->addSubInfoRecord(Ljava/lang/String;I)I
 Lcom/android/internal/telephony/ISub$Stub$Proxy;->clearDefaultsForInactiveSubIds()V
 Lcom/android/internal/telephony/ISub$Stub$Proxy;->clearSubInfo()I
@@ -105194,7 +98670,6 @@
 Lcom/android/internal/telephony/ISub$Stub$Proxy;->setDisplayNumber(Ljava/lang/String;I)I
 Lcom/android/internal/telephony/ISub$Stub$Proxy;->setIconTint(II)I
 Lcom/android/internal/telephony/ISub$Stub$Proxy;->setSubscriptionProperty(ILjava/lang/String;Ljava/lang/String;)V
-Lcom/android/internal/telephony/ISub$Stub;
 Lcom/android/internal/telephony/ISub$Stub;-><init>()V
 Lcom/android/internal/telephony/ISub$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_addSubInfoRecord:I
@@ -105231,7 +98706,6 @@
 Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_setDisplayNumber:I
 Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_setIconTint:I
 Lcom/android/internal/telephony/ISub$Stub;->TRANSACTION_setSubscriptionProperty:I
-Lcom/android/internal/telephony/ISub;
 Lcom/android/internal/telephony/ISub;->addSubInfoRecord(Ljava/lang/String;I)I
 Lcom/android/internal/telephony/ISub;->clearDefaultsForInactiveSubIds()V
 Lcom/android/internal/telephony/ISub;->clearSubInfo()I
@@ -105262,7 +98736,6 @@
 Lcom/android/internal/telephony/ISub;->setDisplayNumber(Ljava/lang/String;I)I
 Lcom/android/internal/telephony/ISub;->setIconTint(II)I
 Lcom/android/internal/telephony/ISub;->setSubscriptionProperty(ILjava/lang/String;Ljava/lang/String;)V
-Lcom/android/internal/telephony/ITelephony$Stub$Proxy;
 Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->answerRingingCall()V
 Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->answerRingingCallForSubscriber(I)V
 Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->call(Ljava/lang/String;Ljava/lang/String;)V
@@ -105445,7 +98918,6 @@
 Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->toggleRadioOnOffForSubscriber(I)V
 Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->updateServiceLocation()V
 Lcom/android/internal/telephony/ITelephony$Stub$Proxy;->updateServiceLocationForSubscriber(I)V
-Lcom/android/internal/telephony/ITelephony$Stub;
 Lcom/android/internal/telephony/ITelephony$Stub;-><init>()V
 Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_answerRingingCallForSubscriber:I
 Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_canChangeDtmfToneLength:I
@@ -105627,7 +99099,6 @@
 Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_toggleRadioOnOffForSubscriber:I
 Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_updateServiceLocation:I
 Lcom/android/internal/telephony/ITelephony$Stub;->TRANSACTION_updateServiceLocationForSubscriber:I
-Lcom/android/internal/telephony/ITelephony;
 Lcom/android/internal/telephony/ITelephony;->answerRingingCallForSubscriber(I)V
 Lcom/android/internal/telephony/ITelephony;->canChangeDtmfToneLength()Z
 Lcom/android/internal/telephony/ITelephony;->carrierActionReportDefaultNetworkStatus(IZ)V
@@ -105783,7 +99254,6 @@
 Lcom/android/internal/telephony/ITelephony;->switchSlots([I)Z
 Lcom/android/internal/telephony/ITelephony;->toggleRadioOnOffForSubscriber(I)V
 Lcom/android/internal/telephony/ITelephony;->updateServiceLocationForSubscriber(I)V
-Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;
 Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->addOnSubscriptionsChangedListener(Ljava/lang/String;Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;)V
 Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->listen(Ljava/lang/String;Lcom/android/internal/telephony/IPhoneStateListener;IZ)V
@@ -105819,7 +99289,6 @@
 Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyUserMobileDataStateChangedForPhoneId(IIZ)V
 Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->notifyVoLteServiceStateChanged(Landroid/telephony/VoLteServiceState;)V
 Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;->removeOnSubscriptionsChangedListener(Ljava/lang/String;Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;)V
-Lcom/android/internal/telephony/ITelephonyRegistry$Stub;
 Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_addOnSubscriptionsChangedListener:I
 Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_listen:I
@@ -105854,7 +99323,6 @@
 Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyUserMobileDataStateChangedForPhoneId:I
 Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_notifyVoLteServiceStateChanged:I
 Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->TRANSACTION_removeOnSubscriptionsChangedListener:I
-Lcom/android/internal/telephony/ITelephonyRegistry;
 Lcom/android/internal/telephony/ITelephonyRegistry;->addOnSubscriptionsChangedListener(Ljava/lang/String;Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;)V
 Lcom/android/internal/telephony/ITelephonyRegistry;->listenForSubscriber(ILjava/lang/String;Lcom/android/internal/telephony/IPhoneStateListener;IZ)V
 Lcom/android/internal/telephony/ITelephonyRegistry;->notifyCallForwardingChangedForSubscriber(IZ)V
@@ -105880,7 +99348,6 @@
 Lcom/android/internal/telephony/ITelephonyRegistry;->notifyUserMobileDataStateChangedForPhoneId(IIZ)V
 Lcom/android/internal/telephony/ITelephonyRegistry;->notifyVoLteServiceStateChanged(Landroid/telephony/VoLteServiceState;)V
 Lcom/android/internal/telephony/ITelephonyRegistry;->removeOnSubscriptionsChangedListener(Ljava/lang/String;Lcom/android/internal/telephony/IOnSubscriptionsChangedListener;)V
-Lcom/android/internal/telephony/IWapPushManager$Stub$Proxy;
 Lcom/android/internal/telephony/IWapPushManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/telephony/IWapPushManager$Stub$Proxy;->addPackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZZ)Z
 Lcom/android/internal/telephony/IWapPushManager$Stub$Proxy;->deletePackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
@@ -105888,23 +99355,17 @@
 Lcom/android/internal/telephony/IWapPushManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/telephony/IWapPushManager$Stub$Proxy;->processMessage(Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;)I
 Lcom/android/internal/telephony/IWapPushManager$Stub$Proxy;->updatePackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZZ)Z
-Lcom/android/internal/telephony/IWapPushManager$Stub;
 Lcom/android/internal/telephony/IWapPushManager$Stub;-><init>()V
 Lcom/android/internal/telephony/IWapPushManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/telephony/IWapPushManager$Stub;->TRANSACTION_addPackage:I
 Lcom/android/internal/telephony/IWapPushManager$Stub;->TRANSACTION_deletePackage:I
 Lcom/android/internal/telephony/IWapPushManager$Stub;->TRANSACTION_processMessage:I
 Lcom/android/internal/telephony/IWapPushManager$Stub;->TRANSACTION_updatePackage:I
-Lcom/android/internal/telephony/IWapPushManager;
 Lcom/android/internal/telephony/IWapPushManager;->processMessage(Ljava/lang/String;Ljava/lang/String;Landroid/content/Intent;)I
-Lcom/android/internal/telephony/OperatorInfo$State;
-Lcom/android/internal/telephony/OperatorInfo$State;-><init>()V
 Lcom/android/internal/telephony/OperatorInfo$State;->AVAILABLE:Lcom/android/internal/telephony/OperatorInfo$State;
 Lcom/android/internal/telephony/OperatorInfo$State;->UNKNOWN:Lcom/android/internal/telephony/OperatorInfo$State;
 Lcom/android/internal/telephony/OperatorInfo$State;->valueOf(Ljava/lang/String;)Lcom/android/internal/telephony/OperatorInfo$State;
 Lcom/android/internal/telephony/OperatorInfo$State;->values()[Lcom/android/internal/telephony/OperatorInfo$State;
-Lcom/android/internal/telephony/OperatorInfo;
-Lcom/android/internal/telephony/SmsAddress;
 Lcom/android/internal/telephony/SmsAddress;-><init>()V
 Lcom/android/internal/telephony/SmsAddress;->address:Ljava/lang/String;
 Lcom/android/internal/telephony/SmsAddress;->couldBeEmailGateway()Z
@@ -105919,11 +99380,8 @@
 Lcom/android/internal/telephony/SmsAddress;->TON_NETWORK:I
 Lcom/android/internal/telephony/SmsAddress;->TON_SUBSCRIBER:I
 Lcom/android/internal/telephony/SmsAddress;->TON_UNKNOWN:I
-Lcom/android/internal/telephony/SmsConstants$MessageClass;
-Lcom/android/internal/telephony/SmsConstants$MessageClass;-><init>()V
 Lcom/android/internal/telephony/SmsConstants$MessageClass;->valueOf(Ljava/lang/String;)Lcom/android/internal/telephony/SmsConstants$MessageClass;
 Lcom/android/internal/telephony/SmsConstants$MessageClass;->values()[Lcom/android/internal/telephony/SmsConstants$MessageClass;
-Lcom/android/internal/telephony/SmsConstants;
 Lcom/android/internal/telephony/SmsConstants;-><init>()V
 Lcom/android/internal/telephony/SmsConstants;->ENCODING_16BIT:I
 Lcom/android/internal/telephony/SmsConstants;->ENCODING_7BIT:I
@@ -105937,19 +99395,14 @@
 Lcom/android/internal/telephony/SmsConstants;->MAX_USER_DATA_BYTES_WITH_HEADER:I
 Lcom/android/internal/telephony/SmsConstants;->MAX_USER_DATA_SEPTETS:I
 Lcom/android/internal/telephony/SmsConstants;->MAX_USER_DATA_SEPTETS_WITH_HEADER:I
-Lcom/android/internal/telephony/SmsHeader$ConcatRef;
 Lcom/android/internal/telephony/SmsHeader$ConcatRef;->isEightBits:Z
-Lcom/android/internal/telephony/SmsHeader$MiscElt;
 Lcom/android/internal/telephony/SmsHeader$MiscElt;-><init>()V
 Lcom/android/internal/telephony/SmsHeader$MiscElt;->data:[B
 Lcom/android/internal/telephony/SmsHeader$MiscElt;->id:I
-Lcom/android/internal/telephony/SmsHeader$PortAddrs;
 Lcom/android/internal/telephony/SmsHeader$PortAddrs;->areEightBits:Z
-Lcom/android/internal/telephony/SmsHeader$SpecialSmsMsg;
 Lcom/android/internal/telephony/SmsHeader$SpecialSmsMsg;-><init>()V
 Lcom/android/internal/telephony/SmsHeader$SpecialSmsMsg;->msgCount:I
 Lcom/android/internal/telephony/SmsHeader$SpecialSmsMsg;->msgIndType:I
-Lcom/android/internal/telephony/SmsHeader;
 Lcom/android/internal/telephony/SmsHeader;->ELT_ID_APPLICATION_PORT_ADDRESSING_16_BIT:I
 Lcom/android/internal/telephony/SmsHeader;->ELT_ID_APPLICATION_PORT_ADDRESSING_8_BIT:I
 Lcom/android/internal/telephony/SmsHeader;->ELT_ID_CHARACTER_SIZE_WVG_OBJECT:I
@@ -105985,9 +99438,7 @@
 Lcom/android/internal/telephony/SmsHeader;->PORT_WAP_PUSH:I
 Lcom/android/internal/telephony/SmsHeader;->PORT_WAP_WSP:I
 Lcom/android/internal/telephony/SmsHeader;->specialSmsMsgList:Ljava/util/ArrayList;
-Lcom/android/internal/telephony/SmsMessageBase$SubmitPduBase;
 Lcom/android/internal/telephony/SmsMessageBase$SubmitPduBase;-><init>()V
-Lcom/android/internal/telephony/SmsMessageBase;
 Lcom/android/internal/telephony/SmsMessageBase;->calcUnicodeEncodingDetails(Ljava/lang/CharSequence;)Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;
 Lcom/android/internal/telephony/SmsMessageBase;->extractEmailAddressFromMessageBody()V
 Lcom/android/internal/telephony/SmsMessageBase;->findNextUnicodePosition(IILjava/lang/CharSequence;)I
@@ -106011,33 +99462,25 @@
 Lcom/android/internal/telephony/SmsMessageBase;->mStatusOnIcc:I
 Lcom/android/internal/telephony/SmsMessageBase;->mUserData:[B
 Lcom/android/internal/telephony/SmsMessageBase;->parseMessageBody()V
-Lcom/android/internal/telephony/SmsRawData;
 Lcom/android/internal/telephony/SmsRawData;->data:[B
-Lcom/android/internal/textservice/ISpellCheckerService$Stub$Proxy;
 Lcom/android/internal/textservice/ISpellCheckerService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/textservice/ISpellCheckerService$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/textservice/ISpellCheckerService$Stub$Proxy;->getISpellCheckerSession(Ljava/lang/String;Lcom/android/internal/textservice/ISpellCheckerSessionListener;Landroid/os/Bundle;Lcom/android/internal/textservice/ISpellCheckerServiceCallback;)V
 Lcom/android/internal/textservice/ISpellCheckerService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Lcom/android/internal/textservice/ISpellCheckerService$Stub;
 Lcom/android/internal/textservice/ISpellCheckerService$Stub;-><init>()V
 Lcom/android/internal/textservice/ISpellCheckerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/textservice/ISpellCheckerService;
 Lcom/android/internal/textservice/ISpellCheckerService$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/textservice/ISpellCheckerService$Stub;->TRANSACTION_getISpellCheckerSession:I
-Lcom/android/internal/textservice/ISpellCheckerService;
 Lcom/android/internal/textservice/ISpellCheckerService;->getISpellCheckerSession(Ljava/lang/String;Lcom/android/internal/textservice/ISpellCheckerSessionListener;Landroid/os/Bundle;Lcom/android/internal/textservice/ISpellCheckerServiceCallback;)V
-Lcom/android/internal/textservice/ISpellCheckerServiceCallback$Stub$Proxy;
 Lcom/android/internal/textservice/ISpellCheckerServiceCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/textservice/ISpellCheckerServiceCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/textservice/ISpellCheckerServiceCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/textservice/ISpellCheckerServiceCallback$Stub$Proxy;->onSessionCreated(Lcom/android/internal/textservice/ISpellCheckerSession;)V
-Lcom/android/internal/textservice/ISpellCheckerServiceCallback$Stub;
 Lcom/android/internal/textservice/ISpellCheckerServiceCallback$Stub;-><init>()V
 Lcom/android/internal/textservice/ISpellCheckerServiceCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/textservice/ISpellCheckerServiceCallback;
 Lcom/android/internal/textservice/ISpellCheckerServiceCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/textservice/ISpellCheckerServiceCallback$Stub;->TRANSACTION_onSessionCreated:I
-Lcom/android/internal/textservice/ISpellCheckerServiceCallback;
 Lcom/android/internal/textservice/ISpellCheckerServiceCallback;->onSessionCreated(Lcom/android/internal/textservice/ISpellCheckerSession;)V
-Lcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;
 Lcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -106045,7 +99488,6 @@
 Lcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->onClose()V
 Lcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->onGetSentenceSuggestionsMultiple([Landroid/view/textservice/TextInfo;I)V
 Lcom/android/internal/textservice/ISpellCheckerSession$Stub$Proxy;->onGetSuggestionsMultiple([Landroid/view/textservice/TextInfo;IZ)V
-Lcom/android/internal/textservice/ISpellCheckerSession$Stub;
 Lcom/android/internal/textservice/ISpellCheckerSession$Stub;-><init>()V
 Lcom/android/internal/textservice/ISpellCheckerSession$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/textservice/ISpellCheckerSession;
 Lcom/android/internal/textservice/ISpellCheckerSession$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -106053,27 +99495,22 @@
 Lcom/android/internal/textservice/ISpellCheckerSession$Stub;->TRANSACTION_onClose:I
 Lcom/android/internal/textservice/ISpellCheckerSession$Stub;->TRANSACTION_onGetSentenceSuggestionsMultiple:I
 Lcom/android/internal/textservice/ISpellCheckerSession$Stub;->TRANSACTION_onGetSuggestionsMultiple:I
-Lcom/android/internal/textservice/ISpellCheckerSession;
 Lcom/android/internal/textservice/ISpellCheckerSession;->onCancel()V
 Lcom/android/internal/textservice/ISpellCheckerSession;->onClose()V
 Lcom/android/internal/textservice/ISpellCheckerSession;->onGetSentenceSuggestionsMultiple([Landroid/view/textservice/TextInfo;I)V
 Lcom/android/internal/textservice/ISpellCheckerSession;->onGetSuggestionsMultiple([Landroid/view/textservice/TextInfo;IZ)V
-Lcom/android/internal/textservice/ISpellCheckerSessionListener$Stub$Proxy;
 Lcom/android/internal/textservice/ISpellCheckerSessionListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/textservice/ISpellCheckerSessionListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/textservice/ISpellCheckerSessionListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/textservice/ISpellCheckerSessionListener$Stub$Proxy;->onGetSentenceSuggestions([Landroid/view/textservice/SentenceSuggestionsInfo;)V
 Lcom/android/internal/textservice/ISpellCheckerSessionListener$Stub$Proxy;->onGetSuggestions([Landroid/view/textservice/SuggestionsInfo;)V
-Lcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;
 Lcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;-><init>()V
 Lcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/textservice/ISpellCheckerSessionListener;
 Lcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;->TRANSACTION_onGetSentenceSuggestions:I
 Lcom/android/internal/textservice/ISpellCheckerSessionListener$Stub;->TRANSACTION_onGetSuggestions:I
-Lcom/android/internal/textservice/ISpellCheckerSessionListener;
 Lcom/android/internal/textservice/ISpellCheckerSessionListener;->onGetSentenceSuggestions([Landroid/view/textservice/SentenceSuggestionsInfo;)V
 Lcom/android/internal/textservice/ISpellCheckerSessionListener;->onGetSuggestions([Landroid/view/textservice/SuggestionsInfo;)V
-Lcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;
 Lcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->finishSpellCheckerService(Lcom/android/internal/textservice/ISpellCheckerSessionListener;)V
 Lcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getCurrentSpellChecker(Ljava/lang/String;)Landroid/view/textservice/SpellCheckerInfo;
 Lcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getCurrentSpellCheckerSubtype(Ljava/lang/String;Z)Landroid/view/textservice/SpellCheckerSubtype;
@@ -106082,7 +99519,6 @@
 Lcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->getSpellCheckerService(Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/textservice/ITextServicesSessionListener;Lcom/android/internal/textservice/ISpellCheckerSessionListener;Landroid/os/Bundle;)V
 Lcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->isSpellCheckerEnabled()Z
 Lcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;->mRemote:Landroid/os/IBinder;
-Lcom/android/internal/textservice/ITextServicesManager$Stub;
 Lcom/android/internal/textservice/ITextServicesManager$Stub;-><init>()V
 Lcom/android/internal/textservice/ITextServicesManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/textservice/ITextServicesManager;
 Lcom/android/internal/textservice/ITextServicesManager$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -106092,34 +99528,23 @@
 Lcom/android/internal/textservice/ITextServicesManager$Stub;->TRANSACTION_getEnabledSpellCheckers:I
 Lcom/android/internal/textservice/ITextServicesManager$Stub;->TRANSACTION_getSpellCheckerService:I
 Lcom/android/internal/textservice/ITextServicesManager$Stub;->TRANSACTION_isSpellCheckerEnabled:I
-Lcom/android/internal/textservice/ITextServicesManager;
 Lcom/android/internal/textservice/ITextServicesManager;->finishSpellCheckerService(Lcom/android/internal/textservice/ISpellCheckerSessionListener;)V
 Lcom/android/internal/textservice/ITextServicesManager;->getCurrentSpellChecker(Ljava/lang/String;)Landroid/view/textservice/SpellCheckerInfo;
 Lcom/android/internal/textservice/ITextServicesManager;->getCurrentSpellCheckerSubtype(Ljava/lang/String;Z)Landroid/view/textservice/SpellCheckerSubtype;
 Lcom/android/internal/textservice/ITextServicesManager;->getEnabledSpellCheckers()[Landroid/view/textservice/SpellCheckerInfo;
 Lcom/android/internal/textservice/ITextServicesManager;->getSpellCheckerService(Ljava/lang/String;Ljava/lang/String;Lcom/android/internal/textservice/ITextServicesSessionListener;Lcom/android/internal/textservice/ISpellCheckerSessionListener;Landroid/os/Bundle;)V
 Lcom/android/internal/textservice/ITextServicesManager;->isSpellCheckerEnabled()Z
-Lcom/android/internal/textservice/ITextServicesSessionListener$Stub$Proxy;
 Lcom/android/internal/textservice/ITextServicesSessionListener$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/textservice/ITextServicesSessionListener$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/textservice/ITextServicesSessionListener$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/textservice/ITextServicesSessionListener$Stub$Proxy;->onServiceConnected(Lcom/android/internal/textservice/ISpellCheckerSession;)V
-Lcom/android/internal/textservice/ITextServicesSessionListener$Stub;
 Lcom/android/internal/textservice/ITextServicesSessionListener$Stub;-><init>()V
 Lcom/android/internal/textservice/ITextServicesSessionListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/textservice/ITextServicesSessionListener;
 Lcom/android/internal/textservice/ITextServicesSessionListener$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/textservice/ITextServicesSessionListener$Stub;->TRANSACTION_onServiceConnected:I
-Lcom/android/internal/textservice/ITextServicesSessionListener;
 Lcom/android/internal/textservice/ITextServicesSessionListener;->onServiceConnected(Lcom/android/internal/textservice/ISpellCheckerSession;)V
-Lcom/android/internal/util/AsyncChannel$AsyncChannelConnection;
-Lcom/android/internal/util/AsyncChannel$AsyncChannelConnection;-><init>()V
-Lcom/android/internal/util/AsyncChannel$DeathMonitor;
-Lcom/android/internal/util/AsyncChannel$DeathMonitor;-><init>()V
-Lcom/android/internal/util/AsyncChannel$SyncMessenger$SyncHandler;
-Lcom/android/internal/util/AsyncChannel$SyncMessenger$SyncHandler;-><init>(Landroid/os/Looper;)V
 Lcom/android/internal/util/AsyncChannel$SyncMessenger$SyncHandler;->mLockObject:Ljava/lang/Object;
 Lcom/android/internal/util/AsyncChannel$SyncMessenger$SyncHandler;->mResultMsg:Landroid/os/Message;
-Lcom/android/internal/util/AsyncChannel$SyncMessenger;
 Lcom/android/internal/util/AsyncChannel$SyncMessenger;-><init>()V
 Lcom/android/internal/util/AsyncChannel$SyncMessenger;->mHandler:Lcom/android/internal/util/AsyncChannel$SyncMessenger$SyncHandler;
 Lcom/android/internal/util/AsyncChannel$SyncMessenger;->mHandlerThread:Landroid/os/HandlerThread;
@@ -106129,7 +99554,6 @@
 Lcom/android/internal/util/AsyncChannel$SyncMessenger;->sCount:I
 Lcom/android/internal/util/AsyncChannel$SyncMessenger;->sendMessageSynchronously(Landroid/os/Messenger;Landroid/os/Message;)Landroid/os/Message;
 Lcom/android/internal/util/AsyncChannel$SyncMessenger;->sStack:Ljava/util/Stack;
-Lcom/android/internal/util/AsyncChannel;
 Lcom/android/internal/util/AsyncChannel;->BASE:I
 Lcom/android/internal/util/AsyncChannel;->CMD_CHANNEL_DISCONNECT:I
 Lcom/android/internal/util/AsyncChannel;->CMD_CHANNEL_DISCONNECTED:I
@@ -106166,11 +99590,9 @@
 Lcom/android/internal/util/AsyncChannel;->STATUS_REMOTE_DISCONNECTION:I
 Lcom/android/internal/util/AsyncChannel;->STATUS_SEND_UNSUCCESSFUL:I
 Lcom/android/internal/util/AsyncChannel;->TAG:Ljava/lang/String;
-Lcom/android/internal/util/AsyncService$AsyncServiceInfo;
 Lcom/android/internal/util/AsyncService$AsyncServiceInfo;-><init>()V
 Lcom/android/internal/util/AsyncService$AsyncServiceInfo;->mHandler:Landroid/os/Handler;
 Lcom/android/internal/util/AsyncService$AsyncServiceInfo;->mRestartFlags:I
-Lcom/android/internal/util/AsyncService;
 Lcom/android/internal/util/AsyncService;-><init>()V
 Lcom/android/internal/util/AsyncService;->CMD_ASYNC_SERVICE_DESTROY:I
 Lcom/android/internal/util/AsyncService;->CMD_ASYNC_SERVICE_ON_START_INTENT:I
@@ -106181,15 +99603,12 @@
 Lcom/android/internal/util/AsyncService;->mHandler:Landroid/os/Handler;
 Lcom/android/internal/util/AsyncService;->mMessenger:Landroid/os/Messenger;
 Lcom/android/internal/util/AsyncService;->TAG:Ljava/lang/String;
-Lcom/android/internal/util/ExponentiallyBucketedHistogram;
 Lcom/android/internal/util/ExponentiallyBucketedHistogram;-><init>(I)V
 Lcom/android/internal/util/ExponentiallyBucketedHistogram;->add(I)V
 Lcom/android/internal/util/ExponentiallyBucketedHistogram;->log(Ljava/lang/String;Ljava/lang/CharSequence;)V
 Lcom/android/internal/util/ExponentiallyBucketedHistogram;->mData:[I
 Lcom/android/internal/util/ExponentiallyBucketedHistogram;->reset()V
-Lcom/android/internal/util/FastPrintWriter$DummyWriter;
 Lcom/android/internal/util/FastPrintWriter$DummyWriter;-><init>()V
-Lcom/android/internal/util/FastPrintWriter;
 Lcom/android/internal/util/FastPrintWriter;-><init>(Landroid/util/Printer;)V
 Lcom/android/internal/util/FastPrintWriter;-><init>(Landroid/util/Printer;I)V
 Lcom/android/internal/util/FastPrintWriter;-><init>(Ljava/io/OutputStream;Z)V
@@ -106215,20 +99634,14 @@
 Lcom/android/internal/util/FastPrintWriter;->mSeparator:Ljava/lang/String;
 Lcom/android/internal/util/FastPrintWriter;->mText:[C
 Lcom/android/internal/util/FastPrintWriter;->mWriter:Ljava/io/Writer;
-Lcom/android/internal/util/FunctionalUtils$RemoteExceptionIgnoringConsumer;
 Lcom/android/internal/util/FunctionalUtils$RemoteExceptionIgnoringConsumer;->acceptOrThrow(Ljava/lang/Object;)V
-Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;
 Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;->acceptOrThrow(Ljava/lang/Object;)V
-Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;
 Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;->runOrThrow()V
-Lcom/android/internal/util/FunctionalUtils$ThrowingSupplier;
 Lcom/android/internal/util/FunctionalUtils$ThrowingSupplier;->getOrThrow()Ljava/lang/Object;
-Lcom/android/internal/util/FunctionalUtils;
 Lcom/android/internal/util/FunctionalUtils;-><init>()V
 Lcom/android/internal/util/FunctionalUtils;->handleExceptions(Lcom/android/internal/util/FunctionalUtils$ThrowingRunnable;Ljava/util/function/Consumer;)Ljava/lang/Runnable;
 Lcom/android/internal/util/FunctionalUtils;->ignoreRemoteException(Lcom/android/internal/util/FunctionalUtils$RemoteExceptionIgnoringConsumer;)Ljava/util/function/Consumer;
 Lcom/android/internal/util/FunctionalUtils;->uncheckExceptions(Lcom/android/internal/util/FunctionalUtils$ThrowingConsumer;)Ljava/util/function/Consumer;
-Lcom/android/internal/util/ImageUtils;
 Lcom/android/internal/util/ImageUtils;-><init>()V
 Lcom/android/internal/util/ImageUtils;->ALPHA_TOLERANCE:I
 Lcom/android/internal/util/ImageUtils;->buildScaledBitmap(Landroid/graphics/drawable/Drawable;II)Landroid/graphics/Bitmap;
@@ -106242,7 +99655,6 @@
 Lcom/android/internal/util/ImageUtils;->mTempCompactBitmapPaint:Landroid/graphics/Paint;
 Lcom/android/internal/util/ImageUtils;->mTempMatrix:Landroid/graphics/Matrix;
 Lcom/android/internal/util/ImageUtils;->TOLERANCE:I
-Lcom/android/internal/util/IndentingPrintWriter;
 Lcom/android/internal/util/IndentingPrintWriter;-><init>(Ljava/io/Writer;Ljava/lang/String;I)V
 Lcom/android/internal/util/IndentingPrintWriter;->maybeWriteIndent()V
 Lcom/android/internal/util/IndentingPrintWriter;->mCurrentIndent:[C
@@ -106257,14 +99669,11 @@
 Lcom/android/internal/util/IndentingPrintWriter;->printPair(Ljava/lang/String;[Ljava/lang/Object;)Lcom/android/internal/util/IndentingPrintWriter;
 Lcom/android/internal/util/IndentingPrintWriter;->setIndent(I)Lcom/android/internal/util/IndentingPrintWriter;
 Lcom/android/internal/util/IndentingPrintWriter;->setIndent(Ljava/lang/String;)Lcom/android/internal/util/IndentingPrintWriter;
-Lcom/android/internal/util/JournaledFile;
 Lcom/android/internal/util/JournaledFile;->mReal:Ljava/io/File;
 Lcom/android/internal/util/JournaledFile;->mTemp:Ljava/io/File;
 Lcom/android/internal/util/JournaledFile;->mWriting:Z
-Lcom/android/internal/util/LocalLogProto;
 Lcom/android/internal/util/LocalLogProto;-><init>()V
 Lcom/android/internal/util/LocalLogProto;->LINES:J
-Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;
 Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;-><init>()V
 Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->calculateContrast(II)D
 Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->calculateLuminance(I)D
@@ -106294,7 +99703,6 @@
 Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->XYZ_WHITE_REFERENCE_X:D
 Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->XYZ_WHITE_REFERENCE_Y:D
 Lcom/android/internal/util/NotificationColorUtil$ColorUtilsFromCompat;->XYZ_WHITE_REFERENCE_Z:D
-Lcom/android/internal/util/NotificationColorUtil;
 Lcom/android/internal/util/NotificationColorUtil;-><init>(Landroid/content/Context;)V
 Lcom/android/internal/util/NotificationColorUtil;->calculateContrast(II)D
 Lcom/android/internal/util/NotificationColorUtil;->calculateLuminance(I)D
@@ -106336,7 +99744,6 @@
 Lcom/android/internal/util/NotificationColorUtil;->sInstance:Lcom/android/internal/util/NotificationColorUtil;
 Lcom/android/internal/util/NotificationColorUtil;->sLock:Ljava/lang/Object;
 Lcom/android/internal/util/NotificationColorUtil;->TAG:Ljava/lang/String;
-Lcom/android/internal/util/StatLogger;
 Lcom/android/internal/util/StatLogger;-><init>([Ljava/lang/String;)V
 Lcom/android/internal/util/StatLogger;->dump(Lcom/android/internal/util/IndentingPrintWriter;)V
 Lcom/android/internal/util/StatLogger;->dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
@@ -106355,7 +99762,6 @@
 Lcom/android/internal/util/StatLogger;->mNextTickTime:J
 Lcom/android/internal/util/StatLogger;->SIZE:I
 Lcom/android/internal/util/StatLogger;->TAG:Ljava/lang/String;
-Lcom/android/internal/util/TokenBucket;
 Lcom/android/internal/util/TokenBucket;-><init>(II)V
 Lcom/android/internal/util/TokenBucket;-><init>(III)V
 Lcom/android/internal/util/TokenBucket;->available()I
@@ -106370,11 +99776,8 @@
 Lcom/android/internal/util/TokenBucket;->mLastFill:J
 Lcom/android/internal/util/TokenBucket;->reset(I)V
 Lcom/android/internal/util/TokenBucket;->scaledTime()J
-Lcom/android/internal/util/TypedProperties$ParseException;
 Lcom/android/internal/util/TypedProperties$ParseException;-><init>(Ljava/io/StreamTokenizer;Ljava/lang/String;)V
-Lcom/android/internal/util/TypedProperties$TypeException;
 Lcom/android/internal/util/TypedProperties$TypeException;-><init>(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/String;)V
-Lcom/android/internal/util/TypedProperties;
 Lcom/android/internal/util/TypedProperties;-><init>()V
 Lcom/android/internal/util/TypedProperties;->getBoolean(Ljava/lang/String;)Z
 Lcom/android/internal/util/TypedProperties;->getBoolean(Ljava/lang/String;Z)Z
@@ -106413,18 +99816,14 @@
 Lcom/android/internal/util/TypedProperties;->TYPE_SHORT:I
 Lcom/android/internal/util/TypedProperties;->TYPE_STRING:I
 Lcom/android/internal/util/TypedProperties;->TYPE_UNSET:I
-Lcom/android/internal/util/VirtualRefBasePtr;
 Lcom/android/internal/util/VirtualRefBasePtr;-><init>(J)V
 Lcom/android/internal/util/VirtualRefBasePtr;->get()J
 Lcom/android/internal/util/VirtualRefBasePtr;->mNativePtr:J
 Lcom/android/internal/util/VirtualRefBasePtr;->nDecStrong(J)V
 Lcom/android/internal/util/VirtualRefBasePtr;->nIncStrong(J)V
 Lcom/android/internal/util/VirtualRefBasePtr;->release()V
-Lcom/android/internal/util/XmlUtils$ReadMapCallback;
 Lcom/android/internal/util/XmlUtils$ReadMapCallback;->readThisUnknownObjectXml(Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/String;)Ljava/lang/Object;
-Lcom/android/internal/util/XmlUtils$WriteMapCallback;
 Lcom/android/internal/util/XmlUtils$WriteMapCallback;->writeUnknownObject(Ljava/lang/Object;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
-Lcom/android/internal/util/XmlUtils;
 Lcom/android/internal/util/XmlUtils;-><init>()V
 Lcom/android/internal/util/XmlUtils;->convertValueToList(Ljava/lang/CharSequence;[Ljava/lang/String;I)I
 Lcom/android/internal/util/XmlUtils;->convertValueToUnsignedInt(Ljava/lang/String;I)I
@@ -106482,7 +99881,6 @@
 Lcom/android/internal/util/XmlUtils;->writeUriAttribute(Lorg/xmlpull/v1/XmlSerializer;Ljava/lang/String;Landroid/net/Uri;)V
 Lcom/android/internal/util/XmlUtils;->writeValueXml(Ljava/lang/Object;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;)V
 Lcom/android/internal/util/XmlUtils;->writeValueXml(Ljava/lang/Object;Ljava/lang/String;Lorg/xmlpull/v1/XmlSerializer;Lcom/android/internal/util/XmlUtils$WriteMapCallback;)V
-Lcom/android/internal/view/BaseIWindow;
 Lcom/android/internal/view/BaseIWindow;->closeSystemDialogs(Ljava/lang/String;)V
 Lcom/android/internal/view/BaseIWindow;->dispatchAppVisibility(Z)V
 Lcom/android/internal/view/BaseIWindow;->dispatchDragEvent(Landroid/view/DragEvent;)V
@@ -106501,7 +99899,6 @@
 Lcom/android/internal/view/BaseIWindow;->setSession(Landroid/view/IWindowSession;)V
 Lcom/android/internal/view/BaseIWindow;->updatePointerIcon(FF)V
 Lcom/android/internal/view/BaseIWindow;->windowFocusChanged(ZZ)V
-Lcom/android/internal/view/BaseSurfaceHolder;
 Lcom/android/internal/view/BaseSurfaceHolder;-><init>()V
 Lcom/android/internal/view/BaseSurfaceHolder;->DEBUG:Z
 Lcom/android/internal/view/BaseSurfaceHolder;->getCallbacks()[Landroid/view/SurfaceHolder$Callback;
@@ -106529,27 +99926,21 @@
 Lcom/android/internal/view/BaseSurfaceHolder;->setSurfaceFrameSize(II)V
 Lcom/android/internal/view/BaseSurfaceHolder;->TAG:Ljava/lang/String;
 Lcom/android/internal/view/BaseSurfaceHolder;->ungetCallbacks()V
-Lcom/android/internal/view/IDragAndDropPermissions$Stub$Proxy;
 Lcom/android/internal/view/IDragAndDropPermissions$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/view/IDragAndDropPermissions$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/view/IDragAndDropPermissions$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/view/IDragAndDropPermissions$Stub$Proxy;->release()V
 Lcom/android/internal/view/IDragAndDropPermissions$Stub$Proxy;->take(Landroid/os/IBinder;)V
 Lcom/android/internal/view/IDragAndDropPermissions$Stub$Proxy;->takeTransient(Landroid/os/IBinder;)V
-Lcom/android/internal/view/IDragAndDropPermissions$Stub;
 Lcom/android/internal/view/IDragAndDropPermissions$Stub;-><init>()V
 Lcom/android/internal/view/IDragAndDropPermissions$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IDragAndDropPermissions;
 Lcom/android/internal/view/IDragAndDropPermissions$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/view/IDragAndDropPermissions$Stub;->TRANSACTION_release:I
 Lcom/android/internal/view/IDragAndDropPermissions$Stub;->TRANSACTION_take:I
 Lcom/android/internal/view/IDragAndDropPermissions$Stub;->TRANSACTION_takeTransient:I
-Lcom/android/internal/view/IDragAndDropPermissions;
 Lcom/android/internal/view/IDragAndDropPermissions;->release()V
 Lcom/android/internal/view/IDragAndDropPermissions;->take(Landroid/os/IBinder;)V
 Lcom/android/internal/view/IDragAndDropPermissions;->takeTransient(Landroid/os/IBinder;)V
-Lcom/android/internal/view/IInputConnectionWrapper$MyHandler;
-Lcom/android/internal/view/IInputConnectionWrapper$MyHandler;-><init>(Landroid/os/Looper;)V
-Lcom/android/internal/view/IInputConnectionWrapper;
 Lcom/android/internal/view/IInputConnectionWrapper;-><init>(Landroid/os/Looper;Landroid/view/inputmethod/InputConnection;)V
 Lcom/android/internal/view/IInputConnectionWrapper;->beginBatchEdit()V
 Lcom/android/internal/view/IInputConnectionWrapper;->clearMetaKeyStates(I)V
@@ -106619,7 +100010,6 @@
 Lcom/android/internal/view/IInputConnectionWrapper;->setComposingText(Ljava/lang/CharSequence;I)V
 Lcom/android/internal/view/IInputConnectionWrapper;->setSelection(II)V
 Lcom/android/internal/view/IInputConnectionWrapper;->TAG:Ljava/lang/String;
-Lcom/android/internal/view/IInputContext$Stub$Proxy;
 Lcom/android/internal/view/IInputContext$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/view/IInputContext$Stub$Proxy;->beginBatchEdit()V
 Lcom/android/internal/view/IInputContext$Stub$Proxy;->clearMetaKeyStates(I)V
@@ -106646,7 +100036,6 @@
 Lcom/android/internal/view/IInputContext$Stub$Proxy;->setComposingRegion(II)V
 Lcom/android/internal/view/IInputContext$Stub$Proxy;->setComposingText(Ljava/lang/CharSequence;I)V
 Lcom/android/internal/view/IInputContext$Stub$Proxy;->setSelection(II)V
-Lcom/android/internal/view/IInputContext$Stub;
 Lcom/android/internal/view/IInputContext$Stub;-><init>()V
 Lcom/android/internal/view/IInputContext$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputContext;
 Lcom/android/internal/view/IInputContext$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -106673,7 +100062,6 @@
 Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_setComposingRegion:I
 Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_setComposingText:I
 Lcom/android/internal/view/IInputContext$Stub;->TRANSACTION_setSelection:I
-Lcom/android/internal/view/IInputContext;
 Lcom/android/internal/view/IInputContext;->beginBatchEdit()V
 Lcom/android/internal/view/IInputContext;->clearMetaKeyStates(I)V
 Lcom/android/internal/view/IInputContext;->commitCompletion(Landroid/view/inputmethod/CompletionInfo;)V
@@ -106697,7 +100085,6 @@
 Lcom/android/internal/view/IInputContext;->setComposingRegion(II)V
 Lcom/android/internal/view/IInputContext;->setComposingText(Ljava/lang/CharSequence;I)V
 Lcom/android/internal/view/IInputContext;->setSelection(II)V
-Lcom/android/internal/view/IInputContextCallback$Stub$Proxy;
 Lcom/android/internal/view/IInputContextCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/view/IInputContextCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/view/IInputContextCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -106708,7 +100095,6 @@
 Lcom/android/internal/view/IInputContextCallback$Stub$Proxy;->setSelectedText(Ljava/lang/CharSequence;I)V
 Lcom/android/internal/view/IInputContextCallback$Stub$Proxy;->setTextAfterCursor(Ljava/lang/CharSequence;I)V
 Lcom/android/internal/view/IInputContextCallback$Stub$Proxy;->setTextBeforeCursor(Ljava/lang/CharSequence;I)V
-Lcom/android/internal/view/IInputContextCallback$Stub;
 Lcom/android/internal/view/IInputContextCallback$Stub;-><init>()V
 Lcom/android/internal/view/IInputContextCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputContextCallback;
 Lcom/android/internal/view/IInputContextCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -106719,7 +100105,6 @@
 Lcom/android/internal/view/IInputContextCallback$Stub;->TRANSACTION_setSelectedText:I
 Lcom/android/internal/view/IInputContextCallback$Stub;->TRANSACTION_setTextAfterCursor:I
 Lcom/android/internal/view/IInputContextCallback$Stub;->TRANSACTION_setTextBeforeCursor:I
-Lcom/android/internal/view/IInputContextCallback;
 Lcom/android/internal/view/IInputContextCallback;->setCommitContentResult(ZI)V
 Lcom/android/internal/view/IInputContextCallback;->setCursorCapsMode(II)V
 Lcom/android/internal/view/IInputContextCallback;->setExtractedText(Landroid/view/inputmethod/ExtractedText;I)V
@@ -106727,7 +100112,6 @@
 Lcom/android/internal/view/IInputContextCallback;->setSelectedText(Ljava/lang/CharSequence;I)V
 Lcom/android/internal/view/IInputContextCallback;->setTextAfterCursor(Ljava/lang/CharSequence;I)V
 Lcom/android/internal/view/IInputContextCallback;->setTextBeforeCursor(Ljava/lang/CharSequence;I)V
-Lcom/android/internal/view/IInputMethod$Stub$Proxy;
 Lcom/android/internal/view/IInputMethod$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/view/IInputMethod$Stub$Proxy;->attachToken(Landroid/os/IBinder;)V
 Lcom/android/internal/view/IInputMethod$Stub$Proxy;->bindInput(Landroid/view/inputmethod/InputBinding;)V
@@ -106741,7 +100125,6 @@
 Lcom/android/internal/view/IInputMethod$Stub$Proxy;->showSoftInput(ILandroid/os/ResultReceiver;)V
 Lcom/android/internal/view/IInputMethod$Stub$Proxy;->startInput(Landroid/os/IBinder;Lcom/android/internal/view/IInputContext;ILandroid/view/inputmethod/EditorInfo;Z)V
 Lcom/android/internal/view/IInputMethod$Stub$Proxy;->unbindInput()V
-Lcom/android/internal/view/IInputMethod$Stub;
 Lcom/android/internal/view/IInputMethod$Stub;-><init>()V
 Lcom/android/internal/view/IInputMethod$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/view/IInputMethod$Stub;->TRANSACTION_attachToken:I
@@ -106754,12 +100137,10 @@
 Lcom/android/internal/view/IInputMethod$Stub;->TRANSACTION_showSoftInput:I
 Lcom/android/internal/view/IInputMethod$Stub;->TRANSACTION_startInput:I
 Lcom/android/internal/view/IInputMethod$Stub;->TRANSACTION_unbindInput:I
-Lcom/android/internal/view/IInputMethod;
 Lcom/android/internal/view/IInputMethod;->changeInputMethodSubtype(Landroid/view/inputmethod/InputMethodSubtype;)V
 Lcom/android/internal/view/IInputMethod;->createSession(Landroid/view/InputChannel;Lcom/android/internal/view/IInputSessionCallback;)V
 Lcom/android/internal/view/IInputMethod;->revokeSession(Lcom/android/internal/view/IInputMethodSession;)V
 Lcom/android/internal/view/IInputMethod;->startInput(Landroid/os/IBinder;Lcom/android/internal/view/IInputContext;ILandroid/view/inputmethod/EditorInfo;Z)V
-Lcom/android/internal/view/IInputMethodClient$Stub$Proxy;
 Lcom/android/internal/view/IInputMethodClient$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/view/IInputMethodClient$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/view/IInputMethodClient$Stub$Proxy;->mRemote:Landroid/os/IBinder;
@@ -106769,7 +100150,6 @@
 Lcom/android/internal/view/IInputMethodClient$Stub$Proxy;->setActive(ZZ)V
 Lcom/android/internal/view/IInputMethodClient$Stub$Proxy;->setUserActionNotificationSequenceNumber(I)V
 Lcom/android/internal/view/IInputMethodClient$Stub$Proxy;->setUsingInputMethod(Z)V
-Lcom/android/internal/view/IInputMethodClient$Stub;
 Lcom/android/internal/view/IInputMethodClient$Stub;-><init>()V
 Lcom/android/internal/view/IInputMethodClient$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethodClient;
 Lcom/android/internal/view/IInputMethodClient$Stub;->DESCRIPTOR:Ljava/lang/String;
@@ -106779,12 +100159,10 @@
 Lcom/android/internal/view/IInputMethodClient$Stub;->TRANSACTION_setActive:I
 Lcom/android/internal/view/IInputMethodClient$Stub;->TRANSACTION_setUserActionNotificationSequenceNumber:I
 Lcom/android/internal/view/IInputMethodClient$Stub;->TRANSACTION_setUsingInputMethod:I
-Lcom/android/internal/view/IInputMethodClient;
 Lcom/android/internal/view/IInputMethodClient;->onUnbindMethod(II)V
 Lcom/android/internal/view/IInputMethodClient;->reportFullscreenMode(Z)V
 Lcom/android/internal/view/IInputMethodClient;->setActive(ZZ)V
 Lcom/android/internal/view/IInputMethodClient;->setUserActionNotificationSequenceNumber(I)V
-Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;
 Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->addClient(Lcom/android/internal/view/IInputMethodClient;Lcom/android/internal/view/IInputContext;II)V
 Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->clearLastInputMethodWindowForTransition(Landroid/os/IBinder;)V
 Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->createInputContentUriToken(Landroid/os/IBinder;Landroid/net/Uri;Ljava/lang/String;)Lcom/android/internal/inputmethod/IInputContentUriToken;
@@ -106820,7 +100198,6 @@
 Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->switchToNextInputMethod(Landroid/os/IBinder;Z)Z
 Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->switchToPreviousInputMethod(Landroid/os/IBinder;)Z
 Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;->updateStatusIcon(Landroid/os/IBinder;Ljava/lang/String;I)V
-Lcom/android/internal/view/IInputMethodManager$Stub;
 Lcom/android/internal/view/IInputMethodManager$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_addClient:I
 Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_clearLastInputMethodWindowForTransition:I
@@ -106856,7 +100233,6 @@
 Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_switchToNextInputMethod:I
 Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_switchToPreviousInputMethod:I
 Lcom/android/internal/view/IInputMethodManager$Stub;->TRANSACTION_updateStatusIcon:I
-Lcom/android/internal/view/IInputMethodManager;
 Lcom/android/internal/view/IInputMethodManager;->clearLastInputMethodWindowForTransition(Landroid/os/IBinder;)V
 Lcom/android/internal/view/IInputMethodManager;->createInputContentUriToken(Landroid/os/IBinder;Landroid/net/Uri;Ljava/lang/String;)Lcom/android/internal/inputmethod/IInputContentUriToken;
 Lcom/android/internal/view/IInputMethodManager;->finishInput(Lcom/android/internal/view/IInputMethodClient;)V
@@ -106889,7 +100265,6 @@
 Lcom/android/internal/view/IInputMethodManager;->switchToNextInputMethod(Landroid/os/IBinder;Z)Z
 Lcom/android/internal/view/IInputMethodManager;->switchToPreviousInputMethod(Landroid/os/IBinder;)Z
 Lcom/android/internal/view/IInputMethodManager;->updateStatusIcon(Landroid/os/IBinder;Ljava/lang/String;I)V
-Lcom/android/internal/view/IInputMethodSession$Stub$Proxy;
 Lcom/android/internal/view/IInputMethodSession$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/view/IInputMethodSession$Stub$Proxy;->appPrivateCommand(Ljava/lang/String;Landroid/os/Bundle;)V
 Lcom/android/internal/view/IInputMethodSession$Stub$Proxy;->displayCompletions([Landroid/view/inputmethod/CompletionInfo;)V
@@ -106903,7 +100278,6 @@
 Lcom/android/internal/view/IInputMethodSession$Stub$Proxy;->updateExtractedText(ILandroid/view/inputmethod/ExtractedText;)V
 Lcom/android/internal/view/IInputMethodSession$Stub$Proxy;->updateSelection(IIIIII)V
 Lcom/android/internal/view/IInputMethodSession$Stub$Proxy;->viewClicked(Z)V
-Lcom/android/internal/view/IInputMethodSession$Stub;
 Lcom/android/internal/view/IInputMethodSession$Stub;-><init>()V
 Lcom/android/internal/view/IInputMethodSession$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/view/IInputMethodSession$Stub;->TRANSACTION_appPrivateCommand:I
@@ -106916,7 +100290,6 @@
 Lcom/android/internal/view/IInputMethodSession$Stub;->TRANSACTION_updateExtractedText:I
 Lcom/android/internal/view/IInputMethodSession$Stub;->TRANSACTION_updateSelection:I
 Lcom/android/internal/view/IInputMethodSession$Stub;->TRANSACTION_viewClicked:I
-Lcom/android/internal/view/IInputMethodSession;
 Lcom/android/internal/view/IInputMethodSession;->appPrivateCommand(Ljava/lang/String;Landroid/os/Bundle;)V
 Lcom/android/internal/view/IInputMethodSession;->displayCompletions([Landroid/view/inputmethod/CompletionInfo;)V
 Lcom/android/internal/view/IInputMethodSession;->finishInput()V
@@ -106927,19 +100300,15 @@
 Lcom/android/internal/view/IInputMethodSession;->updateExtractedText(ILandroid/view/inputmethod/ExtractedText;)V
 Lcom/android/internal/view/IInputMethodSession;->updateSelection(IIIIII)V
 Lcom/android/internal/view/IInputMethodSession;->viewClicked(Z)V
-Lcom/android/internal/view/IInputSessionCallback$Stub$Proxy;
 Lcom/android/internal/view/IInputSessionCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/view/IInputSessionCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/view/IInputSessionCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/view/IInputSessionCallback$Stub$Proxy;->sessionCreated(Lcom/android/internal/view/IInputMethodSession;)V
-Lcom/android/internal/view/IInputSessionCallback$Stub;
 Lcom/android/internal/view/IInputSessionCallback$Stub;-><init>()V
 Lcom/android/internal/view/IInputSessionCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputSessionCallback;
 Lcom/android/internal/view/IInputSessionCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/view/IInputSessionCallback$Stub;->TRANSACTION_sessionCreated:I
-Lcom/android/internal/view/IInputSessionCallback;
 Lcom/android/internal/view/IInputSessionCallback;->sessionCreated(Lcom/android/internal/view/IInputMethodSession;)V
-Lcom/android/internal/view/InputBindResult$ResultCode;
 Lcom/android/internal/view/InputBindResult$ResultCode;->ERROR_IME_NOT_CONNECTED:I
 Lcom/android/internal/view/InputBindResult$ResultCode;->ERROR_INVALID_PACKAGE_NAME:I
 Lcom/android/internal/view/InputBindResult$ResultCode;->ERROR_INVALID_USER:I
@@ -106953,7 +100322,6 @@
 Lcom/android/internal/view/InputBindResult$ResultCode;->SUCCESS_WAITING_IME_BINDING:I
 Lcom/android/internal/view/InputBindResult$ResultCode;->SUCCESS_WAITING_IME_SESSION:I
 Lcom/android/internal/view/InputBindResult$ResultCode;->SUCCESS_WITH_IME_SESSION:I
-Lcom/android/internal/view/InputBindResult;
 Lcom/android/internal/view/InputBindResult;-><init>(ILcom/android/internal/view/IInputMethodSession;Landroid/view/InputChannel;Ljava/lang/String;II)V
 Lcom/android/internal/view/InputBindResult;-><init>(Landroid/os/Parcel;)V
 Lcom/android/internal/view/InputBindResult;->channel:Landroid/view/InputChannel;
@@ -106971,9 +100339,6 @@
 Lcom/android/internal/view/InputBindResult;->result:I
 Lcom/android/internal/view/InputBindResult;->sequence:I
 Lcom/android/internal/view/InputBindResult;->userActionNotificationSequenceNumber:I
-Lcom/android/internal/view/InputMethodClient$StartInputReason;
-Lcom/android/internal/view/InputMethodClient$UnbindReason;
-Lcom/android/internal/view/InputMethodClient;
 Lcom/android/internal/view/InputMethodClient;-><init>()V
 Lcom/android/internal/view/InputMethodClient;->getStartInputReason(I)Ljava/lang/String;
 Lcom/android/internal/view/InputMethodClient;->getUnbindReason(I)Ljava/lang/String;
@@ -106995,14 +100360,10 @@
 Lcom/android/internal/view/InputMethodClient;->UNBIND_REASON_SWITCH_IME_FAILED:I
 Lcom/android/internal/view/InputMethodClient;->UNBIND_REASON_SWITCH_USER:I
 Lcom/android/internal/view/InputMethodClient;->UNBIND_REASON_UNSPECIFIED:I
-Lcom/android/internal/view/menu/ActionMenuItemView$ActionMenuItemForwardingListener;
-Lcom/android/internal/view/menu/ActionMenuItemView$ActionMenuItemForwardingListener;-><init>()V
 Lcom/android/internal/view/menu/ActionMenuItemView$ActionMenuItemForwardingListener;->getPopup()Lcom/android/internal/view/menu/ShowableListMenu;
 Lcom/android/internal/view/menu/ActionMenuItemView$ActionMenuItemForwardingListener;->onForwardingStarted()Z
-Lcom/android/internal/view/menu/ActionMenuItemView$PopupCallback;
 Lcom/android/internal/view/menu/ActionMenuItemView$PopupCallback;-><init>()V
 Lcom/android/internal/view/menu/ActionMenuItemView$PopupCallback;->getPopup()Lcom/android/internal/view/menu/ShowableListMenu;
-Lcom/android/internal/view/menu/ActionMenuItemView;
 Lcom/android/internal/view/menu/ActionMenuItemView;-><init>(Landroid/content/Context;)V
 Lcom/android/internal/view/menu/ActionMenuItemView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Lcom/android/internal/view/menu/ActionMenuItemView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
@@ -107038,7 +100399,6 @@
 Lcom/android/internal/view/menu/ActionMenuItemView;->showsIcon()Z
 Lcom/android/internal/view/menu/ActionMenuItemView;->TAG:Ljava/lang/String;
 Lcom/android/internal/view/menu/ActionMenuItemView;->updateTextButtonVisibility()V
-Lcom/android/internal/view/menu/BaseMenuPresenter;
 Lcom/android/internal/view/menu/BaseMenuPresenter;-><init>(Landroid/content/Context;II)V
 Lcom/android/internal/view/menu/BaseMenuPresenter;->addItemView(Landroid/view/View;I)V
 Lcom/android/internal/view/menu/BaseMenuPresenter;->bindItemView(Lcom/android/internal/view/menu/MenuItemImpl;Lcom/android/internal/view/menu/MenuView$ItemView;)V
@@ -107068,7 +100428,6 @@
 Lcom/android/internal/view/menu/BaseMenuPresenter;->setId(I)V
 Lcom/android/internal/view/menu/BaseMenuPresenter;->shouldIncludeItem(ILcom/android/internal/view/menu/MenuItemImpl;)Z
 Lcom/android/internal/view/menu/BaseMenuPresenter;->updateMenuView(Z)V
-Lcom/android/internal/view/menu/MenuAdapter;
 Lcom/android/internal/view/menu/MenuAdapter;-><init>(Lcom/android/internal/view/menu/MenuBuilder;Landroid/view/LayoutInflater;ZI)V
 Lcom/android/internal/view/menu/MenuAdapter;->findExpandedIndex()V
 Lcom/android/internal/view/menu/MenuAdapter;->getAdapterMenu()Lcom/android/internal/view/menu/MenuBuilder;
@@ -107080,10 +100439,7 @@
 Lcom/android/internal/view/menu/MenuAdapter;->mItemLayoutRes:I
 Lcom/android/internal/view/menu/MenuAdapter;->mOverflowOnly:Z
 Lcom/android/internal/view/menu/MenuAdapter;->setForceShowIcon(Z)V
-Lcom/android/internal/view/menu/MenuBuilder$Callback;
-Lcom/android/internal/view/menu/MenuBuilder$ItemInvoker;
 Lcom/android/internal/view/menu/MenuBuilder$ItemInvoker;->invokeItem(Lcom/android/internal/view/menu/MenuItemImpl;)Z
-Lcom/android/internal/view/menu/MenuBuilder;
 Lcom/android/internal/view/menu/MenuBuilder;->ACTION_VIEW_STATES_KEY:Ljava/lang/String;
 Lcom/android/internal/view/menu/MenuBuilder;->addInternal(IIILjava/lang/CharSequence;)Landroid/view/MenuItem;
 Lcom/android/internal/view/menu/MenuBuilder;->changeMenuMode()V
@@ -107162,10 +100518,8 @@
 Lcom/android/internal/view/menu/MenuBuilder;->setShortcutsVisible(Z)V
 Lcom/android/internal/view/menu/MenuBuilder;->setShortcutsVisibleInner(Z)V
 Lcom/android/internal/view/menu/MenuBuilder;->TAG:Ljava/lang/String;
-Lcom/android/internal/view/menu/MenuHelper;
 Lcom/android/internal/view/menu/MenuHelper;->dismiss()V
 Lcom/android/internal/view/menu/MenuHelper;->setPresenterCallback(Lcom/android/internal/view/menu/MenuPresenter$Callback;)V
-Lcom/android/internal/view/menu/MenuItemImpl;
 Lcom/android/internal/view/menu/MenuItemImpl;-><init>(Lcom/android/internal/view/menu/MenuBuilder;IIIILjava/lang/CharSequence;I)V
 Lcom/android/internal/view/menu/MenuItemImpl;->actionFormatChanged()V
 Lcom/android/internal/view/menu/MenuItemImpl;->appendModifier(Ljava/lang/StringBuilder;IILjava/lang/String;)V
@@ -107225,7 +100579,6 @@
 Lcom/android/internal/view/menu/MenuItemImpl;->showsTextAsAction()Z
 Lcom/android/internal/view/menu/MenuItemImpl;->SHOW_AS_ACTION_MASK:I
 Lcom/android/internal/view/menu/MenuItemImpl;->TAG:Ljava/lang/String;
-Lcom/android/internal/view/menu/MenuPopup;
 Lcom/android/internal/view/menu/MenuPopup;-><init>()V
 Lcom/android/internal/view/menu/MenuPopup;->addMenu(Lcom/android/internal/view/menu/MenuBuilder;)V
 Lcom/android/internal/view/menu/MenuPopup;->collapseItemActionView(Lcom/android/internal/view/menu/MenuBuilder;Lcom/android/internal/view/menu/MenuItemImpl;)Z
@@ -107246,7 +100599,6 @@
 Lcom/android/internal/view/menu/MenuPopup;->setVerticalOffset(I)V
 Lcom/android/internal/view/menu/MenuPopup;->shouldPreserveIconSpacing(Lcom/android/internal/view/menu/MenuBuilder;)Z
 Lcom/android/internal/view/menu/MenuPopup;->toMenuAdapter(Landroid/widget/ListAdapter;)Lcom/android/internal/view/menu/MenuAdapter;
-Lcom/android/internal/view/menu/MenuPopupHelper;
 Lcom/android/internal/view/menu/MenuPopupHelper;-><init>(Landroid/content/Context;Lcom/android/internal/view/menu/MenuBuilder;Landroid/view/View;ZI)V
 Lcom/android/internal/view/menu/MenuPopupHelper;-><init>(Landroid/content/Context;Lcom/android/internal/view/menu/MenuBuilder;Landroid/view/View;ZII)V
 Lcom/android/internal/view/menu/MenuPopupHelper;->createPopup()Lcom/android/internal/view/menu/MenuPopup;
@@ -107270,9 +100622,7 @@
 Lcom/android/internal/view/menu/MenuPopupHelper;->showPopup(IIZZ)V
 Lcom/android/internal/view/menu/MenuPopupHelper;->TOUCH_EPICENTER_SIZE_DP:I
 Lcom/android/internal/view/menu/MenuPopupHelper;->tryShow(II)Z
-Lcom/android/internal/view/menu/MenuPresenter$Callback;
 Lcom/android/internal/view/menu/MenuPresenter$Callback;->onCloseMenu(Lcom/android/internal/view/menu/MenuBuilder;Z)V
-Lcom/android/internal/view/menu/MenuPresenter;
 Lcom/android/internal/view/menu/MenuPresenter;->collapseItemActionView(Lcom/android/internal/view/menu/MenuBuilder;Lcom/android/internal/view/menu/MenuItemImpl;)Z
 Lcom/android/internal/view/menu/MenuPresenter;->expandItemActionView(Lcom/android/internal/view/menu/MenuBuilder;Lcom/android/internal/view/menu/MenuItemImpl;)Z
 Lcom/android/internal/view/menu/MenuPresenter;->flagActionItems()Z
@@ -107285,7 +100635,6 @@
 Lcom/android/internal/view/menu/MenuPresenter;->onSubMenuSelected(Lcom/android/internal/view/menu/SubMenuBuilder;)Z
 Lcom/android/internal/view/menu/MenuPresenter;->setCallback(Lcom/android/internal/view/menu/MenuPresenter$Callback;)V
 Lcom/android/internal/view/menu/MenuPresenter;->updateMenuView(Z)V
-Lcom/android/internal/view/menu/MenuView$ItemView;
 Lcom/android/internal/view/menu/MenuView$ItemView;->initialize(Lcom/android/internal/view/menu/MenuItemImpl;I)V
 Lcom/android/internal/view/menu/MenuView$ItemView;->prefersCondensedTitle()Z
 Lcom/android/internal/view/menu/MenuView$ItemView;->setCheckable(Z)V
@@ -107295,14 +100644,11 @@
 Lcom/android/internal/view/menu/MenuView$ItemView;->setShortcut(ZC)V
 Lcom/android/internal/view/menu/MenuView$ItemView;->setTitle(Ljava/lang/CharSequence;)V
 Lcom/android/internal/view/menu/MenuView$ItemView;->showsIcon()Z
-Lcom/android/internal/view/menu/MenuView;
 Lcom/android/internal/view/menu/MenuView;->initialize(Lcom/android/internal/view/menu/MenuBuilder;)V
-Lcom/android/internal/view/menu/ShowableListMenu;
 Lcom/android/internal/view/menu/ShowableListMenu;->dismiss()V
 Lcom/android/internal/view/menu/ShowableListMenu;->getListView()Landroid/widget/ListView;
 Lcom/android/internal/view/menu/ShowableListMenu;->isShowing()Z
 Lcom/android/internal/view/menu/ShowableListMenu;->show()V
-Lcom/android/internal/view/menu/SubMenuBuilder;
 Lcom/android/internal/view/menu/SubMenuBuilder;-><init>(Landroid/content/Context;Lcom/android/internal/view/menu/MenuBuilder;Lcom/android/internal/view/menu/MenuItemImpl;)V
 Lcom/android/internal/view/menu/SubMenuBuilder;->collapseItemActionView(Lcom/android/internal/view/menu/MenuItemImpl;)Z
 Lcom/android/internal/view/menu/SubMenuBuilder;->dispatchMenuItemSelected(Lcom/android/internal/view/menu/MenuBuilder;Landroid/view/MenuItem;)Z
@@ -107315,7 +100661,6 @@
 Lcom/android/internal/view/menu/SubMenuBuilder;->mItem:Lcom/android/internal/view/menu/MenuItemImpl;
 Lcom/android/internal/view/menu/SubMenuBuilder;->mParentMenu:Lcom/android/internal/view/menu/MenuBuilder;
 Lcom/android/internal/view/menu/SubMenuBuilder;->setShortcutsVisible(Z)V
-Lcom/android/internal/view/OneShotPreDrawListener;
 Lcom/android/internal/view/OneShotPreDrawListener;-><init>(Landroid/view/View;ZLjava/lang/Runnable;)V
 Lcom/android/internal/view/OneShotPreDrawListener;->add(Landroid/view/View;Ljava/lang/Runnable;)Lcom/android/internal/view/OneShotPreDrawListener;
 Lcom/android/internal/view/OneShotPreDrawListener;->add(Landroid/view/View;ZLjava/lang/Runnable;)Lcom/android/internal/view/OneShotPreDrawListener;
@@ -107324,7 +100669,6 @@
 Lcom/android/internal/view/OneShotPreDrawListener;->mView:Landroid/view/View;
 Lcom/android/internal/view/OneShotPreDrawListener;->mViewTreeObserver:Landroid/view/ViewTreeObserver;
 Lcom/android/internal/view/OneShotPreDrawListener;->removeListener()V
-Lcom/android/internal/view/TooltipPopup;
 Lcom/android/internal/view/TooltipPopup;-><init>(Landroid/content/Context;)V
 Lcom/android/internal/view/TooltipPopup;->computePosition(Landroid/view/View;IIZLandroid/view/WindowManager$LayoutParams;)V
 Lcom/android/internal/view/TooltipPopup;->getContentView()Landroid/view/View;
@@ -107339,13 +100683,11 @@
 Lcom/android/internal/view/TooltipPopup;->mTmpDisplayFrame:Landroid/graphics/Rect;
 Lcom/android/internal/view/TooltipPopup;->show(Landroid/view/View;IIZLjava/lang/CharSequence;)V
 Lcom/android/internal/view/TooltipPopup;->TAG:Ljava/lang/String;
-Lcom/android/internal/widget/AutoScrollHelper$AbsListViewAutoScroller;
 Lcom/android/internal/widget/AutoScrollHelper$AbsListViewAutoScroller;-><init>(Landroid/widget/AbsListView;)V
 Lcom/android/internal/widget/AutoScrollHelper$AbsListViewAutoScroller;->canTargetScrollHorizontally(I)Z
 Lcom/android/internal/widget/AutoScrollHelper$AbsListViewAutoScroller;->canTargetScrollVertically(I)Z
 Lcom/android/internal/widget/AutoScrollHelper$AbsListViewAutoScroller;->mTarget:Landroid/widget/AbsListView;
 Lcom/android/internal/widget/AutoScrollHelper$AbsListViewAutoScroller;->scrollTargetBy(II)V
-Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;
 Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;-><init>()V
 Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->computeScrollDelta()V
 Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->getDeltaX()I
@@ -107371,9 +100713,6 @@
 Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->setRampUpDuration(I)V
 Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->setTargetVelocity(FF)V
 Lcom/android/internal/widget/AutoScrollHelper$ClampedScroller;->start()V
-Lcom/android/internal/widget/AutoScrollHelper$ScrollAnimationRunnable;
-Lcom/android/internal/widget/AutoScrollHelper$ScrollAnimationRunnable;-><init>()V
-Lcom/android/internal/widget/AutoScrollHelper;
 Lcom/android/internal/widget/AutoScrollHelper;-><init>(Landroid/view/View;)V
 Lcom/android/internal/widget/AutoScrollHelper;->cancelTargetTouch()V
 Lcom/android/internal/widget/AutoScrollHelper;->canTargetScrollHorizontally(I)Z
@@ -107434,7 +100773,6 @@
 Lcom/android/internal/widget/AutoScrollHelper;->shouldAnimate()Z
 Lcom/android/internal/widget/AutoScrollHelper;->startAnimating()V
 Lcom/android/internal/widget/AutoScrollHelper;->VERTICAL:I
-Lcom/android/internal/widget/CachingIconView;
 Lcom/android/internal/widget/CachingIconView;->mDesiredVisibility:I
 Lcom/android/internal/widget/CachingIconView;->mForceHidden:Z
 Lcom/android/internal/widget/CachingIconView;->mInternalSetDrawable:Z
@@ -107449,7 +100787,6 @@
 Lcom/android/internal/widget/CachingIconView;->testAndSetCache(I)Z
 Lcom/android/internal/widget/CachingIconView;->testAndSetCache(Landroid/graphics/drawable/Icon;)Z
 Lcom/android/internal/widget/CachingIconView;->updateVisibility()V
-Lcom/android/internal/widget/DecorToolbar;
 Lcom/android/internal/widget/DecorToolbar;->animateToVisibility(I)V
 Lcom/android/internal/widget/DecorToolbar;->canShowOverflowMenu()Z
 Lcom/android/internal/widget/DecorToolbar;->canSplit()Z
@@ -107512,9 +100849,6 @@
 Lcom/android/internal/widget/DecorToolbar;->setWindowCallback(Landroid/view/Window$Callback;)V
 Lcom/android/internal/widget/DecorToolbar;->setWindowTitle(Ljava/lang/CharSequence;)V
 Lcom/android/internal/widget/DecorToolbar;->showOverflowMenu()Z
-Lcom/android/internal/widget/ExploreByTouchHelper$ExploreByTouchNodeProvider;
-Lcom/android/internal/widget/ExploreByTouchHelper$ExploreByTouchNodeProvider;-><init>()V
-Lcom/android/internal/widget/ExploreByTouchHelper;
 Lcom/android/internal/widget/ExploreByTouchHelper;-><init>(Landroid/view/View;)V
 Lcom/android/internal/widget/ExploreByTouchHelper;->clearAccessibilityFocus(I)Z
 Lcom/android/internal/widget/ExploreByTouchHelper;->createEvent(II)Landroid/view/accessibility/AccessibilityEvent;
@@ -107560,19 +100894,15 @@
 Lcom/android/internal/widget/ExploreByTouchHelper;->requestAccessibilityFocus(I)Z
 Lcom/android/internal/widget/ExploreByTouchHelper;->sendEventForVirtualView(II)Z
 Lcom/android/internal/widget/ExploreByTouchHelper;->updateHoveredVirtualView(I)V
-Lcom/android/internal/widget/ICheckCredentialProgressCallback$Stub$Proxy;
 Lcom/android/internal/widget/ICheckCredentialProgressCallback$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/widget/ICheckCredentialProgressCallback$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
 Lcom/android/internal/widget/ICheckCredentialProgressCallback$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/widget/ICheckCredentialProgressCallback$Stub$Proxy;->onCredentialVerified()V
-Lcom/android/internal/widget/ICheckCredentialProgressCallback$Stub;
 Lcom/android/internal/widget/ICheckCredentialProgressCallback$Stub;-><init>()V
 Lcom/android/internal/widget/ICheckCredentialProgressCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ICheckCredentialProgressCallback;
 Lcom/android/internal/widget/ICheckCredentialProgressCallback$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/widget/ICheckCredentialProgressCallback$Stub;->TRANSACTION_onCredentialVerified:I
-Lcom/android/internal/widget/ICheckCredentialProgressCallback;
 Lcom/android/internal/widget/ICheckCredentialProgressCallback;->onCredentialVerified()V
-Lcom/android/internal/widget/ILockSettings$Stub$Proxy;
 Lcom/android/internal/widget/ILockSettings$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->checkCredential(Ljava/lang/String;IILcom/android/internal/widget/ICheckCredentialProgressCallback;)Lcom/android/internal/widget/VerifyCredentialResponse;
 Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->checkVoldPassword(I)Z
@@ -107614,7 +100944,6 @@
 Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->userPresent(I)V
 Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->verifyCredential(Ljava/lang/String;IJI)Lcom/android/internal/widget/VerifyCredentialResponse;
 Lcom/android/internal/widget/ILockSettings$Stub$Proxy;->verifyTiedProfileChallenge(Ljava/lang/String;IJI)Lcom/android/internal/widget/VerifyCredentialResponse;
-Lcom/android/internal/widget/ILockSettings$Stub;
 Lcom/android/internal/widget/ILockSettings$Stub;-><init>()V
 Lcom/android/internal/widget/ILockSettings$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_checkCredential:I
@@ -107655,7 +100984,6 @@
 Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_userPresent:I
 Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_verifyCredential:I
 Lcom/android/internal/widget/ILockSettings$Stub;->TRANSACTION_verifyTiedProfileChallenge:I
-Lcom/android/internal/widget/ILockSettings;
 Lcom/android/internal/widget/ILockSettings;->checkCredential(Ljava/lang/String;IILcom/android/internal/widget/ICheckCredentialProgressCallback;)Lcom/android/internal/widget/VerifyCredentialResponse;
 Lcom/android/internal/widget/ILockSettings;->checkVoldPassword(I)Z
 Lcom/android/internal/widget/ILockSettings;->closeSession(Ljava/lang/String;)V
@@ -107686,7 +101014,6 @@
 Lcom/android/internal/widget/ILockSettings;->userPresent(I)V
 Lcom/android/internal/widget/ILockSettings;->verifyCredential(Ljava/lang/String;IJI)Lcom/android/internal/widget/VerifyCredentialResponse;
 Lcom/android/internal/widget/ILockSettings;->verifyTiedProfileChallenge(Ljava/lang/String;IJI)Lcom/android/internal/widget/VerifyCredentialResponse;
-Lcom/android/internal/widget/IRemoteViewsFactory$Stub$Proxy;
 Lcom/android/internal/widget/IRemoteViewsFactory$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/widget/IRemoteViewsFactory$Stub$Proxy;->getCount()I
 Lcom/android/internal/widget/IRemoteViewsFactory$Stub$Proxy;->getInterfaceDescriptor()Ljava/lang/String;
@@ -107700,7 +101027,6 @@
 Lcom/android/internal/widget/IRemoteViewsFactory$Stub$Proxy;->onDataSetChanged()V
 Lcom/android/internal/widget/IRemoteViewsFactory$Stub$Proxy;->onDataSetChangedAsync()V
 Lcom/android/internal/widget/IRemoteViewsFactory$Stub$Proxy;->onDestroy(Landroid/content/Intent;)V
-Lcom/android/internal/widget/IRemoteViewsFactory$Stub;
 Lcom/android/internal/widget/IRemoteViewsFactory$Stub;-><init>()V
 Lcom/android/internal/widget/IRemoteViewsFactory$Stub;->DESCRIPTOR:Ljava/lang/String;
 Lcom/android/internal/widget/IRemoteViewsFactory$Stub;->TRANSACTION_getCount:I
@@ -107713,17 +101039,10 @@
 Lcom/android/internal/widget/IRemoteViewsFactory$Stub;->TRANSACTION_onDataSetChanged:I
 Lcom/android/internal/widget/IRemoteViewsFactory$Stub;->TRANSACTION_onDataSetChangedAsync:I
 Lcom/android/internal/widget/IRemoteViewsFactory$Stub;->TRANSACTION_onDestroy:I
-Lcom/android/internal/widget/IRemoteViewsFactory;
 Lcom/android/internal/widget/IRemoteViewsFactory;->onDataSetChangedAsync()V
 Lcom/android/internal/widget/IRemoteViewsFactory;->onDestroy(Landroid/content/Intent;)V
-Lcom/android/internal/widget/ScrollingTabContainerView$TabAdapter;
-Lcom/android/internal/widget/ScrollingTabContainerView$TabAdapter;-><init>(Landroid/content/Context;)V
 Lcom/android/internal/widget/ScrollingTabContainerView$TabAdapter;->mDropDownContext:Landroid/content/Context;
 Lcom/android/internal/widget/ScrollingTabContainerView$TabAdapter;->setDropDownViewContext(Landroid/content/Context;)V
-Lcom/android/internal/widget/ScrollingTabContainerView$TabClickListener;
-Lcom/android/internal/widget/ScrollingTabContainerView$TabClickListener;-><init>()V
-Lcom/android/internal/widget/ScrollingTabContainerView$TabView;
-Lcom/android/internal/widget/ScrollingTabContainerView$TabView;-><init>(Landroid/content/Context;Landroid/app/ActionBar$Tab;Z)V
 Lcom/android/internal/widget/ScrollingTabContainerView$TabView;->bindTab(Landroid/app/ActionBar$Tab;)V
 Lcom/android/internal/widget/ScrollingTabContainerView$TabView;->getTab()Landroid/app/ActionBar$Tab;
 Lcom/android/internal/widget/ScrollingTabContainerView$TabView;->mCustomView:Landroid/view/View;
@@ -107731,12 +101050,9 @@
 Lcom/android/internal/widget/ScrollingTabContainerView$TabView;->mTab:Landroid/app/ActionBar$Tab;
 Lcom/android/internal/widget/ScrollingTabContainerView$TabView;->mTextView:Landroid/widget/TextView;
 Lcom/android/internal/widget/ScrollingTabContainerView$TabView;->update()V
-Lcom/android/internal/widget/ScrollingTabContainerView$VisibilityAnimListener;
-Lcom/android/internal/widget/ScrollingTabContainerView$VisibilityAnimListener;-><init>()V
 Lcom/android/internal/widget/ScrollingTabContainerView$VisibilityAnimListener;->mCanceled:Z
 Lcom/android/internal/widget/ScrollingTabContainerView$VisibilityAnimListener;->mFinalVisibility:I
 Lcom/android/internal/widget/ScrollingTabContainerView$VisibilityAnimListener;->withFinalVisibility(I)Lcom/android/internal/widget/ScrollingTabContainerView$VisibilityAnimListener;
-Lcom/android/internal/widget/ScrollingTabContainerView;
 Lcom/android/internal/widget/ScrollingTabContainerView;->createSpinner()Landroid/widget/Spinner;
 Lcom/android/internal/widget/ScrollingTabContainerView;->createTabLayout()Landroid/widget/LinearLayout;
 Lcom/android/internal/widget/ScrollingTabContainerView;->createTabView(Landroid/content/Context;Landroid/app/ActionBar$Tab;Z)Lcom/android/internal/widget/ScrollingTabContainerView$TabView;
@@ -107758,7 +101074,6 @@
 Lcom/android/internal/widget/ScrollingTabContainerView;->sAlphaInterpolator:Landroid/animation/TimeInterpolator;
 Lcom/android/internal/widget/ScrollingTabContainerView;->setContentHeight(I)V
 Lcom/android/internal/widget/ScrollingTabContainerView;->TAG:Ljava/lang/String;
-Lcom/android/internal/widget/SubtitleView;
 Lcom/android/internal/widget/SubtitleView;-><init>(Landroid/content/Context;)V
 Lcom/android/internal/widget/SubtitleView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
 Lcom/android/internal/widget/SubtitleView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
@@ -107796,7 +101111,6 @@
 Lcom/android/internal/widget/SubtitleView;->setText(Ljava/lang/CharSequence;)V
 Lcom/android/internal/widget/SubtitleView;->setTextSize(F)V
 Lcom/android/internal/widget/SubtitleView;->setTypeface(Landroid/graphics/Typeface;)V
-Lcom/android/internal/widget/ToolbarWidgetWrapper;
 Lcom/android/internal/widget/ToolbarWidgetWrapper;-><init>(Landroid/widget/Toolbar;Z)V
 Lcom/android/internal/widget/ToolbarWidgetWrapper;-><init>(Landroid/widget/Toolbar;ZI)V
 Lcom/android/internal/widget/ToolbarWidgetWrapper;->AFFECTS_LOGO_MASK:I
@@ -107888,7 +101202,6 @@
 Lcom/android/internal/widget/ToolbarWidgetWrapper;->updateHomeAccessibility()V
 Lcom/android/internal/widget/ToolbarWidgetWrapper;->updateNavigationIcon()V
 Lcom/android/internal/widget/ToolbarWidgetWrapper;->updateToolbarLogo()V
-Lcom/android/internal/widget/VerifyCredentialResponse;
 Lcom/android/internal/widget/VerifyCredentialResponse;-><init>()V
 Lcom/android/internal/widget/VerifyCredentialResponse;-><init>(I)V
 Lcom/android/internal/widget/VerifyCredentialResponse;-><init>(II[B)V
@@ -107910,7 +101223,6 @@
 Lcom/android/internal/widget/VerifyCredentialResponse;->setTimeout(I)V
 Lcom/android/internal/widget/VerifyCredentialResponse;->stripPayload()Lcom/android/internal/widget/VerifyCredentialResponse;
 Lcom/android/internal/widget/VerifyCredentialResponse;->TAG:Ljava/lang/String;
-Lcom/android/okhttp/Address;
 Lcom/android/okhttp/Address;-><init>(Ljava/lang/String;ILcom/android/okhttp/Dns;Ljavax/net/SocketFactory;Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/HostnameVerifier;Lcom/android/okhttp/CertificatePinner;Lcom/android/okhttp/Authenticator;Ljava/net/Proxy;Ljava/util/List;Ljava/util/List;Ljava/net/ProxySelector;)V
 Lcom/android/okhttp/Address;->authenticator:Lcom/android/okhttp/Authenticator;
 Lcom/android/okhttp/Address;->certificatePinner:Lcom/android/okhttp/CertificatePinner;
@@ -107936,7 +101248,6 @@
 Lcom/android/okhttp/Address;->sslSocketFactory:Ljavax/net/ssl/SSLSocketFactory;
 Lcom/android/okhttp/Address;->url()Lcom/android/okhttp/HttpUrl;
 Lcom/android/okhttp/Address;->url:Lcom/android/okhttp/HttpUrl;
-Lcom/android/okhttp/AndroidShimResponseCache;
 Lcom/android/okhttp/AndroidShimResponseCache;-><init>(Lcom/android/okhttp/Cache;)V
 Lcom/android/okhttp/AndroidShimResponseCache;->close()V
 Lcom/android/okhttp/AndroidShimResponseCache;->create(Ljava/io/File;J)Lcom/android/okhttp/AndroidShimResponseCache;
@@ -107950,18 +101261,14 @@
 Lcom/android/okhttp/AndroidShimResponseCache;->isEquivalent(Ljava/io/File;J)Z
 Lcom/android/okhttp/AndroidShimResponseCache;->maxSize()J
 Lcom/android/okhttp/AndroidShimResponseCache;->size()J
-Lcom/android/okhttp/Authenticator;
 Lcom/android/okhttp/Authenticator;->authenticate(Ljava/net/Proxy;Lcom/android/okhttp/Response;)Lcom/android/okhttp/Request;
 Lcom/android/okhttp/Authenticator;->authenticateProxy(Ljava/net/Proxy;Lcom/android/okhttp/Response;)Lcom/android/okhttp/Request;
-Lcom/android/okhttp/Cache$CacheRequestImpl;
-Lcom/android/okhttp/Cache$CacheRequestImpl;-><init>(Lcom/android/okhttp/internal/DiskLruCache$Editor;)V
 Lcom/android/okhttp/Cache$CacheRequestImpl;->abort()V
 Lcom/android/okhttp/Cache$CacheRequestImpl;->body()Lcom/android/okhttp/okio/Sink;
 Lcom/android/okhttp/Cache$CacheRequestImpl;->body:Lcom/android/okhttp/okio/Sink;
 Lcom/android/okhttp/Cache$CacheRequestImpl;->cacheOut:Lcom/android/okhttp/okio/Sink;
 Lcom/android/okhttp/Cache$CacheRequestImpl;->done:Z
 Lcom/android/okhttp/Cache$CacheRequestImpl;->editor:Lcom/android/okhttp/internal/DiskLruCache$Editor;
-Lcom/android/okhttp/Cache$CacheResponseBody;
 Lcom/android/okhttp/Cache$CacheResponseBody;-><init>(Lcom/android/okhttp/internal/DiskLruCache$Snapshot;Ljava/lang/String;Ljava/lang/String;)V
 Lcom/android/okhttp/Cache$CacheResponseBody;->bodySource:Lcom/android/okhttp/okio/BufferedSource;
 Lcom/android/okhttp/Cache$CacheResponseBody;->contentLength()J
@@ -107970,7 +101277,6 @@
 Lcom/android/okhttp/Cache$CacheResponseBody;->contentType:Ljava/lang/String;
 Lcom/android/okhttp/Cache$CacheResponseBody;->snapshot:Lcom/android/okhttp/internal/DiskLruCache$Snapshot;
 Lcom/android/okhttp/Cache$CacheResponseBody;->source()Lcom/android/okhttp/okio/BufferedSource;
-Lcom/android/okhttp/Cache$Entry;
 Lcom/android/okhttp/Cache$Entry;-><init>(Lcom/android/okhttp/okio/Source;)V
 Lcom/android/okhttp/Cache$Entry;-><init>(Lcom/android/okhttp/Response;)V
 Lcom/android/okhttp/Cache$Entry;->code:I
@@ -107987,7 +101293,6 @@
 Lcom/android/okhttp/Cache$Entry;->varyHeaders:Lcom/android/okhttp/Headers;
 Lcom/android/okhttp/Cache$Entry;->writeCertList(Lcom/android/okhttp/okio/BufferedSink;Ljava/util/List;)V
 Lcom/android/okhttp/Cache$Entry;->writeTo(Lcom/android/okhttp/internal/DiskLruCache$Editor;)V
-Lcom/android/okhttp/Cache;
 Lcom/android/okhttp/Cache;-><init>(Ljava/io/File;J)V
 Lcom/android/okhttp/Cache;-><init>(Ljava/io/File;JLcom/android/okhttp/internal/io/FileSystem;)V
 Lcom/android/okhttp/Cache;->abortQuietly(Lcom/android/okhttp/internal/DiskLruCache$Editor;)V
@@ -108025,7 +101330,6 @@
 Lcom/android/okhttp/Cache;->VERSION:I
 Lcom/android/okhttp/Cache;->writeAbortCount:I
 Lcom/android/okhttp/Cache;->writeSuccessCount:I
-Lcom/android/okhttp/CacheControl$Builder;
 Lcom/android/okhttp/CacheControl$Builder;-><init>()V
 Lcom/android/okhttp/CacheControl$Builder;->build()Lcom/android/okhttp/CacheControl;
 Lcom/android/okhttp/CacheControl$Builder;->maxAge(ILjava/util/concurrent/TimeUnit;)Lcom/android/okhttp/CacheControl$Builder;
@@ -108042,7 +101346,6 @@
 Lcom/android/okhttp/CacheControl$Builder;->noTransform:Z
 Lcom/android/okhttp/CacheControl$Builder;->onlyIfCached()Lcom/android/okhttp/CacheControl$Builder;
 Lcom/android/okhttp/CacheControl$Builder;->onlyIfCached:Z
-Lcom/android/okhttp/CacheControl;
 Lcom/android/okhttp/CacheControl;-><init>(Lcom/android/okhttp/CacheControl$Builder;)V
 Lcom/android/okhttp/CacheControl;-><init>(ZZIIZZZIIZZLjava/lang/String;)V
 Lcom/android/okhttp/CacheControl;->FORCE_CACHE:Lcom/android/okhttp/CacheControl;
@@ -108072,16 +101375,12 @@
 Lcom/android/okhttp/CacheControl;->parse(Lcom/android/okhttp/Headers;)Lcom/android/okhttp/CacheControl;
 Lcom/android/okhttp/CacheControl;->sMaxAgeSeconds()I
 Lcom/android/okhttp/CacheControl;->sMaxAgeSeconds:I
-Lcom/android/okhttp/Call$ApplicationInterceptorChain;
-Lcom/android/okhttp/Call$ApplicationInterceptorChain;-><init>(ILcom/android/okhttp/Request;Z)V
 Lcom/android/okhttp/Call$ApplicationInterceptorChain;->connection()Lcom/android/okhttp/Connection;
 Lcom/android/okhttp/Call$ApplicationInterceptorChain;->forWebSocket:Z
 Lcom/android/okhttp/Call$ApplicationInterceptorChain;->index:I
 Lcom/android/okhttp/Call$ApplicationInterceptorChain;->proceed(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Response;
 Lcom/android/okhttp/Call$ApplicationInterceptorChain;->request()Lcom/android/okhttp/Request;
 Lcom/android/okhttp/Call$ApplicationInterceptorChain;->request:Lcom/android/okhttp/Request;
-Lcom/android/okhttp/Call$AsyncCall;
-Lcom/android/okhttp/Call$AsyncCall;-><init>(Lcom/android/okhttp/Callback;Z)V
 Lcom/android/okhttp/Call$AsyncCall;->cancel()V
 Lcom/android/okhttp/Call$AsyncCall;->execute()V
 Lcom/android/okhttp/Call$AsyncCall;->forWebSocket:Z
@@ -108090,7 +101389,6 @@
 Lcom/android/okhttp/Call$AsyncCall;->request()Lcom/android/okhttp/Request;
 Lcom/android/okhttp/Call$AsyncCall;->responseCallback:Lcom/android/okhttp/Callback;
 Lcom/android/okhttp/Call$AsyncCall;->tag()Ljava/lang/Object;
-Lcom/android/okhttp/Call;
 Lcom/android/okhttp/Call;-><init>(Lcom/android/okhttp/OkHttpClient;Lcom/android/okhttp/Request;)V
 Lcom/android/okhttp/Call;->cancel()V
 Lcom/android/okhttp/Call;->canceled:Z
@@ -108107,31 +101405,23 @@
 Lcom/android/okhttp/Call;->originalRequest:Lcom/android/okhttp/Request;
 Lcom/android/okhttp/Call;->tag()Ljava/lang/Object;
 Lcom/android/okhttp/Call;->toLoggableString()Ljava/lang/String;
-Lcom/android/okhttp/Callback;
 Lcom/android/okhttp/Callback;->onFailure(Lcom/android/okhttp/Request;Ljava/io/IOException;)V
 Lcom/android/okhttp/Callback;->onResponse(Lcom/android/okhttp/Response;)V
-Lcom/android/okhttp/CertificatePinner$Builder;
 Lcom/android/okhttp/CertificatePinner$Builder;-><init>()V
-Lcom/android/okhttp/CertificatePinner$Builder;->add(Ljava/lang/String;[[Ljava/lang/String;)Lcom/android/okhttp/CertificatePinner$Builder;
 Lcom/android/okhttp/CertificatePinner$Builder;->build()Lcom/android/okhttp/CertificatePinner;
 Lcom/android/okhttp/CertificatePinner$Builder;->hostnameToPins:Ljava/util/Map;
-Lcom/android/okhttp/CertificatePinner;
 Lcom/android/okhttp/CertificatePinner;-><init>(Lcom/android/okhttp/CertificatePinner$Builder;)V
 Lcom/android/okhttp/CertificatePinner;->check(Ljava/lang/String;Ljava/util/List;)V
-Lcom/android/okhttp/CertificatePinner;->check(Ljava/lang/String;[[Ljava/security/cert/Certificate;)V
 Lcom/android/okhttp/CertificatePinner;->DEFAULT:Lcom/android/okhttp/CertificatePinner;
 Lcom/android/okhttp/CertificatePinner;->findMatchingPins(Ljava/lang/String;)Ljava/util/Set;
 Lcom/android/okhttp/CertificatePinner;->hostnameToPins:Ljava/util/Map;
 Lcom/android/okhttp/CertificatePinner;->pin(Ljava/security/cert/Certificate;)Ljava/lang/String;
 Lcom/android/okhttp/CertificatePinner;->sha1(Ljava/security/cert/X509Certificate;)Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/Challenge;
 Lcom/android/okhttp/Challenge;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Lcom/android/okhttp/Challenge;->getRealm()Ljava/lang/String;
 Lcom/android/okhttp/Challenge;->getScheme()Ljava/lang/String;
 Lcom/android/okhttp/Challenge;->realm:Ljava/lang/String;
 Lcom/android/okhttp/Challenge;->scheme:Ljava/lang/String;
-Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/CipherSuite;-><init>(Ljava/lang/String;IIII)V
 Lcom/android/okhttp/CipherSuite;->forJavaName(Ljava/lang/String;)Lcom/android/okhttp/CipherSuite;
 Lcom/android/okhttp/CipherSuite;->javaName:Ljava/lang/String;
 Lcom/android/okhttp/CipherSuite;->TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA:Lcom/android/okhttp/CipherSuite;
@@ -108232,11 +101522,9 @@
 Lcom/android/okhttp/CipherSuite;->TLS_RSA_WITH_RC4_128_SHA:Lcom/android/okhttp/CipherSuite;
 Lcom/android/okhttp/CipherSuite;->valueOf(Ljava/lang/String;)Lcom/android/okhttp/CipherSuite;
 Lcom/android/okhttp/CipherSuite;->values()[Lcom/android/okhttp/CipherSuite;
-Lcom/android/okhttp/Connection;
 Lcom/android/okhttp/Connection;->getHandshake()Lcom/android/okhttp/Handshake;
 Lcom/android/okhttp/Connection;->getProtocol()Lcom/android/okhttp/Protocol;
 Lcom/android/okhttp/Connection;->getRoute()Lcom/android/okhttp/Route;
-Lcom/android/okhttp/ConnectionPool;
 Lcom/android/okhttp/ConnectionPool;-><init>(IJ)V
 Lcom/android/okhttp/ConnectionPool;-><init>(IJLjava/util/concurrent/TimeUnit;)V
 Lcom/android/okhttp/ConnectionPool;->cleanup(J)J
@@ -108256,22 +101544,16 @@
 Lcom/android/okhttp/ConnectionPool;->put(Lcom/android/okhttp/internal/io/RealConnection;)V
 Lcom/android/okhttp/ConnectionPool;->routeDatabase:Lcom/android/okhttp/internal/RouteDatabase;
 Lcom/android/okhttp/ConnectionPool;->setCleanupRunnableForTest(Ljava/lang/Runnable;)V
-Lcom/android/okhttp/ConnectionSpec$Builder;
 Lcom/android/okhttp/ConnectionSpec$Builder;-><init>(Lcom/android/okhttp/ConnectionSpec;)V
 Lcom/android/okhttp/ConnectionSpec$Builder;-><init>(Z)V
 Lcom/android/okhttp/ConnectionSpec$Builder;->allEnabledCipherSuites()Lcom/android/okhttp/ConnectionSpec$Builder;
 Lcom/android/okhttp/ConnectionSpec$Builder;->allEnabledTlsVersions()Lcom/android/okhttp/ConnectionSpec$Builder;
 Lcom/android/okhttp/ConnectionSpec$Builder;->build()Lcom/android/okhttp/ConnectionSpec;
-Lcom/android/okhttp/ConnectionSpec$Builder;->cipherSuites([[Lcom/android/okhttp/CipherSuite;)Lcom/android/okhttp/ConnectionSpec$Builder;
-Lcom/android/okhttp/ConnectionSpec$Builder;->cipherSuites([[Ljava/lang/String;)Lcom/android/okhttp/ConnectionSpec$Builder;
 Lcom/android/okhttp/ConnectionSpec$Builder;->cipherSuites:[Ljava/lang/String;
 Lcom/android/okhttp/ConnectionSpec$Builder;->supportsTlsExtensions(Z)Lcom/android/okhttp/ConnectionSpec$Builder;
 Lcom/android/okhttp/ConnectionSpec$Builder;->supportsTlsExtensions:Z
 Lcom/android/okhttp/ConnectionSpec$Builder;->tls:Z
-Lcom/android/okhttp/ConnectionSpec$Builder;->tlsVersions([[Lcom/android/okhttp/TlsVersion;)Lcom/android/okhttp/ConnectionSpec$Builder;
-Lcom/android/okhttp/ConnectionSpec$Builder;->tlsVersions([[Ljava/lang/String;)Lcom/android/okhttp/ConnectionSpec$Builder;
 Lcom/android/okhttp/ConnectionSpec$Builder;->tlsVersions:[Ljava/lang/String;
-Lcom/android/okhttp/ConnectionSpec;
 Lcom/android/okhttp/ConnectionSpec;-><init>(Lcom/android/okhttp/ConnectionSpec$Builder;)V
 Lcom/android/okhttp/ConnectionSpec;->apply(Ljavax/net/ssl/SSLSocket;Z)V
 Lcom/android/okhttp/ConnectionSpec;->APPROVED_CIPHER_SUITES:[Lcom/android/okhttp/CipherSuite;
@@ -108289,7 +101571,6 @@
 Lcom/android/okhttp/ConnectionSpec;->tls:Z
 Lcom/android/okhttp/ConnectionSpec;->tlsVersions()Ljava/util/List;
 Lcom/android/okhttp/ConnectionSpec;->tlsVersions:[Ljava/lang/String;
-Lcom/android/okhttp/Dispatcher;
 Lcom/android/okhttp/Dispatcher;-><init>()V
 Lcom/android/okhttp/Dispatcher;-><init>(Ljava/util/concurrent/ExecutorService;)V
 Lcom/android/okhttp/Dispatcher;->cancel(Ljava/lang/Object;)V
@@ -108312,10 +101593,8 @@
 Lcom/android/okhttp/Dispatcher;->runningCallsForHost(Lcom/android/okhttp/Call$AsyncCall;)I
 Lcom/android/okhttp/Dispatcher;->setMaxRequests(I)V
 Lcom/android/okhttp/Dispatcher;->setMaxRequestsPerHost(I)V
-Lcom/android/okhttp/Dns;
 Lcom/android/okhttp/Dns;->lookup(Ljava/lang/String;)Ljava/util/List;
 Lcom/android/okhttp/Dns;->SYSTEM:Lcom/android/okhttp/Dns;
-Lcom/android/okhttp/Handshake;
 Lcom/android/okhttp/Handshake;-><init>(Ljava/lang/String;Ljava/util/List;Ljava/util/List;)V
 Lcom/android/okhttp/Handshake;->cipherSuite()Ljava/lang/String;
 Lcom/android/okhttp/Handshake;->cipherSuite:Ljava/lang/String;
@@ -108327,7 +101606,6 @@
 Lcom/android/okhttp/Handshake;->peerCertificates()Ljava/util/List;
 Lcom/android/okhttp/Handshake;->peerCertificates:Ljava/util/List;
 Lcom/android/okhttp/Handshake;->peerPrincipal()Ljava/security/Principal;
-Lcom/android/okhttp/Headers$Builder;
 Lcom/android/okhttp/Headers$Builder;-><init>()V
 Lcom/android/okhttp/Headers$Builder;->add(Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder;
 Lcom/android/okhttp/Headers$Builder;->add(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder;
@@ -108339,7 +101617,6 @@
 Lcom/android/okhttp/Headers$Builder;->namesAndValues:Ljava/util/List;
 Lcom/android/okhttp/Headers$Builder;->removeAll(Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder;
 Lcom/android/okhttp/Headers$Builder;->set(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Headers$Builder;
-Lcom/android/okhttp/Headers;
 Lcom/android/okhttp/Headers;-><init>(Lcom/android/okhttp/Headers$Builder;)V
 Lcom/android/okhttp/Headers;-><init>([Ljava/lang/String;)V
 Lcom/android/okhttp/Headers;->get(Ljava/lang/String;)Ljava/lang/String;
@@ -108350,13 +101627,10 @@
 Lcom/android/okhttp/Headers;->namesAndValues:[Ljava/lang/String;
 Lcom/android/okhttp/Headers;->newBuilder()Lcom/android/okhttp/Headers$Builder;
 Lcom/android/okhttp/Headers;->of(Ljava/util/Map;)Lcom/android/okhttp/Headers;
-Lcom/android/okhttp/Headers;->of([[Ljava/lang/String;)Lcom/android/okhttp/Headers;
 Lcom/android/okhttp/Headers;->size()I
 Lcom/android/okhttp/Headers;->toMultimap()Ljava/util/Map;
 Lcom/android/okhttp/Headers;->value(I)Ljava/lang/String;
 Lcom/android/okhttp/Headers;->values(Ljava/lang/String;)Ljava/util/List;
-Lcom/android/okhttp/HttpUrl$Builder$ParseResult;
-Lcom/android/okhttp/HttpUrl$Builder$ParseResult;-><init>()V
 Lcom/android/okhttp/HttpUrl$Builder$ParseResult;->INVALID_HOST:Lcom/android/okhttp/HttpUrl$Builder$ParseResult;
 Lcom/android/okhttp/HttpUrl$Builder$ParseResult;->INVALID_PORT:Lcom/android/okhttp/HttpUrl$Builder$ParseResult;
 Lcom/android/okhttp/HttpUrl$Builder$ParseResult;->MISSING_SCHEME:Lcom/android/okhttp/HttpUrl$Builder$ParseResult;
@@ -108364,7 +101638,6 @@
 Lcom/android/okhttp/HttpUrl$Builder$ParseResult;->UNSUPPORTED_SCHEME:Lcom/android/okhttp/HttpUrl$Builder$ParseResult;
 Lcom/android/okhttp/HttpUrl$Builder$ParseResult;->valueOf(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder$ParseResult;
 Lcom/android/okhttp/HttpUrl$Builder$ParseResult;->values()[Lcom/android/okhttp/HttpUrl$Builder$ParseResult;
-Lcom/android/okhttp/HttpUrl$Builder;
 Lcom/android/okhttp/HttpUrl$Builder;-><init>()V
 Lcom/android/okhttp/HttpUrl$Builder;->addEncodedPathSegment(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
 Lcom/android/okhttp/HttpUrl$Builder;->addEncodedQueryParameter(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
@@ -108418,7 +101691,6 @@
 Lcom/android/okhttp/HttpUrl$Builder;->skipTrailingAsciiWhitespace(Ljava/lang/String;II)I
 Lcom/android/okhttp/HttpUrl$Builder;->slashCount(Ljava/lang/String;II)I
 Lcom/android/okhttp/HttpUrl$Builder;->username(Ljava/lang/String;)Lcom/android/okhttp/HttpUrl$Builder;
-Lcom/android/okhttp/HttpUrl;
 Lcom/android/okhttp/HttpUrl;-><init>(Lcom/android/okhttp/HttpUrl$Builder;)V
 Lcom/android/okhttp/HttpUrl;->canonicalize(Lcom/android/okhttp/okio/Buffer;Ljava/lang/String;IILjava/lang/String;ZZZZ)V
 Lcom/android/okhttp/HttpUrl;->canonicalize(Ljava/lang/String;IILjava/lang/String;ZZZZ)Ljava/lang/String;
@@ -108480,16 +101752,12 @@
 Lcom/android/okhttp/HttpUrl;->username()Ljava/lang/String;
 Lcom/android/okhttp/HttpUrl;->username:Ljava/lang/String;
 Lcom/android/okhttp/HttpUrl;->USERNAME_ENCODE_SET:Ljava/lang/String;
-Lcom/android/okhttp/Interceptor$Chain;
 Lcom/android/okhttp/Interceptor$Chain;->connection()Lcom/android/okhttp/Connection;
 Lcom/android/okhttp/Interceptor$Chain;->proceed(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Response;
 Lcom/android/okhttp/Interceptor$Chain;->request()Lcom/android/okhttp/Request;
-Lcom/android/okhttp/Interceptor;
 Lcom/android/okhttp/Interceptor;->intercept(Lcom/android/okhttp/Interceptor$Chain;)Lcom/android/okhttp/Response;
-Lcom/android/okhttp/internal/http/CacheRequest;
 Lcom/android/okhttp/internal/http/CacheRequest;->abort()V
 Lcom/android/okhttp/internal/http/CacheRequest;->body()Lcom/android/okhttp/okio/Sink;
-Lcom/android/okhttp/internal/http/CacheStrategy$Factory;
 Lcom/android/okhttp/internal/http/CacheStrategy$Factory;-><init>(JLcom/android/okhttp/Request;Lcom/android/okhttp/Response;)V
 Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->ageSeconds:I
 Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->cacheResponse:Lcom/android/okhttp/Response;
@@ -108509,20 +101777,16 @@
 Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->sentRequestMillis:J
 Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->servedDate:Ljava/util/Date;
 Lcom/android/okhttp/internal/http/CacheStrategy$Factory;->servedDateString:Ljava/lang/String;
-Lcom/android/okhttp/internal/http/CacheStrategy;
 Lcom/android/okhttp/internal/http/CacheStrategy;-><init>(Lcom/android/okhttp/Request;Lcom/android/okhttp/Response;)V
 Lcom/android/okhttp/internal/http/CacheStrategy;->cacheResponse:Lcom/android/okhttp/Response;
 Lcom/android/okhttp/internal/http/CacheStrategy;->isCacheable(Lcom/android/okhttp/Response;Lcom/android/okhttp/Request;)Z
 Lcom/android/okhttp/internal/http/CacheStrategy;->networkRequest:Lcom/android/okhttp/Request;
-Lcom/android/okhttp/internal/http/HttpEngine$NetworkInterceptorChain;
-Lcom/android/okhttp/internal/http/HttpEngine$NetworkInterceptorChain;-><init>(ILcom/android/okhttp/Request;)V
 Lcom/android/okhttp/internal/http/HttpEngine$NetworkInterceptorChain;->calls:I
 Lcom/android/okhttp/internal/http/HttpEngine$NetworkInterceptorChain;->connection()Lcom/android/okhttp/Connection;
 Lcom/android/okhttp/internal/http/HttpEngine$NetworkInterceptorChain;->index:I
 Lcom/android/okhttp/internal/http/HttpEngine$NetworkInterceptorChain;->proceed(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Response;
 Lcom/android/okhttp/internal/http/HttpEngine$NetworkInterceptorChain;->request()Lcom/android/okhttp/Request;
 Lcom/android/okhttp/internal/http/HttpEngine$NetworkInterceptorChain;->request:Lcom/android/okhttp/Request;
-Lcom/android/okhttp/internal/http/HttpEngine;
 Lcom/android/okhttp/internal/http/HttpEngine;-><init>(Lcom/android/okhttp/OkHttpClient;Lcom/android/okhttp/Request;ZZZLcom/android/okhttp/internal/http/StreamAllocation;Lcom/android/okhttp/internal/http/RetryableSink;Lcom/android/okhttp/Response;)V
 Lcom/android/okhttp/internal/http/HttpEngine;->bufferedRequestBody:Lcom/android/okhttp/okio/BufferedSink;
 Lcom/android/okhttp/internal/http/HttpEngine;->bufferRequestBody:Z
@@ -108562,7 +101826,6 @@
 Lcom/android/okhttp/internal/http/HttpEngine;->unzip(Lcom/android/okhttp/Response;)Lcom/android/okhttp/Response;
 Lcom/android/okhttp/internal/http/HttpEngine;->userRequest:Lcom/android/okhttp/Request;
 Lcom/android/okhttp/internal/http/HttpEngine;->validate(Lcom/android/okhttp/Response;Lcom/android/okhttp/Response;)Z
-Lcom/android/okhttp/internal/http/HttpStream;
 Lcom/android/okhttp/internal/http/HttpStream;->cancel()V
 Lcom/android/okhttp/internal/http/HttpStream;->createRequestBody(Lcom/android/okhttp/Request;J)Lcom/android/okhttp/okio/Sink;
 Lcom/android/okhttp/internal/http/HttpStream;->DISCARD_STREAM_TIMEOUT_MILLIS:I
@@ -108572,9 +101835,7 @@
 Lcom/android/okhttp/internal/http/HttpStream;->setHttpEngine(Lcom/android/okhttp/internal/http/HttpEngine;)V
 Lcom/android/okhttp/internal/http/HttpStream;->writeRequestBody(Lcom/android/okhttp/internal/http/RetryableSink;)V
 Lcom/android/okhttp/internal/http/HttpStream;->writeRequestHeaders(Lcom/android/okhttp/Request;)V
-Lcom/android/okhttp/internal/http/RequestException;
 Lcom/android/okhttp/internal/http/RequestException;-><init>(Ljava/io/IOException;)V
-Lcom/android/okhttp/internal/http/RetryableSink;
 Lcom/android/okhttp/internal/http/RetryableSink;-><init>()V
 Lcom/android/okhttp/internal/http/RetryableSink;-><init>(I)V
 Lcom/android/okhttp/internal/http/RetryableSink;->closed:Z
@@ -108584,14 +101845,12 @@
 Lcom/android/okhttp/internal/http/RetryableSink;->timeout()Lcom/android/okhttp/okio/Timeout;
 Lcom/android/okhttp/internal/http/RetryableSink;->write(Lcom/android/okhttp/okio/Buffer;J)V
 Lcom/android/okhttp/internal/http/RetryableSink;->writeToSocket(Lcom/android/okhttp/okio/Sink;)V
-Lcom/android/okhttp/internal/http/RouteException;
 Lcom/android/okhttp/internal/http/RouteException;-><init>(Ljava/io/IOException;)V
 Lcom/android/okhttp/internal/http/RouteException;->addConnectException(Ljava/io/IOException;)V
 Lcom/android/okhttp/internal/http/RouteException;->addSuppressedExceptionMethod:Ljava/lang/reflect/Method;
 Lcom/android/okhttp/internal/http/RouteException;->addSuppressedIfPossible(Ljava/io/IOException;Ljava/io/IOException;)V
 Lcom/android/okhttp/internal/http/RouteException;->getLastConnectException()Ljava/io/IOException;
 Lcom/android/okhttp/internal/http/RouteException;->lastException:Ljava/io/IOException;
-Lcom/android/okhttp/internal/http/RouteSelector;
 Lcom/android/okhttp/internal/http/RouteSelector;-><init>(Lcom/android/okhttp/Address;Lcom/android/okhttp/internal/RouteDatabase;)V
 Lcom/android/okhttp/internal/http/RouteSelector;->address:Lcom/android/okhttp/Address;
 Lcom/android/okhttp/internal/http/RouteSelector;->connectFailed(Lcom/android/okhttp/Route;Ljava/io/IOException;)V
@@ -108613,7 +101872,6 @@
 Lcom/android/okhttp/internal/http/RouteSelector;->resetNextInetSocketAddress(Ljava/net/Proxy;)V
 Lcom/android/okhttp/internal/http/RouteSelector;->resetNextProxy(Lcom/android/okhttp/HttpUrl;Ljava/net/Proxy;)V
 Lcom/android/okhttp/internal/http/RouteSelector;->routeDatabase:Lcom/android/okhttp/internal/RouteDatabase;
-Lcom/android/okhttp/internal/http/StreamAllocation;
 Lcom/android/okhttp/internal/http/StreamAllocation;-><init>(Lcom/android/okhttp/ConnectionPool;Lcom/android/okhttp/Address;)V
 Lcom/android/okhttp/internal/http/StreamAllocation;->acquire(Lcom/android/okhttp/internal/io/RealConnection;)V
 Lcom/android/okhttp/internal/http/StreamAllocation;->address:Lcom/android/okhttp/Address;
@@ -108641,7 +101899,6 @@
 Lcom/android/okhttp/internal/http/StreamAllocation;->stream()Lcom/android/okhttp/internal/http/HttpStream;
 Lcom/android/okhttp/internal/http/StreamAllocation;->stream:Lcom/android/okhttp/internal/http/HttpStream;
 Lcom/android/okhttp/internal/http/StreamAllocation;->streamFinished(Lcom/android/okhttp/internal/http/HttpStream;)V
-Lcom/android/okhttp/MediaType;
 Lcom/android/okhttp/MediaType;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 Lcom/android/okhttp/MediaType;->charset()Ljava/nio/charset/Charset;
 Lcom/android/okhttp/MediaType;->charset(Ljava/nio/charset/Charset;)Ljava/nio/charset/Charset;
@@ -108656,9 +101913,7 @@
 Lcom/android/okhttp/MediaType;->type()Ljava/lang/String;
 Lcom/android/okhttp/MediaType;->type:Ljava/lang/String;
 Lcom/android/okhttp/MediaType;->TYPE_SUBTYPE:Ljava/util/regex/Pattern;
-Lcom/android/okhttp/OkCacheContainer;
 Lcom/android/okhttp/OkCacheContainer;->getCache()Lcom/android/okhttp/Cache;
-Lcom/android/okhttp/OkHttpClient;
 Lcom/android/okhttp/OkHttpClient;-><init>(Lcom/android/okhttp/OkHttpClient;)V
 Lcom/android/okhttp/OkHttpClient;->authenticator:Lcom/android/okhttp/Authenticator;
 Lcom/android/okhttp/OkHttpClient;->cache:Lcom/android/okhttp/Cache;
@@ -108725,9 +101980,7 @@
 Lcom/android/okhttp/OkHttpClient;->socketFactory:Ljavax/net/SocketFactory;
 Lcom/android/okhttp/OkHttpClient;->sslSocketFactory:Ljavax/net/ssl/SSLSocketFactory;
 Lcom/android/okhttp/OkHttpClient;->writeTimeout:I
-Lcom/android/okhttp/okio/AsyncTimeout$Watchdog;
 Lcom/android/okhttp/okio/AsyncTimeout$Watchdog;-><init>()V
-Lcom/android/okhttp/okio/AsyncTimeout;
 Lcom/android/okhttp/okio/AsyncTimeout;-><init>()V
 Lcom/android/okhttp/okio/AsyncTimeout;->awaitTimeout()Lcom/android/okhttp/okio/AsyncTimeout;
 Lcom/android/okhttp/okio/AsyncTimeout;->cancelScheduledTimeout(Lcom/android/okhttp/okio/AsyncTimeout;)Z
@@ -108745,7 +101998,6 @@
 Lcom/android/okhttp/okio/AsyncTimeout;->source(Lcom/android/okhttp/okio/Source;)Lcom/android/okhttp/okio/Source;
 Lcom/android/okhttp/okio/AsyncTimeout;->timedOut()V
 Lcom/android/okhttp/okio/AsyncTimeout;->timeoutAt:J
-Lcom/android/okhttp/okio/Buffer;
 Lcom/android/okhttp/okio/Buffer;-><init>()V
 Lcom/android/okhttp/okio/Buffer;->buffer()Lcom/android/okhttp/okio/Buffer;
 Lcom/android/okhttp/okio/Buffer;->clear()V
@@ -108849,7 +102101,6 @@
 Lcom/android/okhttp/okio/Buffer;->writeUtf8(Ljava/lang/String;II)Lcom/android/okhttp/okio/BufferedSink;
 Lcom/android/okhttp/okio/Buffer;->writeUtf8CodePoint(I)Lcom/android/okhttp/okio/Buffer;
 Lcom/android/okhttp/okio/Buffer;->writeUtf8CodePoint(I)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSink;
 Lcom/android/okhttp/okio/BufferedSink;->buffer()Lcom/android/okhttp/okio/Buffer;
 Lcom/android/okhttp/okio/BufferedSink;->emit()Lcom/android/okhttp/okio/BufferedSink;
 Lcom/android/okhttp/okio/BufferedSink;->emitCompleteSegments()Lcom/android/okhttp/okio/BufferedSink;
@@ -108873,7 +102124,6 @@
 Lcom/android/okhttp/okio/BufferedSink;->writeUtf8(Ljava/lang/String;)Lcom/android/okhttp/okio/BufferedSink;
 Lcom/android/okhttp/okio/BufferedSink;->writeUtf8(Ljava/lang/String;II)Lcom/android/okhttp/okio/BufferedSink;
 Lcom/android/okhttp/okio/BufferedSink;->writeUtf8CodePoint(I)Lcom/android/okhttp/okio/BufferedSink;
-Lcom/android/okhttp/okio/BufferedSource;
 Lcom/android/okhttp/okio/BufferedSource;->buffer()Lcom/android/okhttp/okio/Buffer;
 Lcom/android/okhttp/okio/BufferedSource;->exhausted()Z
 Lcom/android/okhttp/okio/BufferedSource;->indexOf(B)J
@@ -108911,7 +102161,6 @@
 Lcom/android/okhttp/okio/BufferedSource;->request(J)Z
 Lcom/android/okhttp/okio/BufferedSource;->require(J)V
 Lcom/android/okhttp/okio/BufferedSource;->skip(J)V
-Lcom/android/okhttp/okio/ByteString;
 Lcom/android/okhttp/okio/ByteString;-><init>([B)V
 Lcom/android/okhttp/okio/ByteString;->base64()Ljava/lang/String;
 Lcom/android/okhttp/okio/ByteString;->base64Url()Ljava/lang/String;
@@ -108930,7 +102179,6 @@
 Lcom/android/okhttp/okio/ByteString;->HEX_DIGITS:[C
 Lcom/android/okhttp/okio/ByteString;->md5()Lcom/android/okhttp/okio/ByteString;
 Lcom/android/okhttp/okio/ByteString;->of([BII)Lcom/android/okhttp/okio/ByteString;
-Lcom/android/okhttp/okio/ByteString;->of([[B)Lcom/android/okhttp/okio/ByteString;
 Lcom/android/okhttp/okio/ByteString;->rangeEquals(ILcom/android/okhttp/okio/ByteString;II)Z
 Lcom/android/okhttp/okio/ByteString;->rangeEquals(I[BII)Z
 Lcom/android/okhttp/okio/ByteString;->read(Ljava/io/InputStream;I)Lcom/android/okhttp/okio/ByteString;
@@ -108945,7 +102193,6 @@
 Lcom/android/okhttp/okio/ByteString;->utf8:Ljava/lang/String;
 Lcom/android/okhttp/okio/ByteString;->write(Lcom/android/okhttp/okio/Buffer;)V
 Lcom/android/okhttp/okio/ByteString;->write(Ljava/io/OutputStream;)V
-Lcom/android/okhttp/okio/Segment;
 Lcom/android/okhttp/okio/Segment;-><init>()V
 Lcom/android/okhttp/okio/Segment;-><init>(Lcom/android/okhttp/okio/Segment;)V
 Lcom/android/okhttp/okio/Segment;-><init>([BII)V
@@ -108962,13 +102209,10 @@
 Lcom/android/okhttp/okio/Segment;->SIZE:I
 Lcom/android/okhttp/okio/Segment;->split(I)Lcom/android/okhttp/okio/Segment;
 Lcom/android/okhttp/okio/Segment;->writeTo(Lcom/android/okhttp/okio/Segment;I)V
-Lcom/android/okhttp/okio/Sink;
 Lcom/android/okhttp/okio/Sink;->timeout()Lcom/android/okhttp/okio/Timeout;
 Lcom/android/okhttp/okio/Sink;->write(Lcom/android/okhttp/okio/Buffer;J)V
-Lcom/android/okhttp/okio/Source;
 Lcom/android/okhttp/okio/Source;->read(Lcom/android/okhttp/okio/Buffer;J)J
 Lcom/android/okhttp/okio/Source;->timeout()Lcom/android/okhttp/okio/Timeout;
-Lcom/android/okhttp/okio/Timeout;
 Lcom/android/okhttp/okio/Timeout;-><init>()V
 Lcom/android/okhttp/okio/Timeout;->clearDeadline()Lcom/android/okhttp/okio/Timeout;
 Lcom/android/okhttp/okio/Timeout;->clearTimeout()Lcom/android/okhttp/okio/Timeout;
@@ -108983,8 +102227,6 @@
 Lcom/android/okhttp/okio/Timeout;->timeout(JLjava/util/concurrent/TimeUnit;)Lcom/android/okhttp/okio/Timeout;
 Lcom/android/okhttp/okio/Timeout;->timeoutNanos()J
 Lcom/android/okhttp/okio/Timeout;->timeoutNanos:J
-Lcom/android/okhttp/Protocol;
-Lcom/android/okhttp/Protocol;-><init>(Ljava/lang/String;)V
 Lcom/android/okhttp/Protocol;->get(Ljava/lang/String;)Lcom/android/okhttp/Protocol;
 Lcom/android/okhttp/Protocol;->HTTP_1_0:Lcom/android/okhttp/Protocol;
 Lcom/android/okhttp/Protocol;->HTTP_1_1:Lcom/android/okhttp/Protocol;
@@ -108993,7 +102235,6 @@
 Lcom/android/okhttp/Protocol;->SPDY_3:Lcom/android/okhttp/Protocol;
 Lcom/android/okhttp/Protocol;->valueOf(Ljava/lang/String;)Lcom/android/okhttp/Protocol;
 Lcom/android/okhttp/Protocol;->values()[Lcom/android/okhttp/Protocol;
-Lcom/android/okhttp/Request$Builder;
 Lcom/android/okhttp/Request$Builder;-><init>()V
 Lcom/android/okhttp/Request$Builder;-><init>(Lcom/android/okhttp/Request;)V
 Lcom/android/okhttp/Request$Builder;->addHeader(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Request$Builder;
@@ -109019,7 +102260,6 @@
 Lcom/android/okhttp/Request$Builder;->url(Ljava/lang/String;)Lcom/android/okhttp/Request$Builder;
 Lcom/android/okhttp/Request$Builder;->url(Ljava/net/URL;)Lcom/android/okhttp/Request$Builder;
 Lcom/android/okhttp/Request$Builder;->url:Lcom/android/okhttp/HttpUrl;
-Lcom/android/okhttp/Request;
 Lcom/android/okhttp/Request;-><init>(Lcom/android/okhttp/Request$Builder;)V
 Lcom/android/okhttp/Request;->body()Lcom/android/okhttp/RequestBody;
 Lcom/android/okhttp/Request;->body:Lcom/android/okhttp/RequestBody;
@@ -109039,7 +102279,6 @@
 Lcom/android/okhttp/Request;->uri()Ljava/net/URI;
 Lcom/android/okhttp/Request;->url()Ljava/net/URL;
 Lcom/android/okhttp/Request;->urlString()Ljava/lang/String;
-Lcom/android/okhttp/RequestBody;
 Lcom/android/okhttp/RequestBody;-><init>()V
 Lcom/android/okhttp/RequestBody;->contentLength()J
 Lcom/android/okhttp/RequestBody;->contentType()Lcom/android/okhttp/MediaType;
@@ -109049,7 +102288,6 @@
 Lcom/android/okhttp/RequestBody;->create(Lcom/android/okhttp/MediaType;[B)Lcom/android/okhttp/RequestBody;
 Lcom/android/okhttp/RequestBody;->create(Lcom/android/okhttp/MediaType;[BII)Lcom/android/okhttp/RequestBody;
 Lcom/android/okhttp/RequestBody;->writeTo(Lcom/android/okhttp/okio/BufferedSink;)V
-Lcom/android/okhttp/Response$Builder;
 Lcom/android/okhttp/Response$Builder;-><init>()V
 Lcom/android/okhttp/Response$Builder;-><init>(Lcom/android/okhttp/Response;)V
 Lcom/android/okhttp/Response$Builder;->addHeader(Ljava/lang/String;Ljava/lang/String;)Lcom/android/okhttp/Response$Builder;
@@ -109078,7 +102316,6 @@
 Lcom/android/okhttp/Response$Builder;->removeHeader(Ljava/lang/String;)Lcom/android/okhttp/Response$Builder;
 Lcom/android/okhttp/Response$Builder;->request(Lcom/android/okhttp/Request;)Lcom/android/okhttp/Response$Builder;
 Lcom/android/okhttp/Response$Builder;->request:Lcom/android/okhttp/Request;
-Lcom/android/okhttp/Response;
 Lcom/android/okhttp/Response;-><init>(Lcom/android/okhttp/Response$Builder;)V
 Lcom/android/okhttp/Response;->body()Lcom/android/okhttp/ResponseBody;
 Lcom/android/okhttp/Response;->body:Lcom/android/okhttp/ResponseBody;
@@ -109104,7 +102341,6 @@
 Lcom/android/okhttp/Response;->protocol()Lcom/android/okhttp/Protocol;
 Lcom/android/okhttp/Response;->request()Lcom/android/okhttp/Request;
 Lcom/android/okhttp/Response;->request:Lcom/android/okhttp/Request;
-Lcom/android/okhttp/ResponseBody;
 Lcom/android/okhttp/ResponseBody;-><init>()V
 Lcom/android/okhttp/ResponseBody;->bytes()[B
 Lcom/android/okhttp/ResponseBody;->byteStream()Ljava/io/InputStream;
@@ -109118,7 +102354,6 @@
 Lcom/android/okhttp/ResponseBody;->reader:Ljava/io/Reader;
 Lcom/android/okhttp/ResponseBody;->source()Lcom/android/okhttp/okio/BufferedSource;
 Lcom/android/okhttp/ResponseBody;->string()Ljava/lang/String;
-Lcom/android/okhttp/Route;
 Lcom/android/okhttp/Route;-><init>(Lcom/android/okhttp/Address;Ljava/net/Proxy;Ljava/net/InetSocketAddress;)V
 Lcom/android/okhttp/Route;->address:Lcom/android/okhttp/Address;
 Lcom/android/okhttp/Route;->getAddress()Lcom/android/okhttp/Address;
@@ -109127,8 +102362,6 @@
 Lcom/android/okhttp/Route;->inetSocketAddress:Ljava/net/InetSocketAddress;
 Lcom/android/okhttp/Route;->proxy:Ljava/net/Proxy;
 Lcom/android/okhttp/Route;->requiresTunnel()Z
-Lcom/android/okhttp/TlsVersion;
-Lcom/android/okhttp/TlsVersion;-><init>(Ljava/lang/String;)V
 Lcom/android/okhttp/TlsVersion;->forJavaName(Ljava/lang/String;)Lcom/android/okhttp/TlsVersion;
 Lcom/android/okhttp/TlsVersion;->javaName()Ljava/lang/String;
 Lcom/android/okhttp/TlsVersion;->javaName:Ljava/lang/String;
@@ -109138,7 +102371,6 @@
 Lcom/android/okhttp/TlsVersion;->TLS_1_2:Lcom/android/okhttp/TlsVersion;
 Lcom/android/okhttp/TlsVersion;->valueOf(Ljava/lang/String;)Lcom/android/okhttp/TlsVersion;
 Lcom/android/okhttp/TlsVersion;->values()[Lcom/android/okhttp/TlsVersion;
-Lcom/android/org/conscrypt/AbstractConscryptSocket;
 Lcom/android/org/conscrypt/AbstractConscryptSocket;-><init>()V
 Lcom/android/org/conscrypt/AbstractConscryptSocket;-><init>(Ljava/lang/String;I)V
 Lcom/android/org/conscrypt/AbstractConscryptSocket;-><init>(Ljava/lang/String;ILjava/net/InetAddress;I)V
@@ -109148,11 +102380,9 @@
 Lcom/android/org/conscrypt/AbstractConscryptSocket;->getTlsUnique()[B
 Lcom/android/org/conscrypt/AbstractConscryptSocket;->peerInfoProvider()Lcom/android/org/conscrypt/PeerInfoProvider;
 Lcom/android/org/conscrypt/AbstractConscryptSocket;->setApplicationProtocolSelector(Lcom/android/org/conscrypt/ApplicationProtocolSelector;)V
-Lcom/android/org/conscrypt/ApplicationProtocolSelector;
 Lcom/android/org/conscrypt/ApplicationProtocolSelector;-><init>()V
 Lcom/android/org/conscrypt/ApplicationProtocolSelector;->selectApplicationProtocol(Ljavax/net/ssl/SSLEngine;Ljava/util/List;)Ljava/lang/String;
 Lcom/android/org/conscrypt/ApplicationProtocolSelector;->selectApplicationProtocol(Ljavax/net/ssl/SSLSocket;Ljava/util/List;)Ljava/lang/String;
-Lcom/android/org/conscrypt/ApplicationProtocolSelectorAdapter;
 Lcom/android/org/conscrypt/ApplicationProtocolSelectorAdapter;-><init>(Ljavax/net/ssl/SSLEngine;Lcom/android/org/conscrypt/ApplicationProtocolSelector;)V
 Lcom/android/org/conscrypt/ApplicationProtocolSelectorAdapter;-><init>(Ljavax/net/ssl/SSLSocket;Lcom/android/org/conscrypt/ApplicationProtocolSelector;)V
 Lcom/android/org/conscrypt/ApplicationProtocolSelectorAdapter;->engine:Ljavax/net/ssl/SSLEngine;
@@ -109160,7 +102390,6 @@
 Lcom/android/org/conscrypt/ApplicationProtocolSelectorAdapter;->selectApplicationProtocol([B)I
 Lcom/android/org/conscrypt/ApplicationProtocolSelectorAdapter;->selector:Lcom/android/org/conscrypt/ApplicationProtocolSelector;
 Lcom/android/org/conscrypt/ApplicationProtocolSelectorAdapter;->socket:Ljavax/net/ssl/SSLSocket;
-Lcom/android/org/conscrypt/CertBlacklist;
 Lcom/android/org/conscrypt/CertBlacklist;-><init>(Ljava/util/Set;Ljava/util/Set;)V
 Lcom/android/org/conscrypt/CertBlacklist;->closeQuietly(Ljava/io/Closeable;)V
 Lcom/android/org/conscrypt/CertBlacklist;->getDefault()Lcom/android/org/conscrypt/CertBlacklist;
@@ -109178,7 +102407,6 @@
 Lcom/android/org/conscrypt/CertBlacklist;->readSerialBlackList(Ljava/lang/String;)Ljava/util/Set;
 Lcom/android/org/conscrypt/CertBlacklist;->serialBlacklist:Ljava/util/Set;
 Lcom/android/org/conscrypt/CertBlacklist;->toHex([B)[B
-Lcom/android/org/conscrypt/CertificatePriorityComparator;
 Lcom/android/org/conscrypt/CertificatePriorityComparator;-><init>()V
 Lcom/android/org/conscrypt/CertificatePriorityComparator;->ALGORITHM_OID_PRIORITY_MAP:Ljava/util/Map;
 Lcom/android/org/conscrypt/CertificatePriorityComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
@@ -109195,9 +102423,7 @@
 Lcom/android/org/conscrypt/CertificatePriorityComparator;->PRIORITY_SHA384:Ljava/lang/Integer;
 Lcom/android/org/conscrypt/CertificatePriorityComparator;->PRIORITY_SHA512:Ljava/lang/Integer;
 Lcom/android/org/conscrypt/CertificatePriorityComparator;->PRIORITY_UNKNOWN:Ljava/lang/Integer;
-Lcom/android/org/conscrypt/CertPinManager;
 Lcom/android/org/conscrypt/CertPinManager;->checkChainPinning(Ljava/lang/String;Ljava/util/List;)V
-Lcom/android/org/conscrypt/ConscryptSocketBase;
 Lcom/android/org/conscrypt/ConscryptSocketBase;-><init>()V
 Lcom/android/org/conscrypt/ConscryptSocketBase;-><init>(Ljava/lang/String;I)V
 Lcom/android/org/conscrypt/ConscryptSocketBase;-><init>(Ljava/lang/String;ILjava/net/InetAddress;I)V
@@ -109217,35 +102443,25 @@
 Lcom/android/org/conscrypt/ConscryptSocketBase;->peerPort:I
 Lcom/android/org/conscrypt/ConscryptSocketBase;->readTimeoutMilliseconds:I
 Lcom/android/org/conscrypt/ConscryptSocketBase;->setApplicationProtocolSelector(Lcom/android/org/conscrypt/ApplicationProtocolSelectorAdapter;)V
-Lcom/android/org/conscrypt/NativeRef$EC_GROUP;
 Lcom/android/org/conscrypt/NativeRef$EC_GROUP;-><init>(J)V
 Lcom/android/org/conscrypt/NativeRef$EC_GROUP;->doFree(J)V
-Lcom/android/org/conscrypt/NativeRef$EC_POINT;
 Lcom/android/org/conscrypt/NativeRef$EC_POINT;-><init>(J)V
 Lcom/android/org/conscrypt/NativeRef$EC_POINT;->doFree(J)V
-Lcom/android/org/conscrypt/NativeRef$EVP_CIPHER_CTX;
 Lcom/android/org/conscrypt/NativeRef$EVP_CIPHER_CTX;-><init>(J)V
 Lcom/android/org/conscrypt/NativeRef$EVP_CIPHER_CTX;->doFree(J)V
-Lcom/android/org/conscrypt/NativeRef$EVP_MD_CTX;
 Lcom/android/org/conscrypt/NativeRef$EVP_MD_CTX;-><init>(J)V
 Lcom/android/org/conscrypt/NativeRef$EVP_MD_CTX;->doFree(J)V
-Lcom/android/org/conscrypt/NativeRef$EVP_PKEY;
 Lcom/android/org/conscrypt/NativeRef$EVP_PKEY;-><init>(J)V
 Lcom/android/org/conscrypt/NativeRef$EVP_PKEY;->doFree(J)V
-Lcom/android/org/conscrypt/NativeRef$EVP_PKEY_CTX;
 Lcom/android/org/conscrypt/NativeRef$EVP_PKEY_CTX;-><init>(J)V
 Lcom/android/org/conscrypt/NativeRef$EVP_PKEY_CTX;->doFree(J)V
-Lcom/android/org/conscrypt/NativeRef$HMAC_CTX;
 Lcom/android/org/conscrypt/NativeRef$HMAC_CTX;-><init>(J)V
 Lcom/android/org/conscrypt/NativeRef$HMAC_CTX;->doFree(J)V
-Lcom/android/org/conscrypt/NativeRef$SSL_SESSION;
 Lcom/android/org/conscrypt/NativeRef$SSL_SESSION;-><init>(J)V
 Lcom/android/org/conscrypt/NativeRef$SSL_SESSION;->doFree(J)V
-Lcom/android/org/conscrypt/NativeRef;
 Lcom/android/org/conscrypt/NativeRef;-><init>(J)V
 Lcom/android/org/conscrypt/NativeRef;->context:J
 Lcom/android/org/conscrypt/NativeRef;->doFree(J)V
-Lcom/android/org/conscrypt/OpenSSLKey;
 Lcom/android/org/conscrypt/OpenSSLKey;-><init>(JZ)V
 Lcom/android/org/conscrypt/OpenSSLKey;->ctx:Lcom/android/org/conscrypt/NativeRef$EVP_PKEY;
 Lcom/android/org/conscrypt/OpenSSLKey;->fromECPrivateKeyForTLSStackOnly(Ljava/security/PrivateKey;Ljava/security/spec/ECParameterSpec;)Lcom/android/org/conscrypt/OpenSSLKey;
@@ -109262,7 +102478,6 @@
 Lcom/android/org/conscrypt/OpenSSLKey;->wrapJCAPrivateKeyForTLSStackOnly(Ljava/security/PrivateKey;Ljava/security/PublicKey;)Lcom/android/org/conscrypt/OpenSSLKey;
 Lcom/android/org/conscrypt/OpenSSLKey;->wrapped:Z
 Lcom/android/org/conscrypt/OpenSSLKey;->wrapPrivateKey(Ljava/security/PrivateKey;)Lcom/android/org/conscrypt/OpenSSLKey;
-Lcom/android/org/conscrypt/OpenSSLSocketImpl;
 Lcom/android/org/conscrypt/OpenSSLSocketImpl;-><init>()V
 Lcom/android/org/conscrypt/OpenSSLSocketImpl;-><init>(Ljava/lang/String;I)V
 Lcom/android/org/conscrypt/OpenSSLSocketImpl;-><init>(Ljava/lang/String;ILjava/net/InetAddress;I)V
@@ -109270,7 +102485,6 @@
 Lcom/android/org/conscrypt/OpenSSLSocketImpl;-><init>(Ljava/net/InetAddress;ILjava/net/InetAddress;I)V
 Lcom/android/org/conscrypt/OpenSSLSocketImpl;-><init>(Ljava/net/Socket;Ljava/lang/String;IZ)V
 Lcom/android/org/conscrypt/OpenSSLSocketImpl;->getFileDescriptor$()Ljava/io/FileDescriptor;
-Lcom/android/org/conscrypt/OpenSSLX509Certificate;
 Lcom/android/org/conscrypt/OpenSSLX509Certificate;-><init>(J)V
 Lcom/android/org/conscrypt/OpenSSLX509Certificate;-><init>(JLjava/util/Date;Ljava/util/Date;)V
 Lcom/android/org/conscrypt/OpenSSLX509Certificate;->alternativeNameArrayToList([[Ljava/lang/Object;)Ljava/util/Collection;
@@ -109287,7 +102501,6 @@
 Lcom/android/org/conscrypt/OpenSSLX509Certificate;->verifyInternal(Ljava/security/PublicKey;Ljava/lang/String;)V
 Lcom/android/org/conscrypt/OpenSSLX509Certificate;->verifyOpenSSL(Lcom/android/org/conscrypt/OpenSSLKey;)V
 Lcom/android/org/conscrypt/OpenSSLX509Certificate;->withDeletedExtension(Ljava/lang/String;)Lcom/android/org/conscrypt/OpenSSLX509Certificate;
-Lcom/android/org/conscrypt/OpenSSLX509CertificateFactory$Parser;
 Lcom/android/org/conscrypt/OpenSSLX509CertificateFactory$Parser;-><init>()V
 Lcom/android/org/conscrypt/OpenSSLX509CertificateFactory$Parser;->fromPkcs7DerInputStream(Ljava/io/InputStream;)Ljava/util/List;
 Lcom/android/org/conscrypt/OpenSSLX509CertificateFactory$Parser;->fromPkcs7PemInputStream(Ljava/io/InputStream;)Ljava/util/List;
@@ -109295,17 +102508,14 @@
 Lcom/android/org/conscrypt/OpenSSLX509CertificateFactory$Parser;->fromX509PemInputStream(Ljava/io/InputStream;)Ljava/lang/Object;
 Lcom/android/org/conscrypt/OpenSSLX509CertificateFactory$Parser;->generateItem(Ljava/io/InputStream;)Ljava/lang/Object;
 Lcom/android/org/conscrypt/OpenSSLX509CertificateFactory$Parser;->generateItems(Ljava/io/InputStream;)Ljava/util/Collection;
-Lcom/android/org/conscrypt/OpenSSLX509CertificateFactory$ParsingException;
 Lcom/android/org/conscrypt/OpenSSLX509CertificateFactory$ParsingException;-><init>(Ljava/lang/Exception;)V
 Lcom/android/org/conscrypt/OpenSSLX509CertificateFactory$ParsingException;-><init>(Ljava/lang/String;)V
 Lcom/android/org/conscrypt/OpenSSLX509CertificateFactory$ParsingException;-><init>(Ljava/lang/String;Ljava/lang/Exception;)V
-Lcom/android/org/conscrypt/OpenSSLX509CertificateFactory;
 Lcom/android/org/conscrypt/OpenSSLX509CertificateFactory;-><init>()V
 Lcom/android/org/conscrypt/OpenSSLX509CertificateFactory;->certificateParser:Lcom/android/org/conscrypt/OpenSSLX509CertificateFactory$Parser;
 Lcom/android/org/conscrypt/OpenSSLX509CertificateFactory;->crlParser:Lcom/android/org/conscrypt/OpenSSLX509CertificateFactory$Parser;
 Lcom/android/org/conscrypt/OpenSSLX509CertificateFactory;->PKCS7_MARKER:[B
 Lcom/android/org/conscrypt/OpenSSLX509CertificateFactory;->PUSHBACK_SIZE:I
-Lcom/android/org/conscrypt/OpenSSLX509CRL;
 Lcom/android/org/conscrypt/OpenSSLX509CRL;-><init>(J)V
 Lcom/android/org/conscrypt/OpenSSLX509CRL;->fromPkcs7DerInputStream(Ljava/io/InputStream;)Ljava/util/List;
 Lcom/android/org/conscrypt/OpenSSLX509CRL;->fromPkcs7PemInputStream(Ljava/io/InputStream;)Ljava/util/List;
@@ -109317,7 +102527,6 @@
 Lcom/android/org/conscrypt/OpenSSLX509CRL;->toDate(J)Ljava/util/Date;
 Lcom/android/org/conscrypt/OpenSSLX509CRL;->verifyInternal(Ljava/security/PublicKey;Ljava/lang/String;)V
 Lcom/android/org/conscrypt/OpenSSLX509CRL;->verifyOpenSSL(Lcom/android/org/conscrypt/OpenSSLKey;)V
-Lcom/android/org/conscrypt/PeerInfoProvider;
 Lcom/android/org/conscrypt/PeerInfoProvider;-><init>()V
 Lcom/android/org/conscrypt/PeerInfoProvider;->forHostAndPort(Ljava/lang/String;I)Lcom/android/org/conscrypt/PeerInfoProvider;
 Lcom/android/org/conscrypt/PeerInfoProvider;->getHostname()Ljava/lang/String;
@@ -109325,10 +102534,8 @@
 Lcom/android/org/conscrypt/PeerInfoProvider;->getPort()I
 Lcom/android/org/conscrypt/PeerInfoProvider;->nullProvider()Lcom/android/org/conscrypt/PeerInfoProvider;
 Lcom/android/org/conscrypt/PeerInfoProvider;->NULL_PEER_INFO_PROVIDER:Lcom/android/org/conscrypt/PeerInfoProvider;
-Lcom/android/org/conscrypt/SSLClientSessionCache;
 Lcom/android/org/conscrypt/SSLClientSessionCache;->getSessionData(Ljava/lang/String;I)[B
 Lcom/android/org/conscrypt/SSLClientSessionCache;->putSessionData(Ljavax/net/ssl/SSLSession;[B)V
-Lcom/android/org/conscrypt/TrustedCertificateIndex;
 Lcom/android/org/conscrypt/TrustedCertificateIndex;-><init>()V
 Lcom/android/org/conscrypt/TrustedCertificateIndex;-><init>(Ljava/util/Set;)V
 Lcom/android/org/conscrypt/TrustedCertificateIndex;->findAllByIssuerAndSignature(Ljava/security/cert/X509Certificate;)Ljava/util/Set;
@@ -109341,14 +102548,11 @@
 Lcom/android/org/conscrypt/TrustedCertificateIndex;->reset()V
 Lcom/android/org/conscrypt/TrustedCertificateIndex;->reset(Ljava/util/Set;)V
 Lcom/android/org/conscrypt/TrustedCertificateIndex;->subjectToTrustAnchors:Ljava/util/Map;
-Lcom/android/org/conscrypt/TrustedCertificateStore$CertSelector;
 Lcom/android/org/conscrypt/TrustedCertificateStore$CertSelector;->match(Ljava/security/cert/X509Certificate;)Z
-Lcom/android/org/conscrypt/TrustedCertificateStore$PreloadHolder;
 Lcom/android/org/conscrypt/TrustedCertificateStore$PreloadHolder;-><init>()V
 Lcom/android/org/conscrypt/TrustedCertificateStore$PreloadHolder;->defaultCaCertsAddedDir:Ljava/io/File;
 Lcom/android/org/conscrypt/TrustedCertificateStore$PreloadHolder;->defaultCaCertsDeletedDir:Ljava/io/File;
 Lcom/android/org/conscrypt/TrustedCertificateStore$PreloadHolder;->defaultCaCertsSystemDir:Ljava/io/File;
-Lcom/android/org/conscrypt/TrustedCertificateStore;
 Lcom/android/org/conscrypt/TrustedCertificateStore;-><init>(Ljava/io/File;Ljava/io/File;Ljava/io/File;)V
 Lcom/android/org/conscrypt/TrustedCertificateStore;->addAliases(Ljava/util/Set;Ljava/lang/String;Ljava/io/File;)V
 Lcom/android/org/conscrypt/TrustedCertificateStore;->addedDir:Ljava/io/File;
@@ -109388,7 +102592,6 @@
 Lcom/android/org/conscrypt/TrustedCertificateStore;->systemDir:Ljava/io/File;
 Lcom/android/org/conscrypt/TrustedCertificateStore;->userAliases()Ljava/util/Set;
 Lcom/android/org/conscrypt/TrustedCertificateStore;->writeCertificate(Ljava/io/File;Ljava/security/cert/X509Certificate;)V
-Lcom/android/org/conscrypt/TrustManagerImpl$ExtendedKeyUsagePKIXCertPathChecker;
 Lcom/android/org/conscrypt/TrustManagerImpl$ExtendedKeyUsagePKIXCertPathChecker;-><init>(ZLjava/security/cert/X509Certificate;)V
 Lcom/android/org/conscrypt/TrustManagerImpl$ExtendedKeyUsagePKIXCertPathChecker;->clientAuth:Z
 Lcom/android/org/conscrypt/TrustManagerImpl$ExtendedKeyUsagePKIXCertPathChecker;->EKU_anyExtendedKeyUsage:Ljava/lang/String;
@@ -109399,12 +102602,10 @@
 Lcom/android/org/conscrypt/TrustManagerImpl$ExtendedKeyUsagePKIXCertPathChecker;->EKU_serverAuth:Ljava/lang/String;
 Lcom/android/org/conscrypt/TrustManagerImpl$ExtendedKeyUsagePKIXCertPathChecker;->leaf:Ljava/security/cert/X509Certificate;
 Lcom/android/org/conscrypt/TrustManagerImpl$ExtendedKeyUsagePKIXCertPathChecker;->SUPPORTED_EXTENSIONS:Ljava/util/Set;
-Lcom/android/org/conscrypt/TrustManagerImpl$TrustAnchorComparator;
 Lcom/android/org/conscrypt/TrustManagerImpl$TrustAnchorComparator;-><init>()V
 Lcom/android/org/conscrypt/TrustManagerImpl$TrustAnchorComparator;->CERT_COMPARATOR:Lcom/android/org/conscrypt/CertificatePriorityComparator;
 Lcom/android/org/conscrypt/TrustManagerImpl$TrustAnchorComparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 Lcom/android/org/conscrypt/TrustManagerImpl$TrustAnchorComparator;->compare(Ljava/security/cert/TrustAnchor;Ljava/security/cert/TrustAnchor;)I
-Lcom/android/org/conscrypt/TrustManagerImpl;
 Lcom/android/org/conscrypt/TrustManagerImpl;-><init>(Ljava/security/KeyStore;Lcom/android/org/conscrypt/CertPinManager;)V
 Lcom/android/org/conscrypt/TrustManagerImpl;-><init>(Ljava/security/KeyStore;Lcom/android/org/conscrypt/CertPinManager;Lcom/android/org/conscrypt/TrustedCertificateStore;)V
 Lcom/android/org/conscrypt/TrustManagerImpl;-><init>(Ljava/security/KeyStore;Lcom/android/org/conscrypt/CertPinManager;Lcom/android/org/conscrypt/TrustedCertificateStore;Lcom/android/org/conscrypt/CertBlacklist;)V
@@ -109447,13 +102648,10 @@
 Lcom/android/org/conscrypt/TrustManagerImpl;->TRUST_ANCHOR_COMPARATOR:Lcom/android/org/conscrypt/TrustManagerImpl$TrustAnchorComparator;
 Lcom/android/org/conscrypt/TrustManagerImpl;->validator:Ljava/security/cert/CertPathValidator;
 Lcom/android/org/conscrypt/TrustManagerImpl;->verifyChain(Ljava/util/List;Ljava/util/List;Ljava/lang/String;Z[B[B)Ljava/util/List;
-Ldalvik/annotation/KnownFailure;
 Ldalvik/bytecode/OpcodeInfo;-><init>()V
 Ldalvik/bytecode/OpcodeInfo;->isInvoke(I)Z
-Ldalvik/system/AllocationLimitError;
 Ldalvik/system/AllocationLimitError;-><init>()V
 Ldalvik/system/AllocationLimitError;-><init>(Ljava/lang/String;)V
-Ldalvik/system/AnnotatedStackTraceElement;
 Ldalvik/system/AnnotatedStackTraceElement;-><init>()V
 Ldalvik/system/AnnotatedStackTraceElement;->blockedOn:Ljava/lang/Object;
 Ldalvik/system/AnnotatedStackTraceElement;->getBlockedOn()Ljava/lang/Object;
@@ -109461,7 +102659,6 @@
 Ldalvik/system/AnnotatedStackTraceElement;->getStackTraceElement()Ljava/lang/StackTraceElement;
 Ldalvik/system/AnnotatedStackTraceElement;->heldLocks:[Ljava/lang/Object;
 Ldalvik/system/AnnotatedStackTraceElement;->stackTraceElement:Ljava/lang/StackTraceElement;
-Ldalvik/system/BaseDexClassLoader$Reporter;
 Ldalvik/system/BaseDexClassLoader$Reporter;->report(Ljava/util/List;Ljava/util/List;)V
 Ldalvik/system/BaseDexClassLoader;-><init>([Ljava/nio/ByteBuffer;Ljava/lang/ClassLoader;)V
 Ldalvik/system/BaseDexClassLoader;->addNativePath(Ljava/util/Collection;)V
@@ -109469,15 +102666,12 @@
 Ldalvik/system/BaseDexClassLoader;->reportClassLoaderChain()V
 Ldalvik/system/BaseDexClassLoader;->reporter:Ldalvik/system/BaseDexClassLoader$Reporter;
 Ldalvik/system/BaseDexClassLoader;->setReporter(Ldalvik/system/BaseDexClassLoader$Reporter;)V
-Ldalvik/system/BlockGuard$BlockGuardPolicyException;
 Ldalvik/system/BlockGuard$BlockGuardPolicyException;-><init>(II)V
 Ldalvik/system/BlockGuard$BlockGuardPolicyException;->getPolicy()I
 Ldalvik/system/BlockGuard$BlockGuardPolicyException;->getPolicyViolation()I
-Ldalvik/system/BlockGuard$Policy;
 Ldalvik/system/BlockGuard$Policy;->getPolicyMask()I
 Ldalvik/system/BlockGuard$Policy;->onUnbufferedIO()V
 Ldalvik/system/BlockGuard$Policy;->onWriteToDisk()V
-Ldalvik/system/BlockGuard;
 Ldalvik/system/BlockGuard;-><init>()V
 Ldalvik/system/BlockGuard;->DISALLOW_DISK_READ:I
 Ldalvik/system/BlockGuard;->DISALLOW_DISK_WRITE:I
@@ -109486,19 +102680,14 @@
 Ldalvik/system/BlockGuard;->PENALTY_DEATH:I
 Ldalvik/system/BlockGuard;->PENALTY_DIALOG:I
 Ldalvik/system/BlockGuard;->PENALTY_LOG:I
-Ldalvik/system/ClassExt;
 Ldalvik/system/ClassExt;-><init>()V
 Ldalvik/system/ClassExt;->obsoleteDexCaches:[Ljava/lang/Object;
 Ldalvik/system/ClassExt;->obsoleteMethods:Ljava/lang/Object;
 Ldalvik/system/ClassExt;->originalDexFile:Ljava/lang/Object;
 Ldalvik/system/ClassExt;->verifyError:Ljava/lang/Object;
-Ldalvik/system/CloseGuard$DefaultReporter;
 Ldalvik/system/CloseGuard$DefaultReporter;->report(Ljava/lang/String;Ljava/lang/Throwable;)V
-Ldalvik/system/CloseGuard$Reporter;
-Ldalvik/system/CloseGuard$Tracker;
 Ldalvik/system/CloseGuard$Tracker;->close(Ljava/lang/Throwable;)V
 Ldalvik/system/CloseGuard$Tracker;->open(Ljava/lang/Throwable;)V
-Ldalvik/system/CloseGuard;
 Ldalvik/system/CloseGuard;->closerNameOrAllocationInfo:Ljava/lang/Object;
 Ldalvik/system/CloseGuard;->currentTracker:Ldalvik/system/CloseGuard$Tracker;
 Ldalvik/system/CloseGuard;->getReporter()Ldalvik/system/CloseGuard$Reporter;
@@ -109507,15 +102696,11 @@
 Ldalvik/system/CloseGuard;->reporter:Ldalvik/system/CloseGuard$Reporter;
 Ldalvik/system/CloseGuard;->setTracker(Ldalvik/system/CloseGuard$Tracker;)V
 Ldalvik/system/CloseGuard;->stackAndTrackingEnabled:Z
-Ldalvik/system/DalvikLogging;
 Ldalvik/system/DalvikLogging;-><init>()V
 Ldalvik/system/DalvikLogging;->loggerNameToTag(Ljava/lang/String;)Ljava/lang/String;
-Ldalvik/system/DalvikLogHandler;
 Ldalvik/system/DalvikLogHandler;->publish(Ljava/util/logging/Logger;Ljava/lang/String;Ljava/util/logging/Level;Ljava/lang/String;)V
-Ldalvik/system/DexFile$DFEnum;
 Ldalvik/system/DexFile$DFEnum;-><init>(Ldalvik/system/DexFile;)V
 Ldalvik/system/DexFile$DFEnum;->mIndex:I
-Ldalvik/system/DexFile$OptimizationInfo;
 Ldalvik/system/DexFile$OptimizationInfo;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Ldalvik/system/DexFile$OptimizationInfo;->getReason()Ljava/lang/String;
 Ldalvik/system/DexFile$OptimizationInfo;->getStatus()Ljava/lang/String;
@@ -109551,7 +102736,6 @@
 Ldalvik/system/DexFile;->openInMemoryDexFile(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
 Ldalvik/system/DexFile;->setTrusted()V
 Ldalvik/system/DexFile;->setTrusted(Ljava/lang/Object;)V
-Ldalvik/system/DexPathList$Element;
 Ldalvik/system/DexPathList$Element;-><init>(Ldalvik/system/DexFile;)V
 Ldalvik/system/DexPathList$Element;-><init>(Ljava/io/File;)V
 Ldalvik/system/DexPathList$Element;->findClass(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/util/List;)Ljava/lang/Class;
@@ -109560,14 +102744,12 @@
 Ldalvik/system/DexPathList$Element;->initialized:Z
 Ldalvik/system/DexPathList$Element;->maybeInit()V
 Ldalvik/system/DexPathList$Element;->urlHandler:Llibcore/io/ClassPathURLStreamHandler;
-Ldalvik/system/DexPathList$NativeLibraryElement;
 Ldalvik/system/DexPathList$NativeLibraryElement;-><init>(Ljava/io/File;Ljava/lang/String;)V
 Ldalvik/system/DexPathList$NativeLibraryElement;->findNativeLibrary(Ljava/lang/String;)Ljava/lang/String;
 Ldalvik/system/DexPathList$NativeLibraryElement;->initialized:Z
 Ldalvik/system/DexPathList$NativeLibraryElement;->maybeInit()V
 Ldalvik/system/DexPathList$NativeLibraryElement;->urlHandler:Llibcore/io/ClassPathURLStreamHandler;
 Ldalvik/system/DexPathList$NativeLibraryElement;->zipDir:Ljava/lang/String;
-Ldalvik/system/DexPathList;
 Ldalvik/system/DexPathList;-><init>(Ljava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Z)V
 Ldalvik/system/DexPathList;-><init>(Ljava/lang/ClassLoader;[Ljava/nio/ByteBuffer;)V
 Ldalvik/system/DexPathList;->addDexPath(Ljava/lang/String;Ljava/io/File;Z)V
@@ -109582,7 +102764,6 @@
 Ldalvik/system/DexPathList;->optimizedPathFor(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;
 Ldalvik/system/DexPathList;->splitDexPath(Ljava/lang/String;)Ljava/util/List;
 Ldalvik/system/DexPathList;->zipSeparator:Ljava/lang/String;
-Ldalvik/system/EmulatedStackFrame$Range;
 Ldalvik/system/EmulatedStackFrame$Range;-><init>(IIII)V
 Ldalvik/system/EmulatedStackFrame$Range;->all(Ljava/lang/invoke/MethodType;)Ldalvik/system/EmulatedStackFrame$Range;
 Ldalvik/system/EmulatedStackFrame$Range;->numBytes:I
@@ -109590,7 +102771,6 @@
 Ldalvik/system/EmulatedStackFrame$Range;->of(Ljava/lang/invoke/MethodType;II)Ldalvik/system/EmulatedStackFrame$Range;
 Ldalvik/system/EmulatedStackFrame$Range;->referencesStart:I
 Ldalvik/system/EmulatedStackFrame$Range;->stackFrameStart:I
-Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;
 Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;-><init>()V
 Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->argumentIdx:I
 Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->attach(Ldalvik/system/EmulatedStackFrame;)Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;
@@ -109603,7 +102783,6 @@
 Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->numArgs:I
 Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->referencesOffset:I
 Ldalvik/system/EmulatedStackFrame$StackFrameAccessor;->RETURN_VALUE_IDX:I
-Ldalvik/system/EmulatedStackFrame$StackFrameReader;
 Ldalvik/system/EmulatedStackFrame$StackFrameReader;-><init>()V
 Ldalvik/system/EmulatedStackFrame$StackFrameReader;->nextBoolean()Z
 Ldalvik/system/EmulatedStackFrame$StackFrameReader;->nextByte()B
@@ -109614,7 +102793,6 @@
 Ldalvik/system/EmulatedStackFrame$StackFrameReader;->nextLong()J
 Ldalvik/system/EmulatedStackFrame$StackFrameReader;->nextReference(Ljava/lang/Class;)Ljava/lang/Object;
 Ldalvik/system/EmulatedStackFrame$StackFrameReader;->nextShort()S
-Ldalvik/system/EmulatedStackFrame$StackFrameWriter;
 Ldalvik/system/EmulatedStackFrame$StackFrameWriter;-><init>()V
 Ldalvik/system/EmulatedStackFrame$StackFrameWriter;->putNextBoolean(Z)V
 Ldalvik/system/EmulatedStackFrame$StackFrameWriter;->putNextByte(B)V
@@ -109625,7 +102803,6 @@
 Ldalvik/system/EmulatedStackFrame$StackFrameWriter;->putNextLong(J)V
 Ldalvik/system/EmulatedStackFrame$StackFrameWriter;->putNextReference(Ljava/lang/Object;Ljava/lang/Class;)V
 Ldalvik/system/EmulatedStackFrame$StackFrameWriter;->putNextShort(S)V
-Ldalvik/system/EmulatedStackFrame;
 Ldalvik/system/EmulatedStackFrame;-><init>(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;[B)V
 Ldalvik/system/EmulatedStackFrame;->callsiteType:Ljava/lang/invoke/MethodType;
 Ldalvik/system/EmulatedStackFrame;->copyRangeTo(Ldalvik/system/EmulatedStackFrame;Ldalvik/system/EmulatedStackFrame$Range;II)V
@@ -109641,10 +102818,8 @@
 Ldalvik/system/EmulatedStackFrame;->setReturnValueTo(Ljava/lang/Object;)V
 Ldalvik/system/EmulatedStackFrame;->stackFrame:[B
 Ldalvik/system/EmulatedStackFrame;->type:Ljava/lang/invoke/MethodType;
-Ldalvik/system/PotentialDeadlockError;
 Ldalvik/system/PotentialDeadlockError;-><init>()V
 Ldalvik/system/PotentialDeadlockError;-><init>(Ljava/lang/String;)V
-Ldalvik/system/SocketTagger;
 Ldalvik/system/SocketTagger;-><init>()V
 Ldalvik/system/SocketTagger;->set(Ldalvik/system/SocketTagger;)V
 Ldalvik/system/SocketTagger;->tag(Ljava/io/FileDescriptor;)V
@@ -109652,11 +102827,9 @@
 Ldalvik/system/SocketTagger;->tagger:Ldalvik/system/SocketTagger;
 Ldalvik/system/SocketTagger;->untag(Ljava/io/FileDescriptor;)V
 Ldalvik/system/SocketTagger;->untag(Ljava/net/DatagramSocket;)V
-Ldalvik/system/TemporaryDirectory;
 Ldalvik/system/TemporaryDirectory;-><init>()V
 Ldalvik/system/TemporaryDirectory;->setUpDirectory(Ljava/io/File;)V
 Ldalvik/system/TemporaryDirectory;->setUpDirectory(Ljava/lang/String;)V
-Ldalvik/system/VMDebug;
 Ldalvik/system/VMDebug;-><init>()V
 Ldalvik/system/VMDebug;->attachAgent(Ljava/lang/String;)V
 Ldalvik/system/VMDebug;->attachAgent(Ljava/lang/String;Ljava/lang/ClassLoader;)V
@@ -109743,7 +102916,6 @@
 Ldalvik/system/VMDebug;->stopMethodTracing()V
 Ldalvik/system/VMDebug;->threadCpuTimeNanos()J
 Ldalvik/system/VMDebug;->TRACE_COUNT_ALLOCS:I
-Ldalvik/system/VMRuntime;
 Ldalvik/system/VMRuntime;-><init>()V
 Ldalvik/system/VMRuntime;->ABI_TO_INSTRUCTION_SET_MAP:Ljava/util/Map;
 Ldalvik/system/VMRuntime;->bootClassPath()Ljava/lang/String;
@@ -109785,12 +102957,10 @@
 Ldalvik/system/VMRuntime;->trimHeap()V
 Ldalvik/system/VMRuntime;->updateProcessState(I)V
 Ldalvik/system/VMRuntime;->vmVersion()Ljava/lang/String;
-Ldalvik/system/VMStack;
 Ldalvik/system/VMStack;-><init>()V
 Ldalvik/system/VMStack;->getAnnotatedThreadStackTrace(Ljava/lang/Thread;)[Ldalvik/system/AnnotatedStackTraceElement;
 Ldalvik/system/VMStack;->getClosestUserClassLoader()Ljava/lang/ClassLoader;
 Ldalvik/system/VMStack;->getStackClass1()Ljava/lang/Class;
-Ldalvik/system/ZygoteHooks;
 Ldalvik/system/ZygoteHooks;-><init>()V
 Ldalvik/system/ZygoteHooks;->nativePostForkChild(JIZZLjava/lang/String;)V
 Ldalvik/system/ZygoteHooks;->nativePreFork()J
@@ -109801,7 +102971,6 @@
 Ldalvik/system/ZygoteHooks;->stopZygoteNoThreadCreation()V
 Ldalvik/system/ZygoteHooks;->token:J
 Ldalvik/system/ZygoteHooks;->waitUntilAllThreadsStopped()V
-Ljava/awt/font/NumericShaper$Range;-><init>(III)V
 Ljava/awt/font/NumericShaper$Range;->base:I
 Ljava/awt/font/NumericShaper$Range;->end:I
 Ljava/awt/font/NumericShaper$Range;->getDigitBase()I
@@ -109859,7 +103028,6 @@
 Ljava/awt/font/NumericShaper;->THAI_KEY:I
 Ljava/awt/font/NumericShaper;->TIBETAN_KEY:I
 Ljava/awt/font/TextAttribute;->instanceMap:Ljava/util/Map;
-Ljava/beans/ChangeListenerMap;
 Ljava/beans/ChangeListenerMap;-><init>()V
 Ljava/beans/ChangeListenerMap;->add(Ljava/lang/String;Ljava/util/EventListener;)V
 Ljava/beans/ChangeListenerMap;->extract(Ljava/util/EventListener;)Ljava/util/EventListener;
@@ -109881,7 +103049,6 @@
 Ljava/beans/PropertyChangeEvent;->propagationId:Ljava/lang/Object;
 Ljava/beans/PropertyChangeEvent;->propertyName:Ljava/lang/String;
 Ljava/beans/PropertyChangeListenerProxy;->propertyName:Ljava/lang/String;
-Ljava/beans/PropertyChangeSupport$PropertyChangeListenerMap;
 Ljava/beans/PropertyChangeSupport$PropertyChangeListenerMap;-><init>()V
 Ljava/beans/PropertyChangeSupport$PropertyChangeListenerMap;->EMPTY:[Ljava/beans/PropertyChangeListener;
 Ljava/beans/PropertyChangeSupport$PropertyChangeListenerMap;->extract(Ljava/beans/PropertyChangeListener;)Ljava/beans/PropertyChangeListener;
@@ -109928,8 +103095,6 @@
 Ljava/io/ByteArrayOutputStream;->hugeCapacity(I)I
 Ljava/io/ByteArrayOutputStream;->MAX_ARRAY_SIZE:I
 Ljava/io/CharArrayReader;->ensureOpen()V
-Ljava/io/Console$LineReader;
-Ljava/io/Console$LineReader;-><init>(Ljava/io/Reader;)V
 Ljava/io/Console$LineReader;->cb:[C
 Ljava/io/Console$LineReader;->in:Ljava/io/Reader;
 Ljava/io/Console$LineReader;->leftoverLF:Z
@@ -109960,13 +103125,10 @@
 Ljava/io/DataOutputStream;->incCount(I)V
 Ljava/io/DataOutputStream;->writeBuffer:[B
 Ljava/io/DataOutputStream;->writeUTF(Ljava/lang/String;Ljava/io/DataOutput;)I
-Ljava/io/File$PathStatus;
-Ljava/io/File$PathStatus;-><init>()V
 Ljava/io/File$PathStatus;->CHECKED:Ljava/io/File$PathStatus;
 Ljava/io/File$PathStatus;->INVALID:Ljava/io/File$PathStatus;
 Ljava/io/File$PathStatus;->valueOf(Ljava/lang/String;)Ljava/io/File$PathStatus;
 Ljava/io/File$PathStatus;->values()[Ljava/io/File$PathStatus;
-Ljava/io/File$TempDirectory;
 Ljava/io/File$TempDirectory;-><init>()V
 Ljava/io/File$TempDirectory;->generateFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
 Ljava/io/File;-><init>(Ljava/lang/String;I)V
@@ -109980,7 +103142,6 @@
 Ljava/io/FileDescriptor;-><init>(I)V
 Ljava/io/FileDescriptor;->dupFd(I)Ljava/io/FileDescriptor;
 Ljava/io/FileDescriptor;->isSocket(I)Z
-Ljava/io/FileInputStream$UseManualSkipException;
 Ljava/io/FileInputStream$UseManualSkipException;-><init>()V
 Ljava/io/FileInputStream;-><init>(Ljava/io/FileDescriptor;Z)V
 Ljava/io/FileInputStream;->available0()I
@@ -110005,7 +103166,6 @@
 Ljava/io/FileOutputStream;->open0(Ljava/lang/String;Z)V
 Ljava/io/FileOutputStream;->path:Ljava/lang/String;
 Ljava/io/FileOutputStream;->tracker:Llibcore/io/IoTracker;
-Ljava/io/FileSystem;
 Ljava/io/FileSystem;-><init>()V
 Ljava/io/FileSystem;->ACCESS_EXECUTE:I
 Ljava/io/FileSystem;->ACCESS_OK:I
@@ -110035,8 +103195,6 @@
 Ljava/io/LineNumberReader;->maxSkipBufferSize:I
 Ljava/io/LineNumberReader;->skipBuffer:[C
 Ljava/io/LineNumberReader;->skipLF:Z
-Ljava/io/ObjectInputStream$BlockDataInputStream;
-Ljava/io/ObjectInputStream$BlockDataInputStream;-><init>(Ljava/io/InputStream;)V
 Ljava/io/ObjectInputStream$BlockDataInputStream;->blkmode:Z
 Ljava/io/ObjectInputStream$BlockDataInputStream;->buf:[B
 Ljava/io/ObjectInputStream$BlockDataInputStream;->cbuf:[C
@@ -110071,26 +103229,21 @@
 Ljava/io/ObjectInputStream$BlockDataInputStream;->setBlockDataMode(Z)Z
 Ljava/io/ObjectInputStream$BlockDataInputStream;->skipBlockData()V
 Ljava/io/ObjectInputStream$BlockDataInputStream;->unread:I
-Ljava/io/ObjectInputStream$Caches;
 Ljava/io/ObjectInputStream$Caches;-><init>()V
 Ljava/io/ObjectInputStream$Caches;->subclassAudits:Ljava/util/concurrent/ConcurrentMap;
 Ljava/io/ObjectInputStream$Caches;->subclassAuditsQueue:Ljava/lang/ref/ReferenceQueue;
-Ljava/io/ObjectInputStream$GetFieldImpl;
-Ljava/io/ObjectInputStream$GetFieldImpl;-><init>(Ljava/io/ObjectStreamClass;)V
 Ljava/io/ObjectInputStream$GetFieldImpl;->desc:Ljava/io/ObjectStreamClass;
 Ljava/io/ObjectInputStream$GetFieldImpl;->getFieldOffset(Ljava/lang/String;Ljava/lang/Class;)I
 Ljava/io/ObjectInputStream$GetFieldImpl;->objHandles:[I
 Ljava/io/ObjectInputStream$GetFieldImpl;->objVals:[Ljava/lang/Object;
 Ljava/io/ObjectInputStream$GetFieldImpl;->primVals:[B
 Ljava/io/ObjectInputStream$GetFieldImpl;->readFields()V
-Ljava/io/ObjectInputStream$HandleTable$HandleList;
 Ljava/io/ObjectInputStream$HandleTable$HandleList;-><init>()V
 Ljava/io/ObjectInputStream$HandleTable$HandleList;->add(I)V
 Ljava/io/ObjectInputStream$HandleTable$HandleList;->get(I)I
 Ljava/io/ObjectInputStream$HandleTable$HandleList;->list:[I
 Ljava/io/ObjectInputStream$HandleTable$HandleList;->size()I
 Ljava/io/ObjectInputStream$HandleTable$HandleList;->size:I
-Ljava/io/ObjectInputStream$HandleTable;
 Ljava/io/ObjectInputStream$HandleTable;-><init>(I)V
 Ljava/io/ObjectInputStream$HandleTable;->assign(Ljava/lang/Object;)I
 Ljava/io/ObjectInputStream$HandleTable;->clear()V
@@ -110110,19 +103263,16 @@
 Ljava/io/ObjectInputStream$HandleTable;->STATUS_EXCEPTION:B
 Ljava/io/ObjectInputStream$HandleTable;->STATUS_OK:B
 Ljava/io/ObjectInputStream$HandleTable;->STATUS_UNKNOWN:B
-Ljava/io/ObjectInputStream$PeekInputStream;
 Ljava/io/ObjectInputStream$PeekInputStream;-><init>(Ljava/io/InputStream;)V
 Ljava/io/ObjectInputStream$PeekInputStream;->in:Ljava/io/InputStream;
 Ljava/io/ObjectInputStream$PeekInputStream;->peek()I
 Ljava/io/ObjectInputStream$PeekInputStream;->peekb:I
 Ljava/io/ObjectInputStream$PeekInputStream;->readFully([BII)V
-Ljava/io/ObjectInputStream$ValidationList$Callback;
 Ljava/io/ObjectInputStream$ValidationList$Callback;-><init>(Ljava/io/ObjectInputValidation;ILjava/io/ObjectInputStream$ValidationList$Callback;Ljava/security/AccessControlContext;)V
 Ljava/io/ObjectInputStream$ValidationList$Callback;->acc:Ljava/security/AccessControlContext;
 Ljava/io/ObjectInputStream$ValidationList$Callback;->next:Ljava/io/ObjectInputStream$ValidationList$Callback;
 Ljava/io/ObjectInputStream$ValidationList$Callback;->obj:Ljava/io/ObjectInputValidation;
 Ljava/io/ObjectInputStream$ValidationList$Callback;->priority:I
-Ljava/io/ObjectInputStream$ValidationList;
 Ljava/io/ObjectInputStream$ValidationList;-><init>()V
 Ljava/io/ObjectInputStream$ValidationList;->clear()V
 Ljava/io/ObjectInputStream$ValidationList;->doCallbacks()V
@@ -110166,7 +103316,6 @@
 Ljava/io/ObjectInputStream;->unsharedMarker:Ljava/lang/Object;
 Ljava/io/ObjectInputStream;->verifySubclass()V
 Ljava/io/ObjectInputStream;->vlist:Ljava/io/ObjectInputStream$ValidationList;
-Ljava/io/ObjectOutputStream$BlockDataOutputStream;
 Ljava/io/ObjectOutputStream$BlockDataOutputStream;-><init>(Ljava/io/OutputStream;)V
 Ljava/io/ObjectOutputStream$BlockDataOutputStream;->blkmode:Z
 Ljava/io/ObjectOutputStream$BlockDataOutputStream;->buf:[B
@@ -110197,17 +103346,14 @@
 Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeShorts([SII)V
 Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeUTF(Ljava/lang/String;J)V
 Ljava/io/ObjectOutputStream$BlockDataOutputStream;->writeUTFBody(Ljava/lang/String;)V
-Ljava/io/ObjectOutputStream$Caches;
 Ljava/io/ObjectOutputStream$Caches;-><init>()V
 Ljava/io/ObjectOutputStream$Caches;->subclassAudits:Ljava/util/concurrent/ConcurrentMap;
 Ljava/io/ObjectOutputStream$Caches;->subclassAuditsQueue:Ljava/lang/ref/ReferenceQueue;
-Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
 Ljava/io/ObjectOutputStream$DebugTraceInfoStack;-><init>()V
 Ljava/io/ObjectOutputStream$DebugTraceInfoStack;->clear()V
 Ljava/io/ObjectOutputStream$DebugTraceInfoStack;->pop()V
 Ljava/io/ObjectOutputStream$DebugTraceInfoStack;->push(Ljava/lang/String;)V
 Ljava/io/ObjectOutputStream$DebugTraceInfoStack;->stack:Ljava/util/List;
-Ljava/io/ObjectOutputStream$HandleTable;
 Ljava/io/ObjectOutputStream$HandleTable;-><init>(IF)V
 Ljava/io/ObjectOutputStream$HandleTable;->assign(Ljava/lang/Object;)I
 Ljava/io/ObjectOutputStream$HandleTable;->clear()V
@@ -110223,14 +103369,11 @@
 Ljava/io/ObjectOutputStream$HandleTable;->size:I
 Ljava/io/ObjectOutputStream$HandleTable;->spine:[I
 Ljava/io/ObjectOutputStream$HandleTable;->threshold:I
-Ljava/io/ObjectOutputStream$PutFieldImpl;
-Ljava/io/ObjectOutputStream$PutFieldImpl;-><init>(Ljava/io/ObjectStreamClass;)V
 Ljava/io/ObjectOutputStream$PutFieldImpl;->desc:Ljava/io/ObjectStreamClass;
 Ljava/io/ObjectOutputStream$PutFieldImpl;->getFieldOffset(Ljava/lang/String;Ljava/lang/Class;)I
 Ljava/io/ObjectOutputStream$PutFieldImpl;->objVals:[Ljava/lang/Object;
 Ljava/io/ObjectOutputStream$PutFieldImpl;->primVals:[B
 Ljava/io/ObjectOutputStream$PutFieldImpl;->writeFields()V
-Ljava/io/ObjectOutputStream$ReplaceTable;
 Ljava/io/ObjectOutputStream$ReplaceTable;-><init>(IF)V
 Ljava/io/ObjectOutputStream$ReplaceTable;->assign(Ljava/lang/Object;Ljava/lang/Object;)V
 Ljava/io/ObjectOutputStream$ReplaceTable;->clear()V
@@ -110273,17 +103416,14 @@
 Ljava/io/ObjectOutputStream;->writeSerialData(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
 Ljava/io/ObjectOutputStream;->writeString(Ljava/lang/String;Z)V
 Ljava/io/ObjectOutputStream;->writeTypeString(Ljava/lang/String;)V
-Ljava/io/ObjectStreamClass$Caches;
 Ljava/io/ObjectStreamClass$Caches;-><init>()V
 Ljava/io/ObjectStreamClass$Caches;->localDescs:Ljava/util/concurrent/ConcurrentMap;
 Ljava/io/ObjectStreamClass$Caches;->localDescsQueue:Ljava/lang/ref/ReferenceQueue;
 Ljava/io/ObjectStreamClass$Caches;->reflectors:Ljava/util/concurrent/ConcurrentMap;
 Ljava/io/ObjectStreamClass$Caches;->reflectorsQueue:Ljava/lang/ref/ReferenceQueue;
-Ljava/io/ObjectStreamClass$ClassDataSlot;
 Ljava/io/ObjectStreamClass$ClassDataSlot;-><init>(Ljava/io/ObjectStreamClass;Z)V
 Ljava/io/ObjectStreamClass$ClassDataSlot;->desc:Ljava/io/ObjectStreamClass;
 Ljava/io/ObjectStreamClass$ClassDataSlot;->hasData:Z
-Ljava/io/ObjectStreamClass$EntryFuture;
 Ljava/io/ObjectStreamClass$EntryFuture;-><init>()V
 Ljava/io/ObjectStreamClass$EntryFuture;->entry:Ljava/lang/Object;
 Ljava/io/ObjectStreamClass$EntryFuture;->get()Ljava/lang/Object;
@@ -110291,12 +103431,10 @@
 Ljava/io/ObjectStreamClass$EntryFuture;->owner:Ljava/lang/Thread;
 Ljava/io/ObjectStreamClass$EntryFuture;->set(Ljava/lang/Object;)Z
 Ljava/io/ObjectStreamClass$EntryFuture;->unset:Ljava/lang/Object;
-Ljava/io/ObjectStreamClass$ExceptionInfo;
 Ljava/io/ObjectStreamClass$ExceptionInfo;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Ljava/io/ObjectStreamClass$ExceptionInfo;->className:Ljava/lang/String;
 Ljava/io/ObjectStreamClass$ExceptionInfo;->message:Ljava/lang/String;
 Ljava/io/ObjectStreamClass$ExceptionInfo;->newInvalidClassException()Ljava/io/InvalidClassException;
-Ljava/io/ObjectStreamClass$FieldReflector;
 Ljava/io/ObjectStreamClass$FieldReflector;-><init>([Ljava/io/ObjectStreamField;)V
 Ljava/io/ObjectStreamClass$FieldReflector;->fields:[Ljava/io/ObjectStreamField;
 Ljava/io/ObjectStreamClass$FieldReflector;->getFields()[Ljava/io/ObjectStreamField;
@@ -110311,19 +103449,16 @@
 Ljava/io/ObjectStreamClass$FieldReflector;->types:[Ljava/lang/Class;
 Ljava/io/ObjectStreamClass$FieldReflector;->unsafe:Lsun/misc/Unsafe;
 Ljava/io/ObjectStreamClass$FieldReflector;->writeKeys:[J
-Ljava/io/ObjectStreamClass$FieldReflectorKey;
 Ljava/io/ObjectStreamClass$FieldReflectorKey;-><init>(Ljava/lang/Class;[Ljava/io/ObjectStreamField;Ljava/lang/ref/ReferenceQueue;)V
 Ljava/io/ObjectStreamClass$FieldReflectorKey;->hash:I
 Ljava/io/ObjectStreamClass$FieldReflectorKey;->nullClass:Z
 Ljava/io/ObjectStreamClass$FieldReflectorKey;->sigs:Ljava/lang/String;
-Ljava/io/ObjectStreamClass$MemberSignature;
 Ljava/io/ObjectStreamClass$MemberSignature;-><init>(Ljava/lang/reflect/Constructor;)V
 Ljava/io/ObjectStreamClass$MemberSignature;-><init>(Ljava/lang/reflect/Field;)V
 Ljava/io/ObjectStreamClass$MemberSignature;-><init>(Ljava/lang/reflect/Method;)V
 Ljava/io/ObjectStreamClass$MemberSignature;->member:Ljava/lang/reflect/Member;
 Ljava/io/ObjectStreamClass$MemberSignature;->name:Ljava/lang/String;
 Ljava/io/ObjectStreamClass$MemberSignature;->signature:Ljava/lang/String;
-Ljava/io/ObjectStreamClass$WeakClassKey;
 Ljava/io/ObjectStreamClass$WeakClassKey;-><init>(Ljava/lang/Class;Ljava/lang/ref/ReferenceQueue;)V
 Ljava/io/ObjectStreamClass$WeakClassKey;->hash:I
 Ljava/io/ObjectStreamClass;-><init>()V
@@ -110499,7 +103634,6 @@
 Ljava/io/SequenceInputStream;->e:Ljava/util/Enumeration;
 Ljava/io/SequenceInputStream;->in:Ljava/io/InputStream;
 Ljava/io/SequenceInputStream;->nextStream()V
-Ljava/io/SerialCallbackContext;
 Ljava/io/SerialCallbackContext;-><init>(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
 Ljava/io/SerialCallbackContext;->check()V
 Ljava/io/SerialCallbackContext;->checkAndSetUsed()V
@@ -110538,7 +103672,6 @@
 Ljava/io/StringWriter;->buf:Ljava/lang/StringBuffer;
 Ljava/io/Writer;->writeBuffer:[C
 Ljava/io/Writer;->WRITE_BUFFER_SIZE:I
-Ljava/lang/AbstractStringBuilder;
 Ljava/lang/AbstractStringBuilder;-><init>()V
 Ljava/lang/AbstractStringBuilder;-><init>(I)V
 Ljava/lang/AbstractStringBuilder;->append(D)Ljava/lang/AbstractStringBuilder;
@@ -110593,36 +103726,29 @@
 Ljava/lang/AbstractStringBuilder;->substring(I)Ljava/lang/String;
 Ljava/lang/AbstractStringBuilder;->substring(II)Ljava/lang/String;
 Ljava/lang/AbstractStringBuilder;->trimToSize()V
-Ljava/lang/AndroidHardcodedSystemProperties;
 Ljava/lang/AndroidHardcodedSystemProperties;-><init>()V
 Ljava/lang/AndroidHardcodedSystemProperties;->JAVA_VERSION:Ljava/lang/String;
 Ljava/lang/AndroidHardcodedSystemProperties;->STATIC_PROPERTIES:[[Ljava/lang/String;
 Ljava/lang/annotation/AnnotationTypeMismatchException;->element:Ljava/lang/reflect/Method;
 Ljava/lang/annotation/AnnotationTypeMismatchException;->foundType:Ljava/lang/String;
-Ljava/lang/annotation/ElementType;-><init>()V
 Ljava/lang/annotation/IncompleteAnnotationException;->annotationType:Ljava/lang/Class;
 Ljava/lang/annotation/IncompleteAnnotationException;->elementName:Ljava/lang/String;
-Ljava/lang/annotation/RetentionPolicy;-><init>()V
 Ljava/lang/ArrayIndexOutOfBoundsException;-><init>(II)V
 Ljava/lang/ArrayIndexOutOfBoundsException;-><init>(III)V
 Ljava/lang/AssertionError;-><init>(Ljava/lang/String;)V
-Ljava/lang/Byte$ByteCache;
 Ljava/lang/Byte$ByteCache;-><init>()V
 Ljava/lang/Byte$ByteCache;->cache:[Ljava/lang/Byte;
 Ljava/lang/Byte;->DIGITS:[C
 Ljava/lang/Byte;->UPPER_CASE_DIGITS:[C
-Ljava/lang/Character$CharacterCache;
 Ljava/lang/Character$CharacterCache;-><init>()V
 Ljava/lang/Character$CharacterCache;->cache:[Ljava/lang/Character;
 Ljava/lang/Character$Subset;->name:Ljava/lang/String;
 Ljava/lang/Character$UnicodeBlock;-><init>(Ljava/lang/String;)V
 Ljava/lang/Character$UnicodeBlock;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Ljava/lang/Character$UnicodeBlock;-><init>(Ljava/lang/String;Z)V
-Ljava/lang/Character$UnicodeBlock;-><init>(Ljava/lang/String;[[Ljava/lang/String;)V
 Ljava/lang/Character$UnicodeBlock;->blocks:[Ljava/lang/Character$UnicodeBlock;
 Ljava/lang/Character$UnicodeBlock;->blockStarts:[I
 Ljava/lang/Character$UnicodeBlock;->map:Ljava/util/Map;
-Ljava/lang/Character$UnicodeScript;-><init>()V
 Ljava/lang/Character$UnicodeScript;->aliases:Ljava/util/HashMap;
 Ljava/lang/Character$UnicodeScript;->scripts:[Ljava/lang/Character$UnicodeScript;
 Ljava/lang/Character$UnicodeScript;->scriptStarts:[I
@@ -110656,7 +103782,6 @@
 Ljava/lang/Character;->toSurrogates(I[CI)V
 Ljava/lang/Character;->toTitleCaseImpl(I)I
 Ljava/lang/Character;->toUpperCaseImpl(I)I
-Ljava/lang/Class$Caches;
 Ljava/lang/Class$Caches;-><init>()V
 Ljava/lang/Class$Caches;->genericInterfaces:Llibcore/util/BasicLruCache;
 Ljava/lang/Class;->ANNOTATION:I
@@ -110712,7 +103837,6 @@
 Ljava/lang/Class;->SYNTHETIC:I
 Ljava/lang/Class;->virtualMethodsOffset:S
 Ljava/lang/Class;->vtable:Ljava/lang/Object;
-Ljava/lang/ClassLoader$SystemClassLoader;
 Ljava/lang/ClassLoader$SystemClassLoader;-><init>()V
 Ljava/lang/ClassLoader$SystemClassLoader;->loader:Ljava/lang/ClassLoader;
 Ljava/lang/ClassLoader;-><init>(Ljava/lang/Void;Ljava/lang/ClassLoader;)V
@@ -110727,7 +103851,6 @@
 Ljava/lang/ClassLoader;->proxyCache:Ljava/util/Map;
 Ljava/lang/ClassNotFoundException;->ex:Ljava/lang/Throwable;
 Ljava/lang/Compiler;-><init>()V
-Ljava/lang/Daemons$Daemon;
 Ljava/lang/Daemons$Daemon;-><init>(Ljava/lang/String;)V
 Ljava/lang/Daemons$Daemon;->getStackTrace()[Ljava/lang/StackTraceElement;
 Ljava/lang/Daemons$Daemon;->interrupt()V
@@ -110737,13 +103860,11 @@
 Ljava/lang/Daemons$Daemon;->runInternal()V
 Ljava/lang/Daemons$Daemon;->startInternal()V
 Ljava/lang/Daemons$Daemon;->startPostZygoteFork()V
-Ljava/lang/Daemons$FinalizerDaemon;
 Ljava/lang/Daemons$FinalizerDaemon;-><init>()V
 Ljava/lang/Daemons$FinalizerDaemon;->doFinalize(Ljava/lang/ref/FinalizerReference;)V
 Ljava/lang/Daemons$FinalizerDaemon;->progressCounter:Ljava/util/concurrent/atomic/AtomicInteger;
 Ljava/lang/Daemons$FinalizerDaemon;->queue:Ljava/lang/ref/ReferenceQueue;
 Ljava/lang/Daemons$FinalizerDaemon;->runInternal()V
-Ljava/lang/Daemons$FinalizerWatchdogDaemon;
 Ljava/lang/Daemons$FinalizerWatchdogDaemon;-><init>()V
 Ljava/lang/Daemons$FinalizerWatchdogDaemon;->finalizerTimedOut(Ljava/lang/Object;)V
 Ljava/lang/Daemons$FinalizerWatchdogDaemon;->getNeedToWork()Z
@@ -110754,15 +103875,12 @@
 Ljava/lang/Daemons$FinalizerWatchdogDaemon;->sleepUntilNeeded()Z
 Ljava/lang/Daemons$FinalizerWatchdogDaemon;->waitForFinalization()Ljava/lang/Object;
 Ljava/lang/Daemons$FinalizerWatchdogDaemon;->wakeUp()V
-Ljava/lang/Daemons$HeapTaskDaemon;
 Ljava/lang/Daemons$HeapTaskDaemon;-><init>()V
 Ljava/lang/Daemons$HeapTaskDaemon;->INSTANCE:Ljava/lang/Daemons$HeapTaskDaemon;
 Ljava/lang/Daemons$HeapTaskDaemon;->interrupt(Ljava/lang/Thread;)V
 Ljava/lang/Daemons$HeapTaskDaemon;->runInternal()V
-Ljava/lang/Daemons$ReferenceQueueDaemon;
 Ljava/lang/Daemons$ReferenceQueueDaemon;-><init>()V
 Ljava/lang/Daemons$ReferenceQueueDaemon;->runInternal()V
-Ljava/lang/Daemons;
 Ljava/lang/Daemons;-><init>()V
 Ljava/lang/Daemons;->NANOS_PER_MILLI:I
 Ljava/lang/Daemons;->NANOS_PER_SECOND:I
@@ -110772,10 +103890,8 @@
 Ljava/lang/EnumConstantNotPresentException;->constantName:Ljava/lang/String;
 Ljava/lang/EnumConstantNotPresentException;->enumType:Ljava/lang/Class;
 Ljava/lang/ExceptionInInitializerError;->exception:Ljava/lang/Throwable;
-Ljava/lang/FindBugsSuppressWarnings;
 Ljava/lang/InheritableThreadLocal;->createMap(Ljava/lang/Thread;Ljava/lang/Object;)V
 Ljava/lang/InheritableThreadLocal;->getMap(Ljava/lang/Thread;)Ljava/lang/ThreadLocal$ThreadLocalMap;
-Ljava/lang/Integer$IntegerCache;
 Ljava/lang/Integer$IntegerCache;-><init>()V
 Ljava/lang/Integer$IntegerCache;->cache:[Ljava/lang/Integer;
 Ljava/lang/Integer$IntegerCache;->high:I
@@ -110804,7 +103920,6 @@
 Ljava/lang/invoke/CallSite;->TARGET_OFFSET:J
 Ljava/lang/invoke/CallSite;->wrongTargetType(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/WrongMethodTypeException;
 Ljava/lang/invoke/ConstantCallSite;->isFrozen:Z
-Ljava/lang/invoke/MethodHandle$PolymorphicSignature;
 Ljava/lang/invoke/MethodHandle;-><init>(JILjava/lang/invoke/MethodType;)V
 Ljava/lang/invoke/MethodHandle;->artFieldOrMethod:J
 Ljava/lang/invoke/MethodHandle;->asCollectorChecks(Ljava/lang/Class;I)Z
@@ -110831,11 +103946,9 @@
 Ljava/lang/invoke/MethodHandle;->transform(Ldalvik/system/EmulatedStackFrame;)V
 Ljava/lang/invoke/MethodHandle;->transformInternal(Ldalvik/system/EmulatedStackFrame;)V
 Ljava/lang/invoke/MethodHandle;->type:Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodHandleImpl$HandleInfo;
 Ljava/lang/invoke/MethodHandleImpl$HandleInfo;-><init>(Ljava/lang/reflect/Member;Ljava/lang/invoke/MethodHandle;)V
 Ljava/lang/invoke/MethodHandleImpl$HandleInfo;->handle:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/MethodHandleImpl$HandleInfo;->member:Ljava/lang/reflect/Member;
-Ljava/lang/invoke/MethodHandleImpl;
 Ljava/lang/invoke/MethodHandleImpl;-><init>(JILjava/lang/invoke/MethodType;)V
 Ljava/lang/invoke/MethodHandleImpl;->getMemberInternal()Ljava/lang/reflect/Member;
 Ljava/lang/invoke/MethodHandleImpl;->info:Ljava/lang/invoke/MethodHandleImpl$HandleInfo;
@@ -110911,11 +104024,9 @@
 Ljava/lang/invoke/MethodHandles;->permuteArgumentChecks([ILjava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)Z
 Ljava/lang/invoke/MethodHandles;->varHandleExactInvoker(Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/MethodHandles;->varHandleInvoker(Ljava/lang/invoke/VarHandle$AccessMode;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
-Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;
 Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;-><init>(Ljava/lang/Object;)V
 Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
 Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry;->hashcode:I
-Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;
 Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;-><init>()V
 Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;->add(Ljava/lang/Object;)Ljava/lang/Object;
 Ljava/lang/invoke/MethodType$ConcurrentWeakInternSet;->expungeStaleElements()V
@@ -110959,7 +104070,6 @@
 Ljava/lang/invoke/MethodType;->ptypes()[Ljava/lang/Class;
 Ljava/lang/invoke/MethodType;->ptypes:[Ljava/lang/Class;
 Ljava/lang/invoke/MethodType;->ptypesOffset:J
-Ljava/lang/invoke/MethodType;->replaceParameterTypes(II[[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
 Ljava/lang/invoke/MethodType;->rtype()Ljava/lang/Class;
 Ljava/lang/invoke/MethodType;->rtype:Ljava/lang/Class;
 Ljava/lang/invoke/MethodType;->rtypeOffset:J
@@ -110967,7 +104077,6 @@
 Ljava/lang/invoke/MethodType;->unwrapWithNoPrims(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodType;
 Ljava/lang/invoke/MethodType;->wrapAlt:Ljava/lang/invoke/MethodType;
 Ljava/lang/invoke/MethodType;->wrapWithPrims(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/MethodTypeForm;
 Ljava/lang/invoke/MethodTypeForm;-><init>(Ljava/lang/invoke/MethodType;)V
 Ljava/lang/invoke/MethodTypeForm;->argCounts:J
 Ljava/lang/invoke/MethodTypeForm;->argSlotToParameter(I)I
@@ -111004,25 +104113,20 @@
 Ljava/lang/invoke/MethodTypeForm;->unpack(JI)C
 Ljava/lang/invoke/MethodTypeForm;->UNWRAP:I
 Ljava/lang/invoke/MethodTypeForm;->WRAP:I
-Ljava/lang/invoke/Stable;
-Ljava/lang/invoke/Transformers$AlwaysThrow;
 Ljava/lang/invoke/Transformers$AlwaysThrow;-><init>(Ljava/lang/Class;Ljava/lang/Class;)V
 Ljava/lang/invoke/Transformers$AlwaysThrow;->exceptionType:Ljava/lang/Class;
 Ljava/lang/invoke/Transformers$AlwaysThrow;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$BindTo;
 Ljava/lang/invoke/Transformers$BindTo;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/Object;)V
 Ljava/lang/invoke/Transformers$BindTo;->delegate:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$BindTo;->range:Ldalvik/system/EmulatedStackFrame$Range;
 Ljava/lang/invoke/Transformers$BindTo;->receiver:Ljava/lang/Object;
 Ljava/lang/invoke/Transformers$BindTo;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$CatchException;
 Ljava/lang/invoke/Transformers$CatchException;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;)V
 Ljava/lang/invoke/Transformers$CatchException;->exType:Ljava/lang/Class;
 Ljava/lang/invoke/Transformers$CatchException;->handler:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$CatchException;->handlerArgsRange:Ldalvik/system/EmulatedStackFrame$Range;
 Ljava/lang/invoke/Transformers$CatchException;->target:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$CatchException;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$CollectArguments;
 Ljava/lang/invoke/Transformers$CollectArguments;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodType;)V
 Ljava/lang/invoke/Transformers$CollectArguments;->collector:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$CollectArguments;->collectorRange:Ldalvik/system/EmulatedStackFrame$Range;
@@ -111033,7 +104137,6 @@
 Ljava/lang/invoke/Transformers$CollectArguments;->stackFrameOffset:I
 Ljava/lang/invoke/Transformers$CollectArguments;->target:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$CollectArguments;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$Collector;
 Ljava/lang/invoke/Transformers$Collector;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;I)V
 Ljava/lang/invoke/Transformers$Collector;->arrayOffset:I
 Ljava/lang/invoke/Transformers$Collector;->arrayTypeChar:C
@@ -111041,7 +104144,6 @@
 Ljava/lang/invoke/Transformers$Collector;->numArrayArgs:I
 Ljava/lang/invoke/Transformers$Collector;->target:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$Collector;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$Constant;
 Ljava/lang/invoke/Transformers$Constant;-><init>(Ljava/lang/Class;Ljava/lang/Object;)V
 Ljava/lang/invoke/Transformers$Constant;->asDouble:D
 Ljava/lang/invoke/Transformers$Constant;->asFloat:F
@@ -111051,7 +104153,6 @@
 Ljava/lang/invoke/Transformers$Constant;->transform(Ldalvik/system/EmulatedStackFrame;)V
 Ljava/lang/invoke/Transformers$Constant;->type:Ljava/lang/Class;
 Ljava/lang/invoke/Transformers$Constant;->typeChar:C
-Ljava/lang/invoke/Transformers$Construct;
 Ljava/lang/invoke/Transformers$Construct;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)V
 Ljava/lang/invoke/Transformers$Construct;->callerRange:Ldalvik/system/EmulatedStackFrame$Range;
 Ljava/lang/invoke/Transformers$Construct;->checkInstantiable(Ljava/lang/Class;)V
@@ -111059,13 +104160,11 @@
 Ljava/lang/invoke/Transformers$Construct;->getConstructorHandle()Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$Construct;->isAbstract(Ljava/lang/Class;)Z
 Ljava/lang/invoke/Transformers$Construct;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$DropArguments;
 Ljava/lang/invoke/Transformers$DropArguments;-><init>(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;II)V
 Ljava/lang/invoke/Transformers$DropArguments;->delegate:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$DropArguments;->range1:Ldalvik/system/EmulatedStackFrame$Range;
 Ljava/lang/invoke/Transformers$DropArguments;->range2:Ldalvik/system/EmulatedStackFrame$Range;
 Ljava/lang/invoke/Transformers$DropArguments;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$ExplicitCastArguments;
 Ljava/lang/invoke/Transformers$ExplicitCastArguments;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)V
 Ljava/lang/invoke/Transformers$ExplicitCastArguments;->box(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/Class;)V
 Ljava/lang/invoke/Transformers$ExplicitCastArguments;->explicitCast(Ldalvik/system/EmulatedStackFrame$StackFrameReader;Ljava/lang/Class;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/Class;)V
@@ -111088,20 +104187,17 @@
 Ljava/lang/invoke/Transformers$ExplicitCastArguments;->unbox(Ljava/lang/Object;Ljava/lang/Class;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/Class;)V
 Ljava/lang/invoke/Transformers$ExplicitCastArguments;->unboxNonNull(Ljava/lang/Object;Ljava/lang/Class;Ldalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/Class;)V
 Ljava/lang/invoke/Transformers$ExplicitCastArguments;->unboxNull(Ldalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/Class;)V
-Ljava/lang/invoke/Transformers$FilterArguments;
 Ljava/lang/invoke/Transformers$FilterArguments;-><init>(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)V
 Ljava/lang/invoke/Transformers$FilterArguments;->deriveType(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodType;
 Ljava/lang/invoke/Transformers$FilterArguments;->filters:[Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$FilterArguments;->pos:I
 Ljava/lang/invoke/Transformers$FilterArguments;->target:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$FilterArguments;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$FilterReturnValue;
 Ljava/lang/invoke/Transformers$FilterReturnValue;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
 Ljava/lang/invoke/Transformers$FilterReturnValue;->allArgs:Ldalvik/system/EmulatedStackFrame$Range;
 Ljava/lang/invoke/Transformers$FilterReturnValue;->filter:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$FilterReturnValue;->target:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$FilterReturnValue;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$FoldArguments;
 Ljava/lang/invoke/Transformers$FoldArguments;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
 Ljava/lang/invoke/Transformers$FoldArguments;->combiner:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$FoldArguments;->combinerArgs:Ldalvik/system/EmulatedStackFrame$Range;
@@ -111111,14 +104207,12 @@
 Ljava/lang/invoke/Transformers$FoldArguments;->target:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$FoldArguments;->targetArgs:Ldalvik/system/EmulatedStackFrame$Range;
 Ljava/lang/invoke/Transformers$FoldArguments;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$GuardWithTest;
 Ljava/lang/invoke/Transformers$GuardWithTest;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)V
 Ljava/lang/invoke/Transformers$GuardWithTest;->fallback:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$GuardWithTest;->target:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$GuardWithTest;->test:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$GuardWithTest;->testArgsRange:Ldalvik/system/EmulatedStackFrame$Range;
 Ljava/lang/invoke/Transformers$GuardWithTest;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$InsertArguments;
 Ljava/lang/invoke/Transformers$InsertArguments;-><init>(Ljava/lang/invoke/MethodHandle;I[Ljava/lang/Object;)V
 Ljava/lang/invoke/Transformers$InsertArguments;->pos:I
 Ljava/lang/invoke/Transformers$InsertArguments;->range1:Ldalvik/system/EmulatedStackFrame$Range;
@@ -111126,30 +104220,24 @@
 Ljava/lang/invoke/Transformers$InsertArguments;->target:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$InsertArguments;->transform(Ldalvik/system/EmulatedStackFrame;)V
 Ljava/lang/invoke/Transformers$InsertArguments;->values:[Ljava/lang/Object;
-Ljava/lang/invoke/Transformers$Invoker;
 Ljava/lang/invoke/Transformers$Invoker;-><init>(Ljava/lang/invoke/MethodType;Z)V
 Ljava/lang/invoke/Transformers$Invoker;->copyRange:Ldalvik/system/EmulatedStackFrame$Range;
 Ljava/lang/invoke/Transformers$Invoker;->isExactInvoker:Z
 Ljava/lang/invoke/Transformers$Invoker;->targetType:Ljava/lang/invoke/MethodType;
 Ljava/lang/invoke/Transformers$Invoker;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$PermuteArguments;
 Ljava/lang/invoke/Transformers$PermuteArguments;-><init>(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;[I)V
 Ljava/lang/invoke/Transformers$PermuteArguments;->reorder:[I
 Ljava/lang/invoke/Transformers$PermuteArguments;->target:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$PermuteArguments;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$ReferenceArrayElementGetter;
 Ljava/lang/invoke/Transformers$ReferenceArrayElementGetter;-><init>(Ljava/lang/Class;)V
 Ljava/lang/invoke/Transformers$ReferenceArrayElementGetter;->arrayClass:Ljava/lang/Class;
 Ljava/lang/invoke/Transformers$ReferenceArrayElementGetter;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$ReferenceArrayElementSetter;
 Ljava/lang/invoke/Transformers$ReferenceArrayElementSetter;-><init>(Ljava/lang/Class;)V
 Ljava/lang/invoke/Transformers$ReferenceArrayElementSetter;->arrayClass:Ljava/lang/Class;
 Ljava/lang/invoke/Transformers$ReferenceArrayElementSetter;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$ReferenceIdentity;
 Ljava/lang/invoke/Transformers$ReferenceIdentity;-><init>(Ljava/lang/Class;)V
 Ljava/lang/invoke/Transformers$ReferenceIdentity;->transform(Ldalvik/system/EmulatedStackFrame;)V
 Ljava/lang/invoke/Transformers$ReferenceIdentity;->type:Ljava/lang/Class;
-Ljava/lang/invoke/Transformers$Spreader;
 Ljava/lang/invoke/Transformers$Spreader;-><init>(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;I)V
 Ljava/lang/invoke/Transformers$Spreader;->arrayOffset:I
 Ljava/lang/invoke/Transformers$Spreader;->arrayTypeChar:C
@@ -111166,10 +104254,8 @@
 Ljava/lang/invoke/Transformers$Spreader;->spreadArray([ZLdalvik/system/EmulatedStackFrame$StackFrameWriter;Ljava/lang/invoke/MethodType;II)V
 Ljava/lang/invoke/Transformers$Spreader;->target:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$Spreader;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers$Transformer;
 Ljava/lang/invoke/Transformers$Transformer;-><init>(Ljava/lang/invoke/MethodType;)V
 Ljava/lang/invoke/Transformers$Transformer;-><init>(Ljava/lang/invoke/MethodType;I)V
-Ljava/lang/invoke/Transformers$VarargsCollector;
 Ljava/lang/invoke/Transformers$VarargsCollector;-><init>(Ljava/lang/invoke/MethodHandle;)V
 Ljava/lang/invoke/Transformers$VarargsCollector;->arityArgumentsConvertible([Ljava/lang/Class;ILjava/lang/Class;)Z
 Ljava/lang/invoke/Transformers$VarargsCollector;->booleanArray(Ldalvik/system/EmulatedStackFrame$StackFrameReader;[Ljava/lang/Class;II)Ljava/lang/Object;
@@ -111190,11 +104276,8 @@
 Ljava/lang/invoke/Transformers$VarargsCollector;->target:Ljava/lang/invoke/MethodHandle;
 Ljava/lang/invoke/Transformers$VarargsCollector;->throwWrongMethodTypeException(Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;)V
 Ljava/lang/invoke/Transformers$VarargsCollector;->transform(Ldalvik/system/EmulatedStackFrame;)V
-Ljava/lang/invoke/Transformers;
 Ljava/lang/invoke/Transformers;-><init>()V
 Ljava/lang/invoke/Transformers;->TRANSFORM_INTERNAL:Ljava/lang/reflect/Method;
-Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessMode;-><init>(Ljava/lang/String;Ljava/lang/invoke/VarHandle$AccessType;)V
 Ljava/lang/invoke/VarHandle$AccessMode;->at:Ljava/lang/invoke/VarHandle$AccessType;
 Ljava/lang/invoke/VarHandle$AccessMode;->COMPARE_AND_EXCHANGE:Ljava/lang/invoke/VarHandle$AccessMode;
 Ljava/lang/invoke/VarHandle$AccessMode;->COMPARE_AND_EXCHANGE_ACQUIRE:Ljava/lang/invoke/VarHandle$AccessMode;
@@ -111233,13 +104316,8 @@
 Ljava/lang/invoke/VarHandle$AccessMode;->WEAK_COMPARE_AND_SET_ACQUIRE:Ljava/lang/invoke/VarHandle$AccessMode;
 Ljava/lang/invoke/VarHandle$AccessMode;->WEAK_COMPARE_AND_SET_PLAIN:Ljava/lang/invoke/VarHandle$AccessMode;
 Ljava/lang/invoke/VarHandle$AccessMode;->WEAK_COMPARE_AND_SET_RELEASE:Ljava/lang/invoke/VarHandle$AccessMode;
-Ljava/lang/invoke/VarHandle$AccessType;
-Ljava/lang/invoke/VarHandle$AccessType;-><init>()V
-Ljava/lang/invoke/VarHandle$AccessType;->accessModeType(Ljava/lang/Class;Ljava/lang/Class;[[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
-Ljava/lang/invoke/VarHandle$AccessType;->allocateParameters(ILjava/lang/Class;[[Ljava/lang/Class;)[Ljava/lang/Class;
 Ljava/lang/invoke/VarHandle$AccessType;->COMPARE_AND_EXCHANGE:Ljava/lang/invoke/VarHandle$AccessType;
 Ljava/lang/invoke/VarHandle$AccessType;->COMPARE_AND_SWAP:Ljava/lang/invoke/VarHandle$AccessType;
-Ljava/lang/invoke/VarHandle$AccessType;->fillParameters([Ljava/lang/Class;Ljava/lang/Class;[[Ljava/lang/Class;)I
 Ljava/lang/invoke/VarHandle$AccessType;->GET:Ljava/lang/invoke/VarHandle$AccessType;
 Ljava/lang/invoke/VarHandle$AccessType;->GET_AND_UPDATE:Ljava/lang/invoke/VarHandle$AccessType;
 Ljava/lang/invoke/VarHandle$AccessType;->GET_AND_UPDATE_BITWISE:Ljava/lang/invoke/VarHandle$AccessType;
@@ -111247,7 +104325,6 @@
 Ljava/lang/invoke/VarHandle$AccessType;->SET:Ljava/lang/invoke/VarHandle$AccessType;
 Ljava/lang/invoke/VarHandle$AccessType;->valueOf(Ljava/lang/String;)Ljava/lang/invoke/VarHandle$AccessType;
 Ljava/lang/invoke/VarHandle$AccessType;->values()[Ljava/lang/invoke/VarHandle$AccessType;
-Ljava/lang/invoke/VarHandle;
 Ljava/lang/invoke/VarHandle;-><init>(Ljava/lang/Class;Ljava/lang/Class;ZLjava/lang/Class;Ljava/lang/Class;)V
 Ljava/lang/invoke/VarHandle;-><init>(Ljava/lang/Class;Z)V
 Ljava/lang/invoke/VarHandle;-><init>(Ljava/lang/Class;ZLjava/lang/Class;)V
@@ -111272,7 +104349,6 @@
 Ljava/lang/invoke/VarHandle;->WRITE_ACCESS_MODES_BIT_MASK:I
 Ljava/lang/invoke/WrongMethodTypeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
 Ljava/lang/invoke/WrongMethodTypeException;-><init>(Ljava/lang/Throwable;)V
-Ljava/lang/Long$LongCache;
 Ljava/lang/Long$LongCache;-><init>()V
 Ljava/lang/Long$LongCache;->cache:[Ljava/lang/Long;
 Ljava/lang/Long;->formatUnsignedLong(JI[CII)I
@@ -111280,7 +104356,6 @@
 Ljava/lang/Long;->stringSize(J)I
 Ljava/lang/Long;->toUnsignedBigInteger(J)Ljava/math/BigInteger;
 Ljava/lang/Long;->toUnsignedString0(JI)Ljava/lang/String;
-Ljava/lang/Math$RandomNumberGeneratorHolder;
 Ljava/lang/Math$RandomNumberGeneratorHolder;-><init>()V
 Ljava/lang/Math$RandomNumberGeneratorHolder;->randomNumberGenerator:Ljava/util/Random;
 Ljava/lang/Math;-><init>()V
@@ -111322,13 +104397,10 @@
 Ljava/lang/Package;->specVendor:Ljava/lang/String;
 Ljava/lang/Package;->specVersion:Ljava/lang/String;
 Ljava/lang/Package;->urls:Ljava/util/Map;
-Ljava/lang/ProcessBuilder$NullInputStream;
 Ljava/lang/ProcessBuilder$NullInputStream;-><init>()V
 Ljava/lang/ProcessBuilder$NullInputStream;->INSTANCE:Ljava/lang/ProcessBuilder$NullInputStream;
-Ljava/lang/ProcessBuilder$NullOutputStream;
 Ljava/lang/ProcessBuilder$NullOutputStream;-><init>()V
 Ljava/lang/ProcessBuilder$NullOutputStream;->INSTANCE:Ljava/lang/ProcessBuilder$NullOutputStream;
-Ljava/lang/ProcessBuilder$Redirect$Type;-><init>()V
 Ljava/lang/ProcessBuilder$Redirect;-><init>()V
 Ljava/lang/ProcessBuilder$Redirect;->append()Z
 Ljava/lang/ProcessBuilder;->command:Ljava/util/List;
@@ -111338,11 +104410,9 @@
 Ljava/lang/ProcessBuilder;->redirectErrorStream:Z
 Ljava/lang/ProcessBuilder;->redirects()[Ljava/lang/ProcessBuilder$Redirect;
 Ljava/lang/ProcessBuilder;->redirects:[Ljava/lang/ProcessBuilder$Redirect;
-Ljava/lang/ref/FinalizerReference$Sentinel;
 Ljava/lang/ref/FinalizerReference$Sentinel;-><init>()V
 Ljava/lang/ref/FinalizerReference$Sentinel;->awaitFinalization(J)V
 Ljava/lang/ref/FinalizerReference$Sentinel;->finalized:Z
-Ljava/lang/ref/FinalizerReference;
 Ljava/lang/ref/FinalizerReference;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
 Ljava/lang/ref/FinalizerReference;->enqueueSentinelReference(Ljava/lang/ref/FinalizerReference$Sentinel;)Z
 Ljava/lang/ref/FinalizerReference;->finalizeAllEnqueued(J)V
@@ -111351,7 +104421,6 @@
 Ljava/lang/ref/FinalizerReference;->makeCircularListIfUnenqueued()Z
 Ljava/lang/ref/FinalizerReference;->prev:Ljava/lang/ref/FinalizerReference;
 Ljava/lang/ref/FinalizerReference;->zombie:Ljava/lang/Object;
-Ljava/lang/ref/Reference$SinkHolder;
 Ljava/lang/ref/Reference$SinkHolder;-><init>()V
 Ljava/lang/ref/Reference$SinkHolder;->finalize_count:I
 Ljava/lang/ref/Reference$SinkHolder;->sink:Ljava/lang/Object;
@@ -111387,14 +104456,12 @@
 Ljava/lang/reflect/Constructor;-><init>()V
 Ljava/lang/reflect/Constructor;-><init>(Ljava/lang/Class;Ljava/lang/Class;)V
 Ljava/lang/reflect/Constructor;->hasGenericInformation()Z
-Ljava/lang/reflect/Constructor;->newInstance0([[Ljava/lang/Object;)Ljava/lang/Object;
 Ljava/lang/reflect/Constructor;->newInstanceFromSerialization(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Object;
 Ljava/lang/reflect/Constructor;->ORDER_BY_SIGNATURE:Ljava/util/Comparator;
 Ljava/lang/reflect/Constructor;->serializationClass:Ljava/lang/Class;
 Ljava/lang/reflect/Constructor;->serializationCtor:Ljava/lang/Class;
 Ljava/lang/reflect/Constructor;->specificToGenericStringHeader(Ljava/lang/StringBuilder;)V
 Ljava/lang/reflect/Constructor;->specificToStringHeader(Ljava/lang/StringBuilder;)V
-Ljava/lang/reflect/Executable$GenericInfo;
 Ljava/lang/reflect/Executable$GenericInfo;-><init>(Llibcore/reflect/ListOfTypes;Llibcore/reflect/ListOfTypes;Ljava/lang/reflect/Type;[Ljava/lang/reflect/TypeVariable;)V
 Ljava/lang/reflect/Executable$GenericInfo;->formalTypeParameters:[Ljava/lang/reflect/TypeVariable;
 Ljava/lang/reflect/Executable$GenericInfo;->genericExceptionTypes:Llibcore/reflect/ListOfTypes;
@@ -111488,22 +104555,17 @@
 Ljava/lang/reflect/Parameter;->name:Ljava/lang/String;
 Ljava/lang/reflect/Parameter;->parameterClassCache:Ljava/lang/Class;
 Ljava/lang/reflect/Parameter;->parameterTypeCache:Ljava/lang/reflect/Type;
-Ljava/lang/reflect/Proxy$Key1;
 Ljava/lang/reflect/Proxy$Key1;-><init>(Ljava/lang/Class;)V
 Ljava/lang/reflect/Proxy$Key1;->hash:I
-Ljava/lang/reflect/Proxy$Key2;
 Ljava/lang/reflect/Proxy$Key2;-><init>(Ljava/lang/Class;Ljava/lang/Class;)V
 Ljava/lang/reflect/Proxy$Key2;->hash:I
 Ljava/lang/reflect/Proxy$Key2;->ref2:Ljava/lang/ref/WeakReference;
-Ljava/lang/reflect/Proxy$KeyFactory;
 Ljava/lang/reflect/Proxy$KeyFactory;-><init>()V
 Ljava/lang/reflect/Proxy$KeyFactory;->apply(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Object;
-Ljava/lang/reflect/Proxy$KeyX;
 Ljava/lang/reflect/Proxy$KeyX;-><init>([Ljava/lang/Class;)V
 Ljava/lang/reflect/Proxy$KeyX;->equals([Ljava/lang/ref/WeakReference;[Ljava/lang/ref/WeakReference;)Z
 Ljava/lang/reflect/Proxy$KeyX;->hash:I
 Ljava/lang/reflect/Proxy$KeyX;->refs:[Ljava/lang/ref/WeakReference;
-Ljava/lang/reflect/Proxy$ProxyClassFactory;
 Ljava/lang/reflect/Proxy$ProxyClassFactory;-><init>()V
 Ljava/lang/reflect/Proxy$ProxyClassFactory;->apply(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Class;
 Ljava/lang/reflect/Proxy$ProxyClassFactory;->nextUniqueNumber:Ljava/util/concurrent/atomic/AtomicLong;
@@ -111514,33 +104576,25 @@
 Ljava/lang/reflect/Proxy;->generateProxy(Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/ClassLoader;[Ljava/lang/reflect/Method;[[Ljava/lang/Class;)Ljava/lang/Class;
 Ljava/lang/reflect/Proxy;->getMethods([Ljava/lang/Class;)Ljava/util/List;
 Ljava/lang/reflect/Proxy;->getMethodsRecursive([Ljava/lang/Class;Ljava/util/List;)V
-Ljava/lang/reflect/Proxy;->getProxyClass0(Ljava/lang/ClassLoader;[[Ljava/lang/Class;)Ljava/lang/Class;
 Ljava/lang/reflect/Proxy;->intersectExceptions([Ljava/lang/Class;[Ljava/lang/Class;)[Ljava/lang/Class;
 Ljava/lang/reflect/Proxy;->key0:Ljava/lang/Object;
 Ljava/lang/reflect/Proxy;->ORDER_BY_SIGNATURE_AND_SUBTYPE:Ljava/util/Comparator;
 Ljava/lang/reflect/Proxy;->proxyClassCache:Ljava/lang/reflect/WeakCache;
 Ljava/lang/reflect/Proxy;->validateReturnTypes(Ljava/util/List;)V
 Ljava/lang/reflect/UndeclaredThrowableException;->undeclaredThrowable:Ljava/lang/Throwable;
-Ljava/lang/reflect/WeakCache$CacheKey;
 Ljava/lang/reflect/WeakCache$CacheKey;-><init>(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
 Ljava/lang/reflect/WeakCache$CacheKey;->expungeFrom(Ljava/util/concurrent/ConcurrentMap;Ljava/util/concurrent/ConcurrentMap;)V
 Ljava/lang/reflect/WeakCache$CacheKey;->hash:I
 Ljava/lang/reflect/WeakCache$CacheKey;->NULL_KEY:Ljava/lang/Object;
 Ljava/lang/reflect/WeakCache$CacheKey;->valueOf(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)Ljava/lang/Object;
-Ljava/lang/reflect/WeakCache$CacheValue;
 Ljava/lang/reflect/WeakCache$CacheValue;-><init>(Ljava/lang/Object;)V
 Ljava/lang/reflect/WeakCache$CacheValue;->hash:I
-Ljava/lang/reflect/WeakCache$Factory;
-Ljava/lang/reflect/WeakCache$Factory;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentMap;)V
 Ljava/lang/reflect/WeakCache$Factory;->key:Ljava/lang/Object;
 Ljava/lang/reflect/WeakCache$Factory;->parameter:Ljava/lang/Object;
 Ljava/lang/reflect/WeakCache$Factory;->subKey:Ljava/lang/Object;
 Ljava/lang/reflect/WeakCache$Factory;->valuesMap:Ljava/util/concurrent/ConcurrentMap;
-Ljava/lang/reflect/WeakCache$LookupValue;
 Ljava/lang/reflect/WeakCache$LookupValue;-><init>(Ljava/lang/Object;)V
 Ljava/lang/reflect/WeakCache$LookupValue;->value:Ljava/lang/Object;
-Ljava/lang/reflect/WeakCache$Value;
-Ljava/lang/reflect/WeakCache;
 Ljava/lang/reflect/WeakCache;-><init>(Ljava/util/function/BiFunction;Ljava/util/function/BiFunction;)V
 Ljava/lang/reflect/WeakCache;->containsValue(Ljava/lang/Object;)Z
 Ljava/lang/reflect/WeakCache;->expungeStaleEntries()V
@@ -111562,15 +104616,12 @@
 Ljava/lang/Runtime;->shutdownHooks:Ljava/util/List;
 Ljava/lang/Runtime;->shuttingDown:Z
 Ljava/lang/Runtime;->tracingMethods:Z
-Ljava/lang/Short$ShortCache;
 Ljava/lang/Short$ShortCache;-><init>()V
 Ljava/lang/Short$ShortCache;->cache:[Ljava/lang/Short;
-Ljava/lang/StrictMath$RandomNumberGeneratorHolder;
 Ljava/lang/StrictMath$RandomNumberGeneratorHolder;-><init>()V
 Ljava/lang/StrictMath$RandomNumberGeneratorHolder;->randomNumberGenerator:Ljava/util/Random;
 Ljava/lang/StrictMath;-><init>()V
 Ljava/lang/StrictMath;->floorOrCeil(DDDD)D
-Ljava/lang/String$CaseInsensitiveComparator;
 Ljava/lang/String$CaseInsensitiveComparator;-><init>()V
 Ljava/lang/String$CaseInsensitiveComparator;->compare(Ljava/lang/String;Ljava/lang/String;)I
 Ljava/lang/String;->doReplace(CC)Ljava/lang/String;
@@ -111587,7 +104638,6 @@
 Ljava/lang/StringIndexOutOfBoundsException;-><init>(III)V
 Ljava/lang/StringIndexOutOfBoundsException;-><init>(Ljava/lang/String;I)V
 Ljava/lang/StringIndexOutOfBoundsException;-><init>(Ljava/lang/String;II)V
-Ljava/lang/System$PropertiesWithNonOverrideableDefaults;
 Ljava/lang/System$PropertiesWithNonOverrideableDefaults;-><init>(Ljava/util/Properties;)V
 Ljava/lang/System$PropertiesWithNonOverrideableDefaults;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
 Ljava/lang/System;->addLegacyLocaleSystemProperties()V
@@ -111629,17 +104679,13 @@
 Ljava/lang/System;->setUnchangeableSystemProperty(Ljava/lang/String;Ljava/lang/String;)V
 Ljava/lang/System;->specialProperties()[Ljava/lang/String;
 Ljava/lang/System;->unchangeableProps:Ljava/util/Properties;
-Ljava/lang/Thread$Caches;
 Ljava/lang/Thread$Caches;-><init>()V
 Ljava/lang/Thread$Caches;->subclassAudits:Ljava/util/concurrent/ConcurrentMap;
 Ljava/lang/Thread$Caches;->subclassAuditsQueue:Ljava/lang/ref/ReferenceQueue;
-Ljava/lang/Thread$ParkState;
 Ljava/lang/Thread$ParkState;-><init>()V
 Ljava/lang/Thread$ParkState;->PARKED:I
 Ljava/lang/Thread$ParkState;->PREEMPTIVELY_UNPARKED:I
 Ljava/lang/Thread$ParkState;->UNPARKED:I
-Ljava/lang/Thread$State;-><init>()V
-Ljava/lang/Thread$WeakClassKey;
 Ljava/lang/Thread$WeakClassKey;-><init>(Ljava/lang/Class;Ljava/lang/ref/ReferenceQueue;)V
 Ljava/lang/Thread$WeakClassKey;->hash:I
 Ljava/lang/Thread;->auditSubclass(Ljava/lang/Class;)Z
@@ -111703,13 +104749,10 @@
 Ljava/lang/ThreadGroup;->threads:[Ljava/lang/Thread;
 Ljava/lang/ThreadGroup;->threadStartFailed(Ljava/lang/Thread;)V
 Ljava/lang/ThreadGroup;->vmAllowSuspension:Z
-Ljava/lang/ThreadLocal$SuppliedThreadLocal;
 Ljava/lang/ThreadLocal$SuppliedThreadLocal;-><init>(Ljava/util/function/Supplier;)V
 Ljava/lang/ThreadLocal$SuppliedThreadLocal;->supplier:Ljava/util/function/Supplier;
-Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;
 Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;-><init>(Ljava/lang/ThreadLocal;Ljava/lang/Object;)V
 Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;->value:Ljava/lang/Object;
-Ljava/lang/ThreadLocal$ThreadLocalMap;
 Ljava/lang/ThreadLocal$ThreadLocalMap;-><init>(Ljava/lang/ThreadLocal$ThreadLocalMap;)V
 Ljava/lang/ThreadLocal$ThreadLocalMap;-><init>(Ljava/lang/ThreadLocal;Ljava/lang/Object;)V
 Ljava/lang/ThreadLocal$ThreadLocalMap;->cleanSomeSlots(II)Z
@@ -111737,20 +104780,16 @@
 Ljava/lang/ThreadLocal;->nextHashCode:Ljava/util/concurrent/atomic/AtomicInteger;
 Ljava/lang/ThreadLocal;->setInitialValue()Ljava/lang/Object;
 Ljava/lang/ThreadLocal;->threadLocalHashCode:I
-Ljava/lang/Throwable$PrintStreamOrWriter;
 Ljava/lang/Throwable$PrintStreamOrWriter;-><init>()V
 Ljava/lang/Throwable$PrintStreamOrWriter;->lock()Ljava/lang/Object;
 Ljava/lang/Throwable$PrintStreamOrWriter;->println(Ljava/lang/Object;)V
-Ljava/lang/Throwable$SentinelHolder;
 Ljava/lang/Throwable$SentinelHolder;-><init>()V
 Ljava/lang/Throwable$SentinelHolder;->STACK_TRACE_ELEMENT_SENTINEL:Ljava/lang/StackTraceElement;
 Ljava/lang/Throwable$SentinelHolder;->STACK_TRACE_SENTINEL:[Ljava/lang/StackTraceElement;
-Ljava/lang/Throwable$WrappedPrintStream;
 Ljava/lang/Throwable$WrappedPrintStream;-><init>(Ljava/io/PrintStream;)V
 Ljava/lang/Throwable$WrappedPrintStream;->lock()Ljava/lang/Object;
 Ljava/lang/Throwable$WrappedPrintStream;->println(Ljava/lang/Object;)V
 Ljava/lang/Throwable$WrappedPrintStream;->printStream:Ljava/io/PrintStream;
-Ljava/lang/Throwable$WrappedPrintWriter;
 Ljava/lang/Throwable$WrappedPrintWriter;-><init>(Ljava/io/PrintWriter;)V
 Ljava/lang/Throwable$WrappedPrintWriter;->lock()Ljava/lang/Object;
 Ljava/lang/Throwable$WrappedPrintWriter;->println(Ljava/lang/Object;)V
@@ -111801,7 +104840,6 @@
 Ljava/math/BigDecimal;->valueExact(I)J
 Ljava/math/BigDecimal;->zeroScaledBy(J)Ljava/math/BigDecimal;
 Ljava/math/BigDecimal;->ZERO_SCALED_BY:[Ljava/math/BigDecimal;
-Ljava/math/BigInt;
 Ljava/math/BigInt;-><init>()V
 Ljava/math/BigInt;->add(Ljava/math/BigInt;)V
 Ljava/math/BigInt;->addition(Ljava/math/BigInt;Ljava/math/BigInt;)Ljava/math/BigInt;
@@ -111880,9 +104918,7 @@
 Ljava/math/MathContext;->invalidMathContext(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/IllegalArgumentException;
 Ljava/math/MathContext;->precision:I
 Ljava/math/MathContext;->roundingMode:Ljava/math/RoundingMode;
-Ljava/math/RoundingMode;-><init>(I)V
 Ljava/math/RoundingMode;->bigDecimalRM:I
-Ljava/net/Authenticator$RequestorType;-><init>()V
 Ljava/net/Authenticator;->requestingAuthType:Ljava/net/Authenticator$RequestorType;
 Ljava/net/Authenticator;->requestingHost:Ljava/lang/String;
 Ljava/net/Authenticator;->requestingPort:I
@@ -111895,7 +104931,6 @@
 Ljava/net/BindException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
 Ljava/net/ConnectException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
 Ljava/net/CookieHandler;->cookieHandler:Ljava/net/CookieHandler;
-Ljava/net/CookieManager$CookiePathComparator;
 Ljava/net/CookieManager$CookiePathComparator;-><init>()V
 Ljava/net/CookieManager$CookiePathComparator;->compare(Ljava/net/HttpCookie;Ljava/net/HttpCookie;)I
 Ljava/net/CookieManager;->cookieJar:Ljava/net/CookieStore;
@@ -111940,7 +104975,6 @@
 Ljava/net/DatagramSocketImpl;->setDatagramSocket(Ljava/net/DatagramSocket;)V
 Ljava/net/DatagramSocketImpl;->setOption(Ljava/net/SocketOption;Ljava/lang/Object;)V
 Ljava/net/DatagramSocketImpl;->socket:Ljava/net/DatagramSocket;
-Ljava/net/HttpCookie$CookieAttributeAssignor;
 Ljava/net/HttpCookie$CookieAttributeAssignor;->assign(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V
 Ljava/net/HttpCookie;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 Ljava/net/HttpCookie;->assignAttribute(Ljava/net/HttpCookie;Ljava/lang/String;Ljava/lang/String;)V
@@ -111974,9 +105008,6 @@
 Ljava/net/Inet4Address;->INADDRSZ:I
 Ljava/net/Inet4Address;->LOOPBACK:Ljava/net/InetAddress;
 Ljava/net/Inet4Address;->numericToTextFormat([B)Ljava/lang/String;
-Ljava/net/Inet6Address$Inet6AddressHolder;
-Ljava/net/Inet6Address$Inet6AddressHolder;-><init>()V
-Ljava/net/Inet6Address$Inet6AddressHolder;-><init>([BIZLjava/net/NetworkInterface;Z)V
 Ljava/net/Inet6Address$Inet6AddressHolder;->init([BI)V
 Ljava/net/Inet6Address$Inet6AddressHolder;->init([BLjava/net/NetworkInterface;)V
 Ljava/net/Inet6Address$Inet6AddressHolder;->isAnyLocalAddress()Z
@@ -112009,7 +105040,6 @@
 Ljava/net/Inet6Address;->LOOPBACK:Ljava/net/InetAddress;
 Ljava/net/Inet6Address;->numericToTextFormat([B)Ljava/lang/String;
 Ljava/net/Inet6Address;->UNSAFE:Lsun/misc/Unsafe;
-Ljava/net/InetAddress$InetAddressHolder;
 Ljava/net/InetAddress$InetAddressHolder;-><init>()V
 Ljava/net/InetAddress$InetAddressHolder;-><init>(Ljava/lang/String;II)V
 Ljava/net/InetAddress$InetAddressHolder;->getAddress()I
@@ -112033,14 +105063,12 @@
 Ljava/net/InetAddress;->NETID_UNSET:I
 Ljava/net/InetAddress;->parseNumericAddressNoThrow(Ljava/lang/String;)Ljava/net/InetAddress;
 Ljava/net/InetAddress;->readObjectNoData(Ljava/io/ObjectInputStream;)V
-Ljava/net/InetAddressImpl;
 Ljava/net/InetAddressImpl;->anyLocalAddress()Ljava/net/InetAddress;
 Ljava/net/InetAddressImpl;->clearAddressCache()V
 Ljava/net/InetAddressImpl;->getHostByAddr([B)Ljava/lang/String;
 Ljava/net/InetAddressImpl;->isReachable(Ljava/net/InetAddress;ILjava/net/NetworkInterface;I)Z
 Ljava/net/InetAddressImpl;->lookupAllHostAddr(Ljava/lang/String;I)[Ljava/net/InetAddress;
 Ljava/net/InetAddressImpl;->loopbackAddresses()[Ljava/net/InetAddress;
-Ljava/net/InetSocketAddress$InetSocketAddressHolder;
 Ljava/net/InetSocketAddress$InetSocketAddressHolder;-><init>(Ljava/lang/String;Ljava/net/InetAddress;I)V
 Ljava/net/InetSocketAddress$InetSocketAddressHolder;->addr:Ljava/net/InetAddress;
 Ljava/net/InetSocketAddress$InetSocketAddressHolder;->getAddress()Ljava/net/InetAddress;
@@ -112056,7 +105084,6 @@
 Ljava/net/InetSocketAddress;->checkPort(I)I
 Ljava/net/InetSocketAddress;->FIELDS_OFFSET:J
 Ljava/net/InetSocketAddress;->UNSAFE:Lsun/misc/Unsafe;
-Ljava/net/InMemoryCookieStore;
 Ljava/net/InMemoryCookieStore;-><init>()V
 Ljava/net/InMemoryCookieStore;-><init>(I)V
 Ljava/net/InMemoryCookieStore;->addIndex(Ljava/util/Map;Ljava/lang/Object;Ljava/net/HttpCookie;)V
@@ -112099,7 +105126,6 @@
 Ljava/net/PasswordAuthentication;->userName:Ljava/lang/String;
 Ljava/net/PortUnreachableException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
 Ljava/net/ProtocolException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
-Ljava/net/Proxy$Type;-><init>()V
 Ljava/net/Proxy;->sa:Ljava/net/SocketAddress;
 Ljava/net/Proxy;->type:Ljava/net/Proxy$Type;
 Ljava/net/ProxySelector;->theProxySelector:Ljava/net/ProxySelector;
@@ -112148,14 +105174,10 @@
 Ljava/net/SocketImpl;->setSocket(Ljava/net/Socket;)V
 Ljava/net/SocketTimeoutException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
 Ljava/net/SocketTimeoutException;-><init>(Ljava/lang/Throwable;)V
-Ljava/net/StandardProtocolFamily;-><init>()V
-Ljava/net/StandardSocketOptions$StdSocketOption;
 Ljava/net/StandardSocketOptions$StdSocketOption;-><init>(Ljava/lang/String;Ljava/lang/Class;)V
 Ljava/net/StandardSocketOptions$StdSocketOption;->name:Ljava/lang/String;
 Ljava/net/StandardSocketOptions$StdSocketOption;->type:Ljava/lang/Class;
 Ljava/net/StandardSocketOptions;-><init>()V
-Ljava/net/URI$Parser;
-Ljava/net/URI$Parser;-><init>(Ljava/lang/String;)V
 Ljava/net/URI$Parser;->at(IIC)Z
 Ljava/net/URI$Parser;->at(IILjava/lang/String;)Z
 Ljava/net/URI$Parser;->charAt(I)C
@@ -112339,7 +105361,6 @@
 Ljava/net/URLConnection;->typeToPackageName(Ljava/lang/String;)Ljava/lang/String;
 Ljava/net/URLDecoder;->dfltEncName:Ljava/lang/String;
 Ljava/net/URLDecoder;->isValidHexChar(C)Z
-Ljava/net/UrlDeserializedState;
 Ljava/net/UrlDeserializedState;-><init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
 Ljava/net/UrlDeserializedState;->authority:Ljava/lang/String;
 Ljava/net/UrlDeserializedState;->file:Ljava/lang/String;
@@ -112414,14 +105435,12 @@
 Ljava/nio/channels/AsynchronousFileChannel;->NO_ATTRIBUTES:[Ljava/nio/file/attribute/FileAttribute;
 Ljava/nio/channels/AsynchronousServerSocketChannel;->provider:Ljava/nio/channels/spi/AsynchronousChannelProvider;
 Ljava/nio/channels/AsynchronousSocketChannel;->provider:Ljava/nio/channels/spi/AsynchronousChannelProvider;
-Ljava/nio/channels/Channels$ReadableByteChannelImpl;
 Ljava/nio/channels/Channels$ReadableByteChannelImpl;-><init>(Ljava/io/InputStream;)V
 Ljava/nio/channels/Channels$ReadableByteChannelImpl;->buf:[B
 Ljava/nio/channels/Channels$ReadableByteChannelImpl;->in:Ljava/io/InputStream;
 Ljava/nio/channels/Channels$ReadableByteChannelImpl;->open:Z
 Ljava/nio/channels/Channels$ReadableByteChannelImpl;->readLock:Ljava/lang/Object;
 Ljava/nio/channels/Channels$ReadableByteChannelImpl;->TRANSFER_SIZE:I
-Ljava/nio/channels/Channels$WritableByteChannelImpl;
 Ljava/nio/channels/Channels$WritableByteChannelImpl;-><init>(Ljava/io/OutputStream;)V
 Ljava/nio/channels/Channels$WritableByteChannelImpl;->buf:[B
 Ljava/nio/channels/Channels$WritableByteChannelImpl;->open:Z
@@ -112463,7 +105482,6 @@
 Ljava/nio/channels/spi/AbstractSelector;->interruptor:Lsun/nio/ch/Interruptible;
 Ljava/nio/channels/spi/AbstractSelector;->provider:Ljava/nio/channels/spi/SelectorProvider;
 Ljava/nio/channels/spi/AbstractSelector;->selectorOpen:Ljava/util/concurrent/atomic/AtomicBoolean;
-Ljava/nio/channels/spi/AsynchronousChannelProvider$ProviderHolder;
 Ljava/nio/channels/spi/AsynchronousChannelProvider$ProviderHolder;-><init>()V
 Ljava/nio/channels/spi/AsynchronousChannelProvider$ProviderHolder;->load()Ljava/nio/channels/spi/AsynchronousChannelProvider;
 Ljava/nio/channels/spi/AsynchronousChannelProvider$ProviderHolder;->loadProviderAsService()Ljava/nio/channels/spi/AsynchronousChannelProvider;
@@ -112528,7 +105546,6 @@
 Ljava/nio/charset/CharsetEncoder;->ST_RESET:I
 Ljava/nio/charset/CharsetEncoder;->throwIllegalStateException(II)V
 Ljava/nio/charset/CharsetEncoder;->unmappableCharacterAction:Ljava/nio/charset/CodingErrorAction;
-Ljava/nio/charset/CoderResult$Cache;
 Ljava/nio/charset/CoderResult$Cache;-><init>()V
 Ljava/nio/charset/CoderResult$Cache;->cache:Ljava/util/Map;
 Ljava/nio/charset/CoderResult$Cache;->create(I)Ljava/nio/charset/CoderResult;
@@ -112548,7 +105565,6 @@
 Ljava/nio/charset/CodingErrorAction;->name:Ljava/lang/String;
 Ljava/nio/charset/IllegalCharsetNameException;->charsetName:Ljava/lang/String;
 Ljava/nio/charset/MalformedInputException;->inputLength:I
-Ljava/nio/charset/ModifiedUtf8;
 Ljava/nio/charset/ModifiedUtf8;-><init>()V
 Ljava/nio/charset/ModifiedUtf8;->countBytes(Ljava/lang/String;Z)J
 Ljava/nio/charset/ModifiedUtf8;->decode([B[CII)Ljava/lang/String;
@@ -112557,7 +105573,6 @@
 Ljava/nio/charset/StandardCharsets;-><init>()V
 Ljava/nio/charset/UnmappableCharacterException;->inputLength:I
 Ljava/nio/charset/UnsupportedCharsetException;->charsetName:Ljava/lang/String;
-Ljava/nio/DirectByteBuffer$MemoryRef;
 Ljava/nio/DirectByteBuffer$MemoryRef;-><init>(I)V
 Ljava/nio/DirectByteBuffer$MemoryRef;-><init>(JLjava/lang/Object;)V
 Ljava/nio/DirectByteBuffer$MemoryRef;->allocatedAddress:J
@@ -112567,7 +105582,6 @@
 Ljava/nio/DirectByteBuffer$MemoryRef;->isFreed:Z
 Ljava/nio/DirectByteBuffer$MemoryRef;->offset:I
 Ljava/nio/DirectByteBuffer$MemoryRef;->originalBufferObject:Ljava/lang/Object;
-Ljava/nio/DirectByteBuffer;
 Ljava/nio/DirectByteBuffer;-><init>(IJLjava/io/FileDescriptor;Ljava/lang/Runnable;Z)V
 Ljava/nio/DirectByteBuffer;-><init>(ILjava/nio/DirectByteBuffer$MemoryRef;)V
 Ljava/nio/DirectByteBuffer;-><init>(Ljava/nio/DirectByteBuffer$MemoryRef;IIIII)V
@@ -112623,7 +105637,6 @@
 Ljava/nio/DoubleBuffer;->hb:[D
 Ljava/nio/DoubleBuffer;->isReadOnly:Z
 Ljava/nio/DoubleBuffer;->offset:I
-Ljava/nio/file/AccessMode;-><init>()V
 Ljava/nio/file/attribute/AclEntry$Builder;-><init>(Ljava/nio/file/attribute/AclEntryType;Ljava/nio/file/attribute/UserPrincipal;Ljava/util/Set;Ljava/util/Set;)V
 Ljava/nio/file/attribute/AclEntry$Builder;->checkSet(Ljava/util/Set;Ljava/lang/Class;)V
 Ljava/nio/file/attribute/AclEntry$Builder;->flags:Ljava/util/Set;
@@ -112637,9 +105650,6 @@
 Ljava/nio/file/attribute/AclEntry;->perms:Ljava/util/Set;
 Ljava/nio/file/attribute/AclEntry;->type:Ljava/nio/file/attribute/AclEntryType;
 Ljava/nio/file/attribute/AclEntry;->who:Ljava/nio/file/attribute/UserPrincipal;
-Ljava/nio/file/attribute/AclEntryFlag;-><init>()V
-Ljava/nio/file/attribute/AclEntryPermission;-><init>()V
-Ljava/nio/file/attribute/AclEntryType;-><init>()V
 Ljava/nio/file/attribute/FileTime;-><init>(JLjava/util/concurrent/TimeUnit;Ljava/time/Instant;)V
 Ljava/nio/file/attribute/FileTime;->append(Ljava/lang/StringBuilder;II)Ljava/lang/StringBuilder;
 Ljava/nio/file/attribute/FileTime;->DAYS_PER_10000_YEARS:J
@@ -112664,7 +105674,6 @@
 Ljava/nio/file/attribute/FileTime;->unit:Ljava/util/concurrent/TimeUnit;
 Ljava/nio/file/attribute/FileTime;->value:J
 Ljava/nio/file/attribute/FileTime;->valueAsString:Ljava/lang/String;
-Ljava/nio/file/attribute/PosixFilePermission;-><init>()V
 Ljava/nio/file/attribute/PosixFilePermissions;-><init>()V
 Ljava/nio/file/attribute/PosixFilePermissions;->isR(C)Z
 Ljava/nio/file/attribute/PosixFilePermissions;->isSet(CC)Z
@@ -112672,11 +105681,9 @@
 Ljava/nio/file/attribute/PosixFilePermissions;->isX(C)Z
 Ljava/nio/file/attribute/PosixFilePermissions;->writeBits(Ljava/lang/StringBuilder;ZZZ)V
 Ljava/nio/file/attribute/UserPrincipalNotFoundException;->name:Ljava/lang/String;
-Ljava/nio/file/Files$AcceptAllFilter;
 Ljava/nio/file/Files$AcceptAllFilter;-><init>()V
 Ljava/nio/file/Files$AcceptAllFilter;->accept(Ljava/nio/file/Path;)Z
 Ljava/nio/file/Files$AcceptAllFilter;->FILTER:Ljava/nio/file/Files$AcceptAllFilter;
-Ljava/nio/file/Files$FileTypeDetectors;
 Ljava/nio/file/Files$FileTypeDetectors;-><init>()V
 Ljava/nio/file/Files$FileTypeDetectors;->createDefaultFileTypeDetector()Ljava/nio/file/spi/FileTypeDetector;
 Ljava/nio/file/Files$FileTypeDetectors;->defaultFileTypeDetector:Ljava/nio/file/spi/FileTypeDetector;
@@ -112686,25 +105693,18 @@
 Ljava/nio/file/Files;->asUncheckedRunnable(Ljava/io/Closeable;)Ljava/lang/Runnable;
 Ljava/nio/file/Files;->BUFFER_SIZE:I
 Ljava/nio/file/Files;->copy(Ljava/io/InputStream;Ljava/io/OutputStream;)J
-Ljava/nio/file/Files;->createAndCheckIsDirectory(Ljava/nio/file/Path;[[Ljava/nio/file/attribute/FileAttribute;)V
-Ljava/nio/file/Files;->followLinks([[Ljava/nio/file/LinkOption;)Z
-Ljava/nio/file/Files;->isAccessible(Ljava/nio/file/Path;[[Ljava/nio/file/AccessMode;)Z
 Ljava/nio/file/Files;->MAX_BUFFER_SIZE:I
 Ljava/nio/file/Files;->provider(Ljava/nio/file/Path;)Ljava/nio/file/spi/FileSystemProvider;
 Ljava/nio/file/Files;->read(Ljava/io/InputStream;I)[B
 Ljava/nio/file/FileSystemException;->file:Ljava/lang/String;
 Ljava/nio/file/FileSystemException;->other:Ljava/lang/String;
-Ljava/nio/file/FileSystems$DefaultFileSystemHolder;
 Ljava/nio/file/FileSystems$DefaultFileSystemHolder;-><init>()V
 Ljava/nio/file/FileSystems$DefaultFileSystemHolder;->defaultFileSystem()Ljava/nio/file/FileSystem;
 Ljava/nio/file/FileSystems$DefaultFileSystemHolder;->defaultFileSystem:Ljava/nio/file/FileSystem;
 Ljava/nio/file/FileSystems$DefaultFileSystemHolder;->getDefaultProvider()Ljava/nio/file/spi/FileSystemProvider;
 Ljava/nio/file/FileSystems;-><init>()V
-Ljava/nio/file/FileVisitOption;-><init>()V
-Ljava/nio/file/FileVisitResult;-><init>()V
 Ljava/nio/file/InvalidPathException;->index:I
 Ljava/nio/file/InvalidPathException;->input:Ljava/lang/String;
-Ljava/nio/file/LinkOption;-><init>()V
 Ljava/nio/file/LinkPermission;->checkName(Ljava/lang/String;)V
 Ljava/nio/file/Paths;-><init>()V
 Ljava/nio/file/spi/FileSystemProvider;-><init>(Ljava/lang/Void;)V
@@ -112715,9 +105715,6 @@
 Ljava/nio/file/spi/FileSystemProvider;->lock:Ljava/lang/Object;
 Ljava/nio/file/spi/FileTypeDetector;-><init>(Ljava/lang/Void;)V
 Ljava/nio/file/spi/FileTypeDetector;->checkPermission()Ljava/lang/Void;
-Ljava/nio/file/StandardCopyOption;-><init>()V
-Ljava/nio/file/StandardOpenOption;-><init>()V
-Ljava/nio/file/StandardWatchEventKinds$StdWatchEventKind;
 Ljava/nio/file/StandardWatchEventKinds$StdWatchEventKind;-><init>(Ljava/lang/String;Ljava/lang/Class;)V
 Ljava/nio/file/StandardWatchEventKinds$StdWatchEventKind;->name:Ljava/lang/String;
 Ljava/nio/file/StandardWatchEventKinds$StdWatchEventKind;->type:Ljava/lang/Class;
@@ -112755,9 +105752,7 @@
 Ljava/nio/MappedByteBuffer;->mappingLength(J)J
 Ljava/nio/MappedByteBuffer;->mappingOffset()J
 Ljava/nio/MappedByteBuffer;->unused:B
-Ljava/nio/NIOAccess;
 Ljava/nio/NIOAccess;-><init>()V
-Ljava/nio/NioUtils;
 Ljava/nio/NioUtils;-><init>()V
 Ljava/nio/NioUtils;->getFD(Ljava/nio/channels/FileChannel;)Ljava/io/FileDescriptor;
 Ljava/nio/NioUtils;->newFileChannel(Ljava/io/Closeable;Ljava/io/FileDescriptor;I)Ljava/nio/channels/FileChannel;
@@ -112799,7 +105794,6 @@
 Ljava/security/cert/CertPathValidator;->CPV_TYPE:Ljava/lang/String;
 Ljava/security/cert/CertPathValidator;->provider:Ljava/security/Provider;
 Ljava/security/cert/CertPathValidator;->validatorSpi:Ljava/security/cert/CertPathValidatorSpi;
-Ljava/security/cert/CertPathValidatorException$BasicReason;-><init>()V
 Ljava/security/cert/CertPathValidatorException;->certPath:Ljava/security/cert/CertPath;
 Ljava/security/cert/CertPathValidatorException;->index:I
 Ljava/security/cert/CertPathValidatorException;->reason:Ljava/security/cert/CertPathValidatorException$Reason;
@@ -112811,7 +105805,6 @@
 Ljava/security/cert/CertStore;->type:Ljava/lang/String;
 Ljava/security/cert/CollectionCertStoreParameters;->coll:Ljava/util/Collection;
 Ljava/security/cert/CRL;->type:Ljava/lang/String;
-Ljava/security/cert/CRLReason;-><init>()V
 Ljava/security/cert/LDAPCertStoreParameters;->LDAP_DEFAULT_PORT:I
 Ljava/security/cert/LDAPCertStoreParameters;->port:I
 Ljava/security/cert/LDAPCertStoreParameters;->serverName:Ljava/lang/String;
@@ -112832,8 +105825,6 @@
 Ljava/security/cert/PKIXParameters;->sigProvider:Ljava/lang/String;
 Ljava/security/cert/PKIXParameters;->unmodInitialPolicies:Ljava/util/Set;
 Ljava/security/cert/PKIXParameters;->unmodTrustAnchors:Ljava/util/Set;
-Ljava/security/cert/PKIXReason;-><init>()V
-Ljava/security/cert/PKIXRevocationChecker$Option;-><init>()V
 Ljava/security/cert/PKIXRevocationChecker;->ocspExtensions:Ljava/util/List;
 Ljava/security/cert/PKIXRevocationChecker;->ocspResponder:Ljava/net/URI;
 Ljava/security/cert/PKIXRevocationChecker;->ocspResponderCert:Ljava/security/cert/X509Certificate;
@@ -112937,7 +105928,6 @@
 Ljava/security/CodeSigner;->signerCertPath:Ljava/security/cert/CertPath;
 Ljava/security/CodeSigner;->timestamp:Ljava/security/Timestamp;
 Ljava/security/CodeSource;->location:Ljava/net/URL;
-Ljava/security/CryptoPrimitive;-><init>()V
 Ljava/security/DigestInputStream;->on:Z
 Ljava/security/DigestOutputStream;->on:Z
 Ljava/security/DomainLoadStoreParameter;->configuration:Ljava/net/URI;
@@ -112967,7 +105957,6 @@
 Ljava/security/KeyFactory;->spi:Ljava/security/KeyFactorySpi;
 Ljava/security/KeyPair;->privateKey:Ljava/security/PrivateKey;
 Ljava/security/KeyPair;->publicKey:Ljava/security/PublicKey;
-Ljava/security/KeyPairGenerator$Delegate;
 Ljava/security/KeyPairGenerator$Delegate;-><init>(Ljava/security/KeyPairGeneratorSpi;Ljava/lang/String;)V
 Ljava/security/KeyPairGenerator$Delegate;-><init>(Lsun/security/jca/GetInstance$Instance;Ljava/util/Iterator;Ljava/lang/String;)V
 Ljava/security/KeyPairGenerator$Delegate;->disableFailover()V
@@ -112985,7 +105974,6 @@
 Ljava/security/KeyPairGenerator;->algorithm:Ljava/lang/String;
 Ljava/security/KeyPairGenerator;->disableFailover()V
 Ljava/security/KeyPairGenerator;->provider:Ljava/security/Provider;
-Ljava/security/KeyRep$Type;-><init>()V
 Ljava/security/KeyRep;->algorithm:Ljava/lang/String;
 Ljava/security/KeyRep;->encoded:[B
 Ljava/security/KeyRep;->format:Ljava/lang/String;
@@ -112993,7 +105981,6 @@
 Ljava/security/KeyRep;->RAW:Ljava/lang/String;
 Ljava/security/KeyRep;->type:Ljava/security/KeyRep$Type;
 Ljava/security/KeyRep;->X509:Ljava/lang/String;
-Ljava/security/KeyStore$Builder$FileBuilder;
 Ljava/security/KeyStore$Builder$FileBuilder;-><init>(Ljava/lang/String;Ljava/security/Provider;Ljava/io/File;Ljava/security/KeyStore$ProtectionParameter;Ljava/security/AccessControlContext;)V
 Ljava/security/KeyStore$Builder$FileBuilder;->context:Ljava/security/AccessControlContext;
 Ljava/security/KeyStore$Builder$FileBuilder;->file:Ljava/io/File;
@@ -113014,7 +106001,6 @@
 Ljava/security/KeyStore$PrivateKeyEntry;->privKey:Ljava/security/PrivateKey;
 Ljava/security/KeyStore$SecretKeyEntry;->attributes:Ljava/util/Set;
 Ljava/security/KeyStore$SecretKeyEntry;->sKey:Ljavax/crypto/SecretKey;
-Ljava/security/KeyStore$SimpleLoadStoreParameter;
 Ljava/security/KeyStore$SimpleLoadStoreParameter;-><init>(Ljava/security/KeyStore$ProtectionParameter;)V
 Ljava/security/KeyStore$SimpleLoadStoreParameter;->protection:Ljava/security/KeyStore$ProtectionParameter;
 Ljava/security/KeyStore$TrustedCertificateEntry;->attributes:Ljava/util/Set;
@@ -113023,7 +106009,6 @@
 Ljava/security/KeyStore;->KEYSTORE_TYPE:Ljava/lang/String;
 Ljava/security/KeyStore;->provider:Ljava/security/Provider;
 Ljava/security/KeyStore;->type:Ljava/lang/String;
-Ljava/security/MessageDigest$Delegate;
 Ljava/security/MessageDigest$Delegate;-><init>(Ljava/security/MessageDigestSpi;Ljava/lang/String;)V
 Ljava/security/MessageDigest$Delegate;->digestSpi:Ljava/security/MessageDigestSpi;
 Ljava/security/MessageDigest;->algorithm:Ljava/lang/String;
@@ -113040,10 +106025,8 @@
 Ljava/security/PKCS12Attribute;->name:Ljava/lang/String;
 Ljava/security/PKCS12Attribute;->parse([B)V
 Ljava/security/PKCS12Attribute;->value:Ljava/lang/String;
-Ljava/security/Policy$UnsupportedEmptyCollection;
 Ljava/security/Policy$UnsupportedEmptyCollection;-><init>()V
 Ljava/security/PrivilegedActionException;->exception:Ljava/lang/Exception;
-Ljava/security/Provider$EngineDescription;
 Ljava/security/Provider$EngineDescription;-><init>(Ljava/lang/String;ZLjava/lang/String;)V
 Ljava/security/Provider$EngineDescription;->constructorParameterClass:Ljava/lang/Class;
 Ljava/security/Provider$EngineDescription;->constructorParameterClassName:Ljava/lang/String;
@@ -113073,13 +106056,11 @@
 Ljava/security/Provider$Service;->supportsKeyClass(Ljava/security/Key;)Z
 Ljava/security/Provider$Service;->supportsKeyFormat(Ljava/security/Key;)Z
 Ljava/security/Provider$Service;->type:Ljava/lang/String;
-Ljava/security/Provider$ServiceKey;
 Ljava/security/Provider$ServiceKey;-><init>(Ljava/lang/String;Ljava/lang/String;Z)V
 Ljava/security/Provider$ServiceKey;->algorithm:Ljava/lang/String;
 Ljava/security/Provider$ServiceKey;->matches(Ljava/lang/String;Ljava/lang/String;)Z
 Ljava/security/Provider$ServiceKey;->originalAlgorithm:Ljava/lang/String;
 Ljava/security/Provider$ServiceKey;->type:Ljava/lang/String;
-Ljava/security/Provider$UString;
 Ljava/security/Provider$UString;-><init>(Ljava/lang/String;)V
 Ljava/security/Provider$UString;->lowerString:Ljava/lang/String;
 Ljava/security/Provider$UString;->string:Ljava/lang/String;
@@ -113137,7 +106118,6 @@
 Ljava/security/SecureClassLoader;->getProtectionDomain(Ljava/security/CodeSource;)Ljava/security/ProtectionDomain;
 Ljava/security/SecureClassLoader;->initialized:Z
 Ljava/security/SecureClassLoader;->pdcache:Ljava/util/HashMap;
-Ljava/security/SecureRandom$StrongPatternHolder;
 Ljava/security/SecureRandom$StrongPatternHolder;-><init>()V
 Ljava/security/SecureRandom$StrongPatternHolder;->pattern:Ljava/util/regex/Pattern;
 Ljava/security/SecureRandom;-><init>(Ljava/security/SecureRandomSpi;Ljava/security/Provider;Ljava/lang/String;)V
@@ -113154,7 +106134,6 @@
 Ljava/security/SecureRandom;->secureRandomSpi:Ljava/security/SecureRandomSpi;
 Ljava/security/SecureRandom;->seedGenerator:Ljava/security/SecureRandom;
 Ljava/security/SecureRandom;->state:[B
-Ljava/security/Security$ProviderProperty;
 Ljava/security/Security$ProviderProperty;-><init>()V
 Ljava/security/Security$ProviderProperty;->className:Ljava/lang/String;
 Ljava/security/Security$ProviderProperty;->provider:Ljava/security/Provider;
@@ -113179,11 +106158,9 @@
 Ljava/security/Security;->props:Ljava/util/Properties;
 Ljava/security/Security;->spiMap:Ljava/util/Map;
 Ljava/security/Security;->version:Ljava/util/concurrent/atomic/AtomicInteger;
-Ljava/security/Signature$CipherAdapter;
 Ljava/security/Signature$CipherAdapter;-><init>(Ljavax/crypto/Cipher;)V
 Ljava/security/Signature$CipherAdapter;->cipher:Ljavax/crypto/Cipher;
 Ljava/security/Signature$CipherAdapter;->data:Ljava/io/ByteArrayOutputStream;
-Ljava/security/Signature$Delegate;
 Ljava/security/Signature$Delegate;-><init>(Ljava/lang/String;)V
 Ljava/security/Signature$Delegate;-><init>(Ljava/security/SignatureSpi;Ljava/lang/String;)V
 Ljava/security/Signature$Delegate;->chooseFirstProvider()V
@@ -113281,13 +106258,11 @@
 Ljava/security/Timestamp;->signerCertPath:Ljava/security/cert/CertPath;
 Ljava/security/Timestamp;->timestamp:Ljava/util/Date;
 Ljava/sql/BatchUpdateException;->updateCounts:[I
-Ljava/sql/ClientInfoStatus;-><init>()V
 Ljava/sql/DataTruncation;->dataSize:I
 Ljava/sql/DataTruncation;->index:I
 Ljava/sql/DataTruncation;->parameter:Z
 Ljava/sql/DataTruncation;->read:Z
 Ljava/sql/DataTruncation;->transferSize:I
-Ljava/sql/DriverInfo;
 Ljava/sql/DriverInfo;-><init>(Ljava/sql/Driver;)V
 Ljava/sql/DriverInfo;->driver:Ljava/sql/Driver;
 Ljava/sql/DriverManager;-><init>()V
@@ -113300,7 +106275,6 @@
 Ljava/sql/DriverManager;->logWriter:Ljava/io/PrintWriter;
 Ljava/sql/DriverManager;->registeredDrivers:Ljava/util/concurrent/CopyOnWriteArrayList;
 Ljava/sql/DriverManager;->SET_LOG_PERMISSION:Ljava/sql/SQLPermission;
-Ljava/sql/RowIdLifetime;-><init>()V
 Ljava/sql/SQLClientInfoException;->failedProperties:Ljava/util/Map;
 Ljava/sql/SQLException;->next:Ljava/sql/SQLException;
 Ljava/sql/SQLException;->nextUpdater:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
@@ -113311,8 +106285,6 @@
 Ljava/text/Annotation;->value:Ljava/lang/Object;
 Ljava/text/AttributedCharacterIterator$Attribute;->instanceMap:Ljava/util/Map;
 Ljava/text/AttributedCharacterIterator$Attribute;->name:Ljava/lang/String;
-Ljava/text/AttributedString$AttributedStringIterator;
-Ljava/text/AttributedString$AttributedStringIterator;-><init>([Ljava/text/AttributedCharacterIterator$Attribute;II)V
 Ljava/text/AttributedString$AttributedStringIterator;->beginIndex:I
 Ljava/text/AttributedString$AttributedStringIterator;->currentIndex:I
 Ljava/text/AttributedString$AttributedStringIterator;->currentRunIndex:I
@@ -113323,8 +106295,6 @@
 Ljava/text/AttributedString$AttributedStringIterator;->internalSetIndex(I)C
 Ljava/text/AttributedString$AttributedStringIterator;->relevantAttributes:[Ljava/text/AttributedCharacterIterator$Attribute;
 Ljava/text/AttributedString$AttributedStringIterator;->updateRunInfo()V
-Ljava/text/AttributedString$AttributeMap;
-Ljava/text/AttributedString$AttributeMap;-><init>(III)V
 Ljava/text/AttributedString$AttributeMap;->beginIndex:I
 Ljava/text/AttributedString$AttributeMap;->endIndex:I
 Ljava/text/AttributedString$AttributeMap;->runIndex:I
@@ -113353,7 +106323,6 @@
 Ljava/text/Bidi;-><init>(Landroid/icu/text/Bidi;)V
 Ljava/text/Bidi;->bidiBase:Landroid/icu/text/Bidi;
 Ljava/text/Bidi;->translateConstToIcu(I)I
-Ljava/text/CalendarBuilder;
 Ljava/text/CalendarBuilder;-><init>()V
 Ljava/text/CalendarBuilder;->addYear(I)Ljava/text/CalendarBuilder;
 Ljava/text/CalendarBuilder;->clear(I)Ljava/text/CalendarBuilder;
@@ -113507,8 +106476,6 @@
 Ljava/text/DecimalFormatSymbols;->serialVersionOnStream:I
 Ljava/text/DecimalFormatSymbols;->setExponentialSymbol(C)V
 Ljava/text/DecimalFormatSymbols;->zeroDigit:C
-Ljava/text/FieldPosition$Delegate;
-Ljava/text/FieldPosition$Delegate;-><init>()V
 Ljava/text/FieldPosition$Delegate;->encounteredField:Z
 Ljava/text/FieldPosition$Delegate;->formatted(ILjava/text/Format$Field;Ljava/lang/Object;IILjava/lang/StringBuffer;)V
 Ljava/text/FieldPosition$Delegate;->formatted(Ljava/text/Format$Field;Ljava/lang/Object;IILjava/lang/StringBuffer;)V
@@ -113519,7 +106486,6 @@
 Ljava/text/FieldPosition;->getFieldDelegate()Ljava/text/Format$FieldDelegate;
 Ljava/text/FieldPosition;->matchesField(Ljava/text/Format$Field;)Z
 Ljava/text/FieldPosition;->matchesField(Ljava/text/Format$Field;I)Z
-Ljava/text/Format$FieldDelegate;
 Ljava/text/Format$FieldDelegate;->formatted(ILjava/text/Format$Field;Ljava/lang/Object;IILjava/lang/StringBuffer;)V
 Ljava/text/Format$FieldDelegate;->formatted(Ljava/text/Format$Field;Ljava/lang/Object;IILjava/lang/StringBuffer;)V
 Ljava/text/Format;->createAttributedCharacterIterator(Ljava/lang/String;)Ljava/text/AttributedCharacterIterator;
@@ -113559,7 +106525,6 @@
 Ljava/text/MessageFormat;->TYPE_NULL:I
 Ljava/text/MessageFormat;->TYPE_NUMBER:I
 Ljava/text/MessageFormat;->TYPE_TIME:I
-Ljava/text/Normalizer$Form;-><init>(Landroid/icu/text/Normalizer$Mode;)V
 Ljava/text/Normalizer$Form;->icuMode:Landroid/icu/text/Normalizer$Mode;
 Ljava/text/Normalizer;-><init>()V
 Ljava/text/NumberFormat$Field;->instanceMap:Ljava/util/Map;
@@ -113668,7 +106633,6 @@
 Ljava/time/chrono/AbstractChronology;->resolveYMAD(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
 Ljava/time/chrono/AbstractChronology;->resolveYMD(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/chrono/ChronoLocalDate;
 Ljava/time/chrono/AbstractChronology;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/chrono/ChronoLocalDateImpl;
 Ljava/time/chrono/ChronoLocalDateImpl;-><init>()V
 Ljava/time/chrono/ChronoLocalDateImpl;->daysUntil(Ljava/time/chrono/ChronoLocalDate;)J
 Ljava/time/chrono/ChronoLocalDateImpl;->ensureValid(Ljava/time/chrono/Chronology;Ljava/time/temporal/Temporal;)Ljava/time/chrono/ChronoLocalDate;
@@ -113751,12 +106715,10 @@
 Ljava/time/chrono/HijrahDate;->readExternal(Ljava/io/ObjectInput;)Ljava/time/chrono/HijrahDate;
 Ljava/time/chrono/HijrahDate;->resolvePreviousValid(III)Ljava/time/chrono/HijrahDate;
 Ljava/time/chrono/HijrahDate;->writeExternal(Ljava/io/ObjectOutput;)V
-Ljava/time/chrono/HijrahEra;-><init>()V
 Ljava/time/chrono/IsoChronology;-><init>()V
 Ljava/time/chrono/IsoChronology;->resolveProlepticMonth(Ljava/util/Map;Ljava/time/format/ResolverStyle;)V
 Ljava/time/chrono/IsoChronology;->resolveYearOfEra(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/LocalDate;
 Ljava/time/chrono/IsoChronology;->resolveYMD(Ljava/util/Map;Ljava/time/format/ResolverStyle;)Ljava/time/LocalDate;
-Ljava/time/chrono/IsoEra;-><init>()V
 Ljava/time/chrono/JapaneseChronology;-><init>()V
 Ljava/time/chrono/JapaneseChronology;->createCalendar()Ljava/util/Calendar;
 Ljava/time/chrono/JapaneseChronology;->getCurrentEra()Ljava/time/chrono/JapaneseEra;
@@ -113820,7 +106782,6 @@
 Ljava/time/chrono/MinguoDate;->readExternal(Ljava/io/DataInput;)Ljava/time/chrono/MinguoDate;
 Ljava/time/chrono/MinguoDate;->with(Ljava/time/LocalDate;)Ljava/time/chrono/MinguoDate;
 Ljava/time/chrono/MinguoDate;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/chrono/MinguoEra;-><init>()V
 Ljava/time/chrono/ThaiBuddhistChronology;-><init>()V
 Ljava/time/chrono/ThaiBuddhistChronology;->ERA_FULL_NAMES:Ljava/util/HashMap;
 Ljava/time/chrono/ThaiBuddhistChronology;->ERA_NARROW_NAMES:Ljava/util/HashMap;
@@ -113843,25 +106804,18 @@
 Ljava/time/chrono/ThaiBuddhistDate;->readExternal(Ljava/io/DataInput;)Ljava/time/chrono/ThaiBuddhistDate;
 Ljava/time/chrono/ThaiBuddhistDate;->with(Ljava/time/LocalDate;)Ljava/time/chrono/ThaiBuddhistDate;
 Ljava/time/chrono/ThaiBuddhistDate;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/chrono/ThaiBuddhistEra;-><init>()V
-Ljava/time/Clock$FixedClock;
 Ljava/time/Clock$FixedClock;-><init>(Ljava/time/Instant;Ljava/time/ZoneId;)V
 Ljava/time/Clock$FixedClock;->instant:Ljava/time/Instant;
 Ljava/time/Clock$FixedClock;->zone:Ljava/time/ZoneId;
-Ljava/time/Clock$OffsetClock;
 Ljava/time/Clock$OffsetClock;-><init>(Ljava/time/Clock;Ljava/time/Duration;)V
 Ljava/time/Clock$OffsetClock;->baseClock:Ljava/time/Clock;
 Ljava/time/Clock$OffsetClock;->offset:Ljava/time/Duration;
-Ljava/time/Clock$SystemClock;
 Ljava/time/Clock$SystemClock;-><init>(Ljava/time/ZoneId;)V
 Ljava/time/Clock$SystemClock;->zone:Ljava/time/ZoneId;
-Ljava/time/Clock$TickClock;
 Ljava/time/Clock$TickClock;-><init>(Ljava/time/Clock;J)V
 Ljava/time/Clock$TickClock;->baseClock:Ljava/time/Clock;
 Ljava/time/Clock$TickClock;->tickNanos:J
-Ljava/time/DayOfWeek;-><init>()V
 Ljava/time/DayOfWeek;->ENUMS:[Ljava/time/DayOfWeek;
-Ljava/time/Duration$DurationUnits;
 Ljava/time/Duration$DurationUnits;-><init>()V
 Ljava/time/Duration$DurationUnits;->UNITS:Ljava/util/List;
 Ljava/time/Duration;-><init>(JI)V
@@ -113877,7 +106831,6 @@
 Ljava/time/Duration;->readExternal(Ljava/io/DataInput;)Ljava/time/Duration;
 Ljava/time/Duration;->seconds:J
 Ljava/time/Duration;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/format/DateTimeFormatter$ClassicFormat;
 Ljava/time/format/DateTimeFormatter$ClassicFormat;-><init>(Ljava/time/format/DateTimeFormatter;Ljava/time/temporal/TemporalQuery;)V
 Ljava/time/format/DateTimeFormatter$ClassicFormat;->formatter:Ljava/time/format/DateTimeFormatter;
 Ljava/time/format/DateTimeFormatter$ClassicFormat;->parseType:Ljava/time/temporal/TemporalQuery;
@@ -113895,18 +106848,15 @@
 Ljava/time/format/DateTimeFormatter;->resolverStyle:Ljava/time/format/ResolverStyle;
 Ljava/time/format/DateTimeFormatter;->toPrinterParser(Z)Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;
 Ljava/time/format/DateTimeFormatter;->zone:Ljava/time/ZoneId;
-Ljava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser;
 Ljava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser;-><init>(C)V
 Ljava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
 Ljava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser;->literal:C
 Ljava/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$ChronoPrinterParser;
 Ljava/time/format/DateTimeFormatterBuilder$ChronoPrinterParser;-><init>(Ljava/time/format/TextStyle;)V
 Ljava/time/format/DateTimeFormatterBuilder$ChronoPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
 Ljava/time/format/DateTimeFormatterBuilder$ChronoPrinterParser;->getChronologyName(Ljava/time/chrono/Chronology;Ljava/util/Locale;)Ljava/lang/String;
 Ljava/time/format/DateTimeFormatterBuilder$ChronoPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
 Ljava/time/format/DateTimeFormatterBuilder$ChronoPrinterParser;->textStyle:Ljava/time/format/TextStyle;
-Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;
 Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;-><init>(Ljava/util/List;Z)V
 Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;-><init>([Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;Z)V
 Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
@@ -113914,16 +106864,13 @@
 Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
 Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;->printerParsers:[Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;
 Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;->withOptional(Z)Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;
 Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
 Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$DefaultValueParser;
 Ljava/time/format/DateTimeFormatterBuilder$DefaultValueParser;-><init>(Ljava/time/temporal/TemporalField;J)V
 Ljava/time/format/DateTimeFormatterBuilder$DefaultValueParser;->field:Ljava/time/temporal/TemporalField;
 Ljava/time/format/DateTimeFormatterBuilder$DefaultValueParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
 Ljava/time/format/DateTimeFormatterBuilder$DefaultValueParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
 Ljava/time/format/DateTimeFormatterBuilder$DefaultValueParser;->value:J
-Ljava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;
 Ljava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;-><init>(Ljava/time/temporal/TemporalField;IIZ)V
 Ljava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->convertFromFraction(Ljava/math/BigDecimal;)J
 Ljava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->convertToFraction(J)Ljava/math/BigDecimal;
@@ -113933,21 +106880,18 @@
 Ljava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->maxWidth:I
 Ljava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->minWidth:I
 Ljava/time/format/DateTimeFormatterBuilder$FractionPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;
 Ljava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;-><init>(I)V
 Ljava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
 Ljava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;->fractionalDigits:I
 Ljava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
 Ljava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;->SECONDS_0000_TO_1970:J
 Ljava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;->SECONDS_PER_10000_YEARS:J
-Ljava/time/format/DateTimeFormatterBuilder$LocalizedOffsetIdPrinterParser;
 Ljava/time/format/DateTimeFormatterBuilder$LocalizedOffsetIdPrinterParser;-><init>(Ljava/time/format/TextStyle;)V
 Ljava/time/format/DateTimeFormatterBuilder$LocalizedOffsetIdPrinterParser;->appendHMS(Ljava/lang/StringBuilder;I)Ljava/lang/StringBuilder;
 Ljava/time/format/DateTimeFormatterBuilder$LocalizedOffsetIdPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
 Ljava/time/format/DateTimeFormatterBuilder$LocalizedOffsetIdPrinterParser;->getDigit(Ljava/lang/CharSequence;I)I
 Ljava/time/format/DateTimeFormatterBuilder$LocalizedOffsetIdPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
 Ljava/time/format/DateTimeFormatterBuilder$LocalizedOffsetIdPrinterParser;->style:Ljava/time/format/TextStyle;
-Ljava/time/format/DateTimeFormatterBuilder$LocalizedPrinterParser;
 Ljava/time/format/DateTimeFormatterBuilder$LocalizedPrinterParser;-><init>(Ljava/time/format/FormatStyle;Ljava/time/format/FormatStyle;)V
 Ljava/time/format/DateTimeFormatterBuilder$LocalizedPrinterParser;->dateStyle:Ljava/time/format/FormatStyle;
 Ljava/time/format/DateTimeFormatterBuilder$LocalizedPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
@@ -113955,7 +106899,6 @@
 Ljava/time/format/DateTimeFormatterBuilder$LocalizedPrinterParser;->FORMATTER_CACHE:Ljava/util/concurrent/ConcurrentMap;
 Ljava/time/format/DateTimeFormatterBuilder$LocalizedPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
 Ljava/time/format/DateTimeFormatterBuilder$LocalizedPrinterParser;->timeStyle:Ljava/time/format/FormatStyle;
-Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;
 Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;-><init>(Ljava/time/temporal/TemporalField;IILjava/time/format/SignStyle;)V
 Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;-><init>(Ljava/time/temporal/TemporalField;IILjava/time/format/SignStyle;I)V
 Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->EXCEED_POINTS:[J
@@ -113971,7 +106914,6 @@
 Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->subsequentWidth:I
 Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->withFixedWidth()Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;
 Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;->withSubsequentWidth(I)Ljava/time/format/DateTimeFormatterBuilder$NumberPrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;
 Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->checkPattern(Ljava/lang/String;)I
 Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
@@ -113982,25 +106924,21 @@
 Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->parseNumber([IILjava/lang/CharSequence;Z)Z
 Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->PATTERNS:[Ljava/lang/String;
 Ljava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;->type:I
-Ljava/time/format/DateTimeFormatterBuilder$PadPrinterParserDecorator;
 Ljava/time/format/DateTimeFormatterBuilder$PadPrinterParserDecorator;-><init>(Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;IC)V
 Ljava/time/format/DateTimeFormatterBuilder$PadPrinterParserDecorator;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
 Ljava/time/format/DateTimeFormatterBuilder$PadPrinterParserDecorator;->padChar:C
 Ljava/time/format/DateTimeFormatterBuilder$PadPrinterParserDecorator;->padWidth:I
 Ljava/time/format/DateTimeFormatterBuilder$PadPrinterParserDecorator;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
 Ljava/time/format/DateTimeFormatterBuilder$PadPrinterParserDecorator;->printerParser:Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$CI;
 Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$CI;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;)V
 Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$CI;->isEqual(CC)Z
 Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$CI;->newNode(Ljava/lang/String;Ljava/lang/String;Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$CI;
 Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$CI;->prefixOf(Ljava/lang/CharSequence;II)Z
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$LENIENT;
 Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$LENIENT;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;)V
 Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$LENIENT;->isLenientChar(C)Z
 Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$LENIENT;->match(Ljava/lang/CharSequence;Ljava/text/ParsePosition;)Ljava/lang/String;
 Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$LENIENT;->newNode(Ljava/lang/String;Ljava/lang/String;Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;)Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$CI;
 Ljava/time/format/DateTimeFormatterBuilder$PrefixTree$LENIENT;->toKey(Ljava/lang/String;)Ljava/lang/String;
-Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
 Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;)V
 Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->add(Ljava/lang/String;Ljava/lang/String;)Z
 Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->add0(Ljava/lang/String;Ljava/lang/String;)Z
@@ -114019,7 +106957,6 @@
 Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->sibling:Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;
 Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->toKey(Ljava/lang/String;)Ljava/lang/String;
 Ljava/time/format/DateTimeFormatterBuilder$PrefixTree;->value:Ljava/lang/String;
-Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;
 Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;-><init>(Ljava/time/temporal/TemporalField;IIILjava/time/chrono/ChronoLocalDate;)V
 Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;-><init>(Ljava/time/temporal/TemporalField;IIILjava/time/chrono/ChronoLocalDate;I)V
 Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;->baseDate:Ljava/time/chrono/ChronoLocalDate;
@@ -114030,8 +106967,6 @@
 Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;->setValue(Ljava/time/format/DateTimeParseContext;JII)I
 Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;->withFixedWidth()Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;
 Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;->withSubsequentWidth(I)Ljava/time/format/DateTimeFormatterBuilder$ReducedPrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;
-Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;-><init>()V
 Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
 Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;->INSENSITIVE:Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;
 Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;->LENIENT:Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;
@@ -114040,12 +106975,10 @@
 Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;->STRICT:Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;
 Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;->valueOf(Ljava/lang/String;)Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;
 Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;->values()[Ljava/time/format/DateTimeFormatterBuilder$SettingsParser;
-Ljava/time/format/DateTimeFormatterBuilder$StringLiteralPrinterParser;
 Ljava/time/format/DateTimeFormatterBuilder$StringLiteralPrinterParser;-><init>(Ljava/lang/String;)V
 Ljava/time/format/DateTimeFormatterBuilder$StringLiteralPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
 Ljava/time/format/DateTimeFormatterBuilder$StringLiteralPrinterParser;->literal:Ljava/lang/String;
 Ljava/time/format/DateTimeFormatterBuilder$StringLiteralPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
-Ljava/time/format/DateTimeFormatterBuilder$TextPrinterParser;
 Ljava/time/format/DateTimeFormatterBuilder$TextPrinterParser;-><init>(Ljava/time/temporal/TemporalField;Ljava/time/format/TextStyle;Ljava/time/format/DateTimeTextProvider;)V
 Ljava/time/format/DateTimeFormatterBuilder$TextPrinterParser;->field:Ljava/time/temporal/TemporalField;
 Ljava/time/format/DateTimeFormatterBuilder$TextPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
@@ -114054,14 +106987,12 @@
 Ljava/time/format/DateTimeFormatterBuilder$TextPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
 Ljava/time/format/DateTimeFormatterBuilder$TextPrinterParser;->provider:Ljava/time/format/DateTimeTextProvider;
 Ljava/time/format/DateTimeFormatterBuilder$TextPrinterParser;->textStyle:Ljava/time/format/TextStyle;
-Ljava/time/format/DateTimeFormatterBuilder$WeekBasedFieldPrinterParser;
 Ljava/time/format/DateTimeFormatterBuilder$WeekBasedFieldPrinterParser;-><init>(CI)V
 Ljava/time/format/DateTimeFormatterBuilder$WeekBasedFieldPrinterParser;->chr:C
 Ljava/time/format/DateTimeFormatterBuilder$WeekBasedFieldPrinterParser;->count:I
 Ljava/time/format/DateTimeFormatterBuilder$WeekBasedFieldPrinterParser;->format(Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
 Ljava/time/format/DateTimeFormatterBuilder$WeekBasedFieldPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
 Ljava/time/format/DateTimeFormatterBuilder$WeekBasedFieldPrinterParser;->printerParser(Ljava/util/Locale;)Ljava/time/format/DateTimeFormatterBuilder$DateTimePrinterParser;
-Ljava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;
 Ljava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;-><init>(Ljava/time/temporal/TemporalQuery;Ljava/lang/String;)V
 Ljava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->cachedPrefixTree:Ljava/util/Map$Entry;
 Ljava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->cachedPrefixTreeCI:Ljava/util/Map$Entry;
@@ -114071,7 +107002,6 @@
 Ljava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->parse(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
 Ljava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->parseOffsetBased(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;IILjava/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser;)I
 Ljava/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser;->query:Ljava/time/temporal/TemporalQuery;
-Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;
 Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;-><init>(Ljava/time/format/TextStyle;Ljava/util/Set;)V
 Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->cache:Ljava/util/Map;
 Ljava/time/format/DateTimeFormatterBuilder$ZoneTextPrinterParser;->cachedTree:Ljava/util/Map;
@@ -114105,7 +107035,6 @@
 Ljava/time/format/DateTimeFormatterBuilder;->toFormatter(Ljava/time/format/ResolverStyle;Ljava/time/chrono/Chronology;)Ljava/time/format/DateTimeFormatter;
 Ljava/time/format/DateTimeFormatterBuilder;->toFormatter(Ljava/util/Locale;Ljava/time/format/ResolverStyle;Ljava/time/chrono/Chronology;)Ljava/time/format/DateTimeFormatter;
 Ljava/time/format/DateTimeFormatterBuilder;->valueParserIndex:I
-Ljava/time/format/DateTimeParseContext;
 Ljava/time/format/DateTimeParseContext;-><init>(Ljava/time/format/DateTimeFormatter;)V
 Ljava/time/format/DateTimeParseContext;->addChronoChangedListener(Ljava/util/function/Consumer;)V
 Ljava/time/format/DateTimeParseContext;->caseSensitive:Z
@@ -114136,7 +107065,6 @@
 Ljava/time/format/DateTimeParseContext;->toUnresolved()Ljava/time/format/Parsed;
 Ljava/time/format/DateTimeParseException;->errorIndex:I
 Ljava/time/format/DateTimeParseException;->parsedString:Ljava/lang/String;
-Ljava/time/format/DateTimePrintContext;
 Ljava/time/format/DateTimePrintContext;-><init>(Ljava/time/temporal/TemporalAccessor;Ljava/time/format/DateTimeFormatter;)V
 Ljava/time/format/DateTimePrintContext;->adjust(Ljava/time/temporal/TemporalAccessor;Ljava/time/format/DateTimeFormatter;)Ljava/time/temporal/TemporalAccessor;
 Ljava/time/format/DateTimePrintContext;->endOptional()V
@@ -114149,13 +107077,11 @@
 Ljava/time/format/DateTimePrintContext;->optional:I
 Ljava/time/format/DateTimePrintContext;->startOptional()V
 Ljava/time/format/DateTimePrintContext;->temporal:Ljava/time/temporal/TemporalAccessor;
-Ljava/time/format/DateTimeTextProvider$LocaleStore;
 Ljava/time/format/DateTimeTextProvider$LocaleStore;-><init>(Ljava/util/Map;)V
 Ljava/time/format/DateTimeTextProvider$LocaleStore;->getText(JLjava/time/format/TextStyle;)Ljava/lang/String;
 Ljava/time/format/DateTimeTextProvider$LocaleStore;->getTextIterator(Ljava/time/format/TextStyle;)Ljava/util/Iterator;
 Ljava/time/format/DateTimeTextProvider$LocaleStore;->parsable:Ljava/util/Map;
 Ljava/time/format/DateTimeTextProvider$LocaleStore;->valueTextMap:Ljava/util/Map;
-Ljava/time/format/DateTimeTextProvider;
 Ljava/time/format/DateTimeTextProvider;-><init>()V
 Ljava/time/format/DateTimeTextProvider;->CACHE:Ljava/util/concurrent/ConcurrentMap;
 Ljava/time/format/DateTimeTextProvider;->COMPARATOR:Ljava/util/Comparator;
@@ -114178,8 +107104,6 @@
 Ljava/time/format/DecimalStyle;->negativeSign:C
 Ljava/time/format/DecimalStyle;->positiveSign:C
 Ljava/time/format/DecimalStyle;->zeroDigit:C
-Ljava/time/format/FormatStyle;-><init>()V
-Ljava/time/format/Parsed;
 Ljava/time/format/Parsed;-><init>()V
 Ljava/time/format/Parsed;->chrono:Ljava/time/chrono/Chronology;
 Ljava/time/format/Parsed;->copy()Ljava/time/format/Parsed;
@@ -114206,10 +107130,7 @@
 Ljava/time/format/Parsed;->updateCheckConflict(Ljava/time/LocalTime;Ljava/time/Period;)V
 Ljava/time/format/Parsed;->updateCheckConflict(Ljava/time/temporal/TemporalField;Ljava/time/temporal/TemporalField;Ljava/lang/Long;)V
 Ljava/time/format/Parsed;->zone:Ljava/time/ZoneId;
-Ljava/time/format/ResolverStyle;-><init>()V
-Ljava/time/format/SignStyle;-><init>()V
 Ljava/time/format/SignStyle;->parse(ZZZ)Z
-Ljava/time/format/TextStyle;-><init>(II)V
 Ljava/time/format/TextStyle;->calendarStyle:I
 Ljava/time/format/TextStyle;->toCalendarStyle()I
 Ljava/time/format/TextStyle;->zoneNameStyleIndex()I
@@ -114270,7 +107191,6 @@
 Ljava/time/LocalTime;->SECONDS_PER_HOUR:I
 Ljava/time/LocalTime;->SECONDS_PER_MINUTE:I
 Ljava/time/LocalTime;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/Month;-><init>()V
 Ljava/time/Month;->ENUMS:[Ljava/time/Month;
 Ljava/time/MonthDay;-><init>(II)V
 Ljava/time/MonthDay;->day:I
@@ -114302,19 +107222,14 @@
 Ljava/time/Period;->validateChrono(Ljava/time/temporal/TemporalAccessor;)V
 Ljava/time/Period;->writeExternal(Ljava/io/DataOutput;)V
 Ljava/time/Period;->years:I
-Ljava/time/temporal/ChronoField;-><init>(Ljava/lang/String;Ljava/time/temporal/TemporalUnit;Ljava/time/temporal/TemporalUnit;Ljava/time/temporal/ValueRange;)V
-Ljava/time/temporal/ChronoField;-><init>(Ljava/lang/String;Ljava/time/temporal/TemporalUnit;Ljava/time/temporal/TemporalUnit;Ljava/time/temporal/ValueRange;Ljava/lang/String;)V
 Ljava/time/temporal/ChronoField;->baseUnit:Ljava/time/temporal/TemporalUnit;
 Ljava/time/temporal/ChronoField;->displayNameKey:Ljava/lang/String;
 Ljava/time/temporal/ChronoField;->getIcuFieldNumber(Ljava/time/temporal/ChronoField;)I
 Ljava/time/temporal/ChronoField;->name:Ljava/lang/String;
 Ljava/time/temporal/ChronoField;->range:Ljava/time/temporal/ValueRange;
 Ljava/time/temporal/ChronoField;->rangeUnit:Ljava/time/temporal/TemporalUnit;
-Ljava/time/temporal/ChronoUnit;-><init>(Ljava/lang/String;Ljava/time/Duration;)V
 Ljava/time/temporal/ChronoUnit;->duration:Ljava/time/Duration;
 Ljava/time/temporal/ChronoUnit;->name:Ljava/lang/String;
-Ljava/time/temporal/IsoFields$Field;
-Ljava/time/temporal/IsoFields$Field;-><init>()V
 Ljava/time/temporal/IsoFields$Field;->DAY_OF_QUARTER:Ljava/time/temporal/IsoFields$Field;
 Ljava/time/temporal/IsoFields$Field;->ensureIso(Ljava/time/temporal/TemporalAccessor;)V
 Ljava/time/temporal/IsoFields$Field;->getWeek(Ljava/time/LocalDate;)I
@@ -114328,8 +107243,6 @@
 Ljava/time/temporal/IsoFields$Field;->values()[Ljava/time/temporal/IsoFields$Field;
 Ljava/time/temporal/IsoFields$Field;->WEEK_BASED_YEAR:Ljava/time/temporal/IsoFields$Field;
 Ljava/time/temporal/IsoFields$Field;->WEEK_OF_WEEK_BASED_YEAR:Ljava/time/temporal/IsoFields$Field;
-Ljava/time/temporal/IsoFields$Unit;
-Ljava/time/temporal/IsoFields$Unit;-><init>(Ljava/lang/String;Ljava/time/Duration;)V
 Ljava/time/temporal/IsoFields$Unit;->duration:Ljava/time/Duration;
 Ljava/time/temporal/IsoFields$Unit;->name:Ljava/lang/String;
 Ljava/time/temporal/IsoFields$Unit;->QUARTER_YEARS:Ljava/time/temporal/IsoFields$Unit;
@@ -114337,8 +107250,6 @@
 Ljava/time/temporal/IsoFields$Unit;->values()[Ljava/time/temporal/IsoFields$Unit;
 Ljava/time/temporal/IsoFields$Unit;->WEEK_BASED_YEARS:Ljava/time/temporal/IsoFields$Unit;
 Ljava/time/temporal/IsoFields;-><init>()V
-Ljava/time/temporal/JulianFields$Field;
-Ljava/time/temporal/JulianFields$Field;-><init>(Ljava/lang/String;Ljava/time/temporal/TemporalUnit;Ljava/time/temporal/TemporalUnit;J)V
 Ljava/time/temporal/JulianFields$Field;->baseUnit:Ljava/time/temporal/TemporalUnit;
 Ljava/time/temporal/JulianFields$Field;->JULIAN_DAY:Ljava/time/temporal/JulianFields$Field;
 Ljava/time/temporal/JulianFields$Field;->MODIFIED_JULIAN_DAY:Ljava/time/temporal/JulianFields$Field;
@@ -114366,7 +107277,6 @@
 Ljava/time/temporal/ValueRange;->maxSmallest:J
 Ljava/time/temporal/ValueRange;->minLargest:J
 Ljava/time/temporal/ValueRange;->minSmallest:J
-Ljava/time/temporal/WeekFields$ComputedDayOfField;
 Ljava/time/temporal/WeekFields$ComputedDayOfField;-><init>(Ljava/lang/String;Ljava/time/temporal/WeekFields;Ljava/time/temporal/TemporalUnit;Ljava/time/temporal/TemporalUnit;Ljava/time/temporal/ValueRange;)V
 Ljava/time/temporal/WeekFields$ComputedDayOfField;->baseUnit:Ljava/time/temporal/TemporalUnit;
 Ljava/time/temporal/WeekFields$ComputedDayOfField;->computeWeek(II)I
@@ -114427,7 +107337,6 @@
 Ljava/time/zone/ZoneOffsetTransition;->readExternal(Ljava/io/DataInput;)Ljava/time/zone/ZoneOffsetTransition;
 Ljava/time/zone/ZoneOffsetTransition;->transition:Ljava/time/LocalDateTime;
 Ljava/time/zone/ZoneOffsetTransition;->writeExternal(Ljava/io/DataOutput;)V
-Ljava/time/zone/ZoneOffsetTransitionRule$TimeDefinition;-><init>()V
 Ljava/time/zone/ZoneOffsetTransitionRule;-><init>(Ljava/time/Month;ILjava/time/DayOfWeek;Ljava/time/LocalTime;ZLjava/time/zone/ZoneOffsetTransitionRule$TimeDefinition;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;Ljava/time/ZoneOffset;)V
 Ljava/time/zone/ZoneOffsetTransitionRule;->dom:B
 Ljava/time/zone/ZoneOffsetTransitionRule;->dow:Ljava/time/DayOfWeek;
@@ -114491,14 +107400,10 @@
 Ljava/util/AbstractCollection;->finishToArray([Ljava/lang/Object;Ljava/util/Iterator;)[Ljava/lang/Object;
 Ljava/util/AbstractCollection;->hugeCapacity(I)I
 Ljava/util/AbstractCollection;->MAX_ARRAY_SIZE:I
-Ljava/util/AbstractList$Itr;
-Ljava/util/AbstractList$Itr;-><init>()V
 Ljava/util/AbstractList$Itr;->checkForComodification()V
 Ljava/util/AbstractList$Itr;->cursor:I
 Ljava/util/AbstractList$Itr;->expectedModCount:I
 Ljava/util/AbstractList$Itr;->lastRet:I
-Ljava/util/AbstractList$ListItr;
-Ljava/util/AbstractList$ListItr;-><init>(I)V
 Ljava/util/AbstractList;->outOfBoundsMsg(I)Ljava/lang/String;
 Ljava/util/AbstractList;->rangeCheckForAdd(I)V
 Ljava/util/AbstractMap$SimpleEntry;->key:Ljava/lang/Object;
@@ -114508,12 +107413,9 @@
 Ljava/util/AbstractMap;->eq(Ljava/lang/Object;Ljava/lang/Object;)Z
 Ljava/util/AbstractMap;->keySet:Ljava/util/Set;
 Ljava/util/AbstractMap;->values:Ljava/util/Collection;
-Ljava/util/ArrayDeque$DeqIterator;
-Ljava/util/ArrayDeque$DeqIterator;-><init>()V
 Ljava/util/ArrayDeque$DeqIterator;->cursor:I
 Ljava/util/ArrayDeque$DeqIterator;->fence:I
 Ljava/util/ArrayDeque$DeqIterator;->lastRet:I
-Ljava/util/ArrayDeque$DeqSpliterator;
 Ljava/util/ArrayDeque$DeqSpliterator;-><init>(Ljava/util/ArrayDeque;II)V
 Ljava/util/ArrayDeque$DeqSpliterator;->deq:Ljava/util/ArrayDeque;
 Ljava/util/ArrayDeque$DeqSpliterator;->fence:I
@@ -114521,8 +107423,6 @@
 Ljava/util/ArrayDeque$DeqSpliterator;->getFence()I
 Ljava/util/ArrayDeque$DeqSpliterator;->index:I
 Ljava/util/ArrayDeque$DeqSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/ArrayDeque$DescendingIterator;
-Ljava/util/ArrayDeque$DescendingIterator;-><init>()V
 Ljava/util/ArrayDeque$DescendingIterator;->cursor:I
 Ljava/util/ArrayDeque$DescendingIterator;->fence:I
 Ljava/util/ArrayDeque$DescendingIterator;->lastRet:I
@@ -114531,7 +107431,6 @@
 Ljava/util/ArrayDeque;->delete(I)Z
 Ljava/util/ArrayDeque;->doubleCapacity()V
 Ljava/util/ArrayDeque;->MIN_INITIAL_CAPACITY:I
-Ljava/util/ArrayList$ArrayListSpliterator;
 Ljava/util/ArrayList$ArrayListSpliterator;-><init>(Ljava/util/ArrayList;III)V
 Ljava/util/ArrayList$ArrayListSpliterator;->expectedModCount:I
 Ljava/util/ArrayList$ArrayListSpliterator;->fence:I
@@ -114540,16 +107439,10 @@
 Ljava/util/ArrayList$ArrayListSpliterator;->index:I
 Ljava/util/ArrayList$ArrayListSpliterator;->list:Ljava/util/ArrayList;
 Ljava/util/ArrayList$ArrayListSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/ArrayList$Itr;
-Ljava/util/ArrayList$Itr;-><init>()V
 Ljava/util/ArrayList$Itr;->cursor:I
 Ljava/util/ArrayList$Itr;->expectedModCount:I
 Ljava/util/ArrayList$Itr;->lastRet:I
 Ljava/util/ArrayList$Itr;->limit:I
-Ljava/util/ArrayList$ListItr;
-Ljava/util/ArrayList$ListItr;-><init>(I)V
-Ljava/util/ArrayList$SubList;
-Ljava/util/ArrayList$SubList;-><init>(Ljava/util/AbstractList;III)V
 Ljava/util/ArrayList$SubList;->outOfBoundsMsg(I)Ljava/lang/String;
 Ljava/util/ArrayList;->batchRemove(Ljava/util/Collection;Z)Z
 Ljava/util/ArrayList;->DEFAULTCAPACITY_EMPTY_ELEMENTDATA:[Ljava/lang/Object;
@@ -114563,10 +107456,8 @@
 Ljava/util/ArrayList;->MAX_ARRAY_SIZE:I
 Ljava/util/ArrayList;->outOfBoundsMsg(I)Ljava/lang/String;
 Ljava/util/ArrayList;->subListRangeCheck(III)V
-Ljava/util/Arrays$ArrayList;
 Ljava/util/Arrays$ArrayList;-><init>([Ljava/lang/Object;)V
 Ljava/util/Arrays$ArrayList;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/Arrays$NaturalOrder;
 Ljava/util/Arrays$NaturalOrder;-><init>()V
 Ljava/util/Arrays$NaturalOrder;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
 Ljava/util/Arrays$NaturalOrder;->INSTANCE:Ljava/util/Arrays$NaturalOrder;
@@ -114586,7 +107477,6 @@
 Ljava/util/Arrays;->MIN_ARRAY_SORT_GRAN:I
 Ljava/util/Arrays;->rangeCheck(III)V
 Ljava/util/Arrays;->swap([Ljava/lang/Object;II)V
-Ljava/util/Base64$DecInputStream;
 Ljava/util/Base64$DecInputStream;-><init>(Ljava/io/InputStream;[IZ)V
 Ljava/util/Base64$DecInputStream;->base64:[I
 Ljava/util/Base64$DecInputStream;->bits:I
@@ -114621,7 +107511,6 @@
 Ljava/util/Base64$Encoder;->RFC4648_URLSAFE:Ljava/util/Base64$Encoder;
 Ljava/util/Base64$Encoder;->toBase64:[C
 Ljava/util/Base64$Encoder;->toBase64URL:[C
-Ljava/util/Base64$EncOutputStream;
 Ljava/util/Base64$EncOutputStream;-><init>(Ljava/io/OutputStream;[C[BIZ)V
 Ljava/util/Base64$EncOutputStream;->b0:I
 Ljava/util/Base64$EncOutputStream;->b1:I
@@ -114651,7 +107540,6 @@
 Ljava/util/BitSet;->words:[J
 Ljava/util/BitSet;->wordsInUse:I
 Ljava/util/BitSet;->WORD_MASK:J
-Ljava/util/Calendar$AvailableCalendarTypes;
 Ljava/util/Calendar$AvailableCalendarTypes;-><init>()V
 Ljava/util/Calendar$AvailableCalendarTypes;->SET:Ljava/util/Set;
 Ljava/util/Calendar$Builder;->allocateFields()V
@@ -114671,7 +107559,6 @@
 Ljava/util/Calendar$Builder;->type:Ljava/lang/String;
 Ljava/util/Calendar$Builder;->WEEK_YEAR:I
 Ljava/util/Calendar$Builder;->zone:Ljava/util/TimeZone;
-Ljava/util/Calendar$CalendarAccessControlContext;
 Ljava/util/Calendar$CalendarAccessControlContext;-><init>()V
 Ljava/util/Calendar$CalendarAccessControlContext;->INSTANCE:Ljava/security/AccessControlContext;
 Ljava/util/Calendar;->adjustStamp()V
@@ -114739,11 +107626,9 @@
 Ljava/util/Calendar;->WEEK_OF_YEAR_MASK:I
 Ljava/util/Calendar;->YEAR_MASK:I
 Ljava/util/Calendar;->ZONE_OFFSET_MASK:I
-Ljava/util/Collections$AsLIFOQueue;
 Ljava/util/Collections$AsLIFOQueue;-><init>(Ljava/util/Deque;)V
 Ljava/util/Collections$AsLIFOQueue;->forEach(Ljava/util/function/Consumer;)V
 Ljava/util/Collections$AsLIFOQueue;->q:Ljava/util/Deque;
-Ljava/util/Collections$CheckedCollection;
 Ljava/util/Collections$CheckedCollection;-><init>(Ljava/util/Collection;Ljava/lang/Class;)V
 Ljava/util/Collections$CheckedCollection;->badElementMsg(Ljava/lang/Object;)Ljava/lang/String;
 Ljava/util/Collections$CheckedCollection;->c:Ljava/util/Collection;
@@ -114753,15 +107638,12 @@
 Ljava/util/Collections$CheckedCollection;->typeCheck(Ljava/lang/Object;)Ljava/lang/Object;
 Ljava/util/Collections$CheckedCollection;->zeroLengthElementArray()[Ljava/lang/Object;
 Ljava/util/Collections$CheckedCollection;->zeroLengthElementArray:[Ljava/lang/Object;
-Ljava/util/Collections$CheckedList;
 Ljava/util/Collections$CheckedList;-><init>(Ljava/util/List;Ljava/lang/Class;)V
 Ljava/util/Collections$CheckedList;->list:Ljava/util/List;
-Ljava/util/Collections$CheckedMap$CheckedEntrySet$CheckedEntry;
 Ljava/util/Collections$CheckedMap$CheckedEntrySet$CheckedEntry;-><init>(Ljava/util/Map$Entry;Ljava/lang/Class;)V
 Ljava/util/Collections$CheckedMap$CheckedEntrySet$CheckedEntry;->badValueMsg(Ljava/lang/Object;)Ljava/lang/String;
 Ljava/util/Collections$CheckedMap$CheckedEntrySet$CheckedEntry;->e:Ljava/util/Map$Entry;
 Ljava/util/Collections$CheckedMap$CheckedEntrySet$CheckedEntry;->valueType:Ljava/lang/Class;
-Ljava/util/Collections$CheckedMap$CheckedEntrySet;
 Ljava/util/Collections$CheckedMap$CheckedEntrySet;-><init>(Ljava/util/Set;Ljava/lang/Class;)V
 Ljava/util/Collections$CheckedMap$CheckedEntrySet;->add(Ljava/util/Map$Entry;)Z
 Ljava/util/Collections$CheckedMap$CheckedEntrySet;->addAll(Ljava/util/Collection;)Z
@@ -114769,7 +107651,6 @@
 Ljava/util/Collections$CheckedMap$CheckedEntrySet;->checkedEntry(Ljava/util/Map$Entry;Ljava/lang/Class;)Ljava/util/Collections$CheckedMap$CheckedEntrySet$CheckedEntry;
 Ljava/util/Collections$CheckedMap$CheckedEntrySet;->s:Ljava/util/Set;
 Ljava/util/Collections$CheckedMap$CheckedEntrySet;->valueType:Ljava/lang/Class;
-Ljava/util/Collections$CheckedMap;
 Ljava/util/Collections$CheckedMap;-><init>(Ljava/util/Map;Ljava/lang/Class;Ljava/lang/Class;)V
 Ljava/util/Collections$CheckedMap;->badKeyMsg(Ljava/lang/Object;)Ljava/lang/String;
 Ljava/util/Collections$CheckedMap;->badValueMsg(Ljava/lang/Object;)Ljava/lang/String;
@@ -114779,151 +107660,108 @@
 Ljava/util/Collections$CheckedMap;->typeCheck(Ljava/lang/Object;Ljava/lang/Object;)V
 Ljava/util/Collections$CheckedMap;->typeCheck(Ljava/util/function/BiFunction;)Ljava/util/function/BiFunction;
 Ljava/util/Collections$CheckedMap;->valueType:Ljava/lang/Class;
-Ljava/util/Collections$CheckedNavigableMap;
 Ljava/util/Collections$CheckedNavigableMap;-><init>(Ljava/util/NavigableMap;Ljava/lang/Class;Ljava/lang/Class;)V
 Ljava/util/Collections$CheckedNavigableMap;->nm:Ljava/util/NavigableMap;
-Ljava/util/Collections$CheckedNavigableSet;
 Ljava/util/Collections$CheckedNavigableSet;-><init>(Ljava/util/NavigableSet;Ljava/lang/Class;)V
 Ljava/util/Collections$CheckedNavigableSet;->ns:Ljava/util/NavigableSet;
-Ljava/util/Collections$CheckedQueue;
 Ljava/util/Collections$CheckedQueue;-><init>(Ljava/util/Queue;Ljava/lang/Class;)V
 Ljava/util/Collections$CheckedQueue;->queue:Ljava/util/Queue;
-Ljava/util/Collections$CheckedRandomAccessList;
 Ljava/util/Collections$CheckedRandomAccessList;-><init>(Ljava/util/List;Ljava/lang/Class;)V
-Ljava/util/Collections$CheckedSet;
 Ljava/util/Collections$CheckedSet;-><init>(Ljava/util/Set;Ljava/lang/Class;)V
-Ljava/util/Collections$CheckedSortedMap;
 Ljava/util/Collections$CheckedSortedMap;-><init>(Ljava/util/SortedMap;Ljava/lang/Class;Ljava/lang/Class;)V
 Ljava/util/Collections$CheckedSortedMap;->sm:Ljava/util/SortedMap;
-Ljava/util/Collections$CheckedSortedSet;
 Ljava/util/Collections$CheckedSortedSet;-><init>(Ljava/util/SortedSet;Ljava/lang/Class;)V
 Ljava/util/Collections$CheckedSortedSet;->ss:Ljava/util/SortedSet;
-Ljava/util/Collections$CopiesList;
 Ljava/util/Collections$CopiesList;-><init>(ILjava/lang/Object;)V
 Ljava/util/Collections$CopiesList;->element:Ljava/lang/Object;
 Ljava/util/Collections$CopiesList;->n:I
-Ljava/util/Collections$EmptyEnumeration;
 Ljava/util/Collections$EmptyEnumeration;-><init>()V
 Ljava/util/Collections$EmptyEnumeration;->EMPTY_ENUMERATION:Ljava/util/Collections$EmptyEnumeration;
-Ljava/util/Collections$EmptyIterator;
 Ljava/util/Collections$EmptyIterator;-><init>()V
 Ljava/util/Collections$EmptyIterator;->EMPTY_ITERATOR:Ljava/util/Collections$EmptyIterator;
-Ljava/util/Collections$EmptyList;
 Ljava/util/Collections$EmptyList;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/Collections$EmptyListIterator;
 Ljava/util/Collections$EmptyListIterator;-><init>()V
 Ljava/util/Collections$EmptyListIterator;->EMPTY_ITERATOR:Ljava/util/Collections$EmptyListIterator;
-Ljava/util/Collections$EmptyMap;
-Ljava/util/Collections$EmptySet;
 Ljava/util/Collections$EmptySet;-><init>()V
 Ljava/util/Collections$EmptySet;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/Collections$ReverseComparator2;
 Ljava/util/Collections$ReverseComparator2;-><init>(Ljava/util/Comparator;)V
 Ljava/util/Collections$ReverseComparator2;->cmp:Ljava/util/Comparator;
-Ljava/util/Collections$ReverseComparator;
 Ljava/util/Collections$ReverseComparator;-><init>()V
 Ljava/util/Collections$ReverseComparator;->compare(Ljava/lang/Comparable;Ljava/lang/Comparable;)I
 Ljava/util/Collections$ReverseComparator;->REVERSE_ORDER:Ljava/util/Collections$ReverseComparator;
-Ljava/util/Collections$SetFromMap;
 Ljava/util/Collections$SetFromMap;-><init>(Ljava/util/Map;)V
 Ljava/util/Collections$SetFromMap;->forEach(Ljava/util/function/Consumer;)V
 Ljava/util/Collections$SetFromMap;->m:Ljava/util/Map;
 Ljava/util/Collections$SetFromMap;->s:Ljava/util/Set;
-Ljava/util/Collections$SingletonList;
 Ljava/util/Collections$SingletonList;-><init>(Ljava/lang/Object;)V
 Ljava/util/Collections$SingletonList;->element:Ljava/lang/Object;
 Ljava/util/Collections$SingletonList;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/Collections$SingletonMap;
 Ljava/util/Collections$SingletonMap;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
 Ljava/util/Collections$SingletonMap;->entrySet:Ljava/util/Set;
 Ljava/util/Collections$SingletonMap;->k:Ljava/lang/Object;
 Ljava/util/Collections$SingletonMap;->keySet:Ljava/util/Set;
 Ljava/util/Collections$SingletonMap;->v:Ljava/lang/Object;
 Ljava/util/Collections$SingletonMap;->values:Ljava/util/Collection;
-Ljava/util/Collections$SingletonSet;
 Ljava/util/Collections$SingletonSet;-><init>(Ljava/lang/Object;)V
 Ljava/util/Collections$SingletonSet;->element:Ljava/lang/Object;
 Ljava/util/Collections$SingletonSet;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/Collections$SynchronizedCollection;
 Ljava/util/Collections$SynchronizedCollection;-><init>(Ljava/util/Collection;)V
 Ljava/util/Collections$SynchronizedCollection;-><init>(Ljava/util/Collection;Ljava/lang/Object;)V
 Ljava/util/Collections$SynchronizedCollection;->forEach(Ljava/util/function/Consumer;)V
 Ljava/util/Collections$SynchronizedCollection;->mutex:Ljava/lang/Object;
-Ljava/util/Collections$SynchronizedList;
 Ljava/util/Collections$SynchronizedList;-><init>(Ljava/util/List;)V
 Ljava/util/Collections$SynchronizedList;-><init>(Ljava/util/List;Ljava/lang/Object;)V
-Ljava/util/Collections$SynchronizedMap;
 Ljava/util/Collections$SynchronizedMap;-><init>(Ljava/util/Map;)V
 Ljava/util/Collections$SynchronizedMap;-><init>(Ljava/util/Map;Ljava/lang/Object;)V
 Ljava/util/Collections$SynchronizedMap;->entrySet:Ljava/util/Set;
 Ljava/util/Collections$SynchronizedMap;->keySet:Ljava/util/Set;
 Ljava/util/Collections$SynchronizedMap;->mutex:Ljava/lang/Object;
 Ljava/util/Collections$SynchronizedMap;->values:Ljava/util/Collection;
-Ljava/util/Collections$SynchronizedNavigableMap;
 Ljava/util/Collections$SynchronizedNavigableMap;-><init>(Ljava/util/NavigableMap;)V
 Ljava/util/Collections$SynchronizedNavigableMap;-><init>(Ljava/util/NavigableMap;Ljava/lang/Object;)V
 Ljava/util/Collections$SynchronizedNavigableMap;->nm:Ljava/util/NavigableMap;
-Ljava/util/Collections$SynchronizedNavigableSet;
 Ljava/util/Collections$SynchronizedNavigableSet;-><init>(Ljava/util/NavigableSet;)V
 Ljava/util/Collections$SynchronizedNavigableSet;-><init>(Ljava/util/NavigableSet;Ljava/lang/Object;)V
 Ljava/util/Collections$SynchronizedNavigableSet;->ns:Ljava/util/NavigableSet;
-Ljava/util/Collections$SynchronizedRandomAccessList;
 Ljava/util/Collections$SynchronizedRandomAccessList;-><init>(Ljava/util/List;)V
 Ljava/util/Collections$SynchronizedRandomAccessList;-><init>(Ljava/util/List;Ljava/lang/Object;)V
-Ljava/util/Collections$SynchronizedSet;
 Ljava/util/Collections$SynchronizedSet;-><init>(Ljava/util/Set;)V
 Ljava/util/Collections$SynchronizedSet;-><init>(Ljava/util/Set;Ljava/lang/Object;)V
-Ljava/util/Collections$SynchronizedSortedMap;
 Ljava/util/Collections$SynchronizedSortedMap;-><init>(Ljava/util/SortedMap;)V
 Ljava/util/Collections$SynchronizedSortedMap;-><init>(Ljava/util/SortedMap;Ljava/lang/Object;)V
 Ljava/util/Collections$SynchronizedSortedMap;->sm:Ljava/util/SortedMap;
-Ljava/util/Collections$SynchronizedSortedSet;
 Ljava/util/Collections$SynchronizedSortedSet;-><init>(Ljava/util/SortedSet;)V
 Ljava/util/Collections$SynchronizedSortedSet;-><init>(Ljava/util/SortedSet;Ljava/lang/Object;)V
 Ljava/util/Collections$SynchronizedSortedSet;->ss:Ljava/util/SortedSet;
-Ljava/util/Collections$UnmodifiableCollection;
 Ljava/util/Collections$UnmodifiableCollection;-><init>(Ljava/util/Collection;)V
 Ljava/util/Collections$UnmodifiableCollection;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/Collections$UnmodifiableList;
 Ljava/util/Collections$UnmodifiableList;-><init>(Ljava/util/List;)V
 Ljava/util/Collections$UnmodifiableList;->list:Ljava/util/List;
-Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry;
 Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry;-><init>(Ljava/util/Map$Entry;)V
 Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry;->e:Ljava/util/Map$Entry;
-Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntrySetSpliterator;
 Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntrySetSpliterator;-><init>(Ljava/util/Spliterator;)V
 Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntrySetSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntrySetSpliterator;->s:Ljava/util/Spliterator;
 Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntrySetSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet;
 Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet;-><init>(Ljava/util/Set;)V
 Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet;->entryConsumer(Ljava/util/function/Consumer;)Ljava/util/function/Consumer;
 Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/Collections$UnmodifiableMap;
 Ljava/util/Collections$UnmodifiableMap;-><init>(Ljava/util/Map;)V
 Ljava/util/Collections$UnmodifiableMap;->entrySet:Ljava/util/Set;
 Ljava/util/Collections$UnmodifiableMap;->keySet:Ljava/util/Set;
 Ljava/util/Collections$UnmodifiableMap;->values:Ljava/util/Collection;
-Ljava/util/Collections$UnmodifiableNavigableMap$EmptyNavigableMap;
 Ljava/util/Collections$UnmodifiableNavigableMap$EmptyNavigableMap;-><init>()V
-Ljava/util/Collections$UnmodifiableNavigableMap;
 Ljava/util/Collections$UnmodifiableNavigableMap;-><init>(Ljava/util/NavigableMap;)V
 Ljava/util/Collections$UnmodifiableNavigableMap;->EMPTY_NAVIGABLE_MAP:Ljava/util/Collections$UnmodifiableNavigableMap$EmptyNavigableMap;
 Ljava/util/Collections$UnmodifiableNavigableMap;->nm:Ljava/util/NavigableMap;
-Ljava/util/Collections$UnmodifiableNavigableSet$EmptyNavigableSet;
 Ljava/util/Collections$UnmodifiableNavigableSet$EmptyNavigableSet;-><init>()V
-Ljava/util/Collections$UnmodifiableNavigableSet;
 Ljava/util/Collections$UnmodifiableNavigableSet;-><init>(Ljava/util/NavigableSet;)V
 Ljava/util/Collections$UnmodifiableNavigableSet;->EMPTY_NAVIGABLE_SET:Ljava/util/NavigableSet;
 Ljava/util/Collections$UnmodifiableNavigableSet;->ns:Ljava/util/NavigableSet;
-Ljava/util/Collections$UnmodifiableRandomAccessList;
 Ljava/util/Collections$UnmodifiableRandomAccessList;-><init>(Ljava/util/List;)V
-Ljava/util/Collections$UnmodifiableSet;
 Ljava/util/Collections$UnmodifiableSet;-><init>(Ljava/util/Set;)V
-Ljava/util/Collections$UnmodifiableSortedMap;
 Ljava/util/Collections$UnmodifiableSortedMap;-><init>(Ljava/util/SortedMap;)V
 Ljava/util/Collections$UnmodifiableSortedMap;->sm:Ljava/util/SortedMap;
-Ljava/util/Collections$UnmodifiableSortedSet;
 Ljava/util/Collections$UnmodifiableSortedSet;-><init>(Ljava/util/SortedSet;)V
 Ljava/util/Collections$UnmodifiableSortedSet;->ss:Ljava/util/SortedSet;
 Ljava/util/Collections;-><init>()V
@@ -114954,8 +107792,6 @@
 Ljava/util/concurrent/AbstractExecutorService;->cancelAll(Ljava/util/ArrayList;)V
 Ljava/util/concurrent/AbstractExecutorService;->cancelAll(Ljava/util/ArrayList;I)V
 Ljava/util/concurrent/AbstractExecutorService;->doInvokeAny(Ljava/util/Collection;ZJ)Ljava/lang/Object;
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;
-Ljava/util/concurrent/ArrayBlockingQueue$Itr;-><init>()V
 Ljava/util/concurrent/ArrayBlockingQueue$Itr;->cursor:I
 Ljava/util/concurrent/ArrayBlockingQueue$Itr;->detach()V
 Ljava/util/concurrent/ArrayBlockingQueue$Itr;->DETACHED:I
@@ -114976,11 +107812,7 @@
 Ljava/util/concurrent/ArrayBlockingQueue$Itr;->removedAt(I)Z
 Ljava/util/concurrent/ArrayBlockingQueue$Itr;->shutdown()V
 Ljava/util/concurrent/ArrayBlockingQueue$Itr;->takeIndexWrapped()Z
-Ljava/util/concurrent/ArrayBlockingQueue$Itrs$Node;
-Ljava/util/concurrent/ArrayBlockingQueue$Itrs$Node;-><init>(Ljava/util/concurrent/ArrayBlockingQueue$Itr;Ljava/util/concurrent/ArrayBlockingQueue$Itrs$Node;)V
 Ljava/util/concurrent/ArrayBlockingQueue$Itrs$Node;->next:Ljava/util/concurrent/ArrayBlockingQueue$Itrs$Node;
-Ljava/util/concurrent/ArrayBlockingQueue$Itrs;
-Ljava/util/concurrent/ArrayBlockingQueue$Itrs;-><init>(Ljava/util/concurrent/ArrayBlockingQueue$Itr;)V
 Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->cycles:I
 Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->doSomeSweeping(Z)V
 Ljava/util/concurrent/ArrayBlockingQueue$Itrs;->elementDequeued()V
@@ -115018,7 +107850,6 @@
 Ljava/util/concurrent/atomic/AtomicIntegerArray;->compareAndSetRaw(JII)Z
 Ljava/util/concurrent/atomic/AtomicIntegerArray;->getRaw(J)I
 Ljava/util/concurrent/atomic/AtomicIntegerArray;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;
 Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;-><init>(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V
 Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->accessCheck(Ljava/lang/Object;)V
 Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl;->cclass:Ljava/lang/Class;
@@ -115039,7 +107870,6 @@
 Ljava/util/concurrent/atomic/AtomicLongArray;->compareAndSetRaw(JJJ)Z
 Ljava/util/concurrent/atomic/AtomicLongArray;->getRaw(J)J
 Ljava/util/concurrent/atomic/AtomicLongArray;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;
 Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;-><init>(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V
 Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->accessCheck(Ljava/lang/Object;)V
 Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->cclass:Ljava/lang/Class;
@@ -115047,7 +107877,6 @@
 Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->tclass:Ljava/lang/Class;
 Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->throwAccessCheckException(Ljava/lang/Object;)V
 Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$CASUpdater;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater;
 Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater;-><init>(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V
 Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater;->accessCheck(Ljava/lang/Object;)V
 Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater;->accessCheckException(Ljava/lang/Object;)Ljava/lang/RuntimeException;
@@ -115055,7 +107884,6 @@
 Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater;->offset:J
 Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater;->tclass:Ljava/lang/Class;
 Ljava/util/concurrent/atomic/AtomicLongFieldUpdater$LockedUpdater;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/atomic/AtomicMarkableReference$Pair;
 Ljava/util/concurrent/atomic/AtomicMarkableReference$Pair;-><init>(Ljava/lang/Object;Z)V
 Ljava/util/concurrent/atomic/AtomicMarkableReference$Pair;->mark:Z
 Ljava/util/concurrent/atomic/AtomicMarkableReference$Pair;->of(Ljava/lang/Object;Z)Ljava/util/concurrent/atomic/AtomicMarkableReference$Pair;
@@ -115076,7 +107904,6 @@
 Ljava/util/concurrent/atomic/AtomicReferenceArray;->compareAndSetRaw(JLjava/lang/Object;Ljava/lang/Object;)Z
 Ljava/util/concurrent/atomic/AtomicReferenceArray;->getRaw(J)Ljava/lang/Object;
 Ljava/util/concurrent/atomic/AtomicReferenceArray;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;
 Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;-><init>(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V
 Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->accessCheck(Ljava/lang/Object;)V
 Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->cclass:Ljava/lang/Class;
@@ -115087,7 +107914,6 @@
 Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->U:Lsun/misc/Unsafe;
 Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->valueCheck(Ljava/lang/Object;)V
 Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl;->vclass:Ljava/lang/Class;
-Ljava/util/concurrent/atomic/AtomicStampedReference$Pair;
 Ljava/util/concurrent/atomic/AtomicStampedReference$Pair;-><init>(Ljava/lang/Object;I)V
 Ljava/util/concurrent/atomic/AtomicStampedReference$Pair;->of(Ljava/lang/Object;I)Ljava/util/concurrent/atomic/AtomicStampedReference$Pair;
 Ljava/util/concurrent/atomic/AtomicStampedReference$Pair;->reference:Ljava/lang/Object;
@@ -115096,27 +107922,22 @@
 Ljava/util/concurrent/atomic/AtomicStampedReference;->PAIR:J
 Ljava/util/concurrent/atomic/AtomicStampedReference;->pair:Ljava/util/concurrent/atomic/AtomicStampedReference$Pair;
 Ljava/util/concurrent/atomic/AtomicStampedReference;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/atomic/DoubleAccumulator$SerializationProxy;
 Ljava/util/concurrent/atomic/DoubleAccumulator$SerializationProxy;-><init>(DLjava/util/function/DoubleBinaryOperator;J)V
 Ljava/util/concurrent/atomic/DoubleAccumulator$SerializationProxy;->function:Ljava/util/function/DoubleBinaryOperator;
 Ljava/util/concurrent/atomic/DoubleAccumulator$SerializationProxy;->identity:J
 Ljava/util/concurrent/atomic/DoubleAccumulator$SerializationProxy;->value:D
 Ljava/util/concurrent/atomic/DoubleAccumulator;->function:Ljava/util/function/DoubleBinaryOperator;
 Ljava/util/concurrent/atomic/DoubleAccumulator;->identity:J
-Ljava/util/concurrent/atomic/DoubleAdder$SerializationProxy;
 Ljava/util/concurrent/atomic/DoubleAdder$SerializationProxy;-><init>(Ljava/util/concurrent/atomic/DoubleAdder;)V
 Ljava/util/concurrent/atomic/DoubleAdder$SerializationProxy;->value:D
-Ljava/util/concurrent/atomic/LongAccumulator$SerializationProxy;
 Ljava/util/concurrent/atomic/LongAccumulator$SerializationProxy;-><init>(JLjava/util/function/LongBinaryOperator;J)V
 Ljava/util/concurrent/atomic/LongAccumulator$SerializationProxy;->function:Ljava/util/function/LongBinaryOperator;
 Ljava/util/concurrent/atomic/LongAccumulator$SerializationProxy;->identity:J
 Ljava/util/concurrent/atomic/LongAccumulator$SerializationProxy;->value:J
 Ljava/util/concurrent/atomic/LongAccumulator;->function:Ljava/util/function/LongBinaryOperator;
 Ljava/util/concurrent/atomic/LongAccumulator;->identity:J
-Ljava/util/concurrent/atomic/LongAdder$SerializationProxy;
 Ljava/util/concurrent/atomic/LongAdder$SerializationProxy;-><init>(Ljava/util/concurrent/atomic/LongAdder;)V
 Ljava/util/concurrent/atomic/LongAdder$SerializationProxy;->value:J
-Ljava/util/concurrent/atomic/Striped64$Cell;
 Ljava/util/concurrent/atomic/Striped64$Cell;-><init>(J)V
 Ljava/util/concurrent/atomic/Striped64$Cell;->cas(JJ)Z
 Ljava/util/concurrent/atomic/Striped64$Cell;->reset()V
@@ -115124,7 +107945,6 @@
 Ljava/util/concurrent/atomic/Striped64$Cell;->U:Lsun/misc/Unsafe;
 Ljava/util/concurrent/atomic/Striped64$Cell;->VALUE:J
 Ljava/util/concurrent/atomic/Striped64$Cell;->value:J
-Ljava/util/concurrent/atomic/Striped64;
 Ljava/util/concurrent/atomic/Striped64;-><init>()V
 Ljava/util/concurrent/atomic/Striped64;->advanceProbe(I)I
 Ljava/util/concurrent/atomic/Striped64;->apply(Ljava/util/function/DoubleBinaryOperator;JD)J
@@ -115141,68 +107961,52 @@
 Ljava/util/concurrent/atomic/Striped64;->NCPU:I
 Ljava/util/concurrent/atomic/Striped64;->PROBE:J
 Ljava/util/concurrent/atomic/Striped64;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/CompletableFuture$AltResult;
 Ljava/util/concurrent/CompletableFuture$AltResult;-><init>(Ljava/lang/Throwable;)V
 Ljava/util/concurrent/CompletableFuture$AltResult;->ex:Ljava/lang/Throwable;
-Ljava/util/concurrent/CompletableFuture$AsyncRun;
 Ljava/util/concurrent/CompletableFuture$AsyncRun;-><init>(Ljava/util/concurrent/CompletableFuture;Ljava/lang/Runnable;)V
 Ljava/util/concurrent/CompletableFuture$AsyncRun;->dep:Ljava/util/concurrent/CompletableFuture;
 Ljava/util/concurrent/CompletableFuture$AsyncRun;->fn:Ljava/lang/Runnable;
 Ljava/util/concurrent/CompletableFuture$AsyncRun;->setRawResult(Ljava/lang/Void;)V
-Ljava/util/concurrent/CompletableFuture$AsyncSupply;
 Ljava/util/concurrent/CompletableFuture$AsyncSupply;-><init>(Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Supplier;)V
 Ljava/util/concurrent/CompletableFuture$AsyncSupply;->dep:Ljava/util/concurrent/CompletableFuture;
 Ljava/util/concurrent/CompletableFuture$AsyncSupply;->fn:Ljava/util/function/Supplier;
 Ljava/util/concurrent/CompletableFuture$AsyncSupply;->setRawResult(Ljava/lang/Void;)V
-Ljava/util/concurrent/CompletableFuture$BiAccept;
 Ljava/util/concurrent/CompletableFuture$BiAccept;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiConsumer;)V
 Ljava/util/concurrent/CompletableFuture$BiAccept;->fn:Ljava/util/function/BiConsumer;
 Ljava/util/concurrent/CompletableFuture$BiAccept;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$BiApply;
 Ljava/util/concurrent/CompletableFuture$BiApply;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiFunction;)V
 Ljava/util/concurrent/CompletableFuture$BiApply;->fn:Ljava/util/function/BiFunction;
 Ljava/util/concurrent/CompletableFuture$BiApply;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$BiCompletion;
 Ljava/util/concurrent/CompletableFuture$BiCompletion;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;)V
 Ljava/util/concurrent/CompletableFuture$BiCompletion;->snd:Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$BiRelay;
 Ljava/util/concurrent/CompletableFuture$BiRelay;-><init>(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;)V
 Ljava/util/concurrent/CompletableFuture$BiRelay;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$BiRun;
 Ljava/util/concurrent/CompletableFuture$BiRun;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/lang/Runnable;)V
 Ljava/util/concurrent/CompletableFuture$BiRun;->fn:Ljava/lang/Runnable;
 Ljava/util/concurrent/CompletableFuture$BiRun;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$Canceller;
 Ljava/util/concurrent/CompletableFuture$Canceller;-><init>(Ljava/util/concurrent/Future;)V
 Ljava/util/concurrent/CompletableFuture$Canceller;->accept(Ljava/lang/Object;Ljava/lang/Throwable;)V
 Ljava/util/concurrent/CompletableFuture$Canceller;->f:Ljava/util/concurrent/Future;
-Ljava/util/concurrent/CompletableFuture$CoCompletion;
 Ljava/util/concurrent/CompletableFuture$CoCompletion;-><init>(Ljava/util/concurrent/CompletableFuture$BiCompletion;)V
 Ljava/util/concurrent/CompletableFuture$CoCompletion;->base:Ljava/util/concurrent/CompletableFuture$BiCompletion;
 Ljava/util/concurrent/CompletableFuture$CoCompletion;->isLive()Z
 Ljava/util/concurrent/CompletableFuture$CoCompletion;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$Completion;
 Ljava/util/concurrent/CompletableFuture$Completion;-><init>()V
 Ljava/util/concurrent/CompletableFuture$Completion;->isLive()Z
 Ljava/util/concurrent/CompletableFuture$Completion;->next:Ljava/util/concurrent/CompletableFuture$Completion;
 Ljava/util/concurrent/CompletableFuture$Completion;->setRawResult(Ljava/lang/Void;)V
 Ljava/util/concurrent/CompletableFuture$Completion;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$DelayedCompleter;
 Ljava/util/concurrent/CompletableFuture$DelayedCompleter;-><init>(Ljava/util/concurrent/CompletableFuture;Ljava/lang/Object;)V
 Ljava/util/concurrent/CompletableFuture$DelayedCompleter;->f:Ljava/util/concurrent/CompletableFuture;
 Ljava/util/concurrent/CompletableFuture$DelayedCompleter;->u:Ljava/lang/Object;
-Ljava/util/concurrent/CompletableFuture$DelayedExecutor;
 Ljava/util/concurrent/CompletableFuture$DelayedExecutor;-><init>(JLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/Executor;)V
 Ljava/util/concurrent/CompletableFuture$DelayedExecutor;->delay:J
 Ljava/util/concurrent/CompletableFuture$DelayedExecutor;->executor:Ljava/util/concurrent/Executor;
 Ljava/util/concurrent/CompletableFuture$DelayedExecutor;->unit:Ljava/util/concurrent/TimeUnit;
-Ljava/util/concurrent/CompletableFuture$Delayer$DaemonThreadFactory;
 Ljava/util/concurrent/CompletableFuture$Delayer$DaemonThreadFactory;-><init>()V
-Ljava/util/concurrent/CompletableFuture$Delayer;
 Ljava/util/concurrent/CompletableFuture$Delayer;-><init>()V
 Ljava/util/concurrent/CompletableFuture$Delayer;->delay(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
 Ljava/util/concurrent/CompletableFuture$Delayer;->delayer:Ljava/util/concurrent/ScheduledThreadPoolExecutor;
-Ljava/util/concurrent/CompletableFuture$MinimalStage;
 Ljava/util/concurrent/CompletableFuture$MinimalStage;-><init>()V
 Ljava/util/concurrent/CompletableFuture$MinimalStage;-><init>(Ljava/lang/Object;)V
 Ljava/util/concurrent/CompletableFuture$MinimalStage;->completeAsync(Ljava/util/function/Supplier;)Ljava/util/concurrent/CompletableFuture;
@@ -115210,22 +108014,17 @@
 Ljava/util/concurrent/CompletableFuture$MinimalStage;->completeOnTimeout(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/CompletableFuture;
 Ljava/util/concurrent/CompletableFuture$MinimalStage;->newIncompleteFuture()Ljava/util/concurrent/CompletableFuture;
 Ljava/util/concurrent/CompletableFuture$MinimalStage;->orTimeout(JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$OrAccept;
 Ljava/util/concurrent/CompletableFuture$OrAccept;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Consumer;)V
 Ljava/util/concurrent/CompletableFuture$OrAccept;->fn:Ljava/util/function/Consumer;
 Ljava/util/concurrent/CompletableFuture$OrAccept;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$OrApply;
 Ljava/util/concurrent/CompletableFuture$OrApply;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Function;)V
 Ljava/util/concurrent/CompletableFuture$OrApply;->fn:Ljava/util/function/Function;
 Ljava/util/concurrent/CompletableFuture$OrApply;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$OrRelay;
 Ljava/util/concurrent/CompletableFuture$OrRelay;-><init>(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;)V
 Ljava/util/concurrent/CompletableFuture$OrRelay;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$OrRun;
 Ljava/util/concurrent/CompletableFuture$OrRun;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/lang/Runnable;)V
 Ljava/util/concurrent/CompletableFuture$OrRun;->fn:Ljava/lang/Runnable;
 Ljava/util/concurrent/CompletableFuture$OrRun;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$Signaller;
 Ljava/util/concurrent/CompletableFuture$Signaller;-><init>(ZJJ)V
 Ljava/util/concurrent/CompletableFuture$Signaller;->deadline:J
 Ljava/util/concurrent/CompletableFuture$Signaller;->interrupted:Z
@@ -115234,50 +108033,38 @@
 Ljava/util/concurrent/CompletableFuture$Signaller;->nanos:J
 Ljava/util/concurrent/CompletableFuture$Signaller;->thread:Ljava/lang/Thread;
 Ljava/util/concurrent/CompletableFuture$Signaller;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$TaskSubmitter;
 Ljava/util/concurrent/CompletableFuture$TaskSubmitter;-><init>(Ljava/util/concurrent/Executor;Ljava/lang/Runnable;)V
 Ljava/util/concurrent/CompletableFuture$TaskSubmitter;->action:Ljava/lang/Runnable;
 Ljava/util/concurrent/CompletableFuture$TaskSubmitter;->executor:Ljava/util/concurrent/Executor;
-Ljava/util/concurrent/CompletableFuture$ThreadPerTaskExecutor;
 Ljava/util/concurrent/CompletableFuture$ThreadPerTaskExecutor;-><init>()V
-Ljava/util/concurrent/CompletableFuture$Timeout;
 Ljava/util/concurrent/CompletableFuture$Timeout;-><init>(Ljava/util/concurrent/CompletableFuture;)V
 Ljava/util/concurrent/CompletableFuture$Timeout;->f:Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$UniAccept;
 Ljava/util/concurrent/CompletableFuture$UniAccept;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Consumer;)V
 Ljava/util/concurrent/CompletableFuture$UniAccept;->fn:Ljava/util/function/Consumer;
 Ljava/util/concurrent/CompletableFuture$UniAccept;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$UniApply;
 Ljava/util/concurrent/CompletableFuture$UniApply;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Function;)V
 Ljava/util/concurrent/CompletableFuture$UniApply;->fn:Ljava/util/function/Function;
 Ljava/util/concurrent/CompletableFuture$UniApply;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$UniCompletion;
 Ljava/util/concurrent/CompletableFuture$UniCompletion;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;)V
 Ljava/util/concurrent/CompletableFuture$UniCompletion;->claim()Z
 Ljava/util/concurrent/CompletableFuture$UniCompletion;->dep:Ljava/util/concurrent/CompletableFuture;
 Ljava/util/concurrent/CompletableFuture$UniCompletion;->executor:Ljava/util/concurrent/Executor;
 Ljava/util/concurrent/CompletableFuture$UniCompletion;->isLive()Z
 Ljava/util/concurrent/CompletableFuture$UniCompletion;->src:Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$UniCompose;
 Ljava/util/concurrent/CompletableFuture$UniCompose;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Function;)V
 Ljava/util/concurrent/CompletableFuture$UniCompose;->fn:Ljava/util/function/Function;
 Ljava/util/concurrent/CompletableFuture$UniCompose;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$UniExceptionally;
 Ljava/util/concurrent/CompletableFuture$UniExceptionally;-><init>(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/Function;)V
 Ljava/util/concurrent/CompletableFuture$UniExceptionally;->fn:Ljava/util/function/Function;
 Ljava/util/concurrent/CompletableFuture$UniExceptionally;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$UniHandle;
 Ljava/util/concurrent/CompletableFuture$UniHandle;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiFunction;)V
 Ljava/util/concurrent/CompletableFuture$UniHandle;->fn:Ljava/util/function/BiFunction;
 Ljava/util/concurrent/CompletableFuture$UniHandle;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$UniRelay;
 Ljava/util/concurrent/CompletableFuture$UniRelay;-><init>(Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;)V
 Ljava/util/concurrent/CompletableFuture$UniRelay;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$UniRun;
 Ljava/util/concurrent/CompletableFuture$UniRun;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/lang/Runnable;)V
 Ljava/util/concurrent/CompletableFuture$UniRun;->fn:Ljava/lang/Runnable;
 Ljava/util/concurrent/CompletableFuture$UniRun;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
-Ljava/util/concurrent/CompletableFuture$UniWhenComplete;
 Ljava/util/concurrent/CompletableFuture$UniWhenComplete;-><init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Ljava/util/concurrent/CompletableFuture;Ljava/util/function/BiConsumer;)V
 Ljava/util/concurrent/CompletableFuture$UniWhenComplete;->fn:Ljava/util/function/BiConsumer;
 Ljava/util/concurrent/CompletableFuture$UniWhenComplete;->tryFire(I)Ljava/util/concurrent/CompletableFuture;
@@ -115370,13 +108157,11 @@
 Ljava/util/concurrent/CompletableFuture;->uniWhenCompleteStage(Ljava/util/concurrent/Executor;Ljava/util/function/BiConsumer;)Ljava/util/concurrent/CompletableFuture;
 Ljava/util/concurrent/CompletableFuture;->USE_COMMON_POOL:Z
 Ljava/util/concurrent/CompletableFuture;->waitingGet(Z)Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentHashMap$BaseIterator;
 Ljava/util/concurrent/ConcurrentHashMap$BaseIterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIILjava/util/concurrent/ConcurrentHashMap;)V
 Ljava/util/concurrent/ConcurrentHashMap$BaseIterator;->hasNext()Z
 Ljava/util/concurrent/ConcurrentHashMap$BaseIterator;->lastReturned:Ljava/util/concurrent/ConcurrentHashMap$Node;
 Ljava/util/concurrent/ConcurrentHashMap$BaseIterator;->map:Ljava/util/concurrent/ConcurrentHashMap;
 Ljava/util/concurrent/ConcurrentHashMap$BaseIterator;->remove()V
-Ljava/util/concurrent/ConcurrentHashMap$BulkTask;
 Ljava/util/concurrent/ConcurrentHashMap$BulkTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;)V
 Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->advance()Ljava/util/concurrent/ConcurrentHashMap$Node;
 Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->baseIndex:I
@@ -115390,82 +108175,63 @@
 Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->spare:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
 Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->stack:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
 Ljava/util/concurrent/ConcurrentHashMap$BulkTask;->tab:[Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap$CollectionView;
 Ljava/util/concurrent/ConcurrentHashMap$CollectionView;-><init>(Ljava/util/concurrent/ConcurrentHashMap;)V
 Ljava/util/concurrent/ConcurrentHashMap$CollectionView;->getMap()Ljava/util/concurrent/ConcurrentHashMap;
 Ljava/util/concurrent/ConcurrentHashMap$CollectionView;->map:Ljava/util/concurrent/ConcurrentHashMap;
 Ljava/util/concurrent/ConcurrentHashMap$CollectionView;->OOME_MSG:Ljava/lang/String;
-Ljava/util/concurrent/ConcurrentHashMap$CounterCell;
 Ljava/util/concurrent/ConcurrentHashMap$CounterCell;-><init>(J)V
 Ljava/util/concurrent/ConcurrentHashMap$CounterCell;->value:J
-Ljava/util/concurrent/ConcurrentHashMap$EntryIterator;
 Ljava/util/concurrent/ConcurrentHashMap$EntryIterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIILjava/util/concurrent/ConcurrentHashMap;)V
-Ljava/util/concurrent/ConcurrentHashMap$EntrySetView;
 Ljava/util/concurrent/ConcurrentHashMap$EntrySetView;-><init>(Ljava/util/concurrent/ConcurrentHashMap;)V
 Ljava/util/concurrent/ConcurrentHashMap$EntrySetView;->add(Ljava/util/Map$Entry;)Z
 Ljava/util/concurrent/ConcurrentHashMap$EntrySetView;->addAll(Ljava/util/Collection;)Z
 Ljava/util/concurrent/ConcurrentHashMap$EntrySetView;->forEach(Ljava/util/function/Consumer;)V
 Ljava/util/concurrent/ConcurrentHashMap$EntrySetView;->removeIf(Ljava/util/function/Predicate;)Z
-Ljava/util/concurrent/ConcurrentHashMap$EntrySpliterator;
 Ljava/util/concurrent/ConcurrentHashMap$EntrySpliterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIIJLjava/util/concurrent/ConcurrentHashMap;)V
 Ljava/util/concurrent/ConcurrentHashMap$EntrySpliterator;->est:J
 Ljava/util/concurrent/ConcurrentHashMap$EntrySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/concurrent/ConcurrentHashMap$EntrySpliterator;->map:Ljava/util/concurrent/ConcurrentHashMap;
 Ljava/util/concurrent/ConcurrentHashMap$EntrySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/ConcurrentHashMap$ForEachEntryTask;
 Ljava/util/concurrent/ConcurrentHashMap$ForEachEntryTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/Consumer;)V
 Ljava/util/concurrent/ConcurrentHashMap$ForEachEntryTask;->action:Ljava/util/function/Consumer;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachKeyTask;
 Ljava/util/concurrent/ConcurrentHashMap$ForEachKeyTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/Consumer;)V
 Ljava/util/concurrent/ConcurrentHashMap$ForEachKeyTask;->action:Ljava/util/function/Consumer;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachMappingTask;
 Ljava/util/concurrent/ConcurrentHashMap$ForEachMappingTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/BiConsumer;)V
 Ljava/util/concurrent/ConcurrentHashMap$ForEachMappingTask;->action:Ljava/util/function/BiConsumer;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedEntryTask;
 Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedEntryTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/Function;Ljava/util/function/Consumer;)V
 Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedEntryTask;->action:Ljava/util/function/Consumer;
 Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedEntryTask;->transformer:Ljava/util/function/Function;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedKeyTask;
 Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedKeyTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/Function;Ljava/util/function/Consumer;)V
 Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedKeyTask;->action:Ljava/util/function/Consumer;
 Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedKeyTask;->transformer:Ljava/util/function/Function;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedMappingTask;
 Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedMappingTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/BiFunction;Ljava/util/function/Consumer;)V
 Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedMappingTask;->action:Ljava/util/function/Consumer;
 Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedMappingTask;->transformer:Ljava/util/function/BiFunction;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedValueTask;
 Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedValueTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/Function;Ljava/util/function/Consumer;)V
 Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedValueTask;->action:Ljava/util/function/Consumer;
 Ljava/util/concurrent/ConcurrentHashMap$ForEachTransformedValueTask;->transformer:Ljava/util/function/Function;
-Ljava/util/concurrent/ConcurrentHashMap$ForEachValueTask;
 Ljava/util/concurrent/ConcurrentHashMap$ForEachValueTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/Consumer;)V
 Ljava/util/concurrent/ConcurrentHashMap$ForEachValueTask;->action:Ljava/util/function/Consumer;
-Ljava/util/concurrent/ConcurrentHashMap$ForwardingNode;
 Ljava/util/concurrent/ConcurrentHashMap$ForwardingNode;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;)V
 Ljava/util/concurrent/ConcurrentHashMap$ForwardingNode;->find(ILjava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$Node;
 Ljava/util/concurrent/ConcurrentHashMap$ForwardingNode;->nextTable:[Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap$KeyIterator;
 Ljava/util/concurrent/ConcurrentHashMap$KeyIterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIILjava/util/concurrent/ConcurrentHashMap;)V
 Ljava/util/concurrent/ConcurrentHashMap$KeySetView;-><init>(Ljava/util/concurrent/ConcurrentHashMap;Ljava/lang/Object;)V
 Ljava/util/concurrent/ConcurrentHashMap$KeySetView;->value:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentHashMap$KeySpliterator;
 Ljava/util/concurrent/ConcurrentHashMap$KeySpliterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIIJ)V
 Ljava/util/concurrent/ConcurrentHashMap$KeySpliterator;->est:J
 Ljava/util/concurrent/ConcurrentHashMap$KeySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/concurrent/ConcurrentHashMap$KeySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/ConcurrentHashMap$MapEntry;
 Ljava/util/concurrent/ConcurrentHashMap$MapEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentHashMap;)V
 Ljava/util/concurrent/ConcurrentHashMap$MapEntry;->key:Ljava/lang/Object;
 Ljava/util/concurrent/ConcurrentHashMap$MapEntry;->map:Ljava/util/concurrent/ConcurrentHashMap;
 Ljava/util/concurrent/ConcurrentHashMap$MapEntry;->val:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesTask;Ljava/util/function/Function;Ljava/util/function/BiFunction;)V
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesTask;->reducer:Ljava/util/function/BiFunction;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesTask;->result:Ljava/lang/Object;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesTask;->transformer:Ljava/util/function/Function;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;Ljava/util/function/ToDoubleFunction;DLjava/util/function/DoubleBinaryOperator;)V
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;->basis:D
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;
@@ -115473,7 +108239,6 @@
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;->result:D
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToDoubleTask;->transformer:Ljava/util/function/ToDoubleFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;Ljava/util/function/ToIntFunction;ILjava/util/function/IntBinaryOperator;)V
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;->basis:I
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;
@@ -115481,7 +108246,6 @@
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;->result:I
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToIntTask;->transformer:Ljava/util/function/ToIntFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;Ljava/util/function/ToLongFunction;JLjava/util/function/LongBinaryOperator;)V
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;->basis:J
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;
@@ -115489,14 +108253,12 @@
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;->result:J
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceEntriesToLongTask;->transformer:Ljava/util/function/ToLongFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysTask;Ljava/util/function/Function;Ljava/util/function/BiFunction;)V
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysTask;->reducer:Ljava/util/function/BiFunction;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysTask;->result:Ljava/lang/Object;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysTask;->transformer:Ljava/util/function/Function;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;Ljava/util/function/ToDoubleFunction;DLjava/util/function/DoubleBinaryOperator;)V
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;->basis:D
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;
@@ -115504,7 +108266,6 @@
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;->result:D
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToDoubleTask;->transformer:Ljava/util/function/ToDoubleFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;Ljava/util/function/ToIntFunction;ILjava/util/function/IntBinaryOperator;)V
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;->basis:I
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;
@@ -115512,7 +108273,6 @@
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;->result:I
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToIntTask;->transformer:Ljava/util/function/ToIntFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;Ljava/util/function/ToLongFunction;JLjava/util/function/LongBinaryOperator;)V
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;->basis:J
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;
@@ -115520,14 +108280,12 @@
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;->result:J
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceKeysToLongTask;->transformer:Ljava/util/function/ToLongFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsTask;Ljava/util/function/BiFunction;Ljava/util/function/BiFunction;)V
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsTask;->reducer:Ljava/util/function/BiFunction;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsTask;->result:Ljava/lang/Object;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsTask;->transformer:Ljava/util/function/BiFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;Ljava/util/function/ToDoubleBiFunction;DLjava/util/function/DoubleBinaryOperator;)V
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;->basis:D
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;
@@ -115535,7 +108293,6 @@
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;->result:D
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToDoubleTask;->transformer:Ljava/util/function/ToDoubleBiFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;Ljava/util/function/ToIntBiFunction;ILjava/util/function/IntBinaryOperator;)V
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;->basis:I
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;
@@ -115543,7 +108300,6 @@
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;->result:I
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToIntTask;->transformer:Ljava/util/function/ToIntBiFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;Ljava/util/function/ToLongBiFunction;JLjava/util/function/LongBinaryOperator;)V
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;->basis:J
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;
@@ -115551,14 +108307,12 @@
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;->result:J
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceMappingsToLongTask;->transformer:Ljava/util/function/ToLongBiFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesTask;Ljava/util/function/Function;Ljava/util/function/BiFunction;)V
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesTask;->reducer:Ljava/util/function/BiFunction;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesTask;->result:Ljava/lang/Object;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesTask;->transformer:Ljava/util/function/Function;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;Ljava/util/function/ToDoubleFunction;DLjava/util/function/DoubleBinaryOperator;)V
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;->basis:D
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;
@@ -115566,7 +108320,6 @@
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;->result:D
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToDoubleTask;->transformer:Ljava/util/function/ToDoubleFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;Ljava/util/function/ToIntFunction;ILjava/util/function/IntBinaryOperator;)V
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;->basis:I
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;
@@ -115574,7 +108327,6 @@
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;->result:I
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToIntTask;->transformer:Ljava/util/function/ToIntFunction;
-Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;Ljava/util/function/ToLongFunction;JLjava/util/function/LongBinaryOperator;)V
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;->basis:J
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;
@@ -115582,60 +108334,48 @@
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;->result:J
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;
 Ljava/util/concurrent/ConcurrentHashMap$MapReduceValuesToLongTask;->transformer:Ljava/util/function/ToLongFunction;
-Ljava/util/concurrent/ConcurrentHashMap$Node;
 Ljava/util/concurrent/ConcurrentHashMap$Node;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentHashMap$Node;)V
 Ljava/util/concurrent/ConcurrentHashMap$Node;->find(ILjava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$Node;
 Ljava/util/concurrent/ConcurrentHashMap$Node;->hash:I
 Ljava/util/concurrent/ConcurrentHashMap$Node;->key:Ljava/lang/Object;
 Ljava/util/concurrent/ConcurrentHashMap$Node;->next:Ljava/util/concurrent/ConcurrentHashMap$Node;
 Ljava/util/concurrent/ConcurrentHashMap$Node;->val:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentHashMap$ReduceEntriesTask;
 Ljava/util/concurrent/ConcurrentHashMap$ReduceEntriesTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$ReduceEntriesTask;Ljava/util/function/BiFunction;)V
 Ljava/util/concurrent/ConcurrentHashMap$ReduceEntriesTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$ReduceEntriesTask;
 Ljava/util/concurrent/ConcurrentHashMap$ReduceEntriesTask;->reducer:Ljava/util/function/BiFunction;
 Ljava/util/concurrent/ConcurrentHashMap$ReduceEntriesTask;->result:Ljava/util/Map$Entry;
 Ljava/util/concurrent/ConcurrentHashMap$ReduceEntriesTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$ReduceEntriesTask;
-Ljava/util/concurrent/ConcurrentHashMap$ReduceKeysTask;
 Ljava/util/concurrent/ConcurrentHashMap$ReduceKeysTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$ReduceKeysTask;Ljava/util/function/BiFunction;)V
 Ljava/util/concurrent/ConcurrentHashMap$ReduceKeysTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$ReduceKeysTask;
 Ljava/util/concurrent/ConcurrentHashMap$ReduceKeysTask;->reducer:Ljava/util/function/BiFunction;
 Ljava/util/concurrent/ConcurrentHashMap$ReduceKeysTask;->result:Ljava/lang/Object;
 Ljava/util/concurrent/ConcurrentHashMap$ReduceKeysTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$ReduceKeysTask;
-Ljava/util/concurrent/ConcurrentHashMap$ReduceValuesTask;
 Ljava/util/concurrent/ConcurrentHashMap$ReduceValuesTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$ReduceValuesTask;Ljava/util/function/BiFunction;)V
 Ljava/util/concurrent/ConcurrentHashMap$ReduceValuesTask;->nextRight:Ljava/util/concurrent/ConcurrentHashMap$ReduceValuesTask;
 Ljava/util/concurrent/ConcurrentHashMap$ReduceValuesTask;->reducer:Ljava/util/function/BiFunction;
 Ljava/util/concurrent/ConcurrentHashMap$ReduceValuesTask;->result:Ljava/lang/Object;
 Ljava/util/concurrent/ConcurrentHashMap$ReduceValuesTask;->rights:Ljava/util/concurrent/ConcurrentHashMap$ReduceValuesTask;
-Ljava/util/concurrent/ConcurrentHashMap$ReservationNode;
 Ljava/util/concurrent/ConcurrentHashMap$ReservationNode;-><init>()V
 Ljava/util/concurrent/ConcurrentHashMap$ReservationNode;->find(ILjava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap$SearchEntriesTask;
 Ljava/util/concurrent/ConcurrentHashMap$SearchEntriesTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/Function;Ljava/util/concurrent/atomic/AtomicReference;)V
 Ljava/util/concurrent/ConcurrentHashMap$SearchEntriesTask;->result:Ljava/util/concurrent/atomic/AtomicReference;
 Ljava/util/concurrent/ConcurrentHashMap$SearchEntriesTask;->searchFunction:Ljava/util/function/Function;
-Ljava/util/concurrent/ConcurrentHashMap$SearchKeysTask;
 Ljava/util/concurrent/ConcurrentHashMap$SearchKeysTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/Function;Ljava/util/concurrent/atomic/AtomicReference;)V
 Ljava/util/concurrent/ConcurrentHashMap$SearchKeysTask;->result:Ljava/util/concurrent/atomic/AtomicReference;
 Ljava/util/concurrent/ConcurrentHashMap$SearchKeysTask;->searchFunction:Ljava/util/function/Function;
-Ljava/util/concurrent/ConcurrentHashMap$SearchMappingsTask;
 Ljava/util/concurrent/ConcurrentHashMap$SearchMappingsTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/BiFunction;Ljava/util/concurrent/atomic/AtomicReference;)V
 Ljava/util/concurrent/ConcurrentHashMap$SearchMappingsTask;->result:Ljava/util/concurrent/atomic/AtomicReference;
 Ljava/util/concurrent/ConcurrentHashMap$SearchMappingsTask;->searchFunction:Ljava/util/function/BiFunction;
-Ljava/util/concurrent/ConcurrentHashMap$SearchValuesTask;
 Ljava/util/concurrent/ConcurrentHashMap$SearchValuesTask;-><init>(Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/function/Function;Ljava/util/concurrent/atomic/AtomicReference;)V
 Ljava/util/concurrent/ConcurrentHashMap$SearchValuesTask;->result:Ljava/util/concurrent/atomic/AtomicReference;
 Ljava/util/concurrent/ConcurrentHashMap$SearchValuesTask;->searchFunction:Ljava/util/function/Function;
-Ljava/util/concurrent/ConcurrentHashMap$Segment;
 Ljava/util/concurrent/ConcurrentHashMap$Segment;-><init>(F)V
 Ljava/util/concurrent/ConcurrentHashMap$Segment;->loadFactor:F
-Ljava/util/concurrent/ConcurrentHashMap$TableStack;
 Ljava/util/concurrent/ConcurrentHashMap$TableStack;-><init>()V
 Ljava/util/concurrent/ConcurrentHashMap$TableStack;->index:I
 Ljava/util/concurrent/ConcurrentHashMap$TableStack;->length:I
 Ljava/util/concurrent/ConcurrentHashMap$TableStack;->next:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
 Ljava/util/concurrent/ConcurrentHashMap$TableStack;->tab:[Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap$Traverser;
 Ljava/util/concurrent/ConcurrentHashMap$Traverser;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;III)V
 Ljava/util/concurrent/ConcurrentHashMap$Traverser;->advance()Ljava/util/concurrent/ConcurrentHashMap$Node;
 Ljava/util/concurrent/ConcurrentHashMap$Traverser;->baseIndex:I
@@ -115648,7 +108388,6 @@
 Ljava/util/concurrent/ConcurrentHashMap$Traverser;->spare:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
 Ljava/util/concurrent/ConcurrentHashMap$Traverser;->stack:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
 Ljava/util/concurrent/ConcurrentHashMap$Traverser;->tab:[Ljava/util/concurrent/ConcurrentHashMap$Node;
-Ljava/util/concurrent/ConcurrentHashMap$TreeBin;
 Ljava/util/concurrent/ConcurrentHashMap$TreeBin;-><init>(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)V
 Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->balanceDeletion(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
 Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->balanceInsertion(Ljava/util/concurrent/ConcurrentHashMap$TreeNode;Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
@@ -115671,7 +108410,6 @@
 Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->WAITER:I
 Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->waiter:Ljava/lang/Thread;
 Ljava/util/concurrent/ConcurrentHashMap$TreeBin;->WRITER:I
-Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
 Ljava/util/concurrent/ConcurrentHashMap$TreeNode;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentHashMap$Node;Ljava/util/concurrent/ConcurrentHashMap$TreeNode;)V
 Ljava/util/concurrent/ConcurrentHashMap$TreeNode;->find(ILjava/lang/Object;)Ljava/util/concurrent/ConcurrentHashMap$Node;
 Ljava/util/concurrent/ConcurrentHashMap$TreeNode;->findTreeNode(ILjava/lang/Object;Ljava/lang/Class;)Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
@@ -115680,14 +108418,11 @@
 Ljava/util/concurrent/ConcurrentHashMap$TreeNode;->prev:Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
 Ljava/util/concurrent/ConcurrentHashMap$TreeNode;->red:Z
 Ljava/util/concurrent/ConcurrentHashMap$TreeNode;->right:Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
-Ljava/util/concurrent/ConcurrentHashMap$ValueIterator;
 Ljava/util/concurrent/ConcurrentHashMap$ValueIterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIILjava/util/concurrent/ConcurrentHashMap;)V
-Ljava/util/concurrent/ConcurrentHashMap$ValueSpliterator;
 Ljava/util/concurrent/ConcurrentHashMap$ValueSpliterator;-><init>([Ljava/util/concurrent/ConcurrentHashMap$Node;IIIJ)V
 Ljava/util/concurrent/ConcurrentHashMap$ValueSpliterator;->est:J
 Ljava/util/concurrent/ConcurrentHashMap$ValueSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/concurrent/ConcurrentHashMap$ValueSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/ConcurrentHashMap$ValuesView;
 Ljava/util/concurrent/ConcurrentHashMap$ValuesView;-><init>(Ljava/util/concurrent/ConcurrentHashMap;)V
 Ljava/util/concurrent/ConcurrentHashMap$ValuesView;->add(Ljava/lang/Object;)Z
 Ljava/util/concurrent/ConcurrentHashMap$ValuesView;->addAll(Ljava/util/Collection;)Z
@@ -115750,15 +108485,12 @@
 Ljava/util/concurrent/ConcurrentHashMap;->untreeify(Ljava/util/concurrent/ConcurrentHashMap$Node;)Ljava/util/concurrent/ConcurrentHashMap$Node;
 Ljava/util/concurrent/ConcurrentHashMap;->UNTREEIFY_THRESHOLD:I
 Ljava/util/concurrent/ConcurrentHashMap;->values:Ljava/util/concurrent/ConcurrentHashMap$ValuesView;
-Ljava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;
-Ljava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;-><init>()V
 Ljava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;->advance()V
 Ljava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;->lastRet:Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
 Ljava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;->nextItem:Ljava/lang/Object;
 Ljava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;->nextNode(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
 Ljava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;->nextNode:Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
 Ljava/util/concurrent/ConcurrentLinkedDeque$AbstractItr;->startNode()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque$CLDSpliterator;
 Ljava/util/concurrent/ConcurrentLinkedDeque$CLDSpliterator;-><init>(Ljava/util/concurrent/ConcurrentLinkedDeque;)V
 Ljava/util/concurrent/ConcurrentLinkedDeque$CLDSpliterator;->batch:I
 Ljava/util/concurrent/ConcurrentLinkedDeque$CLDSpliterator;->current:Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
@@ -115767,15 +108499,10 @@
 Ljava/util/concurrent/ConcurrentLinkedDeque$CLDSpliterator;->MAX_BATCH:I
 Ljava/util/concurrent/ConcurrentLinkedDeque$CLDSpliterator;->queue:Ljava/util/concurrent/ConcurrentLinkedDeque;
 Ljava/util/concurrent/ConcurrentLinkedDeque$CLDSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/ConcurrentLinkedDeque$DescendingItr;
-Ljava/util/concurrent/ConcurrentLinkedDeque$DescendingItr;-><init>()V
 Ljava/util/concurrent/ConcurrentLinkedDeque$DescendingItr;->nextNode(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
 Ljava/util/concurrent/ConcurrentLinkedDeque$DescendingItr;->startNode()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque$Itr;
-Ljava/util/concurrent/ConcurrentLinkedDeque$Itr;-><init>()V
 Ljava/util/concurrent/ConcurrentLinkedDeque$Itr;->nextNode(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
 Ljava/util/concurrent/ConcurrentLinkedDeque$Itr;->startNode()Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
-Ljava/util/concurrent/ConcurrentLinkedDeque$Node;
 Ljava/util/concurrent/ConcurrentLinkedDeque$Node;-><init>()V
 Ljava/util/concurrent/ConcurrentLinkedDeque$Node;-><init>(Ljava/lang/Object;)V
 Ljava/util/concurrent/ConcurrentLinkedDeque$Node;->casItem(Ljava/lang/Object;Ljava/lang/Object;)Z
@@ -115818,7 +108545,6 @@
 Ljava/util/concurrent/ConcurrentLinkedDeque;->unlinkLast(Ljava/util/concurrent/ConcurrentLinkedDeque$Node;Ljava/util/concurrent/ConcurrentLinkedDeque$Node;)V
 Ljava/util/concurrent/ConcurrentLinkedDeque;->updateHead()V
 Ljava/util/concurrent/ConcurrentLinkedDeque;->updateTail()V
-Ljava/util/concurrent/ConcurrentLinkedQueue$CLQSpliterator;
 Ljava/util/concurrent/ConcurrentLinkedQueue$CLQSpliterator;-><init>(Ljava/util/concurrent/ConcurrentLinkedQueue;)V
 Ljava/util/concurrent/ConcurrentLinkedQueue$CLQSpliterator;->batch:I
 Ljava/util/concurrent/ConcurrentLinkedQueue$CLQSpliterator;->current:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
@@ -115827,12 +108553,9 @@
 Ljava/util/concurrent/ConcurrentLinkedQueue$CLQSpliterator;->MAX_BATCH:I
 Ljava/util/concurrent/ConcurrentLinkedQueue$CLQSpliterator;->queue:Ljava/util/concurrent/ConcurrentLinkedQueue;
 Ljava/util/concurrent/ConcurrentLinkedQueue$CLQSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/ConcurrentLinkedQueue$Itr;
-Ljava/util/concurrent/ConcurrentLinkedQueue$Itr;-><init>()V
 Ljava/util/concurrent/ConcurrentLinkedQueue$Itr;->lastRet:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
 Ljava/util/concurrent/ConcurrentLinkedQueue$Itr;->nextItem:Ljava/lang/Object;
 Ljava/util/concurrent/ConcurrentLinkedQueue$Itr;->nextNode:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
-Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
 Ljava/util/concurrent/ConcurrentLinkedQueue$Node;-><init>()V
 Ljava/util/concurrent/ConcurrentLinkedQueue$Node;->item:Ljava/lang/Object;
 Ljava/util/concurrent/ConcurrentLinkedQueue$Node;->next:Ljava/util/concurrent/ConcurrentLinkedQueue$Node;
@@ -115853,7 +108576,6 @@
 Ljava/util/concurrent/ConcurrentLinkedQueue;->toArrayInternal([Ljava/lang/Object;)[Ljava/lang/Object;
 Ljava/util/concurrent/ConcurrentLinkedQueue;->U:Lsun/misc/Unsafe;
 Ljava/util/concurrent/ConcurrentLinkedQueue;->updateHead(Ljava/util/concurrent/ConcurrentLinkedQueue$Node;Ljava/util/concurrent/ConcurrentLinkedQueue$Node;)V
-Ljava/util/concurrent/ConcurrentSkipListMap$CSLMSpliterator;
 Ljava/util/concurrent/ConcurrentSkipListMap$CSLMSpliterator;-><init>(Ljava/util/Comparator;Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/lang/Object;I)V
 Ljava/util/concurrent/ConcurrentSkipListMap$CSLMSpliterator;->comparator:Ljava/util/Comparator;
 Ljava/util/concurrent/ConcurrentSkipListMap$CSLMSpliterator;->current:Ljava/util/concurrent/ConcurrentSkipListMap$Node;
@@ -115861,20 +108583,14 @@
 Ljava/util/concurrent/ConcurrentSkipListMap$CSLMSpliterator;->estimateSize()J
 Ljava/util/concurrent/ConcurrentSkipListMap$CSLMSpliterator;->fence:Ljava/lang/Object;
 Ljava/util/concurrent/ConcurrentSkipListMap$CSLMSpliterator;->row:Ljava/util/concurrent/ConcurrentSkipListMap$Index;
-Ljava/util/concurrent/ConcurrentSkipListMap$EntryIterator;
-Ljava/util/concurrent/ConcurrentSkipListMap$EntryIterator;-><init>()V
-Ljava/util/concurrent/ConcurrentSkipListMap$EntrySet;
 Ljava/util/concurrent/ConcurrentSkipListMap$EntrySet;-><init>(Ljava/util/concurrent/ConcurrentNavigableMap;)V
 Ljava/util/concurrent/ConcurrentSkipListMap$EntrySet;->m:Ljava/util/concurrent/ConcurrentNavigableMap;
 Ljava/util/concurrent/ConcurrentSkipListMap$EntrySet;->removeIf(Ljava/util/function/Predicate;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap$EntrySpliterator;
 Ljava/util/concurrent/ConcurrentSkipListMap$EntrySpliterator;-><init>(Ljava/util/Comparator;Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/lang/Object;I)V
 Ljava/util/concurrent/ConcurrentSkipListMap$EntrySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/concurrent/ConcurrentSkipListMap$EntrySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap$HeadIndex;
 Ljava/util/concurrent/ConcurrentSkipListMap$HeadIndex;-><init>(Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Index;I)V
 Ljava/util/concurrent/ConcurrentSkipListMap$HeadIndex;->level:I
-Ljava/util/concurrent/ConcurrentSkipListMap$Index;
 Ljava/util/concurrent/ConcurrentSkipListMap$Index;-><init>(Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Index;)V
 Ljava/util/concurrent/ConcurrentSkipListMap$Index;->casRight(Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Index;)Z
 Ljava/util/concurrent/ConcurrentSkipListMap$Index;->down:Ljava/util/concurrent/ConcurrentSkipListMap$Index;
@@ -115885,15 +108601,10 @@
 Ljava/util/concurrent/ConcurrentSkipListMap$Index;->right:Ljava/util/concurrent/ConcurrentSkipListMap$Index;
 Ljava/util/concurrent/ConcurrentSkipListMap$Index;->U:Lsun/misc/Unsafe;
 Ljava/util/concurrent/ConcurrentSkipListMap$Index;->unlink(Ljava/util/concurrent/ConcurrentSkipListMap$Index;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap$Iter;
-Ljava/util/concurrent/ConcurrentSkipListMap$Iter;-><init>()V
 Ljava/util/concurrent/ConcurrentSkipListMap$Iter;->advance()V
 Ljava/util/concurrent/ConcurrentSkipListMap$Iter;->lastReturned:Ljava/util/concurrent/ConcurrentSkipListMap$Node;
 Ljava/util/concurrent/ConcurrentSkipListMap$Iter;->next:Ljava/util/concurrent/ConcurrentSkipListMap$Node;
 Ljava/util/concurrent/ConcurrentSkipListMap$Iter;->nextValue:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap$KeyIterator;
-Ljava/util/concurrent/ConcurrentSkipListMap$KeyIterator;-><init>()V
-Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;
 Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;-><init>(Ljava/util/concurrent/ConcurrentNavigableMap;)V
 Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->ceiling(Ljava/lang/Object;)Ljava/lang/Object;
 Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->floor(Ljava/lang/Object;)Ljava/lang/Object;
@@ -115906,11 +108617,9 @@
 Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->subSet(Ljava/lang/Object;ZLjava/lang/Object;Z)Ljava/util/NavigableSet;
 Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->tailSet(Ljava/lang/Object;)Ljava/util/NavigableSet;
 Ljava/util/concurrent/ConcurrentSkipListMap$KeySet;->tailSet(Ljava/lang/Object;Z)Ljava/util/NavigableSet;
-Ljava/util/concurrent/ConcurrentSkipListMap$KeySpliterator;
 Ljava/util/concurrent/ConcurrentSkipListMap$KeySpliterator;-><init>(Ljava/util/Comparator;Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/lang/Object;I)V
 Ljava/util/concurrent/ConcurrentSkipListMap$KeySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/concurrent/ConcurrentSkipListMap$KeySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap$Node;
 Ljava/util/concurrent/ConcurrentSkipListMap$Node;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/concurrent/ConcurrentSkipListMap$Node;)V
 Ljava/util/concurrent/ConcurrentSkipListMap$Node;-><init>(Ljava/util/concurrent/ConcurrentSkipListMap$Node;)V
 Ljava/util/concurrent/ConcurrentSkipListMap$Node;->appendMarker(Ljava/util/concurrent/ConcurrentSkipListMap$Node;)Z
@@ -115927,21 +108636,12 @@
 Ljava/util/concurrent/ConcurrentSkipListMap$Node;->U:Lsun/misc/Unsafe;
 Ljava/util/concurrent/ConcurrentSkipListMap$Node;->VALUE:J
 Ljava/util/concurrent/ConcurrentSkipListMap$Node;->value:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapEntryIterator;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapEntryIterator;-><init>()V
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter;-><init>()V
 Ljava/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter;->advance()V
 Ljava/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter;->ascend()V
 Ljava/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter;->descend()V
 Ljava/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter;->lastReturned:Ljava/util/concurrent/ConcurrentSkipListMap$Node;
 Ljava/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter;->next:Ljava/util/concurrent/ConcurrentSkipListMap$Node;
 Ljava/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapIter;->nextValue:Ljava/lang/Object;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapKeyIterator;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapKeyIterator;-><init>()V
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapValueIterator;
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap$SubMapValueIterator;-><init>()V
-Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;
 Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;-><init>(Ljava/util/concurrent/ConcurrentSkipListMap;Ljava/lang/Object;ZLjava/lang/Object;ZZ)V
 Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->checkKeyBounds(Ljava/lang/Object;Ljava/util/Comparator;)V
 Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->entrySetView:Ljava/util/Set;
@@ -115968,13 +108668,9 @@
 Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->tooHigh(Ljava/lang/Object;Ljava/util/Comparator;)Z
 Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->tooLow(Ljava/lang/Object;Ljava/util/Comparator;)Z
 Ljava/util/concurrent/ConcurrentSkipListMap$SubMap;->valuesView:Ljava/util/Collection;
-Ljava/util/concurrent/ConcurrentSkipListMap$ValueIterator;
-Ljava/util/concurrent/ConcurrentSkipListMap$ValueIterator;-><init>()V
-Ljava/util/concurrent/ConcurrentSkipListMap$Values;
 Ljava/util/concurrent/ConcurrentSkipListMap$Values;-><init>(Ljava/util/concurrent/ConcurrentNavigableMap;)V
 Ljava/util/concurrent/ConcurrentSkipListMap$Values;->m:Ljava/util/concurrent/ConcurrentNavigableMap;
 Ljava/util/concurrent/ConcurrentSkipListMap$Values;->removeIf(Ljava/util/function/Predicate;)Z
-Ljava/util/concurrent/ConcurrentSkipListMap$ValueSpliterator;
 Ljava/util/concurrent/ConcurrentSkipListMap$ValueSpliterator;-><init>(Ljava/util/Comparator;Ljava/util/concurrent/ConcurrentSkipListMap$Index;Ljava/util/concurrent/ConcurrentSkipListMap$Node;Ljava/lang/Object;I)V
 Ljava/util/concurrent/ConcurrentSkipListMap$ValueSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/concurrent/ConcurrentSkipListMap$ValueSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
@@ -116019,11 +108715,9 @@
 Ljava/util/concurrent/ConcurrentSkipListSet;->MAP:J
 Ljava/util/concurrent/ConcurrentSkipListSet;->setMap(Ljava/util/concurrent/ConcurrentNavigableMap;)V
 Ljava/util/concurrent/ConcurrentSkipListSet;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;
 Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;-><init>([Ljava/lang/Object;I)V
 Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;->cursor:I
 Ljava/util/concurrent/CopyOnWriteArrayList$COWIterator;->snapshot:[Ljava/lang/Object;
-Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
 Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;-><init>(Ljava/util/concurrent/CopyOnWriteArrayList;II)V
 Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;->checkForComodification()V
 Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;->expectedArray:[Ljava/lang/Object;
@@ -116032,7 +108726,6 @@
 Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;->offset:I
 Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;->rangeCheck(I)V
 Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;->size:I
-Ljava/util/concurrent/CopyOnWriteArrayList$COWSubListIterator;
 Ljava/util/concurrent/CopyOnWriteArrayList$COWSubListIterator;-><init>(Ljava/util/List;III)V
 Ljava/util/concurrent/CopyOnWriteArrayList$COWSubListIterator;->it:Ljava/util/ListIterator;
 Ljava/util/concurrent/CopyOnWriteArrayList$COWSubListIterator;->offset:I
@@ -116051,7 +108744,6 @@
 Ljava/util/concurrent/CopyOnWriteArrayList;->setArray([Ljava/lang/Object;)V
 Ljava/util/concurrent/CopyOnWriteArrayList;->U:Lsun/misc/Unsafe;
 Ljava/util/concurrent/CopyOnWriteArraySet;->compareSets([Ljava/lang/Object;Ljava/util/Set;)I
-Ljava/util/concurrent/CountDownLatch$Sync;
 Ljava/util/concurrent/CountDownLatch$Sync;-><init>(I)V
 Ljava/util/concurrent/CountDownLatch$Sync;->getCount()I
 Ljava/util/concurrent/CountDownLatch;->sync:Ljava/util/concurrent/CountDownLatch$Sync;
@@ -116060,7 +108752,6 @@
 Ljava/util/concurrent/CountedCompleter;->pending:I
 Ljava/util/concurrent/CountedCompleter;->PENDING:J
 Ljava/util/concurrent/CountedCompleter;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/CyclicBarrier$Generation;
 Ljava/util/concurrent/CyclicBarrier$Generation;-><init>()V
 Ljava/util/concurrent/CyclicBarrier$Generation;->broken:Z
 Ljava/util/concurrent/CyclicBarrier;->barrierCommand:Ljava/lang/Runnable;
@@ -116072,8 +108763,6 @@
 Ljava/util/concurrent/CyclicBarrier;->nextGeneration()V
 Ljava/util/concurrent/CyclicBarrier;->parties:I
 Ljava/util/concurrent/CyclicBarrier;->trip:Ljava/util/concurrent/locks/Condition;
-Ljava/util/concurrent/DelayQueue$Itr;
-Ljava/util/concurrent/DelayQueue$Itr;-><init>([Ljava/lang/Object;)V
 Ljava/util/concurrent/DelayQueue$Itr;->array:[Ljava/lang/Object;
 Ljava/util/concurrent/DelayQueue$Itr;->cursor:I
 Ljava/util/concurrent/DelayQueue$Itr;->lastRet:I
@@ -116083,7 +108772,6 @@
 Ljava/util/concurrent/DelayQueue;->peekExpired()Ljava/util/concurrent/Delayed;
 Ljava/util/concurrent/DelayQueue;->q:Ljava/util/PriorityQueue;
 Ljava/util/concurrent/DelayQueue;->removeEQ(Ljava/lang/Object;)V
-Ljava/util/concurrent/Exchanger$Node;
 Ljava/util/concurrent/Exchanger$Node;-><init>()V
 Ljava/util/concurrent/Exchanger$Node;->bound:I
 Ljava/util/concurrent/Exchanger$Node;->collides:I
@@ -116092,7 +108780,6 @@
 Ljava/util/concurrent/Exchanger$Node;->item:Ljava/lang/Object;
 Ljava/util/concurrent/Exchanger$Node;->match:Ljava/lang/Object;
 Ljava/util/concurrent/Exchanger$Node;->parked:Ljava/lang/Thread;
-Ljava/util/concurrent/Exchanger$Participant;
 Ljava/util/concurrent/Exchanger$Participant;-><init>()V
 Ljava/util/concurrent/Exchanger;->ABASE:I
 Ljava/util/concurrent/Exchanger;->arena:[Ljava/util/concurrent/Exchanger$Node;
@@ -116114,7 +108801,6 @@
 Ljava/util/concurrent/Exchanger;->SPINS:I
 Ljava/util/concurrent/Exchanger;->TIMED_OUT:Ljava/lang/Object;
 Ljava/util/concurrent/Exchanger;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/ExecutorCompletionService$QueueingFuture;
 Ljava/util/concurrent/ExecutorCompletionService$QueueingFuture;-><init>(Ljava/util/concurrent/RunnableFuture;Ljava/util/concurrent/BlockingQueue;)V
 Ljava/util/concurrent/ExecutorCompletionService$QueueingFuture;->completionQueue:Ljava/util/concurrent/BlockingQueue;
 Ljava/util/concurrent/ExecutorCompletionService$QueueingFuture;->task:Ljava/util/concurrent/Future;
@@ -116123,50 +108809,37 @@
 Ljava/util/concurrent/ExecutorCompletionService;->executor:Ljava/util/concurrent/Executor;
 Ljava/util/concurrent/ExecutorCompletionService;->newTaskFor(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/RunnableFuture;
 Ljava/util/concurrent/ExecutorCompletionService;->newTaskFor(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/RunnableFuture;
-Ljava/util/concurrent/Executors$DefaultThreadFactory;
 Ljava/util/concurrent/Executors$DefaultThreadFactory;-><init>()V
 Ljava/util/concurrent/Executors$DefaultThreadFactory;->group:Ljava/lang/ThreadGroup;
 Ljava/util/concurrent/Executors$DefaultThreadFactory;->namePrefix:Ljava/lang/String;
 Ljava/util/concurrent/Executors$DefaultThreadFactory;->poolNumber:Ljava/util/concurrent/atomic/AtomicInteger;
 Ljava/util/concurrent/Executors$DefaultThreadFactory;->threadNumber:Ljava/util/concurrent/atomic/AtomicInteger;
-Ljava/util/concurrent/Executors$DelegatedExecutorService;
 Ljava/util/concurrent/Executors$DelegatedExecutorService;-><init>(Ljava/util/concurrent/ExecutorService;)V
 Ljava/util/concurrent/Executors$DelegatedExecutorService;->e:Ljava/util/concurrent/ExecutorService;
-Ljava/util/concurrent/Executors$DelegatedScheduledExecutorService;
 Ljava/util/concurrent/Executors$DelegatedScheduledExecutorService;-><init>(Ljava/util/concurrent/ScheduledExecutorService;)V
 Ljava/util/concurrent/Executors$DelegatedScheduledExecutorService;->e:Ljava/util/concurrent/ScheduledExecutorService;
-Ljava/util/concurrent/Executors$FinalizableDelegatedExecutorService;
 Ljava/util/concurrent/Executors$FinalizableDelegatedExecutorService;-><init>(Ljava/util/concurrent/ExecutorService;)V
-Ljava/util/concurrent/Executors$PrivilegedCallable;
 Ljava/util/concurrent/Executors$PrivilegedCallable;-><init>(Ljava/util/concurrent/Callable;)V
 Ljava/util/concurrent/Executors$PrivilegedCallable;->acc:Ljava/security/AccessControlContext;
 Ljava/util/concurrent/Executors$PrivilegedCallable;->task:Ljava/util/concurrent/Callable;
-Ljava/util/concurrent/Executors$PrivilegedCallableUsingCurrentClassLoader;
 Ljava/util/concurrent/Executors$PrivilegedCallableUsingCurrentClassLoader;-><init>(Ljava/util/concurrent/Callable;)V
 Ljava/util/concurrent/Executors$PrivilegedCallableUsingCurrentClassLoader;->acc:Ljava/security/AccessControlContext;
 Ljava/util/concurrent/Executors$PrivilegedCallableUsingCurrentClassLoader;->ccl:Ljava/lang/ClassLoader;
 Ljava/util/concurrent/Executors$PrivilegedCallableUsingCurrentClassLoader;->task:Ljava/util/concurrent/Callable;
-Ljava/util/concurrent/Executors$PrivilegedThreadFactory;
 Ljava/util/concurrent/Executors$PrivilegedThreadFactory;-><init>()V
 Ljava/util/concurrent/Executors$PrivilegedThreadFactory;->acc:Ljava/security/AccessControlContext;
 Ljava/util/concurrent/Executors$PrivilegedThreadFactory;->ccl:Ljava/lang/ClassLoader;
-Ljava/util/concurrent/Executors$RunnableAdapter;
 Ljava/util/concurrent/Executors$RunnableAdapter;-><init>(Ljava/lang/Runnable;Ljava/lang/Object;)V
 Ljava/util/concurrent/Executors$RunnableAdapter;->result:Ljava/lang/Object;
 Ljava/util/concurrent/Executors;-><init>()V
-Ljava/util/concurrent/ForkJoinPool$AuxState;
 Ljava/util/concurrent/ForkJoinPool$AuxState;-><init>()V
 Ljava/util/concurrent/ForkJoinPool$AuxState;->indexSeed:J
 Ljava/util/concurrent/ForkJoinPool$AuxState;->stealCount:J
-Ljava/util/concurrent/ForkJoinPool$DefaultForkJoinWorkerThreadFactory;
 Ljava/util/concurrent/ForkJoinPool$DefaultForkJoinWorkerThreadFactory;-><init>()V
-Ljava/util/concurrent/ForkJoinPool$EmptyTask;
 Ljava/util/concurrent/ForkJoinPool$EmptyTask;-><init>()V
 Ljava/util/concurrent/ForkJoinPool$EmptyTask;->setRawResult(Ljava/lang/Void;)V
-Ljava/util/concurrent/ForkJoinPool$InnocuousForkJoinWorkerThreadFactory;
 Ljava/util/concurrent/ForkJoinPool$InnocuousForkJoinWorkerThreadFactory;-><init>()V
 Ljava/util/concurrent/ForkJoinPool$InnocuousForkJoinWorkerThreadFactory;->innocuousAcc:Ljava/security/AccessControlContext;
-Ljava/util/concurrent/ForkJoinPool$WorkQueue;
 Ljava/util/concurrent/ForkJoinPool$WorkQueue;-><init>(Ljava/util/concurrent/ForkJoinPool;Ljava/util/concurrent/ForkJoinWorkerThread;)V
 Ljava/util/concurrent/ForkJoinPool$WorkQueue;->ABASE:I
 Ljava/util/concurrent/ForkJoinPool$WorkQueue;->array:[Ljava/util/concurrent/ForkJoinTask;
@@ -116295,27 +108968,22 @@
 Ljava/util/concurrent/ForkJoinPool;->UNSIGNALLED:I
 Ljava/util/concurrent/ForkJoinPool;->workerNamePrefix:Ljava/lang/String;
 Ljava/util/concurrent/ForkJoinPool;->workQueues:[Ljava/util/concurrent/ForkJoinPool$WorkQueue;
-Ljava/util/concurrent/ForkJoinTask$AdaptedCallable;
 Ljava/util/concurrent/ForkJoinTask$AdaptedCallable;-><init>(Ljava/util/concurrent/Callable;)V
 Ljava/util/concurrent/ForkJoinTask$AdaptedCallable;->callable:Ljava/util/concurrent/Callable;
 Ljava/util/concurrent/ForkJoinTask$AdaptedCallable;->result:Ljava/lang/Object;
 Ljava/util/concurrent/ForkJoinTask$AdaptedCallable;->setRawResult(Ljava/lang/Object;)V
-Ljava/util/concurrent/ForkJoinTask$AdaptedRunnable;
 Ljava/util/concurrent/ForkJoinTask$AdaptedRunnable;-><init>(Ljava/lang/Runnable;Ljava/lang/Object;)V
 Ljava/util/concurrent/ForkJoinTask$AdaptedRunnable;->result:Ljava/lang/Object;
 Ljava/util/concurrent/ForkJoinTask$AdaptedRunnable;->runnable:Ljava/lang/Runnable;
 Ljava/util/concurrent/ForkJoinTask$AdaptedRunnable;->setRawResult(Ljava/lang/Object;)V
-Ljava/util/concurrent/ForkJoinTask$AdaptedRunnableAction;
 Ljava/util/concurrent/ForkJoinTask$AdaptedRunnableAction;-><init>(Ljava/lang/Runnable;)V
 Ljava/util/concurrent/ForkJoinTask$AdaptedRunnableAction;->runnable:Ljava/lang/Runnable;
 Ljava/util/concurrent/ForkJoinTask$AdaptedRunnableAction;->setRawResult(Ljava/lang/Void;)V
-Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
 Ljava/util/concurrent/ForkJoinTask$ExceptionNode;-><init>(Ljava/util/concurrent/ForkJoinTask;Ljava/lang/Throwable;Ljava/util/concurrent/ForkJoinTask$ExceptionNode;Ljava/lang/ref/ReferenceQueue;)V
 Ljava/util/concurrent/ForkJoinTask$ExceptionNode;->ex:Ljava/lang/Throwable;
 Ljava/util/concurrent/ForkJoinTask$ExceptionNode;->hashCode:I
 Ljava/util/concurrent/ForkJoinTask$ExceptionNode;->next:Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
 Ljava/util/concurrent/ForkJoinTask$ExceptionNode;->thrower:J
-Ljava/util/concurrent/ForkJoinTask$RunnableExecuteAction;
 Ljava/util/concurrent/ForkJoinTask$RunnableExecuteAction;-><init>(Ljava/lang/Runnable;)V
 Ljava/util/concurrent/ForkJoinTask$RunnableExecuteAction;->internalPropagateException(Ljava/lang/Throwable;)V
 Ljava/util/concurrent/ForkJoinTask$RunnableExecuteAction;->runnable:Ljava/lang/Runnable;
@@ -116352,7 +109020,6 @@
 Ljava/util/concurrent/ForkJoinTask;->STATUS:J
 Ljava/util/concurrent/ForkJoinTask;->U:Lsun/misc/Unsafe;
 Ljava/util/concurrent/ForkJoinTask;->uncheckedThrow(Ljava/lang/Throwable;)V
-Ljava/util/concurrent/ForkJoinWorkerThread$InnocuousForkJoinWorkerThread;
 Ljava/util/concurrent/ForkJoinWorkerThread$InnocuousForkJoinWorkerThread;-><init>(Ljava/util/concurrent/ForkJoinPool;)V
 Ljava/util/concurrent/ForkJoinWorkerThread$InnocuousForkJoinWorkerThread;->afterTopLevelExec()V
 Ljava/util/concurrent/ForkJoinWorkerThread$InnocuousForkJoinWorkerThread;->createThreadGroup()Ljava/lang/ThreadGroup;
@@ -116367,7 +109034,6 @@
 Ljava/util/concurrent/ForkJoinWorkerThread;->THREADLOCALS:J
 Ljava/util/concurrent/ForkJoinWorkerThread;->U:Lsun/misc/Unsafe;
 Ljava/util/concurrent/ForkJoinWorkerThread;->workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
-Ljava/util/concurrent/FutureTask$WaitNode;
 Ljava/util/concurrent/FutureTask$WaitNode;-><init>()V
 Ljava/util/concurrent/FutureTask$WaitNode;->next:Ljava/util/concurrent/FutureTask$WaitNode;
 Ljava/util/concurrent/FutureTask$WaitNode;->thread:Ljava/lang/Thread;
@@ -116388,8 +109054,6 @@
 Ljava/util/concurrent/FutureTask;->U:Lsun/misc/Unsafe;
 Ljava/util/concurrent/FutureTask;->WAITERS:J
 Ljava/util/concurrent/FutureTask;->waiters:Ljava/util/concurrent/FutureTask$WaitNode;
-Ljava/util/concurrent/LinkedBlockingDeque$AbstractItr;
-Ljava/util/concurrent/LinkedBlockingDeque$AbstractItr;-><init>()V
 Ljava/util/concurrent/LinkedBlockingDeque$AbstractItr;->advance()V
 Ljava/util/concurrent/LinkedBlockingDeque$AbstractItr;->firstNode()Ljava/util/concurrent/LinkedBlockingDeque$Node;
 Ljava/util/concurrent/LinkedBlockingDeque$AbstractItr;->lastRet:Ljava/util/concurrent/LinkedBlockingDeque$Node;
@@ -116397,15 +109061,10 @@
 Ljava/util/concurrent/LinkedBlockingDeque$AbstractItr;->nextItem:Ljava/lang/Object;
 Ljava/util/concurrent/LinkedBlockingDeque$AbstractItr;->nextNode(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Ljava/util/concurrent/LinkedBlockingDeque$Node;
 Ljava/util/concurrent/LinkedBlockingDeque$AbstractItr;->succ(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Ljava/util/concurrent/LinkedBlockingDeque$Node;
-Ljava/util/concurrent/LinkedBlockingDeque$DescendingItr;
-Ljava/util/concurrent/LinkedBlockingDeque$DescendingItr;-><init>()V
 Ljava/util/concurrent/LinkedBlockingDeque$DescendingItr;->firstNode()Ljava/util/concurrent/LinkedBlockingDeque$Node;
 Ljava/util/concurrent/LinkedBlockingDeque$DescendingItr;->nextNode(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Ljava/util/concurrent/LinkedBlockingDeque$Node;
-Ljava/util/concurrent/LinkedBlockingDeque$Itr;
-Ljava/util/concurrent/LinkedBlockingDeque$Itr;-><init>()V
 Ljava/util/concurrent/LinkedBlockingDeque$Itr;->firstNode()Ljava/util/concurrent/LinkedBlockingDeque$Node;
 Ljava/util/concurrent/LinkedBlockingDeque$Itr;->nextNode(Ljava/util/concurrent/LinkedBlockingDeque$Node;)Ljava/util/concurrent/LinkedBlockingDeque$Node;
-Ljava/util/concurrent/LinkedBlockingDeque$LBDSpliterator;
 Ljava/util/concurrent/LinkedBlockingDeque$LBDSpliterator;-><init>(Ljava/util/concurrent/LinkedBlockingDeque;)V
 Ljava/util/concurrent/LinkedBlockingDeque$LBDSpliterator;->batch:I
 Ljava/util/concurrent/LinkedBlockingDeque$LBDSpliterator;->current:Ljava/util/concurrent/LinkedBlockingDeque$Node;
@@ -116415,7 +109074,6 @@
 Ljava/util/concurrent/LinkedBlockingDeque$LBDSpliterator;->MAX_BATCH:I
 Ljava/util/concurrent/LinkedBlockingDeque$LBDSpliterator;->queue:Ljava/util/concurrent/LinkedBlockingDeque;
 Ljava/util/concurrent/LinkedBlockingDeque$LBDSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/LinkedBlockingDeque$Node;
 Ljava/util/concurrent/LinkedBlockingDeque$Node;-><init>(Ljava/lang/Object;)V
 Ljava/util/concurrent/LinkedBlockingDeque$Node;->item:Ljava/lang/Object;
 Ljava/util/concurrent/LinkedBlockingDeque$Node;->next:Ljava/util/concurrent/LinkedBlockingDeque$Node;
@@ -116430,12 +109088,9 @@
 Ljava/util/concurrent/LinkedBlockingDeque;->unlink(Ljava/util/concurrent/LinkedBlockingDeque$Node;)V
 Ljava/util/concurrent/LinkedBlockingDeque;->unlinkFirst()Ljava/lang/Object;
 Ljava/util/concurrent/LinkedBlockingDeque;->unlinkLast()Ljava/lang/Object;
-Ljava/util/concurrent/LinkedBlockingQueue$Itr;
-Ljava/util/concurrent/LinkedBlockingQueue$Itr;-><init>()V
 Ljava/util/concurrent/LinkedBlockingQueue$Itr;->current:Ljava/util/concurrent/LinkedBlockingQueue$Node;
 Ljava/util/concurrent/LinkedBlockingQueue$Itr;->currentElement:Ljava/lang/Object;
 Ljava/util/concurrent/LinkedBlockingQueue$Itr;->lastRet:Ljava/util/concurrent/LinkedBlockingQueue$Node;
-Ljava/util/concurrent/LinkedBlockingQueue$LBQSpliterator;
 Ljava/util/concurrent/LinkedBlockingQueue$LBQSpliterator;-><init>(Ljava/util/concurrent/LinkedBlockingQueue;)V
 Ljava/util/concurrent/LinkedBlockingQueue$LBQSpliterator;->batch:I
 Ljava/util/concurrent/LinkedBlockingQueue$LBQSpliterator;->current:Ljava/util/concurrent/LinkedBlockingQueue$Node;
@@ -116445,7 +109100,6 @@
 Ljava/util/concurrent/LinkedBlockingQueue$LBQSpliterator;->MAX_BATCH:I
 Ljava/util/concurrent/LinkedBlockingQueue$LBQSpliterator;->queue:Ljava/util/concurrent/LinkedBlockingQueue;
 Ljava/util/concurrent/LinkedBlockingQueue$LBQSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/LinkedBlockingQueue$Node;
 Ljava/util/concurrent/LinkedBlockingQueue$Node;-><init>(Ljava/lang/Object;)V
 Ljava/util/concurrent/LinkedBlockingQueue$Node;->item:Ljava/lang/Object;
 Ljava/util/concurrent/LinkedBlockingQueue$Node;->next:Ljava/util/concurrent/LinkedBlockingQueue$Node;
@@ -116460,22 +109114,17 @@
 Ljava/util/concurrent/LinkedBlockingQueue;->signalNotEmpty()V
 Ljava/util/concurrent/LinkedBlockingQueue;->signalNotFull()V
 Ljava/util/concurrent/LinkedBlockingQueue;->unlink(Ljava/util/concurrent/LinkedBlockingQueue$Node;Ljava/util/concurrent/LinkedBlockingQueue$Node;)V
-Ljava/util/concurrent/LinkedTransferQueue$Itr;
-Ljava/util/concurrent/LinkedTransferQueue$Itr;-><init>()V
 Ljava/util/concurrent/LinkedTransferQueue$Itr;->advance(Ljava/util/concurrent/LinkedTransferQueue$Node;)V
 Ljava/util/concurrent/LinkedTransferQueue$Itr;->lastPred:Ljava/util/concurrent/LinkedTransferQueue$Node;
 Ljava/util/concurrent/LinkedTransferQueue$Itr;->lastRet:Ljava/util/concurrent/LinkedTransferQueue$Node;
 Ljava/util/concurrent/LinkedTransferQueue$Itr;->nextItem:Ljava/lang/Object;
 Ljava/util/concurrent/LinkedTransferQueue$Itr;->nextNode:Ljava/util/concurrent/LinkedTransferQueue$Node;
-Ljava/util/concurrent/LinkedTransferQueue$LTQSpliterator;
-Ljava/util/concurrent/LinkedTransferQueue$LTQSpliterator;-><init>()V
 Ljava/util/concurrent/LinkedTransferQueue$LTQSpliterator;->batch:I
 Ljava/util/concurrent/LinkedTransferQueue$LTQSpliterator;->current:Ljava/util/concurrent/LinkedTransferQueue$Node;
 Ljava/util/concurrent/LinkedTransferQueue$LTQSpliterator;->exhausted:Z
 Ljava/util/concurrent/LinkedTransferQueue$LTQSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/concurrent/LinkedTransferQueue$LTQSpliterator;->MAX_BATCH:I
 Ljava/util/concurrent/LinkedTransferQueue$LTQSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/concurrent/LinkedTransferQueue$Node;
 Ljava/util/concurrent/LinkedTransferQueue$Node;-><init>(Ljava/lang/Object;Z)V
 Ljava/util/concurrent/LinkedTransferQueue$Node;->cannotPrecede(Z)Z
 Ljava/util/concurrent/LinkedTransferQueue$Node;->casItem(Ljava/lang/Object;Ljava/lang/Object;)Z
@@ -116578,7 +109227,6 @@
 Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->reportInterruptAfterWait(I)V
 Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->THROW_IE:I
 Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;->unlinkCancelledWaiters()V
-Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;
 Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;-><init>()V
 Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;-><init>(I)V
 Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;-><init>(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$Node;)V
@@ -116641,13 +109289,10 @@
 Ljava/util/concurrent/locks/LockSupport;->SECONDARY:J
 Ljava/util/concurrent/locks/LockSupport;->setBlocker(Ljava/lang/Thread;Ljava/lang/Object;)V
 Ljava/util/concurrent/locks/LockSupport;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/locks/ReentrantLock$FairSync;
 Ljava/util/concurrent/locks/ReentrantLock$FairSync;-><init>()V
 Ljava/util/concurrent/locks/ReentrantLock$FairSync;->lock()V
-Ljava/util/concurrent/locks/ReentrantLock$NonfairSync;
 Ljava/util/concurrent/locks/ReentrantLock$NonfairSync;-><init>()V
 Ljava/util/concurrent/locks/ReentrantLock$NonfairSync;->lock()V
-Ljava/util/concurrent/locks/ReentrantLock$Sync;
 Ljava/util/concurrent/locks/ReentrantLock$Sync;-><init>()V
 Ljava/util/concurrent/locks/ReentrantLock$Sync;->getHoldCount()I
 Ljava/util/concurrent/locks/ReentrantLock$Sync;->getOwner()Ljava/lang/Thread;
@@ -116655,22 +109300,17 @@
 Ljava/util/concurrent/locks/ReentrantLock$Sync;->lock()V
 Ljava/util/concurrent/locks/ReentrantLock$Sync;->newCondition()Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;
 Ljava/util/concurrent/locks/ReentrantLock$Sync;->nonfairTryAcquire(I)Z
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$FairSync;
 Ljava/util/concurrent/locks/ReentrantReadWriteLock$FairSync;-><init>()V
 Ljava/util/concurrent/locks/ReentrantReadWriteLock$FairSync;->readerShouldBlock()Z
 Ljava/util/concurrent/locks/ReentrantReadWriteLock$FairSync;->writerShouldBlock()Z
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;
 Ljava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;-><init>()V
 Ljava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;->readerShouldBlock()Z
 Ljava/util/concurrent/locks/ReentrantReadWriteLock$NonfairSync;->writerShouldBlock()Z
 Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;->sync:Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter;
 Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter;-><init>()V
 Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter;->count:I
 Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter;->tid:J
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter;
 Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync$ThreadLocalHoldCounter;-><init>()V
-Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;
 Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;-><init>()V
 Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->cachedHoldCounter:Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync$HoldCounter;
 Ljava/util/concurrent/locks/ReentrantReadWriteLock$Sync;->exclusiveCount(I)I
@@ -116702,11 +109342,6 @@
 Ljava/util/concurrent/locks/ReentrantReadWriteLock;->TID:J
 Ljava/util/concurrent/locks/ReentrantReadWriteLock;->U:Lsun/misc/Unsafe;
 Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writerLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
-Ljava/util/concurrent/locks/StampedLock$ReadLockView;
-Ljava/util/concurrent/locks/StampedLock$ReadLockView;-><init>()V
-Ljava/util/concurrent/locks/StampedLock$ReadWriteLockView;
-Ljava/util/concurrent/locks/StampedLock$ReadWriteLockView;-><init>()V
-Ljava/util/concurrent/locks/StampedLock$WNode;
 Ljava/util/concurrent/locks/StampedLock$WNode;-><init>(ILjava/util/concurrent/locks/StampedLock$WNode;)V
 Ljava/util/concurrent/locks/StampedLock$WNode;->cowait:Ljava/util/concurrent/locks/StampedLock$WNode;
 Ljava/util/concurrent/locks/StampedLock$WNode;->mode:I
@@ -116714,8 +109349,6 @@
 Ljava/util/concurrent/locks/StampedLock$WNode;->prev:Ljava/util/concurrent/locks/StampedLock$WNode;
 Ljava/util/concurrent/locks/StampedLock$WNode;->status:I
 Ljava/util/concurrent/locks/StampedLock$WNode;->thread:Ljava/lang/Thread;
-Ljava/util/concurrent/locks/StampedLock$WriteLockView;
-Ljava/util/concurrent/locks/StampedLock$WriteLockView;-><init>()V
 Ljava/util/concurrent/locks/StampedLock;->ABITS:J
 Ljava/util/concurrent/locks/StampedLock;->acquireRead(ZJ)J
 Ljava/util/concurrent/locks/StampedLock;->acquireWrite(ZJ)J
@@ -116758,7 +109391,6 @@
 Ljava/util/concurrent/locks/StampedLock;->WSTATUS:J
 Ljava/util/concurrent/locks/StampedLock;->WTAIL:J
 Ljava/util/concurrent/locks/StampedLock;->wtail:Ljava/util/concurrent/locks/StampedLock$WNode;
-Ljava/util/concurrent/Phaser$QNode;
 Ljava/util/concurrent/Phaser$QNode;-><init>(Ljava/util/concurrent/Phaser;IZZJ)V
 Ljava/util/concurrent/Phaser$QNode;->deadline:J
 Ljava/util/concurrent/Phaser$QNode;->interruptible:Z
@@ -116804,12 +109436,9 @@
 Ljava/util/concurrent/Phaser;->U:Lsun/misc/Unsafe;
 Ljava/util/concurrent/Phaser;->unarrivedOf(J)I
 Ljava/util/concurrent/Phaser;->UNARRIVED_MASK:I
-Ljava/util/concurrent/PriorityBlockingQueue$Itr;
-Ljava/util/concurrent/PriorityBlockingQueue$Itr;-><init>([Ljava/lang/Object;)V
 Ljava/util/concurrent/PriorityBlockingQueue$Itr;->array:[Ljava/lang/Object;
 Ljava/util/concurrent/PriorityBlockingQueue$Itr;->cursor:I
 Ljava/util/concurrent/PriorityBlockingQueue$Itr;->lastRet:I
-Ljava/util/concurrent/PriorityBlockingQueue$PBQSpliterator;
 Ljava/util/concurrent/PriorityBlockingQueue$PBQSpliterator;-><init>(Ljava/util/concurrent/PriorityBlockingQueue;[Ljava/lang/Object;II)V
 Ljava/util/concurrent/PriorityBlockingQueue$PBQSpliterator;->array:[Ljava/lang/Object;
 Ljava/util/concurrent/PriorityBlockingQueue$PBQSpliterator;->fence:I
@@ -116837,12 +109466,9 @@
 Ljava/util/concurrent/PriorityBlockingQueue;->tryGrow([Ljava/lang/Object;I)V
 Ljava/util/concurrent/PriorityBlockingQueue;->U:Lsun/misc/Unsafe;
 Ljava/util/concurrent/RecursiveTask;->result:Ljava/lang/Object;
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;-><init>([Ljava/util/concurrent/RunnableScheduledFuture;)V
 Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;->array:[Ljava/util/concurrent/RunnableScheduledFuture;
 Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;->cursor:I
 Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue$Itr;->lastRet:I
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;
 Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;-><init>()V
 Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->add(Ljava/lang/Runnable;)Z
 Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->available:Ljava/util/concurrent/locks/Condition;
@@ -116863,10 +109489,6 @@
 Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->siftDown(ILjava/util/concurrent/RunnableScheduledFuture;)V
 Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->siftUp(ILjava/util/concurrent/RunnableScheduledFuture;)V
 Ljava/util/concurrent/ScheduledThreadPoolExecutor$DelayedWorkQueue;->size:I
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;-><init>(Ljava/lang/Runnable;Ljava/lang/Object;JJ)V
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;-><init>(Ljava/lang/Runnable;Ljava/lang/Object;JJJ)V
-Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;-><init>(Ljava/util/concurrent/Callable;JJ)V
 Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->compareTo(Ljava/util/concurrent/Delayed;)I
 Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->heapIndex:I
 Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;->outerTask:Ljava/util/concurrent/RunnableScheduledFuture;
@@ -116886,25 +109508,18 @@
 Ljava/util/concurrent/ScheduledThreadPoolExecutor;->sequencer:Ljava/util/concurrent/atomic/AtomicLong;
 Ljava/util/concurrent/ScheduledThreadPoolExecutor;->triggerTime(J)J
 Ljava/util/concurrent/ScheduledThreadPoolExecutor;->triggerTime(JLjava/util/concurrent/TimeUnit;)J
-Ljava/util/concurrent/Semaphore$FairSync;
 Ljava/util/concurrent/Semaphore$FairSync;-><init>(I)V
-Ljava/util/concurrent/Semaphore$NonfairSync;
 Ljava/util/concurrent/Semaphore$NonfairSync;-><init>(I)V
-Ljava/util/concurrent/Semaphore$Sync;
 Ljava/util/concurrent/Semaphore$Sync;-><init>(I)V
 Ljava/util/concurrent/Semaphore$Sync;->drainPermits()I
 Ljava/util/concurrent/Semaphore$Sync;->getPermits()I
 Ljava/util/concurrent/Semaphore$Sync;->nonfairTryAcquireShared(I)I
 Ljava/util/concurrent/Semaphore$Sync;->reducePermits(I)V
 Ljava/util/concurrent/Semaphore;->sync:Ljava/util/concurrent/Semaphore$Sync;
-Ljava/util/concurrent/SynchronousQueue$FifoWaitQueue;
 Ljava/util/concurrent/SynchronousQueue$FifoWaitQueue;-><init>()V
-Ljava/util/concurrent/SynchronousQueue$LifoWaitQueue;
 Ljava/util/concurrent/SynchronousQueue$LifoWaitQueue;-><init>()V
-Ljava/util/concurrent/SynchronousQueue$Transferer;
 Ljava/util/concurrent/SynchronousQueue$Transferer;-><init>()V
 Ljava/util/concurrent/SynchronousQueue$Transferer;->transfer(Ljava/lang/Object;ZJ)Ljava/lang/Object;
-Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;
 Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;-><init>(Ljava/lang/Object;Z)V
 Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->casItem(Ljava/lang/Object;Ljava/lang/Object;)Z
 Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->casNext(Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;)Z
@@ -116918,7 +109533,6 @@
 Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->tryCancel(Ljava/lang/Object;)V
 Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->U:Lsun/misc/Unsafe;
 Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;->waiter:Ljava/lang/Thread;
-Ljava/util/concurrent/SynchronousQueue$TransferQueue;
 Ljava/util/concurrent/SynchronousQueue$TransferQueue;-><init>()V
 Ljava/util/concurrent/SynchronousQueue$TransferQueue;->advanceHead(Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;)V
 Ljava/util/concurrent/SynchronousQueue$TransferQueue;->advanceTail(Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;)V
@@ -116933,7 +109547,6 @@
 Ljava/util/concurrent/SynchronousQueue$TransferQueue;->tail:Ljava/util/concurrent/SynchronousQueue$TransferQueue$QNode;
 Ljava/util/concurrent/SynchronousQueue$TransferQueue;->transfer(Ljava/lang/Object;ZJ)Ljava/lang/Object;
 Ljava/util/concurrent/SynchronousQueue$TransferQueue;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
 Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;-><init>(Ljava/lang/Object;)V
 Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->casNext(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
 Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->isCancelled()Z
@@ -116947,7 +109560,6 @@
 Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->tryMatch(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
 Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->U:Lsun/misc/Unsafe;
 Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;->waiter:Ljava/lang/Thread;
-Ljava/util/concurrent/SynchronousQueue$TransferStack;
 Ljava/util/concurrent/SynchronousQueue$TransferStack;-><init>()V
 Ljava/util/concurrent/SynchronousQueue$TransferStack;->awaitFulfill(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;ZJ)Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
 Ljava/util/concurrent/SynchronousQueue$TransferStack;->casHead(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;)Z
@@ -116962,7 +109574,6 @@
 Ljava/util/concurrent/SynchronousQueue$TransferStack;->snode(Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;Ljava/lang/Object;Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;I)Ljava/util/concurrent/SynchronousQueue$TransferStack$SNode;
 Ljava/util/concurrent/SynchronousQueue$TransferStack;->transfer(Ljava/lang/Object;ZJ)Ljava/lang/Object;
 Ljava/util/concurrent/SynchronousQueue$TransferStack;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/SynchronousQueue$WaitQueue;
 Ljava/util/concurrent/SynchronousQueue$WaitQueue;-><init>()V
 Ljava/util/concurrent/SynchronousQueue;->MAX_TIMED_SPINS:I
 Ljava/util/concurrent/SynchronousQueue;->MAX_UNTIMED_SPINS:I
@@ -116971,19 +109582,16 @@
 Ljava/util/concurrent/SynchronousQueue;->transferer:Ljava/util/concurrent/SynchronousQueue$Transferer;
 Ljava/util/concurrent/SynchronousQueue;->waitingConsumers:Ljava/util/concurrent/SynchronousQueue$WaitQueue;
 Ljava/util/concurrent/SynchronousQueue;->waitingProducers:Ljava/util/concurrent/SynchronousQueue$WaitQueue;
-Ljava/util/concurrent/ThreadLocalRandom$RandomDoublesSpliterator;
 Ljava/util/concurrent/ThreadLocalRandom$RandomDoublesSpliterator;-><init>(JJDD)V
 Ljava/util/concurrent/ThreadLocalRandom$RandomDoublesSpliterator;->bound:D
 Ljava/util/concurrent/ThreadLocalRandom$RandomDoublesSpliterator;->fence:J
 Ljava/util/concurrent/ThreadLocalRandom$RandomDoublesSpliterator;->index:J
 Ljava/util/concurrent/ThreadLocalRandom$RandomDoublesSpliterator;->origin:D
-Ljava/util/concurrent/ThreadLocalRandom$RandomIntsSpliterator;
 Ljava/util/concurrent/ThreadLocalRandom$RandomIntsSpliterator;-><init>(JJII)V
 Ljava/util/concurrent/ThreadLocalRandom$RandomIntsSpliterator;->bound:I
 Ljava/util/concurrent/ThreadLocalRandom$RandomIntsSpliterator;->fence:J
 Ljava/util/concurrent/ThreadLocalRandom$RandomIntsSpliterator;->index:J
 Ljava/util/concurrent/ThreadLocalRandom$RandomIntsSpliterator;->origin:I
-Ljava/util/concurrent/ThreadLocalRandom$RandomLongsSpliterator;
 Ljava/util/concurrent/ThreadLocalRandom$RandomLongsSpliterator;-><init>(JJJJ)V
 Ljava/util/concurrent/ThreadLocalRandom$RandomLongsSpliterator;->bound:J
 Ljava/util/concurrent/ThreadLocalRandom$RandomLongsSpliterator;->fence:J
@@ -117017,8 +109625,6 @@
 Ljava/util/concurrent/ThreadLocalRandom;->seeder:Ljava/util/concurrent/atomic/AtomicLong;
 Ljava/util/concurrent/ThreadLocalRandom;->SEEDER_INCREMENT:J
 Ljava/util/concurrent/ThreadLocalRandom;->U:Lsun/misc/Unsafe;
-Ljava/util/concurrent/ThreadPoolExecutor$Worker;
-Ljava/util/concurrent/ThreadPoolExecutor$Worker;-><init>(Ljava/lang/Runnable;)V
 Ljava/util/concurrent/ThreadPoolExecutor$Worker;->completedTasks:J
 Ljava/util/concurrent/ThreadPoolExecutor$Worker;->firstTask:Ljava/lang/Runnable;
 Ljava/util/concurrent/ThreadPoolExecutor$Worker;->interruptIfStarted()V
@@ -117071,7 +109677,6 @@
 Ljava/util/concurrent/ThreadPoolExecutor;->workerCountOf(I)I
 Ljava/util/concurrent/ThreadPoolExecutor;->workers:Ljava/util/HashSet;
 Ljava/util/concurrent/ThreadPoolExecutor;->workQueue:Ljava/util/concurrent/BlockingQueue;
-Ljava/util/concurrent/TimeUnit;-><init>()V
 Ljava/util/concurrent/TimeUnit;->C0:J
 Ljava/util/concurrent/TimeUnit;->C1:J
 Ljava/util/concurrent/TimeUnit;->C2:J
@@ -117112,29 +109717,13 @@
 Ljava/util/DoubleSummaryStatistics;->sumCompensation:D
 Ljava/util/DoubleSummaryStatistics;->sumWithCompensation(D)V
 Ljava/util/DuplicateFormatFlagsException;->flags:Ljava/lang/String;
-Ljava/util/EnumMap$EntryIterator$Entry;
-Ljava/util/EnumMap$EntryIterator$Entry;-><init>(I)V
 Ljava/util/EnumMap$EntryIterator$Entry;->checkIndexForEntryUse()V
 Ljava/util/EnumMap$EntryIterator$Entry;->index:I
-Ljava/util/EnumMap$EntryIterator;
-Ljava/util/EnumMap$EntryIterator;-><init>()V
 Ljava/util/EnumMap$EntryIterator;->lastReturnedEntry:Ljava/util/EnumMap$EntryIterator$Entry;
-Ljava/util/EnumMap$EntrySet;
-Ljava/util/EnumMap$EntrySet;-><init>()V
 Ljava/util/EnumMap$EntrySet;->fillEntryArray([Ljava/lang/Object;)[Ljava/lang/Object;
-Ljava/util/EnumMap$EnumMapIterator;
-Ljava/util/EnumMap$EnumMapIterator;-><init>()V
 Ljava/util/EnumMap$EnumMapIterator;->checkLastReturnedIndex()V
 Ljava/util/EnumMap$EnumMapIterator;->index:I
 Ljava/util/EnumMap$EnumMapIterator;->lastReturnedIndex:I
-Ljava/util/EnumMap$KeyIterator;
-Ljava/util/EnumMap$KeyIterator;-><init>()V
-Ljava/util/EnumMap$KeySet;
-Ljava/util/EnumMap$KeySet;-><init>()V
-Ljava/util/EnumMap$ValueIterator;
-Ljava/util/EnumMap$ValueIterator;-><init>()V
-Ljava/util/EnumMap$Values;
-Ljava/util/EnumMap$Values;-><init>()V
 Ljava/util/EnumMap;->containsMapping(Ljava/lang/Object;Ljava/lang/Object;)Z
 Ljava/util/EnumMap;->entryHashCode(I)I
 Ljava/util/EnumMap;->entrySet:Ljava/util/Set;
@@ -117150,7 +109739,6 @@
 Ljava/util/EnumMap;->unmaskNull(Ljava/lang/Object;)Ljava/lang/Object;
 Ljava/util/EnumMap;->vals:[Ljava/lang/Object;
 Ljava/util/EnumMap;->ZERO_LENGTH_ENUM_ARRAY:[Ljava/lang/Enum;
-Ljava/util/EnumSet$SerializationProxy;
 Ljava/util/EnumSet$SerializationProxy;-><init>(Ljava/util/EnumSet;)V
 Ljava/util/EnumSet$SerializationProxy;->elements:[Ljava/lang/Enum;
 Ljava/util/EnumSet$SerializationProxy;->elementType:Ljava/lang/Class;
@@ -117166,8 +109754,6 @@
 Ljava/util/FormatFlagsConversionMismatchException;->c:C
 Ljava/util/FormatFlagsConversionMismatchException;->f:Ljava/lang/String;
 Ljava/util/FormattableFlags;-><init>()V
-Ljava/util/Formatter$BigDecimalLayoutForm;-><init>()V
-Ljava/util/Formatter$Conversion;
 Ljava/util/Formatter$Conversion;-><init>()V
 Ljava/util/Formatter$Conversion;->BOOLEAN:C
 Ljava/util/Formatter$Conversion;->BOOLEAN_UPPER:C
@@ -117198,7 +109784,6 @@
 Ljava/util/Formatter$Conversion;->SCIENTIFIC_UPPER:C
 Ljava/util/Formatter$Conversion;->STRING:C
 Ljava/util/Formatter$Conversion;->STRING_UPPER:C
-Ljava/util/Formatter$DateTime;
 Ljava/util/Formatter$DateTime;-><init>()V
 Ljava/util/Formatter$DateTime;->AM_PM:C
 Ljava/util/Formatter$DateTime;->CENTURY:C
@@ -117232,12 +109817,9 @@
 Ljava/util/Formatter$DateTime;->YEAR_4:C
 Ljava/util/Formatter$DateTime;->ZONE:C
 Ljava/util/Formatter$DateTime;->ZONE_NUMERIC:C
-Ljava/util/Formatter$FixedString;
-Ljava/util/Formatter$FixedString;-><init>(Ljava/lang/String;)V
 Ljava/util/Formatter$FixedString;->index()I
 Ljava/util/Formatter$FixedString;->print(Ljava/lang/Object;Ljava/util/Locale;)V
 Ljava/util/Formatter$FixedString;->s:Ljava/lang/String;
-Ljava/util/Formatter$Flags;
 Ljava/util/Formatter$Flags;-><init>(I)V
 Ljava/util/Formatter$Flags;->add(Ljava/util/Formatter$Flags;)Ljava/util/Formatter$Flags;
 Ljava/util/Formatter$Flags;->ALTERNATE:Ljava/util/Formatter$Flags;
@@ -117258,8 +109840,6 @@
 Ljava/util/Formatter$Flags;->UPPERCASE:Ljava/util/Formatter$Flags;
 Ljava/util/Formatter$Flags;->valueOf()I
 Ljava/util/Formatter$Flags;->ZERO_PAD:Ljava/util/Formatter$Flags;
-Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;
-Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;-><init>(Ljava/math/BigInteger;ILjava/util/Formatter$BigDecimalLayoutForm;)V
 Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->dot:Z
 Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->exp:Ljava/lang/StringBuilder;
 Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->exponent()[C
@@ -117271,13 +109851,10 @@
 Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->scale()I
 Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->scale:I
 Ljava/util/Formatter$FormatSpecifier$BigDecimalLayout;->toCharArray(Ljava/lang/StringBuilder;)[C
-Ljava/util/Formatter$FormatSpecifier;
-Ljava/util/Formatter$FormatSpecifier;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 Ljava/util/Formatter$FormatSpecifier;->addDot([C)[C
 Ljava/util/Formatter$FormatSpecifier;->addZeros([CI)[C
 Ljava/util/Formatter$FormatSpecifier;->adjustWidth(ILjava/util/Formatter$Flags;Z)I
 Ljava/util/Formatter$FormatSpecifier;->c:C
-Ljava/util/Formatter$FormatSpecifier;->checkBadFlags([[Ljava/util/Formatter$Flags;)V
 Ljava/util/Formatter$FormatSpecifier;->checkCharacter()V
 Ljava/util/Formatter$FormatSpecifier;->checkDateTime()V
 Ljava/util/Formatter$FormatSpecifier;->checkFloat()V
@@ -117333,8 +109910,6 @@
 Ljava/util/Formatter$FormatSpecifier;->width()I
 Ljava/util/Formatter$FormatSpecifier;->width(Ljava/lang/String;)I
 Ljava/util/Formatter$FormatSpecifier;->width:I
-Ljava/util/Formatter$FormatSpecifierParser;
-Ljava/util/Formatter$FormatSpecifierParser;-><init>(Ljava/lang/String;I)V
 Ljava/util/Formatter$FormatSpecifierParser;->advance()C
 Ljava/util/Formatter$FormatSpecifierParser;->back(I)V
 Ljava/util/Formatter$FormatSpecifierParser;->conv:Ljava/lang/String;
@@ -117353,7 +109928,6 @@
 Ljava/util/Formatter$FormatSpecifierParser;->precision:Ljava/lang/String;
 Ljava/util/Formatter$FormatSpecifierParser;->tT:Ljava/lang/String;
 Ljava/util/Formatter$FormatSpecifierParser;->width:Ljava/lang/String;
-Ljava/util/Formatter$FormatString;
 Ljava/util/Formatter$FormatString;->index()I
 Ljava/util/Formatter$FormatString;->print(Ljava/lang/Object;Ljava/util/Locale;)V
 Ljava/util/Formatter;-><init>(Ljava/nio/charset/Charset;Ljava/util/Locale;Ljava/io/File;)V
@@ -117425,23 +109999,15 @@
 Ljava/util/GregorianCalendar;->yearLength()I
 Ljava/util/GregorianCalendar;->yearLength(I)I
 Ljava/util/GregorianCalendar;->zoneOffsets:[I
-Ljava/util/HashMap$EntryIterator;
-Ljava/util/HashMap$EntryIterator;-><init>()V
-Ljava/util/HashMap$EntrySet;
-Ljava/util/HashMap$EntrySet;-><init>()V
 Ljava/util/HashMap$EntrySet;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/HashMap$EntrySpliterator;
 Ljava/util/HashMap$EntrySpliterator;-><init>(Ljava/util/HashMap;IIII)V
 Ljava/util/HashMap$EntrySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/HashMap$EntrySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/HashMap$HashIterator;
-Ljava/util/HashMap$HashIterator;-><init>()V
 Ljava/util/HashMap$HashIterator;->current:Ljava/util/HashMap$Node;
 Ljava/util/HashMap$HashIterator;->expectedModCount:I
 Ljava/util/HashMap$HashIterator;->index:I
 Ljava/util/HashMap$HashIterator;->next:Ljava/util/HashMap$Node;
 Ljava/util/HashMap$HashIterator;->nextNode()Ljava/util/HashMap$Node;
-Ljava/util/HashMap$HashMapSpliterator;
 Ljava/util/HashMap$HashMapSpliterator;-><init>(Ljava/util/HashMap;IIII)V
 Ljava/util/HashMap$HashMapSpliterator;->current:Ljava/util/HashMap$Node;
 Ljava/util/HashMap$HashMapSpliterator;->est:I
@@ -117451,19 +110017,12 @@
 Ljava/util/HashMap$HashMapSpliterator;->getFence()I
 Ljava/util/HashMap$HashMapSpliterator;->index:I
 Ljava/util/HashMap$HashMapSpliterator;->map:Ljava/util/HashMap;
-Ljava/util/HashMap$KeyIterator;
-Ljava/util/HashMap$KeyIterator;-><init>()V
-Ljava/util/HashMap$KeySet;
-Ljava/util/HashMap$KeySet;-><init>()V
 Ljava/util/HashMap$KeySet;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/HashMap$KeySpliterator;
 Ljava/util/HashMap$KeySpliterator;-><init>(Ljava/util/HashMap;IIII)V
 Ljava/util/HashMap$KeySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/HashMap$KeySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/HashMap$Node;
 Ljava/util/HashMap$Node;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)V
 Ljava/util/HashMap$Node;->hash:I
-Ljava/util/HashMap$TreeNode;
 Ljava/util/HashMap$TreeNode;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)V
 Ljava/util/HashMap$TreeNode;->balanceDeletion(Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode;)Ljava/util/HashMap$TreeNode;
 Ljava/util/HashMap$TreeNode;->balanceInsertion(Ljava/util/HashMap$TreeNode;Ljava/util/HashMap$TreeNode;)Ljava/util/HashMap$TreeNode;
@@ -117485,12 +110044,7 @@
 Ljava/util/HashMap$TreeNode;->tieBreakOrder(Ljava/lang/Object;Ljava/lang/Object;)I
 Ljava/util/HashMap$TreeNode;->treeify([Ljava/util/HashMap$Node;)V
 Ljava/util/HashMap$TreeNode;->untreeify(Ljava/util/HashMap;)Ljava/util/HashMap$Node;
-Ljava/util/HashMap$ValueIterator;
-Ljava/util/HashMap$ValueIterator;-><init>()V
-Ljava/util/HashMap$Values;
-Ljava/util/HashMap$Values;-><init>()V
 Ljava/util/HashMap$Values;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/HashMap$ValueSpliterator;
 Ljava/util/HashMap$ValueSpliterator;-><init>(Ljava/util/HashMap;IIII)V
 Ljava/util/HashMap$ValueSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/HashMap$ValueSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
@@ -117527,11 +110081,7 @@
 Ljava/util/HashMap;->UNTREEIFY_THRESHOLD:I
 Ljava/util/HashSet;-><init>(IFZ)V
 Ljava/util/HashSet;->PRESENT:Ljava/lang/Object;
-Ljava/util/Hashtable$EntrySet;
-Ljava/util/Hashtable$EntrySet;-><init>()V
 Ljava/util/Hashtable$EntrySet;->add(Ljava/util/Map$Entry;)Z
-Ljava/util/Hashtable$Enumerator;
-Ljava/util/Hashtable$Enumerator;-><init>(IZ)V
 Ljava/util/Hashtable$Enumerator;->entry:Ljava/util/Hashtable$HashtableEntry;
 Ljava/util/Hashtable$Enumerator;->expectedModCount:I
 Ljava/util/Hashtable$Enumerator;->index:I
@@ -117539,16 +110089,11 @@
 Ljava/util/Hashtable$Enumerator;->lastReturned:Ljava/util/Hashtable$HashtableEntry;
 Ljava/util/Hashtable$Enumerator;->table:[Ljava/util/Hashtable$HashtableEntry;
 Ljava/util/Hashtable$Enumerator;->type:I
-Ljava/util/Hashtable$HashtableEntry;
 Ljava/util/Hashtable$HashtableEntry;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/Hashtable$HashtableEntry;)V
 Ljava/util/Hashtable$HashtableEntry;->hash:I
 Ljava/util/Hashtable$HashtableEntry;->key:Ljava/lang/Object;
 Ljava/util/Hashtable$HashtableEntry;->next:Ljava/util/Hashtable$HashtableEntry;
 Ljava/util/Hashtable$HashtableEntry;->value:Ljava/lang/Object;
-Ljava/util/Hashtable$KeySet;
-Ljava/util/Hashtable$KeySet;-><init>()V
-Ljava/util/Hashtable$ValueCollection;
-Ljava/util/Hashtable$ValueCollection;-><init>()V
 Ljava/util/Hashtable;->addEntry(ILjava/lang/Object;Ljava/lang/Object;I)V
 Ljava/util/Hashtable;->count:I
 Ljava/util/Hashtable;->ENTRIES:I
@@ -117565,28 +110110,18 @@
 Ljava/util/Hashtable;->threshold:I
 Ljava/util/Hashtable;->VALUES:I
 Ljava/util/Hashtable;->values:Ljava/util/Collection;
-Ljava/util/IdentityHashMap$EntryIterator$Entry;
-Ljava/util/IdentityHashMap$EntryIterator$Entry;-><init>(I)V
 Ljava/util/IdentityHashMap$EntryIterator$Entry;->checkIndexForEntryUse()V
 Ljava/util/IdentityHashMap$EntryIterator$Entry;->index:I
-Ljava/util/IdentityHashMap$EntryIterator;
-Ljava/util/IdentityHashMap$EntryIterator;-><init>()V
 Ljava/util/IdentityHashMap$EntryIterator;->lastReturnedEntry:Ljava/util/IdentityHashMap$EntryIterator$Entry;
-Ljava/util/IdentityHashMap$EntrySet;
-Ljava/util/IdentityHashMap$EntrySet;-><init>()V
-Ljava/util/IdentityHashMap$EntrySpliterator;
 Ljava/util/IdentityHashMap$EntrySpliterator;-><init>(Ljava/util/IdentityHashMap;IIII)V
 Ljava/util/IdentityHashMap$EntrySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/IdentityHashMap$EntrySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/IdentityHashMap$IdentityHashMapIterator;
-Ljava/util/IdentityHashMap$IdentityHashMapIterator;-><init>()V
 Ljava/util/IdentityHashMap$IdentityHashMapIterator;->expectedModCount:I
 Ljava/util/IdentityHashMap$IdentityHashMapIterator;->index:I
 Ljava/util/IdentityHashMap$IdentityHashMapIterator;->indexValid:Z
 Ljava/util/IdentityHashMap$IdentityHashMapIterator;->lastReturnedIndex:I
 Ljava/util/IdentityHashMap$IdentityHashMapIterator;->nextIndex()I
 Ljava/util/IdentityHashMap$IdentityHashMapIterator;->traversalTable:[Ljava/lang/Object;
-Ljava/util/IdentityHashMap$IdentityHashMapSpliterator;
 Ljava/util/IdentityHashMap$IdentityHashMapSpliterator;-><init>(Ljava/util/IdentityHashMap;IIII)V
 Ljava/util/IdentityHashMap$IdentityHashMapSpliterator;->est:I
 Ljava/util/IdentityHashMap$IdentityHashMapSpliterator;->estimateSize()J
@@ -117595,19 +110130,9 @@
 Ljava/util/IdentityHashMap$IdentityHashMapSpliterator;->getFence()I
 Ljava/util/IdentityHashMap$IdentityHashMapSpliterator;->index:I
 Ljava/util/IdentityHashMap$IdentityHashMapSpliterator;->map:Ljava/util/IdentityHashMap;
-Ljava/util/IdentityHashMap$KeyIterator;
-Ljava/util/IdentityHashMap$KeyIterator;-><init>()V
-Ljava/util/IdentityHashMap$KeySet;
-Ljava/util/IdentityHashMap$KeySet;-><init>()V
-Ljava/util/IdentityHashMap$KeySpliterator;
 Ljava/util/IdentityHashMap$KeySpliterator;-><init>(Ljava/util/IdentityHashMap;IIII)V
 Ljava/util/IdentityHashMap$KeySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/IdentityHashMap$KeySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/IdentityHashMap$ValueIterator;
-Ljava/util/IdentityHashMap$ValueIterator;-><init>()V
-Ljava/util/IdentityHashMap$Values;
-Ljava/util/IdentityHashMap$Values;-><init>()V
-Ljava/util/IdentityHashMap$ValueSpliterator;
 Ljava/util/IdentityHashMap$ValueSpliterator;-><init>(Ljava/util/IdentityHashMap;IIII)V
 Ljava/util/IdentityHashMap$ValueSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/IdentityHashMap$ValueSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
@@ -117655,11 +110180,7 @@
 Ljava/util/jar/JarEntry;->attr:Ljava/util/jar/Attributes;
 Ljava/util/jar/JarEntry;->certs:[Ljava/security/cert/Certificate;
 Ljava/util/jar/JarEntry;->signers:[Ljava/security/CodeSigner;
-Ljava/util/jar/JarFile$JarEntryIterator;
-Ljava/util/jar/JarFile$JarEntryIterator;-><init>()V
 Ljava/util/jar/JarFile$JarEntryIterator;->e:Ljava/util/Enumeration;
-Ljava/util/jar/JarFile$JarFileEntry;
-Ljava/util/jar/JarFile$JarFileEntry;-><init>(Ljava/util/zip/ZipEntry;)V
 Ljava/util/jar/JarFile;->checkForSpecialAttributes()V
 Ljava/util/jar/JarFile;->CLASSPATH_CHARS:[C
 Ljava/util/jar/JarFile;->CLASSPATH_LASTOCC:[I
@@ -117693,7 +110214,6 @@
 Ljava/util/jar/JarOutputStream;->hasMagic([B)Z
 Ljava/util/jar/JarOutputStream;->JAR_MAGIC:I
 Ljava/util/jar/JarOutputStream;->set16([BII)V
-Ljava/util/jar/JarVerifier$VerifierCodeSource;
 Ljava/util/jar/JarVerifier$VerifierCodeSource;-><init>(Ljava/lang/Object;Ljava/net/URL;[Ljava/security/cert/Certificate;)V
 Ljava/util/jar/JarVerifier$VerifierCodeSource;-><init>(Ljava/lang/Object;Ljava/net/URL;[Ljava/security/CodeSigner;)V
 Ljava/util/jar/JarVerifier$VerifierCodeSource;->csdomain:Ljava/lang/Object;
@@ -117703,13 +110223,11 @@
 Ljava/util/jar/JarVerifier$VerifierCodeSource;->vcerts:[Ljava/security/cert/Certificate;
 Ljava/util/jar/JarVerifier$VerifierCodeSource;->vlocation:Ljava/net/URL;
 Ljava/util/jar/JarVerifier$VerifierCodeSource;->vsigners:[Ljava/security/CodeSigner;
-Ljava/util/jar/JarVerifier$VerifierStream;
 Ljava/util/jar/JarVerifier$VerifierStream;-><init>(Ljava/util/jar/Manifest;Ljava/util/jar/JarEntry;Ljava/io/InputStream;Ljava/util/jar/JarVerifier;)V
 Ljava/util/jar/JarVerifier$VerifierStream;->is:Ljava/io/InputStream;
 Ljava/util/jar/JarVerifier$VerifierStream;->jv:Ljava/util/jar/JarVerifier;
 Ljava/util/jar/JarVerifier$VerifierStream;->mev:Lsun/security/util/ManifestEntryVerifier;
 Ljava/util/jar/JarVerifier$VerifierStream;->numLeft:J
-Ljava/util/jar/JarVerifier;
 Ljava/util/jar/JarVerifier;-><init>([B)V
 Ljava/util/jar/JarVerifier;->anyToVerify:Z
 Ljava/util/jar/JarVerifier;->baos:Ljava/io/ByteArrayOutputStream;
@@ -117760,7 +110278,6 @@
 Ljava/util/jar/JarVerifier;->update(I[BIILsun/security/util/ManifestEntryVerifier;)V
 Ljava/util/jar/JarVerifier;->urlToCodeSourceMap:Ljava/util/Map;
 Ljava/util/jar/JarVerifier;->verifiedSigners:Ljava/util/Hashtable;
-Ljava/util/jar/Manifest$FastInputStream;
 Ljava/util/jar/Manifest$FastInputStream;-><init>(Ljava/io/InputStream;)V
 Ljava/util/jar/Manifest$FastInputStream;-><init>(Ljava/io/InputStream;I)V
 Ljava/util/jar/Manifest$FastInputStream;->buf:[B
@@ -117781,31 +110298,16 @@
 Ljava/util/jar/Pack200;->PACK_PROVIDER:Ljava/lang/String;
 Ljava/util/jar/Pack200;->unpackerImpl:Ljava/lang/Class;
 Ljava/util/jar/Pack200;->UNPACK_PROVIDER:Ljava/lang/String;
-Ljava/util/LinkedHashMap$LinkedEntryIterator;
-Ljava/util/LinkedHashMap$LinkedEntryIterator;-><init>()V
-Ljava/util/LinkedHashMap$LinkedEntrySet;
-Ljava/util/LinkedHashMap$LinkedEntrySet;-><init>()V
 Ljava/util/LinkedHashMap$LinkedEntrySet;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/LinkedHashMap$LinkedHashIterator;
-Ljava/util/LinkedHashMap$LinkedHashIterator;-><init>()V
 Ljava/util/LinkedHashMap$LinkedHashIterator;->current:Ljava/util/LinkedHashMap$LinkedHashMapEntry;
 Ljava/util/LinkedHashMap$LinkedHashIterator;->expectedModCount:I
 Ljava/util/LinkedHashMap$LinkedHashIterator;->next:Ljava/util/LinkedHashMap$LinkedHashMapEntry;
 Ljava/util/LinkedHashMap$LinkedHashIterator;->nextNode()Ljava/util/LinkedHashMap$LinkedHashMapEntry;
 Ljava/util/LinkedHashMap$LinkedHashIterator;->remove()V
-Ljava/util/LinkedHashMap$LinkedHashMapEntry;
 Ljava/util/LinkedHashMap$LinkedHashMapEntry;-><init>(ILjava/lang/Object;Ljava/lang/Object;Ljava/util/HashMap$Node;)V
 Ljava/util/LinkedHashMap$LinkedHashMapEntry;->after:Ljava/util/LinkedHashMap$LinkedHashMapEntry;
 Ljava/util/LinkedHashMap$LinkedHashMapEntry;->before:Ljava/util/LinkedHashMap$LinkedHashMapEntry;
-Ljava/util/LinkedHashMap$LinkedKeyIterator;
-Ljava/util/LinkedHashMap$LinkedKeyIterator;-><init>()V
-Ljava/util/LinkedHashMap$LinkedKeySet;
-Ljava/util/LinkedHashMap$LinkedKeySet;-><init>()V
 Ljava/util/LinkedHashMap$LinkedKeySet;->forEach(Ljava/util/function/Consumer;)V
-Ljava/util/LinkedHashMap$LinkedValueIterator;
-Ljava/util/LinkedHashMap$LinkedValueIterator;-><init>()V
-Ljava/util/LinkedHashMap$LinkedValues;
-Ljava/util/LinkedHashMap$LinkedValues;-><init>()V
 Ljava/util/LinkedHashMap$LinkedValues;->forEach(Ljava/util/function/Consumer;)V
 Ljava/util/LinkedHashMap;->afterNodeAccess(Ljava/util/HashMap$Node;)V
 Ljava/util/LinkedHashMap;->afterNodeInsertion(Z)V
@@ -117820,17 +110322,12 @@
 Ljava/util/LinkedHashMap;->replacementTreeNode(Ljava/util/HashMap$Node;Ljava/util/HashMap$Node;)Ljava/util/HashMap$TreeNode;
 Ljava/util/LinkedHashMap;->tail:Ljava/util/LinkedHashMap$LinkedHashMapEntry;
 Ljava/util/LinkedHashMap;->transferLinks(Ljava/util/LinkedHashMap$LinkedHashMapEntry;Ljava/util/LinkedHashMap$LinkedHashMapEntry;)V
-Ljava/util/LinkedList$DescendingIterator;
-Ljava/util/LinkedList$DescendingIterator;-><init>()V
 Ljava/util/LinkedList$DescendingIterator;->itr:Ljava/util/LinkedList$ListItr;
-Ljava/util/LinkedList$ListItr;
-Ljava/util/LinkedList$ListItr;-><init>(I)V
 Ljava/util/LinkedList$ListItr;->checkForComodification()V
 Ljava/util/LinkedList$ListItr;->expectedModCount:I
 Ljava/util/LinkedList$ListItr;->lastReturned:Ljava/util/LinkedList$Node;
 Ljava/util/LinkedList$ListItr;->next:Ljava/util/LinkedList$Node;
 Ljava/util/LinkedList$ListItr;->nextIndex:I
-Ljava/util/LinkedList$LLSpliterator;
 Ljava/util/LinkedList$LLSpliterator;-><init>(Ljava/util/LinkedList;II)V
 Ljava/util/LinkedList$LLSpliterator;->batch:I
 Ljava/util/LinkedList$LLSpliterator;->BATCH_UNIT:I
@@ -117842,7 +110339,6 @@
 Ljava/util/LinkedList$LLSpliterator;->list:Ljava/util/LinkedList;
 Ljava/util/LinkedList$LLSpliterator;->MAX_BATCH:I
 Ljava/util/LinkedList$LLSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/LinkedList$Node;
 Ljava/util/LinkedList$Node;-><init>(Ljava/util/LinkedList$Node;Ljava/lang/Object;Ljava/util/LinkedList$Node;)V
 Ljava/util/LinkedList$Node;->prev:Ljava/util/LinkedList$Node;
 Ljava/util/LinkedList;->checkElementIndex(I)V
@@ -117862,25 +110358,20 @@
 Ljava/util/ListResourceBundle;->loadLookup()V
 Ljava/util/ListResourceBundle;->lookup:Ljava/util/Map;
 Ljava/util/Locale$Builder;->localeBuilder:Lsun/util/locale/InternalLocaleBuilder;
-Ljava/util/Locale$Cache;
 Ljava/util/Locale$Cache;-><init>()V
 Ljava/util/Locale$Cache;->createObject(Ljava/util/Locale$LocaleKey;)Ljava/util/Locale;
-Ljava/util/Locale$Category;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 Ljava/util/Locale$Category;->countryKey:Ljava/lang/String;
 Ljava/util/Locale$Category;->languageKey:Ljava/lang/String;
 Ljava/util/Locale$Category;->scriptKey:Ljava/lang/String;
 Ljava/util/Locale$Category;->variantKey:Ljava/lang/String;
-Ljava/util/Locale$FilteringMode;-><init>()V
 Ljava/util/Locale$LanguageRange;->hash:I
 Ljava/util/Locale$LanguageRange;->isSubtagIllFormed(Ljava/lang/String;Z)Z
 Ljava/util/Locale$LanguageRange;->range:Ljava/lang/String;
 Ljava/util/Locale$LanguageRange;->weight:D
-Ljava/util/Locale$LocaleKey;
 Ljava/util/Locale$LocaleKey;-><init>(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;)V
 Ljava/util/Locale$LocaleKey;->base:Lsun/util/locale/BaseLocale;
 Ljava/util/Locale$LocaleKey;->exts:Lsun/util/locale/LocaleExtensions;
 Ljava/util/Locale$LocaleKey;->hash:I
-Ljava/util/Locale$NoImagePreloadHolder;
 Ljava/util/Locale$NoImagePreloadHolder;-><init>()V
 Ljava/util/Locale$NoImagePreloadHolder;->defaultLocale:Ljava/util/Locale;
 Ljava/util/Locale;-><init>(Lsun/util/locale/BaseLocale;Lsun/util/locale/LocaleExtensions;)V
@@ -117919,11 +110410,8 @@
 Ljava/util/Locale;->UNDETERMINED_LANGUAGE:Ljava/lang/String;
 Ljava/util/logging/ConsoleHandler;->configure()V
 Ljava/util/logging/ErrorManager;->reported:Z
-Ljava/util/logging/FileHandler$InitializationErrorManager;
 Ljava/util/logging/FileHandler$InitializationErrorManager;-><init>()V
 Ljava/util/logging/FileHandler$InitializationErrorManager;->lastException:Ljava/lang/Exception;
-Ljava/util/logging/FileHandler$MeteredStream;
-Ljava/util/logging/FileHandler$MeteredStream;-><init>(Ljava/io/OutputStream;I)V
 Ljava/util/logging/FileHandler$MeteredStream;->out:Ljava/io/OutputStream;
 Ljava/util/logging/FileHandler$MeteredStream;->written:I
 Ljava/util/logging/FileHandler;->append:Z
@@ -117950,7 +110438,6 @@
 Ljava/util/logging/Handler;->logLevel:Ljava/util/logging/Level;
 Ljava/util/logging/Handler;->manager:Ljava/util/logging/LogManager;
 Ljava/util/logging/Handler;->offValue:I
-Ljava/util/logging/Level$KnownLevel;
 Ljava/util/logging/Level$KnownLevel;-><init>(Ljava/util/logging/Level;)V
 Ljava/util/logging/Level$KnownLevel;->add(Ljava/util/logging/Level;)V
 Ljava/util/logging/Level$KnownLevel;->findByLocalizedLevelName(Ljava/lang/String;)Ljava/util/logging/Level$KnownLevel;
@@ -117973,13 +110460,11 @@
 Ljava/util/logging/Level;->name:Ljava/lang/String;
 Ljava/util/logging/Level;->resourceBundleName:Ljava/lang/String;
 Ljava/util/logging/Level;->value:I
-Ljava/util/logging/Logger$LoggerBundle;
 Ljava/util/logging/Logger$LoggerBundle;-><init>(Ljava/lang/String;Ljava/util/ResourceBundle;)V
 Ljava/util/logging/Logger$LoggerBundle;->get(Ljava/lang/String;Ljava/util/ResourceBundle;)Ljava/util/logging/Logger$LoggerBundle;
 Ljava/util/logging/Logger$LoggerBundle;->isSystemBundle()Z
 Ljava/util/logging/Logger$LoggerBundle;->resourceBundleName:Ljava/lang/String;
 Ljava/util/logging/Logger$LoggerBundle;->userBundle:Ljava/util/ResourceBundle;
-Ljava/util/logging/Logger$SystemLoggerHelper;
 Ljava/util/logging/Logger$SystemLoggerHelper;-><init>()V
 Ljava/util/logging/Logger$SystemLoggerHelper;->disableCallerCheck:Z
 Ljava/util/logging/Logger$SystemLoggerHelper;->getBooleanProperty(Ljava/lang/String;)Z
@@ -118024,11 +110509,8 @@
 Ljava/util/logging/Logger;->SYSTEM_LOGGER_RB_NAME:Ljava/lang/String;
 Ljava/util/logging/Logger;->updateEffectiveLevel()V
 Ljava/util/logging/Logger;->useParentHandlers:Z
-Ljava/util/logging/LogManager$Beans;
 Ljava/util/logging/LogManager$Beans;-><init>()V
 Ljava/util/logging/LogManager$Beans;->getClass(Ljava/lang/String;)Ljava/lang/Class;
-Ljava/util/logging/LogManager$Beans;->getConstructor(Ljava/lang/Class;[[Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
-Ljava/util/logging/LogManager$Beans;->getMethod(Ljava/lang/Class;Ljava/lang/String;[[Ljava/lang/Class;)Ljava/lang/reflect/Method;
 Ljava/util/logging/LogManager$Beans;->invokePropertyChange(Ljava/lang/Object;Ljava/lang/Object;)V
 Ljava/util/logging/LogManager$Beans;->isBeansPresent()Z
 Ljava/util/logging/LogManager$Beans;->newPropertyChangeEvent(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
@@ -118036,10 +110518,6 @@
 Ljava/util/logging/LogManager$Beans;->propertyChangeListenerClass:Ljava/lang/Class;
 Ljava/util/logging/LogManager$Beans;->propertyChangeMethod:Ljava/lang/reflect/Method;
 Ljava/util/logging/LogManager$Beans;->propertyEventCtor:Ljava/lang/reflect/Constructor;
-Ljava/util/logging/LogManager$Cleaner;
-Ljava/util/logging/LogManager$Cleaner;-><init>()V
-Ljava/util/logging/LogManager$LoggerContext;
-Ljava/util/logging/LogManager$LoggerContext;-><init>()V
 Ljava/util/logging/LogManager$LoggerContext;->addLocalLogger(Ljava/util/logging/Logger;)Z
 Ljava/util/logging/LogManager$LoggerContext;->addLocalLogger(Ljava/util/logging/Logger;Ljava/util/logging/LogManager;)Z
 Ljava/util/logging/LogManager$LoggerContext;->addLocalLogger(Ljava/util/logging/Logger;Z)Z
@@ -118059,8 +110537,6 @@
 Ljava/util/logging/LogManager$LoggerContext;->removeLoggerRef(Ljava/lang/String;Ljava/util/logging/LogManager$LoggerWeakRef;)V
 Ljava/util/logging/LogManager$LoggerContext;->requiresDefaultLoggers()Z
 Ljava/util/logging/LogManager$LoggerContext;->root:Ljava/util/logging/LogManager$LogNode;
-Ljava/util/logging/LogManager$LoggerWeakRef;
-Ljava/util/logging/LogManager$LoggerWeakRef;-><init>(Ljava/util/logging/Logger;)V
 Ljava/util/logging/LogManager$LoggerWeakRef;->dispose()V
 Ljava/util/logging/LogManager$LoggerWeakRef;->disposed:Z
 Ljava/util/logging/LogManager$LoggerWeakRef;->name:Ljava/lang/String;
@@ -118068,18 +110544,13 @@
 Ljava/util/logging/LogManager$LoggerWeakRef;->parentRef:Ljava/lang/ref/WeakReference;
 Ljava/util/logging/LogManager$LoggerWeakRef;->setNode(Ljava/util/logging/LogManager$LogNode;)V
 Ljava/util/logging/LogManager$LoggerWeakRef;->setParentRef(Ljava/lang/ref/WeakReference;)V
-Ljava/util/logging/LogManager$LogNode;
 Ljava/util/logging/LogManager$LogNode;-><init>(Ljava/util/logging/LogManager$LogNode;Ljava/util/logging/LogManager$LoggerContext;)V
 Ljava/util/logging/LogManager$LogNode;->children:Ljava/util/HashMap;
 Ljava/util/logging/LogManager$LogNode;->context:Ljava/util/logging/LogManager$LoggerContext;
 Ljava/util/logging/LogManager$LogNode;->loggerRef:Ljava/util/logging/LogManager$LoggerWeakRef;
 Ljava/util/logging/LogManager$LogNode;->parent:Ljava/util/logging/LogManager$LogNode;
 Ljava/util/logging/LogManager$LogNode;->walkAndSetParent(Ljava/util/logging/Logger;)V
-Ljava/util/logging/LogManager$RootLogger;
-Ljava/util/logging/LogManager$RootLogger;-><init>()V
 Ljava/util/logging/LogManager$RootLogger;->accessCheckedHandlers()[Ljava/util/logging/Handler;
-Ljava/util/logging/LogManager$SystemLoggerContext;
-Ljava/util/logging/LogManager$SystemLoggerContext;-><init>()V
 Ljava/util/logging/LogManager$SystemLoggerContext;->demandLogger(Ljava/lang/String;Ljava/lang/String;)Ljava/util/logging/Logger;
 Ljava/util/logging/LogManager;-><init>(Ljava/lang/Void;)V
 Ljava/util/logging/LogManager;->checkPermission()V
@@ -118198,12 +110669,7 @@
 Ljava/util/OptionalLong;->EMPTY:Ljava/util/OptionalLong;
 Ljava/util/OptionalLong;->isPresent:Z
 Ljava/util/OptionalLong;->value:J
-Ljava/util/prefs/AbstractPreferences$EventDispatchThread;
 Ljava/util/prefs/AbstractPreferences$EventDispatchThread;-><init>()V
-Ljava/util/prefs/AbstractPreferences$NodeAddedEvent;
-Ljava/util/prefs/AbstractPreferences$NodeAddedEvent;-><init>(Ljava/util/prefs/Preferences;Ljava/util/prefs/Preferences;)V
-Ljava/util/prefs/AbstractPreferences$NodeRemovedEvent;
-Ljava/util/prefs/AbstractPreferences$NodeRemovedEvent;-><init>(Ljava/util/prefs/Preferences;Ljava/util/prefs/Preferences;)V
 Ljava/util/prefs/AbstractPreferences;->absolutePath:Ljava/lang/String;
 Ljava/util/prefs/AbstractPreferences;->EMPTY_ABSTRACT_PREFS_ARRAY:[Ljava/util/prefs/AbstractPreferences;
 Ljava/util/prefs/AbstractPreferences;->EMPTY_STRING_ARRAY:[Ljava/lang/String;
@@ -118227,22 +110693,13 @@
 Ljava/util/prefs/AbstractPreferences;->root:Ljava/util/prefs/AbstractPreferences;
 Ljava/util/prefs/AbstractPreferences;->startEventDispatchThreadIfNecessary()V
 Ljava/util/prefs/AbstractPreferences;->sync2()V
-Ljava/util/prefs/FileSystemPreferences$Change;
-Ljava/util/prefs/FileSystemPreferences$Change;-><init>()V
 Ljava/util/prefs/FileSystemPreferences$Change;->replay()V
-Ljava/util/prefs/FileSystemPreferences$NodeCreate;
-Ljava/util/prefs/FileSystemPreferences$NodeCreate;-><init>()V
 Ljava/util/prefs/FileSystemPreferences$NodeCreate;->replay()V
-Ljava/util/prefs/FileSystemPreferences$Put;
-Ljava/util/prefs/FileSystemPreferences$Put;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Ljava/util/prefs/FileSystemPreferences$Put;->key:Ljava/lang/String;
 Ljava/util/prefs/FileSystemPreferences$Put;->replay()V
 Ljava/util/prefs/FileSystemPreferences$Put;->value:Ljava/lang/String;
-Ljava/util/prefs/FileSystemPreferences$Remove;
-Ljava/util/prefs/FileSystemPreferences$Remove;-><init>(Ljava/lang/String;)V
 Ljava/util/prefs/FileSystemPreferences$Remove;->key:Ljava/lang/String;
 Ljava/util/prefs/FileSystemPreferences$Remove;->replay()V
-Ljava/util/prefs/FileSystemPreferences;
 Ljava/util/prefs/FileSystemPreferences;-><init>(Ljava/lang/String;Ljava/io/File;Z)V
 Ljava/util/prefs/FileSystemPreferences;-><init>(Ljava/util/prefs/FileSystemPreferences;Ljava/lang/String;)V
 Ljava/util/prefs/FileSystemPreferences;-><init>(Z)V
@@ -118310,14 +110767,11 @@
 Ljava/util/prefs/Preferences;->nodeName(Ljava/lang/Class;)Ljava/lang/String;
 Ljava/util/prefs/Preferences;->prefsPerm:Ljava/security/Permission;
 Ljava/util/prefs/Preferences;->setPreferencesFactory(Ljava/util/prefs/PreferencesFactory;)Ljava/util/prefs/PreferencesFactory;
-Ljava/util/PriorityQueue$Itr;
-Ljava/util/PriorityQueue$Itr;-><init>()V
 Ljava/util/PriorityQueue$Itr;->cursor:I
 Ljava/util/PriorityQueue$Itr;->expectedModCount:I
 Ljava/util/PriorityQueue$Itr;->forgetMeNot:Ljava/util/ArrayDeque;
 Ljava/util/PriorityQueue$Itr;->lastRet:I
 Ljava/util/PriorityQueue$Itr;->lastRetElt:Ljava/lang/Object;
-Ljava/util/PriorityQueue$PriorityQueueSpliterator;
 Ljava/util/PriorityQueue$PriorityQueueSpliterator;-><init>(Ljava/util/PriorityQueue;III)V
 Ljava/util/PriorityQueue$PriorityQueueSpliterator;->expectedModCount:I
 Ljava/util/PriorityQueue$PriorityQueueSpliterator;->fence:I
@@ -118344,9 +110798,6 @@
 Ljava/util/PriorityQueue;->siftUp(ILjava/lang/Object;)V
 Ljava/util/PriorityQueue;->siftUpComparable(ILjava/lang/Object;)V
 Ljava/util/PriorityQueue;->siftUpUsingComparator(ILjava/lang/Object;)V
-Ljava/util/Properties$LineReader;
-Ljava/util/Properties$LineReader;-><init>(Ljava/io/InputStream;)V
-Ljava/util/Properties$LineReader;-><init>(Ljava/io/Reader;)V
 Ljava/util/Properties$LineReader;->inByteBuf:[B
 Ljava/util/Properties$LineReader;->inCharBuf:[C
 Ljava/util/Properties$LineReader;->inLimit:I
@@ -118364,21 +110815,18 @@
 Ljava/util/Properties;->toHex(I)C
 Ljava/util/Properties;->writeComments(Ljava/io/BufferedWriter;Ljava/lang/String;)V
 Ljava/util/PropertyResourceBundle;->lookup:Ljava/util/Map;
-Ljava/util/Random$RandomDoublesSpliterator;
 Ljava/util/Random$RandomDoublesSpliterator;-><init>(Ljava/util/Random;JJDD)V
 Ljava/util/Random$RandomDoublesSpliterator;->bound:D
 Ljava/util/Random$RandomDoublesSpliterator;->fence:J
 Ljava/util/Random$RandomDoublesSpliterator;->index:J
 Ljava/util/Random$RandomDoublesSpliterator;->origin:D
 Ljava/util/Random$RandomDoublesSpliterator;->rng:Ljava/util/Random;
-Ljava/util/Random$RandomIntsSpliterator;
 Ljava/util/Random$RandomIntsSpliterator;-><init>(Ljava/util/Random;JJII)V
 Ljava/util/Random$RandomIntsSpliterator;->bound:I
 Ljava/util/Random$RandomIntsSpliterator;->fence:J
 Ljava/util/Random$RandomIntsSpliterator;->index:J
 Ljava/util/Random$RandomIntsSpliterator;->origin:I
 Ljava/util/Random$RandomIntsSpliterator;->rng:Ljava/util/Random;
-Ljava/util/Random$RandomLongsSpliterator;
 Ljava/util/Random$RandomLongsSpliterator;-><init>(Ljava/util/Random;JJJJ)V
 Ljava/util/Random$RandomLongsSpliterator;->bound:J
 Ljava/util/Random$RandomLongsSpliterator;->fence:J
@@ -118403,7 +110851,6 @@
 Ljava/util/Random;->seedOffset:J
 Ljava/util/Random;->seedUniquifier:Ljava/util/concurrent/atomic/AtomicLong;
 Ljava/util/Random;->unsafe:Lsun/misc/Unsafe;
-Ljava/util/regex/Matcher$OffsetBasedMatchResult;
 Ljava/util/regex/Matcher$OffsetBasedMatchResult;-><init>(Ljava/lang/String;[I)V
 Ljava/util/regex/Matcher$OffsetBasedMatchResult;->input:Ljava/lang/String;
 Ljava/util/regex/Matcher$OffsetBasedMatchResult;->offsets:[I
@@ -118454,11 +110901,9 @@
 Ljava/util/regex/PatternSyntaxException;->index:I
 Ljava/util/regex/PatternSyntaxException;->nl:Ljava/lang/String;
 Ljava/util/regex/PatternSyntaxException;->pattern:Ljava/lang/String;
-Ljava/util/ResourceBundle$BundleReference;
 Ljava/util/ResourceBundle$BundleReference;-><init>(Ljava/util/ResourceBundle;Ljava/lang/ref/ReferenceQueue;Ljava/util/ResourceBundle$CacheKey;)V
 Ljava/util/ResourceBundle$BundleReference;->cacheKey:Ljava/util/ResourceBundle$CacheKey;
 Ljava/util/ResourceBundle$BundleReference;->getCacheKey()Ljava/util/ResourceBundle$CacheKey;
-Ljava/util/ResourceBundle$CacheKey;
 Ljava/util/ResourceBundle$CacheKey;-><init>(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/ClassLoader;)V
 Ljava/util/ResourceBundle$CacheKey;->calculateHashCode()V
 Ljava/util/ResourceBundle$CacheKey;->cause:Ljava/lang/Throwable;
@@ -118478,29 +110923,23 @@
 Ljava/util/ResourceBundle$CacheKey;->setFormat(Ljava/lang/String;)V
 Ljava/util/ResourceBundle$CacheKey;->setLocale(Ljava/util/Locale;)Ljava/util/ResourceBundle$CacheKey;
 Ljava/util/ResourceBundle$CacheKey;->setName(Ljava/lang/String;)Ljava/util/ResourceBundle$CacheKey;
-Ljava/util/ResourceBundle$CacheKeyReference;
 Ljava/util/ResourceBundle$CacheKeyReference;->getCacheKey()Ljava/util/ResourceBundle$CacheKey;
-Ljava/util/ResourceBundle$Control$CandidateListCache;
 Ljava/util/ResourceBundle$Control$CandidateListCache;-><init>()V
 Ljava/util/ResourceBundle$Control$CandidateListCache;->createObject(Lsun/util/locale/BaseLocale;)Ljava/util/List;
 Ljava/util/ResourceBundle$Control$CandidateListCache;->getDefaultList(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
 Ljava/util/ResourceBundle$Control;->CANDIDATES_CACHE:Ljava/util/ResourceBundle$Control$CandidateListCache;
 Ljava/util/ResourceBundle$Control;->INSTANCE:Ljava/util/ResourceBundle$Control;
 Ljava/util/ResourceBundle$Control;->toResourceName0(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Ljava/util/ResourceBundle$LoaderReference;
 Ljava/util/ResourceBundle$LoaderReference;-><init>(Ljava/lang/ClassLoader;Ljava/lang/ref/ReferenceQueue;Ljava/util/ResourceBundle$CacheKey;)V
 Ljava/util/ResourceBundle$LoaderReference;->cacheKey:Ljava/util/ResourceBundle$CacheKey;
 Ljava/util/ResourceBundle$LoaderReference;->getCacheKey()Ljava/util/ResourceBundle$CacheKey;
-Ljava/util/ResourceBundle$NoFallbackControl;
 Ljava/util/ResourceBundle$NoFallbackControl;-><init>(Ljava/util/List;)V
 Ljava/util/ResourceBundle$NoFallbackControl;->CLASS_ONLY_NO_FALLBACK:Ljava/util/ResourceBundle$Control;
 Ljava/util/ResourceBundle$NoFallbackControl;->NO_FALLBACK:Ljava/util/ResourceBundle$Control;
 Ljava/util/ResourceBundle$NoFallbackControl;->PROPERTIES_ONLY_NO_FALLBACK:Ljava/util/ResourceBundle$Control;
-Ljava/util/ResourceBundle$RBClassLoader;
 Ljava/util/ResourceBundle$RBClassLoader;-><init>()V
 Ljava/util/ResourceBundle$RBClassLoader;->INSTANCE:Ljava/util/ResourceBundle$RBClassLoader;
 Ljava/util/ResourceBundle$RBClassLoader;->loader:Ljava/lang/ClassLoader;
-Ljava/util/ResourceBundle$SingleFormatControl;
 Ljava/util/ResourceBundle$SingleFormatControl;-><init>(Ljava/util/List;)V
 Ljava/util/ResourceBundle$SingleFormatControl;->CLASS_ONLY:Ljava/util/ResourceBundle$Control;
 Ljava/util/ResourceBundle$SingleFormatControl;->formats:Ljava/util/List;
@@ -118606,8 +111045,6 @@
 Ljava/util/Scanner;->typeCache:Ljava/lang/Object;
 Ljava/util/Scanner;->useTypeCache()V
 Ljava/util/Scanner;->WHITESPACE_PATTERN:Ljava/util/regex/Pattern;
-Ljava/util/ServiceLoader$LazyIterator;
-Ljava/util/ServiceLoader$LazyIterator;-><init>(Ljava/lang/Class;Ljava/lang/ClassLoader;)V
 Ljava/util/ServiceLoader$LazyIterator;->configs:Ljava/util/Enumeration;
 Ljava/util/ServiceLoader$LazyIterator;->hasNextService()Z
 Ljava/util/ServiceLoader$LazyIterator;->loader:Ljava/lang/ClassLoader;
@@ -118672,7 +111109,6 @@
 Ljava/util/SimpleTimeZone;->unpackRules([B)V
 Ljava/util/SimpleTimeZone;->unpackTimes([I)V
 Ljava/util/SimpleTimeZone;->useDaylight:Z
-Ljava/util/Spliterators$AbstractDoubleSpliterator$HoldingDoubleConsumer;
 Ljava/util/Spliterators$AbstractDoubleSpliterator$HoldingDoubleConsumer;-><init>()V
 Ljava/util/Spliterators$AbstractDoubleSpliterator$HoldingDoubleConsumer;->value:D
 Ljava/util/Spliterators$AbstractDoubleSpliterator;->batch:I
@@ -118680,7 +111116,6 @@
 Ljava/util/Spliterators$AbstractDoubleSpliterator;->characteristics:I
 Ljava/util/Spliterators$AbstractDoubleSpliterator;->est:J
 Ljava/util/Spliterators$AbstractDoubleSpliterator;->MAX_BATCH:I
-Ljava/util/Spliterators$AbstractIntSpliterator$HoldingIntConsumer;
 Ljava/util/Spliterators$AbstractIntSpliterator$HoldingIntConsumer;-><init>()V
 Ljava/util/Spliterators$AbstractIntSpliterator$HoldingIntConsumer;->value:I
 Ljava/util/Spliterators$AbstractIntSpliterator;->batch:I
@@ -118688,7 +111123,6 @@
 Ljava/util/Spliterators$AbstractIntSpliterator;->characteristics:I
 Ljava/util/Spliterators$AbstractIntSpliterator;->est:J
 Ljava/util/Spliterators$AbstractIntSpliterator;->MAX_BATCH:I
-Ljava/util/Spliterators$AbstractLongSpliterator$HoldingLongConsumer;
 Ljava/util/Spliterators$AbstractLongSpliterator$HoldingLongConsumer;-><init>()V
 Ljava/util/Spliterators$AbstractLongSpliterator$HoldingLongConsumer;->value:J
 Ljava/util/Spliterators$AbstractLongSpliterator;->batch:I
@@ -118696,7 +111130,6 @@
 Ljava/util/Spliterators$AbstractLongSpliterator;->characteristics:I
 Ljava/util/Spliterators$AbstractLongSpliterator;->est:J
 Ljava/util/Spliterators$AbstractLongSpliterator;->MAX_BATCH:I
-Ljava/util/Spliterators$AbstractSpliterator$HoldingConsumer;
 Ljava/util/Spliterators$AbstractSpliterator$HoldingConsumer;-><init>()V
 Ljava/util/Spliterators$AbstractSpliterator$HoldingConsumer;->value:Ljava/lang/Object;
 Ljava/util/Spliterators$AbstractSpliterator;->batch:I
@@ -118704,21 +111137,18 @@
 Ljava/util/Spliterators$AbstractSpliterator;->characteristics:I
 Ljava/util/Spliterators$AbstractSpliterator;->est:J
 Ljava/util/Spliterators$AbstractSpliterator;->MAX_BATCH:I
-Ljava/util/Spliterators$ArraySpliterator;
 Ljava/util/Spliterators$ArraySpliterator;-><init>([Ljava/lang/Object;I)V
 Ljava/util/Spliterators$ArraySpliterator;-><init>([Ljava/lang/Object;III)V
 Ljava/util/Spliterators$ArraySpliterator;->array:[Ljava/lang/Object;
 Ljava/util/Spliterators$ArraySpliterator;->characteristics:I
 Ljava/util/Spliterators$ArraySpliterator;->fence:I
 Ljava/util/Spliterators$ArraySpliterator;->index:I
-Ljava/util/Spliterators$DoubleArraySpliterator;
 Ljava/util/Spliterators$DoubleArraySpliterator;-><init>([DI)V
 Ljava/util/Spliterators$DoubleArraySpliterator;-><init>([DIII)V
 Ljava/util/Spliterators$DoubleArraySpliterator;->array:[D
 Ljava/util/Spliterators$DoubleArraySpliterator;->characteristics:I
 Ljava/util/Spliterators$DoubleArraySpliterator;->fence:I
 Ljava/util/Spliterators$DoubleArraySpliterator;->index:I
-Ljava/util/Spliterators$DoubleIteratorSpliterator;
 Ljava/util/Spliterators$DoubleIteratorSpliterator;-><init>(Ljava/util/PrimitiveIterator$OfDouble;I)V
 Ljava/util/Spliterators$DoubleIteratorSpliterator;-><init>(Ljava/util/PrimitiveIterator$OfDouble;JI)V
 Ljava/util/Spliterators$DoubleIteratorSpliterator;->batch:I
@@ -118727,29 +111157,22 @@
 Ljava/util/Spliterators$DoubleIteratorSpliterator;->est:J
 Ljava/util/Spliterators$DoubleIteratorSpliterator;->it:Ljava/util/PrimitiveIterator$OfDouble;
 Ljava/util/Spliterators$DoubleIteratorSpliterator;->MAX_BATCH:I
-Ljava/util/Spliterators$EmptySpliterator$OfDouble;
 Ljava/util/Spliterators$EmptySpliterator$OfDouble;-><init>()V
-Ljava/util/Spliterators$EmptySpliterator$OfInt;
 Ljava/util/Spliterators$EmptySpliterator$OfInt;-><init>()V
-Ljava/util/Spliterators$EmptySpliterator$OfLong;
 Ljava/util/Spliterators$EmptySpliterator$OfLong;-><init>()V
-Ljava/util/Spliterators$EmptySpliterator$OfRef;
 Ljava/util/Spliterators$EmptySpliterator$OfRef;-><init>()V
-Ljava/util/Spliterators$EmptySpliterator;
 Ljava/util/Spliterators$EmptySpliterator;-><init>()V
 Ljava/util/Spliterators$EmptySpliterator;->characteristics()I
 Ljava/util/Spliterators$EmptySpliterator;->estimateSize()J
 Ljava/util/Spliterators$EmptySpliterator;->forEachRemaining(Ljava/lang/Object;)V
 Ljava/util/Spliterators$EmptySpliterator;->tryAdvance(Ljava/lang/Object;)Z
 Ljava/util/Spliterators$EmptySpliterator;->trySplit()Ljava/util/Spliterator;
-Ljava/util/Spliterators$IntArraySpliterator;
 Ljava/util/Spliterators$IntArraySpliterator;-><init>([II)V
 Ljava/util/Spliterators$IntArraySpliterator;-><init>([IIII)V
 Ljava/util/Spliterators$IntArraySpliterator;->array:[I
 Ljava/util/Spliterators$IntArraySpliterator;->characteristics:I
 Ljava/util/Spliterators$IntArraySpliterator;->fence:I
 Ljava/util/Spliterators$IntArraySpliterator;->index:I
-Ljava/util/Spliterators$IntIteratorSpliterator;
 Ljava/util/Spliterators$IntIteratorSpliterator;-><init>(Ljava/util/PrimitiveIterator$OfInt;I)V
 Ljava/util/Spliterators$IntIteratorSpliterator;-><init>(Ljava/util/PrimitiveIterator$OfInt;JI)V
 Ljava/util/Spliterators$IntIteratorSpliterator;->batch:I
@@ -118758,7 +111181,6 @@
 Ljava/util/Spliterators$IntIteratorSpliterator;->est:J
 Ljava/util/Spliterators$IntIteratorSpliterator;->it:Ljava/util/PrimitiveIterator$OfInt;
 Ljava/util/Spliterators$IntIteratorSpliterator;->MAX_BATCH:I
-Ljava/util/Spliterators$IteratorSpliterator;
 Ljava/util/Spliterators$IteratorSpliterator;-><init>(Ljava/util/Collection;I)V
 Ljava/util/Spliterators$IteratorSpliterator;-><init>(Ljava/util/Iterator;I)V
 Ljava/util/Spliterators$IteratorSpliterator;-><init>(Ljava/util/Iterator;JI)V
@@ -118769,14 +111191,12 @@
 Ljava/util/Spliterators$IteratorSpliterator;->est:J
 Ljava/util/Spliterators$IteratorSpliterator;->it:Ljava/util/Iterator;
 Ljava/util/Spliterators$IteratorSpliterator;->MAX_BATCH:I
-Ljava/util/Spliterators$LongArraySpliterator;
 Ljava/util/Spliterators$LongArraySpliterator;-><init>([JI)V
 Ljava/util/Spliterators$LongArraySpliterator;-><init>([JIII)V
 Ljava/util/Spliterators$LongArraySpliterator;->array:[J
 Ljava/util/Spliterators$LongArraySpliterator;->characteristics:I
 Ljava/util/Spliterators$LongArraySpliterator;->fence:I
 Ljava/util/Spliterators$LongArraySpliterator;->index:I
-Ljava/util/Spliterators$LongIteratorSpliterator;
 Ljava/util/Spliterators$LongIteratorSpliterator;-><init>(Ljava/util/PrimitiveIterator$OfLong;I)V
 Ljava/util/Spliterators$LongIteratorSpliterator;-><init>(Ljava/util/PrimitiveIterator$OfLong;JI)V
 Ljava/util/Spliterators$LongIteratorSpliterator;->batch:I
@@ -118791,21 +111211,18 @@
 Ljava/util/Spliterators;->EMPTY_INT_SPLITERATOR:Ljava/util/Spliterator$OfInt;
 Ljava/util/Spliterators;->EMPTY_LONG_SPLITERATOR:Ljava/util/Spliterator$OfLong;
 Ljava/util/Spliterators;->EMPTY_SPLITERATOR:Ljava/util/Spliterator;
-Ljava/util/SplittableRandom$RandomDoublesSpliterator;
 Ljava/util/SplittableRandom$RandomDoublesSpliterator;-><init>(Ljava/util/SplittableRandom;JJDD)V
 Ljava/util/SplittableRandom$RandomDoublesSpliterator;->bound:D
 Ljava/util/SplittableRandom$RandomDoublesSpliterator;->fence:J
 Ljava/util/SplittableRandom$RandomDoublesSpliterator;->index:J
 Ljava/util/SplittableRandom$RandomDoublesSpliterator;->origin:D
 Ljava/util/SplittableRandom$RandomDoublesSpliterator;->rng:Ljava/util/SplittableRandom;
-Ljava/util/SplittableRandom$RandomIntsSpliterator;
 Ljava/util/SplittableRandom$RandomIntsSpliterator;-><init>(Ljava/util/SplittableRandom;JJII)V
 Ljava/util/SplittableRandom$RandomIntsSpliterator;->bound:I
 Ljava/util/SplittableRandom$RandomIntsSpliterator;->fence:J
 Ljava/util/SplittableRandom$RandomIntsSpliterator;->index:J
 Ljava/util/SplittableRandom$RandomIntsSpliterator;->origin:I
 Ljava/util/SplittableRandom$RandomIntsSpliterator;->rng:Ljava/util/SplittableRandom;
-Ljava/util/SplittableRandom$RandomLongsSpliterator;
 Ljava/util/SplittableRandom$RandomLongsSpliterator;-><init>(Ljava/util/SplittableRandom;JJJJ)V
 Ljava/util/SplittableRandom$RandomLongsSpliterator;->bound:J
 Ljava/util/SplittableRandom$RandomLongsSpliterator;->fence:J
@@ -118828,7 +111245,6 @@
 Ljava/util/SplittableRandom;->mixGamma(J)J
 Ljava/util/SplittableRandom;->nextSeed()J
 Ljava/util/SplittableRandom;->seed:J
-Ljava/util/stream/AbstractPipeline;
 Ljava/util/stream/AbstractPipeline;-><init>(Ljava/util/function/Supplier;IZ)V
 Ljava/util/stream/AbstractPipeline;-><init>(Ljava/util/Spliterator;IZ)V
 Ljava/util/stream/AbstractPipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V
@@ -118871,7 +111287,6 @@
 Ljava/util/stream/AbstractPipeline;->wrapAndCopyInto(Ljava/util/stream/Sink;Ljava/util/Spliterator;)Ljava/util/stream/Sink;
 Ljava/util/stream/AbstractPipeline;->wrapSink(Ljava/util/stream/Sink;)Ljava/util/stream/Sink;
 Ljava/util/stream/AbstractPipeline;->wrapSpliterator(Ljava/util/Spliterator;)Ljava/util/Spliterator;
-Ljava/util/stream/AbstractSpinedBuffer;
 Ljava/util/stream/AbstractSpinedBuffer;-><init>()V
 Ljava/util/stream/AbstractSpinedBuffer;-><init>(I)V
 Ljava/util/stream/AbstractSpinedBuffer;->chunkSize(I)I
@@ -118886,8 +111301,6 @@
 Ljava/util/stream/AbstractSpinedBuffer;->MIN_SPINE_SIZE:I
 Ljava/util/stream/AbstractSpinedBuffer;->priorElementCount:[J
 Ljava/util/stream/AbstractSpinedBuffer;->spineIndex:I
-Ljava/util/stream/Collector$Characteristics;-><init>()V
-Ljava/util/stream/Collectors$CollectorImpl;
 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
 Ljava/util/stream/Collectors$CollectorImpl;-><init>(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;Ljava/util/Set;)V
 Ljava/util/stream/Collectors$CollectorImpl;->accumulator:Ljava/util/function/BiConsumer;
@@ -118895,7 +111308,6 @@
 Ljava/util/stream/Collectors$CollectorImpl;->combiner:Ljava/util/function/BinaryOperator;
 Ljava/util/stream/Collectors$CollectorImpl;->finisher:Ljava/util/function/Function;
 Ljava/util/stream/Collectors$CollectorImpl;->supplier:Ljava/util/function/Supplier;
-Ljava/util/stream/Collectors$Partition;
 Ljava/util/stream/Collectors$Partition;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
 Ljava/util/stream/Collectors$Partition;->forFalse:Ljava/lang/Object;
 Ljava/util/stream/Collectors$Partition;->forTrue:Ljava/lang/Object;
@@ -118911,19 +111323,15 @@
 Ljava/util/stream/Collectors;->mapMerger(Ljava/util/function/BinaryOperator;)Ljava/util/function/BinaryOperator;
 Ljava/util/stream/Collectors;->sumWithCompensation([DD)[D
 Ljava/util/stream/Collectors;->throwingMerger()Ljava/util/function/BinaryOperator;
-Ljava/util/stream/DoublePipeline$Head;
 Ljava/util/stream/DoublePipeline$Head;-><init>(Ljava/util/function/Supplier;IZ)V
 Ljava/util/stream/DoublePipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V
 Ljava/util/stream/DoublePipeline$Head;->opIsStateful()Z
 Ljava/util/stream/DoublePipeline$Head;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
-Ljava/util/stream/DoublePipeline$StatefulOp;
 Ljava/util/stream/DoublePipeline$StatefulOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
 Ljava/util/stream/DoublePipeline$StatefulOp;->opEvaluateParallel(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;Ljava/util/function/IntFunction;)Ljava/util/stream/Node;
 Ljava/util/stream/DoublePipeline$StatefulOp;->opIsStateful()Z
-Ljava/util/stream/DoublePipeline$StatelessOp;
 Ljava/util/stream/DoublePipeline$StatelessOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
 Ljava/util/stream/DoublePipeline$StatelessOp;->opIsStateful()Z
-Ljava/util/stream/DoublePipeline;
 Ljava/util/stream/DoublePipeline;-><init>(Ljava/util/function/Supplier;IZ)V
 Ljava/util/stream/DoublePipeline;-><init>(Ljava/util/Spliterator;IZ)V
 Ljava/util/stream/DoublePipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V
@@ -118935,19 +111343,15 @@
 Ljava/util/stream/DoublePipeline;->lazySpliterator(Ljava/util/function/Supplier;)Ljava/util/Spliterator$OfDouble;
 Ljava/util/stream/DoublePipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;
 Ljava/util/stream/DoublePipeline;->wrap(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)Ljava/util/Spliterator;
-Ljava/util/stream/IntPipeline$Head;
 Ljava/util/stream/IntPipeline$Head;-><init>(Ljava/util/function/Supplier;IZ)V
 Ljava/util/stream/IntPipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V
 Ljava/util/stream/IntPipeline$Head;->opIsStateful()Z
 Ljava/util/stream/IntPipeline$Head;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
-Ljava/util/stream/IntPipeline$StatefulOp;
 Ljava/util/stream/IntPipeline$StatefulOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
 Ljava/util/stream/IntPipeline$StatefulOp;->opEvaluateParallel(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;Ljava/util/function/IntFunction;)Ljava/util/stream/Node;
 Ljava/util/stream/IntPipeline$StatefulOp;->opIsStateful()Z
-Ljava/util/stream/IntPipeline$StatelessOp;
 Ljava/util/stream/IntPipeline$StatelessOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
 Ljava/util/stream/IntPipeline$StatelessOp;->opIsStateful()Z
-Ljava/util/stream/IntPipeline;
 Ljava/util/stream/IntPipeline;-><init>(Ljava/util/function/Supplier;IZ)V
 Ljava/util/stream/IntPipeline;-><init>(Ljava/util/Spliterator;IZ)V
 Ljava/util/stream/IntPipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V
@@ -118959,19 +111363,15 @@
 Ljava/util/stream/IntPipeline;->lazySpliterator(Ljava/util/function/Supplier;)Ljava/util/Spliterator$OfInt;
 Ljava/util/stream/IntPipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;
 Ljava/util/stream/IntPipeline;->wrap(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)Ljava/util/Spliterator;
-Ljava/util/stream/LongPipeline$Head;
 Ljava/util/stream/LongPipeline$Head;-><init>(Ljava/util/function/Supplier;IZ)V
 Ljava/util/stream/LongPipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V
 Ljava/util/stream/LongPipeline$Head;->opIsStateful()Z
 Ljava/util/stream/LongPipeline$Head;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
-Ljava/util/stream/LongPipeline$StatefulOp;
 Ljava/util/stream/LongPipeline$StatefulOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
 Ljava/util/stream/LongPipeline$StatefulOp;->opEvaluateParallel(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;Ljava/util/function/IntFunction;)Ljava/util/stream/Node;
 Ljava/util/stream/LongPipeline$StatefulOp;->opIsStateful()Z
-Ljava/util/stream/LongPipeline$StatelessOp;
 Ljava/util/stream/LongPipeline$StatelessOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
 Ljava/util/stream/LongPipeline$StatelessOp;->opIsStateful()Z
-Ljava/util/stream/LongPipeline;
 Ljava/util/stream/LongPipeline;-><init>(Ljava/util/function/Supplier;IZ)V
 Ljava/util/stream/LongPipeline;-><init>(Ljava/util/Spliterator;IZ)V
 Ljava/util/stream/LongPipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V
@@ -118983,33 +111383,25 @@
 Ljava/util/stream/LongPipeline;->lazySpliterator(Ljava/util/function/Supplier;)Ljava/util/Spliterator$OfLong;
 Ljava/util/stream/LongPipeline;->makeNodeBuilder(JLjava/util/function/IntFunction;)Ljava/util/stream/Node$Builder;
 Ljava/util/stream/LongPipeline;->wrap(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)Ljava/util/Spliterator;
-Ljava/util/stream/Node$Builder$OfDouble;
 Ljava/util/stream/Node$Builder$OfDouble;->build()Ljava/util/stream/Node$OfDouble;
-Ljava/util/stream/Node$Builder$OfInt;
 Ljava/util/stream/Node$Builder$OfInt;->build()Ljava/util/stream/Node$OfInt;
-Ljava/util/stream/Node$Builder$OfLong;
 Ljava/util/stream/Node$Builder$OfLong;->build()Ljava/util/stream/Node$OfLong;
-Ljava/util/stream/Node$Builder;
 Ljava/util/stream/Node$Builder;->build()Ljava/util/stream/Node;
-Ljava/util/stream/Node$OfDouble;
 Ljava/util/stream/Node$OfDouble;->copyInto([Ljava/lang/Double;I)V
 Ljava/util/stream/Node$OfDouble;->forEach(Ljava/util/function/Consumer;)V
 Ljava/util/stream/Node$OfDouble;->getShape()Ljava/util/stream/StreamShape;
 Ljava/util/stream/Node$OfDouble;->newArray(I)[D
 Ljava/util/stream/Node$OfDouble;->truncate(JJLjava/util/function/IntFunction;)Ljava/util/stream/Node$OfDouble;
-Ljava/util/stream/Node$OfInt;
 Ljava/util/stream/Node$OfInt;->copyInto([Ljava/lang/Integer;I)V
 Ljava/util/stream/Node$OfInt;->forEach(Ljava/util/function/Consumer;)V
 Ljava/util/stream/Node$OfInt;->getShape()Ljava/util/stream/StreamShape;
 Ljava/util/stream/Node$OfInt;->newArray(I)[I
 Ljava/util/stream/Node$OfInt;->truncate(JJLjava/util/function/IntFunction;)Ljava/util/stream/Node$OfInt;
-Ljava/util/stream/Node$OfLong;
 Ljava/util/stream/Node$OfLong;->copyInto([Ljava/lang/Long;I)V
 Ljava/util/stream/Node$OfLong;->forEach(Ljava/util/function/Consumer;)V
 Ljava/util/stream/Node$OfLong;->getShape()Ljava/util/stream/StreamShape;
 Ljava/util/stream/Node$OfLong;->newArray(I)[J
 Ljava/util/stream/Node$OfLong;->truncate(JJLjava/util/function/IntFunction;)Ljava/util/stream/Node$OfLong;
-Ljava/util/stream/Node$OfPrimitive;
 Ljava/util/stream/Node$OfPrimitive;->asArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
 Ljava/util/stream/Node$OfPrimitive;->asPrimitiveArray()Ljava/lang/Object;
 Ljava/util/stream/Node$OfPrimitive;->copyInto(Ljava/lang/Object;I)V
@@ -119018,7 +111410,6 @@
 Ljava/util/stream/Node$OfPrimitive;->newArray(I)Ljava/lang/Object;
 Ljava/util/stream/Node$OfPrimitive;->spliterator()Ljava/util/Spliterator$OfPrimitive;
 Ljava/util/stream/Node$OfPrimitive;->truncate(JJLjava/util/function/IntFunction;)Ljava/util/stream/Node$OfPrimitive;
-Ljava/util/stream/Node;
 Ljava/util/stream/Node;->asArray(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
 Ljava/util/stream/Node;->copyInto([Ljava/lang/Object;I)V
 Ljava/util/stream/Node;->count()J
@@ -119028,7 +111419,6 @@
 Ljava/util/stream/Node;->getShape()Ljava/util/stream/StreamShape;
 Ljava/util/stream/Node;->spliterator()Ljava/util/Spliterator;
 Ljava/util/stream/Node;->truncate(JJLjava/util/function/IntFunction;)Ljava/util/stream/Node;
-Ljava/util/stream/PipelineHelper;
 Ljava/util/stream/PipelineHelper;-><init>()V
 Ljava/util/stream/PipelineHelper;->copyInto(Ljava/util/stream/Sink;Ljava/util/Spliterator;)V
 Ljava/util/stream/PipelineHelper;->copyIntoWithCancel(Ljava/util/stream/Sink;Ljava/util/Spliterator;)V
@@ -119040,21 +111430,17 @@
 Ljava/util/stream/PipelineHelper;->wrapAndCopyInto(Ljava/util/stream/Sink;Ljava/util/Spliterator;)Ljava/util/stream/Sink;
 Ljava/util/stream/PipelineHelper;->wrapSink(Ljava/util/stream/Sink;)Ljava/util/stream/Sink;
 Ljava/util/stream/PipelineHelper;->wrapSpliterator(Ljava/util/Spliterator;)Ljava/util/Spliterator;
-Ljava/util/stream/ReferencePipeline$Head;
 Ljava/util/stream/ReferencePipeline$Head;-><init>(Ljava/util/function/Supplier;IZ)V
 Ljava/util/stream/ReferencePipeline$Head;-><init>(Ljava/util/Spliterator;IZ)V
 Ljava/util/stream/ReferencePipeline$Head;->forEach(Ljava/util/function/Consumer;)V
 Ljava/util/stream/ReferencePipeline$Head;->forEachOrdered(Ljava/util/function/Consumer;)V
 Ljava/util/stream/ReferencePipeline$Head;->opIsStateful()Z
 Ljava/util/stream/ReferencePipeline$Head;->opWrapSink(ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
-Ljava/util/stream/ReferencePipeline$StatefulOp;
 Ljava/util/stream/ReferencePipeline$StatefulOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
 Ljava/util/stream/ReferencePipeline$StatefulOp;->opEvaluateParallel(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;Ljava/util/function/IntFunction;)Ljava/util/stream/Node;
 Ljava/util/stream/ReferencePipeline$StatefulOp;->opIsStateful()Z
-Ljava/util/stream/ReferencePipeline$StatelessOp;
 Ljava/util/stream/ReferencePipeline$StatelessOp;-><init>(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
 Ljava/util/stream/ReferencePipeline$StatelessOp;->opIsStateful()Z
-Ljava/util/stream/ReferencePipeline;
 Ljava/util/stream/ReferencePipeline;-><init>(Ljava/util/function/Supplier;IZ)V
 Ljava/util/stream/ReferencePipeline;-><init>(Ljava/util/Spliterator;IZ)V
 Ljava/util/stream/ReferencePipeline;-><init>(Ljava/util/stream/AbstractPipeline;I)V
@@ -119087,44 +111473,35 @@
 Ljava/util/stream/ReferencePipeline;->reduce(Ljava/util/function/BinaryOperator;)Ljava/util/Optional;
 Ljava/util/stream/ReferencePipeline;->sorted(Ljava/util/Comparator;)Ljava/util/stream/Stream;
 Ljava/util/stream/ReferencePipeline;->wrap(Ljava/util/stream/PipelineHelper;Ljava/util/function/Supplier;Z)Ljava/util/Spliterator;
-Ljava/util/stream/Sink$ChainedDouble;
 Ljava/util/stream/Sink$ChainedDouble;-><init>(Ljava/util/stream/Sink;)V
 Ljava/util/stream/Sink$ChainedDouble;->begin(J)V
 Ljava/util/stream/Sink$ChainedDouble;->cancellationRequested()Z
 Ljava/util/stream/Sink$ChainedDouble;->downstream:Ljava/util/stream/Sink;
 Ljava/util/stream/Sink$ChainedDouble;->end()V
-Ljava/util/stream/Sink$ChainedInt;
 Ljava/util/stream/Sink$ChainedInt;-><init>(Ljava/util/stream/Sink;)V
 Ljava/util/stream/Sink$ChainedInt;->begin(J)V
 Ljava/util/stream/Sink$ChainedInt;->cancellationRequested()Z
 Ljava/util/stream/Sink$ChainedInt;->downstream:Ljava/util/stream/Sink;
 Ljava/util/stream/Sink$ChainedInt;->end()V
-Ljava/util/stream/Sink$ChainedLong;
 Ljava/util/stream/Sink$ChainedLong;-><init>(Ljava/util/stream/Sink;)V
 Ljava/util/stream/Sink$ChainedLong;->begin(J)V
 Ljava/util/stream/Sink$ChainedLong;->cancellationRequested()Z
 Ljava/util/stream/Sink$ChainedLong;->downstream:Ljava/util/stream/Sink;
 Ljava/util/stream/Sink$ChainedLong;->end()V
-Ljava/util/stream/Sink$ChainedReference;
 Ljava/util/stream/Sink$ChainedReference;-><init>(Ljava/util/stream/Sink;)V
 Ljava/util/stream/Sink$ChainedReference;->begin(J)V
 Ljava/util/stream/Sink$ChainedReference;->cancellationRequested()Z
 Ljava/util/stream/Sink$ChainedReference;->downstream:Ljava/util/stream/Sink;
 Ljava/util/stream/Sink$ChainedReference;->end()V
-Ljava/util/stream/Sink$OfDouble;
 Ljava/util/stream/Sink$OfDouble;->accept(Ljava/lang/Double;)V
-Ljava/util/stream/Sink$OfInt;
 Ljava/util/stream/Sink$OfInt;->accept(Ljava/lang/Integer;)V
-Ljava/util/stream/Sink$OfLong;
 Ljava/util/stream/Sink$OfLong;->accept(Ljava/lang/Long;)V
-Ljava/util/stream/Sink;
 Ljava/util/stream/Sink;->accept(D)V
 Ljava/util/stream/Sink;->accept(I)V
 Ljava/util/stream/Sink;->accept(J)V
 Ljava/util/stream/Sink;->begin(J)V
 Ljava/util/stream/Sink;->cancellationRequested()Z
 Ljava/util/stream/Sink;->end()V
-Ljava/util/stream/SpinedBuffer$OfDouble;
 Ljava/util/stream/SpinedBuffer$OfDouble;-><init>()V
 Ljava/util/stream/SpinedBuffer$OfDouble;-><init>(I)V
 Ljava/util/stream/SpinedBuffer$OfDouble;->arrayForEach([DIILjava/util/function/DoubleConsumer;)V
@@ -119133,7 +111510,6 @@
 Ljava/util/stream/SpinedBuffer$OfDouble;->get(J)D
 Ljava/util/stream/SpinedBuffer$OfDouble;->newArray(I)[D
 Ljava/util/stream/SpinedBuffer$OfDouble;->newArrayArray(I)[[D
-Ljava/util/stream/SpinedBuffer$OfInt;
 Ljava/util/stream/SpinedBuffer$OfInt;-><init>()V
 Ljava/util/stream/SpinedBuffer$OfInt;-><init>(I)V
 Ljava/util/stream/SpinedBuffer$OfInt;->arrayForEach([IIILjava/util/function/IntConsumer;)V
@@ -119142,7 +111518,6 @@
 Ljava/util/stream/SpinedBuffer$OfInt;->get(J)I
 Ljava/util/stream/SpinedBuffer$OfInt;->newArray(I)[I
 Ljava/util/stream/SpinedBuffer$OfInt;->newArrayArray(I)[[I
-Ljava/util/stream/SpinedBuffer$OfLong;
 Ljava/util/stream/SpinedBuffer$OfLong;-><init>()V
 Ljava/util/stream/SpinedBuffer$OfLong;-><init>(I)V
 Ljava/util/stream/SpinedBuffer$OfLong;->arrayForEach([JIILjava/util/function/LongConsumer;)V
@@ -119151,8 +111526,6 @@
 Ljava/util/stream/SpinedBuffer$OfLong;->get(J)J
 Ljava/util/stream/SpinedBuffer$OfLong;->newArray(I)[J
 Ljava/util/stream/SpinedBuffer$OfLong;->newArrayArray(I)[[J
-Ljava/util/stream/SpinedBuffer$OfPrimitive$BaseSpliterator;
-Ljava/util/stream/SpinedBuffer$OfPrimitive$BaseSpliterator;-><init>(IIII)V
 Ljava/util/stream/SpinedBuffer$OfPrimitive$BaseSpliterator;->arrayForOne(Ljava/lang/Object;ILjava/lang/Object;)V
 Ljava/util/stream/SpinedBuffer$OfPrimitive$BaseSpliterator;->arraySpliterator(Ljava/lang/Object;II)Ljava/util/Spliterator$OfPrimitive;
 Ljava/util/stream/SpinedBuffer$OfPrimitive$BaseSpliterator;->lastSpineElementFence:I
@@ -119161,7 +111534,6 @@
 Ljava/util/stream/SpinedBuffer$OfPrimitive$BaseSpliterator;->splChunk:Ljava/lang/Object;
 Ljava/util/stream/SpinedBuffer$OfPrimitive$BaseSpliterator;->splElementIndex:I
 Ljava/util/stream/SpinedBuffer$OfPrimitive$BaseSpliterator;->splSpineIndex:I
-Ljava/util/stream/SpinedBuffer$OfPrimitive;
 Ljava/util/stream/SpinedBuffer$OfPrimitive;-><init>()V
 Ljava/util/stream/SpinedBuffer$OfPrimitive;-><init>(I)V
 Ljava/util/stream/SpinedBuffer$OfPrimitive;->arrayForEach(Ljava/lang/Object;IILjava/lang/Object;)V
@@ -119181,7 +111553,6 @@
 Ljava/util/stream/SpinedBuffer$OfPrimitive;->newArrayArray(I)[Ljava/lang/Object;
 Ljava/util/stream/SpinedBuffer$OfPrimitive;->preAccept()V
 Ljava/util/stream/SpinedBuffer$OfPrimitive;->spine:[Ljava/lang/Object;
-Ljava/util/stream/SpinedBuffer;
 Ljava/util/stream/SpinedBuffer;-><init>()V
 Ljava/util/stream/SpinedBuffer;-><init>(I)V
 Ljava/util/stream/SpinedBuffer;->accept(Ljava/lang/Object;)V
@@ -119197,7 +111568,6 @@
 Ljava/util/stream/SpinedBuffer;->inflateSpine()V
 Ljava/util/stream/SpinedBuffer;->spine:[[Ljava/lang/Object;
 Ljava/util/stream/SpinedBuffer;->SPLITERATOR_CHARACTERISTICS:I
-Ljava/util/stream/StreamOpFlag$MaskBuilder;
 Ljava/util/stream/StreamOpFlag$MaskBuilder;-><init>(Ljava/util/Map;)V
 Ljava/util/stream/StreamOpFlag$MaskBuilder;->build()Ljava/util/Map;
 Ljava/util/stream/StreamOpFlag$MaskBuilder;->clear(Ljava/util/stream/StreamOpFlag$Type;)Ljava/util/stream/StreamOpFlag$MaskBuilder;
@@ -119205,8 +111575,6 @@
 Ljava/util/stream/StreamOpFlag$MaskBuilder;->mask(Ljava/util/stream/StreamOpFlag$Type;Ljava/lang/Integer;)Ljava/util/stream/StreamOpFlag$MaskBuilder;
 Ljava/util/stream/StreamOpFlag$MaskBuilder;->set(Ljava/util/stream/StreamOpFlag$Type;)Ljava/util/stream/StreamOpFlag$MaskBuilder;
 Ljava/util/stream/StreamOpFlag$MaskBuilder;->setAndClear(Ljava/util/stream/StreamOpFlag$Type;)Ljava/util/stream/StreamOpFlag$MaskBuilder;
-Ljava/util/stream/StreamOpFlag$Type;
-Ljava/util/stream/StreamOpFlag$Type;-><init>()V
 Ljava/util/stream/StreamOpFlag$Type;->OP:Ljava/util/stream/StreamOpFlag$Type;
 Ljava/util/stream/StreamOpFlag$Type;->SPLITERATOR:Ljava/util/stream/StreamOpFlag$Type;
 Ljava/util/stream/StreamOpFlag$Type;->STREAM:Ljava/util/stream/StreamOpFlag$Type;
@@ -119214,8 +111582,6 @@
 Ljava/util/stream/StreamOpFlag$Type;->UPSTREAM_TERMINAL_OP:Ljava/util/stream/StreamOpFlag$Type;
 Ljava/util/stream/StreamOpFlag$Type;->valueOf(Ljava/lang/String;)Ljava/util/stream/StreamOpFlag$Type;
 Ljava/util/stream/StreamOpFlag$Type;->values()[Ljava/util/stream/StreamOpFlag$Type;
-Ljava/util/stream/StreamOpFlag;
-Ljava/util/stream/StreamOpFlag;-><init>(ILjava/util/stream/StreamOpFlag$MaskBuilder;)V
 Ljava/util/stream/StreamOpFlag;->bitPosition:I
 Ljava/util/stream/StreamOpFlag;->canSet(Ljava/util/stream/StreamOpFlag$Type;)Z
 Ljava/util/stream/StreamOpFlag;->clear()I
@@ -119265,8 +111631,6 @@
 Ljava/util/stream/StreamOpFlag;->UPSTREAM_TERMINAL_OP_MASK:I
 Ljava/util/stream/StreamOpFlag;->valueOf(Ljava/lang/String;)Ljava/util/stream/StreamOpFlag;
 Ljava/util/stream/StreamOpFlag;->values()[Ljava/util/stream/StreamOpFlag;
-Ljava/util/stream/StreamShape;
-Ljava/util/stream/StreamShape;-><init>()V
 Ljava/util/stream/StreamShape;->DOUBLE_VALUE:Ljava/util/stream/StreamShape;
 Ljava/util/stream/StreamShape;->INT_VALUE:Ljava/util/stream/StreamShape;
 Ljava/util/stream/StreamShape;->LONG_VALUE:Ljava/util/stream/StreamShape;
@@ -119274,7 +111638,6 @@
 Ljava/util/stream/StreamShape;->valueOf(Ljava/lang/String;)Ljava/util/stream/StreamShape;
 Ljava/util/stream/StreamShape;->values()[Ljava/util/stream/StreamShape;
 Ljava/util/stream/StreamSupport;-><init>()V
-Ljava/util/stream/TerminalOp;
 Ljava/util/stream/TerminalOp;->evaluateParallel(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Object;
 Ljava/util/stream/TerminalOp;->evaluateSequential(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Object;
 Ljava/util/stream/TerminalOp;->getOpFlags()I
@@ -119299,7 +111662,6 @@
 Ljava/util/StringTokenizer;->setMaxDelimCodePoint()V
 Ljava/util/StringTokenizer;->skipDelimiters(I)I
 Ljava/util/StringTokenizer;->str:Ljava/lang/String;
-Ljava/util/TaskQueue;
 Ljava/util/TaskQueue;-><init>()V
 Ljava/util/TaskQueue;->add(Ljava/util/TimerTask;)V
 Ljava/util/TaskQueue;->clear()V
@@ -119328,12 +111690,10 @@
 Ljava/util/TimerTask;->SCHEDULED:I
 Ljava/util/TimerTask;->state:I
 Ljava/util/TimerTask;->VIRGIN:I
-Ljava/util/TimerThread;
 Ljava/util/TimerThread;-><init>(Ljava/util/TaskQueue;)V
 Ljava/util/TimerThread;->mainLoop()V
 Ljava/util/TimerThread;->newTasksMayBeScheduled:Z
 Ljava/util/TimerThread;->queue:Ljava/util/TaskQueue;
-Ljava/util/TimeZone$NoImagePreloadHolder;
 Ljava/util/TimeZone$NoImagePreloadHolder;-><init>()V
 Ljava/util/TimeZone$NoImagePreloadHolder;->CUSTOM_ZONE_ID_PATTERN:Ljava/util/regex/Pattern;
 Ljava/util/TimeZone;->appendNumber(Ljava/lang/StringBuilder;II)V
@@ -119348,9 +111708,6 @@
 Ljava/util/TimeZone;->ID:Ljava/lang/String;
 Ljava/util/TimeZone;->NO_TIMEZONE:Ljava/util/TimeZone;
 Ljava/util/TimeZone;->UTC:Ljava/util/TimeZone;
-Ljava/util/TreeMap$AscendingSubMap$AscendingEntrySetView;
-Ljava/util/TreeMap$AscendingSubMap$AscendingEntrySetView;-><init>()V
-Ljava/util/TreeMap$AscendingSubMap;
 Ljava/util/TreeMap$AscendingSubMap;-><init>(Ljava/util/TreeMap;ZLjava/lang/Object;ZZLjava/lang/Object;Z)V
 Ljava/util/TreeMap$AscendingSubMap;->descendingKeyIterator()Ljava/util/Iterator;
 Ljava/util/TreeMap$AscendingSubMap;->keyIterator()Ljava/util/Iterator;
@@ -119361,15 +111718,9 @@
 Ljava/util/TreeMap$AscendingSubMap;->subHighest()Ljava/util/TreeMap$TreeMapEntry;
 Ljava/util/TreeMap$AscendingSubMap;->subLower(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
 Ljava/util/TreeMap$AscendingSubMap;->subLowest()Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$DescendingKeyIterator;
-Ljava/util/TreeMap$DescendingKeyIterator;-><init>(Ljava/util/TreeMap$TreeMapEntry;)V
-Ljava/util/TreeMap$DescendingKeySpliterator;
 Ljava/util/TreeMap$DescendingKeySpliterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;III)V
 Ljava/util/TreeMap$DescendingKeySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/TreeMap$DescendingKeySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/TreeMap$DescendingSubMap$DescendingEntrySetView;
-Ljava/util/TreeMap$DescendingSubMap$DescendingEntrySetView;-><init>()V
-Ljava/util/TreeMap$DescendingSubMap;
 Ljava/util/TreeMap$DescendingSubMap;-><init>(Ljava/util/TreeMap;ZLjava/lang/Object;ZZLjava/lang/Object;Z)V
 Ljava/util/TreeMap$DescendingSubMap;->descendingKeyIterator()Ljava/util/Iterator;
 Ljava/util/TreeMap$DescendingSubMap;->keyIterator()Ljava/util/Iterator;
@@ -119381,37 +111732,18 @@
 Ljava/util/TreeMap$DescendingSubMap;->subHighest()Ljava/util/TreeMap$TreeMapEntry;
 Ljava/util/TreeMap$DescendingSubMap;->subLower(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
 Ljava/util/TreeMap$DescendingSubMap;->subLowest()Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$EntryIterator;
-Ljava/util/TreeMap$EntryIterator;-><init>(Ljava/util/TreeMap$TreeMapEntry;)V
-Ljava/util/TreeMap$EntrySet;
-Ljava/util/TreeMap$EntrySet;-><init>()V
-Ljava/util/TreeMap$EntrySpliterator;
 Ljava/util/TreeMap$EntrySpliterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;III)V
 Ljava/util/TreeMap$EntrySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/TreeMap$EntrySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/TreeMap$KeyIterator;
-Ljava/util/TreeMap$KeyIterator;-><init>(Ljava/util/TreeMap$TreeMapEntry;)V
-Ljava/util/TreeMap$KeySet;
 Ljava/util/TreeMap$KeySet;-><init>(Ljava/util/NavigableMap;)V
 Ljava/util/TreeMap$KeySet;->m:Ljava/util/NavigableMap;
-Ljava/util/TreeMap$KeySpliterator;
 Ljava/util/TreeMap$KeySpliterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;III)V
 Ljava/util/TreeMap$KeySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/TreeMap$KeySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/TreeMap$NavigableSubMap$DescendingSubMapEntryIterator;
-Ljava/util/TreeMap$NavigableSubMap$DescendingSubMapEntryIterator;-><init>(Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;)V
-Ljava/util/TreeMap$NavigableSubMap$DescendingSubMapKeyIterator;
-Ljava/util/TreeMap$NavigableSubMap$DescendingSubMapKeyIterator;-><init>(Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;)V
 Ljava/util/TreeMap$NavigableSubMap$DescendingSubMapKeyIterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/TreeMap$NavigableSubMap$DescendingSubMapKeyIterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/TreeMap$NavigableSubMap$EntrySetView;
-Ljava/util/TreeMap$NavigableSubMap$EntrySetView;-><init>()V
 Ljava/util/TreeMap$NavigableSubMap$EntrySetView;->size:I
 Ljava/util/TreeMap$NavigableSubMap$EntrySetView;->sizeModCount:I
-Ljava/util/TreeMap$NavigableSubMap$SubMapEntryIterator;
-Ljava/util/TreeMap$NavigableSubMap$SubMapEntryIterator;-><init>(Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;)V
-Ljava/util/TreeMap$NavigableSubMap$SubMapIterator;
-Ljava/util/TreeMap$NavigableSubMap$SubMapIterator;-><init>(Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;)V
 Ljava/util/TreeMap$NavigableSubMap$SubMapIterator;->expectedModCount:I
 Ljava/util/TreeMap$NavigableSubMap$SubMapIterator;->fenceKey:Ljava/lang/Object;
 Ljava/util/TreeMap$NavigableSubMap$SubMapIterator;->lastReturned:Ljava/util/TreeMap$TreeMapEntry;
@@ -119420,11 +111752,8 @@
 Ljava/util/TreeMap$NavigableSubMap$SubMapIterator;->prevEntry()Ljava/util/TreeMap$TreeMapEntry;
 Ljava/util/TreeMap$NavigableSubMap$SubMapIterator;->removeAscending()V
 Ljava/util/TreeMap$NavigableSubMap$SubMapIterator;->removeDescending()V
-Ljava/util/TreeMap$NavigableSubMap$SubMapKeyIterator;
-Ljava/util/TreeMap$NavigableSubMap$SubMapKeyIterator;-><init>(Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;)V
 Ljava/util/TreeMap$NavigableSubMap$SubMapKeyIterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/TreeMap$NavigableSubMap$SubMapKeyIterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/TreeMap$NavigableSubMap;
 Ljava/util/TreeMap$NavigableSubMap;-><init>(Ljava/util/TreeMap;ZLjava/lang/Object;ZZLjava/lang/Object;Z)V
 Ljava/util/TreeMap$NavigableSubMap;->absCeiling(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
 Ljava/util/TreeMap$NavigableSubMap;->absFloor(Ljava/lang/Object;)Ljava/util/TreeMap$TreeMapEntry;
@@ -119458,20 +111787,15 @@
 Ljava/util/TreeMap$NavigableSubMap;->toEnd:Z
 Ljava/util/TreeMap$NavigableSubMap;->tooHigh(Ljava/lang/Object;)Z
 Ljava/util/TreeMap$NavigableSubMap;->tooLow(Ljava/lang/Object;)Z
-Ljava/util/TreeMap$PrivateEntryIterator;
-Ljava/util/TreeMap$PrivateEntryIterator;-><init>(Ljava/util/TreeMap$TreeMapEntry;)V
 Ljava/util/TreeMap$PrivateEntryIterator;->expectedModCount:I
 Ljava/util/TreeMap$PrivateEntryIterator;->lastReturned:Ljava/util/TreeMap$TreeMapEntry;
 Ljava/util/TreeMap$PrivateEntryIterator;->next:Ljava/util/TreeMap$TreeMapEntry;
 Ljava/util/TreeMap$PrivateEntryIterator;->nextEntry()Ljava/util/TreeMap$TreeMapEntry;
 Ljava/util/TreeMap$PrivateEntryIterator;->prevEntry()Ljava/util/TreeMap$TreeMapEntry;
-Ljava/util/TreeMap$SubMap;
-Ljava/util/TreeMap$SubMap;-><init>()V
 Ljava/util/TreeMap$SubMap;->fromKey:Ljava/lang/Object;
 Ljava/util/TreeMap$SubMap;->fromStart:Z
 Ljava/util/TreeMap$SubMap;->toEnd:Z
 Ljava/util/TreeMap$SubMap;->toKey:Ljava/lang/Object;
-Ljava/util/TreeMap$TreeMapEntry;
 Ljava/util/TreeMap$TreeMapEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/TreeMap$TreeMapEntry;)V
 Ljava/util/TreeMap$TreeMapEntry;->color:Z
 Ljava/util/TreeMap$TreeMapEntry;->key:Ljava/lang/Object;
@@ -119479,7 +111803,6 @@
 Ljava/util/TreeMap$TreeMapEntry;->parent:Ljava/util/TreeMap$TreeMapEntry;
 Ljava/util/TreeMap$TreeMapEntry;->right:Ljava/util/TreeMap$TreeMapEntry;
 Ljava/util/TreeMap$TreeMapEntry;->value:Ljava/lang/Object;
-Ljava/util/TreeMap$TreeMapSpliterator;
 Ljava/util/TreeMap$TreeMapSpliterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;III)V
 Ljava/util/TreeMap$TreeMapSpliterator;->current:Ljava/util/TreeMap$TreeMapEntry;
 Ljava/util/TreeMap$TreeMapSpliterator;->est:I
@@ -119489,11 +111812,6 @@
 Ljava/util/TreeMap$TreeMapSpliterator;->getEstimate()I
 Ljava/util/TreeMap$TreeMapSpliterator;->side:I
 Ljava/util/TreeMap$TreeMapSpliterator;->tree:Ljava/util/TreeMap;
-Ljava/util/TreeMap$ValueIterator;
-Ljava/util/TreeMap$ValueIterator;-><init>(Ljava/util/TreeMap$TreeMapEntry;)V
-Ljava/util/TreeMap$Values;
-Ljava/util/TreeMap$Values;-><init>()V
-Ljava/util/TreeMap$ValueSpliterator;
 Ljava/util/TreeMap$ValueSpliterator;-><init>(Ljava/util/TreeMap;Ljava/util/TreeMap$TreeMapEntry;Ljava/util/TreeMap$TreeMapEntry;III)V
 Ljava/util/TreeMap$ValueSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/TreeMap$ValueSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
@@ -119547,21 +111865,15 @@
 Ljava/util/TreeSet;->PRESENT:Ljava/lang/Object;
 Ljava/util/UnknownFormatConversionException;->s:Ljava/lang/String;
 Ljava/util/UnknownFormatFlagsException;->flags:Ljava/lang/String;
-Ljava/util/UUID$Holder;
 Ljava/util/UUID$Holder;-><init>()V
 Ljava/util/UUID$Holder;->numberGenerator:Ljava/security/SecureRandom;
 Ljava/util/UUID;-><init>([B)V
 Ljava/util/UUID;->digits(JI)Ljava/lang/String;
-Ljava/util/Vector$Itr;
-Ljava/util/Vector$Itr;-><init>()V
 Ljava/util/Vector$Itr;->checkForComodification()V
 Ljava/util/Vector$Itr;->cursor:I
 Ljava/util/Vector$Itr;->expectedModCount:I
 Ljava/util/Vector$Itr;->lastRet:I
 Ljava/util/Vector$Itr;->limit:I
-Ljava/util/Vector$ListItr;
-Ljava/util/Vector$ListItr;-><init>(I)V
-Ljava/util/Vector$VectorSpliterator;
 Ljava/util/Vector$VectorSpliterator;-><init>(Ljava/util/Vector;[Ljava/lang/Object;III)V
 Ljava/util/Vector$VectorSpliterator;->array:[Ljava/lang/Object;
 Ljava/util/Vector$VectorSpliterator;->expectedModCount:I
@@ -119575,22 +111887,14 @@
 Ljava/util/Vector;->grow(I)V
 Ljava/util/Vector;->hugeCapacity(I)I
 Ljava/util/Vector;->MAX_ARRAY_SIZE:I
-Ljava/util/WeakHashMap$Entry;
 Ljava/util/WeakHashMap$Entry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;ILjava/util/WeakHashMap$Entry;)V
 Ljava/util/WeakHashMap$Entry;->hash:I
 Ljava/util/WeakHashMap$Entry;->next:Ljava/util/WeakHashMap$Entry;
 Ljava/util/WeakHashMap$Entry;->value:Ljava/lang/Object;
-Ljava/util/WeakHashMap$EntryIterator;
-Ljava/util/WeakHashMap$EntryIterator;-><init>()V
-Ljava/util/WeakHashMap$EntrySet;
-Ljava/util/WeakHashMap$EntrySet;-><init>()V
 Ljava/util/WeakHashMap$EntrySet;->deepCopy()Ljava/util/List;
-Ljava/util/WeakHashMap$EntrySpliterator;
 Ljava/util/WeakHashMap$EntrySpliterator;-><init>(Ljava/util/WeakHashMap;IIII)V
 Ljava/util/WeakHashMap$EntrySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/WeakHashMap$EntrySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/WeakHashMap$HashIterator;
-Ljava/util/WeakHashMap$HashIterator;-><init>()V
 Ljava/util/WeakHashMap$HashIterator;->currentKey:Ljava/lang/Object;
 Ljava/util/WeakHashMap$HashIterator;->entry:Ljava/util/WeakHashMap$Entry;
 Ljava/util/WeakHashMap$HashIterator;->expectedModCount:I
@@ -119598,23 +111902,12 @@
 Ljava/util/WeakHashMap$HashIterator;->lastReturned:Ljava/util/WeakHashMap$Entry;
 Ljava/util/WeakHashMap$HashIterator;->nextEntry()Ljava/util/WeakHashMap$Entry;
 Ljava/util/WeakHashMap$HashIterator;->nextKey:Ljava/lang/Object;
-Ljava/util/WeakHashMap$KeyIterator;
-Ljava/util/WeakHashMap$KeyIterator;-><init>()V
-Ljava/util/WeakHashMap$KeySet;
-Ljava/util/WeakHashMap$KeySet;-><init>()V
-Ljava/util/WeakHashMap$KeySpliterator;
 Ljava/util/WeakHashMap$KeySpliterator;-><init>(Ljava/util/WeakHashMap;IIII)V
 Ljava/util/WeakHashMap$KeySpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/WeakHashMap$KeySpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/WeakHashMap$ValueIterator;
-Ljava/util/WeakHashMap$ValueIterator;-><init>()V
-Ljava/util/WeakHashMap$Values;
-Ljava/util/WeakHashMap$Values;-><init>()V
-Ljava/util/WeakHashMap$ValueSpliterator;
 Ljava/util/WeakHashMap$ValueSpliterator;-><init>(Ljava/util/WeakHashMap;IIII)V
 Ljava/util/WeakHashMap$ValueSpliterator;->forEachRemaining(Ljava/util/function/Consumer;)V
 Ljava/util/WeakHashMap$ValueSpliterator;->tryAdvance(Ljava/util/function/Consumer;)Z
-Ljava/util/WeakHashMap$WeakHashMapSpliterator;
 Ljava/util/WeakHashMap$WeakHashMapSpliterator;-><init>(Ljava/util/WeakHashMap;IIII)V
 Ljava/util/WeakHashMap$WeakHashMapSpliterator;->current:Ljava/util/WeakHashMap$Entry;
 Ljava/util/WeakHashMap$WeakHashMapSpliterator;->est:I
@@ -119715,7 +112008,6 @@
 Ljava/util/zip/InflaterOutputStream;->ensureOpen()V
 Ljava/util/zip/InflaterOutputStream;->usesDefaultInflater:Z
 Ljava/util/zip/InflaterOutputStream;->wbuf:[B
-Ljava/util/zip/ZipCoder;
 Ljava/util/zip/ZipCoder;-><init>(Ljava/nio/charset/Charset;)V
 Ljava/util/zip/ZipCoder;->cs:Ljava/nio/charset/Charset;
 Ljava/util/zip/ZipCoder;->dec:Ljava/nio/charset/CharsetDecoder;
@@ -119731,7 +112023,6 @@
 Ljava/util/zip/ZipCoder;->toString([BI)Ljava/lang/String;
 Ljava/util/zip/ZipCoder;->toStringUTF8([BI)Ljava/lang/String;
 Ljava/util/zip/ZipCoder;->utf8:Ljava/util/zip/ZipCoder;
-Ljava/util/zip/ZipConstants;
 Ljava/util/zip/ZipEntry;-><init>()V
 Ljava/util/zip/ZipEntry;->atime:Ljava/nio/file/attribute/FileTime;
 Ljava/util/zip/ZipEntry;->comment:Ljava/lang/String;
@@ -119749,16 +112040,10 @@
 Ljava/util/zip/ZipEntry;->size:J
 Ljava/util/zip/ZipEntry;->UPPER_DOSTIME_BOUND:J
 Ljava/util/zip/ZipEntry;->xdostime:J
-Ljava/util/zip/ZipFile$ZipEntryIterator;
-Ljava/util/zip/ZipFile$ZipEntryIterator;-><init>()V
 Ljava/util/zip/ZipFile$ZipEntryIterator;->i:I
-Ljava/util/zip/ZipFile$ZipFileInflaterInputStream;
-Ljava/util/zip/ZipFile$ZipFileInflaterInputStream;-><init>(Ljava/util/zip/ZipFile$ZipFileInputStream;Ljava/util/zip/Inflater;I)V
 Ljava/util/zip/ZipFile$ZipFileInflaterInputStream;->closeRequested:Z
 Ljava/util/zip/ZipFile$ZipFileInflaterInputStream;->eof:Z
 Ljava/util/zip/ZipFile$ZipFileInflaterInputStream;->zfin:Ljava/util/zip/ZipFile$ZipFileInputStream;
-Ljava/util/zip/ZipFile$ZipFileInputStream;
-Ljava/util/zip/ZipFile$ZipFileInputStream;-><init>(J)V
 Ljava/util/zip/ZipFile$ZipFileInputStream;->jzentry:J
 Ljava/util/zip/ZipFile$ZipFileInputStream;->pos:J
 Ljava/util/zip/ZipFile$ZipFileInputStream;->rem:J
@@ -119816,7 +112101,6 @@
 Ljava/util/zip/ZipInputStream;->remaining:J
 Ljava/util/zip/ZipInputStream;->STORED:I
 Ljava/util/zip/ZipInputStream;->zc:Ljava/util/zip/ZipCoder;
-Ljava/util/zip/ZipOutputStream$XEntry;
 Ljava/util/zip/ZipOutputStream$XEntry;-><init>(Ljava/util/zip/ZipEntry;J)V
 Ljava/util/zip/ZipOutputStream$XEntry;->entry:Ljava/util/zip/ZipEntry;
 Ljava/util/zip/ZipOutputStream$XEntry;->offset:J
@@ -119842,16 +112126,13 @@
 Ljava/util/zip/ZipOutputStream;->writeShort(I)V
 Ljava/util/zip/ZipOutputStream;->xentries:Ljava/util/Vector;
 Ljava/util/zip/ZipOutputStream;->zc:Ljava/util/zip/ZipCoder;
-Ljava/util/zip/ZStreamRef;
 Ljava/util/zip/ZStreamRef;-><init>(J)V
 Ljava/util/zip/ZStreamRef;->address()J
 Ljava/util/zip/ZStreamRef;->address:J
 Ljava/util/zip/ZStreamRef;->clear()V
-Ljavax/crypto/Cipher$CipherSpiAndProvider;
 Ljavax/crypto/Cipher$CipherSpiAndProvider;-><init>(Ljavax/crypto/CipherSpi;Ljava/security/Provider;)V
 Ljavax/crypto/Cipher$CipherSpiAndProvider;->cipherSpi:Ljavax/crypto/CipherSpi;
 Ljavax/crypto/Cipher$CipherSpiAndProvider;->provider:Ljava/security/Provider;
-Ljavax/crypto/Cipher$InitParams;
 Ljavax/crypto/Cipher$InitParams;-><init>(Ljavax/crypto/Cipher$InitType;ILjava/security/Key;Ljava/security/SecureRandom;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/AlgorithmParameters;)V
 Ljavax/crypto/Cipher$InitParams;->initType:Ljavax/crypto/Cipher$InitType;
 Ljavax/crypto/Cipher$InitParams;->key:Ljava/security/Key;
@@ -119859,23 +112140,17 @@
 Ljavax/crypto/Cipher$InitParams;->params:Ljava/security/AlgorithmParameters;
 Ljavax/crypto/Cipher$InitParams;->random:Ljava/security/SecureRandom;
 Ljavax/crypto/Cipher$InitParams;->spec:Ljava/security/spec/AlgorithmParameterSpec;
-Ljavax/crypto/Cipher$InitType;
-Ljavax/crypto/Cipher$InitType;-><init>()V
 Ljavax/crypto/Cipher$InitType;->ALGORITHM_PARAMS:Ljavax/crypto/Cipher$InitType;
 Ljavax/crypto/Cipher$InitType;->ALGORITHM_PARAM_SPEC:Ljavax/crypto/Cipher$InitType;
 Ljavax/crypto/Cipher$InitType;->KEY:Ljavax/crypto/Cipher$InitType;
 Ljavax/crypto/Cipher$InitType;->valueOf(Ljava/lang/String;)Ljavax/crypto/Cipher$InitType;
 Ljavax/crypto/Cipher$InitType;->values()[Ljavax/crypto/Cipher$InitType;
-Ljavax/crypto/Cipher$NeedToSet;
-Ljavax/crypto/Cipher$NeedToSet;-><init>()V
 Ljavax/crypto/Cipher$NeedToSet;->BOTH:Ljavax/crypto/Cipher$NeedToSet;
 Ljavax/crypto/Cipher$NeedToSet;->MODE:Ljavax/crypto/Cipher$NeedToSet;
 Ljavax/crypto/Cipher$NeedToSet;->NONE:Ljavax/crypto/Cipher$NeedToSet;
 Ljavax/crypto/Cipher$NeedToSet;->PADDING:Ljavax/crypto/Cipher$NeedToSet;
 Ljavax/crypto/Cipher$NeedToSet;->valueOf(Ljava/lang/String;)Ljavax/crypto/Cipher$NeedToSet;
 Ljavax/crypto/Cipher$NeedToSet;->values()[Ljavax/crypto/Cipher$NeedToSet;
-Ljavax/crypto/Cipher$SpiAndProviderUpdater;
-Ljavax/crypto/Cipher$SpiAndProviderUpdater;-><init>(Ljava/security/Provider;Ljavax/crypto/CipherSpi;)V
 Ljavax/crypto/Cipher$SpiAndProviderUpdater;->getCurrentSpi(Ljavax/crypto/CipherSpi;)Ljavax/crypto/CipherSpi;
 Ljavax/crypto/Cipher$SpiAndProviderUpdater;->initSpiLock:Ljava/lang/Object;
 Ljavax/crypto/Cipher$SpiAndProviderUpdater;->setCipherSpiImplAndProvider(Ljavax/crypto/CipherSpi;Ljava/security/Provider;)V
@@ -119883,7 +112158,6 @@
 Ljavax/crypto/Cipher$SpiAndProviderUpdater;->specifiedSpi:Ljavax/crypto/CipherSpi;
 Ljavax/crypto/Cipher$SpiAndProviderUpdater;->updateAndGetSpiAndProvider(Ljavax/crypto/Cipher$InitParams;Ljavax/crypto/CipherSpi;Ljava/security/Provider;)Ljavax/crypto/Cipher$CipherSpiAndProvider;
 Ljavax/crypto/Cipher$SpiAndProviderUpdater;->updateAndGetSpiAndProvider(Ljavax/crypto/CipherSpi;Ljava/security/Provider;)Ljavax/crypto/Cipher$CipherSpiAndProvider;
-Ljavax/crypto/Cipher$Transform;
 Ljavax/crypto/Cipher$Transform;-><init>(Ljava/lang/String;Ljavax/crypto/Cipher$NeedToSet;)V
 Ljavax/crypto/Cipher$Transform;->name:Ljava/lang/String;
 Ljavax/crypto/Cipher$Transform;->needToSet:Ljavax/crypto/Cipher$NeedToSet;
@@ -120033,7 +112307,6 @@
 Ljavax/net/SocketFactory;->theFactory:Ljavax/net/SocketFactory;
 Ljavax/net/ssl/CertPathTrustManagerParameters;->parameters:Ljava/security/cert/CertPathParameters;
 Ljavax/net/ssl/HandshakeCompletedEvent;->session:Ljavax/net/ssl/SSLSession;
-Ljavax/net/ssl/HttpsURLConnection$NoPreloadHolder;
 Ljavax/net/ssl/HttpsURLConnection$NoPreloadHolder;-><init>()V
 Ljavax/net/ssl/HttpsURLConnection$NoPreloadHolder;->defaultHostnameVerifier:Ljavax/net/ssl/HostnameVerifier;
 Ljavax/net/ssl/HttpsURLConnection$NoPreloadHolder;->originalDefaultHostnameVerifierClass:Ljava/lang/Class;
@@ -120043,7 +112316,6 @@
 Ljavax/net/ssl/KeyManagerFactory;->factorySpi:Ljavax/net/ssl/KeyManagerFactorySpi;
 Ljavax/net/ssl/KeyManagerFactory;->provider:Ljava/security/Provider;
 Ljavax/net/ssl/KeyStoreBuilderParameters;->parameters:Ljava/util/List;
-Ljavax/net/ssl/SNIHostName$SNIHostNameMatcher;
 Ljavax/net/ssl/SNIHostName$SNIHostNameMatcher;-><init>(Ljava/lang/String;)V
 Ljavax/net/ssl/SNIHostName$SNIHostNameMatcher;->pattern:Ljava/util/regex/Pattern;
 Ljavax/net/ssl/SNIHostName;->checkHostName()V
@@ -120060,8 +112332,6 @@
 Ljavax/net/ssl/SSLContextSpi;->getDefaultSocket()Ljavax/net/ssl/SSLSocket;
 Ljavax/net/ssl/SSLEngine;->peerHost:Ljava/lang/String;
 Ljavax/net/ssl/SSLEngine;->peerPort:I
-Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;-><init>()V
-Ljavax/net/ssl/SSLEngineResult$Status;-><init>()V
 Ljavax/net/ssl/SSLEngineResult;->bytesConsumed:I
 Ljavax/net/ssl/SSLEngineResult;->bytesProduced:I
 Ljavax/net/ssl/SSLEngineResult;->handshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
@@ -120092,7 +112362,6 @@
 Ljavax/security/auth/callback/PasswordCallback;->prompt:Ljava/lang/String;
 Ljavax/security/auth/callback/UnsupportedCallbackException;->callback:Ljavax/security/auth/callback/Callback;
 Ljavax/security/auth/PrivateCredentialPermission;-><init>(Ljava/lang/String;Ljava/util/Set;)V
-Ljavax/security/auth/Subject$AuthPermissionHolder;
 Ljavax/security/auth/Subject$AuthPermissionHolder;-><init>()V
 Ljavax/security/auth/Subject$AuthPermissionHolder;->DO_AS_PERMISSION:Ljavax/security/auth/AuthPermission;
 Ljavax/security/auth/Subject$AuthPermissionHolder;->DO_AS_PRIVILEGED_PERMISSION:Ljavax/security/auth/AuthPermission;
@@ -120101,14 +112370,11 @@
 Ljavax/security/auth/Subject$AuthPermissionHolder;->MODIFY_PRIVATE_CREDENTIALS_PERMISSION:Ljavax/security/auth/AuthPermission;
 Ljavax/security/auth/Subject$AuthPermissionHolder;->MODIFY_PUBLIC_CREDENTIALS_PERMISSION:Ljavax/security/auth/AuthPermission;
 Ljavax/security/auth/Subject$AuthPermissionHolder;->SET_READ_ONLY_PERMISSION:Ljavax/security/auth/AuthPermission;
-Ljavax/security/auth/Subject$ClassSet;
-Ljavax/security/auth/Subject$ClassSet;-><init>(ILjava/lang/Class;)V
 Ljavax/security/auth/Subject$ClassSet;->add(Ljava/lang/Object;)Z
 Ljavax/security/auth/Subject$ClassSet;->c:Ljava/lang/Class;
 Ljavax/security/auth/Subject$ClassSet;->populateSet()V
 Ljavax/security/auth/Subject$ClassSet;->set:Ljava/util/Set;
 Ljavax/security/auth/Subject$ClassSet;->which:I
-Ljavax/security/auth/Subject$SecureSet;
 Ljavax/security/auth/Subject$SecureSet;-><init>(Ljavax/security/auth/Subject;I)V
 Ljavax/security/auth/Subject$SecureSet;-><init>(Ljavax/security/auth/Subject;ILjava/util/Set;)V
 Ljavax/security/auth/Subject$SecureSet;->elements:Ljava/util/LinkedList;
@@ -120188,11 +112454,8 @@
 Ljavax/xml/xpath/XPathException;->cause:Ljava/lang/Throwable;
 Llibcore/util/BasicLruCache;->maxSize:I
 Llibcore/util/BasicLruCache;->trimToSize(I)V
-Llibcore/util/NativeAllocationRegistry$CleanerRunner;
 Llibcore/util/NativeAllocationRegistry$CleanerRunner;-><init>(Lsun/misc/Cleaner;)V
 Llibcore/util/NativeAllocationRegistry$CleanerRunner;->cleaner:Lsun/misc/Cleaner;
-Llibcore/util/NativeAllocationRegistry$CleanerThunk;
-Llibcore/util/NativeAllocationRegistry$CleanerThunk;-><init>()V
 Llibcore/util/NativeAllocationRegistry$CleanerThunk;->nativePtr:J
 Llibcore/util/NativeAllocationRegistry$CleanerThunk;->setNativePtr(J)V
 Llibcore/util/NativeAllocationRegistry;->classLoader:Ljava/lang/ClassLoader;
@@ -120200,9 +112463,7 @@
 Llibcore/util/NativeAllocationRegistry;->registerNativeAllocation(J)V
 Llibcore/util/NativeAllocationRegistry;->registerNativeFree(J)V
 Llibcore/util/NativeAllocationRegistry;->size:J
-Llibcore/util/ZoneInfo$CheckedArithmeticException;
 Llibcore/util/ZoneInfo$CheckedArithmeticException;-><init>()V
-Llibcore/util/ZoneInfo$OffsetInterval;
 Llibcore/util/ZoneInfo$OffsetInterval;-><init>(IIII)V
 Llibcore/util/ZoneInfo$OffsetInterval;->containsWallTime(J)Z
 Llibcore/util/ZoneInfo$OffsetInterval;->create(Llibcore/util/ZoneInfo;I)Llibcore/util/ZoneInfo$OffsetInterval;
@@ -120251,15 +112512,12 @@
 Llibcore/util/ZoneInfo;->UNIX_OFFSET:J
 Lorg/apache/http/conn/ssl/AbstractVerifier;->IPV4_PATTERN:Ljava/util/regex/Pattern;
 Lorg/apache/http/conn/ssl/AbstractVerifier;->isIPv4Address(Ljava/lang/String;)Z
-Lorg/apache/http/conn/ssl/SSLSocketFactory$NoPreloadHolder;
 Lorg/apache/http/conn/ssl/SSLSocketFactory$NoPreloadHolder;-><init>()V
 Lorg/apache/http/conn/ssl/SSLSocketFactory$NoPreloadHolder;->DEFAULT_FACTORY:Lorg/apache/http/conn/ssl/SSLSocketFactory;
 Lorg/apache/http/params/HttpConnectionParams;-><init>()V
 Lorg/ccil/cowan/tagsoup/AttributesImpl;->badIndex(I)V
 Lorg/ccil/cowan/tagsoup/AttributesImpl;->ensureCapacity(I)V
 Lorg/json/JSONArray;->checkedPut(Ljava/lang/Object;)V
-Lorg/json/JSONStringer$Scope;
-Lorg/json/JSONStringer$Scope;-><init>()V
 Lorg/json/JSONStringer$Scope;->DANGLING_KEY:Lorg/json/JSONStringer$Scope;
 Lorg/json/JSONStringer$Scope;->EMPTY_ARRAY:Lorg/json/JSONStringer$Scope;
 Lorg/json/JSONStringer$Scope;->EMPTY_OBJECT:Lorg/json/JSONStringer$Scope;
@@ -120270,8 +112528,6 @@
 Lorg/json/JSONStringer$Scope;->values()[Lorg/json/JSONStringer$Scope;
 Lorg/w3c/dom/ls/LSSerializer;->getFilter()Lorg/w3c/dom/ls/LSSerializerFilter;
 Lorg/w3c/dom/ls/LSSerializer;->setFilter(Lorg/w3c/dom/ls/LSSerializerFilter;)V
-Lorg/w3c/dom/ls/LSSerializerFilter;
-Lorg/w3c/dom/traversal/NodeFilter;
 Lorg/w3c/dom/traversal/NodeFilter;->FILTER_ACCEPT:S
 Lorg/w3c/dom/traversal/NodeFilter;->FILTER_REJECT:S
 Lorg/w3c/dom/traversal/NodeFilter;->FILTER_SKIP:S
@@ -120288,7 +112544,6 @@
 Lorg/w3c/dom/traversal/NodeFilter;->SHOW_NOTATION:I
 Lorg/w3c/dom/traversal/NodeFilter;->SHOW_PROCESSING_INSTRUCTION:I
 Lorg/w3c/dom/traversal/NodeFilter;->SHOW_TEXT:I
-Lorg/w3c/dom/traversal/NodeIterator;
 Lorg/w3c/dom/traversal/NodeIterator;->getExpandEntityReferences()Z
 Lorg/w3c/dom/traversal/NodeIterator;->getFilter()Lorg/w3c/dom/traversal/NodeFilter;
 Lorg/w3c/dom/traversal/NodeIterator;->getRoot()Lorg/w3c/dom/Node;
@@ -120297,8 +112552,6 @@
 Lorg/xml/sax/helpers/AttributeListImpl;->names:Ljava/util/ArrayList;
 Lorg/xml/sax/helpers/AttributeListImpl;->types:Ljava/util/ArrayList;
 Lorg/xml/sax/helpers/AttributeListImpl;->values:Ljava/util/ArrayList;
-Lorg/xml/sax/helpers/NamespaceSupport$Context;
-Lorg/xml/sax/helpers/NamespaceSupport$Context;-><init>()V
 Lorg/xml/sax/helpers/NamespaceSupport$Context;->attributeNameTable:Ljava/util/Hashtable;
 Lorg/xml/sax/helpers/NamespaceSupport$Context;->clear()V
 Lorg/xml/sax/helpers/NamespaceSupport$Context;->copyTables()V
@@ -120317,8 +112570,6 @@
 Lorg/xml/sax/helpers/NamespaceSupport$Context;->processName(Ljava/lang/String;Z)[Ljava/lang/String;
 Lorg/xml/sax/helpers/NamespaceSupport$Context;->setParent(Lorg/xml/sax/helpers/NamespaceSupport$Context;)V
 Lorg/xml/sax/helpers/NamespaceSupport$Context;->uriTable:Ljava/util/Hashtable;
-Lorg/xml/sax/helpers/ParserAdapter$AttributeListAdapter;
-Lorg/xml/sax/helpers/ParserAdapter$AttributeListAdapter;-><init>()V
 Lorg/xml/sax/helpers/ParserAdapter$AttributeListAdapter;->qAtts:Lorg/xml/sax/AttributeList;
 Lorg/xml/sax/helpers/ParserAdapter$AttributeListAdapter;->setAttributeList(Lorg/xml/sax/AttributeList;)V
 Lorg/xml/sax/helpers/ParserAdapter;->FEATURES:Ljava/lang/String;
@@ -120326,7 +112577,6 @@
 Lorg/xml/sax/helpers/ParserAdapter;->NAMESPACE_PREFIXES:Ljava/lang/String;
 Lorg/xml/sax/helpers/ParserAdapter;->XMLNS_URIs:Ljava/lang/String;
 Lorg/xml/sax/helpers/ParserFactory;-><init>()V
-Lorg/xml/sax/helpers/XMLReaderAdapter$AttributesAdapter;
 Lorg/xml/sax/helpers/XMLReaderAdapter$AttributesAdapter;-><init>()V
 Lorg/xml/sax/helpers/XMLReaderAdapter$AttributesAdapter;->attributes:Lorg/xml/sax/Attributes;
 Lorg/xml/sax/helpers/XMLReaderAdapter$AttributesAdapter;->setAttributes(Lorg/xml/sax/Attributes;)V
@@ -120362,12 +112612,10 @@
 Lsun/misc/Unsafe;-><init>()V
 Lsun/misc/Unsafe;->getArrayBaseOffsetForComponentType(Ljava/lang/Class;)I
 Lsun/misc/Unsafe;->getArrayIndexScaleForComponentType(Ljava/lang/Class;)I
-Lsun/misc/URLClassPath$FileLoader;
 Lsun/misc/URLClassPath$FileLoader;-><init>(Ljava/net/URL;)V
 Lsun/misc/URLClassPath$FileLoader;->dir:Ljava/io/File;
 Lsun/misc/URLClassPath$FileLoader;->findResource(Ljava/lang/String;Z)Ljava/net/URL;
 Lsun/misc/URLClassPath$FileLoader;->getResource(Ljava/lang/String;Z)Lsun/misc/Resource;
-Lsun/misc/URLClassPath$JarLoader;
 Lsun/misc/URLClassPath$JarLoader;-><init>(Ljava/net/URL;Ljava/net/URLStreamHandler;Ljava/util/HashMap;Ljava/security/AccessControlContext;)V
 Lsun/misc/URLClassPath$JarLoader;->acc:Ljava/security/AccessControlContext;
 Lsun/misc/URLClassPath$JarLoader;->checkJar(Ljava/util/jar/JarFile;)Ljava/util/jar/JarFile;
@@ -120390,7 +112638,6 @@
 Lsun/misc/URLClassPath$JarLoader;->parseClassPath(Ljava/net/URL;Ljava/lang/String;)[Ljava/net/URL;
 Lsun/misc/URLClassPath$JarLoader;->parseExtensionsDependencies()V
 Lsun/misc/URLClassPath$JarLoader;->validIndex(Ljava/lang/String;)Z
-Lsun/misc/URLClassPath$Loader;
 Lsun/misc/URLClassPath$Loader;-><init>(Ljava/net/URL;)V
 Lsun/misc/URLClassPath$Loader;->base:Ljava/net/URL;
 Lsun/misc/URLClassPath$Loader;->findResource(Ljava/lang/String;Z)Ljava/net/URL;
@@ -120439,10 +112686,8 @@
 Lsun/security/pkcs/ContentInfo;->sdata:[I
 Lsun/security/pkcs/ContentInfo;->sedata:[I
 Lsun/security/pkcs/ContentInfo;->tstInfo:[I
-Lsun/security/pkcs/PKCS7$VerbatimX509Certificate;
 Lsun/security/pkcs/PKCS7$VerbatimX509Certificate;-><init>(Ljava/security/cert/X509Certificate;[B)V
 Lsun/security/pkcs/PKCS7$VerbatimX509Certificate;->encodedVerbatim:[B
-Lsun/security/pkcs/PKCS7$WrappedX509Certificate;
 Lsun/security/pkcs/PKCS7$WrappedX509Certificate;-><init>(Ljava/security/cert/X509Certificate;)V
 Lsun/security/pkcs/PKCS7$WrappedX509Certificate;->wrapped:Ljava/security/cert/X509Certificate;
 Lsun/security/pkcs/PKCS7;->certificates:[Ljava/security/cert/X509Certificate;
@@ -120521,7 +112766,6 @@
 Lsun/security/util/Debug;->hexDigits:[C
 Lsun/security/util/Debug;->marshal(Ljava/lang/String;)Ljava/lang/String;
 Lsun/security/util/Debug;->prefix:Ljava/lang/String;
-Lsun/security/util/DerInputBuffer;
 Lsun/security/util/DerInputBuffer;-><init>([B)V
 Lsun/security/util/DerInputBuffer;-><init>([BII)V
 Lsun/security/util/DerInputBuffer;->dup()Lsun/security/util/DerInputBuffer;
@@ -120561,8 +112805,6 @@
 Lsun/security/util/DerValue;->isPrivate()Z
 Lsun/security/util/DerValue;->length:I
 Lsun/security/util/DerValue;->originalEncodedForm:[B
-Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;
-Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;-><init>()V
 Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;->EQ:Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;
 Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;->GE:Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;
 Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;->GT:Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;
@@ -120572,23 +112814,19 @@
 Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;->of(Ljava/lang/String;)Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;
 Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;->valueOf(Ljava/lang/String;)Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;
 Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;->values()[Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;
-Lsun/security/util/DisabledAlgorithmConstraints$Constraint;
 Lsun/security/util/DisabledAlgorithmConstraints$Constraint;-><init>()V
 Lsun/security/util/DisabledAlgorithmConstraints$Constraint;->algorithm:Ljava/lang/String;
 Lsun/security/util/DisabledAlgorithmConstraints$Constraint;->nextConstraint:Lsun/security/util/DisabledAlgorithmConstraints$Constraint;
 Lsun/security/util/DisabledAlgorithmConstraints$Constraint;->permits(Ljava/security/Key;)Z
 Lsun/security/util/DisabledAlgorithmConstraints$Constraint;->permits(Lsun/security/util/CertConstraintParameters;)V
-Lsun/security/util/DisabledAlgorithmConstraints$Constraints;
 Lsun/security/util/DisabledAlgorithmConstraints$Constraints;-><init>([Ljava/lang/String;)V
 Lsun/security/util/DisabledAlgorithmConstraints$Constraints;->constraintsMap:Ljava/util/Map;
 Lsun/security/util/DisabledAlgorithmConstraints$Constraints;->getConstraints(Ljava/lang/String;)Ljava/util/Set;
 Lsun/security/util/DisabledAlgorithmConstraints$Constraints;->keySizePattern:Ljava/util/regex/Pattern;
 Lsun/security/util/DisabledAlgorithmConstraints$Constraints;->permits(Ljava/security/Key;)Z
 Lsun/security/util/DisabledAlgorithmConstraints$Constraints;->permits(Lsun/security/util/CertConstraintParameters;)V
-Lsun/security/util/DisabledAlgorithmConstraints$jdkCAConstraint;
 Lsun/security/util/DisabledAlgorithmConstraints$jdkCAConstraint;-><init>(Ljava/lang/String;)V
 Lsun/security/util/DisabledAlgorithmConstraints$jdkCAConstraint;->permits(Lsun/security/util/CertConstraintParameters;)V
-Lsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;
 Lsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;-><init>(Ljava/lang/String;Lsun/security/util/DisabledAlgorithmConstraints$Constraint$Operator;I)V
 Lsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;->maxSize:I
 Lsun/security/util/DisabledAlgorithmConstraints$KeySizeConstraint;->minSize:I
@@ -120607,7 +112845,6 @@
 Lsun/security/util/ManifestDigester$Entry;->offset:I
 Lsun/security/util/ManifestDigester$Entry;->oldStyle:Z
 Lsun/security/util/ManifestDigester$Entry;->rawBytes:[B
-Lsun/security/util/ManifestDigester$Position;
 Lsun/security/util/ManifestDigester$Position;-><init>()V
 Lsun/security/util/ManifestDigester$Position;->endOfFirstLine:I
 Lsun/security/util/ManifestDigester$Position;->endOfSection:I
@@ -120616,7 +112853,6 @@
 Lsun/security/util/ManifestDigester;->findSection(ILsun/security/util/ManifestDigester$Position;)Z
 Lsun/security/util/ManifestDigester;->isNameAttr([BI)Z
 Lsun/security/util/ManifestDigester;->rawBytes:[B
-Lsun/security/util/ManifestEntryVerifier$SunProviderHolder;
 Lsun/security/util/ManifestEntryVerifier$SunProviderHolder;-><init>()V
 Lsun/security/util/ManifestEntryVerifier$SunProviderHolder;->instance:Ljava/security/Provider;
 Lsun/security/util/ManifestEntryVerifier;->createdDigests:Ljava/util/HashMap;
@@ -120630,7 +112866,6 @@
 Lsun/security/util/ManifestEntryVerifier;->signers:[Ljava/security/CodeSigner;
 Lsun/security/util/ManifestEntryVerifier;->skip:Z
 Lsun/security/util/ManifestEntryVerifier;->toHex([B)Ljava/lang/String;
-Lsun/security/util/ObjectIdentifier$HugeOidNotSupportedByOldJDK;
 Lsun/security/util/ObjectIdentifier$HugeOidNotSupportedByOldJDK;-><init>()V
 Lsun/security/util/ObjectIdentifier$HugeOidNotSupportedByOldJDK;->theOne:Lsun/security/util/ObjectIdentifier$HugeOidNotSupportedByOldJDK;
 Lsun/security/util/ObjectIdentifier;-><init>(Lsun/security/util/DerInputBuffer;)V
@@ -120692,7 +112927,6 @@
 Lsun/security/x509/AlgorithmId;->md2WithRSAEncryption_data:[I
 Lsun/security/x509/AlgorithmId;->md5WithRSAEncryption_data:[I
 Lsun/security/x509/AlgorithmId;->nameTable:Ljava/util/Map;
-Lsun/security/x509/AlgorithmId;->oid([[I)Lsun/security/util/ObjectIdentifier;
 Lsun/security/x509/AlgorithmId;->oidTable:Ljava/util/Map;
 Lsun/security/x509/AlgorithmId;->reinitializeMappingTableLocked()V
 Lsun/security/x509/AlgorithmId;->RSAEncryption_data:[I
@@ -120817,13 +113051,11 @@
 Lsun/security/x509/X500Name;->title_data:[I
 Lsun/security/x509/X500Name;->userid_data:[I
 Lsun/security/x509/X500Name;->x500Principal:Ljavax/security/auth/x500/X500Principal;
-Lsun/util/locale/BaseLocale$Cache;
 Lsun/util/locale/BaseLocale$Cache;-><init>()V
 Lsun/util/locale/BaseLocale$Cache;->createObject(Ljava/lang/Object;)Ljava/lang/Object;
 Lsun/util/locale/BaseLocale$Cache;->createObject(Lsun/util/locale/BaseLocale$Key;)Lsun/util/locale/BaseLocale;
 Lsun/util/locale/BaseLocale$Cache;->normalizeKey(Ljava/lang/Object;)Ljava/lang/Object;
 Lsun/util/locale/BaseLocale$Cache;->normalizeKey(Lsun/util/locale/BaseLocale$Key;)Lsun/util/locale/BaseLocale$Key;
-Lsun/util/locale/BaseLocale$Key;
 Lsun/util/locale/BaseLocale$Key;-><init>(Ljava/lang/String;Ljava/lang/String;)V
 Lsun/util/locale/BaseLocale$Key;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
 Lsun/util/locale/BaseLocale$Key;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
@@ -120842,7 +113074,6 @@
 Lsun/util/locale/BaseLocale;->region:Ljava/lang/String;
 Lsun/util/locale/BaseLocale;->script:Ljava/lang/String;
 Lsun/util/locale/BaseLocale;->variant:Ljava/lang/String;
-Lsun/util/locale/Extension;
 Lsun/util/locale/Extension;-><init>(C)V
 Lsun/util/locale/Extension;-><init>(CLjava/lang/String;)V
 Lsun/util/locale/Extension;->getID()Ljava/lang/String;
@@ -120852,13 +113083,11 @@
 Lsun/util/locale/Extension;->key:C
 Lsun/util/locale/Extension;->setValue(Ljava/lang/String;)V
 Lsun/util/locale/Extension;->value:Ljava/lang/String;
-Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar;
 Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar;-><init>(C)V
 Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar;-><init>(Ljava/lang/String;)V
 Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar;->ch:C
 Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar;->lowerCh:C
 Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar;->value()C
-Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveString;
 Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveString;-><init>(Ljava/lang/String;)V
 Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveString;->lowerStr:Ljava/lang/String;
 Lsun/util/locale/InternalLocaleBuilder$CaseInsensitiveString;->str:Ljava/lang/String;
@@ -120896,7 +113125,6 @@
 Lsun/util/locale/LocaleExtensions;->extensionMap:Ljava/util/Map;
 Lsun/util/locale/LocaleExtensions;->id:Ljava/lang/String;
 Lsun/util/locale/LocaleExtensions;->toID(Ljava/util/SortedMap;)Ljava/lang/String;
-Lsun/util/locale/LocaleObjectCache$CacheEntry;
 Lsun/util/locale/LocaleObjectCache$CacheEntry;-><init>(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
 Lsun/util/locale/LocaleObjectCache$CacheEntry;->getKey()Ljava/lang/Object;
 Lsun/util/locale/LocaleObjectCache$CacheEntry;->key:Ljava/lang/Object;
diff --git a/config/hiddenapi-greylist-max-p.txt b/config/hiddenapi-greylist-max-p.txt
index 25d45b0..351e71d 100644
--- a/config/hiddenapi-greylist-max-p.txt
+++ b/config/hiddenapi-greylist-max-p.txt
@@ -1,57 +1,14 @@
 Landroid/app/IInstrumentationWatcher$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IInstrumentationWatcher;
 Landroid/app/ISearchManager$Stub;-><init>()V
 Landroid/app/IUiModeManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IUiModeManager;
-Landroid/app/IUiModeManager;->disableCarMode(I)V
 Landroid/bluetooth/IBluetooth$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothA2dp$Stub;-><init>()V
 Landroid/content/IIntentReceiver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IIntentReceiver;
 Landroid/content/IIntentSender$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IIntentSender;
-Landroid/net/IConnectivityManager;->getNetworkInfo(I)Landroid/net/NetworkInfo;
-Landroid/net/IConnectivityManager;->reportInetCondition(II)V
-Landroid/os/BatteryStats$Counter;-><init>()V
-Landroid/os/BatteryStats$HistoryItem;->clear()V
-Landroid/os/BatteryStats$HistoryItem;->next:Landroid/os/BatteryStats$HistoryItem;
-Landroid/os/BatteryStats$HistoryItem;->same(Landroid/os/BatteryStats$HistoryItem;)Z
-Landroid/os/BatteryStats$HistoryItem;->setTo(JBLandroid/os/BatteryStats$HistoryItem;)V
-Landroid/os/BatteryStats$HistoryItem;->setTo(Landroid/os/BatteryStats$HistoryItem;)V
-Landroid/os/BatteryStats$Timer;-><init>()V
-Landroid/os/BatteryStats$Uid$Pkg;-><init>()V
-Landroid/os/BatteryStats$Uid$Proc;-><init>()V
-Landroid/os/BatteryStats$Uid$Sensor;-><init>()V
-Landroid/os/BatteryStats$Uid$Wakelock;-><init>()V
-Landroid/os/BatteryStats;-><init>()V
-Landroid/os/BatteryStats;->getMobileRadioActiveTime(JI)J
-Landroid/os/BatteryStats;->getNetworkActivityBytes(II)J
-Landroid/os/CancellationSignal;->mCancelInProgress:Z
-Landroid/os/CancellationSignal;->mIsCanceled:Z
-Landroid/os/CancellationSignal;->mOnCancelListener:Landroid/os/CancellationSignal$OnCancelListener;
-Landroid/os/CancellationSignal;->mRemote:Landroid/os/ICancellationSignal;
-Landroid/os/CancellationSignal;->waitForCancelFinishedLocked()V
-Landroid/os/IPowerManager;->nap(J)V
-Landroid/os/Parcel;->mCreators:Ljava/util/HashMap;
-Landroid/os/PowerManager;->mHandler:Landroid/os/Handler;
-Landroid/os/Process;->sendSignalQuiet(II)V
-Landroid/os/Registrant;->getHandler()Landroid/os/Handler;
-Landroid/os/RegistrantList;->get(I)Ljava/lang/Object;
-Landroid/os/RemoteCallback;->mHandler:Landroid/os/Handler;
 Landroid/os/storage/IObbActionListener$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/storage/IObbActionListener;
-Landroid/os/SystemProperties;->native_add_change_callback()V
-Landroid/os/SystemProperties;->native_get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
-Landroid/os/SystemProperties;->native_get_boolean(Ljava/lang/String;Z)Z
-Landroid/os/SystemProperties;->native_get_int(Ljava/lang/String;I)I
-Landroid/os/SystemProperties;->native_set(Ljava/lang/String;Ljava/lang/String;)V
-Landroid/os/UserHandle;->formatUid(Ljava/io/PrintWriter;I)V
-Landroid/os/WorkSource;->sGoneWork:Landroid/os/WorkSource;
-Landroid/os/WorkSource;->sNewbWork:Landroid/os/WorkSource;
-Landroid/os/WorkSource;->sTmpWorkSource:Landroid/os/WorkSource;
-Landroid/os/WorkSource;->updateLocked(Landroid/os/WorkSource;ZZ)Z
 Landroid/service/carrier/ICarrierMessagingCallback$Stub;-><init>()V
-Landroid/service/carrier/ICarrierMessagingService;->filterSms(Landroid/service/carrier/MessagePdu;Ljava/lang/String;IILandroid/service/carrier/ICarrierMessagingCallback;)V
-Landroid/telephony/CarrierMessagingServiceManager;-><init>()V
 Landroid/view/IGraphicsStats$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/IGraphicsStats$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IGraphicsStats;
-Landroid/view/IWindowManager;->setInTouchMode(Z)V
-Landroid/view/IWindowManager;->showStrictModeViolation(Z)V
 Lcom/android/internal/R$styleable;->AndroidManifestActivityAlias:[I
 Lcom/android/internal/R$styleable;->AndroidManifestGrantUriPermission:[I
 Lcom/android/internal/R$styleable;->AndroidManifestInstrumentation:[I
@@ -70,10 +27,3 @@
 Lcom/android/internal/R$styleable;->Searchable:[I
 Lcom/android/internal/R$styleable;->SearchableActionKey:[I
 Lcom/android/internal/telephony/IPhoneSubInfo$Stub;-><init>()V
-Lcom/android/internal/telephony/ITelephony;->getDataActivity()I
-Lcom/android/internal/telephony/ITelephony;->getDataState()I
-Lcom/android/internal/telephony/ITelephonyRegistry;->notifyCallForwardingChanged(Z)V
-Lcom/android/internal/telephony/ITelephonyRegistry;->notifyCellLocation(Landroid/os/Bundle;)V
-Lcom/android/internal/telephony/ITelephonyRegistry;->notifyDataActivity(I)V
-Lcom/android/internal/telephony/ITelephonyRegistry;->notifyOtaspChanged(II)V
-Lcom/android/internal/view/BaseIWindow;-><init>()V
diff --git a/config/hiddenapi-greylist-max-q.txt b/config/hiddenapi-greylist-max-q.txt
new file mode 100644
index 0000000..f465604
--- /dev/null
+++ b/config/hiddenapi-greylist-max-q.txt
@@ -0,0 +1,704 @@
+Landroid/R$styleable;->ActionBar:[I
+Landroid/R$styleable;->ActionBar_background:I
+Landroid/R$styleable;->ActionBar_backgroundSplit:I
+Landroid/R$styleable;->ActionBar_backgroundStacked:I
+Landroid/R$styleable;->ActionBar_divider:I
+Landroid/R$styleable;->ActionBar_itemPadding:I
+Landroid/R$styleable;->CalendarView:[I
+Landroid/R$styleable;->CalendarView_dateTextAppearance:I
+Landroid/R$styleable;->CalendarView_firstDayOfWeek:I
+Landroid/R$styleable;->CalendarView_focusedMonthDateColor:I
+Landroid/R$styleable;->CalendarView_selectedDateVerticalBar:I
+Landroid/R$styleable;->CalendarView_selectedWeekBackgroundColor:I
+Landroid/R$styleable;->CalendarView_shownWeekCount:I
+Landroid/R$styleable;->CalendarView_showWeekNumber:I
+Landroid/R$styleable;->CalendarView_unfocusedMonthDateColor:I
+Landroid/R$styleable;->CalendarView_weekDayTextAppearance:I
+Landroid/R$styleable;->CalendarView_weekNumberColor:I
+Landroid/R$styleable;->CalendarView_weekSeparatorLineColor:I
+Landroid/R$styleable;->CheckBoxPreference:[I
+Landroid/R$styleable;->CheckedTextView:[I
+Landroid/R$styleable;->CheckedTextView_checkMark:I
+Landroid/R$styleable;->CompoundButton:[I
+Landroid/R$styleable;->CompoundButton_button:I
+Landroid/R$styleable;->ContactsDataKind:[I
+Landroid/R$styleable;->DatePicker:[I
+Landroid/R$styleable;->DialogPreference:[I
+Landroid/R$styleable;->DrawableStates:[I
+Landroid/R$styleable;->ExpandableListView:[I
+Landroid/R$styleable;->FrameLayout_Layout:[I
+Landroid/R$styleable;->HorizontalScrollView:[I
+Landroid/R$styleable;->ImageView:[I
+Landroid/R$styleable;->ImageView_adjustViewBounds:I
+Landroid/R$styleable;->ImageView_baselineAlignBottom:I
+Landroid/R$styleable;->ImageView_cropToPadding:I
+Landroid/R$styleable;->ImageView_maxHeight:I
+Landroid/R$styleable;->ImageView_maxWidth:I
+Landroid/R$styleable;->ImageView_scaleType:I
+Landroid/R$styleable;->ImageView_src:I
+Landroid/R$styleable;->ImageView_tint:I
+Landroid/R$styleable;->Keyboard:[I
+Landroid/R$styleable;->Keyboard_horizontalGap:I
+Landroid/R$styleable;->Keyboard_Key:[I
+Landroid/R$styleable;->Keyboard_keyHeight:I
+Landroid/R$styleable;->Keyboard_keyWidth:I
+Landroid/R$styleable;->Keyboard_Key_codes:I
+Landroid/R$styleable;->Keyboard_Key_iconPreview:I
+Landroid/R$styleable;->Keyboard_Key_isModifier:I
+Landroid/R$styleable;->Keyboard_Key_isRepeatable:I
+Landroid/R$styleable;->Keyboard_Key_isSticky:I
+Landroid/R$styleable;->Keyboard_Key_keyEdgeFlags:I
+Landroid/R$styleable;->Keyboard_Key_keyIcon:I
+Landroid/R$styleable;->Keyboard_Key_keyLabel:I
+Landroid/R$styleable;->Keyboard_Key_keyOutputText:I
+Landroid/R$styleable;->Keyboard_Key_popupCharacters:I
+Landroid/R$styleable;->Keyboard_Key_popupKeyboard:I
+Landroid/R$styleable;->Keyboard_Row:[I
+Landroid/R$styleable;->Keyboard_Row_keyboardMode:I
+Landroid/R$styleable;->Keyboard_Row_rowEdgeFlags:I
+Landroid/R$styleable;->Keyboard_verticalGap:I
+Landroid/R$styleable;->LinearLayout:[I
+Landroid/R$styleable;->LinearLayout_baselineAligned:I
+Landroid/R$styleable;->LinearLayout_baselineAlignedChildIndex:I
+Landroid/R$styleable;->LinearLayout_divider:I
+Landroid/R$styleable;->LinearLayout_dividerPadding:I
+Landroid/R$styleable;->LinearLayout_gravity:I
+Landroid/R$styleable;->LinearLayout_Layout:[I
+Landroid/R$styleable;->LinearLayout_Layout_layout_gravity:I
+Landroid/R$styleable;->LinearLayout_Layout_layout_height:I
+Landroid/R$styleable;->LinearLayout_Layout_layout_weight:I
+Landroid/R$styleable;->LinearLayout_Layout_layout_width:I
+Landroid/R$styleable;->LinearLayout_measureWithLargestChild:I
+Landroid/R$styleable;->LinearLayout_orientation:I
+Landroid/R$styleable;->LinearLayout_showDividers:I
+Landroid/R$styleable;->ListView:[I
+Landroid/R$styleable;->ListView_divider:I
+Landroid/R$styleable;->ListView_dividerHeight:I
+Landroid/R$styleable;->LockPatternView:[I
+Landroid/R$styleable;->NumberPicker:[I
+Landroid/R$styleable;->NumberPicker_solidColor:I
+Landroid/R$styleable;->PopupWindow:[I
+Landroid/R$styleable;->ProgressBar:[I
+Landroid/R$styleable;->ProgressBar_indeterminateDrawable:I
+Landroid/R$styleable;->ProgressBar_indeterminateDuration:I
+Landroid/R$styleable;->ProgressBar_maxHeight:I
+Landroid/R$styleable;->ProgressBar_maxWidth:I
+Landroid/R$styleable;->ProgressBar_minHeight:I
+Landroid/R$styleable;->ProgressBar_minWidth:I
+Landroid/R$styleable;->ProgressBar_progressDrawable:I
+Landroid/R$styleable;->RingtonePreference:[I
+Landroid/R$styleable;->ScrollView:[I
+Landroid/R$styleable;->SearchView:[I
+Landroid/R$styleable;->SeekBar:[I
+Landroid/R$styleable;->SeekBar_thumb:I
+Landroid/R$styleable;->SeekBar_thumbOffset:I
+Landroid/R$styleable;->SlidingDrawer:[I
+Landroid/R$styleable;->SlidingDrawer_allowSingleTap:I
+Landroid/R$styleable;->SlidingDrawer_animateOnClick:I
+Landroid/R$styleable;->SlidingDrawer_bottomOffset:I
+Landroid/R$styleable;->SlidingDrawer_content:I
+Landroid/R$styleable;->SlidingDrawer_handle:I
+Landroid/R$styleable;->SlidingDrawer_orientation:I
+Landroid/R$styleable;->SlidingDrawer_topOffset:I
+Landroid/R$styleable;->Switch:[I
+Landroid/R$styleable;->Switch_showText:I
+Landroid/R$styleable;->Switch_splitTrack:I
+Landroid/R$styleable;->Switch_switchMinWidth:I
+Landroid/R$styleable;->Switch_switchPadding:I
+Landroid/R$styleable;->Switch_switchTextAppearance:I
+Landroid/R$styleable;->Switch_textOff:I
+Landroid/R$styleable;->Switch_textOn:I
+Landroid/R$styleable;->Switch_thumb:I
+Landroid/R$styleable;->Switch_thumbTextPadding:I
+Landroid/R$styleable;->Switch_track:I
+Landroid/R$styleable;->TextAppearance:[I
+Landroid/R$styleable;->TextAppearance_textAllCaps:I
+Landroid/R$styleable;->TextAppearance_textColor:I
+Landroid/R$styleable;->TextAppearance_textColorHighlight:I
+Landroid/R$styleable;->TextAppearance_textColorHint:I
+Landroid/R$styleable;->TextAppearance_textColorLink:I
+Landroid/R$styleable;->TextAppearance_textSize:I
+Landroid/R$styleable;->TextAppearance_textStyle:I
+Landroid/R$styleable;->TextAppearance_typeface:I
+Landroid/R$styleable;->TextView:[I
+Landroid/R$styleable;->TextView_autoLink:I
+Landroid/R$styleable;->TextView_autoText:I
+Landroid/R$styleable;->TextView_bufferType:I
+Landroid/R$styleable;->TextView_capitalize:I
+Landroid/R$styleable;->TextView_cursorVisible:I
+Landroid/R$styleable;->TextView_digits:I
+Landroid/R$styleable;->TextView_drawableBottom:I
+Landroid/R$styleable;->TextView_drawableEnd:I
+Landroid/R$styleable;->TextView_drawableLeft:I
+Landroid/R$styleable;->TextView_drawablePadding:I
+Landroid/R$styleable;->TextView_drawableRight:I
+Landroid/R$styleable;->TextView_drawableStart:I
+Landroid/R$styleable;->TextView_drawableTop:I
+Landroid/R$styleable;->TextView_editable:I
+Landroid/R$styleable;->TextView_ellipsize:I
+Landroid/R$styleable;->TextView_ems:I
+Landroid/R$styleable;->TextView_enabled:I
+Landroid/R$styleable;->TextView_freezesText:I
+Landroid/R$styleable;->TextView_gravity:I
+Landroid/R$styleable;->TextView_height:I
+Landroid/R$styleable;->TextView_hint:I
+Landroid/R$styleable;->TextView_imeActionId:I
+Landroid/R$styleable;->TextView_imeActionLabel:I
+Landroid/R$styleable;->TextView_imeOptions:I
+Landroid/R$styleable;->TextView_includeFontPadding:I
+Landroid/R$styleable;->TextView_inputMethod:I
+Landroid/R$styleable;->TextView_inputType:I
+Landroid/R$styleable;->TextView_lines:I
+Landroid/R$styleable;->TextView_lineSpacingExtra:I
+Landroid/R$styleable;->TextView_lineSpacingMultiplier:I
+Landroid/R$styleable;->TextView_linksClickable:I
+Landroid/R$styleable;->TextView_marqueeRepeatLimit:I
+Landroid/R$styleable;->TextView_maxEms:I
+Landroid/R$styleable;->TextView_maxHeight:I
+Landroid/R$styleable;->TextView_maxLength:I
+Landroid/R$styleable;->TextView_maxLines:I
+Landroid/R$styleable;->TextView_maxWidth:I
+Landroid/R$styleable;->TextView_minEms:I
+Landroid/R$styleable;->TextView_minHeight:I
+Landroid/R$styleable;->TextView_minLines:I
+Landroid/R$styleable;->TextView_minWidth:I
+Landroid/R$styleable;->TextView_numeric:I
+Landroid/R$styleable;->TextView_password:I
+Landroid/R$styleable;->TextView_phoneNumber:I
+Landroid/R$styleable;->TextView_privateImeOptions:I
+Landroid/R$styleable;->TextView_scrollHorizontally:I
+Landroid/R$styleable;->TextView_selectAllOnFocus:I
+Landroid/R$styleable;->TextView_shadowColor:I
+Landroid/R$styleable;->TextView_shadowDx:I
+Landroid/R$styleable;->TextView_shadowDy:I
+Landroid/R$styleable;->TextView_shadowRadius:I
+Landroid/R$styleable;->TextView_singleLine:I
+Landroid/R$styleable;->TextView_text:I
+Landroid/R$styleable;->TextView_textAllCaps:I
+Landroid/R$styleable;->TextView_textAppearance:I
+Landroid/R$styleable;->TextView_textColor:I
+Landroid/R$styleable;->TextView_textColorHighlight:I
+Landroid/R$styleable;->TextView_textColorHint:I
+Landroid/R$styleable;->TextView_textColorLink:I
+Landroid/R$styleable;->TextView_textCursorDrawable:I
+Landroid/R$styleable;->TextView_textIsSelectable:I
+Landroid/R$styleable;->TextView_textScaleX:I
+Landroid/R$styleable;->TextView_textSelectHandle:I
+Landroid/R$styleable;->TextView_textSelectHandleLeft:I
+Landroid/R$styleable;->TextView_textSelectHandleRight:I
+Landroid/R$styleable;->TextView_textSize:I
+Landroid/R$styleable;->TextView_textStyle:I
+Landroid/R$styleable;->TextView_typeface:I
+Landroid/R$styleable;->TextView_width:I
+Landroid/R$styleable;->Theme:[I
+Landroid/R$styleable;->View:[I
+Landroid/R$styleable;->ViewDrawableStates:[I
+Landroid/R$styleable;->ViewGroup_Layout:[I
+Landroid/R$styleable;->ViewGroup_Layout_layout_height:I
+Landroid/R$styleable;->ViewGroup_Layout_layout_width:I
+Landroid/R$styleable;->ViewGroup_MarginLayout:[I
+Landroid/R$styleable;->ViewGroup_MarginLayout_layout_height:I
+Landroid/R$styleable;->ViewGroup_MarginLayout_layout_margin:I
+Landroid/R$styleable;->ViewGroup_MarginLayout_layout_marginBottom:I
+Landroid/R$styleable;->ViewGroup_MarginLayout_layout_marginLeft:I
+Landroid/R$styleable;->ViewGroup_MarginLayout_layout_marginRight:I
+Landroid/R$styleable;->ViewGroup_MarginLayout_layout_marginTop:I
+Landroid/R$styleable;->ViewGroup_MarginLayout_layout_width:I
+Landroid/R$styleable;->View_alpha:I
+Landroid/R$styleable;->View_background:I
+Landroid/R$styleable;->View_clickable:I
+Landroid/R$styleable;->View_contentDescription:I
+Landroid/R$styleable;->View_drawingCacheQuality:I
+Landroid/R$styleable;->View_duplicateParentState:I
+Landroid/R$styleable;->View_fadingEdge:I
+Landroid/R$styleable;->View_filterTouchesWhenObscured:I
+Landroid/R$styleable;->View_fitsSystemWindows:I
+Landroid/R$styleable;->View_focusable:I
+Landroid/R$styleable;->View_focusableInTouchMode:I
+Landroid/R$styleable;->View_hapticFeedbackEnabled:I
+Landroid/R$styleable;->View_id:I
+Landroid/R$styleable;->View_isScrollContainer:I
+Landroid/R$styleable;->View_keepScreenOn:I
+Landroid/R$styleable;->View_longClickable:I
+Landroid/R$styleable;->View_minHeight:I
+Landroid/R$styleable;->View_minWidth:I
+Landroid/R$styleable;->View_nextFocusDown:I
+Landroid/R$styleable;->View_nextFocusLeft:I
+Landroid/R$styleable;->View_nextFocusRight:I
+Landroid/R$styleable;->View_nextFocusUp:I
+Landroid/R$styleable;->View_onClick:I
+Landroid/R$styleable;->View_overScrollMode:I
+Landroid/R$styleable;->View_padding:I
+Landroid/R$styleable;->View_paddingBottom:I
+Landroid/R$styleable;->View_paddingEnd:I
+Landroid/R$styleable;->View_paddingLeft:I
+Landroid/R$styleable;->View_paddingRight:I
+Landroid/R$styleable;->View_paddingStart:I
+Landroid/R$styleable;->View_paddingTop:I
+Landroid/R$styleable;->View_rotation:I
+Landroid/R$styleable;->View_rotationX:I
+Landroid/R$styleable;->View_rotationY:I
+Landroid/R$styleable;->View_saveEnabled:I
+Landroid/R$styleable;->View_scaleX:I
+Landroid/R$styleable;->View_scaleY:I
+Landroid/R$styleable;->View_scrollbarDefaultDelayBeforeFade:I
+Landroid/R$styleable;->View_scrollbarFadeDuration:I
+Landroid/R$styleable;->View_scrollbars:I
+Landroid/R$styleable;->View_scrollbarSize:I
+Landroid/R$styleable;->View_scrollbarStyle:I
+Landroid/R$styleable;->View_scrollbarThumbHorizontal:I
+Landroid/R$styleable;->View_scrollbarThumbVertical:I
+Landroid/R$styleable;->View_scrollbarTrackHorizontal:I
+Landroid/R$styleable;->View_scrollbarTrackVertical:I
+Landroid/R$styleable;->View_scrollX:I
+Landroid/R$styleable;->View_scrollY:I
+Landroid/R$styleable;->View_soundEffectsEnabled:I
+Landroid/R$styleable;->View_tag:I
+Landroid/R$styleable;->View_transformPivotX:I
+Landroid/R$styleable;->View_transformPivotY:I
+Landroid/R$styleable;->View_translationX:I
+Landroid/R$styleable;->View_translationY:I
+Landroid/R$styleable;->View_visibility:I
+Landroid/R$styleable;->Window:[I
+Landroid/R$styleable;->Window_windowBackground:I
+Landroid/R$styleable;->Window_windowFrame:I
+Lcom/android/internal/R$anim;->fade_in:I
+Lcom/android/internal/R$array;->config_autoBrightnessLcdBacklightValues:I
+Lcom/android/internal/R$array;->config_autoBrightnessLevels:I
+Lcom/android/internal/R$array;->config_mobile_hotspot_provision_app:I
+Lcom/android/internal/R$array;->config_sms_enabled_locking_shift_tables:I
+Lcom/android/internal/R$array;->config_sms_enabled_single_shift_tables:I
+Lcom/android/internal/R$array;->config_tether_bluetooth_regexs:I
+Lcom/android/internal/R$array;->config_tether_upstream_types:I
+Lcom/android/internal/R$array;->config_tether_usb_regexs:I
+Lcom/android/internal/R$array;->config_tether_wifi_regexs:I
+Lcom/android/internal/R$array;->maps_starting_lat_lng:I
+Lcom/android/internal/R$array;->maps_starting_zoom:I
+Lcom/android/internal/R$attr;->actionBarStyle:I
+Lcom/android/internal/R$attr;->buttonStyle:I
+Lcom/android/internal/R$attr;->description:I
+Lcom/android/internal/R$attr;->editTextStyle:I
+Lcom/android/internal/R$attr;->mapViewStyle:I
+Lcom/android/internal/R$attr;->popupWindowStyle:I
+Lcom/android/internal/R$attr;->state_above_anchor:I
+Lcom/android/internal/R$attr;->state_focused:I
+Lcom/android/internal/R$attr;->state_pressed:I
+Lcom/android/internal/R$attr;->state_selected:I
+Lcom/android/internal/R$attr;->switchStyle:I
+Lcom/android/internal/R$attr;->text:I
+Lcom/android/internal/R$attr;->title:I
+Lcom/android/internal/R$attr;->webViewStyle:I
+Lcom/android/internal/R$bool;-><init>()V
+Lcom/android/internal/R$bool;->config_automatic_brightness_available:I
+Lcom/android/internal/R$bool;->config_intrusiveNotificationLed:I
+Lcom/android/internal/R$bool;->config_mms_content_disposition_support:I
+Lcom/android/internal/R$bool;->config_showNavigationBar:I
+Lcom/android/internal/R$dimen;-><init>()V
+Lcom/android/internal/R$dimen;->item_touch_helper_max_drag_scroll_per_frame:I
+Lcom/android/internal/R$dimen;->navigation_bar_height:I
+Lcom/android/internal/R$dimen;->navigation_bar_height_landscape:I
+Lcom/android/internal/R$dimen;->navigation_bar_width:I
+Lcom/android/internal/R$dimen;->status_bar_height:I
+Lcom/android/internal/R$dimen;->toast_y_offset:I
+Lcom/android/internal/R$drawable;->btn_check_off:I
+Lcom/android/internal/R$drawable;->compass_arrow:I
+Lcom/android/internal/R$drawable;->compass_base:I
+Lcom/android/internal/R$drawable;->ic_maps_indicator_current_position_anim:I
+Lcom/android/internal/R$drawable;->ic_menu_close_clear_cancel:I
+Lcom/android/internal/R$drawable;->loading_tile_android:I
+Lcom/android/internal/R$drawable;->maps_google_logo:I
+Lcom/android/internal/R$drawable;->no_tile_256:I
+Lcom/android/internal/R$drawable;->reticle:I
+Lcom/android/internal/R$drawable;->stat_sys_download:I
+Lcom/android/internal/R$fraction;->config_autoBrightnessAdjustmentMaxGamma:I
+Lcom/android/internal/R$id;->account_name:I
+Lcom/android/internal/R$id;->account_type:I
+Lcom/android/internal/R$id;->alertTitle:I
+Lcom/android/internal/R$id;->allow_button:I
+Lcom/android/internal/R$id;->amPm:I
+Lcom/android/internal/R$id;->authtoken_type:I
+Lcom/android/internal/R$id;->background:I
+Lcom/android/internal/R$id;->back_button:I
+Lcom/android/internal/R$id;->body:I
+Lcom/android/internal/R$id;->buttonPanel:I
+Lcom/android/internal/R$id;->camera:I
+Lcom/android/internal/R$id;->cancel:I
+Lcom/android/internal/R$id;->clip_children_set_tag:I
+Lcom/android/internal/R$id;->clip_children_tag:I
+Lcom/android/internal/R$id;->clip_to_padding_tag:I
+Lcom/android/internal/R$id;->closeButton:I
+Lcom/android/internal/R$id;->content:I
+Lcom/android/internal/R$id;->contentPanel:I
+Lcom/android/internal/R$id;->custom:I
+Lcom/android/internal/R$id;->customPanel:I
+Lcom/android/internal/R$id;->datePicker:I
+Lcom/android/internal/R$id;->day:I
+Lcom/android/internal/R$id;->deny_button:I
+Lcom/android/internal/R$id;->description:I
+Lcom/android/internal/R$id;->edit:I
+Lcom/android/internal/R$id;->edittext_container:I
+Lcom/android/internal/R$id;->find_next:I
+Lcom/android/internal/R$id;->find_prev:I
+Lcom/android/internal/R$id;->icon:I
+Lcom/android/internal/R$id;->keyboard:I
+Lcom/android/internal/R$id;->keyboardView:I
+Lcom/android/internal/R$id;->line1:I
+Lcom/android/internal/R$id;->list_item:I
+Lcom/android/internal/R$id;->matches:I
+Lcom/android/internal/R$id;->mediacontroller_progress:I
+Lcom/android/internal/R$id;->media_actions:I
+Lcom/android/internal/R$id;->message:I
+Lcom/android/internal/R$id;->minute:I
+Lcom/android/internal/R$id;->month:I
+Lcom/android/internal/R$id;->name:I
+Lcom/android/internal/R$id;->notification_header:I
+Lcom/android/internal/R$id;->ok:I
+Lcom/android/internal/R$id;->overlay:I
+Lcom/android/internal/R$id;->packages_list:I
+Lcom/android/internal/R$id;->package_label:I
+Lcom/android/internal/R$id;->parentPanel:I
+Lcom/android/internal/R$id;->pause:I
+Lcom/android/internal/R$id;->pending_intent_tag:I
+Lcom/android/internal/R$id;->progress:I
+Lcom/android/internal/R$id;->redo:I
+Lcom/android/internal/R$id;->remote_input_tag:I
+Lcom/android/internal/R$id;->right_icon:I
+Lcom/android/internal/R$id;->search_src_text:I
+Lcom/android/internal/R$id;->share:I
+Lcom/android/internal/R$id;->shortcut:I
+Lcom/android/internal/R$id;->status_bar_latest_event_content:I
+Lcom/android/internal/R$id;->tabcontent:I
+Lcom/android/internal/R$id;->tabs:I
+Lcom/android/internal/R$id;->text1:I
+Lcom/android/internal/R$id;->text2:I
+Lcom/android/internal/R$id;->text:I
+Lcom/android/internal/R$id;->time:I
+Lcom/android/internal/R$id;->timePicker:I
+Lcom/android/internal/R$id;->time_current:I
+Lcom/android/internal/R$id;->title:I
+Lcom/android/internal/R$id;->titleDivider:I
+Lcom/android/internal/R$id;->titleDividerTop:I
+Lcom/android/internal/R$id;->title_container:I
+Lcom/android/internal/R$id;->title_template:I
+Lcom/android/internal/R$id;->topPanel:I
+Lcom/android/internal/R$id;->up:I
+Lcom/android/internal/R$id;->year:I
+Lcom/android/internal/R$id;->zoomControls:I
+Lcom/android/internal/R$id;->zoomMagnify:I
+Lcom/android/internal/R$integer;->config_screenBrightnessDim:I
+Lcom/android/internal/R$integer;->config_screenBrightnessSettingMaximum:I
+Lcom/android/internal/R$integer;->config_screenBrightnessSettingMinimum:I
+Lcom/android/internal/R$integer;->config_toastDefaultGravity:I
+Lcom/android/internal/R$interpolator;->accelerate_cubic:I
+Lcom/android/internal/R$interpolator;->decelerate_cubic:I
+Lcom/android/internal/R$layout;->notification_template_material_base:I
+Lcom/android/internal/R$layout;->preference_header_item:I
+Lcom/android/internal/R$layout;->screen_title:I
+Lcom/android/internal/R$layout;->select_dialog:I
+Lcom/android/internal/R$layout;->select_dialog_multichoice:I
+Lcom/android/internal/R$layout;->select_dialog_singlechoice:I
+Lcom/android/internal/R$layout;->webview_find:I
+Lcom/android/internal/R$layout;->zoom_magnify:I
+Lcom/android/internal/R$plurals;->matches_found:I
+Lcom/android/internal/R$raw;->loaderror:I
+Lcom/android/internal/R$raw;->nodomain:I
+Lcom/android/internal/R$string;->byteShort:I
+Lcom/android/internal/R$string;->cancel:I
+Lcom/android/internal/R$string;->enable_explore_by_touch_warning_title:I
+Lcom/android/internal/R$string;->gigabyteShort:I
+Lcom/android/internal/R$string;->kilobyteShort:I
+Lcom/android/internal/R$string;->map:I
+Lcom/android/internal/R$string;->megabyteShort:I
+Lcom/android/internal/R$string;->notification_title:I
+Lcom/android/internal/R$string;->no_matches:I
+Lcom/android/internal/R$string;->ok:I
+Lcom/android/internal/R$string;->petabyteShort:I
+Lcom/android/internal/R$string;->redo:I
+Lcom/android/internal/R$string;->share:I
+Lcom/android/internal/R$string;->terabyteShort:I
+Lcom/android/internal/R$string;->whichApplication:I
+Lcom/android/internal/R$style;->Animation_DropDownDown:I
+Lcom/android/internal/R$style;->Animation_DropDownUp:I
+Lcom/android/internal/R$style;->Animation_PopupWindow:I
+Lcom/android/internal/R$style;->Theme:I
+Lcom/android/internal/R$style;->Theme_Dialog_Alert:I
+Lcom/android/internal/R$style;->Theme_Holo_Light:I
+Lcom/android/internal/R$style;->Theme_Light:I
+Lcom/android/internal/R$styleable;-><init>()V
+Lcom/android/internal/R$styleable;->AbsListView:[I
+Lcom/android/internal/R$styleable;->AbsListView_cacheColorHint:I
+Lcom/android/internal/R$styleable;->AbsListView_choiceMode:I
+Lcom/android/internal/R$styleable;->AbsListView_drawSelectorOnTop:I
+Lcom/android/internal/R$styleable;->AbsListView_fastScrollAlwaysVisible:I
+Lcom/android/internal/R$styleable;->AbsListView_fastScrollEnabled:I
+Lcom/android/internal/R$styleable;->AbsListView_listSelector:I
+Lcom/android/internal/R$styleable;->AbsListView_scrollingCache:I
+Lcom/android/internal/R$styleable;->AbsListView_smoothScrollbar:I
+Lcom/android/internal/R$styleable;->AbsListView_stackFromBottom:I
+Lcom/android/internal/R$styleable;->AbsListView_textFilterEnabled:I
+Lcom/android/internal/R$styleable;->AbsListView_transcriptMode:I
+Lcom/android/internal/R$styleable;->AbsSpinner:[I
+Lcom/android/internal/R$styleable;->AccountAuthenticator:[I
+Lcom/android/internal/R$styleable;->AccountAuthenticator_accountPreferences:I
+Lcom/android/internal/R$styleable;->AccountAuthenticator_accountType:I
+Lcom/android/internal/R$styleable;->AccountAuthenticator_customTokens:I
+Lcom/android/internal/R$styleable;->AccountAuthenticator_icon:I
+Lcom/android/internal/R$styleable;->AccountAuthenticator_label:I
+Lcom/android/internal/R$styleable;->AccountAuthenticator_smallIcon:I
+Lcom/android/internal/R$styleable;->ActionMode:[I
+Lcom/android/internal/R$styleable;->AdapterViewAnimator:[I
+Lcom/android/internal/R$styleable;->AdapterViewFlipper:[I
+Lcom/android/internal/R$styleable;->AlertDialog:[I
+Lcom/android/internal/R$styleable;->AnalogClock:[I
+Lcom/android/internal/R$styleable;->AndroidManifest:[I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity:[I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_allowTaskReparenting:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_configChanges:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_description:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_enabled:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_excludeFromRecents:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_exported:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_hardwareAccelerated:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_icon:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_immersive:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_label:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_launchMode:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_logo:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_noHistory:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_permission:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_process:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_screenOrientation:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_taskAffinity:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_theme:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_uiOptions:I
+Lcom/android/internal/R$styleable;->AndroidManifestActivity_windowSoftInputMode:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication:[I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_enabled:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_hardwareAccelerated:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_label:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_largeHeap:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_permission:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_process:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_supportsRtl:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_theme:I
+Lcom/android/internal/R$styleable;->AndroidManifestApplication_uiOptions:I
+Lcom/android/internal/R$styleable;->AndroidManifestData:[I
+Lcom/android/internal/R$styleable;->AndroidManifestIntentFilter:[I
+Lcom/android/internal/R$styleable;->AndroidManifestIntentFilter_priority:I
+Lcom/android/internal/R$styleable;->AndroidManifestMetaData:[I
+Lcom/android/internal/R$styleable;->AndroidManifestMetaData_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestMetaData_resource:I
+Lcom/android/internal/R$styleable;->AndroidManifestMetaData_value:I
+Lcom/android/internal/R$styleable;->AndroidManifestPackageVerifier:[I
+Lcom/android/internal/R$styleable;->AndroidManifestProvider:[I
+Lcom/android/internal/R$styleable;->AndroidManifestService:[I
+Lcom/android/internal/R$styleable;->AndroidManifestService_enabled:I
+Lcom/android/internal/R$styleable;->AndroidManifestService_exported:I
+Lcom/android/internal/R$styleable;->AndroidManifestService_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestService_permission:I
+Lcom/android/internal/R$styleable;->AndroidManifestService_process:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesLibrary:[I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesPermission:[I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesPermission_name:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesSdk:[I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesSdk_minSdkVersion:I
+Lcom/android/internal/R$styleable;->AndroidManifestUsesSdk_targetSdkVersion:I
+Lcom/android/internal/R$styleable;->AndroidManifest_installLocation:I
+Lcom/android/internal/R$styleable;->AndroidManifest_sharedUserId:I
+Lcom/android/internal/R$styleable;->AndroidManifest_versionCode:I
+Lcom/android/internal/R$styleable;->AndroidManifest_versionName:I
+Lcom/android/internal/R$styleable;->AutoCompleteTextView:[I
+Lcom/android/internal/R$styleable;->CheckBoxPreference:[I
+Lcom/android/internal/R$styleable;->CheckBoxPreference_disableDependentsState:I
+Lcom/android/internal/R$styleable;->CheckBoxPreference_summaryOff:I
+Lcom/android/internal/R$styleable;->CheckBoxPreference_summaryOn:I
+Lcom/android/internal/R$styleable;->CheckedTextView:[I
+Lcom/android/internal/R$styleable;->CheckedTextView_checked:I
+Lcom/android/internal/R$styleable;->CheckedTextView_checkMark:I
+Lcom/android/internal/R$styleable;->CompoundButton:[I
+Lcom/android/internal/R$styleable;->CompoundButton_button:I
+Lcom/android/internal/R$styleable;->CompoundButton_checked:I
+Lcom/android/internal/R$styleable;->ContactsDataKind:[I
+Lcom/android/internal/R$styleable;->DatePicker:[I
+Lcom/android/internal/R$styleable;->DialogPreference:[I
+Lcom/android/internal/R$styleable;->DialogPreference_dialogTitle:I
+Lcom/android/internal/R$styleable;->Dream:[I
+Lcom/android/internal/R$styleable;->EdgeEffect:[I
+Lcom/android/internal/R$styleable;->EdgeEffect_colorEdgeEffect:I
+Lcom/android/internal/R$styleable;->FastScroll:[I
+Lcom/android/internal/R$styleable;->FrameLayout:[I
+Lcom/android/internal/R$styleable;->FrameLayout_Layout:[I
+Lcom/android/internal/R$styleable;->Gallery:[I
+Lcom/android/internal/R$styleable;->GridView:[I
+Lcom/android/internal/R$styleable;->IconMenuView:[I
+Lcom/android/internal/R$styleable;->ImageView:[I
+Lcom/android/internal/R$styleable;->ImageView_scaleType:I
+Lcom/android/internal/R$styleable;->ImageView_src:I
+Lcom/android/internal/R$styleable;->Keyboard:[I
+Lcom/android/internal/R$styleable;->KeyboardView:[I
+Lcom/android/internal/R$styleable;->Keyboard_Key:[I
+Lcom/android/internal/R$styleable;->Keyboard_Row:[I
+Lcom/android/internal/R$styleable;->ListPreference:[I
+Lcom/android/internal/R$styleable;->ListPreference_entries:I
+Lcom/android/internal/R$styleable;->ListView:[I
+Lcom/android/internal/R$styleable;->ListView_divider:I
+Lcom/android/internal/R$styleable;->ListView_dividerHeight:I
+Lcom/android/internal/R$styleable;->ListView_entries:I
+Lcom/android/internal/R$styleable;->ListView_footerDividersEnabled:I
+Lcom/android/internal/R$styleable;->ListView_headerDividersEnabled:I
+Lcom/android/internal/R$styleable;->ListView_overScrollFooter:I
+Lcom/android/internal/R$styleable;->ListView_overScrollHeader:I
+Lcom/android/internal/R$styleable;->MapView:[I
+Lcom/android/internal/R$styleable;->MapView_apiKey:I
+Lcom/android/internal/R$styleable;->MenuGroup:[I
+Lcom/android/internal/R$styleable;->MenuItem:[I
+Lcom/android/internal/R$styleable;->NumberPicker:[I
+Lcom/android/internal/R$styleable;->PopupWindow:[I
+Lcom/android/internal/R$styleable;->PopupWindow_popupAnimationStyle:I
+Lcom/android/internal/R$styleable;->PopupWindow_popupBackground:I
+Lcom/android/internal/R$styleable;->Preference:[I
+Lcom/android/internal/R$styleable;->PreferenceGroup:[I
+Lcom/android/internal/R$styleable;->PreferenceGroup_orderingFromXml:I
+Lcom/android/internal/R$styleable;->Preference_defaultValue:I
+Lcom/android/internal/R$styleable;->Preference_dependency:I
+Lcom/android/internal/R$styleable;->Preference_enabled:I
+Lcom/android/internal/R$styleable;->Preference_fragment:I
+Lcom/android/internal/R$styleable;->Preference_icon:I
+Lcom/android/internal/R$styleable;->Preference_key:I
+Lcom/android/internal/R$styleable;->Preference_layout:I
+Lcom/android/internal/R$styleable;->Preference_order:I
+Lcom/android/internal/R$styleable;->Preference_persistent:I
+Lcom/android/internal/R$styleable;->Preference_selectable:I
+Lcom/android/internal/R$styleable;->Preference_shouldDisableView:I
+Lcom/android/internal/R$styleable;->Preference_summary:I
+Lcom/android/internal/R$styleable;->Preference_title:I
+Lcom/android/internal/R$styleable;->Preference_widgetLayout:I
+Lcom/android/internal/R$styleable;->ProgressBar:[I
+Lcom/android/internal/R$styleable;->QuickContactBadge:[I
+Lcom/android/internal/R$styleable;->RingtonePreference:[I
+Lcom/android/internal/R$styleable;->ScrollView:[I
+Lcom/android/internal/R$styleable;->ScrollView_fillViewport:I
+Lcom/android/internal/R$styleable;->SelectionModeDrawables:[I
+Lcom/android/internal/R$styleable;->Switch:[I
+Lcom/android/internal/R$styleable;->SwitchPreference:[I
+Lcom/android/internal/R$styleable;->SyncAdapter:[I
+Lcom/android/internal/R$styleable;->SyncAdapter_accountType:I
+Lcom/android/internal/R$styleable;->SyncAdapter_allowParallelSyncs:I
+Lcom/android/internal/R$styleable;->SyncAdapter_contentAuthority:I
+Lcom/android/internal/R$styleable;->SyncAdapter_isAlwaysSyncable:I
+Lcom/android/internal/R$styleable;->SyncAdapter_settingsActivity:I
+Lcom/android/internal/R$styleable;->SyncAdapter_supportsUploading:I
+Lcom/android/internal/R$styleable;->SyncAdapter_userVisible:I
+Lcom/android/internal/R$styleable;->TabWidget:[I
+Lcom/android/internal/R$styleable;->TextAppearance:[I
+Lcom/android/internal/R$styleable;->TextAppearance_fontFamily:I
+Lcom/android/internal/R$styleable;->TextAppearance_textAllCaps:I
+Lcom/android/internal/R$styleable;->TextAppearance_textColor:I
+Lcom/android/internal/R$styleable;->TextAppearance_textColorHighlight:I
+Lcom/android/internal/R$styleable;->TextAppearance_textColorHint:I
+Lcom/android/internal/R$styleable;->TextAppearance_textColorLink:I
+Lcom/android/internal/R$styleable;->TextAppearance_textSize:I
+Lcom/android/internal/R$styleable;->TextAppearance_textStyle:I
+Lcom/android/internal/R$styleable;->TextAppearance_typeface:I
+Lcom/android/internal/R$styleable;->TextClock:[I
+Lcom/android/internal/R$styleable;->TextView:[I
+Lcom/android/internal/R$styleable;->TextViewAppearance:[I
+Lcom/android/internal/R$styleable;->TextViewAppearance_textAppearance:I
+Lcom/android/internal/R$styleable;->TextView_autoLink:I
+Lcom/android/internal/R$styleable;->TextView_autoText:I
+Lcom/android/internal/R$styleable;->TextView_bufferType:I
+Lcom/android/internal/R$styleable;->TextView_capitalize:I
+Lcom/android/internal/R$styleable;->TextView_cursorVisible:I
+Lcom/android/internal/R$styleable;->TextView_digits:I
+Lcom/android/internal/R$styleable;->TextView_drawableBottom:I
+Lcom/android/internal/R$styleable;->TextView_drawableEnd:I
+Lcom/android/internal/R$styleable;->TextView_drawableLeft:I
+Lcom/android/internal/R$styleable;->TextView_drawablePadding:I
+Lcom/android/internal/R$styleable;->TextView_drawableRight:I
+Lcom/android/internal/R$styleable;->TextView_drawableStart:I
+Lcom/android/internal/R$styleable;->TextView_drawableTop:I
+Lcom/android/internal/R$styleable;->TextView_editable:I
+Lcom/android/internal/R$styleable;->TextView_editorExtras:I
+Lcom/android/internal/R$styleable;->TextView_ellipsize:I
+Lcom/android/internal/R$styleable;->TextView_ems:I
+Lcom/android/internal/R$styleable;->TextView_enabled:I
+Lcom/android/internal/R$styleable;->TextView_freezesText:I
+Lcom/android/internal/R$styleable;->TextView_gravity:I
+Lcom/android/internal/R$styleable;->TextView_height:I
+Lcom/android/internal/R$styleable;->TextView_hint:I
+Lcom/android/internal/R$styleable;->TextView_imeActionId:I
+Lcom/android/internal/R$styleable;->TextView_imeActionLabel:I
+Lcom/android/internal/R$styleable;->TextView_imeOptions:I
+Lcom/android/internal/R$styleable;->TextView_includeFontPadding:I
+Lcom/android/internal/R$styleable;->TextView_inputMethod:I
+Lcom/android/internal/R$styleable;->TextView_inputType:I
+Lcom/android/internal/R$styleable;->TextView_lines:I
+Lcom/android/internal/R$styleable;->TextView_lineSpacingExtra:I
+Lcom/android/internal/R$styleable;->TextView_lineSpacingMultiplier:I
+Lcom/android/internal/R$styleable;->TextView_linksClickable:I
+Lcom/android/internal/R$styleable;->TextView_marqueeRepeatLimit:I
+Lcom/android/internal/R$styleable;->TextView_maxEms:I
+Lcom/android/internal/R$styleable;->TextView_maxHeight:I
+Lcom/android/internal/R$styleable;->TextView_maxLength:I
+Lcom/android/internal/R$styleable;->TextView_maxLines:I
+Lcom/android/internal/R$styleable;->TextView_maxWidth:I
+Lcom/android/internal/R$styleable;->TextView_minEms:I
+Lcom/android/internal/R$styleable;->TextView_minHeight:I
+Lcom/android/internal/R$styleable;->TextView_minLines:I
+Lcom/android/internal/R$styleable;->TextView_minWidth:I
+Lcom/android/internal/R$styleable;->TextView_numeric:I
+Lcom/android/internal/R$styleable;->TextView_password:I
+Lcom/android/internal/R$styleable;->TextView_phoneNumber:I
+Lcom/android/internal/R$styleable;->TextView_privateImeOptions:I
+Lcom/android/internal/R$styleable;->TextView_scrollHorizontally:I
+Lcom/android/internal/R$styleable;->TextView_selectAllOnFocus:I
+Lcom/android/internal/R$styleable;->TextView_shadowColor:I
+Lcom/android/internal/R$styleable;->TextView_shadowDx:I
+Lcom/android/internal/R$styleable;->TextView_shadowDy:I
+Lcom/android/internal/R$styleable;->TextView_shadowRadius:I
+Lcom/android/internal/R$styleable;->TextView_singleLine:I
+Lcom/android/internal/R$styleable;->TextView_text:I
+Lcom/android/internal/R$styleable;->TextView_textAllCaps:I
+Lcom/android/internal/R$styleable;->TextView_textAppearance:I
+Lcom/android/internal/R$styleable;->TextView_textColor:I
+Lcom/android/internal/R$styleable;->TextView_textColorHighlight:I
+Lcom/android/internal/R$styleable;->TextView_textColorHint:I
+Lcom/android/internal/R$styleable;->TextView_textColorLink:I
+Lcom/android/internal/R$styleable;->TextView_textCursorDrawable:I
+Lcom/android/internal/R$styleable;->TextView_textEditSuggestionItemLayout:I
+Lcom/android/internal/R$styleable;->TextView_textIsSelectable:I
+Lcom/android/internal/R$styleable;->TextView_textScaleX:I
+Lcom/android/internal/R$styleable;->TextView_textSelectHandle:I
+Lcom/android/internal/R$styleable;->TextView_textSelectHandleLeft:I
+Lcom/android/internal/R$styleable;->TextView_textSelectHandleRight:I
+Lcom/android/internal/R$styleable;->TextView_textSize:I
+Lcom/android/internal/R$styleable;->TextView_textStyle:I
+Lcom/android/internal/R$styleable;->TextView_typeface:I
+Lcom/android/internal/R$styleable;->TextView_width:I
+Lcom/android/internal/R$styleable;->Theme:[I
+Lcom/android/internal/R$styleable;->TwoLineListItem:[I
+Lcom/android/internal/R$styleable;->View:[I
+Lcom/android/internal/R$styleable;->ViewAnimator:[I
+Lcom/android/internal/R$styleable;->ViewFlipper:[I
+Lcom/android/internal/R$styleable;->ViewGroup_Layout:[I
+Lcom/android/internal/R$styleable;->ViewGroup_Layout_layout_height:I
+Lcom/android/internal/R$styleable;->ViewGroup_Layout_layout_width:I
+Lcom/android/internal/R$styleable;->ViewStub:[I
+Lcom/android/internal/R$styleable;->ViewStub_inflatedId:I
+Lcom/android/internal/R$styleable;->ViewStub_layout:I
+Lcom/android/internal/R$styleable;->View_background:I
+Lcom/android/internal/R$styleable;->View_clickable:I
+Lcom/android/internal/R$styleable;->View_focusable:I
+Lcom/android/internal/R$styleable;->View_id:I
+Lcom/android/internal/R$styleable;->View_longClickable:I
+Lcom/android/internal/R$styleable;->WallpaperPreviewInfo:[I
+Lcom/android/internal/R$styleable;->Window:[I
+Lcom/android/internal/R$styleable;->Window_windowActionBarFullscreenDecorLayout:I
+Lcom/android/internal/R$styleable;->Window_windowBackground:I
+Lcom/android/internal/R$styleable;->Window_windowFullscreen:I
+Lcom/android/internal/R$styleable;->Window_windowIsFloating:I
+Lcom/android/internal/R$styleable;->Window_windowIsTranslucent:I
+Lcom/android/internal/R$styleable;->Window_windowShowWallpaper:I
+Lcom/android/internal/R$xml;->power_profile:I
diff --git a/config/hiddenapi-greylist.txt b/config/hiddenapi-greylist.txt
index 2611e96..52caa42 100644
--- a/config/hiddenapi-greylist.txt
+++ b/config/hiddenapi-greylist.txt
@@ -1,6 +1,4 @@
 Landroid/accessibilityservice/IAccessibilityServiceConnection$Stub;->asInterface(Landroid/os/IBinder;)Landroid/accessibilityservice/IAccessibilityServiceConnection;
-Landroid/accounts/AccountManager$AmsTask;-><init>(Landroid/accounts/AccountManager;Landroid/app/Activity;Landroid/os/Handler;Landroid/accounts/AccountManagerCallback;)V
-Landroid/accounts/AccountManager$Future2Task;-><init>(Landroid/accounts/AccountManager;Landroid/os/Handler;Landroid/accounts/AccountManagerCallback;)V
 Landroid/accounts/IAccountAuthenticator$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/accounts/IAccountAuthenticator$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/accounts/IAccountAuthenticator$Stub;-><init>()V
@@ -16,10 +14,6 @@
 Landroid/accounts/IAccountManagerResponse$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/accounts/IAccountManagerResponse$Stub;-><init>()V
 Landroid/accounts/IAccountManagerResponse$Stub;->asInterface(Landroid/os/IBinder;)Landroid/accounts/IAccountManagerResponse;
-Landroid/app/ActivityManagerNative;-><init>()V
-Landroid/app/ActivityThread$AppBindData;-><init>()V
-Landroid/app/ActivityThread$CreateServiceData;-><init>()V
-Landroid/app/ActivityThread$H;-><init>(Landroid/app/ActivityThread;)V
 Landroid/app/admin/IDevicePolicyManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/admin/IDevicePolicyManager;
 Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_packageHasActiveAdmins:I
 Landroid/app/admin/IDevicePolicyManager$Stub;->TRANSACTION_removeActiveAdmin:I
@@ -35,8 +29,6 @@
 Landroid/app/IActivityManager$Stub$Proxy;->setActivityController(Landroid/app/IActivityController;Z)V
 Landroid/app/IActivityManager$Stub$Proxy;->updatePersistentConfiguration(Landroid/content/res/Configuration;)V
 Landroid/app/IActivityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IActivityManager;
-Landroid/app/IActivityManager;->finishReceiver(Landroid/os/IBinder;ILjava/lang/String;Landroid/os/Bundle;ZI)V
-Landroid/app/IActivityManager;->serviceDoneExecuting(Landroid/os/IBinder;III)V
 Landroid/app/IAlarmManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/app/IAlarmManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/IAlarmManager;
 Landroid/app/IAlarmManager$Stub;->TRANSACTION_remove:I
@@ -73,56 +65,25 @@
 Landroid/app/job/IJobService$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Landroid/app/job/IJobService$Stub;-><init>()V
 Landroid/app/job/IJobService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/job/IJobService;
-Landroid/app/PackageDeleteObserver;-><init>()V
-Landroid/app/PackageInstallObserver;-><init>()V
-Landroid/app/ResourcesManager$ActivityResources;-><init>()V
-Landroid/app/ResourcesManager;-><init>()V
-Landroid/app/TaskStackListener;-><init>()V
 Landroid/app/trust/ITrustManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-Landroid/app/UiAutomationConnection;-><init>()V
 Landroid/app/usage/IUsageStatsManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/usage/IUsageStatsManager;
-Landroid/app/UserSwitchObserver;-><init>()V
 Landroid/bluetooth/IBluetooth$Stub$Proxy;->getAddress()Ljava/lang/String;
 Landroid/bluetooth/IBluetooth$Stub$Proxy;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
 Landroid/bluetooth/IBluetooth$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetooth;
 Landroid/bluetooth/IBluetooth$Stub;->TRANSACTION_enable:I
-Landroid/bluetooth/IBluetooth;->fetchRemoteUuids(Landroid/bluetooth/BluetoothDevice;)Z
-Landroid/bluetooth/IBluetooth;->getAddress()Ljava/lang/String;
-Landroid/bluetooth/IBluetooth;->getRemoteAlias(Landroid/bluetooth/BluetoothDevice;)Ljava/lang/String;
-Landroid/bluetooth/IBluetooth;->isEnabled()Z
-Landroid/bluetooth/IBluetooth;->sendConnectionStateChange(Landroid/bluetooth/BluetoothDevice;III)V
 Landroid/bluetooth/IBluetoothA2dp$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothA2dp;
-Landroid/bluetooth/IBluetoothA2dp;->connect(Landroid/bluetooth/BluetoothDevice;)Z
-Landroid/bluetooth/IBluetoothA2dp;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
-Landroid/bluetooth/IBluetoothA2dp;->getConnectedDevices()Ljava/util/List;
-Landroid/bluetooth/IBluetoothA2dp;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
-Landroid/bluetooth/IBluetoothA2dp;->getDevicesMatchingConnectionStates([I)Ljava/util/List;
-Landroid/bluetooth/IBluetoothA2dp;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
 Landroid/bluetooth/IBluetoothCallback$Stub;-><init>()V
-Landroid/bluetooth/IBluetoothGatt;->registerClient(Landroid/os/ParcelUuid;Landroid/bluetooth/IBluetoothGattCallback;)V
-Landroid/bluetooth/IBluetoothGatt;->unregisterClient(I)V
 Landroid/bluetooth/IBluetoothGattCallback$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothGattCallback$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothGattCallback;
 Landroid/bluetooth/IBluetoothHeadset$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothHeadset;
-Landroid/bluetooth/IBluetoothHeadset;->connect(Landroid/bluetooth/BluetoothDevice;)Z
-Landroid/bluetooth/IBluetoothHeadset;->disconnect(Landroid/bluetooth/BluetoothDevice;)Z
-Landroid/bluetooth/IBluetoothHeadset;->getConnectedDevices()Ljava/util/List;
-Landroid/bluetooth/IBluetoothHeadset;->getConnectionState(Landroid/bluetooth/BluetoothDevice;)I
-Landroid/bluetooth/IBluetoothHeadset;->getPriority(Landroid/bluetooth/BluetoothDevice;)I
-Landroid/bluetooth/IBluetoothHeadset;->setPriority(Landroid/bluetooth/BluetoothDevice;I)Z
 Landroid/bluetooth/IBluetoothHidDeviceCallback$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/bluetooth/IBluetoothManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothManager;
 Landroid/bluetooth/IBluetoothManager$Stub;->TRANSACTION_enable:I
-Landroid/bluetooth/IBluetoothManager;->getBluetoothGatt()Landroid/bluetooth/IBluetoothGatt;
-Landroid/bluetooth/IBluetoothManager;->registerStateChangeCallback(Landroid/bluetooth/IBluetoothStateChangeCallback;)V
-Landroid/bluetooth/IBluetoothManager;->unregisterStateChangeCallback(Landroid/bluetooth/IBluetoothStateChangeCallback;)V
 Landroid/bluetooth/IBluetoothManagerCallback$Stub;-><init>()V
 Landroid/bluetooth/IBluetoothPbap$Stub;->asInterface(Landroid/os/IBinder;)Landroid/bluetooth/IBluetoothPbap;
 Landroid/bluetooth/IBluetoothStateChangeCallback$Stub;-><init>()V
 Landroid/companion/ICompanionDeviceDiscoveryService$Stub;-><init>()V
-Landroid/companion/ICompanionDeviceDiscoveryServiceCallback;->onDeviceSelected(Ljava/lang/String;ILjava/lang/String;)V
-Landroid/companion/ICompanionDeviceDiscoveryServiceCallback;->onDeviceSelectionCancel()V
 Landroid/content/IClipboard$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/IClipboard$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/IClipboard;
 Landroid/content/IContentService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
@@ -189,14 +150,8 @@
 Landroid/content/pm/IPackageStatsObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageStatsObserver;
 Landroid/content/pm/IShortcutService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/content/pm/IShortcutService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/content/pm/IShortcutService;
-Landroid/content/res/ConfigurationBoundResourceCache;-><init>()V
-Landroid/content/res/DrawableCache;-><init>()V
-Landroid/content/UndoManager;-><init>()V
 Landroid/database/IContentObserver$Stub;-><init>()V
 Landroid/database/IContentObserver$Stub;->asInterface(Landroid/os/IBinder;)Landroid/database/IContentObserver;
-Landroid/database/IContentObserver;->onChange(ZLandroid/net/Uri;I)V
-Landroid/database/sqlite/SQLiteConnectionPool;->$assertionsDisabled:Z
-Landroid/database/sqlite/SQLiteDatabase;->$assertionsDisabled:Z
 Landroid/hardware/display/IDisplayManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/display/IDisplayManager;
 Landroid/hardware/fingerprint/IFingerprintService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/hardware/fingerprint/IFingerprintService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/fingerprint/IFingerprintService;
@@ -221,7 +176,6 @@
 Landroid/location/ILocationManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/location/ILocationManager;
 Landroid/location/ILocationManager$Stub;->TRANSACTION_getAllProviders:I
 Landroid/location/INetInitiatedListener$Stub;-><init>()V
-Landroid/location/LocationManager$ListenerTransport;-><init>(Landroid/location/LocationManager;Landroid/location/LocationListener;Landroid/os/Looper;)V
 Landroid/Manifest$permission;->CAPTURE_SECURE_VIDEO_OUTPUT:Ljava/lang/String;
 Landroid/Manifest$permission;->CAPTURE_VIDEO_OUTPUT:Ljava/lang/String;
 Landroid/Manifest$permission;->READ_FRAME_BUFFER:Ljava/lang/String;
@@ -232,13 +186,9 @@
 Landroid/media/IMediaRouterService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IMediaRouterService;
 Landroid/media/IMediaScannerListener$Stub;-><init>()V
 Landroid/media/IMediaScannerService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IMediaScannerService;
-Landroid/media/IRingtonePlayer;->play(Landroid/os/IBinder;Landroid/net/Uri;Landroid/media/AudioAttributes;FZ)V
 Landroid/media/IVolumeController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/IVolumeController;
-Landroid/media/MediaFile;-><init>()V
-Landroid/media/MediaScanner$MyMediaScannerClient;-><init>(Landroid/media/MediaScanner;)V
 Landroid/media/session/ISessionManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/media/session/ISessionManager;
 Landroid/media/tv/ITvRemoteProvider$Stub;-><init>()V
-Landroid/net/ConnectivityManager$PacketKeepaliveCallback;-><init>()V
 Landroid/net/IConnectivityManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/IConnectivityManager$Stub$Proxy;->getActiveLinkProperties()Landroid/net/LinkProperties;
 Landroid/net/IConnectivityManager$Stub$Proxy;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
@@ -256,12 +206,8 @@
 Landroid/net/INetworkStatsService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/INetworkStatsService$Stub$Proxy;->getMobileIfaces()[Ljava/lang/String;
 Landroid/net/INetworkStatsService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/INetworkStatsService;
-Landroid/net/InterfaceConfiguration;-><init>()V
-Landroid/net/LinkProperties$ProvisioningChange;->values()[Landroid/net/LinkProperties$ProvisioningChange;
-Landroid/net/MobileLinkQualityInfo;-><init>()V
 Landroid/net/nsd/INsdManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/nsd/INsdManager;
 Landroid/net/sip/ISipSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/sip/ISipSession;
-Landroid/net/SntpClient;-><init>()V
 Landroid/net/wifi/IWifiManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/net/wifi/IWifiManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/IWifiManager;
 Landroid/net/wifi/IWifiManager$Stub;->TRANSACTION_getScanResults:I
@@ -271,16 +217,11 @@
 Landroid/net/wifi/IWifiScanner$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/IWifiScanner;
 Landroid/net/wifi/p2p/IWifiP2pManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/net/wifi/p2p/IWifiP2pManager;
 Landroid/nfc/INfcAdapter$Stub;->TRANSACTION_enable:I
-Landroid/os/BatteryStats$Uid$Proc$ExcessivePower;-><init>()V
-Landroid/os/BatteryStats$Uid;-><init>()V
 Landroid/os/IBatteryPropertiesRegistrar$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IDeviceIdentifiersPolicyService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IDeviceIdentifiersPolicyService;
 Landroid/os/IDeviceIdleController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IDeviceIdleController;
-Landroid/os/IDeviceIdleController;->getAppIdTempWhitelist()[I
-Landroid/os/IDeviceIdleController;->getFullPowerWhitelistExceptIdle()[Ljava/lang/String;
 Landroid/os/INetworkManagementService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/INetworkManagementService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/INetworkManagementService;
-Landroid/os/INetworkManagementService;->listTetheredInterfaces()[Ljava/lang/String;
 Landroid/os/IPermissionController$Stub$Proxy;->checkPermission(Ljava/lang/String;II)Z
 Landroid/os/IPermissionController$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IPermissionController;
 Landroid/os/IPowerManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
@@ -291,295 +232,15 @@
 Landroid/os/IRecoverySystem$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IRecoverySystem;
 Landroid/os/IRemoteCallback$Stub;-><init>()V
 Landroid/os/IUpdateEngine$Stub;-><init>()V
-Landroid/os/IUpdateEngineCallback;->onStatusUpdate(IF)V
 Landroid/os/IUserManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/IUserManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IUserManager;
 Landroid/os/IVibratorService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/IVibratorService;
-Landroid/os/Parcel$ReadWriteHelper;-><init>()V
-Landroid/os/RegistrantList;-><init>()V
-Landroid/os/ServiceManager;-><init>()V
 Landroid/os/storage/IObbActionListener$Stub;-><init>()V
 Landroid/os/storage/IStorageManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/os/storage/IStorageManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/os/storage/IStorageManager;
-Landroid/os/storage/StorageEventListener;-><init>()V
-Landroid/R$styleable;->ActionBar:[I
-Landroid/R$styleable;->ActionBar_background:I
-Landroid/R$styleable;->ActionBar_backgroundSplit:I
-Landroid/R$styleable;->ActionBar_backgroundStacked:I
-Landroid/R$styleable;->ActionBar_divider:I
-Landroid/R$styleable;->ActionBar_itemPadding:I
-Landroid/R$styleable;->CalendarView:[I
-Landroid/R$styleable;->CalendarView_dateTextAppearance:I
-Landroid/R$styleable;->CalendarView_firstDayOfWeek:I
-Landroid/R$styleable;->CalendarView_focusedMonthDateColor:I
-Landroid/R$styleable;->CalendarView_selectedDateVerticalBar:I
-Landroid/R$styleable;->CalendarView_selectedWeekBackgroundColor:I
-Landroid/R$styleable;->CalendarView_shownWeekCount:I
-Landroid/R$styleable;->CalendarView_showWeekNumber:I
-Landroid/R$styleable;->CalendarView_unfocusedMonthDateColor:I
-Landroid/R$styleable;->CalendarView_weekDayTextAppearance:I
-Landroid/R$styleable;->CalendarView_weekNumberColor:I
-Landroid/R$styleable;->CalendarView_weekSeparatorLineColor:I
-Landroid/R$styleable;->CheckBoxPreference:[I
-Landroid/R$styleable;->CheckedTextView:[I
-Landroid/R$styleable;->CheckedTextView_checkMark:I
-Landroid/R$styleable;->CompoundButton:[I
-Landroid/R$styleable;->CompoundButton_button:I
-Landroid/R$styleable;->ContactsDataKind:[I
-Landroid/R$styleable;->DatePicker:[I
-Landroid/R$styleable;->DialogPreference:[I
-Landroid/R$styleable;->DrawableStates:[I
-Landroid/R$styleable;->ExpandableListView:[I
-Landroid/R$styleable;->FrameLayout_Layout:[I
-Landroid/R$styleable;->HorizontalScrollView:[I
-Landroid/R$styleable;->ImageView:[I
-Landroid/R$styleable;->ImageView_adjustViewBounds:I
-Landroid/R$styleable;->ImageView_baselineAlignBottom:I
-Landroid/R$styleable;->ImageView_cropToPadding:I
-Landroid/R$styleable;->ImageView_maxHeight:I
-Landroid/R$styleable;->ImageView_maxWidth:I
-Landroid/R$styleable;->ImageView_scaleType:I
-Landroid/R$styleable;->ImageView_src:I
-Landroid/R$styleable;->ImageView_tint:I
-Landroid/R$styleable;->Keyboard:[I
-Landroid/R$styleable;->Keyboard_horizontalGap:I
-Landroid/R$styleable;->Keyboard_Key:[I
-Landroid/R$styleable;->Keyboard_keyHeight:I
-Landroid/R$styleable;->Keyboard_keyWidth:I
-Landroid/R$styleable;->Keyboard_Key_codes:I
-Landroid/R$styleable;->Keyboard_Key_iconPreview:I
-Landroid/R$styleable;->Keyboard_Key_isModifier:I
-Landroid/R$styleable;->Keyboard_Key_isRepeatable:I
-Landroid/R$styleable;->Keyboard_Key_isSticky:I
-Landroid/R$styleable;->Keyboard_Key_keyEdgeFlags:I
-Landroid/R$styleable;->Keyboard_Key_keyIcon:I
-Landroid/R$styleable;->Keyboard_Key_keyLabel:I
-Landroid/R$styleable;->Keyboard_Key_keyOutputText:I
-Landroid/R$styleable;->Keyboard_Key_popupCharacters:I
-Landroid/R$styleable;->Keyboard_Key_popupKeyboard:I
-Landroid/R$styleable;->Keyboard_Row:[I
-Landroid/R$styleable;->Keyboard_Row_keyboardMode:I
-Landroid/R$styleable;->Keyboard_Row_rowEdgeFlags:I
-Landroid/R$styleable;->Keyboard_verticalGap:I
-Landroid/R$styleable;->LinearLayout:[I
-Landroid/R$styleable;->LinearLayout_baselineAligned:I
-Landroid/R$styleable;->LinearLayout_baselineAlignedChildIndex:I
-Landroid/R$styleable;->LinearLayout_divider:I
-Landroid/R$styleable;->LinearLayout_dividerPadding:I
-Landroid/R$styleable;->LinearLayout_gravity:I
-Landroid/R$styleable;->LinearLayout_Layout:[I
-Landroid/R$styleable;->LinearLayout_Layout_layout_gravity:I
-Landroid/R$styleable;->LinearLayout_Layout_layout_height:I
-Landroid/R$styleable;->LinearLayout_Layout_layout_weight:I
-Landroid/R$styleable;->LinearLayout_Layout_layout_width:I
-Landroid/R$styleable;->LinearLayout_measureWithLargestChild:I
-Landroid/R$styleable;->LinearLayout_orientation:I
-Landroid/R$styleable;->LinearLayout_showDividers:I
-Landroid/R$styleable;->ListView:[I
-Landroid/R$styleable;->ListView_divider:I
-Landroid/R$styleable;->ListView_dividerHeight:I
-Landroid/R$styleable;->LockPatternView:[I
-Landroid/R$styleable;->NumberPicker:[I
-Landroid/R$styleable;->NumberPicker_solidColor:I
-Landroid/R$styleable;->PopupWindow:[I
-Landroid/R$styleable;->ProgressBar:[I
-Landroid/R$styleable;->ProgressBar_indeterminateDrawable:I
-Landroid/R$styleable;->ProgressBar_indeterminateDuration:I
-Landroid/R$styleable;->ProgressBar_maxHeight:I
-Landroid/R$styleable;->ProgressBar_maxWidth:I
-Landroid/R$styleable;->ProgressBar_minHeight:I
-Landroid/R$styleable;->ProgressBar_minWidth:I
-Landroid/R$styleable;->ProgressBar_progressDrawable:I
-Landroid/R$styleable;->RingtonePreference:[I
-Landroid/R$styleable;->ScrollView:[I
-Landroid/R$styleable;->SearchView:[I
-Landroid/R$styleable;->SeekBar:[I
-Landroid/R$styleable;->SeekBar_thumb:I
-Landroid/R$styleable;->SeekBar_thumbOffset:I
-Landroid/R$styleable;->SlidingDrawer:[I
-Landroid/R$styleable;->SlidingDrawer_allowSingleTap:I
-Landroid/R$styleable;->SlidingDrawer_animateOnClick:I
-Landroid/R$styleable;->SlidingDrawer_bottomOffset:I
-Landroid/R$styleable;->SlidingDrawer_content:I
-Landroid/R$styleable;->SlidingDrawer_handle:I
-Landroid/R$styleable;->SlidingDrawer_orientation:I
-Landroid/R$styleable;->SlidingDrawer_topOffset:I
-Landroid/R$styleable;->Switch:[I
-Landroid/R$styleable;->Switch_showText:I
-Landroid/R$styleable;->Switch_splitTrack:I
-Landroid/R$styleable;->Switch_switchMinWidth:I
-Landroid/R$styleable;->Switch_switchPadding:I
-Landroid/R$styleable;->Switch_switchTextAppearance:I
-Landroid/R$styleable;->Switch_textOff:I
-Landroid/R$styleable;->Switch_textOn:I
-Landroid/R$styleable;->Switch_thumb:I
-Landroid/R$styleable;->Switch_thumbTextPadding:I
-Landroid/R$styleable;->Switch_track:I
-Landroid/R$styleable;->TextAppearance:[I
-Landroid/R$styleable;->TextAppearance_textAllCaps:I
-Landroid/R$styleable;->TextAppearance_textColor:I
-Landroid/R$styleable;->TextAppearance_textColorHighlight:I
-Landroid/R$styleable;->TextAppearance_textColorHint:I
-Landroid/R$styleable;->TextAppearance_textColorLink:I
-Landroid/R$styleable;->TextAppearance_textSize:I
-Landroid/R$styleable;->TextAppearance_textStyle:I
-Landroid/R$styleable;->TextAppearance_typeface:I
-Landroid/R$styleable;->TextView:[I
-Landroid/R$styleable;->TextView_autoLink:I
-Landroid/R$styleable;->TextView_autoText:I
-Landroid/R$styleable;->TextView_bufferType:I
-Landroid/R$styleable;->TextView_capitalize:I
-Landroid/R$styleable;->TextView_cursorVisible:I
-Landroid/R$styleable;->TextView_digits:I
-Landroid/R$styleable;->TextView_drawableBottom:I
-Landroid/R$styleable;->TextView_drawableEnd:I
-Landroid/R$styleable;->TextView_drawableLeft:I
-Landroid/R$styleable;->TextView_drawablePadding:I
-Landroid/R$styleable;->TextView_drawableRight:I
-Landroid/R$styleable;->TextView_drawableStart:I
-Landroid/R$styleable;->TextView_drawableTop:I
-Landroid/R$styleable;->TextView_editable:I
-Landroid/R$styleable;->TextView_ellipsize:I
-Landroid/R$styleable;->TextView_ems:I
-Landroid/R$styleable;->TextView_enabled:I
-Landroid/R$styleable;->TextView_freezesText:I
-Landroid/R$styleable;->TextView_gravity:I
-Landroid/R$styleable;->TextView_height:I
-Landroid/R$styleable;->TextView_hint:I
-Landroid/R$styleable;->TextView_imeActionId:I
-Landroid/R$styleable;->TextView_imeActionLabel:I
-Landroid/R$styleable;->TextView_imeOptions:I
-Landroid/R$styleable;->TextView_includeFontPadding:I
-Landroid/R$styleable;->TextView_inputMethod:I
-Landroid/R$styleable;->TextView_inputType:I
-Landroid/R$styleable;->TextView_lines:I
-Landroid/R$styleable;->TextView_lineSpacingExtra:I
-Landroid/R$styleable;->TextView_lineSpacingMultiplier:I
-Landroid/R$styleable;->TextView_linksClickable:I
-Landroid/R$styleable;->TextView_marqueeRepeatLimit:I
-Landroid/R$styleable;->TextView_maxEms:I
-Landroid/R$styleable;->TextView_maxHeight:I
-Landroid/R$styleable;->TextView_maxLength:I
-Landroid/R$styleable;->TextView_maxLines:I
-Landroid/R$styleable;->TextView_maxWidth:I
-Landroid/R$styleable;->TextView_minEms:I
-Landroid/R$styleable;->TextView_minHeight:I
-Landroid/R$styleable;->TextView_minLines:I
-Landroid/R$styleable;->TextView_minWidth:I
-Landroid/R$styleable;->TextView_numeric:I
-Landroid/R$styleable;->TextView_password:I
-Landroid/R$styleable;->TextView_phoneNumber:I
-Landroid/R$styleable;->TextView_privateImeOptions:I
-Landroid/R$styleable;->TextView_scrollHorizontally:I
-Landroid/R$styleable;->TextView_selectAllOnFocus:I
-Landroid/R$styleable;->TextView_shadowColor:I
-Landroid/R$styleable;->TextView_shadowDx:I
-Landroid/R$styleable;->TextView_shadowDy:I
-Landroid/R$styleable;->TextView_shadowRadius:I
-Landroid/R$styleable;->TextView_singleLine:I
-Landroid/R$styleable;->TextView_text:I
-Landroid/R$styleable;->TextView_textAllCaps:I
-Landroid/R$styleable;->TextView_textAppearance:I
-Landroid/R$styleable;->TextView_textColor:I
-Landroid/R$styleable;->TextView_textColorHighlight:I
-Landroid/R$styleable;->TextView_textColorHint:I
-Landroid/R$styleable;->TextView_textColorLink:I
-Landroid/R$styleable;->TextView_textCursorDrawable:I
-Landroid/R$styleable;->TextView_textIsSelectable:I
-Landroid/R$styleable;->TextView_textScaleX:I
-Landroid/R$styleable;->TextView_textSelectHandle:I
-Landroid/R$styleable;->TextView_textSelectHandleLeft:I
-Landroid/R$styleable;->TextView_textSelectHandleRight:I
-Landroid/R$styleable;->TextView_textSize:I
-Landroid/R$styleable;->TextView_textStyle:I
-Landroid/R$styleable;->TextView_typeface:I
-Landroid/R$styleable;->TextView_width:I
-Landroid/R$styleable;->Theme:[I
-Landroid/R$styleable;->View:[I
-Landroid/R$styleable;->ViewDrawableStates:[I
-Landroid/R$styleable;->ViewGroup_Layout:[I
-Landroid/R$styleable;->ViewGroup_Layout_layout_height:I
-Landroid/R$styleable;->ViewGroup_Layout_layout_width:I
-Landroid/R$styleable;->ViewGroup_MarginLayout:[I
-Landroid/R$styleable;->ViewGroup_MarginLayout_layout_height:I
-Landroid/R$styleable;->ViewGroup_MarginLayout_layout_margin:I
-Landroid/R$styleable;->ViewGroup_MarginLayout_layout_marginBottom:I
-Landroid/R$styleable;->ViewGroup_MarginLayout_layout_marginLeft:I
-Landroid/R$styleable;->ViewGroup_MarginLayout_layout_marginRight:I
-Landroid/R$styleable;->ViewGroup_MarginLayout_layout_marginTop:I
-Landroid/R$styleable;->ViewGroup_MarginLayout_layout_width:I
-Landroid/R$styleable;->View_alpha:I
-Landroid/R$styleable;->View_background:I
-Landroid/R$styleable;->View_clickable:I
-Landroid/R$styleable;->View_contentDescription:I
-Landroid/R$styleable;->View_drawingCacheQuality:I
-Landroid/R$styleable;->View_duplicateParentState:I
-Landroid/R$styleable;->View_fadingEdge:I
-Landroid/R$styleable;->View_filterTouchesWhenObscured:I
-Landroid/R$styleable;->View_fitsSystemWindows:I
-Landroid/R$styleable;->View_focusable:I
-Landroid/R$styleable;->View_focusableInTouchMode:I
-Landroid/R$styleable;->View_hapticFeedbackEnabled:I
-Landroid/R$styleable;->View_id:I
-Landroid/R$styleable;->View_isScrollContainer:I
-Landroid/R$styleable;->View_keepScreenOn:I
-Landroid/R$styleable;->View_longClickable:I
-Landroid/R$styleable;->View_minHeight:I
-Landroid/R$styleable;->View_minWidth:I
-Landroid/R$styleable;->View_nextFocusDown:I
-Landroid/R$styleable;->View_nextFocusLeft:I
-Landroid/R$styleable;->View_nextFocusRight:I
-Landroid/R$styleable;->View_nextFocusUp:I
-Landroid/R$styleable;->View_onClick:I
-Landroid/R$styleable;->View_overScrollMode:I
-Landroid/R$styleable;->View_padding:I
-Landroid/R$styleable;->View_paddingBottom:I
-Landroid/R$styleable;->View_paddingEnd:I
-Landroid/R$styleable;->View_paddingLeft:I
-Landroid/R$styleable;->View_paddingRight:I
-Landroid/R$styleable;->View_paddingStart:I
-Landroid/R$styleable;->View_paddingTop:I
-Landroid/R$styleable;->View_rotation:I
-Landroid/R$styleable;->View_rotationX:I
-Landroid/R$styleable;->View_rotationY:I
-Landroid/R$styleable;->View_saveEnabled:I
-Landroid/R$styleable;->View_scaleX:I
-Landroid/R$styleable;->View_scaleY:I
-Landroid/R$styleable;->View_scrollbarDefaultDelayBeforeFade:I
-Landroid/R$styleable;->View_scrollbarFadeDuration:I
-Landroid/R$styleable;->View_scrollbars:I
-Landroid/R$styleable;->View_scrollbarSize:I
-Landroid/R$styleable;->View_scrollbarStyle:I
-Landroid/R$styleable;->View_scrollbarThumbHorizontal:I
-Landroid/R$styleable;->View_scrollbarThumbVertical:I
-Landroid/R$styleable;->View_scrollbarTrackHorizontal:I
-Landroid/R$styleable;->View_scrollbarTrackVertical:I
-Landroid/R$styleable;->View_scrollX:I
-Landroid/R$styleable;->View_scrollY:I
-Landroid/R$styleable;->View_soundEffectsEnabled:I
-Landroid/R$styleable;->View_tag:I
-Landroid/R$styleable;->View_transformPivotX:I
-Landroid/R$styleable;->View_transformPivotY:I
-Landroid/R$styleable;->View_translationX:I
-Landroid/R$styleable;->View_translationY:I
-Landroid/R$styleable;->View_visibility:I
-Landroid/R$styleable;->Window:[I
-Landroid/R$styleable;->Window_windowBackground:I
-Landroid/R$styleable;->Window_windowFrame:I
 Landroid/security/IKeyChainService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/security/IKeyChainService;
 Landroid/security/keystore/IKeystoreService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/security/keystore/IKeystoreService;
-Landroid/security/keystore/IKeystoreService;->clear_uid(J)I
-Landroid/security/keystore/IKeystoreService;->del(Ljava/lang/String;I)I
-Landroid/security/keystore/IKeystoreService;->exist(Ljava/lang/String;I)I
-Landroid/security/keystore/IKeystoreService;->get(Ljava/lang/String;I)[B
-Landroid/security/keystore/IKeystoreService;->getState(I)I
-Landroid/security/keystore/IKeystoreService;->insert(Ljava/lang/String;[BII)I
-Landroid/security/keystore/IKeystoreService;->is_hardware_backed(Ljava/lang/String;)I
-Landroid/security/keystore/IKeystoreService;->list(Ljava/lang/String;I)[Ljava/lang/String;
-Landroid/security/keystore/IKeystoreService;->reset()I
-Landroid/security/keystore/IKeystoreService;->ungrant(Ljava/lang/String;I)I
 Landroid/service/dreams/IDreamManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/dreams/IDreamManager;
-Landroid/service/dreams/IDreamManager;->getDreamComponents()[Landroid/content/ComponentName;
 Landroid/service/euicc/IEuiccService$Stub;-><init>()V
 Landroid/service/media/IMediaBrowserServiceCallbacks$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/media/IMediaBrowserServiceCallbacks;
 Landroid/service/notification/INotificationListener$Stub;-><init>()V
@@ -587,18 +248,11 @@
 Landroid/service/vr/IVrManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/vr/IVrManager;
 Landroid/service/wallpaper/IWallpaperConnection$Stub;-><init>()V
 Landroid/service/wallpaper/IWallpaperService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/service/wallpaper/IWallpaperService;
-Landroid/telephony/ims/compat/feature/MMTelFeature;-><init>()V
-Landroid/telephony/ims/compat/ImsService;-><init>()V
-Landroid/telephony/ims/compat/stub/ImsCallSessionImplBase;-><init>()V
-Landroid/telephony/ims/compat/stub/ImsUtListenerImplBase;-><init>()V
 Landroid/telephony/mbms/IMbmsStreamingSessionCallback$Stub;-><init>()V
 Landroid/telephony/mbms/IStreamingServiceCallback$Stub;-><init>()V
 Landroid/telephony/mbms/vendor/IMbmsStreamingService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/telephony/mbms/vendor/IMbmsStreamingService;
-Landroid/telephony/TelephonyManager$MultiSimVariants;->values()[Landroid/telephony/TelephonyManager$MultiSimVariants;
-Landroid/util/Singleton;-><init>()V
 Landroid/view/accessibility/IAccessibilityManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/accessibility/IAccessibilityManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/accessibility/IAccessibilityManager;
-Landroid/view/AccessibilityIterators$AbstractTextSegmentIterator;-><init>()V
 Landroid/view/autofill/IAutoFillManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/view/autofill/IAutoFillManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/autofill/IAutoFillManager;
 Landroid/view/IAppTransitionAnimationSpecsFuture$Stub;-><init>()V
@@ -617,30 +271,10 @@
 Landroid/view/IWindowManager$Stub;-><init>()V
 Landroid/view/IWindowManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowManager;
 Landroid/view/IWindowSession$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowSession;
-Landroid/view/View$AttachInfo$InvalidateInfo;-><init>()V
-Landroid/view/View$CheckForLongPress;-><init>(Landroid/view/View;)V
-Landroid/view/View$ListenerInfo;-><init>()V
-Landroid/view/ViewTreeObserver$InternalInsetsInfo;-><init>()V
-Landroid/webkit/CacheManager$CacheResult;-><init>()V
 Landroid/webkit/IWebViewUpdateService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Landroid/webkit/IWebViewUpdateService$Stub$Proxy;->waitForAndGetProvider()Landroid/webkit/WebViewProviderResponse;
 Landroid/webkit/IWebViewUpdateService$Stub;->asInterface(Landroid/os/IBinder;)Landroid/webkit/IWebViewUpdateService;
-Landroid/widget/DigitalClock$FormatChangeObserver;-><init>(Landroid/widget/DigitalClock;)V
-Landroid/widget/QuickContactBadge$QueryHandler;-><init>(Landroid/widget/QuickContactBadge;Landroid/content/ContentResolver;)V
-Landroid/widget/RelativeLayout$DependencyGraph$Node;-><init>()V
-Landroid/widget/ScrollBarDrawable;-><init>()V
-Lcom/android/ims/ImsCall;->deflect(Ljava/lang/String;)V
-Lcom/android/ims/ImsCall;->isMultiparty()Z
-Lcom/android/ims/ImsCall;->reject(I)V
-Lcom/android/ims/ImsCall;->terminate(I)V
 Lcom/android/ims/ImsConfigListener$Stub;-><init>()V
-Lcom/android/ims/ImsEcbm;->exitEmergencyCallbackMode()V
-Lcom/android/ims/ImsManager;->getConfigInterface()Lcom/android/ims/ImsConfig;
-Lcom/android/ims/ImsManager;->getInstance(Landroid/content/Context;I)Lcom/android/ims/ImsManager;
-Lcom/android/ims/ImsManager;->isEnhanced4gLteModeSettingEnabledByUser(Landroid/content/Context;)Z
-Lcom/android/ims/ImsManager;->isNonTtyOrTtyOnVolteEnabled(Landroid/content/Context;)Z
-Lcom/android/ims/ImsManager;->isVolteEnabledByPlatform(Landroid/content/Context;)Z
-Lcom/android/ims/ImsUtInterface;->queryCallForward(ILjava/lang/String;Landroid/os/Message;)V
 Lcom/android/ims/internal/IImsCallSession$Stub;-><init>()V
 Lcom/android/ims/internal/IImsCallSession$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsCallSession;
 Lcom/android/ims/internal/IImsConfig$Stub;-><init>()V
@@ -649,13 +283,10 @@
 Lcom/android/ims/internal/IImsService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/ims/internal/IImsService;
 Lcom/android/ims/internal/IImsUt$Stub;-><init>()V
 Lcom/android/ims/internal/IImsVideoCallProvider$Stub;-><init>()V
-Lcom/android/ims/internal/ImsVideoCallProviderWrapper;-><init>(Lcom/android/ims/internal/IImsVideoCallProvider;)V
 Lcom/android/ims/internal/uce/options/IOptionsService$Stub;-><init>()V
 Lcom/android/ims/internal/uce/presence/IPresenceService$Stub;-><init>()V
 Lcom/android/ims/internal/uce/uceservice/IUceListener$Stub;-><init>()V
 Lcom/android/ims/internal/uce/uceservice/IUceService$Stub;-><init>()V
-Lcom/android/internal/app/AlertActivity;-><init>()V
-Lcom/android/internal/app/ChooserActivity;-><init>()V
 Lcom/android/internal/app/IAppOpsCallback$Stub;-><init>()V
 Lcom/android/internal/app/IAppOpsService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/app/IAppOpsService$Stub$Proxy;->checkOperation(IILjava/lang/String;)I
@@ -684,681 +315,23 @@
 Lcom/android/internal/app/IMediaContainerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IMediaContainerService;
 Lcom/android/internal/app/IVoiceInteractionManagerService$Stub$Proxy;->showSessionFromSession(Landroid/os/IBinder;Landroid/os/Bundle;I)Z
 Lcom/android/internal/app/IVoiceInteractionManagerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/app/IVoiceInteractionManagerService;
-Lcom/android/internal/app/ResolverActivity;-><init>()V
 Lcom/android/internal/appwidget/IAppWidgetService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/appwidget/IAppWidgetService;
 Lcom/android/internal/appwidget/IAppWidgetService$Stub;->TRANSACTION_bindAppWidgetId:I
 Lcom/android/internal/backup/IBackupTransport$Stub;-><init>()V
-Lcom/android/internal/content/PackageMonitor;-><init>()V
-Lcom/android/internal/location/GpsNetInitiatedHandler$GpsNiNotification;-><init>()V
-Lcom/android/internal/location/GpsNetInitiatedHandler$GpsNiNotification;->requestorId:Ljava/lang/String;
-Lcom/android/internal/location/GpsNetInitiatedHandler$GpsNiNotification;->requestorIdEncoding:I
-Lcom/android/internal/location/GpsNetInitiatedHandler$GpsNiNotification;->text:Ljava/lang/String;
-Lcom/android/internal/location/GpsNetInitiatedHandler$GpsNiNotification;->textEncoding:I
-Lcom/android/internal/location/GpsNetInitiatedHandler;->decodeString(Ljava/lang/String;ZI)Ljava/lang/String;
-Lcom/android/internal/location/GpsNetInitiatedHandler;->handleNiNotification(Lcom/android/internal/location/GpsNetInitiatedHandler$GpsNiNotification;)V
-Lcom/android/internal/location/GpsNetInitiatedHandler;->mIsHexInput:Z
 Lcom/android/internal/location/ILocationProvider$Stub;-><init>()V
 Lcom/android/internal/location/ILocationProvider$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/location/ILocationProvider;
-Lcom/android/internal/location/ILocationProvider;->sendExtraCommand(Ljava/lang/String;Landroid/os/Bundle;)V
-Lcom/android/internal/location/ILocationProvider;->setLocationProviderManager(Lcom/android/internal/location/ILocationProviderManager;)V
-Lcom/android/internal/location/ILocationProvider;->setRequest(Lcom/android/internal/location/ProviderRequest;Landroid/os/WorkSource;)V
 Lcom/android/internal/location/ILocationProviderManager$Stub;-><init>()V
 Lcom/android/internal/location/ILocationProviderManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/location/ILocationProviderManager;
-Lcom/android/internal/logging/MetricsLogger;-><init>()V
-Lcom/android/internal/net/LegacyVpnInfo;-><init>()V
-Lcom/android/internal/net/VpnConfig;-><init>()V
-Lcom/android/internal/os/BaseCommand;-><init>()V
-Lcom/android/internal/os/BatterySipper$DrainType;->values()[Lcom/android/internal/os/BatterySipper$DrainType;
 Lcom/android/internal/os/IDropBoxManagerService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/os/IDropBoxManagerService;
 Lcom/android/internal/policy/IKeyguardService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/policy/IKeyguardService;
 Lcom/android/internal/policy/IKeyguardStateCallback$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/policy/IKeyguardStateCallback;
-Lcom/android/internal/preference/YesNoPreference;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
-Lcom/android/internal/R$anim;->fade_in:I
-Lcom/android/internal/R$array;->config_autoBrightnessLcdBacklightValues:I
-Lcom/android/internal/R$array;->config_autoBrightnessLevels:I
-Lcom/android/internal/R$array;->config_mobile_hotspot_provision_app:I
-Lcom/android/internal/R$array;->config_sms_enabled_locking_shift_tables:I
-Lcom/android/internal/R$array;->config_sms_enabled_single_shift_tables:I
-Lcom/android/internal/R$array;->config_tether_bluetooth_regexs:I
-Lcom/android/internal/R$array;->config_tether_upstream_types:I
-Lcom/android/internal/R$array;->config_tether_usb_regexs:I
-Lcom/android/internal/R$array;->config_tether_wifi_regexs:I
-Lcom/android/internal/R$array;->maps_starting_lat_lng:I
-Lcom/android/internal/R$array;->maps_starting_zoom:I
-Lcom/android/internal/R$attr;->actionBarStyle:I
-Lcom/android/internal/R$attr;->buttonStyle:I
-Lcom/android/internal/R$attr;->description:I
-Lcom/android/internal/R$attr;->editTextStyle:I
-Lcom/android/internal/R$attr;->mapViewStyle:I
-Lcom/android/internal/R$attr;->popupWindowStyle:I
-Lcom/android/internal/R$attr;->state_above_anchor:I
-Lcom/android/internal/R$attr;->state_focused:I
-Lcom/android/internal/R$attr;->state_pressed:I
-Lcom/android/internal/R$attr;->state_selected:I
-Lcom/android/internal/R$attr;->switchStyle:I
-Lcom/android/internal/R$attr;->text:I
-Lcom/android/internal/R$attr;->title:I
-Lcom/android/internal/R$attr;->webViewStyle:I
-Lcom/android/internal/R$bool;-><init>()V
-Lcom/android/internal/R$bool;->config_automatic_brightness_available:I
-Lcom/android/internal/R$bool;->config_intrusiveNotificationLed:I
-Lcom/android/internal/R$bool;->config_mms_content_disposition_support:I
-Lcom/android/internal/R$bool;->config_showNavigationBar:I
-Lcom/android/internal/R$dimen;-><init>()V
-Lcom/android/internal/R$dimen;->item_touch_helper_max_drag_scroll_per_frame:I
-Lcom/android/internal/R$dimen;->navigation_bar_height:I
-Lcom/android/internal/R$dimen;->navigation_bar_height_landscape:I
-Lcom/android/internal/R$dimen;->navigation_bar_width:I
-Lcom/android/internal/R$dimen;->status_bar_height:I
-Lcom/android/internal/R$dimen;->toast_y_offset:I
-Lcom/android/internal/R$drawable;->btn_check_off:I
-Lcom/android/internal/R$drawable;->compass_arrow:I
-Lcom/android/internal/R$drawable;->compass_base:I
-Lcom/android/internal/R$drawable;->ic_maps_indicator_current_position_anim:I
-Lcom/android/internal/R$drawable;->ic_menu_close_clear_cancel:I
-Lcom/android/internal/R$drawable;->loading_tile_android:I
-Lcom/android/internal/R$drawable;->maps_google_logo:I
-Lcom/android/internal/R$drawable;->no_tile_256:I
-Lcom/android/internal/R$drawable;->reticle:I
-Lcom/android/internal/R$drawable;->stat_sys_download:I
-Lcom/android/internal/R$fraction;->config_autoBrightnessAdjustmentMaxGamma:I
-Lcom/android/internal/R$id;->account_name:I
-Lcom/android/internal/R$id;->account_type:I
-Lcom/android/internal/R$id;->alertTitle:I
-Lcom/android/internal/R$id;->allow_button:I
-Lcom/android/internal/R$id;->amPm:I
-Lcom/android/internal/R$id;->authtoken_type:I
-Lcom/android/internal/R$id;->background:I
-Lcom/android/internal/R$id;->back_button:I
-Lcom/android/internal/R$id;->body:I
-Lcom/android/internal/R$id;->buttonPanel:I
-Lcom/android/internal/R$id;->camera:I
-Lcom/android/internal/R$id;->cancel:I
-Lcom/android/internal/R$id;->clip_children_set_tag:I
-Lcom/android/internal/R$id;->clip_children_tag:I
-Lcom/android/internal/R$id;->clip_to_padding_tag:I
-Lcom/android/internal/R$id;->closeButton:I
-Lcom/android/internal/R$id;->content:I
-Lcom/android/internal/R$id;->contentPanel:I
-Lcom/android/internal/R$id;->custom:I
-Lcom/android/internal/R$id;->customPanel:I
-Lcom/android/internal/R$id;->datePicker:I
-Lcom/android/internal/R$id;->day:I
-Lcom/android/internal/R$id;->deny_button:I
-Lcom/android/internal/R$id;->description:I
-Lcom/android/internal/R$id;->edit:I
-Lcom/android/internal/R$id;->edittext_container:I
-Lcom/android/internal/R$id;->find_next:I
-Lcom/android/internal/R$id;->find_prev:I
-Lcom/android/internal/R$id;->icon:I
-Lcom/android/internal/R$id;->keyboard:I
-Lcom/android/internal/R$id;->keyboardView:I
-Lcom/android/internal/R$id;->line1:I
-Lcom/android/internal/R$id;->list_item:I
-Lcom/android/internal/R$id;->matches:I
-Lcom/android/internal/R$id;->mediacontroller_progress:I
-Lcom/android/internal/R$id;->media_actions:I
-Lcom/android/internal/R$id;->message:I
-Lcom/android/internal/R$id;->minute:I
-Lcom/android/internal/R$id;->month:I
-Lcom/android/internal/R$id;->name:I
-Lcom/android/internal/R$id;->notification_header:I
-Lcom/android/internal/R$id;->ok:I
-Lcom/android/internal/R$id;->overlay:I
-Lcom/android/internal/R$id;->packages_list:I
-Lcom/android/internal/R$id;->package_label:I
-Lcom/android/internal/R$id;->parentPanel:I
-Lcom/android/internal/R$id;->pause:I
-Lcom/android/internal/R$id;->pending_intent_tag:I
-Lcom/android/internal/R$id;->progress:I
-Lcom/android/internal/R$id;->redo:I
-Lcom/android/internal/R$id;->remote_input_tag:I
-Lcom/android/internal/R$id;->right_icon:I
-Lcom/android/internal/R$id;->search_src_text:I
-Lcom/android/internal/R$id;->share:I
-Lcom/android/internal/R$id;->shortcut:I
-Lcom/android/internal/R$id;->status_bar_latest_event_content:I
-Lcom/android/internal/R$id;->tabcontent:I
-Lcom/android/internal/R$id;->tabs:I
-Lcom/android/internal/R$id;->text1:I
-Lcom/android/internal/R$id;->text2:I
-Lcom/android/internal/R$id;->text:I
-Lcom/android/internal/R$id;->time:I
-Lcom/android/internal/R$id;->timePicker:I
-Lcom/android/internal/R$id;->time_current:I
-Lcom/android/internal/R$id;->title:I
-Lcom/android/internal/R$id;->titleDivider:I
-Lcom/android/internal/R$id;->titleDividerTop:I
-Lcom/android/internal/R$id;->title_container:I
-Lcom/android/internal/R$id;->title_template:I
-Lcom/android/internal/R$id;->topPanel:I
-Lcom/android/internal/R$id;->up:I
-Lcom/android/internal/R$id;->year:I
-Lcom/android/internal/R$id;->zoomControls:I
-Lcom/android/internal/R$id;->zoomMagnify:I
-Lcom/android/internal/R$integer;->config_screenBrightnessDim:I
-Lcom/android/internal/R$integer;->config_screenBrightnessSettingMaximum:I
-Lcom/android/internal/R$integer;->config_screenBrightnessSettingMinimum:I
-Lcom/android/internal/R$integer;->config_toastDefaultGravity:I
-Lcom/android/internal/R$interpolator;->accelerate_cubic:I
-Lcom/android/internal/R$interpolator;->decelerate_cubic:I
-Lcom/android/internal/R$layout;->notification_template_material_base:I
-Lcom/android/internal/R$layout;->preference_header_item:I
-Lcom/android/internal/R$layout;->screen_title:I
-Lcom/android/internal/R$layout;->select_dialog:I
-Lcom/android/internal/R$layout;->select_dialog_multichoice:I
-Lcom/android/internal/R$layout;->select_dialog_singlechoice:I
-Lcom/android/internal/R$layout;->webview_find:I
-Lcom/android/internal/R$layout;->zoom_magnify:I
-Lcom/android/internal/R$plurals;->matches_found:I
-Lcom/android/internal/R$raw;->loaderror:I
-Lcom/android/internal/R$raw;->nodomain:I
-Lcom/android/internal/R$string;->byteShort:I
-Lcom/android/internal/R$string;->cancel:I
-Lcom/android/internal/R$string;->enable_explore_by_touch_warning_title:I
-Lcom/android/internal/R$string;->gigabyteShort:I
-Lcom/android/internal/R$string;->kilobyteShort:I
-Lcom/android/internal/R$string;->map:I
-Lcom/android/internal/R$string;->megabyteShort:I
-Lcom/android/internal/R$string;->notification_title:I
-Lcom/android/internal/R$string;->no_matches:I
-Lcom/android/internal/R$string;->ok:I
-Lcom/android/internal/R$string;->petabyteShort:I
-Lcom/android/internal/R$string;->redo:I
-Lcom/android/internal/R$string;->share:I
-Lcom/android/internal/R$string;->terabyteShort:I
-Lcom/android/internal/R$string;->whichApplication:I
-Lcom/android/internal/R$style;->Animation_DropDownDown:I
-Lcom/android/internal/R$style;->Animation_DropDownUp:I
-Lcom/android/internal/R$style;->Animation_PopupWindow:I
-Lcom/android/internal/R$style;->Theme:I
-Lcom/android/internal/R$style;->Theme_Dialog_Alert:I
-Lcom/android/internal/R$style;->Theme_Holo_Light:I
-Lcom/android/internal/R$style;->Theme_Light:I
-Lcom/android/internal/R$styleable;-><init>()V
-Lcom/android/internal/R$styleable;->AbsListView:[I
-Lcom/android/internal/R$styleable;->AbsListView_cacheColorHint:I
-Lcom/android/internal/R$styleable;->AbsListView_choiceMode:I
-Lcom/android/internal/R$styleable;->AbsListView_drawSelectorOnTop:I
-Lcom/android/internal/R$styleable;->AbsListView_fastScrollAlwaysVisible:I
-Lcom/android/internal/R$styleable;->AbsListView_fastScrollEnabled:I
-Lcom/android/internal/R$styleable;->AbsListView_listSelector:I
-Lcom/android/internal/R$styleable;->AbsListView_scrollingCache:I
-Lcom/android/internal/R$styleable;->AbsListView_smoothScrollbar:I
-Lcom/android/internal/R$styleable;->AbsListView_stackFromBottom:I
-Lcom/android/internal/R$styleable;->AbsListView_textFilterEnabled:I
-Lcom/android/internal/R$styleable;->AbsListView_transcriptMode:I
-Lcom/android/internal/R$styleable;->AbsSpinner:[I
-Lcom/android/internal/R$styleable;->AccountAuthenticator:[I
-Lcom/android/internal/R$styleable;->AccountAuthenticator_accountPreferences:I
-Lcom/android/internal/R$styleable;->AccountAuthenticator_accountType:I
-Lcom/android/internal/R$styleable;->AccountAuthenticator_customTokens:I
-Lcom/android/internal/R$styleable;->AccountAuthenticator_icon:I
-Lcom/android/internal/R$styleable;->AccountAuthenticator_label:I
-Lcom/android/internal/R$styleable;->AccountAuthenticator_smallIcon:I
-Lcom/android/internal/R$styleable;->ActionMode:[I
-Lcom/android/internal/R$styleable;->AdapterViewAnimator:[I
-Lcom/android/internal/R$styleable;->AdapterViewFlipper:[I
-Lcom/android/internal/R$styleable;->AlertDialog:[I
-Lcom/android/internal/R$styleable;->AnalogClock:[I
-Lcom/android/internal/R$styleable;->AndroidManifest:[I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity:[I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity_allowTaskReparenting:I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity_configChanges:I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity_description:I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity_enabled:I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity_excludeFromRecents:I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity_exported:I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity_hardwareAccelerated:I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity_icon:I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity_immersive:I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity_label:I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity_launchMode:I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity_logo:I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity_name:I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity_noHistory:I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity_permission:I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity_process:I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity_screenOrientation:I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity_taskAffinity:I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity_theme:I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity_uiOptions:I
-Lcom/android/internal/R$styleable;->AndroidManifestActivity_windowSoftInputMode:I
-Lcom/android/internal/R$styleable;->AndroidManifestApplication:[I
-Lcom/android/internal/R$styleable;->AndroidManifestApplication_enabled:I
-Lcom/android/internal/R$styleable;->AndroidManifestApplication_hardwareAccelerated:I
-Lcom/android/internal/R$styleable;->AndroidManifestApplication_label:I
-Lcom/android/internal/R$styleable;->AndroidManifestApplication_largeHeap:I
-Lcom/android/internal/R$styleable;->AndroidManifestApplication_name:I
-Lcom/android/internal/R$styleable;->AndroidManifestApplication_permission:I
-Lcom/android/internal/R$styleable;->AndroidManifestApplication_process:I
-Lcom/android/internal/R$styleable;->AndroidManifestApplication_supportsRtl:I
-Lcom/android/internal/R$styleable;->AndroidManifestApplication_theme:I
-Lcom/android/internal/R$styleable;->AndroidManifestApplication_uiOptions:I
-Lcom/android/internal/R$styleable;->AndroidManifestData:[I
-Lcom/android/internal/R$styleable;->AndroidManifestIntentFilter:[I
-Lcom/android/internal/R$styleable;->AndroidManifestIntentFilter_priority:I
-Lcom/android/internal/R$styleable;->AndroidManifestMetaData:[I
-Lcom/android/internal/R$styleable;->AndroidManifestMetaData_name:I
-Lcom/android/internal/R$styleable;->AndroidManifestMetaData_resource:I
-Lcom/android/internal/R$styleable;->AndroidManifestMetaData_value:I
-Lcom/android/internal/R$styleable;->AndroidManifestPackageVerifier:[I
-Lcom/android/internal/R$styleable;->AndroidManifestProvider:[I
-Lcom/android/internal/R$styleable;->AndroidManifestService:[I
-Lcom/android/internal/R$styleable;->AndroidManifestService_enabled:I
-Lcom/android/internal/R$styleable;->AndroidManifestService_exported:I
-Lcom/android/internal/R$styleable;->AndroidManifestService_name:I
-Lcom/android/internal/R$styleable;->AndroidManifestService_permission:I
-Lcom/android/internal/R$styleable;->AndroidManifestService_process:I
-Lcom/android/internal/R$styleable;->AndroidManifestUsesLibrary:[I
-Lcom/android/internal/R$styleable;->AndroidManifestUsesPermission:[I
-Lcom/android/internal/R$styleable;->AndroidManifestUsesPermission_name:I
-Lcom/android/internal/R$styleable;->AndroidManifestUsesSdk:[I
-Lcom/android/internal/R$styleable;->AndroidManifestUsesSdk_minSdkVersion:I
-Lcom/android/internal/R$styleable;->AndroidManifestUsesSdk_targetSdkVersion:I
-Lcom/android/internal/R$styleable;->AndroidManifest_installLocation:I
-Lcom/android/internal/R$styleable;->AndroidManifest_sharedUserId:I
-Lcom/android/internal/R$styleable;->AndroidManifest_versionCode:I
-Lcom/android/internal/R$styleable;->AndroidManifest_versionName:I
-Lcom/android/internal/R$styleable;->AutoCompleteTextView:[I
-Lcom/android/internal/R$styleable;->CheckBoxPreference:[I
-Lcom/android/internal/R$styleable;->CheckBoxPreference_disableDependentsState:I
-Lcom/android/internal/R$styleable;->CheckBoxPreference_summaryOff:I
-Lcom/android/internal/R$styleable;->CheckBoxPreference_summaryOn:I
-Lcom/android/internal/R$styleable;->CheckedTextView:[I
-Lcom/android/internal/R$styleable;->CheckedTextView_checked:I
-Lcom/android/internal/R$styleable;->CheckedTextView_checkMark:I
-Lcom/android/internal/R$styleable;->CompoundButton:[I
-Lcom/android/internal/R$styleable;->CompoundButton_button:I
-Lcom/android/internal/R$styleable;->CompoundButton_checked:I
-Lcom/android/internal/R$styleable;->ContactsDataKind:[I
-Lcom/android/internal/R$styleable;->DatePicker:[I
-Lcom/android/internal/R$styleable;->DialogPreference:[I
-Lcom/android/internal/R$styleable;->DialogPreference_dialogTitle:I
-Lcom/android/internal/R$styleable;->Dream:[I
-Lcom/android/internal/R$styleable;->EdgeEffect:[I
-Lcom/android/internal/R$styleable;->EdgeEffect_colorEdgeEffect:I
-Lcom/android/internal/R$styleable;->FastScroll:[I
-Lcom/android/internal/R$styleable;->FrameLayout:[I
-Lcom/android/internal/R$styleable;->FrameLayout_Layout:[I
-Lcom/android/internal/R$styleable;->Gallery:[I
-Lcom/android/internal/R$styleable;->GridView:[I
-Lcom/android/internal/R$styleable;->IconMenuView:[I
-Lcom/android/internal/R$styleable;->ImageView:[I
-Lcom/android/internal/R$styleable;->ImageView_scaleType:I
-Lcom/android/internal/R$styleable;->ImageView_src:I
-Lcom/android/internal/R$styleable;->Keyboard:[I
-Lcom/android/internal/R$styleable;->KeyboardView:[I
-Lcom/android/internal/R$styleable;->Keyboard_Key:[I
-Lcom/android/internal/R$styleable;->Keyboard_Row:[I
-Lcom/android/internal/R$styleable;->ListPreference:[I
-Lcom/android/internal/R$styleable;->ListPreference_entries:I
-Lcom/android/internal/R$styleable;->ListView:[I
-Lcom/android/internal/R$styleable;->ListView_divider:I
-Lcom/android/internal/R$styleable;->ListView_dividerHeight:I
-Lcom/android/internal/R$styleable;->ListView_entries:I
-Lcom/android/internal/R$styleable;->ListView_footerDividersEnabled:I
-Lcom/android/internal/R$styleable;->ListView_headerDividersEnabled:I
-Lcom/android/internal/R$styleable;->ListView_overScrollFooter:I
-Lcom/android/internal/R$styleable;->ListView_overScrollHeader:I
-Lcom/android/internal/R$styleable;->MapView:[I
-Lcom/android/internal/R$styleable;->MapView_apiKey:I
-Lcom/android/internal/R$styleable;->MenuGroup:[I
-Lcom/android/internal/R$styleable;->MenuItem:[I
-Lcom/android/internal/R$styleable;->NumberPicker:[I
-Lcom/android/internal/R$styleable;->PopupWindow:[I
-Lcom/android/internal/R$styleable;->PopupWindow_popupAnimationStyle:I
-Lcom/android/internal/R$styleable;->PopupWindow_popupBackground:I
-Lcom/android/internal/R$styleable;->Preference:[I
-Lcom/android/internal/R$styleable;->PreferenceGroup:[I
-Lcom/android/internal/R$styleable;->PreferenceGroup_orderingFromXml:I
-Lcom/android/internal/R$styleable;->Preference_defaultValue:I
-Lcom/android/internal/R$styleable;->Preference_dependency:I
-Lcom/android/internal/R$styleable;->Preference_enabled:I
-Lcom/android/internal/R$styleable;->Preference_fragment:I
-Lcom/android/internal/R$styleable;->Preference_icon:I
-Lcom/android/internal/R$styleable;->Preference_key:I
-Lcom/android/internal/R$styleable;->Preference_layout:I
-Lcom/android/internal/R$styleable;->Preference_order:I
-Lcom/android/internal/R$styleable;->Preference_persistent:I
-Lcom/android/internal/R$styleable;->Preference_selectable:I
-Lcom/android/internal/R$styleable;->Preference_shouldDisableView:I
-Lcom/android/internal/R$styleable;->Preference_summary:I
-Lcom/android/internal/R$styleable;->Preference_title:I
-Lcom/android/internal/R$styleable;->Preference_widgetLayout:I
-Lcom/android/internal/R$styleable;->ProgressBar:[I
-Lcom/android/internal/R$styleable;->QuickContactBadge:[I
-Lcom/android/internal/R$styleable;->RingtonePreference:[I
-Lcom/android/internal/R$styleable;->ScrollView:[I
-Lcom/android/internal/R$styleable;->ScrollView_fillViewport:I
-Lcom/android/internal/R$styleable;->SelectionModeDrawables:[I
-Lcom/android/internal/R$styleable;->Switch:[I
-Lcom/android/internal/R$styleable;->SwitchPreference:[I
-Lcom/android/internal/R$styleable;->SyncAdapter:[I
-Lcom/android/internal/R$styleable;->SyncAdapter_accountType:I
-Lcom/android/internal/R$styleable;->SyncAdapter_allowParallelSyncs:I
-Lcom/android/internal/R$styleable;->SyncAdapter_contentAuthority:I
-Lcom/android/internal/R$styleable;->SyncAdapter_isAlwaysSyncable:I
-Lcom/android/internal/R$styleable;->SyncAdapter_settingsActivity:I
-Lcom/android/internal/R$styleable;->SyncAdapter_supportsUploading:I
-Lcom/android/internal/R$styleable;->SyncAdapter_userVisible:I
-Lcom/android/internal/R$styleable;->TabWidget:[I
-Lcom/android/internal/R$styleable;->TextAppearance:[I
-Lcom/android/internal/R$styleable;->TextAppearance_fontFamily:I
-Lcom/android/internal/R$styleable;->TextAppearance_textAllCaps:I
-Lcom/android/internal/R$styleable;->TextAppearance_textColor:I
-Lcom/android/internal/R$styleable;->TextAppearance_textColorHighlight:I
-Lcom/android/internal/R$styleable;->TextAppearance_textColorHint:I
-Lcom/android/internal/R$styleable;->TextAppearance_textColorLink:I
-Lcom/android/internal/R$styleable;->TextAppearance_textSize:I
-Lcom/android/internal/R$styleable;->TextAppearance_textStyle:I
-Lcom/android/internal/R$styleable;->TextAppearance_typeface:I
-Lcom/android/internal/R$styleable;->TextClock:[I
-Lcom/android/internal/R$styleable;->TextView:[I
-Lcom/android/internal/R$styleable;->TextViewAppearance:[I
-Lcom/android/internal/R$styleable;->TextViewAppearance_textAppearance:I
-Lcom/android/internal/R$styleable;->TextView_autoLink:I
-Lcom/android/internal/R$styleable;->TextView_autoText:I
-Lcom/android/internal/R$styleable;->TextView_bufferType:I
-Lcom/android/internal/R$styleable;->TextView_capitalize:I
-Lcom/android/internal/R$styleable;->TextView_cursorVisible:I
-Lcom/android/internal/R$styleable;->TextView_digits:I
-Lcom/android/internal/R$styleable;->TextView_drawableBottom:I
-Lcom/android/internal/R$styleable;->TextView_drawableEnd:I
-Lcom/android/internal/R$styleable;->TextView_drawableLeft:I
-Lcom/android/internal/R$styleable;->TextView_drawablePadding:I
-Lcom/android/internal/R$styleable;->TextView_drawableRight:I
-Lcom/android/internal/R$styleable;->TextView_drawableStart:I
-Lcom/android/internal/R$styleable;->TextView_drawableTop:I
-Lcom/android/internal/R$styleable;->TextView_editable:I
-Lcom/android/internal/R$styleable;->TextView_editorExtras:I
-Lcom/android/internal/R$styleable;->TextView_ellipsize:I
-Lcom/android/internal/R$styleable;->TextView_ems:I
-Lcom/android/internal/R$styleable;->TextView_enabled:I
-Lcom/android/internal/R$styleable;->TextView_freezesText:I
-Lcom/android/internal/R$styleable;->TextView_gravity:I
-Lcom/android/internal/R$styleable;->TextView_height:I
-Lcom/android/internal/R$styleable;->TextView_hint:I
-Lcom/android/internal/R$styleable;->TextView_imeActionId:I
-Lcom/android/internal/R$styleable;->TextView_imeActionLabel:I
-Lcom/android/internal/R$styleable;->TextView_imeOptions:I
-Lcom/android/internal/R$styleable;->TextView_includeFontPadding:I
-Lcom/android/internal/R$styleable;->TextView_inputMethod:I
-Lcom/android/internal/R$styleable;->TextView_inputType:I
-Lcom/android/internal/R$styleable;->TextView_lines:I
-Lcom/android/internal/R$styleable;->TextView_lineSpacingExtra:I
-Lcom/android/internal/R$styleable;->TextView_lineSpacingMultiplier:I
-Lcom/android/internal/R$styleable;->TextView_linksClickable:I
-Lcom/android/internal/R$styleable;->TextView_marqueeRepeatLimit:I
-Lcom/android/internal/R$styleable;->TextView_maxEms:I
-Lcom/android/internal/R$styleable;->TextView_maxHeight:I
-Lcom/android/internal/R$styleable;->TextView_maxLength:I
-Lcom/android/internal/R$styleable;->TextView_maxLines:I
-Lcom/android/internal/R$styleable;->TextView_maxWidth:I
-Lcom/android/internal/R$styleable;->TextView_minEms:I
-Lcom/android/internal/R$styleable;->TextView_minHeight:I
-Lcom/android/internal/R$styleable;->TextView_minLines:I
-Lcom/android/internal/R$styleable;->TextView_minWidth:I
-Lcom/android/internal/R$styleable;->TextView_numeric:I
-Lcom/android/internal/R$styleable;->TextView_password:I
-Lcom/android/internal/R$styleable;->TextView_phoneNumber:I
-Lcom/android/internal/R$styleable;->TextView_privateImeOptions:I
-Lcom/android/internal/R$styleable;->TextView_scrollHorizontally:I
-Lcom/android/internal/R$styleable;->TextView_selectAllOnFocus:I
-Lcom/android/internal/R$styleable;->TextView_shadowColor:I
-Lcom/android/internal/R$styleable;->TextView_shadowDx:I
-Lcom/android/internal/R$styleable;->TextView_shadowDy:I
-Lcom/android/internal/R$styleable;->TextView_shadowRadius:I
-Lcom/android/internal/R$styleable;->TextView_singleLine:I
-Lcom/android/internal/R$styleable;->TextView_text:I
-Lcom/android/internal/R$styleable;->TextView_textAllCaps:I
-Lcom/android/internal/R$styleable;->TextView_textAppearance:I
-Lcom/android/internal/R$styleable;->TextView_textColor:I
-Lcom/android/internal/R$styleable;->TextView_textColorHighlight:I
-Lcom/android/internal/R$styleable;->TextView_textColorHint:I
-Lcom/android/internal/R$styleable;->TextView_textColorLink:I
-Lcom/android/internal/R$styleable;->TextView_textCursorDrawable:I
-Lcom/android/internal/R$styleable;->TextView_textEditSuggestionItemLayout:I
-Lcom/android/internal/R$styleable;->TextView_textIsSelectable:I
-Lcom/android/internal/R$styleable;->TextView_textScaleX:I
-Lcom/android/internal/R$styleable;->TextView_textSelectHandle:I
-Lcom/android/internal/R$styleable;->TextView_textSelectHandleLeft:I
-Lcom/android/internal/R$styleable;->TextView_textSelectHandleRight:I
-Lcom/android/internal/R$styleable;->TextView_textSize:I
-Lcom/android/internal/R$styleable;->TextView_textStyle:I
-Lcom/android/internal/R$styleable;->TextView_typeface:I
-Lcom/android/internal/R$styleable;->TextView_width:I
-Lcom/android/internal/R$styleable;->Theme:[I
-Lcom/android/internal/R$styleable;->TwoLineListItem:[I
-Lcom/android/internal/R$styleable;->View:[I
-Lcom/android/internal/R$styleable;->ViewAnimator:[I
-Lcom/android/internal/R$styleable;->ViewFlipper:[I
-Lcom/android/internal/R$styleable;->ViewGroup_Layout:[I
-Lcom/android/internal/R$styleable;->ViewGroup_Layout_layout_height:I
-Lcom/android/internal/R$styleable;->ViewGroup_Layout_layout_width:I
-Lcom/android/internal/R$styleable;->ViewStub:[I
-Lcom/android/internal/R$styleable;->ViewStub_inflatedId:I
-Lcom/android/internal/R$styleable;->ViewStub_layout:I
-Lcom/android/internal/R$styleable;->View_background:I
-Lcom/android/internal/R$styleable;->View_clickable:I
-Lcom/android/internal/R$styleable;->View_focusable:I
-Lcom/android/internal/R$styleable;->View_id:I
-Lcom/android/internal/R$styleable;->View_longClickable:I
-Lcom/android/internal/R$styleable;->WallpaperPreviewInfo:[I
-Lcom/android/internal/R$styleable;->Window:[I
-Lcom/android/internal/R$styleable;->Window_windowActionBarFullscreenDecorLayout:I
-Lcom/android/internal/R$styleable;->Window_windowBackground:I
-Lcom/android/internal/R$styleable;->Window_windowFullscreen:I
-Lcom/android/internal/R$styleable;->Window_windowIsFloating:I
-Lcom/android/internal/R$styleable;->Window_windowIsTranslucent:I
-Lcom/android/internal/R$styleable;->Window_windowShowWallpaper:I
-Lcom/android/internal/R$xml;->power_profile:I
 Lcom/android/internal/statusbar/IStatusBar$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/statusbar/IStatusBar;
 Lcom/android/internal/statusbar/IStatusBarService$Stub;-><init>()V
 Lcom/android/internal/statusbar/IStatusBarService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/statusbar/IStatusBarService;
 Lcom/android/internal/telecom/ITelecomService$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telecom/ITelecomService;
-Lcom/android/internal/telephony/Call$State;->ALERTING:Lcom/android/internal/telephony/Call$State;
-Lcom/android/internal/telephony/Call$State;->DIALING:Lcom/android/internal/telephony/Call$State;
-Lcom/android/internal/telephony/Call$State;->DISCONNECTED:Lcom/android/internal/telephony/Call$State;
-Lcom/android/internal/telephony/Call$State;->DISCONNECTING:Lcom/android/internal/telephony/Call$State;
-Lcom/android/internal/telephony/Call$State;->HOLDING:Lcom/android/internal/telephony/Call$State;
-Lcom/android/internal/telephony/Call$State;->IDLE:Lcom/android/internal/telephony/Call$State;
-Lcom/android/internal/telephony/Call$State;->INCOMING:Lcom/android/internal/telephony/Call$State;
-Lcom/android/internal/telephony/Call$State;->values()[Lcom/android/internal/telephony/Call$State;
-Lcom/android/internal/telephony/Call$State;->WAITING:Lcom/android/internal/telephony/Call$State;
-Lcom/android/internal/telephony/Call;-><init>()V
-Lcom/android/internal/telephony/CallForwardInfo;-><init>()V
-Lcom/android/internal/telephony/CallTracker;-><init>()V
-Lcom/android/internal/telephony/cat/AppInterface$CommandType;->values()[Lcom/android/internal/telephony/cat/AppInterface$CommandType;
-Lcom/android/internal/telephony/cat/ResponseData;-><init>()V
-Lcom/android/internal/telephony/cat/ResultCode;->values()[Lcom/android/internal/telephony/cat/ResultCode;
-Lcom/android/internal/telephony/cat/RilMessageDecoder;->mCurrentRilMessage:Lcom/android/internal/telephony/cat/RilMessage;
-Lcom/android/internal/telephony/cat/RilMessageDecoder;->sendCmdForExecution(Lcom/android/internal/telephony/cat/RilMessage;)V
-Lcom/android/internal/telephony/cat/RilMessageDecoder;->sendStartDecodingMessageParams(Lcom/android/internal/telephony/cat/RilMessage;)V
-Lcom/android/internal/telephony/cat/ValueObject;-><init>()V
-Lcom/android/internal/telephony/cat/ValueParser;->retrieveDeviceIdentities(Lcom/android/internal/telephony/cat/ComprehensionTlv;)Lcom/android/internal/telephony/cat/DeviceIdentities;
-Lcom/android/internal/telephony/cdma/sms/BearerData$CodingException;-><init>(Ljava/lang/String;)V
-Lcom/android/internal/telephony/cdma/sms/BearerData$TimeStamp;-><init>()V
-Lcom/android/internal/telephony/cdma/sms/BearerData;-><init>()V
-Lcom/android/internal/telephony/cdma/sms/BearerData;->countAsciiSeptets(Ljava/lang/CharSequence;Z)I
-Lcom/android/internal/telephony/cdma/sms/BearerData;->decodeUserDataPayload(Lcom/android/internal/telephony/cdma/sms/UserData;Z)V
-Lcom/android/internal/telephony/cdma/sms/BearerData;->displayMode:I
-Lcom/android/internal/telephony/cdma/sms/BearerData;->encode(Lcom/android/internal/telephony/cdma/sms/BearerData;)[B
-Lcom/android/internal/telephony/cdma/sms/BearerData;->encode7bitAscii(Ljava/lang/String;Z)[B
-Lcom/android/internal/telephony/cdma/sms/BearerData;->getBitsForNumFields(II)I
-Lcom/android/internal/telephony/cdma/sms/BearerData;->hasUserDataHeader:Z
-Lcom/android/internal/telephony/cdma/sms/BearerData;->messageId:I
-Lcom/android/internal/telephony/cdma/sms/BearerData;->msgCenterTimeStamp:Lcom/android/internal/telephony/cdma/sms/BearerData$TimeStamp;
-Lcom/android/internal/telephony/cdma/sms/BearerData;->priority:I
-Lcom/android/internal/telephony/cdma/sms/BearerData;->priorityIndicatorSet:Z
-Lcom/android/internal/telephony/cdma/sms/BearerData;->userData:Lcom/android/internal/telephony/cdma/sms/UserData;
-Lcom/android/internal/telephony/cdma/sms/CdmaSmsAddress;-><init>()V
-Lcom/android/internal/telephony/cdma/sms/CdmaSmsAddress;->digitMode:I
-Lcom/android/internal/telephony/cdma/sms/CdmaSmsAddress;->numberMode:I
-Lcom/android/internal/telephony/cdma/sms/CdmaSmsAddress;->numberOfDigits:I
-Lcom/android/internal/telephony/cdma/sms/CdmaSmsAddress;->numberPlan:I
-Lcom/android/internal/telephony/cdma/sms/CdmaSmsAddress;->parse(Ljava/lang/String;)Lcom/android/internal/telephony/cdma/sms/CdmaSmsAddress;
-Lcom/android/internal/telephony/cdma/sms/SmsEnvelope;-><init>()V
-Lcom/android/internal/telephony/cdma/sms/SmsEnvelope;->bearerData:[B
-Lcom/android/internal/telephony/cdma/sms/SmsEnvelope;->serviceCategory:I
-Lcom/android/internal/telephony/cdma/sms/SmsEnvelope;->teleService:I
-Lcom/android/internal/telephony/cdma/sms/UserData;-><init>()V
-Lcom/android/internal/telephony/cdma/sms/UserData;->charToAscii:Landroid/util/SparseIntArray;
-Lcom/android/internal/telephony/cdma/sms/UserData;->msgEncoding:I
-Lcom/android/internal/telephony/cdma/sms/UserData;->msgEncodingSet:Z
-Lcom/android/internal/telephony/cdma/sms/UserData;->numFields:I
-Lcom/android/internal/telephony/cdma/sms/UserData;->payload:[B
-Lcom/android/internal/telephony/cdma/sms/UserData;->payloadStr:Ljava/lang/String;
-Lcom/android/internal/telephony/cdma/sms/UserData;->userDataHeader:Lcom/android/internal/telephony/SmsHeader;
-Lcom/android/internal/telephony/cdma/SmsMessage$SubmitPdu;-><init>()V
-Lcom/android/internal/telephony/cdma/SmsMessage;-><init>()V
-Lcom/android/internal/telephony/cdma/SmsMessage;->calculateLength(Ljava/lang/CharSequence;ZZ)Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;
-Lcom/android/internal/telephony/cdma/SmsMessage;->createFromEfRecord(I[B)Lcom/android/internal/telephony/cdma/SmsMessage;
-Lcom/android/internal/telephony/cdma/SmsMessage;->createFromPdu([B)Lcom/android/internal/telephony/cdma/SmsMessage;
-Lcom/android/internal/telephony/cdma/SmsMessage;->getIncomingSmsFingerprint()[B
-Lcom/android/internal/telephony/cdma/SmsMessage;->getMessageType()I
-Lcom/android/internal/telephony/cdma/SmsMessage;->getNextMessageId()I
-Lcom/android/internal/telephony/cdma/SmsMessage;->getNumOfVoicemails()I
-Lcom/android/internal/telephony/cdma/SmsMessage;->getSubmitPdu(Ljava/lang/String;Lcom/android/internal/telephony/cdma/sms/UserData;Z)Lcom/android/internal/telephony/cdma/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/cdma/SmsMessage;->getSubmitPdu(Ljava/lang/String;Lcom/android/internal/telephony/cdma/sms/UserData;ZI)Lcom/android/internal/telephony/cdma/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/cdma/SmsMessage;->getSubmitPdu(Ljava/lang/String;Ljava/lang/String;I[BZ)Lcom/android/internal/telephony/cdma/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/cdma/SmsMessage;->getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLcom/android/internal/telephony/SmsHeader;)Lcom/android/internal/telephony/cdma/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/cdma/SmsMessage;->getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLcom/android/internal/telephony/SmsHeader;I)Lcom/android/internal/telephony/cdma/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/cdma/SmsMessage;->getTeleService()I
-Lcom/android/internal/telephony/cdma/SmsMessage;->isStatusReportMessage()Z
-Lcom/android/internal/telephony/cdma/SmsMessage;->mBearerData:Lcom/android/internal/telephony/cdma/sms/BearerData;
-Lcom/android/internal/telephony/cdma/SmsMessage;->mEnvelope:Lcom/android/internal/telephony/cdma/sms/SmsEnvelope;
-Lcom/android/internal/telephony/cdma/SmsMessage;->parseSms()V
-Lcom/android/internal/telephony/cdma/SmsMessage;->privateGetSubmitPdu(Ljava/lang/String;ZLcom/android/internal/telephony/cdma/sms/UserData;)Lcom/android/internal/telephony/cdma/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/DctConstants$Activity;->DATAIN:Lcom/android/internal/telephony/DctConstants$Activity;
-Lcom/android/internal/telephony/DctConstants$Activity;->DATAINANDOUT:Lcom/android/internal/telephony/DctConstants$Activity;
-Lcom/android/internal/telephony/DctConstants$Activity;->DATAOUT:Lcom/android/internal/telephony/DctConstants$Activity;
-Lcom/android/internal/telephony/DctConstants$Activity;->DORMANT:Lcom/android/internal/telephony/DctConstants$Activity;
-Lcom/android/internal/telephony/DctConstants$Activity;->values()[Lcom/android/internal/telephony/DctConstants$Activity;
-Lcom/android/internal/telephony/DctConstants$State;->CONNECTED:Lcom/android/internal/telephony/DctConstants$State;
-Lcom/android/internal/telephony/DctConstants$State;->CONNECTING:Lcom/android/internal/telephony/DctConstants$State;
-Lcom/android/internal/telephony/DctConstants$State;->DISCONNECTING:Lcom/android/internal/telephony/DctConstants$State;
-Lcom/android/internal/telephony/DctConstants$State;->FAILED:Lcom/android/internal/telephony/DctConstants$State;
-Lcom/android/internal/telephony/DctConstants$State;->IDLE:Lcom/android/internal/telephony/DctConstants$State;
-Lcom/android/internal/telephony/DctConstants$State;->RETRYING:Lcom/android/internal/telephony/DctConstants$State;
-Lcom/android/internal/telephony/DctConstants$State;->values()[Lcom/android/internal/telephony/DctConstants$State;
-Lcom/android/internal/telephony/DriverCall$State;->values()[Lcom/android/internal/telephony/DriverCall$State;
-Lcom/android/internal/telephony/gsm/GsmCellBroadcastHandler$SmsCbConcatInfo;-><init>(Lcom/android/internal/telephony/gsm/SmsCbHeader;Landroid/telephony/SmsCbLocation;)V
-Lcom/android/internal/telephony/gsm/GsmCellBroadcastHandler$SmsCbConcatInfo;->matchesLocation(Ljava/lang/String;II)Z
-Lcom/android/internal/telephony/gsm/GsmCellBroadcastHandler;->mSmsCbPageMap:Ljava/util/HashMap;
-Lcom/android/internal/telephony/gsm/GsmInboundSmsHandler;->acknowledgeLastIncomingSms(ZILandroid/os/Message;)V
-Lcom/android/internal/telephony/gsm/GsmMmiCode;-><init>(Lcom/android/internal/telephony/GsmCdmaPhone;Lcom/android/internal/telephony/uicc/UiccCardApplication;)V
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->getCLIRMode()I
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->getScString()Ljava/lang/CharSequence;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->isActivate()Z
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->isDeactivate()Z
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->isErasure()Z
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->isInterrogate()Z
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->isRegister()Z
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->isServiceCodeCallBarring(Ljava/lang/String;)Z
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->isServiceCodeCallForwarding(Ljava/lang/String;)Z
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->isTemporaryModeCLIR()Z
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->makeEmptyNull(Ljava/lang/String;)Ljava/lang/String;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->mContext:Landroid/content/Context;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->mDialingNumber:Ljava/lang/String;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->mIccRecords:Lcom/android/internal/telephony/uicc/IccRecords;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->mPhone:Lcom/android/internal/telephony/GsmCdmaPhone;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->mSc:Ljava/lang/String;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->mSia:Ljava/lang/String;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->mSib:Ljava/lang/String;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->mSic:Ljava/lang/String;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->newFromDialString(Ljava/lang/String;Lcom/android/internal/telephony/GsmCdmaPhone;Lcom/android/internal/telephony/uicc/UiccCardApplication;)Lcom/android/internal/telephony/gsm/GsmMmiCode;
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->processCode()V
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->siToServiceClass(Ljava/lang/String;)I
-Lcom/android/internal/telephony/gsm/GsmMmiCode;->sPatternSuppService:Ljava/util/regex/Pattern;
-Lcom/android/internal/telephony/gsm/GsmSmsAddress;-><init>([BII)V
-Lcom/android/internal/telephony/gsm/GsmSmsAddress;->isCphsVoiceMessageClear()Z
-Lcom/android/internal/telephony/gsm/GsmSmsAddress;->isCphsVoiceMessageSet()Z
-Lcom/android/internal/telephony/gsm/GsmSMSDispatcher;->getFormat()Ljava/lang/String;
-Lcom/android/internal/telephony/gsm/GsmSMSDispatcher;->mGsmInboundSmsHandler:Lcom/android/internal/telephony/gsm/GsmInboundSmsHandler;
-Lcom/android/internal/telephony/gsm/GsmSMSDispatcher;->sendSms(Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;)V
-Lcom/android/internal/telephony/gsm/SimTlv;-><init>([BII)V
-Lcom/android/internal/telephony/gsm/SimTlv;->getData()[B
-Lcom/android/internal/telephony/gsm/SimTlv;->getTag()I
-Lcom/android/internal/telephony/gsm/SimTlv;->isValidObject()Z
-Lcom/android/internal/telephony/gsm/SimTlv;->mHasValidTlvObject:Z
-Lcom/android/internal/telephony/gsm/SimTlv;->nextObject()Z
-Lcom/android/internal/telephony/gsm/SmsCbHeader;-><init>([B)V
-Lcom/android/internal/telephony/gsm/SmsCbHeader;->getGeographicalScope()I
-Lcom/android/internal/telephony/gsm/SmsCbHeader;->getNumberOfPages()I
-Lcom/android/internal/telephony/gsm/SmsCbHeader;->getPageIndex()I
-Lcom/android/internal/telephony/gsm/SmsCbHeader;->getSerialNumber()I
-Lcom/android/internal/telephony/gsm/SmsCbHeader;->getServiceCategory()I
-Lcom/android/internal/telephony/gsm/SmsCbHeader;->mMessageIdentifier:I
-Lcom/android/internal/telephony/gsm/SmsMessage$PduParser;-><init>([B)V
-Lcom/android/internal/telephony/gsm/SmsMessage$PduParser;->getByte()I
-Lcom/android/internal/telephony/gsm/SmsMessage$PduParser;->getUserData()[B
-Lcom/android/internal/telephony/gsm/SmsMessage$PduParser;->getUserDataUCS2(I)Ljava/lang/String;
-Lcom/android/internal/telephony/gsm/SmsMessage$PduParser;->mCur:I
-Lcom/android/internal/telephony/gsm/SmsMessage$PduParser;->mPdu:[B
-Lcom/android/internal/telephony/gsm/SmsMessage$PduParser;->mUserDataSeptetPadding:I
-Lcom/android/internal/telephony/gsm/SmsMessage$SubmitPdu;-><init>()V
-Lcom/android/internal/telephony/gsm/SmsMessage;-><init>()V
-Lcom/android/internal/telephony/gsm/SmsMessage;->calculateLength(Ljava/lang/CharSequence;Z)Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;
-Lcom/android/internal/telephony/gsm/SmsMessage;->createFromEfRecord(I[B)Lcom/android/internal/telephony/gsm/SmsMessage;
-Lcom/android/internal/telephony/gsm/SmsMessage;->createFromPdu([B)Lcom/android/internal/telephony/gsm/SmsMessage;
-Lcom/android/internal/telephony/gsm/SmsMessage;->encodeUCS2(Ljava/lang/String;[B)[B
-Lcom/android/internal/telephony/gsm/SmsMessage;->getStatus()I
-Lcom/android/internal/telephony/gsm/SmsMessage;->getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Lcom/android/internal/telephony/gsm/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/gsm/SmsMessage;->getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZI)Lcom/android/internal/telephony/gsm/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/gsm/SmsMessage;->getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z[B)Lcom/android/internal/telephony/gsm/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/gsm/SmsMessage;->getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z[BIII)Lcom/android/internal/telephony/gsm/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/gsm/SmsMessage;->getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z[BIIII)Lcom/android/internal/telephony/gsm/SmsMessage$SubmitPdu;
-Lcom/android/internal/telephony/gsm/SmsMessage;->getSubmitPduHead(Ljava/lang/String;Ljava/lang/String;BZLcom/android/internal/telephony/gsm/SmsMessage$SubmitPdu;)Ljava/io/ByteArrayOutputStream;
-Lcom/android/internal/telephony/gsm/SmsMessage;->isMWIClearMessage()Z
-Lcom/android/internal/telephony/gsm/SmsMessage;->isMwiDontStore()Z
-Lcom/android/internal/telephony/gsm/SmsMessage;->isMWISetMessage()Z
-Lcom/android/internal/telephony/gsm/SmsMessage;->isStatusReportMessage()Z
-Lcom/android/internal/telephony/gsm/UsimPhoneBookManager;->loadEfFilesFromUsim()Ljava/util/ArrayList;
-Lcom/android/internal/telephony/gsm/UsimPhoneBookManager;->log(Ljava/lang/String;)V
-Lcom/android/internal/telephony/gsm/UsimPhoneBookManager;->mFh:Lcom/android/internal/telephony/uicc/IccFileHandler;
-Lcom/android/internal/telephony/gsm/UsimPhoneBookManager;->mLock:Ljava/lang/Object;
-Lcom/android/internal/telephony/gsm/UsimPhoneBookManager;->mPhoneBookRecords:Ljava/util/ArrayList;
-Lcom/android/internal/telephony/gsm/UsimPhoneBookManager;->reset()V
-Lcom/android/internal/telephony/GsmAlphabet$TextEncodingDetails;-><init>()V
-Lcom/android/internal/telephony/GsmCdmaConnection$MyHandler;-><init>(Lcom/android/internal/telephony/GsmCdmaConnection;Landroid/os/Looper;)V
-Lcom/android/internal/telephony/IccCardConstants$State;->ABSENT:Lcom/android/internal/telephony/IccCardConstants$State;
-Lcom/android/internal/telephony/IccCardConstants$State;->CARD_IO_ERROR:Lcom/android/internal/telephony/IccCardConstants$State;
-Lcom/android/internal/telephony/IccCardConstants$State;->NETWORK_LOCKED:Lcom/android/internal/telephony/IccCardConstants$State;
-Lcom/android/internal/telephony/IccCardConstants$State;->NOT_READY:Lcom/android/internal/telephony/IccCardConstants$State;
-Lcom/android/internal/telephony/IccCardConstants$State;->PERM_DISABLED:Lcom/android/internal/telephony/IccCardConstants$State;
-Lcom/android/internal/telephony/IccCardConstants$State;->PIN_REQUIRED:Lcom/android/internal/telephony/IccCardConstants$State;
-Lcom/android/internal/telephony/IccCardConstants$State;->PUK_REQUIRED:Lcom/android/internal/telephony/IccCardConstants$State;
-Lcom/android/internal/telephony/IccCardConstants$State;->READY:Lcom/android/internal/telephony/IccCardConstants$State;
-Lcom/android/internal/telephony/IccCardConstants$State;->UNKNOWN:Lcom/android/internal/telephony/IccCardConstants$State;
-Lcom/android/internal/telephony/IccCardConstants$State;->values()[Lcom/android/internal/telephony/IccCardConstants$State;
-Lcom/android/internal/telephony/IccProvider;-><init>()V
 Lcom/android/internal/telephony/IIccPhoneBook$Stub$Proxy;->mRemote:Landroid/os/IBinder;
 Lcom/android/internal/telephony/IIccPhoneBook$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IIccPhoneBook;
-Lcom/android/internal/telephony/IIccPhoneBook;->getAdnRecordsInEf(I)Ljava/util/List;
-Lcom/android/internal/telephony/IIccPhoneBook;->getAdnRecordsInEfForSubscriber(II)Ljava/util/List;
-Lcom/android/internal/telephony/IIccPhoneBook;->getAdnRecordsSize(I)[I
-Lcom/android/internal/telephony/IIccPhoneBook;->getAdnRecordsSizeForSubscriber(II)[I
-Lcom/android/internal/telephony/IIccPhoneBook;->updateAdnRecordsInEfBySearch(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
 Lcom/android/internal/telephony/IMms$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IMms;
-Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker$ExternalCallStateListener;-><init>(Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker;)V
-Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker$ExternalConnectionListener;-><init>(Lcom/android/internal/telephony/imsphone/ImsExternalCallTracker;)V
-Lcom/android/internal/telephony/imsphone/ImsPhone;->notifyCallForwardingIndicator()V
-Lcom/android/internal/telephony/imsphone/ImsPhone;->notifyPreciseCallStateChanged()V
-Lcom/android/internal/telephony/imsphone/ImsPhoneCall;->getImsCall()Lcom/android/ims/ImsCall;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->findConnection(Lcom/android/ims/ImsCall;)Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->getEcbmInterface()Lcom/android/ims/ImsEcbm;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mCallExpectedToResume:Lcom/android/ims/ImsCall;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mImsCallListener:Lcom/android/ims/ImsCall$Listener;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mImsManager:Lcom/android/ims/ImsManager;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->mUssdSession:Lcom/android/ims/ImsCall;
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->processCallStateChange(Lcom/android/ims/ImsCall;Lcom/android/internal/telephony/Call$State;I)V
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->processCallStateChange(Lcom/android/ims/ImsCall;Lcom/android/internal/telephony/Call$State;IZ)V
-Lcom/android/internal/telephony/imsphone/ImsPhoneCallTracker;->setVideoCallProvider(Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;Lcom/android/ims/ImsCall;)V
-Lcom/android/internal/telephony/imsphone/ImsPhoneConnection$MyHandler;-><init>(Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;Landroid/os/Looper;)V
-Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;->mImsCall:Lcom/android/ims/ImsCall;
-Lcom/android/internal/telephony/imsphone/ImsPhoneConnection;->update(Lcom/android/ims/ImsCall;Lcom/android/internal/telephony/Call$State;)Z
-Lcom/android/internal/telephony/InboundSmsHandler$SmsBroadcastReceiver;-><init>(Lcom/android/internal/telephony/InboundSmsHandler;Lcom/android/internal/telephony/InboundSmsTracker;)V
 Lcom/android/internal/telephony/IPhoneStateListener$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IPhoneStateListener;
 Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/telephony/IPhoneSubInfo$Stub$Proxy;->getDeviceId(Ljava/lang/String;)Ljava/lang/String;
@@ -1380,92 +353,9 @@
 Lcom/android/internal/telephony/ITelephonyRegistry$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/telephony/ITelephonyRegistry$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/ITelephonyRegistry;
 Lcom/android/internal/telephony/IWapPushManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/telephony/IWapPushManager;
-Lcom/android/internal/telephony/PhoneConstants$DataState;->CONNECTED:Lcom/android/internal/telephony/PhoneConstants$DataState;
-Lcom/android/internal/telephony/PhoneConstants$DataState;->CONNECTING:Lcom/android/internal/telephony/PhoneConstants$DataState;
-Lcom/android/internal/telephony/PhoneConstants$DataState;->DISCONNECTED:Lcom/android/internal/telephony/PhoneConstants$DataState;
-Lcom/android/internal/telephony/PhoneConstants$DataState;->SUSPENDED:Lcom/android/internal/telephony/PhoneConstants$DataState;
-Lcom/android/internal/telephony/PhoneConstants$DataState;->values()[Lcom/android/internal/telephony/PhoneConstants$DataState;
-Lcom/android/internal/telephony/PhoneConstants$State;->IDLE:Lcom/android/internal/telephony/PhoneConstants$State;
-Lcom/android/internal/telephony/PhoneConstants$State;->OFFHOOK:Lcom/android/internal/telephony/PhoneConstants$State;
-Lcom/android/internal/telephony/PhoneConstants$State;->RINGING:Lcom/android/internal/telephony/PhoneConstants$State;
-Lcom/android/internal/telephony/PhoneConstants$State;->values()[Lcom/android/internal/telephony/PhoneConstants$State;
-Lcom/android/internal/telephony/PhoneConstants;->PRESENTATION_ALLOWED:I
-Lcom/android/internal/telephony/PhoneConstants;->PRESENTATION_PAYPHONE:I
-Lcom/android/internal/telephony/PhoneConstants;->PRESENTATION_RESTRICTED:I
-Lcom/android/internal/telephony/PhoneConstants;->PRESENTATION_UNKNOWN:I
-Lcom/android/internal/telephony/RILConstants;->PREFERRED_NETWORK_MODE:I
-Lcom/android/internal/telephony/sip/SipPhone$SipCall;->hold()V
-Lcom/android/internal/telephony/sip/SipPhone$SipCall;->switchWith(Lcom/android/internal/telephony/sip/SipPhone$SipCall;)V
-Lcom/android/internal/telephony/sip/SipPhone$SipCall;->unhold()V
-Lcom/android/internal/telephony/sip/SipPhone;->log(Ljava/lang/String;)V
-Lcom/android/internal/telephony/sip/SipPhone;->loge(Ljava/lang/String;)V
-Lcom/android/internal/telephony/sip/SipPhone;->mBackgroundCall:Lcom/android/internal/telephony/sip/SipPhone$SipCall;
-Lcom/android/internal/telephony/sip/SipPhone;->mForegroundCall:Lcom/android/internal/telephony/sip/SipPhone$SipCall;
-Lcom/android/internal/telephony/Sms7BitEncodingTranslator;->DBG:Z
-Lcom/android/internal/telephony/Sms7BitEncodingTranslator;->mTranslationTableCDMA:Landroid/util/SparseIntArray;
-Lcom/android/internal/telephony/Sms7BitEncodingTranslator;->mTranslationTableCommon:Landroid/util/SparseIntArray;
-Lcom/android/internal/telephony/Sms7BitEncodingTranslator;->mTranslationTableGSM:Landroid/util/SparseIntArray;
-Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;->mApplicationName:Ljava/lang/String;
-Lcom/android/internal/telephony/SmsApplication;->configurePreferredActivity(Landroid/content/pm/PackageManager;Landroid/content/ComponentName;I)V
-Lcom/android/internal/telephony/SmsApplication;->getApplicationCollection(Landroid/content/Context;)Ljava/util/Collection;
-Lcom/android/internal/telephony/SmsApplication;->getDefaultMmsApplication(Landroid/content/Context;Z)Landroid/content/ComponentName;
-Lcom/android/internal/telephony/SmsApplication;->getDefaultRespondViaMessageApplication(Landroid/content/Context;Z)Landroid/content/ComponentName;
-Lcom/android/internal/telephony/SmsApplication;->getDefaultSmsApplication(Landroid/content/Context;Z)Landroid/content/ComponentName;
-Lcom/android/internal/telephony/SmsApplication;->getSmsApplicationData(Ljava/lang/String;Landroid/content/Context;)Lcom/android/internal/telephony/SmsApplication$SmsApplicationData;
-Lcom/android/internal/telephony/SmsApplication;->isDefaultSmsApplication(Landroid/content/Context;Ljava/lang/String;)Z
-Lcom/android/internal/telephony/SmsApplication;->setDefaultApplication(Ljava/lang/String;Landroid/content/Context;)V
-Lcom/android/internal/telephony/SmsApplication;->shouldWriteMessageForPackage(Ljava/lang/String;Landroid/content/Context;)Z
-Lcom/android/internal/telephony/SMSDispatcher$DataSmsSender;-><init>(Lcom/android/internal/telephony/SMSDispatcher;Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;)V
-Lcom/android/internal/telephony/SMSDispatcher$MultipartSmsSender;-><init>(Lcom/android/internal/telephony/SMSDispatcher;Ljava/util/ArrayList;[Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;)V
-Lcom/android/internal/telephony/SMSDispatcher$MultipartSmsSenderCallback;-><init>(Lcom/android/internal/telephony/SMSDispatcher;Lcom/android/internal/telephony/SMSDispatcher$MultipartSmsSender;)V
-Lcom/android/internal/telephony/SMSDispatcher$SmsSenderCallback;-><init>(Lcom/android/internal/telephony/SMSDispatcher;Lcom/android/internal/telephony/SMSDispatcher$SmsSender;)V
-Lcom/android/internal/telephony/SMSDispatcher$TextSmsSender;-><init>(Lcom/android/internal/telephony/SMSDispatcher;Lcom/android/internal/telephony/SMSDispatcher$SmsTracker;)V
-Lcom/android/internal/telephony/SmsHeader$ConcatRef;-><init>()V
-Lcom/android/internal/telephony/SmsHeader$PortAddrs;-><init>()V
-Lcom/android/internal/telephony/SmsMessageBase;-><init>()V
-Lcom/android/internal/telephony/TelephonyProperties;->PROPERTY_ICC_OPERATOR_NUMERIC:Ljava/lang/String;
-Lcom/android/internal/telephony/test/InterpreterEx;-><init>(Ljava/lang/String;)V
-Lcom/android/internal/telephony/test/SimulatedCommands;->acceptCall(Landroid/os/Message;)V
-Lcom/android/internal/telephony/test/SimulatedCommands;->mDcSuccess:Z
-Lcom/android/internal/telephony/test/SimulatedCommands;->resultFail(Landroid/os/Message;Ljava/lang/Object;Ljava/lang/Throwable;)V
-Lcom/android/internal/telephony/test/SimulatedCommands;->resultSuccess(Landroid/os/Message;Ljava/lang/Object;)V
-Lcom/android/internal/telephony/test/SimulatedCommands;->simulatedCallState:Lcom/android/internal/telephony/test/SimulatedGsmCallState;
-Lcom/android/internal/telephony/test/SimulatedCommands;->unimplemented(Landroid/os/Message;)V
-Lcom/android/internal/telephony/test/SimulatedCommandsVerifier;->getInstance()Lcom/android/internal/telephony/test/SimulatedCommandsVerifier;
-Lcom/android/internal/telephony/test/SimulatedCommandsVerifier;->setCallForward(IIILjava/lang/String;ILandroid/os/Message;)V
-Lcom/android/internal/telephony/test/SimulatedGsmCallState;->conference()Z
-Lcom/android/internal/telephony/test/SimulatedGsmCallState;->onChld(CC)Z
-Lcom/android/internal/telephony/test/SimulatedGsmCallState;->releaseActiveAcceptHeldOrWaiting()Z
-Lcom/android/internal/telephony/test/SimulatedGsmCallState;->releaseHeldOrUDUB()Z
-Lcom/android/internal/telephony/test/SimulatedGsmCallState;->separateCall(I)Z
-Lcom/android/internal/telephony/test/SimulatedGsmCallState;->switchActiveAndHeldOrWaiting()Z
-Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState;->values()[Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppState;
-Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType;->values()[Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$AppType;
-Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState;->values()[Lcom/android/internal/telephony/uicc/IccCardApplicationStatus$PersoSubState;
-Lcom/android/internal/telephony/uicc/IccCardApplicationStatus;-><init>()V
-Lcom/android/internal/telephony/uicc/IccRefreshResponse;-><init>()V
-Lcom/android/internal/telephony/uicc/IccUtils;->adnStringFieldToString([BII)Ljava/lang/String;
-Lcom/android/internal/telephony/uicc/IccUtils;->bcdToString([BII)Ljava/lang/String;
-Lcom/android/internal/telephony/uicc/IccUtils;->bytesToHexString([B)Ljava/lang/String;
-Lcom/android/internal/telephony/uicc/IccUtils;->cdmaBcdByteToInt(B)I
-Lcom/android/internal/telephony/uicc/IccUtils;->cdmaBcdToString([BII)Ljava/lang/String;
-Lcom/android/internal/telephony/uicc/IccUtils;->gsmBcdByteToInt(B)I
-Lcom/android/internal/telephony/uicc/IccUtils;->hexCharToInt(C)I
-Lcom/android/internal/telephony/uicc/IccUtils;->hexStringToBytes(Ljava/lang/String;)[B
-Lcom/android/internal/telephony/uicc/IccUtils;->networkNameToString([BII)Ljava/lang/String;
-Lcom/android/internal/telephony/uicc/IccUtils;->parseToBnW([BI)Landroid/graphics/Bitmap;
-Lcom/android/internal/telephony/uicc/IccUtils;->parseToRGB([BIZ)Landroid/graphics/Bitmap;
-Lcom/android/internal/telephony/uicc/SIMRecords$GetSpnFsmState;->values()[Lcom/android/internal/telephony/uicc/SIMRecords$GetSpnFsmState;
 Lcom/android/internal/textservice/ITextServicesManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
-Lcom/android/internal/util/MemInfoReader;-><init>()V
 Lcom/android/internal/view/IInputMethodManager$Stub$Proxy;-><init>(Landroid/os/IBinder;)V
 Lcom/android/internal/view/IInputMethodManager$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethodManager;
 Lcom/android/internal/view/IInputMethodSession$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/view/IInputMethodSession;
 Lcom/android/internal/widget/ILockSettings$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
 Lcom/android/internal/widget/IRemoteViewsFactory$Stub;->asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/IRemoteViewsFactory;
-Lcom/android/internal/widget/PointerLocationView$PointerState;-><init>()V
-Lcom/android/server/net/BaseNetworkObserver;-><init>()V
-Lcom/android/server/ResettableTimeout$T;-><init>(Lcom/android/server/ResettableTimeout;)V
-Lcom/google/android/gles_jni/EGLImpl;-><init>()V
-Lcom/google/android/gles_jni/GLImpl;-><init>()V
-Lcom/google/android/util/AbstractMessageParser$Token$Type;->values()[Lcom/google/android/util/AbstractMessageParser$Token$Type;
diff --git a/core/TEST_MAPPING b/core/TEST_MAPPING
new file mode 100644
index 0000000..fd571c9
--- /dev/null
+++ b/core/TEST_MAPPING
@@ -0,0 +1,24 @@
+{
+  "presubmit": [
+    {
+      "name": "FrameworksCoreTests",
+      "options": [
+        {
+          "include-filter": "android.view.inputmethod"
+        },
+        {
+          "include-filter": "com.android.internal.inputmethod"
+        },
+        {
+          "exclude-annotation": "androidx.test.filters.FlakyTest"
+        }
+      ],
+      "file_patterns": [
+        "core/java/com/android/internal/inputmethod/.*",
+        "core/java/android/view/inputmethod/.*",
+        "core/tests/coretests/src/android/view/inputmethod/.*",
+        "core/tests/coretests/src/com/android/internal/inputmethod/.*"
+      ]
+    }
+  ]
+}
diff --git a/core/java/android/accounts/AbstractAccountAuthenticator.java b/core/java/android/accounts/AbstractAccountAuthenticator.java
index 25cd342..6470a04 100644
--- a/core/java/android/accounts/AbstractAccountAuthenticator.java
+++ b/core/java/android/accounts/AbstractAccountAuthenticator.java
@@ -103,8 +103,6 @@
  * When writing an activity to satisfy these requests one must pass in the AccountManagerResponse
  * and return the result via that response when the activity finishes (or whenever else  the
  * activity author deems it is the correct time to respond).
- * The {@link AccountAuthenticatorActivity} handles this, so one may wish to extend that when
- * writing activities to handle these requests.
  */
 public abstract class AbstractAccountAuthenticator {
     private static final String TAG = "AccountAuthenticator";
diff --git a/core/java/android/accounts/AccountAuthenticatorActivity.java b/core/java/android/accounts/AccountAuthenticatorActivity.java
index 967aa04..65ba35f 100644
--- a/core/java/android/accounts/AccountAuthenticatorActivity.java
+++ b/core/java/android/accounts/AccountAuthenticatorActivity.java
@@ -32,7 +32,11 @@
  * This result will be sent as the result of the request when the activity finishes. If this
  * is never set or if it is set to null then error {@link AccountManager#ERROR_CODE_CANCELED}
  * will be called on the response.
+ *
+ * @deprecated Applications should extend Activity themselves. This class is not compatible with
+ *   AppCompat, and the functionality it provides is not complex.
  */
+@Deprecated
 public class AccountAuthenticatorActivity extends Activity {
     private AccountAuthenticatorResponse mAccountAuthenticatorResponse = null;
     private Bundle mResultBundle = null;
diff --git a/core/java/android/accounts/AccountManager.java b/core/java/android/accounts/AccountManager.java
index 26c2c0c..c80be8e 100644
--- a/core/java/android/accounts/AccountManager.java
+++ b/core/java/android/accounts/AccountManager.java
@@ -2226,6 +2226,8 @@
     }
 
     private abstract class AmsTask extends FutureTask<Bundle> implements AccountManagerFuture<Bundle> {
+
+
         @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
         final IAccountManagerResponse mResponse;
         @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
diff --git a/core/java/android/animation/ValueAnimator.java b/core/java/android/animation/ValueAnimator.java
index ebb03e7..764e599 100644
--- a/core/java/android/animation/ValueAnimator.java
+++ b/core/java/android/animation/ValueAnimator.java
@@ -296,6 +296,7 @@
     /**
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public static void setDurationScale(float durationScale) {
         sDurationScale = durationScale;
@@ -304,6 +305,7 @@
     /**
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public static float getDurationScale() {
         return sDurationScale;
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index 4828c74..151c03f 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -2797,6 +2797,7 @@
      * @see View#onMovedToDisplay(int, Configuration)
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public void onMovedToDisplay(int displayId, Configuration config) {
     }
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java
index 91b98c7..e8e4085 100644
--- a/core/java/android/app/ActivityManager.java
+++ b/core/java/android/app/ActivityManager.java
@@ -153,6 +153,12 @@
      */
     public static final int INSTR_FLAG_MOUNT_EXTERNAL_STORAGE_FULL = 1 << 1;
 
+    /**
+     * Disable test API access for the newly started instrumentation.
+     * @hide
+     */
+    public static final int INSTR_FLAG_DISABLE_TEST_API_CHECKS = 1 << 2;
+
     static final class UidObserver extends IUidObserver.Stub {
         final OnUidImportanceListener mListener;
         final Context mContext;
@@ -2893,6 +2899,7 @@
          *
          * @hide
          */
+        @UnsupportedAppUsage
         @TestApi
         public static final int IMPORTANCE_CANT_SAVE_STATE_PRE_26 = 170;
 
diff --git a/core/java/android/app/ActivityManagerNative.java b/core/java/android/app/ActivityManagerNative.java
index 37509e1..607ef18 100644
--- a/core/java/android/app/ActivityManagerNative.java
+++ b/core/java/android/app/ActivityManagerNative.java
@@ -25,6 +25,11 @@
  */
 @Deprecated
 public abstract class ActivityManagerNative {
+
+    @UnsupportedAppUsage
+    public ActivityManagerNative() {
+    }
+
     /**
      * Cast a Binder object into an activity manager interface, generating
      * a proxy if needed.
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index f0dcc51..4e8bee2 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -714,6 +714,9 @@
 
     static final class CreateServiceData {
         @UnsupportedAppUsage
+        CreateServiceData() {
+        }
+        @UnsupportedAppUsage
         IBinder token;
         @UnsupportedAppUsage
         ServiceInfo info;
@@ -755,6 +758,9 @@
 
     static final class AppBindData {
         @UnsupportedAppUsage
+        AppBindData() {
+        }
+        @UnsupportedAppUsage
         LoadedApk info;
         @UnsupportedAppUsage
         String processName;
diff --git a/core/java/android/app/AliasActivity.java b/core/java/android/app/AliasActivity.java
index 3756529..37be901 100644
--- a/core/java/android/app/AliasActivity.java
+++ b/core/java/android/app/AliasActivity.java
@@ -39,7 +39,10 @@
  * To use this activity, you should include in the manifest for the associated
  * component an entry named "android.app.alias".  It is a reference to an XML
  * resource describing an intent that launches the real application.
+ *
+ * @deprecated Use {@code <activity-alias>} or subclass Activity directly.
  */
+@Deprecated
 public class AliasActivity extends Activity {
     /**
      * This is the name under which you should store in your component the
diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java
index da4c038..aedf4b5 100644
--- a/core/java/android/app/AppOpsManager.java
+++ b/core/java/android/app/AppOpsManager.java
@@ -570,6 +570,7 @@
     @UnsupportedAppUsage
     public static final int OP_NONE = -1;
     /** @hide Access to coarse location information. */
+    @UnsupportedAppUsage
     @TestApi
     public static final int OP_COARSE_LOCATION = 0;
     /** @hide Access to fine location information. */
@@ -642,6 +643,7 @@
     @UnsupportedAppUsage
     public static final int OP_WRITE_SETTINGS = 23;
     /** @hide Required to draw on top of other apps. */
+    @UnsupportedAppUsage
     @TestApi
     public static final int OP_SYSTEM_ALERT_WINDOW = 24;
     /** @hide */
@@ -651,6 +653,7 @@
     @UnsupportedAppUsage
     public static final int OP_CAMERA = 26;
     /** @hide */
+    @UnsupportedAppUsage
     @TestApi
     public static final int OP_RECORD_AUDIO = 27;
     /** @hide */
@@ -798,6 +801,7 @@
     @UnsupportedAppUsage
     public static final int OP_MANAGE_IPSEC_TUNNELS = 75;
     /** @hide Any app start foreground service. */
+    @UnsupportedAppUsage
     @TestApi
     public static final int OP_START_FOREGROUND = 76;
     /** @hide */
@@ -2058,6 +2062,7 @@
      * Retrieve the permission associated with an operation, or null if there is not one.
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public static String opToPermission(int op) {
         return sOpPerms[op];
@@ -2090,6 +2095,7 @@
      * to the corresponding app op.
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public static int permissionToOpCode(String permission) {
         Integer boxedOpCode = sPermToOp.get(permission);
@@ -4578,6 +4584,7 @@
     }
 
     /** @hide */
+    @UnsupportedAppUsage
     @TestApi
     @RequiresPermission(android.Manifest.permission.MANAGE_APP_OPS_MODES)
     public void setMode(int code, int uid, String packageName, @Mode int mode) {
@@ -4905,6 +4912,7 @@
     /**
      * {@hide}
      */
+    @UnsupportedAppUsage
     @TestApi
     public static int strOpToOp(@NonNull String op) {
         Integer val = sOpStrToOp.get(op);
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index 360be35..835769f 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -3121,6 +3121,15 @@
     }
 
     @Override
+    public String[] getTelephonyPackageNames() {
+        try {
+            return mPM.getTelephonyPackageNames();
+        } catch (RemoteException e) {
+            throw e.rethrowAsRuntimeException();
+        }
+    }
+
+    @Override
     public String getSystemCaptionsServicePackageName() {
         try {
             return mPM.getSystemCaptionsServicePackageName();
diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java
index 69be171..d317c34 100644
--- a/core/java/android/app/ContextImpl.java
+++ b/core/java/android/app/ContextImpl.java
@@ -127,6 +127,13 @@
     }
 
     @Override
+    public Intent registerReceiverForAllUsers(BroadcastReceiver receiver, IntentFilter filter,
+            String broadcastPermission, Handler scheduler) {
+        return registerReceiverAsUser(
+                receiver, UserHandle.ALL, filter, broadcastPermission, scheduler);
+    }
+
+    @Override
     public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user,
             IntentFilter filter, String broadcastPermission, Handler scheduler) {
         if (receiver == null) {
@@ -1344,6 +1351,18 @@
     }
 
     @Override
+    public void sendOrderedBroadcast(Intent intent, String receiverPermission, String receiverAppOp,
+            Bundle options, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode,
+            String initialData, @Nullable Bundle initialExtras) {
+        int intAppOp = AppOpsManager.OP_NONE;
+        if (!TextUtils.isEmpty(receiverAppOp)) {
+            intAppOp = AppOpsManager.strOpToOp(receiverAppOp);
+        }
+        sendOrderedBroadcastAsUser(intent, getUser(), receiverPermission, intAppOp, options,
+                resultReceiver, scheduler, initialCode, initialData, initialExtras);
+    }
+
+    @Override
     @Deprecated
     public void sendStickyBroadcast(Intent intent) {
         warnIfCallingFromSystemProcess();
@@ -1520,6 +1539,13 @@
     }
 
     @Override
+    public Intent registerReceiverForAllUsers(BroadcastReceiver receiver,
+            IntentFilter filter, String broadcastPermission, Handler scheduler) {
+        return registerReceiverAsUser(receiver, UserHandle.ALL,
+                filter, broadcastPermission, scheduler);
+    }
+
+    @Override
     public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user,
             IntentFilter filter, String broadcastPermission, Handler scheduler) {
         return registerReceiverInternal(receiver, user.getIdentifier(),
@@ -2224,6 +2250,15 @@
     }
 
     @Override
+    public Context createContextAsUser(UserHandle user, @CreatePackageOptions int flags) {
+        try {
+            return createPackageContextAsUser(getPackageName(), flags, user);
+        } catch (NameNotFoundException e) {
+            throw new IllegalStateException("Own package not found: package=" + getPackageName());
+        }
+    }
+
+    @Override
     public Context createContextForSplit(String splitName) throws NameNotFoundException {
         if (!mPackageInfo.getApplicationInfo().requestsIsolatedSplitLoading()) {
             // All Splits are always loaded.
@@ -2321,6 +2356,7 @@
         return (mFlags & Context.CONTEXT_IGNORE_SECURITY) != 0;
     }
 
+    @UnsupportedAppUsage
     @TestApi
     @Override
     public Display getDisplay() {
diff --git a/core/java/android/app/ExpandableListActivity.java b/core/java/android/app/ExpandableListActivity.java
index e08f25a..22de878 100644
--- a/core/java/android/app/ExpandableListActivity.java
+++ b/core/java/android/app/ExpandableListActivity.java
@@ -150,7 +150,11 @@
  * 
  * @see #setListAdapter
  * @see android.widget.ExpandableListView
+ *
+ * @deprecated Use {@link androidx.recyclerview.widget.RecyclerView} or use
+ *   {@link android.widget.ExpandableListView} directly
  */
+@Deprecated
 public class ExpandableListActivity extends Activity implements
         OnCreateContextMenuListener,
         ExpandableListView.OnChildClickListener, ExpandableListView.OnGroupCollapseListener,
diff --git a/core/java/android/app/IActivityManager.aidl b/core/java/android/app/IActivityManager.aidl
index 48ca716..feaddda 100644
--- a/core/java/android/app/IActivityManager.aidl
+++ b/core/java/android/app/IActivityManager.aidl
@@ -122,6 +122,7 @@
             in String resultData, in Bundle map, in String[] requiredPermissions,
             int appOp, in Bundle options, boolean serialized, boolean sticky, int userId);
     void unbroadcastIntent(in IApplicationThread caller, in Intent intent, int userId);
+    @UnsupportedAppUsage
     oneway void finishReceiver(in IBinder who, int resultCode, in String resultData, in Bundle map,
             boolean abortBroadcast, int flags);
     void attachApplication(in IApplicationThread app, long startSeq);
@@ -211,6 +212,7 @@
 
     @UnsupportedAppUsage
     ParceledListSlice getRecentTasks(int maxNum, int flags, int userId);
+    @UnsupportedAppUsage
     oneway void serviceDoneExecuting(in IBinder token, int type, int startId, int res);
     @UnsupportedAppUsage
     IIntentSender getIntentSender(int type, in String packageName, in IBinder token,
diff --git a/core/java/android/app/IUiModeManager.aidl b/core/java/android/app/IUiModeManager.aidl
index cae54b6..a3e0845 100644
--- a/core/java/android/app/IUiModeManager.aidl
+++ b/core/java/android/app/IUiModeManager.aidl
@@ -25,14 +25,21 @@
      * Enables the car mode. Only the system can do this.
      * @hide
      */
-    void enableCarMode(int flags);
+    void enableCarMode(int flags, int priority, String callingPackage);
 
     /**
      * Disables the car mode.
      */
+    @UnsupportedAppUsage(maxTargetSdk = 28)
     void disableCarMode(int flags);
 
     /**
+     * Disables car mode (the original version is marked unsupported app usage so cannot be changed
+     * for the time being).
+     */
+    void disableCarModeByCallingPackage(int flags, String callingPackage);
+
+    /**
      * Return the current running mode.
      */
     int getCurrentModeType();
diff --git a/core/java/android/app/LauncherActivity.java b/core/java/android/app/LauncherActivity.java
index 88e2356..b495b3c 100644
--- a/core/java/android/app/LauncherActivity.java
+++ b/core/java/android/app/LauncherActivity.java
@@ -53,7 +53,11 @@
  * Displays a list of all activities which can be performed
  * for a given intent. Launches when clicked.
  *
+ * @deprecated Applications can implement this UI themselves using
+ *   {@link androidx.recyclerview.widget.RecyclerView} and
+ *   {@link android.content.pm.PackageManager#queryIntentActivities(Intent, int)}
  */
+@Deprecated
 public abstract class LauncherActivity extends ListActivity {
     Intent mIntent;
     PackageManager mPackageManager;
diff --git a/core/java/android/app/ListActivity.java b/core/java/android/app/ListActivity.java
index 2162521..810cca2 100644
--- a/core/java/android/app/ListActivity.java
+++ b/core/java/android/app/ListActivity.java
@@ -171,7 +171,11 @@
  *
  * @see #setListAdapter
  * @see android.widget.ListView
+ *
+ * @deprecated Use {@link androidx.fragment.app.ListFragment} or
+ *   {@link androidx.recyclerview.widget.RecyclerView} to implement your Activity instead.
  */
+@Deprecated
 public class ListActivity extends Activity {
     /**
      * This field should be made private, so it is hidden from the SDK.
diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java
index ceadd85..47f0cf8 100644
--- a/core/java/android/app/Notification.java
+++ b/core/java/android/app/Notification.java
@@ -628,6 +628,13 @@
      */
     public static final int FLAG_BUBBLE = 0x00001000;
 
+    /** @hide */
+    @IntDef({FLAG_SHOW_LIGHTS, FLAG_ONGOING_EVENT, FLAG_INSISTENT, FLAG_ONLY_ALERT_ONCE,
+            FLAG_AUTO_CANCEL, FLAG_NO_CLEAR, FLAG_FOREGROUND_SERVICE, FLAG_HIGH_PRIORITY,
+            FLAG_LOCAL_ONLY, FLAG_GROUP_SUMMARY, FLAG_AUTOGROUP_SUMMARY, FLAG_BUBBLE})
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface NotificationFlags{};
+
     public int flags;
 
     /** @hide */
@@ -4537,10 +4544,15 @@
         }
 
         /**
-         * @hide
+         * Set the value for a notification flag
+         *
+         * @param mask Bit mask of the flag
+         * @param value Status (on/off) of the flag
+         *
+         * @return The same Builder.
          */
         @NonNull
-        public Builder setFlag(int mask, boolean value) {
+        public Builder setFlag(@NotificationFlags int mask, boolean value) {
             if (value) {
                 mN.flags |= mask;
             } else {
diff --git a/core/java/android/app/NotificationManager.java b/core/java/android/app/NotificationManager.java
index dd39376..903dd49 100644
--- a/core/java/android/app/NotificationManager.java
+++ b/core/java/android/app/NotificationManager.java
@@ -1638,7 +1638,7 @@
         @Override
         public int hashCode() {
             return Objects.hash(priorityCategories, priorityCallSenders, priorityMessageSenders,
-                    suppressedVisualEffects);
+                    suppressedVisualEffects, state);
         }
 
         @Override
@@ -1650,10 +1650,10 @@
                     && other.priorityCallSenders == priorityCallSenders
                     && other.priorityMessageSenders == priorityMessageSenders
                     && suppressedVisualEffectsEqual(suppressedVisualEffects,
-                    other.suppressedVisualEffects);
+                    other.suppressedVisualEffects)
+                    && other.state == this.state;
         }
 
-
         private boolean suppressedVisualEffectsEqual(int suppressedEffects,
                 int otherSuppressedVisualEffects) {
             if (suppressedEffects == otherSuppressedVisualEffects) {
diff --git a/core/java/android/app/PackageDeleteObserver.java b/core/java/android/app/PackageDeleteObserver.java
index 20ae84c..b7b0b19 100644
--- a/core/java/android/app/PackageDeleteObserver.java
+++ b/core/java/android/app/PackageDeleteObserver.java
@@ -22,6 +22,11 @@
 
 /** {@hide} */
 public class PackageDeleteObserver {
+
+    @UnsupportedAppUsage
+    public PackageDeleteObserver() {
+    }
+
     private final IPackageDeleteObserver2.Stub mBinder = new IPackageDeleteObserver2.Stub() {
         @Override
         public void onUserActionRequired(Intent intent) {
diff --git a/core/java/android/app/PackageInstallObserver.java b/core/java/android/app/PackageInstallObserver.java
index 507ebe5..50031e0 100644
--- a/core/java/android/app/PackageInstallObserver.java
+++ b/core/java/android/app/PackageInstallObserver.java
@@ -23,6 +23,11 @@
 
 /** {@hide} */
 public class PackageInstallObserver {
+
+    @UnsupportedAppUsage
+    public PackageInstallObserver() {
+    }
+
     private final IPackageInstallObserver2.Stub mBinder = new IPackageInstallObserver2.Stub() {
         @Override
         public void onUserActionRequired(Intent intent) {
diff --git a/core/java/android/app/ResourcesManager.java b/core/java/android/app/ResourcesManager.java
index 40cb29f..e9ae60f 100644
--- a/core/java/android/app/ResourcesManager.java
+++ b/core/java/android/app/ResourcesManager.java
@@ -145,6 +145,9 @@
      * Resources and base configuration override associated with an Activity.
      */
     private static class ActivityResources {
+        @UnsupportedAppUsage
+        private ActivityResources() {
+        }
         public final Configuration overrideConfig = new Configuration();
         public final ArrayList<WeakReference<Resources>> activityResources = new ArrayList<>();
     }
@@ -164,6 +167,10 @@
             mAdjustedDisplays = new ArrayMap<>();
 
     @UnsupportedAppUsage
+    public ResourcesManager() {
+    }
+
+    @UnsupportedAppUsage
     public static ResourcesManager getInstance() {
         synchronized (ResourcesManager.class) {
             if (sResourcesManager == null) {
diff --git a/core/java/android/app/SystemServiceRegistry.java b/core/java/android/app/SystemServiceRegistry.java
index 77647c5..7531b6c 100644
--- a/core/java/android/app/SystemServiceRegistry.java
+++ b/core/java/android/app/SystemServiceRegistry.java
@@ -31,6 +31,7 @@
 import android.app.slice.SliceManager;
 import android.app.timedetector.TimeDetector;
 import android.app.timezone.RulesManager;
+import android.app.timezonedetector.TimeZoneDetector;
 import android.app.trust.TrustManager;
 import android.app.usage.IStorageStatsManager;
 import android.app.usage.IUsageStatsManager;
@@ -157,7 +158,7 @@
 import android.os.image.DynamicSystemManager;
 import android.os.image.IDynamicSystemService;
 import android.os.storage.StorageManager;
-import android.os.telephony.TelephonyRegistryManager;
+import android.telephony.TelephonyRegistryManager;
 import android.permission.PermissionControllerManager;
 import android.permission.PermissionManager;
 import android.print.IPrintManager;
@@ -173,7 +174,6 @@
 import android.telephony.TelephonyManager;
 import android.telephony.euicc.EuiccCardManager;
 import android.telephony.euicc.EuiccManager;
-import android.telephony.ims.RcsMessageManager;
 import android.util.ArrayMap;
 import android.util.Log;
 import android.view.ContextThemeWrapper;
@@ -612,7 +612,7 @@
             new CachedServiceFetcher<TelephonyRegistryManager>() {
                 @Override
                 public TelephonyRegistryManager createService(ContextImpl ctx) {
-                    return new TelephonyRegistryManager();
+                    return new TelephonyRegistryManager(ctx);
                 }});
 
         registerService(Context.TELEPHONY_SUBSCRIPTION_SERVICE, SubscriptionManager.class,
@@ -622,14 +622,6 @@
                 return new SubscriptionManager(ctx.getOuterContext());
             }});
 
-        registerService(Context.TELEPHONY_RCS_MESSAGE_SERVICE, RcsMessageManager.class,
-                new CachedServiceFetcher<RcsMessageManager>() {
-                    @Override
-                    public RcsMessageManager createService(ContextImpl ctx) {
-                        return new RcsMessageManager(ctx.getOuterContext());
-                    }
-                });
-
         registerService(Context.CARRIER_CONFIG_SERVICE, CarrierConfigManager.class,
                 new CachedServiceFetcher<CarrierConfigManager>() {
             @Override
@@ -662,7 +654,7 @@
                 new CachedServiceFetcher<UiModeManager>() {
             @Override
             public UiModeManager createService(ContextImpl ctx) throws ServiceNotFoundException {
-                return new UiModeManager();
+                return new UiModeManager(ctx.getOuterContext());
             }});
 
         registerService(Context.USB_SERVICE, UsbManager.class,
@@ -1244,6 +1236,14 @@
                         return new TimeDetector();
                     }});
 
+        registerService(Context.TIME_ZONE_DETECTOR_SERVICE, TimeZoneDetector.class,
+                new CachedServiceFetcher<TimeZoneDetector>() {
+                    @Override
+                    public TimeZoneDetector createService(ContextImpl ctx)
+                            throws ServiceNotFoundException {
+                        return new TimeZoneDetector();
+                    }});
+
         registerService(Context.PERMISSION_SERVICE, PermissionManager.class,
                 new CachedServiceFetcher<PermissionManager>() {
                     @Override
diff --git a/core/java/android/app/TaskStackListener.java b/core/java/android/app/TaskStackListener.java
index b63feb5..02ab25a 100644
--- a/core/java/android/app/TaskStackListener.java
+++ b/core/java/android/app/TaskStackListener.java
@@ -30,6 +30,11 @@
  * @hide
  */
 public abstract class TaskStackListener extends ITaskStackListener.Stub {
+
+    @UnsupportedAppUsage
+    public TaskStackListener() {
+    }
+
     @Override
     @UnsupportedAppUsage
     public void onTaskStackChanged() throws RemoteException {
diff --git a/core/java/android/app/UiAutomationConnection.java b/core/java/android/app/UiAutomationConnection.java
index dc07df8..f251b3e 100644
--- a/core/java/android/app/UiAutomationConnection.java
+++ b/core/java/android/app/UiAutomationConnection.java
@@ -40,6 +40,8 @@
 import android.view.accessibility.AccessibilityEvent;
 import android.view.accessibility.IAccessibilityManager;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 import libcore.io.IoUtils;
 
 import java.io.FileInputStream;
@@ -87,6 +89,10 @@
 
     private int mOwningUid;
 
+    @UnsupportedAppUsage
+    public UiAutomationConnection() {
+    }
+
     @Override
     public void connect(IAccessibilityServiceClient client, int flags) {
         if (client == null) {
diff --git a/core/java/android/app/UiModeManager.java b/core/java/android/app/UiModeManager.java
index 46316e1..8324787 100644
--- a/core/java/android/app/UiModeManager.java
+++ b/core/java/android/app/UiModeManager.java
@@ -17,6 +17,10 @@
 package android.app;
 
 import android.annotation.IntDef;
+import android.annotation.IntRange;
+import android.annotation.Nullable;
+import android.annotation.RequiresPermission;
+import android.annotation.SystemApi;
 import android.annotation.SystemService;
 import android.annotation.TestApi;
 import android.annotation.UnsupportedAppUsage;
@@ -68,6 +72,25 @@
      * of the broadcast to {@link Activity#RESULT_CANCELED}.
      */
     public static String ACTION_ENTER_CAR_MODE = "android.app.action.ENTER_CAR_MODE";
+
+    /**
+     * Broadcast sent when the device's UI has switched to car mode, either by being placed in a car
+     * dock or explicit action of the user.
+     * <p>
+     * In addition to the behavior for {@link #ACTION_ENTER_CAR_MODE}, this broadcast includes the
+     * package name of the app which requested to enter car mode in the
+     * {@link #EXTRA_CALLING_PACKAGE}.  If an app requested to enter car mode using
+     * {@link #enableCarMode(int, int)} and specified a priority this will be specified in the
+     * {@link #EXTRA_PRIORITY}.
+     *
+     * This is primarily intended to be received by other components of the Android OS.
+     * <p>
+     * Receiver requires permission: {@link android.Manifest.permission.HANDLE_CAR_MODE_CHANGES}
+     * @hide
+     */
+    @SystemApi
+    public static final String ACTION_ENTER_CAR_MODE_PRIORITIZED =
+            "android.app.action.ENTER_CAR_MODE_PRIORITIZED";
     
     /**
      * Broadcast sent when the device's UI has switch away from car mode back
@@ -75,6 +98,28 @@
      * when the user exits car mode.
      */
     public static String ACTION_EXIT_CAR_MODE = "android.app.action.EXIT_CAR_MODE";
+
+    /**
+     * Broadcast sent when the device's UI has switched away from car mode back to normal mode.
+     * Typically used by a car mode app, to dismiss itself when the user exits car mode.
+     * <p>
+     * In addition to the behavior for {@link #ACTION_EXIT_CAR_MODE}, this broadcast includes the
+     * package name of the app which requested to exit car mode in {@link #EXTRA_CALLING_PACKAGE}.
+     * If an app requested to enter car mode using {@link #enableCarMode(int, int)} and specified a
+     * priority this will be specified in the {@link #EXTRA_PRIORITY} when exiting car mode.
+     * <p>
+     * If {@link #DISABLE_CAR_MODE_ALL_PRIORITIES} is used when disabling car mode (i.e. this is
+     * initiated by the user via the persistent car mode notification), this broadcast is sent once
+     * for each priority level for which car mode is being disabled.
+     * <p>
+     * This is primarily intended to be received by other components of the Android OS.
+     * <p>
+     * Receiver requires permission: {@link android.Manifest.permission.HANDLE_CAR_MODE_CHANGES}
+     * @hide
+     */
+    @SystemApi
+    public static final String ACTION_EXIT_CAR_MODE_PRIORITIZED =
+            "android.app.action.EXIT_CAR_MODE_PRIORITIZED";
     
     /**
      * Broadcast sent when the device's UI has switched to desk mode,
@@ -97,6 +142,24 @@
      */
     public static String ACTION_EXIT_DESK_MODE = "android.app.action.EXIT_DESK_MODE";
 
+    /**
+     * String extra used with {@link #ACTION_ENTER_CAR_MODE_PRIORITIZED} and
+     * {@link #ACTION_EXIT_CAR_MODE_PRIORITIZED} to indicate the package name of the app which
+     * requested to enter or exit car mode.
+     * @hide
+     */
+    @SystemApi
+    public static final String EXTRA_CALLING_PACKAGE = "android.app.extra.CALLING_PACKAGE";
+
+    /**
+     * Integer extra used with {@link #ACTION_ENTER_CAR_MODE_PRIORITIZED} and
+     * {@link #ACTION_EXIT_CAR_MODE_PRIORITIZED} to indicate the priority level at which car mode
+     * is being disabled.
+     * @hide
+     */
+    @SystemApi
+    public static final String EXTRA_PRIORITY = "android.app.extra.PRIORITY";
+
     /** @hide */
     @IntDef(prefix = { "MODE_" }, value = {
             MODE_NIGHT_AUTO,
@@ -126,10 +189,21 @@
 
     private IUiModeManager mService;
 
+    /**
+     * Context required for getting the opPackageName of API caller; maybe be {@code null} if the
+     * old constructor marked with UnSupportedAppUsage is used.
+     */
+    private @Nullable Context mContext;
+
     @UnsupportedAppUsage
     /*package*/ UiModeManager() throws ServiceNotFoundException {
+        this(null /* context */);
+    }
+
+    /*package*/ UiModeManager(Context context) throws ServiceNotFoundException {
         mService = IUiModeManager.Stub.asInterface(
                 ServiceManager.getServiceOrThrow(Context.UI_MODE_SERVICE));
+        mContext = context;
     }
 
     /**
@@ -152,6 +226,14 @@
      */
     public static final int ENABLE_CAR_MODE_ALLOW_SLEEP = 0x0002;
 
+    /** @hide */
+    @IntDef(prefix = { "ENABLE_CAR_MODE_" }, value = {
+            ENABLE_CAR_MODE_GO_CAR_HOME,
+            ENABLE_CAR_MODE_ALLOW_SLEEP
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface EnableCarMode {}
+
     /**
      * Force device into car mode, like it had been placed in the car dock.
      * This will cause the device to switch to the car home UI as part of
@@ -159,9 +241,54 @@
      * @param flags Must be 0.
      */
     public void enableCarMode(int flags) {
+        enableCarMode(DEFAULT_PRIORITY, flags);
+    }
+
+    /**
+     * Force device into car mode, like it had been placed in the car dock.  This will cause the
+     * device to switch to the car home UI as part of the mode switch.
+     * <p>
+     * An app may request to enter car mode when the system is already in car mode.  The app may
+     * specify a "priority" when entering car mode.  The device will remain in car mode
+     * (i.e. {@link #getCurrentModeType()} is {@link Configuration#UI_MODE_TYPE_CAR}) as long as
+     * there is a priority level at which car mode have been enabled.  For example assume app A
+     * enters car mode at priority level 100, and then app B enters car mode at the default priority
+     * (0).  If app A exits car mode, the device will remain in car mode until app B exits car mode.
+     * <p>
+     * Specifying a priority level when entering car mode is important in cases where multiple apps
+     * on a device implement a car-mode {@link android.telecom.InCallService} (see
+     * {@link android.telecom.TelecomManager#METADATA_IN_CALL_SERVICE_CAR_MODE_UI}).  The
+     * {@link android.telecom.InCallService} associated with the highest priority app which entered
+     * car mode will be bound to by Telecom and provided with information about ongoing calls on
+     * the device.
+     * <p>
+     * System apps holding the required permission can enable car mode when the app determines the
+     * correct conditions exist for that app to be in car mode.  The device maker should ensure that
+     * where multiple apps exist on the device which can potentially enter car mode, appropriate
+     * priorities are used to ensure that calls delivered by the
+     * {@link android.telecom.InCallService} API are delivered to the highest priority app.
+     * If app A and app B can both potentially enable car mode, and it is desired that app B is the
+     * one which should receive call information, the priority for app B should be higher than the
+     * one for app A.
+     * <p>
+     * When an app uses a priority to enable car mode, they can disable car mode at the specified
+     * priority level using {@link #disableCarMode(int)}.  An app may only enable car mode at a
+     * single priority.
+     * <p>
+     * Public apps are assumed to enter/exit car mode at {@link #DEFAULT_PRIORITY}.
+     *
+     * @param priority The declared priority for the caller.
+     * @param flags Car mode flags.
+     * @hide
+     */
+    @SystemApi
+    @TestApi
+    @RequiresPermission(android.Manifest.permission.ENTER_CAR_MODE_PRIORITIZED)
+    public void enableCarMode(@IntRange(from = 0) int priority, @EnableCarMode int flags) {
         if (mService != null) {
             try {
-                mService.enableCarMode(flags);
+                mService.enableCarMode(flags, priority,
+                        mContext == null ? null : mContext.getOpPackageName());
             } catch (RemoteException e) {
                 throw e.rethrowFromSystemServer();
             }
@@ -176,15 +303,44 @@
      * being in car mode).
      */
     public static final int DISABLE_CAR_MODE_GO_HOME = 0x0001;
+
+    /**
+     * Flag for use with {@link #disableCarMode(int)}: Disables car mode at ALL priority levels.
+     * Primarily intended for use from {@link com.android.internal.app.DisableCarModeActivity} to
+     * provide the user with a means to exit car mode at all priority levels.
+     * @hide
+     */
+    public static final int DISABLE_CAR_MODE_ALL_PRIORITIES = 0x0002;
+
+    /** @hide */
+    @IntDef(prefix = { "DISABLE_CAR_MODE_" }, value = {
+            DISABLE_CAR_MODE_GO_HOME
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface DisableCarMode {}
+
+    /**
+     * The default priority used for entering car mode.
+     * <p>
+     * Callers of the {@link UiModeManager#enableCarMode(int)} priority will be assigned the
+     * default priority.
+     * <p>
+     * System apps can specify a priority other than the default priority when using
+     * {@link UiModeManager#enableCarMode(int, int)} to enable car mode.
+     * @hide
+     */
+    @SystemApi
+    public static final int DEFAULT_PRIORITY = 0;
     
     /**
      * Turn off special mode if currently in car mode.
-     * @param flags May be 0 or {@link #DISABLE_CAR_MODE_GO_HOME}.
+     * @param flags One of the disable car mode flags.
      */
-    public void disableCarMode(int flags) {
+    public void disableCarMode(@DisableCarMode int flags) {
         if (mService != null) {
             try {
-                mService.disableCarMode(flags);
+                mService.disableCarModeByCallingPackage(flags,
+                        mContext == null ? null : mContext.getOpPackageName());
             } catch (RemoteException e) {
                 throw e.rethrowFromSystemServer();
             }
diff --git a/core/java/android/app/UserSwitchObserver.java b/core/java/android/app/UserSwitchObserver.java
index 25b243d..2f8ee744b 100644
--- a/core/java/android/app/UserSwitchObserver.java
+++ b/core/java/android/app/UserSwitchObserver.java
@@ -24,6 +24,11 @@
  * @hide
  */
 public class UserSwitchObserver extends IUserSwitchObserver.Stub {
+
+    @UnsupportedAppUsage
+    public UserSwitchObserver() {
+    }
+
     @Override
     public void onUserSwitching(int newUserId, IRemoteCallback reply) throws RemoteException {
         if (reply != null) {
diff --git a/core/java/android/app/WindowConfiguration.java b/core/java/android/app/WindowConfiguration.java
index affc8b9..74237b4 100644
--- a/core/java/android/app/WindowConfiguration.java
+++ b/core/java/android/app/WindowConfiguration.java
@@ -35,6 +35,8 @@
 import android.util.proto.WireTypeMismatchException;
 import android.view.DisplayInfo;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 import java.io.IOException;
 
 /**
@@ -199,6 +201,7 @@
     /** @hide */
     public static final int PINNED_WINDOWING_MODE_ELEVATION_IN_DIP = 5;
 
+    @UnsupportedAppUsage
     public WindowConfiguration() {
         unset();
     }
diff --git a/core/java/android/app/timedetector/ITimeDetectorService.aidl b/core/java/android/app/timedetector/ITimeDetectorService.aidl
index ddc4932..9877fc7 100644
--- a/core/java/android/app/timedetector/ITimeDetectorService.aidl
+++ b/core/java/android/app/timedetector/ITimeDetectorService.aidl
@@ -16,6 +16,7 @@
 
 package android.app.timedetector;
 
+import android.app.timedetector.ManualTimeSuggestion;
 import android.app.timedetector.PhoneTimeSuggestion;
 
 /**
@@ -33,4 +34,5 @@
  */
 interface ITimeDetectorService {
   void suggestPhoneTime(in PhoneTimeSuggestion timeSuggestion);
+  void suggestManualTime(in ManualTimeSuggestion timeSuggestion);
 }
diff --git a/core/java/android/app/timedetector/ManualTimeSuggestion.aidl b/core/java/android/app/timedetector/ManualTimeSuggestion.aidl
new file mode 100644
index 0000000..2139404
--- /dev/null
+++ b/core/java/android/app/timedetector/ManualTimeSuggestion.aidl
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package android.app.timedetector;
+
+parcelable ManualTimeSuggestion;
diff --git a/core/java/android/app/timedetector/ManualTimeSuggestion.java b/core/java/android/app/timedetector/ManualTimeSuggestion.java
new file mode 100644
index 0000000..e7d619a
--- /dev/null
+++ b/core/java/android/app/timedetector/ManualTimeSuggestion.java
@@ -0,0 +1,127 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package android.app.timedetector;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.util.TimestampedValue;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * A time signal from a manual (user provided) source. The value consists of the number of
+ * milliseconds elapsed since 1/1/1970 00:00:00 UTC and the time according to the elapsed realtime
+ * clock when that number was established. The elapsed realtime clock is considered accurate but
+ * volatile, so time signals must not be persisted across device resets.
+ *
+ * @hide
+ */
+public final class ManualTimeSuggestion implements Parcelable {
+
+    public static final @NonNull Creator<ManualTimeSuggestion> CREATOR =
+            new Creator<ManualTimeSuggestion>() {
+                public ManualTimeSuggestion createFromParcel(Parcel in) {
+                    return ManualTimeSuggestion.createFromParcel(in);
+                }
+
+                public ManualTimeSuggestion[] newArray(int size) {
+                    return new ManualTimeSuggestion[size];
+                }
+            };
+
+    @NonNull
+    private final TimestampedValue<Long> mUtcTime;
+    @Nullable
+    private ArrayList<String> mDebugInfo;
+
+    public ManualTimeSuggestion(@NonNull TimestampedValue<Long> utcTime) {
+        mUtcTime = Objects.requireNonNull(utcTime);
+    }
+
+    private static ManualTimeSuggestion createFromParcel(Parcel in) {
+        TimestampedValue<Long> utcTime = in.readParcelable(null /* classLoader */);
+        ManualTimeSuggestion suggestion = new ManualTimeSuggestion(utcTime);
+        @SuppressWarnings("unchecked")
+        ArrayList<String> debugInfo = (ArrayList<String>) in.readArrayList(null /* classLoader */);
+        suggestion.mDebugInfo = debugInfo;
+        return suggestion;
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(@NonNull Parcel dest, int flags) {
+        dest.writeParcelable(mUtcTime, 0);
+        dest.writeList(mDebugInfo);
+    }
+
+    @NonNull
+    public TimestampedValue<Long> getUtcTime() {
+        return mUtcTime;
+    }
+
+    @NonNull
+    public List<String> getDebugInfo() {
+        return Collections.unmodifiableList(mDebugInfo);
+    }
+
+    /**
+     * Associates information with the instance that can be useful for debugging / logging. The
+     * information is present in {@link #toString()} but is not considered for
+     * {@link #equals(Object)} and {@link #hashCode()}.
+     */
+    public void addDebugInfo(String... debugInfos) {
+        if (mDebugInfo == null) {
+            mDebugInfo = new ArrayList<>();
+        }
+        mDebugInfo.addAll(Arrays.asList(debugInfos));
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        ManualTimeSuggestion that = (ManualTimeSuggestion) o;
+        return Objects.equals(mUtcTime, that.mUtcTime);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(mUtcTime);
+    }
+
+    @Override
+    public String toString() {
+        return "ManualTimeSuggestion{"
+                + "mUtcTime=" + mUtcTime
+                + ", mDebugInfo=" + mDebugInfo
+                + '}';
+    }
+}
diff --git a/core/java/android/app/timedetector/PhoneTimeSuggestion.java b/core/java/android/app/timedetector/PhoneTimeSuggestion.java
index 475a4aa..233dbbc 100644
--- a/core/java/android/app/timedetector/PhoneTimeSuggestion.java
+++ b/core/java/android/app/timedetector/PhoneTimeSuggestion.java
@@ -29,7 +29,9 @@
 import java.util.Objects;
 
 /**
- * A time signal from a telephony source. The value consists of the number of milliseconds elapsed
+ * A time signal from a telephony source. The value can be {@code null} to indicate that the
+ * telephony source has entered an "un-opinionated" state and any previously sent suggestions are
+ * being withdrawn. When not {@code null}, the value consists of the number of milliseconds elapsed
  * since 1/1/1970 00:00:00 UTC and the time according to the elapsed realtime clock when that number
  * was established. The elapsed realtime clock is considered accurate but volatile, so time signals
  * must not be persisted across device resets.
@@ -50,20 +52,17 @@
             };
 
     private final int mPhoneId;
-    @NonNull
-    private final TimestampedValue<Long> mUtcTime;
-    @Nullable
-    private ArrayList<String> mDebugInfo;
+    @Nullable private TimestampedValue<Long> mUtcTime;
+    @Nullable private ArrayList<String> mDebugInfo;
 
-    public PhoneTimeSuggestion(int phoneId, @NonNull TimestampedValue<Long> utcTime) {
+    public PhoneTimeSuggestion(int phoneId) {
         mPhoneId = phoneId;
-        mUtcTime = Objects.requireNonNull(utcTime);
     }
 
     private static PhoneTimeSuggestion createFromParcel(Parcel in) {
         int phoneId = in.readInt();
-        TimestampedValue<Long> utcTime = in.readParcelable(null /* classLoader */);
-        PhoneTimeSuggestion suggestion = new PhoneTimeSuggestion(phoneId, utcTime);
+        PhoneTimeSuggestion suggestion = new PhoneTimeSuggestion(phoneId);
+        suggestion.setUtcTime(in.readParcelable(null /* classLoader */));
         @SuppressWarnings("unchecked")
         ArrayList<String> debugInfo = (ArrayList<String>) in.readArrayList(null /* classLoader */);
         suggestion.mDebugInfo = debugInfo;
@@ -86,7 +85,11 @@
         return mPhoneId;
     }
 
-    @NonNull
+    public void setUtcTime(@Nullable TimestampedValue<Long> utcTime) {
+        mUtcTime = utcTime;
+    }
+
+    @Nullable
     public TimestampedValue<Long> getUtcTime() {
         return mUtcTime;
     }
diff --git a/core/java/android/app/timedetector/TimeDetector.java b/core/java/android/app/timedetector/TimeDetector.java
index 334e958..48d5cd2 100644
--- a/core/java/android/app/timedetector/TimeDetector.java
+++ b/core/java/android/app/timedetector/TimeDetector.java
@@ -17,19 +17,22 @@
 package android.app.timedetector;
 
 import android.annotation.NonNull;
+import android.annotation.RequiresPermission;
 import android.annotation.SystemService;
 import android.content.Context;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.ServiceManager.ServiceNotFoundException;
+import android.os.SystemClock;
 import android.util.Log;
+import android.util.TimestampedValue;
 
 /**
  * The interface through which system components can send signals to the TimeDetectorService.
  * @hide
  */
 @SystemService(Context.TIME_DETECTOR_SERVICE)
-public final class TimeDetector {
+public class TimeDetector {
     private static final String TAG = "timedetector.TimeDetector";
     private static final boolean DEBUG = false;
 
@@ -41,10 +44,11 @@
     }
 
     /**
-     * Suggests the current time to the detector. The detector may ignore the signal if better
-     * signals are available such as those that come from more reliable sources or were
-     * determined more recently.
+     * Suggests the current phone-signal derived time to the detector. The detector may ignore the
+     * signal if better signals are available such as those that come from more reliable sources or
+     * were determined more recently.
      */
+    @RequiresPermission(android.Manifest.permission.SET_TIME)
     public void suggestPhoneTime(@NonNull PhoneTimeSuggestion timeSuggestion) {
         if (DEBUG) {
             Log.d(TAG, "suggestPhoneTime called: " + timeSuggestion);
@@ -56,4 +60,29 @@
         }
     }
 
+    /**
+     * Suggests the user's manually entered current time to the detector.
+     */
+    @RequiresPermission(android.Manifest.permission.SET_TIME)
+    public void suggestManualTime(@NonNull ManualTimeSuggestion timeSuggestion) {
+        if (DEBUG) {
+            Log.d(TAG, "suggestManualTime called: " + timeSuggestion);
+        }
+        try {
+            mITimeDetectorService.suggestManualTime(timeSuggestion);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
+     * A shared utility method to create a {@link ManualTimeSuggestion}.
+     */
+    public static ManualTimeSuggestion createManualTimeSuggestion(long when, String why) {
+        TimestampedValue<Long> utcTime =
+                new TimestampedValue<>(SystemClock.elapsedRealtime(), when);
+        ManualTimeSuggestion manualTimeSuggestion = new ManualTimeSuggestion(utcTime);
+        manualTimeSuggestion.addDebugInfo(why);
+        return manualTimeSuggestion;
+    }
 }
diff --git a/core/java/android/app/timezonedetector/ITimeZoneDetectorService.aidl b/core/java/android/app/timezonedetector/ITimeZoneDetectorService.aidl
new file mode 100644
index 0000000..260c7df
--- /dev/null
+++ b/core/java/android/app/timezonedetector/ITimeZoneDetectorService.aidl
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package android.app.timezonedetector;
+
+import android.app.timezonedetector.PhoneTimeZoneSuggestion;
+
+/**
+ * System private API to communicate with time zone detector service.
+ *
+ * <p>Used to provide information to the Time Zone Detector Service from other parts of the Android
+ * system that have access to time zone-related signals, e.g. telephony.
+ *
+ * <p>Use the {@link android.app.timezonedetector.TimeZoneDetector} class rather than going through
+ * this Binder interface directly. See {@link android.app.timezonedetector.TimeZoneDetectorService}
+ * for more complete documentation.
+ *
+ *
+ * {@hide}
+ */
+interface ITimeZoneDetectorService {
+  void suggestPhoneTimeZone(in PhoneTimeZoneSuggestion timeZoneSuggestion);
+}
diff --git a/core/java/android/app/timezonedetector/PhoneTimeZoneSuggestion.aidl b/core/java/android/app/timezonedetector/PhoneTimeZoneSuggestion.aidl
new file mode 100644
index 0000000..3ad903b
--- /dev/null
+++ b/core/java/android/app/timezonedetector/PhoneTimeZoneSuggestion.aidl
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package android.app.timezonedetector;
+
+parcelable PhoneTimeZoneSuggestion;
diff --git a/core/java/android/app/timezonedetector/PhoneTimeZoneSuggestion.java b/core/java/android/app/timezonedetector/PhoneTimeZoneSuggestion.java
new file mode 100644
index 0000000..e8162488
--- /dev/null
+++ b/core/java/android/app/timezonedetector/PhoneTimeZoneSuggestion.java
@@ -0,0 +1,341 @@
+/*
+ * Copyright 2019 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.
+ */
+
+package android.app.timezonedetector;
+
+import android.annotation.IntDef;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * A suggested time zone from a Phone-based signal, e.g. from MCC and NITZ information.
+ *
+ * @hide
+ */
+public final class PhoneTimeZoneSuggestion implements Parcelable {
+
+    @NonNull
+    public static final Creator<PhoneTimeZoneSuggestion> CREATOR =
+            new Creator<PhoneTimeZoneSuggestion>() {
+                public PhoneTimeZoneSuggestion createFromParcel(Parcel in) {
+                    return PhoneTimeZoneSuggestion.createFromParcel(in);
+                }
+
+                public PhoneTimeZoneSuggestion[] newArray(int size) {
+                    return new PhoneTimeZoneSuggestion[size];
+                }
+            };
+
+    /**
+     * Creates an empty time zone suggestion, i.e. one that will cancel previous suggestions with
+     * the same {@code phoneId}.
+     */
+    @NonNull
+    public static PhoneTimeZoneSuggestion createEmptySuggestion(
+            int phoneId, @NonNull String debugInfo) {
+        return new Builder(phoneId).addDebugInfo(debugInfo).build();
+    }
+
+    @IntDef({ MATCH_TYPE_NA, MATCH_TYPE_NETWORK_COUNTRY_ONLY, MATCH_TYPE_NETWORK_COUNTRY_AND_OFFSET,
+            MATCH_TYPE_EMULATOR_ZONE_ID, MATCH_TYPE_TEST_NETWORK_OFFSET_ONLY })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface MatchType {}
+
+    /** Used when match type is not applicable. */
+    public static final int MATCH_TYPE_NA = 0;
+
+    /**
+     * Only the network country is known.
+     */
+    public static final int MATCH_TYPE_NETWORK_COUNTRY_ONLY = 2;
+
+    /**
+     * Both the network county and offset were known.
+     */
+    public static final int MATCH_TYPE_NETWORK_COUNTRY_AND_OFFSET = 3;
+
+    /**
+     * The device is running in an emulator and an NITZ signal was simulated containing an
+     * Android extension with an explicit Olson ID.
+     */
+    public static final int MATCH_TYPE_EMULATOR_ZONE_ID = 4;
+
+    /**
+     * The phone is most likely running in a test network not associated with a country (this is
+     * distinct from the country just not being known yet).
+     * Historically, Android has just picked an arbitrary time zone with the correct offset when
+     * on a test network.
+     */
+    public static final int MATCH_TYPE_TEST_NETWORK_OFFSET_ONLY = 5;
+
+    @IntDef({ QUALITY_NA, QUALITY_SINGLE_ZONE, QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET,
+            QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface Quality {}
+
+    /** Used when quality is not applicable. */
+    public static final int QUALITY_NA = 0;
+
+    /** There is only one answer */
+    public static final int QUALITY_SINGLE_ZONE = 1;
+
+    /**
+     * There are multiple answers, but they all shared the same offset / DST state at the time
+     * the suggestion was created. i.e. it might be the wrong zone but the user won't notice
+     * immediately if it is wrong.
+     */
+    public static final int QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET = 2;
+
+    /**
+     * There are multiple answers with different offsets. The one given is just one possible.
+     */
+    public static final int QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS = 3;
+
+    /**
+     * The ID of the phone this suggestion is associated with. For multiple-sim devices this
+     * helps to establish origin so filtering / stickiness can be implemented.
+     */
+    private final int mPhoneId;
+
+    /**
+     * The suggestion. {@code null} means there is no current suggestion and any previous suggestion
+     * should be forgotten.
+     */
+    private final String mZoneId;
+
+    /**
+     * The type of "match" used to establish the time zone.
+     */
+    @MatchType
+    private final int mMatchType;
+
+    /**
+     * A measure of the quality of the time zone suggestion, i.e. how confident one could be in
+     * it.
+     */
+    @Quality
+    private final int mQuality;
+
+    /**
+     * Free-form debug information about how the signal was derived. Used for debug only,
+     * intentionally not used in equals(), etc.
+     */
+    private List<String> mDebugInfo;
+
+    private PhoneTimeZoneSuggestion(Builder builder) {
+        mPhoneId = builder.mPhoneId;
+        mZoneId = builder.mZoneId;
+        mMatchType = builder.mMatchType;
+        mQuality = builder.mQuality;
+        mDebugInfo = builder.mDebugInfo != null ? new ArrayList<>(builder.mDebugInfo) : null;
+    }
+
+    @SuppressWarnings("unchecked")
+    private static PhoneTimeZoneSuggestion createFromParcel(Parcel in) {
+        // Use the Builder so we get validation during build().
+        int phoneId = in.readInt();
+        PhoneTimeZoneSuggestion suggestion = new Builder(phoneId)
+                .setZoneId(in.readString())
+                .setMatchType(in.readInt())
+                .setQuality(in.readInt())
+                .build();
+        List<String> debugInfo = in.readArrayList(PhoneTimeZoneSuggestion.class.getClassLoader());
+        if (debugInfo != null) {
+            suggestion.addDebugInfo(debugInfo);
+        }
+        return suggestion;
+    }
+
+    @Override
+    public void writeToParcel(@NonNull Parcel dest, int flags) {
+        dest.writeInt(mPhoneId);
+        dest.writeString(mZoneId);
+        dest.writeInt(mMatchType);
+        dest.writeInt(mQuality);
+        dest.writeList(mDebugInfo);
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    public int getPhoneId() {
+        return mPhoneId;
+    }
+
+    @Nullable
+    public String getZoneId() {
+        return mZoneId;
+    }
+
+    @MatchType
+    public int getMatchType() {
+        return mMatchType;
+    }
+
+    @Quality
+    public int getQuality() {
+        return mQuality;
+    }
+
+    @NonNull
+    public List<String> getDebugInfo() {
+        return mDebugInfo == null
+                ? Collections.emptyList() : Collections.unmodifiableList(mDebugInfo);
+    }
+
+    /**
+     * Associates information with the instance that can be useful for debugging / logging. The
+     * information is present in {@link #toString()} but is not considered for
+     * {@link #equals(Object)} and {@link #hashCode()}.
+     */
+    public void addDebugInfo(@NonNull String debugInfo) {
+        if (mDebugInfo == null) {
+            mDebugInfo = new ArrayList<>();
+        }
+        mDebugInfo.add(debugInfo);
+    }
+
+    /**
+     * Associates information with the instance that can be useful for debugging / logging. The
+     * information is present in {@link #toString()} but is not considered for
+     * {@link #equals(Object)} and {@link #hashCode()}.
+     */
+    public void addDebugInfo(@NonNull List<String> debugInfo) {
+        if (mDebugInfo == null) {
+            mDebugInfo = new ArrayList<>(debugInfo.size());
+        }
+        mDebugInfo.addAll(debugInfo);
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        PhoneTimeZoneSuggestion that = (PhoneTimeZoneSuggestion) o;
+        return mPhoneId == that.mPhoneId
+                && mMatchType == that.mMatchType
+                && mQuality == that.mQuality
+                && Objects.equals(mZoneId, that.mZoneId);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(mPhoneId, mZoneId, mMatchType, mQuality);
+    }
+
+    @Override
+    public String toString() {
+        return "PhoneTimeZoneSuggestion{"
+                + "mPhoneId=" + mPhoneId
+                + ", mZoneId='" + mZoneId + '\''
+                + ", mMatchType=" + mMatchType
+                + ", mQuality=" + mQuality
+                + ", mDebugInfo=" + mDebugInfo
+                + '}';
+    }
+
+    /**
+     * Builds {@link PhoneTimeZoneSuggestion} instances.
+     *
+     * @hide
+     */
+    public static class Builder {
+        private final int mPhoneId;
+        private String mZoneId;
+        @MatchType private int mMatchType;
+        @Quality private int mQuality;
+        private List<String> mDebugInfo;
+
+        public Builder(int phoneId) {
+            mPhoneId = phoneId;
+        }
+
+        /** Returns the builder for call chaining. */
+        public Builder setZoneId(String zoneId) {
+            mZoneId = zoneId;
+            return this;
+        }
+
+        /** Returns the builder for call chaining. */
+        public Builder setMatchType(@MatchType int matchType) {
+            mMatchType = matchType;
+            return this;
+        }
+
+        /** Returns the builder for call chaining. */
+        public Builder setQuality(@Quality int quality) {
+            mQuality = quality;
+            return this;
+        }
+
+        /** Returns the builder for call chaining. */
+        public Builder addDebugInfo(@NonNull String debugInfo) {
+            if (mDebugInfo == null) {
+                mDebugInfo = new ArrayList<>();
+            }
+            mDebugInfo.add(debugInfo);
+            return this;
+        }
+
+        /**
+         * Performs basic structural validation of this instance. e.g. Are all the fields populated
+         * that must be? Are the enum ints set to valid values?
+         */
+        void validate() {
+            int quality = mQuality;
+            int matchType = mMatchType;
+            if (mZoneId == null) {
+                if (quality != QUALITY_NA || matchType != MATCH_TYPE_NA) {
+                    throw new RuntimeException("Invalid quality or match type for null zone ID."
+                            + " quality=" + quality + ", matchType=" + matchType);
+                }
+            } else {
+                boolean qualityValid = (quality == QUALITY_SINGLE_ZONE
+                        || quality == QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET
+                        || quality == QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS);
+                boolean matchTypeValid = (matchType == MATCH_TYPE_NETWORK_COUNTRY_ONLY
+                        || matchType == MATCH_TYPE_NETWORK_COUNTRY_AND_OFFSET
+                        || matchType == MATCH_TYPE_EMULATOR_ZONE_ID
+                        || matchType == MATCH_TYPE_TEST_NETWORK_OFFSET_ONLY);
+                if (!qualityValid || !matchTypeValid) {
+                    throw new RuntimeException("Invalid quality or match type with zone ID."
+                            + " quality=" + quality + ", matchType=" + matchType);
+                }
+            }
+        }
+
+        /** Returns the {@link PhoneTimeZoneSuggestion}. */
+        public PhoneTimeZoneSuggestion build() {
+            validate();
+            return new PhoneTimeZoneSuggestion(this);
+        }
+    }
+}
diff --git a/core/java/android/app/timezonedetector/TimeZoneDetector.java b/core/java/android/app/timezonedetector/TimeZoneDetector.java
new file mode 100644
index 0000000..909cbc2
--- /dev/null
+++ b/core/java/android/app/timezonedetector/TimeZoneDetector.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package android.app.timezonedetector;
+
+import android.annotation.NonNull;
+import android.annotation.SystemService;
+import android.content.Context;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.os.ServiceManager.ServiceNotFoundException;
+import android.util.Log;
+
+/**
+ * The interface through which system components can send signals to the TimeZoneDetectorService.
+ * @hide
+ */
+@SystemService(Context.TIME_ZONE_DETECTOR_SERVICE)
+public final class TimeZoneDetector {
+    private static final String TAG = "timezonedetector.TimeZoneDetector";
+    private static final boolean DEBUG = false;
+
+    private final ITimeZoneDetectorService mITimeZoneDetectorService;
+
+    public TimeZoneDetector() throws ServiceNotFoundException {
+        mITimeZoneDetectorService = ITimeZoneDetectorService.Stub.asInterface(
+                ServiceManager.getServiceOrThrow(Context.TIME_ZONE_DETECTOR_SERVICE));
+    }
+
+    /**
+     * Suggests the current time zone to the detector. The detector may ignore the signal if better
+     * signals are available such as those that come from more reliable sources or were
+     * determined more recently.
+     */
+    public void suggestPhoneTimeZone(@NonNull PhoneTimeZoneSuggestion timeZoneSuggestion) {
+        if (DEBUG) {
+            Log.d(TAG, "suggestPhoneTimeZone called: " + timeZoneSuggestion);
+        }
+        try {
+            mITimeZoneDetectorService.suggestPhoneTimeZone(timeZoneSuggestion);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
+}
diff --git a/core/java/android/app/usage/NetworkStatsManager.java b/core/java/android/app/usage/NetworkStatsManager.java
index 8e40449..6bade90 100644
--- a/core/java/android/app/usage/NetworkStatsManager.java
+++ b/core/java/android/app/usage/NetworkStatsManager.java
@@ -146,6 +146,7 @@
     }
 
     /** @hide */
+    @UnsupportedAppUsage
     @TestApi
     public void setPollForce(boolean pollForce) {
         if (pollForce) {
diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java
index e7ba85a..9d152a7 100644
--- a/core/java/android/bluetooth/BluetoothAdapter.java
+++ b/core/java/android/bluetooth/BluetoothAdapter.java
@@ -1189,13 +1189,11 @@
     /**
      * Factory reset bluetooth settings.
      *
-     * <p>Requires the {@link android.Manifest.permission#BLUETOOTH_PRIVILEGED}
-     * permission
-     *
      * @return true to indicate that the config file was successfully cleared
      * @hide
      */
-    @UnsupportedAppUsage
+    @SystemApi
+    @RequiresPermission(Manifest.permission.BLUETOOTH_PRIVILEGED)
     public boolean factoryReset() {
         try {
             mServiceLock.readLock().lock();
@@ -1214,13 +1212,12 @@
     /**
      * Get the UUIDs supported by the local Bluetooth adapter.
      *
-     * <p>Requires {@link android.Manifest.permission#BLUETOOTH}
-     *
      * @return the UUIDs supported by the local Bluetooth Adapter.
      * @hide
      */
     @UnsupportedAppUsage
-    public ParcelUuid[] getUuids() {
+    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    public @NonNull ParcelUuid[] getUuids() {
         if (getState() != STATE_ON) {
             return null;
         }
@@ -1476,7 +1473,6 @@
      * will return false. After turning on Bluetooth,
      * wait for {@link #ACTION_STATE_CHANGED} with {@link #STATE_ON}
      * to get the updated value.
-     * <p>Requires {@link android.Manifest.permission#WRITE_SECURE_SETTINGS}
      * <p>Applications cannot set the scan mode. They should use
      * <code>startActivityForResult(
      * BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE})
@@ -1488,8 +1484,8 @@
      * @return true if the scan mode was set, false otherwise
      * @hide
      */
-    @UnsupportedAppUsage(publicAlternatives = "Use {@link #ACTION_REQUEST_DISCOVERABLE}, which "
-            + "shows UI that confirms the user wants to go into discoverable mode.")
+    @SystemApi
+    @RequiresPermission(Manifest.permission.BLUETOOTH)
     public boolean setScanMode(@ScanMode int mode, int duration) {
         if (getState() != STATE_ON) {
             return false;
@@ -1507,9 +1503,34 @@
         return false;
     }
 
-    /** @hide */
-    @UnsupportedAppUsage
-    public boolean setScanMode(int mode) {
+    /**
+     * Set the Bluetooth scan mode of the local Bluetooth adapter.
+     * <p>The Bluetooth scan mode determines if the local adapter is
+     * connectable and/or discoverable from remote Bluetooth devices.
+     * <p>For privacy reasons, discoverable mode is automatically turned off
+     * after <code>duration</code> seconds. For example, 120 seconds should be
+     * enough for a remote device to initiate and complete its discovery
+     * process.
+     * <p>Valid scan mode values are:
+     * {@link #SCAN_MODE_NONE},
+     * {@link #SCAN_MODE_CONNECTABLE},
+     * {@link #SCAN_MODE_CONNECTABLE_DISCOVERABLE}.
+     * <p>If Bluetooth state is not {@link #STATE_ON}, this API
+     * will return false. After turning on Bluetooth,
+     * wait for {@link #ACTION_STATE_CHANGED} with {@link #STATE_ON}
+     * to get the updated value.
+     * <p>Applications cannot set the scan mode. They should use
+     * <code>startActivityForResult(
+     * BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE})
+     * </code>instead.
+     *
+     * @param mode valid scan mode
+     * @return true if the scan mode was set, false otherwise
+     * @hide
+     */
+    @SystemApi
+    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    public boolean setScanMode(@ScanMode int mode) {
         if (getState() != STATE_ON) {
             return false;
         }
@@ -1562,6 +1583,8 @@
      * been called recently.
      * @hide
      */
+    @SystemApi
+    @RequiresPermission(Manifest.permission.BLUETOOTH)
     public long getDiscoveryEndMillis() {
         try {
             mServiceLock.readLock().lock();
@@ -1711,6 +1734,56 @@
     }
 
     /**
+     * Connects all enabled and supported bluetooth profiles between the local and remote device
+     *
+     * @param device is the remote device with which to connect these profiles
+     * @return true if all profiles successfully connected, false if an error occurred
+     *
+     * @hide
+     */
+    @SystemApi
+    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+    public boolean connectAllEnabledProfiles(@NonNull BluetoothDevice device) {
+        try {
+            mServiceLock.readLock().lock();
+            if (mService != null) {
+                return mService.connectAllEnabledProfiles(device);
+            }
+        } catch (RemoteException e) {
+            Log.e(TAG, "", e);
+        } finally {
+            mServiceLock.readLock().unlock();
+        }
+
+        return false;
+    }
+
+    /**
+     * Disconnects all enabled and supported bluetooth profiles between the local and remote device
+     *
+     * @param device is the remote device with which to disconnect these profiles
+     * @return true if all profiles successfully disconnected, false if an error occurred
+     *
+     * @hide
+     */
+    @SystemApi
+    @RequiresPermission(Manifest.permission.BLUETOOTH_ADMIN)
+    public boolean disconnectAllEnabledProfiles(@NonNull BluetoothDevice device) {
+        try {
+            mServiceLock.readLock().lock();
+            if (mService != null) {
+                return mService.disconnectAllEnabledProfiles(device);
+            }
+        } catch (RemoteException e) {
+            Log.e(TAG, "", e);
+        } finally {
+            mServiceLock.readLock().unlock();
+        }
+
+        return false;
+    }
+
+    /**
      * Return true if the multi advertisement is supported by the chipset
      *
      * @return true if Multiple Advertisement feature is supported
@@ -2060,7 +2133,7 @@
      * BluetoothProfile}.
      * @hide
      */
-    public List<Integer> getSupportedProfiles() {
+    public @NonNull List<Integer> getSupportedProfiles() {
         final ArrayList<Integer> supportedProfiles = new ArrayList<Integer>();
 
         try {
diff --git a/core/java/android/bluetooth/BluetoothDevice.java b/core/java/android/bluetooth/BluetoothDevice.java
index c616044..0be3eca 100644
--- a/core/java/android/bluetooth/BluetoothDevice.java
+++ b/core/java/android/bluetooth/BluetoothDevice.java
@@ -173,13 +173,10 @@
      * changed.
      * <p>Always contains the extra field {@link #EXTRA_DEVICE}.
      * <p>Requires {@link android.Manifest.permission#BLUETOOTH} to receive.
-     *
-     * @hide
      */
     @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
-    @UnsupportedAppUsage
     public static final String ACTION_ALIAS_CHANGED =
-            "android.bluetooth.device.action.ALIAS_CHANGED";
+            "android.bluetooth.action.ALIAS_CHANGED";
 
     /**
      * Broadcast Action: Indicates a change in the bond state of a remote
@@ -1048,10 +1045,11 @@
      * Get the Bluetooth alias of the remote device.
      * <p>Alias is the locally modified name of a remote device.
      *
-     * @return the Bluetooth alias, or null if no alias or there was a problem
-     * @hide
+     * @return the Bluetooth alias, the friendly device name if no alias, or
+     * null if there was a problem
      */
-    @UnsupportedAppUsage(publicAlternatives = "Use {@link #getName()} instead.")
+    @Nullable
+    @RequiresPermission(Manifest.permission.BLUETOOTH)
     public String getAlias() {
         final IBluetooth service = sService;
         if (service == null) {
@@ -1059,7 +1057,11 @@
             return null;
         }
         try {
-            return service.getRemoteAlias(this);
+            String alias = service.getRemoteAlias(this);
+            if (alias == null) {
+                return getName();
+            }
+            return alias;
         } catch (RemoteException e) {
             Log.e(TAG, "", e);
         }
@@ -1076,8 +1078,9 @@
      * @return true on success, false on error
      * @hide
      */
-    @UnsupportedAppUsage
-    public boolean setAlias(String alias) {
+    @SystemApi
+    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    public boolean setAlias(@NonNull String alias) {
         final IBluetooth service = sService;
         if (service == null) {
             Log.e(TAG, "BT not enabled. Cannot set Remote Device name");
@@ -1092,24 +1095,6 @@
     }
 
     /**
-     * Get the Bluetooth alias of the remote device.
-     * If Alias is null, get the Bluetooth name instead.
-     *
-     * @return the Bluetooth alias, or null if no alias or there was a problem
-     * @hide
-     * @see #getAlias()
-     * @see #getName()
-     */
-    @UnsupportedAppUsage(publicAlternatives = "Use {@link #getName()} instead.")
-    public String getAliasName() {
-        String name = getAlias();
-        if (name == null) {
-            name = getName();
-        }
-        return name;
-    }
-
-    /**
      * Get the most recent identified battery level of this Bluetooth device
      * <p>Requires {@link android.Manifest.permission#BLUETOOTH}
      *
diff --git a/core/java/android/bluetooth/BluetoothPan.java b/core/java/android/bluetooth/BluetoothPan.java
index cfb363a08..4e97627 100644
--- a/core/java/android/bluetooth/BluetoothPan.java
+++ b/core/java/android/bluetooth/BluetoothPan.java
@@ -16,8 +16,13 @@
 
 package android.bluetooth;
 
+import android.annotation.IntDef;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.annotation.SdkConstant;
 import android.annotation.SdkConstant.SdkConstantType;
+import android.annotation.SuppressLint;
+import android.annotation.SystemApi;
 import android.annotation.UnsupportedAppUsage;
 import android.content.Context;
 import android.os.Binder;
@@ -25,6 +30,8 @@
 import android.os.RemoteException;
 import android.util.Log;
 
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -40,6 +47,7 @@
  *
  * @hide
  */
+@SystemApi
 public final class BluetoothPan implements BluetoothProfile {
     private static final String TAG = "BluetoothPan";
     private static final boolean DBG = true;
@@ -67,6 +75,7 @@
      * <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission to
      * receive.
      */
+    @SuppressLint("ActionValue")
     @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
     public static final String ACTION_CONNECTION_STATE_CHANGED =
             "android.bluetooth.pan.profile.action.CONNECTION_STATE_CHANGED";
@@ -76,19 +85,32 @@
      * The local role of the PAN profile that the remote device is bound to.
      * It can be one of {@link #LOCAL_NAP_ROLE} or {@link #LOCAL_PANU_ROLE}.
      */
+    @SuppressLint("ActionValue")
     public static final String EXTRA_LOCAL_ROLE = "android.bluetooth.pan.extra.LOCAL_ROLE";
 
+    /** @hide */
+    @IntDef({PAN_ROLE_NONE, LOCAL_NAP_ROLE, LOCAL_PANU_ROLE})
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface LocalPanRole {}
+
     public static final int PAN_ROLE_NONE = 0;
     /**
      * The local device is acting as a Network Access Point.
      */
     public static final int LOCAL_NAP_ROLE = 1;
-    public static final int REMOTE_NAP_ROLE = 1;
 
     /**
      * The local device is acting as a PAN User.
      */
     public static final int LOCAL_PANU_ROLE = 2;
+
+    /** @hide */
+    @IntDef({PAN_ROLE_NONE, REMOTE_NAP_ROLE, REMOTE_PANU_ROLE})
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface RemotePanRole {}
+
+    public static final int REMOTE_NAP_ROLE = 1;
+
     public static final int REMOTE_PANU_ROLE = 2;
 
     /**
@@ -134,6 +156,8 @@
     /**
      * Create a BluetoothPan proxy object for interacting with the local
      * Bluetooth Service which handles the Pan profile
+     *
+     * @hide
      */
     @UnsupportedAppUsage
     /*package*/ BluetoothPan(Context context, ServiceListener listener) {
@@ -235,7 +259,7 @@
      * {@inheritDoc}
      */
     @Override
-    public List<BluetoothDevice> getConnectedDevices() {
+    public @NonNull List<BluetoothDevice> getConnectedDevices() {
         if (VDBG) log("getConnectedDevices()");
         final IBluetoothPan service = getService();
         if (service != null && isEnabled()) {
@@ -252,6 +276,7 @@
 
     /**
      * {@inheritDoc}
+     * @hide
      */
     @Override
     public List<BluetoothDevice> getDevicesMatchingConnectionStates(int[] states) {
@@ -273,7 +298,7 @@
      * {@inheritDoc}
      */
     @Override
-    public int getConnectionState(BluetoothDevice device) {
+    public int getConnectionState(@Nullable BluetoothDevice device) {
         if (VDBG) log("getState(" + device + ")");
         final IBluetoothPan service = getService();
         if (service != null && isEnabled() && isValidDevice(device)) {
@@ -288,7 +313,11 @@
         return BluetoothProfile.STATE_DISCONNECTED;
     }
 
-    @UnsupportedAppUsage
+    /**
+     * Turns on/off bluetooth tethering
+     *
+     * @param value is whether to enable or disable bluetooth tethering
+     */
     public void setBluetoothTethering(boolean value) {
         String pkgName = mContext.getOpPackageName();
         if (DBG) log("setBluetoothTethering(" + value + "), calling package:" + pkgName);
@@ -302,7 +331,11 @@
         }
     }
 
-    @UnsupportedAppUsage
+    /**
+     * Determines whether tethering is enabled
+     *
+     * @return true if tethering is on, false if not or some error occurred
+     */
     public boolean isTetheringOn() {
         if (VDBG) log("isTetheringOn()");
         final IBluetoothPan service = getService();
diff --git a/core/java/android/bluetooth/BluetoothProfile.java b/core/java/android/bluetooth/BluetoothProfile.java
index dabe0fd..f1ac765 100644
--- a/core/java/android/bluetooth/BluetoothProfile.java
+++ b/core/java/android/bluetooth/BluetoothProfile.java
@@ -20,9 +20,9 @@
 import android.Manifest;
 import android.annotation.IntDef;
 import android.annotation.RequiresPermission;
+import android.annotation.SuppressLint;
 import android.annotation.SystemApi;
 import android.annotation.UnsupportedAppUsage;
-import android.os.Build;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -43,6 +43,7 @@
      * This extra represents the current connection state of the profile of the
      * Bluetooth device.
      */
+    @SuppressLint("ActionValue")
     String EXTRA_STATE = "android.bluetooth.profile.extra.STATE";
 
     /**
@@ -51,6 +52,7 @@
      * This extra represents the previous connection state of the profile of the
      * Bluetooth device.
      */
+    @SuppressLint("ActionValue")
     String EXTRA_PREVIOUS_STATE =
             "android.bluetooth.profile.extra.PREVIOUS_STATE";
 
@@ -106,7 +108,7 @@
      *
      * @hide
      */
-    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
+    @SystemApi
     int PAN = 5;
 
     /**
@@ -324,4 +326,54 @@
                 return "STATE_UNKNOWN";
         }
     }
+
+    /**
+     * Convert an integer value of profile ID into human readable string
+     *
+     * @param profile profile ID
+     * @return profile name as String, UNKOWN_PROFILE if the profile ID is not defined.
+     * @hide
+     */
+    static String getProfileName(int profile) {
+        switch(profile) {
+            case HEADSET:
+                return "HEADSET";
+            case A2DP:
+                return "A2DP";
+            case HID_HOST:
+                return "HID_HOST";
+            case PAN:
+                return "PAN";
+            case PBAP:
+                return "PBAP";
+            case GATT:
+                return "GATT";
+            case GATT_SERVER:
+                return "GATT_SERVER";
+            case MAP:
+                return "MAP";
+            case SAP:
+                return "SAP";
+            case A2DP_SINK:
+                return "A2DP_SINK";
+            case AVRCP_CONTROLLER:
+                return "AVRCP_CONTROLLER";
+            case AVRCP:
+                return "AVRCP";
+            case HEADSET_CLIENT:
+                return "HEADSET_CLIENT";
+            case PBAP_CLIENT:
+                return "PBAP_CLIENT";
+            case MAP_CLIENT:
+                return "MAP_CLIENT";
+            case HID_DEVICE:
+                return "HID_DEVICE";
+            case OPP:
+                return "OPP";
+            case HEARING_AID:
+                return "HEARING_AID";
+            default:
+                return "UNKNOWN_PROFILE";
+        }
+    }
 }
diff --git a/core/java/android/companion/BluetoothDeviceFilterUtils.java b/core/java/android/companion/BluetoothDeviceFilterUtils.java
index 75e726b..0f67f6b 100644
--- a/core/java/android/companion/BluetoothDeviceFilterUtils.java
+++ b/core/java/android/companion/BluetoothDeviceFilterUtils.java
@@ -129,7 +129,7 @@
 
     @UnsupportedAppUsage
     public static String getDeviceDisplayNameInternal(@NonNull BluetoothDevice device) {
-        return firstNotEmpty(device.getAliasName(), device.getAddress());
+        return firstNotEmpty(device.getAlias(), device.getAddress());
     }
 
     @UnsupportedAppUsage
diff --git a/core/java/android/companion/ICompanionDeviceDiscoveryServiceCallback.aidl b/core/java/android/companion/ICompanionDeviceDiscoveryServiceCallback.aidl
index 5f73e55..c9dc019 100644
--- a/core/java/android/companion/ICompanionDeviceDiscoveryServiceCallback.aidl
+++ b/core/java/android/companion/ICompanionDeviceDiscoveryServiceCallback.aidl
@@ -18,6 +18,8 @@
 
 /** @hide */
 interface ICompanionDeviceDiscoveryServiceCallback {
+    @UnsupportedAppUsage
     oneway void onDeviceSelected(String packageName, int userId, String deviceAddress);
+    @UnsupportedAppUsage
     oneway void onDeviceSelectionCancel();
 }
diff --git a/core/java/android/content/BroadcastReceiver.java b/core/java/android/content/BroadcastReceiver.java
index 8691ed4..f73a376 100644
--- a/core/java/android/content/BroadcastReceiver.java
+++ b/core/java/android/content/BroadcastReceiver.java
@@ -16,6 +16,8 @@
 
 package android.content;
 
+import android.annotation.NonNull;
+import android.annotation.SystemApi;
 import android.annotation.UnsupportedAppUsage;
 import android.app.ActivityManager;
 import android.app.ActivityThread;
@@ -25,6 +27,7 @@
 import android.os.Bundle;
 import android.os.IBinder;
 import android.os.RemoteException;
+import android.os.UserHandle;
 import android.util.Log;
 import android.util.Slog;
 
@@ -623,6 +626,20 @@
         return mPendingResult;
     }
 
+    /**
+     * Returns the user that the broadcast was sent to.
+     *
+     * <p>It can be used in a receiver registered by
+     * {@link Context#registerReceiverForAllUsers Context.registerReceiverForAllUsers()}
+     * to determine on which user the broadcast was sent.
+     *
+     * @hide
+     */
+    @SystemApi
+    public final @NonNull UserHandle getSendingUser() {
+        return UserHandle.of(getSendingUserId());
+    }
+
     /** @hide */
     public int getSendingUserId() {
         return mPendingResult.mSendingUser;
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index cd6acba..dbd84a4 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -63,6 +63,7 @@
 import android.os.UserManager;
 import android.os.storage.StorageManager;
 import android.provider.MediaStore;
+import android.telephony.TelephonyRegistryManager;
 import android.util.AttributeSet;
 import android.view.Display;
 import android.view.DisplayAdjustments;
@@ -2423,10 +2424,52 @@
      *
      * @see #sendOrderedBroadcast(Intent, String, BroadcastReceiver, Handler, int, String, Bundle)
      */
+    public void sendOrderedBroadcast(@NonNull Intent intent, @Nullable String receiverPermission,
+            @Nullable String receiverAppOp, @Nullable BroadcastReceiver resultReceiver,
+            @Nullable Handler scheduler, int initialCode, @Nullable String initialData,
+            @Nullable Bundle initialExtras) {
+        throw new RuntimeException("Not implemented. Must override in a subclass.");
+    }
+
+    /**
+     * Version of
+     * {@link #sendOrderedBroadcast(Intent, String, BroadcastReceiver, Handler, int, String,
+     * Bundle)} that allows you to specify the App Op to enforce restrictions on which receivers
+     * the broadcast will be sent to as well as supply an optional sending options
+     *
+     * <p>See {@link BroadcastReceiver} for more information on Intent broadcasts.
+     *
+     * @param intent The Intent to broadcast; all receivers matching this
+     *               Intent will receive the broadcast.
+     * @param receiverPermission String naming a permissions that
+     *               a receiver must hold in order to receive your broadcast.
+     *               If null, no permission is required.
+     * @param receiverAppOp The app op associated with the broadcast. If null, no appOp is
+     *                      required. If both receiverAppOp and receiverPermission are non-null,
+     *                      a receiver must have both of them to
+     *                      receive the broadcast
+     * @param options (optional) Additional sending options, generated from a
+     * {@link android.app.BroadcastOptions}.
+     * @param resultReceiver Your own BroadcastReceiver to treat as the final
+     *                       receiver of the broadcast.
+     * @param scheduler A custom Handler with which to schedule the
+     *                  resultReceiver callback; if null it will be
+     *                  scheduled in the Context's main thread.
+     * @param initialCode An initial value for the result code.  Often
+     *                    Activity.RESULT_OK.
+     * @param initialData An initial value for the result data.  Often
+     *                    null.
+     * @param initialExtras An initial value for the result extras.  Often
+     *                      null.
+     *
+     * @see #sendOrderedBroadcast(Intent, String, BroadcastReceiver, Handler, int, String, Bundle)
+     * @see android.app.BroadcastOptions
+     */
     public void sendOrderedBroadcast(@RequiresPermission @NonNull Intent intent,
             @Nullable String receiverPermission, @Nullable String receiverAppOp,
-            @Nullable BroadcastReceiver resultReceiver, @Nullable Handler scheduler,
-            int initialCode, @Nullable String initialData, @Nullable Bundle initialExtras) {
+            @Nullable Bundle options, @Nullable BroadcastReceiver resultReceiver,
+            @Nullable Handler scheduler, int initialCode, @Nullable String initialData,
+            @Nullable Bundle initialExtras) {
         throw new RuntimeException("Not implemented. Must override in a subclass.");
     }
 
@@ -2794,6 +2837,37 @@
             @Nullable Handler scheduler, @RegisterReceiverFlags int flags);
 
     /**
+     * Same as {@link #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler)}
+     * but this receiver will receive broadcasts that are sent to all users. The receiver can
+     * use {@link BroadcastReceiver#getSendingUser} to determine on which user the broadcast
+     * was sent.
+     *
+     * @param receiver The BroadcastReceiver to handle the broadcast.
+     * @param filter Selects the Intent broadcasts to be received.
+     * @param broadcastPermission String naming a permissions that a
+     *      broadcaster must hold in order to send an Intent to you. If {@code null},
+     *      no permission is required.
+     * @param scheduler Handler identifying the thread that will receive
+     *      the Intent. If {@code null}, the main thread of the process will be used.
+     *
+     * @return The first sticky intent found that matches <var>filter</var>,
+     *         or {@code null} if there are none.
+     *
+     * @see #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler)
+     * @see #sendBroadcast
+     * @see #unregisterReceiver
+     * @hide
+     */
+    @Nullable
+    @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL)
+    @SystemApi
+    public Intent registerReceiverForAllUsers(@Nullable BroadcastReceiver receiver,
+            @NonNull IntentFilter filter, @Nullable String broadcastPermission,
+            @Nullable Handler scheduler) {
+        throw new RuntimeException("Not implemented. Must override in a subclass.");
+    }
+
+    /**
      * @hide
      * Same as {@link #registerReceiver(BroadcastReceiver, IntentFilter, String, Handler)
      * but for a specific user.  This receiver will receiver broadcasts that
@@ -3297,6 +3371,7 @@
             CROSS_PROFILE_APPS_SERVICE,
             //@hide: SYSTEM_UPDATE_SERVICE,
             //@hide: TIME_DETECTOR_SERVICE,
+            //@hide: TIME_ZONE_DETECTOR_SERVICE,
             PERMISSION_SERVICE,
     })
     @Retention(RetentionPolicy.SOURCE)
@@ -4711,7 +4786,7 @@
 
     /**
      * Use with {@link #getSystemService(String)} to retrieve an
-     * {@link android.app.timedetector.ITimeDetectorService}.
+     * {@link android.app.timedetector.TimeDetector}.
      * @hide
      *
      * @see #getSystemService(String)
@@ -4719,6 +4794,15 @@
     public static final String TIME_DETECTOR_SERVICE = "time_detector";
 
     /**
+     * Use with {@link #getSystemService(String)} to retrieve an
+     * {@link android.app.timezonedetector.TimeZoneDetector}.
+     * @hide
+     *
+     * @see #getSystemService(String)
+     */
+    public static final String TIME_ZONE_DETECTOR_SERVICE = "time_zone_detector";
+
+    /**
      * Binder service name for {@link AppBindingService}.
      * @hide
      */
@@ -4726,6 +4810,13 @@
 
     /**
      * Use with {@link #getSystemService(String)} to retrieve an
+     * {@link android.telephony.ims.ImsManager}.
+     * @hide
+     */
+    public static final String TELEPHONY_IMS_SERVICE = "telephony_ims";
+
+    /**
+     * Use with {@link #getSystemService(String)} to retrieve an
      * {@link android.telephony.ims.RcsMessageManager}.
      * @hide
      */
@@ -4740,7 +4831,7 @@
 
     /**
      * Use with {@link #getSystemService(String)} to retrieve an
-     * {@link android.os.telephony.TelephonyRegistryManager}.
+     * {@link TelephonyRegistryManager}.
      * @hide
      */
     @SystemApi
@@ -5248,8 +5339,9 @@
      */
     @SystemApi
     @TestApi
+    @NonNull
     public Context createPackageContextAsUser(
-            String packageName, @CreatePackageOptions int flags, UserHandle user)
+            @NonNull String packageName, @CreatePackageOptions int flags, @NonNull UserHandle user)
             throws PackageManager.NameNotFoundException {
         if (Build.IS_ENG) {
             throw new IllegalStateException("createPackageContextAsUser not overridden!");
@@ -5258,6 +5350,23 @@
     }
 
     /**
+     * Similar to {@link #createPackageContext(String, int)}, but for the own package with a
+     * different {@link UserHandle}. For example, {@link #getContentResolver()}
+     * will open any {@link Uri} as the given user.
+     *
+     * @hide
+     */
+    @SystemApi
+    @TestApi
+    @NonNull
+    public Context createContextAsUser(@NonNull UserHandle user, @CreatePackageOptions int flags) {
+        if (Build.IS_ENG) {
+            throw new IllegalStateException("createContextAsUser not overridden!");
+        }
+        return this;
+    }
+
+    /**
      * Creates a context given an {@link android.content.pm.ApplicationInfo}.
      *
      * @hide
@@ -5293,6 +5402,7 @@
      * Get the user associated with this context
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public @UserIdInt int getUserId() {
         return android.os.UserHandle.myUserId();
@@ -5409,6 +5519,7 @@
      * @return Returns the {@link Display} object this context is associated with.
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public abstract Display getDisplay();
 
diff --git a/core/java/android/content/ContextWrapper.java b/core/java/android/content/ContextWrapper.java
index 6c33f6d..22b345f 100644
--- a/core/java/android/content/ContextWrapper.java
+++ b/core/java/android/content/ContextWrapper.java
@@ -583,6 +583,16 @@
     }
 
     @Override
+    public void sendOrderedBroadcast(@RequiresPermission @NonNull Intent intent,
+            @Nullable String receiverPermission, @Nullable String receiverAppOp,
+            @Nullable Bundle options, @Nullable BroadcastReceiver resultReceiver,
+            @Nullable Handler scheduler, int initialCode, @Nullable String initialData,
+            @Nullable Bundle initialExtras) {
+        mBase.sendOrderedBroadcast(intent, receiverPermission, receiverAppOp, options,
+                resultReceiver, scheduler, initialCode, initialData, initialExtras);
+    }
+
+    @Override
     @Deprecated
     public void sendStickyBroadcast(Intent intent) {
         mBase.sendStickyBroadcast(intent);
@@ -664,6 +674,16 @@
 
     /** @hide */
     @Override
+    @Nullable
+    public Intent registerReceiverForAllUsers(@Nullable BroadcastReceiver receiver,
+            @NonNull IntentFilter filter, @Nullable String broadcastPermission,
+            @Nullable Handler scheduler) {
+        return mBase.registerReceiverForAllUsers(receiver, filter, broadcastPermission,
+                scheduler);
+    }
+
+    /** @hide */
+    @Override
     @UnsupportedAppUsage
     public Intent registerReceiverAsUser(
         BroadcastReceiver receiver, UserHandle user, IntentFilter filter,
@@ -898,6 +918,12 @@
 
     /** @hide */
     @Override
+    public Context createContextAsUser(UserHandle user, @CreatePackageOptions int flags) {
+        return mBase.createContextAsUser(user, flags);
+    }
+
+    /** @hide */
+    @Override
     @UnsupportedAppUsage
     public Context createApplicationContext(ApplicationInfo application,
             int flags) throws PackageManager.NameNotFoundException {
@@ -939,6 +965,7 @@
     }
 
     /** @hide */
+    @UnsupportedAppUsage
     @TestApi
     @Override
     public Display getDisplay() {
diff --git a/core/java/android/content/UndoManager.java b/core/java/android/content/UndoManager.java
index f6a0d77..f9c58d6 100644
--- a/core/java/android/content/UndoManager.java
+++ b/core/java/android/content/UndoManager.java
@@ -18,8 +18,6 @@
 
 import android.annotation.UnsupportedAppUsage;
 import android.os.Parcel;
-import android.os.Parcelable;
-import android.os.ParcelableParcel;
 import android.text.TextUtils;
 import android.util.ArrayMap;
 
@@ -88,6 +86,10 @@
     public static final int MERGE_MODE_ANY = 2;
 
     @UnsupportedAppUsage
+    public UndoManager() {
+    }
+
+    @UnsupportedAppUsage
     public UndoOwner getOwner(String tag, Object data) {
         if (tag == null) {
             throw new NullPointerException("tag can't be null");
diff --git a/core/java/android/content/pm/ActivityInfo.java b/core/java/android/content/pm/ActivityInfo.java
index 415c242..95e5f6b 100644
--- a/core/java/android/content/pm/ActivityInfo.java
+++ b/core/java/android/content/pm/ActivityInfo.java
@@ -1237,6 +1237,7 @@
      * Determines whether the {@link Activity} is considered translucent or floating.
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public static boolean isTranslucentOrFloating(TypedArray attributes) {
         final boolean isTranslucent =
diff --git a/core/java/android/content/pm/ApplicationInfo.java b/core/java/android/content/pm/ApplicationInfo.java
index d6b70e0..0ea1845 100644
--- a/core/java/android/content/pm/ApplicationInfo.java
+++ b/core/java/android/content/pm/ApplicationInfo.java
@@ -470,6 +470,7 @@
      *
      * {@hide}
      */
+    @UnsupportedAppUsage
     @TestApi
     public static final int PRIVATE_FLAG_PRIVILEGED = 1<<3;
 
@@ -733,6 +734,7 @@
      * Private/hidden flags. See {@code PRIVATE_FLAG_...} constants.
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public @ApplicationInfoPrivateFlags int privateFlags;
 
diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl
index a7eecd7..7538dca 100644
--- a/core/java/android/content/pm/IPackageManager.aidl
+++ b/core/java/android/content/pm/IPackageManager.aidl
@@ -753,6 +753,8 @@
 
     String getWellbeingPackageName();
 
+    String[] getTelephonyPackageNames();
+
     String getAppPredictionServicePackageName();
 
     String getSystemCaptionsServicePackageName();
diff --git a/core/java/android/content/pm/PackageInstaller.java b/core/java/android/content/pm/PackageInstaller.java
index 3cecd7f..1099d8b 100644
--- a/core/java/android/content/pm/PackageInstaller.java
+++ b/core/java/android/content/pm/PackageInstaller.java
@@ -1565,7 +1565,7 @@
         }
 
         /** {@hide} */
-        @SystemApi
+        @SystemApi @TestApi
         public void setRequestDowngrade(boolean requestDowngrade) {
             if (requestDowngrade) {
                 installFlags |= PackageManager.INSTALL_REQUEST_DOWNGRADE;
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index 1a44aa1..81670cd 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -3285,6 +3285,7 @@
      *
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public static final String SYSTEM_SHARED_LIBRARY_SERVICES = "android.ext.services";
 
@@ -3297,6 +3298,7 @@
      *
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public static final String SYSTEM_SHARED_LIBRARY_SHARED = "android.ext.shared";
 
@@ -3919,6 +3921,7 @@
      *
      * @hide
      */
+    @UnsupportedAppUsage
     @NonNull
     @TestApi
     public abstract String getPermissionControllerPackageName();
@@ -4625,6 +4628,7 @@
      *
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public abstract @NonNull String getServicesSystemSharedLibraryPackageName();
 
@@ -4635,6 +4639,7 @@
      *
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public abstract @NonNull String getSharedSystemSharedLibraryPackageName();
 
@@ -7363,6 +7368,18 @@
     }
 
     /**
+     * @return the system defined telephony package names, or null if there's none.
+     *
+     * @hide
+     */
+    @Nullable
+    @TestApi
+    public String[] getTelephonyPackageNames() {
+        throw new UnsupportedOperationException(
+                "getTelephonyPackageNames not implemented in subclass");
+    }
+
+    /**
      * @return the system defined content capture service package name, or null if there's none.
      *
      * @hide
diff --git a/core/java/android/content/pm/PackageManagerInternal.java b/core/java/android/content/pm/PackageManagerInternal.java
index 672994e..ce5fc3b 100644
--- a/core/java/android/content/pm/PackageManagerInternal.java
+++ b/core/java/android/content/pm/PackageManagerInternal.java
@@ -59,6 +59,7 @@
     public static final int PACKAGE_CONFIGURATOR = 9;
     public static final int PACKAGE_INCIDENT_REPORT_APPROVER = 10;
     public static final int PACKAGE_APP_PREDICTOR = 11;
+    public static final int PACKAGE_TELEPHONY = 12;
     @IntDef(value = {
         PACKAGE_SYSTEM,
         PACKAGE_SETUP_WIZARD,
@@ -72,6 +73,7 @@
         PACKAGE_CONFIGURATOR,
         PACKAGE_INCIDENT_REPORT_APPROVER,
         PACKAGE_APP_PREDICTOR,
+        PACKAGE_TELEPHONY,
     })
     @Retention(RetentionPolicy.SOURCE)
     public @interface KnownPackage {}
@@ -413,6 +415,17 @@
             @ResolveInfoFlags int flags, int filterCallingUid, int userId);
 
     /**
+     * Retrieve all activities that can be performed for the given intent.
+     * @param filterCallingUid The results will be filtered in the context of this UID instead
+     * of the calling UID.
+     * @see PackageManager#queryIntentActivities(Intent, int)
+     */
+    public abstract List<ResolveInfo> queryIntentActivities(
+            Intent intent, @Nullable String resolvedType, @ResolveInfoFlags int flags,
+            int filterCallingUid, int userId);
+
+
+    /**
      * Retrieve all services that can be performed for the given intent.
      * @see PackageManager#queryIntentServices(Intent, int)
      */
@@ -715,10 +728,11 @@
      */
     public abstract boolean isResolveActivityComponent(@NonNull ComponentInfo component);
 
+
     /**
-     * Returns the package name for a known package.
+     * Returns a list of package names for a known package
      */
-    public abstract @Nullable String getKnownPackageName(
+    public abstract @NonNull String[] getKnownPackageNames(
             @KnownPackage int knownPackage, int userId);
 
     /**
@@ -876,12 +890,6 @@
             "android.content.pm.extra.ENABLE_ROLLBACK_INSTALL_FLAGS";
 
     /**
-     * Extra field name for the set of installed users for a given rollback package.
-     */
-    public static final String EXTRA_ENABLE_ROLLBACK_INSTALLED_USERS =
-            "android.content.pm.extra.ENABLE_ROLLBACK_INSTALLED_USERS";
-
-    /**
      * Extra field name for the user id an install is associated with when
      * enabling rollback.
      */
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index f15b5d7..c53b644 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -254,6 +254,8 @@
 
     /** @hide */
     public static final String APK_FILE_EXTENSION = ".apk";
+    /** @hide */
+    public static final String APEX_FILE_EXTENSION = ".apex";
 
     /** @hide */
     public static class NewPermissionInfo {
@@ -618,21 +620,6 @@
     }
 
     /**
-     * Generate and return the {@link PackageInfo} for a parsed package.
-     *
-     * @param p the parsed package.
-     * @param flags indicating which optional information is included.
-     */
-    @UnsupportedAppUsage
-    public static PackageInfo generatePackageInfo(PackageParser.Package p,
-            int gids[], int flags, long firstInstallTime, long lastUpdateTime,
-            Set<String> grantedPermissions, PackageUserState state) {
-
-        return generatePackageInfo(p, gids, flags, firstInstallTime, lastUpdateTime,
-                grantedPermissions, state, UserHandle.getCallingUserId());
-    }
-
-    /**
      * Returns true if the package is installed and not hidden, or if the caller
      * explicitly wanted all uninstalled and hidden packages as well.
      * @param appInfo The applicationInfo of the app being checked.
@@ -658,8 +645,45 @@
         return checkUseInstalledOrHidden(0, state, null);
     }
 
+    /**
+     * Generate and return the {@link PackageInfo} for a parsed package.
+     *
+     * @param p the parsed package.
+     * @param flags indicating which optional information is included.
+     */
     @UnsupportedAppUsage
     public static PackageInfo generatePackageInfo(PackageParser.Package p,
+            int[] gids, int flags, long firstInstallTime, long lastUpdateTime,
+            Set<String> grantedPermissions, PackageUserState state) {
+
+        return generatePackageInfo(p, gids, flags, firstInstallTime, lastUpdateTime,
+                grantedPermissions, state, UserHandle.getCallingUserId());
+    }
+
+    @UnsupportedAppUsage
+    public static PackageInfo generatePackageInfo(PackageParser.Package p,
+            int[] gids, int flags, long firstInstallTime, long lastUpdateTime,
+            Set<String> grantedPermissions, PackageUserState state, int userId) {
+
+        return generatePackageInfo(p, null, gids, flags, firstInstallTime, lastUpdateTime,
+                grantedPermissions, state, userId);
+    }
+
+    /**
+     * PackageInfo generator specifically for apex files.
+     *
+     * @param pkg Package to generate info from. Should be derived from an apex.
+     * @param apexInfo Apex info relating to the package.
+     * @return PackageInfo
+     * @throws PackageParserException
+     */
+    public static PackageInfo generatePackageInfo(
+            PackageParser.Package pkg, ApexInfo apexInfo, int flags) {
+        return generatePackageInfo(pkg, apexInfo, EmptyArray.INT, flags, 0, 0,
+                Collections.emptySet(), new PackageUserState(), UserHandle.getCallingUserId());
+    }
+
+    private static PackageInfo generatePackageInfo(PackageParser.Package p, ApexInfo apexInfo,
             int gids[], int flags, long firstInstallTime, long lastUpdateTime,
             Set<String> grantedPermissions, PackageUserState state, int userId) {
         if (!checkUseInstalledOrHidden(flags, state, p.applicationInfo) || !p.isMatch(flags)) {
@@ -806,8 +830,27 @@
                 }
             }
         }
+
+        if (apexInfo != null) {
+            File apexFile = new File(apexInfo.modulePath);
+
+            pi.applicationInfo.sourceDir = apexFile.getPath();
+            pi.applicationInfo.publicSourceDir = apexFile.getPath();
+            if (apexInfo.isFactory) {
+                pi.applicationInfo.flags |= ApplicationInfo.FLAG_SYSTEM;
+            } else {
+                pi.applicationInfo.flags &= ~ApplicationInfo.FLAG_SYSTEM;
+            }
+            if (apexInfo.isActive) {
+                pi.applicationInfo.flags |= ApplicationInfo.FLAG_INSTALLED;
+            } else {
+                pi.applicationInfo.flags &= ~ApplicationInfo.FLAG_INSTALLED;
+            }
+            pi.isApex = true;
+        }
+
         // deprecated method of getting signing certificates
-        if ((flags&PackageManager.GET_SIGNATURES) != 0) {
+        if ((flags & PackageManager.GET_SIGNATURES) != 0) {
             if (p.mSigningDetails.hasPastSigningCertificates()) {
                 // Package has included signing certificate rotation information.  Return the oldest
                 // cert so that programmatic checks keep working even if unaware of key rotation.
@@ -8379,61 +8422,4 @@
         }
     }
 
-    // TODO(b/129261524): Clean up API
-    /**
-     * PackageInfo parser specifically for apex files.
-     * NOTE: It will collect certificates
-     *
-     * @param apexInfo
-     * @return PackageInfo
-     * @throws PackageParserException
-     */
-    public static PackageInfo generatePackageInfoFromApex(ApexInfo apexInfo, int flags)
-            throws PackageParserException {
-        PackageParser pp = new PackageParser();
-        File apexFile = new File(apexInfo.modulePath);
-        final Package p = pp.parsePackage(apexFile, flags, false);
-        PackageUserState state = new PackageUserState();
-        PackageInfo pi = generatePackageInfo(p, EmptyArray.INT, flags, 0, 0,
-                Collections.emptySet(), state);
-        pi.applicationInfo.sourceDir = apexFile.getPath();
-        pi.applicationInfo.publicSourceDir = apexFile.getPath();
-        if (apexInfo.isFactory) {
-            pi.applicationInfo.flags |= ApplicationInfo.FLAG_SYSTEM;
-        } else {
-            pi.applicationInfo.flags &= ~ApplicationInfo.FLAG_SYSTEM;
-        }
-        if (apexInfo.isActive) {
-            pi.applicationInfo.flags |= ApplicationInfo.FLAG_INSTALLED;
-        } else {
-            pi.applicationInfo.flags &= ~ApplicationInfo.FLAG_INSTALLED;
-        }
-        pi.isApex = true;
-
-        // Collect certificates
-        if ((flags & PackageManager.GET_SIGNING_CERTIFICATES) != 0) {
-            collectCertificates(p, apexFile, false);
-            // Keep legacy mechanism for handling signatures. While this is deprecated, it's
-            // still part of the public API and needs to be maintained
-            if (p.mSigningDetails.hasPastSigningCertificates()) {
-                // Package has included signing certificate rotation information.  Return
-                // the oldest cert so that programmatic checks keep working even if unaware
-                // of key rotation.
-                pi.signatures = new Signature[1];
-                pi.signatures[0] = p.mSigningDetails.pastSigningCertificates[0];
-            } else if (p.mSigningDetails.hasSignatures()) {
-                // otherwise keep old behavior
-                int numberOfSigs = p.mSigningDetails.signatures.length;
-                pi.signatures = new Signature[numberOfSigs];
-                System.arraycopy(p.mSigningDetails.signatures, 0, pi.signatures, 0, numberOfSigs);
-            }
-            if (p.mSigningDetails != SigningDetails.UNKNOWN) {
-                // only return a valid SigningInfo if there is signing information to report
-                pi.signingInfo = new SigningInfo(p.mSigningDetails);
-            } else {
-                pi.signingInfo = null;
-            }
-        }
-        return pi;
-    }
 }
diff --git a/core/java/android/content/pm/PermissionInfo.java b/core/java/android/content/pm/PermissionInfo.java
index dd5c6a5..c77c53f 100644
--- a/core/java/android/content/pm/PermissionInfo.java
+++ b/core/java/android/content/pm/PermissionInfo.java
@@ -237,6 +237,17 @@
     @TestApi
     public static final int PROTECTION_FLAG_APP_PREDICTOR = 0x200000;
 
+    /**
+     * Additional flag for {@link #protectionLevel}, corresponding
+     * to the <code>telephony</code> value of
+     * {@link android.R.attr#protectionLevel}.
+     *
+     * @hide
+     */
+    @SystemApi
+    @TestApi
+    public static final int PROTECTION_FLAG_TELEPHONY = 0x400000;
+
     /** @hide */
     @IntDef(flag = true, prefix = { "PROTECTION_FLAG_" }, value = {
             PROTECTION_FLAG_PRIVILEGED,
@@ -258,6 +269,7 @@
             PROTECTION_FLAG_CONFIGURATOR,
             PROTECTION_FLAG_INCIDENT_REPORT_APPROVER,
             PROTECTION_FLAG_APP_PREDICTOR,
+            PROTECTION_FLAG_TELEPHONY,
     })
     @Retention(RetentionPolicy.SOURCE)
     public @interface ProtectionFlags {}
@@ -501,6 +513,9 @@
         if ((level & PermissionInfo.PROTECTION_FLAG_APP_PREDICTOR) != 0) {
             protLevel += "|appPredictor";
         }
+        if ((level & PermissionInfo.PROTECTION_FLAG_TELEPHONY) != 0) {
+            protLevel += "|telephony";
+        }
         return protLevel;
     }
 
diff --git a/core/java/android/content/res/Configuration.java b/core/java/android/content/res/Configuration.java
index 1abfe70..4604424 100644
--- a/core/java/android/content/res/Configuration.java
+++ b/core/java/android/content/res/Configuration.java
@@ -799,6 +799,7 @@
      * {@link ActivityInfo#CONFIG_ASSETS_PATHS}.
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public int assetsSeq;
 
diff --git a/core/java/android/content/res/ConfigurationBoundResourceCache.java b/core/java/android/content/res/ConfigurationBoundResourceCache.java
index 3af395a..848790f 100644
--- a/core/java/android/content/res/ConfigurationBoundResourceCache.java
+++ b/core/java/android/content/res/ConfigurationBoundResourceCache.java
@@ -26,6 +26,11 @@
  * @hide For internal use only.
  */
 public class ConfigurationBoundResourceCache<T> extends ThemedResourceCache<ConstantState<T>> {
+
+    @UnsupportedAppUsage
+    public ConfigurationBoundResourceCache() {
+    }
+
     /**
      * If the resource is cached, creates and returns a new instance of it.
      *
diff --git a/core/java/android/content/res/DrawableCache.java b/core/java/android/content/res/DrawableCache.java
index d4f0ca5..90604b8 100644
--- a/core/java/android/content/res/DrawableCache.java
+++ b/core/java/android/content/res/DrawableCache.java
@@ -23,6 +23,11 @@
  * Class which can be used to cache Drawable resources against a theme.
  */
 class DrawableCache extends ThemedResourceCache<Drawable.ConstantState> {
+
+    @UnsupportedAppUsage
+    DrawableCache() {
+    }
+
     /**
      * If the resource is cached, creates and returns a new instance of it.
      *
diff --git a/core/java/android/content/rollback/IRollbackManager.aidl b/core/java/android/content/rollback/IRollbackManager.aidl
index 1b84f29..8c2a65f 100644
--- a/core/java/android/content/rollback/IRollbackManager.aidl
+++ b/core/java/android/content/rollback/IRollbackManager.aidl
@@ -24,7 +24,7 @@
 interface IRollbackManager {
 
     ParceledListSlice getAvailableRollbacks();
-    ParceledListSlice getRecentlyExecutedRollbacks();
+    ParceledListSlice getRecentlyCommittedRollbacks();
 
     void commitRollback(int rollbackId, in ParceledListSlice causePackages,
             String callerPackageName, in IntentSender statusReceiver);
@@ -51,4 +51,7 @@
     // Used by the staging manager to notify the RollbackManager of the apk
     // session for a staged session.
     void notifyStagedApkSession(int originalSessionId, int apkSessionId);
+
+    // For test purposes only.
+    void blockRollbackManager(long millis);
 }
diff --git a/core/java/android/content/rollback/PackageRollbackInfo.java b/core/java/android/content/rollback/PackageRollbackInfo.java
index 2014751..c89796d 100644
--- a/core/java/android/content/rollback/PackageRollbackInfo.java
+++ b/core/java/android/content/rollback/PackageRollbackInfo.java
@@ -76,10 +76,10 @@
     private final boolean mIsApex;
 
     /*
-     * The list of users the package is installed for.
+     * The list of users for which snapshots have been saved.
      */
     // NOTE: Not a part of the Parcelable representation of this object.
-    private final IntArray mInstalledUsers;
+    private final IntArray mSnapshottedUsers;
 
     /**
      * A mapping between user and an inode of theirs CE data snapshot.
@@ -148,8 +148,8 @@
     }
 
     /** @hide */
-    public IntArray getInstalledUsers() {
-        return mInstalledUsers;
+    public IntArray getSnapshottedUsers() {
+        return mSnapshottedUsers;
     }
 
     /** @hide */
@@ -179,14 +179,14 @@
     public PackageRollbackInfo(VersionedPackage packageRolledBackFrom,
             VersionedPackage packageRolledBackTo,
             @NonNull IntArray pendingBackups, @NonNull ArrayList<RestoreInfo> pendingRestores,
-            boolean isApex, @NonNull IntArray installedUsers,
+            boolean isApex, @NonNull IntArray snapshottedUsers,
             @NonNull SparseLongArray ceSnapshotInodes) {
         this.mVersionRolledBackFrom = packageRolledBackFrom;
         this.mVersionRolledBackTo = packageRolledBackTo;
         this.mPendingBackups = pendingBackups;
         this.mPendingRestores = pendingRestores;
         this.mIsApex = isApex;
-        this.mInstalledUsers = installedUsers;
+        this.mSnapshottedUsers = snapshottedUsers;
         this.mCeSnapshotInodes = ceSnapshotInodes;
     }
 
@@ -196,7 +196,7 @@
         this.mIsApex = in.readBoolean();
         this.mPendingRestores = null;
         this.mPendingBackups = null;
-        this.mInstalledUsers = null;
+        this.mSnapshottedUsers = null;
         this.mCeSnapshotInodes = null;
     }
 
diff --git a/core/java/android/content/rollback/RollbackManager.java b/core/java/android/content/rollback/RollbackManager.java
index 9a10a0c..73b8a48 100644
--- a/core/java/android/content/rollback/RollbackManager.java
+++ b/core/java/android/content/rollback/RollbackManager.java
@@ -114,7 +114,7 @@
     })
     public @NonNull List<RollbackInfo> getRecentlyCommittedRollbacks() {
         try {
-            return mBinder.getRecentlyExecutedRollbacks().getList();
+            return mBinder.getRecentlyCommittedRollbacks().getList();
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
         }
@@ -250,4 +250,25 @@
             throw e.rethrowFromSystemServer();
         }
     }
+
+    /**
+     * Block the RollbackManager for a specified amount of time.
+     * This API is meant to facilitate testing of race conditions in
+     * RollbackManager. Blocks RollbackManager from processing anything for
+     * the given number of milliseconds.
+     *
+     * @param millis number of milliseconds to block the RollbackManager for
+     * @throws SecurityException if the caller does not have appropriate permissions.
+     *
+     * @hide
+     */
+    @RequiresPermission(android.Manifest.permission.TEST_MANAGE_ROLLBACKS)
+    @TestApi
+    public void blockRollbackManager(long millis) {
+        try {
+            mBinder.blockRollbackManager(millis);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
 }
diff --git a/core/java/android/database/IContentObserver.aidl b/core/java/android/database/IContentObserver.aidl
index 22dc9fe..6235566 100644
--- a/core/java/android/database/IContentObserver.aidl
+++ b/core/java/android/database/IContentObserver.aidl
@@ -29,5 +29,6 @@
      * observed. selfUpdate is true if the update was caused by a call to
      * commit on the cursor that is being observed.
      */
+    @UnsupportedAppUsage
     oneway void onChange(boolean selfUpdate, in Uri uri, int userId);
 }
diff --git a/core/java/android/database/sqlite/SQLiteDebug.java b/core/java/android/database/sqlite/SQLiteDebug.java
index a231a92..3d0ac61 100644
--- a/core/java/android/database/sqlite/SQLiteDebug.java
+++ b/core/java/android/database/sqlite/SQLiteDebug.java
@@ -23,6 +23,8 @@
 import android.util.Log;
 import android.util.Printer;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 import java.util.ArrayList;
 
 /**
@@ -116,9 +118,15 @@
      * @see #nativeGetPagerStats(PagerStats)
      */
     public static class PagerStats {
+
+        @UnsupportedAppUsage
+        public PagerStats() {
+        }
+
         /** the current amount of memory checked out by sqlite using sqlite3_malloc().
          * documented at http://www.sqlite.org/c3ref/c_status_malloc_size.html
          */
+        @UnsupportedAppUsage
         public int memoryUsed;
 
         /** the number of bytes of page cache allocation which could not be sattisfied by the
@@ -128,16 +136,19 @@
          * that overflowed because no space was left in the page cache.
          * documented at http://www.sqlite.org/c3ref/c_status_malloc_size.html
          */
+        @UnsupportedAppUsage
         public int pageCacheOverflow;
 
         /** records the largest memory allocation request handed to sqlite3.
          * documented at http://www.sqlite.org/c3ref/c_status_malloc_size.html
          */
+        @UnsupportedAppUsage
         public int largestMemAlloc;
 
         /** a list of {@link DbStats} - one for each main database opened by the applications
          * running on the android device
          */
+        @UnsupportedAppUsage
         public ArrayList<DbStats> dbStats;
     }
 
@@ -146,16 +157,20 @@
      */
     public static class DbStats {
         /** name of the database */
+        @UnsupportedAppUsage
         public String dbName;
 
         /** the page size for the database */
+        @UnsupportedAppUsage
         public long pageSize;
 
         /** the database size */
+        @UnsupportedAppUsage
         public long dbSize;
 
         /**
          * Number of lookaside slots: http://www.sqlite.org/c3ref/c_dbstatus_lookaside_used.html */
+        @UnsupportedAppUsage
         public int lookaside;
 
         /** statement cache stats: hits/misses/cachesize */
@@ -175,6 +190,7 @@
      * return all pager and database stats for the current process.
      * @return {@link PagerStats}
      */
+    @UnsupportedAppUsage
     public static PagerStats getDatabaseInfo() {
         PagerStats stats = new PagerStats();
         nativeGetPagerStats(stats);
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java
index cfa3934..56bacf2 100644
--- a/core/java/android/net/ConnectivityManager.java
+++ b/core/java/android/net/ConnectivityManager.java
@@ -52,13 +52,12 @@
 import android.os.ServiceSpecificException;
 import android.provider.Settings;
 import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
 import android.util.ArrayMap;
 import android.util.Log;
 import android.util.SparseIntArray;
 
 import com.android.internal.annotations.GuardedBy;
-import com.android.internal.telephony.ITelephony;
-import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.util.Preconditions;
 import com.android.internal.util.Protocol;
 
@@ -711,6 +710,12 @@
     @Deprecated
     public static final int TYPE_TEST = 18; // TODO: Remove this once NetworkTypes are unused.
 
+    // Deprecated constants for return values of startUsingNetworkFeature. They used to live
+    // in com.android.internal.telephony.PhoneConstants until they were made inaccessible.
+    private static final int DEPRECATED_PHONE_CONSTANT_APN_ALREADY_ACTIVE = 0;
+    private static final int DEPRECATED_PHONE_CONSTANT_APN_REQUEST_STARTED = 1;
+    private static final int DEPRECATED_PHONE_CONSTANT_APN_REQUEST_FAILED = 3;
+
     /** {@hide} */
     public static final int MAX_RADIO_TYPE = TYPE_TEST;
 
@@ -1407,7 +1412,7 @@
         if (netCap == null) {
             Log.d(TAG, "Can't satisfy startUsingNetworkFeature for " + networkType + ", " +
                     feature);
-            return PhoneConstants.APN_REQUEST_FAILED;
+            return DEPRECATED_PHONE_CONSTANT_APN_REQUEST_FAILED;
         }
 
         NetworkRequest request = null;
@@ -1417,9 +1422,9 @@
                 Log.d(TAG, "renewing startUsingNetworkFeature request " + l.networkRequest);
                 renewRequestLocked(l);
                 if (l.currentNetwork != null) {
-                    return PhoneConstants.APN_ALREADY_ACTIVE;
+                    return DEPRECATED_PHONE_CONSTANT_APN_ALREADY_ACTIVE;
                 } else {
-                    return PhoneConstants.APN_REQUEST_STARTED;
+                    return DEPRECATED_PHONE_CONSTANT_APN_REQUEST_STARTED;
                 }
             }
 
@@ -1427,10 +1432,10 @@
         }
         if (request != null) {
             Log.d(TAG, "starting startUsingNetworkFeature for request " + request);
-            return PhoneConstants.APN_REQUEST_STARTED;
+            return DEPRECATED_PHONE_CONSTANT_APN_REQUEST_STARTED;
         } else {
             Log.d(TAG, " request Failed");
-            return PhoneConstants.APN_REQUEST_FAILED;
+            return DEPRECATED_PHONE_CONSTANT_APN_REQUEST_FAILED;
         }
     }
 
@@ -1763,6 +1768,10 @@
 
     /** @hide */
     public static class PacketKeepaliveCallback {
+        @UnsupportedAppUsage
+        public PacketKeepaliveCallback() {
+        }
+
         /** The requested keepalive was successfully started. */
         @UnsupportedAppUsage
         public void onStarted() {}
@@ -2145,19 +2154,14 @@
     @Deprecated
     @UnsupportedAppUsage
     public boolean getMobileDataEnabled() {
-        IBinder b = ServiceManager.getService(Context.TELEPHONY_SERVICE);
-        if (b != null) {
-            try {
-                ITelephony it = ITelephony.Stub.asInterface(b);
-                int subId = SubscriptionManager.getDefaultDataSubscriptionId();
-                Log.d("ConnectivityManager", "getMobileDataEnabled()+ subId=" + subId);
-                boolean retVal = it.isUserDataEnabled(subId);
-                Log.d("ConnectivityManager", "getMobileDataEnabled()- subId=" + subId
-                        + " retVal=" + retVal);
-                return retVal;
-            } catch (RemoteException e) {
-                throw e.rethrowFromSystemServer();
-            }
+        TelephonyManager tm = mContext.getSystemService(TelephonyManager.class);
+        if (tm != null) {
+            int subId = SubscriptionManager.getDefaultDataSubscriptionId();
+            Log.d("ConnectivityManager", "getMobileDataEnabled()+ subId=" + subId);
+            boolean retVal = tm.createForSubscriptionId(subId).isDataEnabled();
+            Log.d("ConnectivityManager", "getMobileDataEnabled()- subId=" + subId
+                    + " retVal=" + retVal);
+            return retVal;
         }
         Log.d("ConnectivityManager", "getMobileDataEnabled()- remote exception retVal=false");
         return false;
diff --git a/core/java/android/net/IConnectivityManager.aidl b/core/java/android/net/IConnectivityManager.aidl
index 61648dc..5f662f9 100644
--- a/core/java/android/net/IConnectivityManager.aidl
+++ b/core/java/android/net/IConnectivityManager.aidl
@@ -52,6 +52,7 @@
     @UnsupportedAppUsage
     NetworkInfo getActiveNetworkInfo();
     NetworkInfo getActiveNetworkInfoForUid(int uid, boolean ignoreBlocked);
+    @UnsupportedAppUsage(maxTargetSdk = 28)
     NetworkInfo getNetworkInfo(int networkType);
     NetworkInfo getNetworkInfoForUid(in Network network, int uid, boolean ignoreBlocked);
     @UnsupportedAppUsage
@@ -112,6 +113,7 @@
 
     int setUsbTethering(boolean enable, String callerPkg);
 
+    @UnsupportedAppUsage(maxTargetSdk = 28)
     void reportInetCondition(int networkType, int percentage);
 
     void reportNetworkConnectivity(in Network network, boolean hasConnectivity);
diff --git a/core/java/android/net/InterfaceConfiguration.java b/core/java/android/net/InterfaceConfiguration.java
index c97b37b..c9a999c 100644
--- a/core/java/android/net/InterfaceConfiguration.java
+++ b/core/java/android/net/InterfaceConfiguration.java
@@ -40,6 +40,10 @@
 
     private static final  String[] EMPTY_STRING_ARRAY = new String[0];
 
+    @UnsupportedAppUsage
+    public InterfaceConfiguration() {
+    }
+
     @Override
     public String toString() {
         final StringBuilder builder = new StringBuilder();
diff --git a/core/java/android/net/IpConfiguration.java b/core/java/android/net/IpConfiguration.java
index 2af82d7..dddb64d 100644
--- a/core/java/android/net/IpConfiguration.java
+++ b/core/java/android/net/IpConfiguration.java
@@ -16,6 +16,10 @@
 
 package android.net;
 
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.SuppressLint;
+import android.annotation.SystemApi;
 import android.annotation.UnsupportedAppUsage;
 import android.net.StaticIpConfiguration;
 import android.os.Parcel;
@@ -27,13 +31,17 @@
  * A class representing a configured network.
  * @hide
  */
-public class IpConfiguration implements Parcelable {
+@SystemApi
+public final class IpConfiguration implements Parcelable {
     private static final String TAG = "IpConfiguration";
 
+    // This enum has been used by apps through reflection for many releases.
+    // Therefore they can't just be removed. Duplicating these constants to
+    // give an alternate SystemApi is a worse option than exposing them.
+    @SuppressLint("Enum")
     public enum IpAssignment {
         /* Use statically configured IP settings. Configuration can be accessed
          * with staticIpConfiguration */
-        @UnsupportedAppUsage
         STATIC,
         /* Use dynamically configured IP settings */
         DHCP,
@@ -42,14 +50,19 @@
         UNASSIGNED
     }
 
+    /** @hide */
     public IpAssignment ipAssignment;
 
+    /** @hide */
     public StaticIpConfiguration staticIpConfiguration;
 
+    // This enum has been used by apps through reflection for many releases.
+    // Therefore they can't just be removed. Duplicating these constants to
+    // give an alternate SystemApi is a worse option than exposing them.
+    @SuppressLint("Enum")
     public enum ProxySettings {
         /* No proxy is to be used. Any existing proxy settings
          * should be cleared. */
-        @UnsupportedAppUsage
         NONE,
         /* Use statically configured proxy. Configuration can be accessed
          * with httpProxy. */
@@ -62,8 +75,10 @@
         PAC
     }
 
+    /** @hide */
     public ProxySettings proxySettings;
 
+    /** @hide */
     @UnsupportedAppUsage
     public ProxyInfo httpProxy;
 
@@ -83,6 +98,7 @@
         init(IpAssignment.UNASSIGNED, ProxySettings.UNASSIGNED, null, null);
     }
 
+    /** @hide */
     @UnsupportedAppUsage
     public IpConfiguration(IpAssignment ipAssignment,
                            ProxySettings proxySettings,
@@ -91,7 +107,7 @@
         init(ipAssignment, proxySettings, staticIpConfiguration, httpProxy);
     }
 
-    public IpConfiguration(IpConfiguration source) {
+    public IpConfiguration(@NonNull IpConfiguration source) {
         this();
         if (source != null) {
             init(source.ipAssignment, source.proxySettings,
@@ -99,35 +115,35 @@
         }
     }
 
-    public IpAssignment getIpAssignment() {
+    public @NonNull IpAssignment getIpAssignment() {
         return ipAssignment;
     }
 
-    public void setIpAssignment(IpAssignment ipAssignment) {
+    public void setIpAssignment(@NonNull IpAssignment ipAssignment) {
         this.ipAssignment = ipAssignment;
     }
 
-    public StaticIpConfiguration getStaticIpConfiguration() {
+    public @Nullable StaticIpConfiguration getStaticIpConfiguration() {
         return staticIpConfiguration;
     }
 
-    public void setStaticIpConfiguration(StaticIpConfiguration staticIpConfiguration) {
+    public void setStaticIpConfiguration(@Nullable StaticIpConfiguration staticIpConfiguration) {
         this.staticIpConfiguration = staticIpConfiguration;
     }
 
-    public ProxySettings getProxySettings() {
+    public @NonNull ProxySettings getProxySettings() {
         return proxySettings;
     }
 
-    public void setProxySettings(ProxySettings proxySettings) {
+    public void setProxySettings(@NonNull ProxySettings proxySettings) {
         this.proxySettings = proxySettings;
     }
 
-    public ProxyInfo getHttpProxy() {
+    public @Nullable ProxyInfo getHttpProxy() {
         return httpProxy;
     }
 
-    public void setHttpProxy(ProxyInfo httpProxy) {
+    public void setHttpProxy(@Nullable ProxyInfo httpProxy) {
         this.httpProxy = httpProxy;
     }
 
@@ -180,8 +196,8 @@
         return 0;
     }
 
-    /** Implement the Parcelable interface  */
-    public void writeToParcel(Parcel dest, int flags) {
+    /** Implement the Parcelable interface */
+    public void writeToParcel(@NonNull Parcel dest, int flags) {
         dest.writeString(ipAssignment.name());
         dest.writeString(proxySettings.name());
         dest.writeParcelable(staticIpConfiguration, flags);
@@ -189,7 +205,7 @@
     }
 
     /** Implement the Parcelable interface */
-    public static final @android.annotation.NonNull Creator<IpConfiguration> CREATOR =
+    public static final @NonNull Creator<IpConfiguration> CREATOR =
         new Creator<IpConfiguration>() {
             public IpConfiguration createFromParcel(Parcel in) {
                 IpConfiguration config = new IpConfiguration();
diff --git a/core/java/android/net/LinkProperties.java b/core/java/android/net/LinkProperties.java
index 3ec0aea..8e18341 100644
--- a/core/java/android/net/LinkProperties.java
+++ b/core/java/android/net/LinkProperties.java
@@ -111,6 +111,8 @@
     /**
      * @hide
      */
+    @UnsupportedAppUsage(implicitMember =
+            "values()[Landroid/net/LinkProperties$ProvisioningChange;")
     public enum ProvisioningChange {
         @UnsupportedAppUsage
         STILL_NOT_PROVISIONED,
@@ -760,10 +762,7 @@
      * Returns the NAT64 prefix in use on this link, if any.
      *
      * @return the NAT64 prefix or {@code null}.
-     * @hide
      */
-    @SystemApi
-    @TestApi
     public @Nullable IpPrefix getNat64Prefix() {
         return mNat64Prefix;
     }
@@ -775,10 +774,7 @@
      * 128-bit IPv6 address) are supported or {@code null} for no prefix.
      *
      * @param prefix the NAT64 prefix.
-     * @hide
      */
-    @SystemApi
-    @TestApi
     public void setNat64Prefix(@Nullable IpPrefix prefix) {
         if (prefix != null && prefix.getPrefixLength() != 96) {
             throw new IllegalArgumentException("Only 96-bit prefixes are supported: " + prefix);
diff --git a/core/java/android/net/MobileLinkQualityInfo.java b/core/java/android/net/MobileLinkQualityInfo.java
index 06c739d..a10a14d 100644
--- a/core/java/android/net/MobileLinkQualityInfo.java
+++ b/core/java/android/net/MobileLinkQualityInfo.java
@@ -40,6 +40,10 @@
     private int mLteRssnr = UNKNOWN_INT;
     private int mLteCqi = UNKNOWN_INT;
 
+    @UnsupportedAppUsage
+    public MobileLinkQualityInfo() {
+    }
+
     /**
      * Implement the Parcelable interface.
      * @hide
diff --git a/core/java/android/net/NetworkAgent.java b/core/java/android/net/NetworkAgent.java
index 43ea589..ff4bf2d 100644
--- a/core/java/android/net/NetworkAgent.java
+++ b/core/java/android/net/NetworkAgent.java
@@ -16,6 +16,7 @@
 
 package android.net;
 
+import android.annotation.NonNull;
 import android.annotation.UnsupportedAppUsage;
 import android.content.Context;
 import android.os.Build;
@@ -418,7 +419,16 @@
         if (score < 0) {
             throw new IllegalArgumentException("Score must be >= 0");
         }
-        queueOrSendMessage(EVENT_NETWORK_SCORE_CHANGED,  score, 0);
+        final NetworkScore ns = new NetworkScore();
+        ns.putIntExtension(NetworkScore.LEGACY_SCORE, score);
+        updateScore(ns);
+    }
+
+    /**
+     * Called by the bearer code when it has a new NetworkScore for this network.
+     */
+    public void updateScore(@NonNull NetworkScore ns) {
+        queueOrSendMessage(EVENT_NETWORK_SCORE_CHANGED, new NetworkScore(ns));
     }
 
     /**
diff --git a/core/java/android/net/NetworkCapabilities.java b/core/java/android/net/NetworkCapabilities.java
index e3259ff..88877e2 100644
--- a/core/java/android/net/NetworkCapabilities.java
+++ b/core/java/android/net/NetworkCapabilities.java
@@ -478,6 +478,7 @@
      * @return an array of capability values for this instance.
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public @NetCapability int[] getCapabilities() {
         return BitUtils.unpackBits(mNetworkCapabilities);
diff --git a/core/java/android/net/NetworkIdentity.java b/core/java/android/net/NetworkIdentity.java
index ce2de85..febc730 100644
--- a/core/java/android/net/NetworkIdentity.java
+++ b/core/java/android/net/NetworkIdentity.java
@@ -25,7 +25,6 @@
 import android.net.wifi.WifiManager;
 import android.os.Build;
 import android.service.NetworkIdentityProto;
-import android.telephony.TelephonyManager;
 import android.util.Slog;
 import android.util.proto.ProtoOutputStream;
 
@@ -98,8 +97,6 @@
         builder.append(", subType=");
         if (COMBINE_SUBTYPE_ENABLED) {
             builder.append("COMBINED");
-        } else if (ConnectivityManager.isNetworkTypeMobile(mType)) {
-            builder.append(TelephonyManager.getNetworkTypeName(mSubType));
         } else {
             builder.append(mSubType);
         }
diff --git a/core/java/android/net/NetworkKey.java b/core/java/android/net/NetworkKey.java
index a101da7..9af1407 100644
--- a/core/java/android/net/NetworkKey.java
+++ b/core/java/android/net/NetworkKey.java
@@ -16,17 +16,20 @@
 
 package android.net;
 
+import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.SystemApi;
 import android.net.wifi.ScanResult;
 import android.net.wifi.WifiInfo;
-import android.net.wifi.WifiSsid;
+import android.net.wifi.WifiManager;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.text.TextUtils;
 import android.util.Log;
 
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 import java.util.Objects;
 
 /**
@@ -48,6 +51,13 @@
     /** A wifi network, for which {@link #wifiKey} will be populated. */
     public static final int TYPE_WIFI = 1;
 
+    /** @hide */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(prefix = {"TYPE_"}, value = {
+            TYPE_WIFI
+    })
+    public @interface NetworkType {}
+
     /**
      * The type of this network.
      * @see #TYPE_WIFI
@@ -65,26 +75,28 @@
      *
      * @return  A new {@link NetworkKey} instance or <code>null</code> if the given
      *          {@link ScanResult} instance is malformed.
-     * @hide
      */
     @Nullable
     public static NetworkKey createFromScanResult(@Nullable ScanResult result) {
-        if (result != null && result.wifiSsid != null) {
-            final String ssid = result.wifiSsid.toString();
-            final String bssid = result.BSSID;
-            if (!TextUtils.isEmpty(ssid) && !ssid.equals(WifiSsid.NONE)
-                    && !TextUtils.isEmpty(bssid)) {
-                WifiKey wifiKey;
-                try {
-                    wifiKey = new WifiKey(String.format("\"%s\"", ssid), bssid);
-                } catch (IllegalArgumentException e) {
-                    Log.e(TAG, "Unable to create WifiKey.", e);
-                    return null;
-                }
-                return new NetworkKey(wifiKey);
-            }
+        if (result == null) {
+            return null;
         }
-        return null;
+        final String ssid = result.SSID;
+        if (TextUtils.isEmpty(ssid) || ssid.equals(WifiManager.UNKNOWN_SSID)) {
+            return null;
+        }
+        final String bssid = result.BSSID;
+        if (TextUtils.isEmpty(bssid)) {
+            return null;
+        }
+
+        try {
+            final WifiKey wifiKey = new WifiKey(String.format("\"%s\"", ssid), bssid);
+            return new NetworkKey(wifiKey);
+        } catch (IllegalArgumentException e) {
+            Log.e(TAG, "Unable to create WifiKey.", e);
+            return null;
+        }
     }
 
     /**
@@ -100,7 +112,7 @@
         if (wifiInfo != null) {
             final String ssid = wifiInfo.getSSID();
             final String bssid = wifiInfo.getBSSID();
-            if (!TextUtils.isEmpty(ssid) && !ssid.equals(WifiSsid.NONE)
+            if (!TextUtils.isEmpty(ssid) && !ssid.equals(WifiManager.UNKNOWN_SSID)
                     && !TextUtils.isEmpty(bssid)) {
                 WifiKey wifiKey;
                 try {
diff --git a/core/java/android/net/NetworkScore.java b/core/java/android/net/NetworkScore.java
new file mode 100644
index 0000000..13f2994
--- /dev/null
+++ b/core/java/android/net/NetworkScore.java
@@ -0,0 +1,162 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+package android.net;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.os.Bundle;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import java.util.Objects;
+
+/**
+ * Object representing the quality of a network as perceived by the user.
+ *
+ * A NetworkScore object represents the characteristics of a network that affects how good the
+ * network is considered for a particular use.
+ * @hide
+ */
+public final class NetworkScore implements Parcelable {
+
+    // The key of bundle which is used to get the legacy network score of NetworkAgentInfo.
+    // TODO: Remove this when the transition to NetworkScore is over.
+    public static final String LEGACY_SCORE = "LEGACY_SCORE";
+    @NonNull
+    private final Bundle mExtensions;
+
+    public NetworkScore() {
+        mExtensions = new Bundle();
+    }
+
+    public NetworkScore(@NonNull NetworkScore source) {
+        mExtensions = new Bundle(source.mExtensions);
+    }
+
+    /**
+     * Put the value of parcelable inside the bundle by key.
+     */
+    public void putExtension(@Nullable String key, @Nullable Parcelable value) {
+        mExtensions.putParcelable(key, value);
+    }
+
+    /**
+     * Put the value of int inside the bundle by key.
+     */
+    public void putIntExtension(@Nullable String key, int value) {
+        mExtensions.putInt(key, value);
+    }
+
+    /**
+     * Get the value of non primitive type by key.
+     */
+    public <T extends Parcelable> T getExtension(@Nullable String key) {
+        return mExtensions.getParcelable(key);
+    }
+
+    /**
+     * Get the value of int by key.
+     */
+    public int getIntExtension(@Nullable String key) {
+        return mExtensions.getInt(key);
+    }
+
+    /**
+     * Remove the entry by given key.
+     */
+    public void removeExtension(@Nullable String key) {
+        mExtensions.remove(key);
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(@NonNull Parcel dest, int flags) {
+        synchronized (this) {
+            dest.writeBundle(mExtensions);
+        }
+    }
+
+    public static final @NonNull Creator<NetworkScore> CREATOR = new Creator<NetworkScore>() {
+        @Override
+        public NetworkScore createFromParcel(@NonNull Parcel in) {
+            return new NetworkScore(in);
+        }
+
+        @Override
+        public NetworkScore[] newArray(int size) {
+            return new NetworkScore[size];
+        }
+    };
+
+    private NetworkScore(@NonNull Parcel in) {
+        mExtensions = in.readBundle();
+    }
+
+    // TODO: Modify this method once new fields are added into this class.
+    @Override
+    public boolean equals(@Nullable Object obj) {
+        if (!(obj instanceof NetworkScore)) {
+            return false;
+        }
+        final NetworkScore other = (NetworkScore) obj;
+        return bundlesEqual(mExtensions, other.mExtensions);
+    }
+
+    @Override
+    public int hashCode() {
+        int result = 29;
+        for (String key : mExtensions.keySet()) {
+            final Object value = mExtensions.get(key);
+            // The key may be null, so call Objects.hash() is safer.
+            result += 31 * value.hashCode() + 37 * Objects.hash(key);
+        }
+        return result;
+    }
+
+    // mExtensions won't be null since the constructor will create it.
+    private boolean bundlesEqual(@NonNull Bundle bundle1, @NonNull Bundle bundle2) {
+        if (bundle1 == bundle2) {
+            return true;
+        }
+
+        // This is unlikely but it's fine to add this clause here.
+        if (null == bundle1 || null == bundle2) {
+            return false;
+        }
+
+        if (bundle1.size() != bundle2.size()) {
+            return false;
+        }
+
+        for (String key : bundle1.keySet()) {
+            final Object value1 = bundle1.get(key);
+            final Object value2 = bundle2.get(key);
+            if (!Objects.equals(value1, value2)) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    /** Convert to a string */
+    public String toString() {
+        return "NetworkScore[" + mExtensions.toString() + "]";
+    }
+}
diff --git a/core/java/android/net/NetworkScoreManager.java b/core/java/android/net/NetworkScoreManager.java
index 50dd468..f6dc525 100644
--- a/core/java/android/net/NetworkScoreManager.java
+++ b/core/java/android/net/NetworkScoreManager.java
@@ -17,7 +17,9 @@
 package android.net;
 
 import android.Manifest.permission;
+import android.annotation.CallbackExecutor;
 import android.annotation.IntDef;
+import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.RequiresPermission;
 import android.annotation.SdkConstant;
@@ -25,13 +27,16 @@
 import android.annotation.SystemApi;
 import android.annotation.SystemService;
 import android.content.Context;
+import android.os.Binder;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.ServiceManager.ServiceNotFoundException;
+import android.util.Log;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.List;
+import java.util.concurrent.Executor;
 
 /**
  * Class that manages communication between network subsystems and a network scorer.
@@ -50,19 +55,25 @@
 @SystemApi
 @SystemService(Context.NETWORK_SCORE_SERVICE)
 public class NetworkScoreManager {
+    private static final String TAG = "NetworkScoreManager";
+
     /**
      * Activity action: ask the user to change the active network scorer. This will show a dialog
      * that asks the user whether they want to replace the current active scorer with the one
      * specified in {@link #EXTRA_PACKAGE_NAME}. The activity will finish with RESULT_OK if the
      * active scorer was changed or RESULT_CANCELED if it failed for any reason.
+     * @deprecated No longer sent.
      */
+    @Deprecated
     @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
     public static final String ACTION_CHANGE_ACTIVE = "android.net.scoring.CHANGE_ACTIVE";
 
     /**
      * Extra used with {@link #ACTION_CHANGE_ACTIVE} to specify the new scorer package. Set with
      * {@link android.content.Intent#putExtra(String, String)}.
+     * @deprecated No longer sent.
      */
+    @Deprecated
     public static final String EXTRA_PACKAGE_NAME = "packageName";
 
     /**
@@ -73,7 +84,9 @@
      * configured by the user as well as any open networks.
      *
      * <p class="note">This is a protected intent that can only be sent by the system.
+     * @deprecated Use {@link #ACTION_RECOMMEND_NETWORKS} to bind scorer app instead.
      */
+    @Deprecated
     @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
     public static final String ACTION_SCORE_NETWORKS = "android.net.scoring.SCORE_NETWORKS";
 
@@ -81,7 +94,9 @@
      * Extra used with {@link #ACTION_SCORE_NETWORKS} to specify the networks to be scored, as an
      * array of {@link NetworkKey}s. Can be obtained with
      * {@link android.content.Intent#getParcelableArrayExtra(String)}}.
+     * @deprecated Use {@link #ACTION_RECOMMEND_NETWORKS} to bind scorer app instead.
      */
+    @Deprecated
     public static final String EXTRA_NETWORKS_TO_SCORE = "networksToScore";
 
     /**
@@ -285,7 +300,7 @@
      * @throws SecurityException if the caller is not the active scorer.
      */
     @RequiresPermission(android.Manifest.permission.SCORE_NETWORKS)
-    public boolean updateScores(ScoredNetwork[] networks) throws SecurityException {
+    public boolean updateScores(@NonNull ScoredNetwork[] networks) throws SecurityException {
         try {
             return mService.updateScores(networks);
         } catch (RemoteException e) {
@@ -359,13 +374,21 @@
     /**
      * Request scoring for networks.
      *
-     * @return true if the broadcast was sent, or false if there is no active scorer.
+     * <p>
+     * Note: The results (i.e scores) for these networks, when available will be provided via the
+     * callback registered with {@link #registerNetworkScoreCallback(int, int, Executor,
+     * NetworkScoreCallback)}. The calling module is responsible for registering a callback to
+     * receive the results before requesting new scores via this API.
+     *
+     * @return true if the request was successfully sent, or false if there is no active scorer.
      * @throws SecurityException if the caller does not hold the
      *         {@link permission#REQUEST_NETWORK_SCORES} permission.
+     *
      * @hide
      */
+    @SystemApi
     @RequiresPermission(android.Manifest.permission.REQUEST_NETWORK_SCORES)
-    public boolean requestScores(NetworkKey[] networks) throws SecurityException {
+    public boolean requestScores(@NonNull NetworkKey[] networks) throws SecurityException {
         try {
             return mService.requestScores(networks);
         } catch (RemoteException e) {
@@ -431,6 +454,88 @@
     }
 
     /**
+     * Base class for network score cache callback. Should be extended by applications and set
+     * when calling {@link #registerNetworkScoreCallback(int, int, NetworkScoreCallback,
+     * Executor)}
+     *
+     * @hide
+     */
+    @SystemApi
+    public interface NetworkScoreCallback {
+        /**
+         * Called when a new set of network scores are available.
+         * This is triggered in response when the client invokes
+         * {@link #requestScores(NetworkKey[])} to score a new set of networks.
+         *
+         * @param networks List of {@link ScoredNetwork} containing updated scores.
+         */
+        void updateScores(@NonNull List<ScoredNetwork> networks);
+
+        /**
+         * Invokes when all the previously provided scores are no longer valid.
+         */
+        void clearScores();
+    }
+
+    /**
+     * Callback proxy for {@link NetworkScoreCallback} objects.
+     */
+    private class NetworkScoreCallbackProxy extends INetworkScoreCache.Stub {
+        private final Executor mExecutor;
+        private final NetworkScoreCallback mCallback;
+
+        NetworkScoreCallbackProxy(Executor executor, NetworkScoreCallback callback) {
+            mExecutor = executor;
+            mCallback = callback;
+        }
+
+        @Override
+        public void updateScores(@NonNull List<ScoredNetwork> networks) {
+            Binder.clearCallingIdentity();
+            mExecutor.execute(() -> {
+                mCallback.updateScores(networks);
+            });
+        }
+
+        @Override
+        public void clearScores() {
+            Binder.clearCallingIdentity();
+            mExecutor.execute(() -> {
+                mCallback.clearScores();
+            });
+        }
+    }
+
+    /**
+     * Register a network score callback.
+     *
+     * @param networkType the type of network this cache can handle. See {@link NetworkKey#type}
+     * @param filterType the {@link CacheUpdateFilter} to apply
+     * @param callback implementation of {@link NetworkScoreCallback} that will be invoked when the
+     *                 scores change.
+     * @param executor The executor on which to execute the callbacks.
+     * @throws SecurityException if the caller does not hold the
+     *         {@link permission#REQUEST_NETWORK_SCORES} permission.
+     * @throws IllegalArgumentException if a callback is already registered for this type.
+     * @hide
+     */
+    @SystemApi
+    @RequiresPermission(android.Manifest.permission.REQUEST_NETWORK_SCORES)
+    public void registerNetworkScoreCallback(@NetworkKey.NetworkType int networkType,
+            @CacheUpdateFilter int filterType,
+            @NonNull @CallbackExecutor Executor executor,
+            @NonNull NetworkScoreCallback callback) throws SecurityException {
+        if (callback == null || executor == null) {
+            throw new IllegalArgumentException("callback / executor cannot be null");
+        }
+        Log.v(TAG, "registerNetworkScoreCallback: callback=" + callback + ", executor="
+                + executor);
+        // Use the @hide method.
+        registerNetworkScoreCache(
+                networkType, new NetworkScoreCallbackProxy(executor, callback), filterType);
+    }
+
+    /**
      * Determine whether the application with the given UID is the enabled scorer.
      *
      * @param callingUid the UID to check
diff --git a/core/java/android/net/ProxyInfo.java b/core/java/android/net/ProxyInfo.java
index 807c467..9d92db4 100644
--- a/core/java/android/net/ProxyInfo.java
+++ b/core/java/android/net/ProxyInfo.java
@@ -16,7 +16,8 @@
 
 package android.net;
 
-
+import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.annotation.UnsupportedAppUsage;
 import android.os.Parcel;
 import android.os.Parcelable;
@@ -89,6 +90,15 @@
     }
 
     /**
+     * Construct a {@link ProxyInfo} object that will download and run the PAC script at the
+     * specified URL and port.
+     */
+    @NonNull
+    public static ProxyInfo buildPacProxy(@NonNull Uri pacUrl, int port) {
+        return new ProxyInfo(pacUrl, port);
+    }
+
+    /**
      * Create a ProxyProperties that points at a HTTP Proxy.
      * @hide
      */
@@ -105,7 +115,7 @@
      * Create a ProxyProperties that points at a PAC URL.
      * @hide
      */
-    public ProxyInfo(Uri pacFileUrl) {
+    public ProxyInfo(@NonNull Uri pacFileUrl) {
         mHost = LOCAL_HOST;
         mPort = LOCAL_PORT;
         mExclusionList = LOCAL_EXCL_LIST;
@@ -132,7 +142,7 @@
      * Only used in PacManager after Local Proxy is bound.
      * @hide
      */
-    public ProxyInfo(Uri pacFileUrl, int localProxyPort) {
+    public ProxyInfo(@NonNull Uri pacFileUrl, int localProxyPort) {
         mHost = LOCAL_HOST;
         mPort = localProxyPort;
         mExclusionList = LOCAL_EXCL_LIST;
@@ -159,11 +169,10 @@
         mPacFileUrl = Uri.EMPTY;
     }
 
-    // copy constructor instead of clone
     /**
-     * @hide
+     * A copy constructor to hold proxy properties.
      */
-    public ProxyInfo(ProxyInfo source) {
+    public ProxyInfo(@Nullable ProxyInfo source) {
         if (source != null) {
             mHost = source.getHost();
             mPort = source.getPort();
@@ -226,12 +235,13 @@
      * comma separated
      * @hide
      */
+    @Nullable
     public String getExclusionListAsString() {
         return mExclusionList;
     }
 
     /**
-     * @hide
+     * Return true if the pattern of proxy is valid, otherwise return false.
      */
     public boolean isValid() {
         if (!Uri.EMPTY.equals(mPacFileUrl)) return true;
diff --git a/core/java/android/net/SSLCertificateSocketFactory.java b/core/java/android/net/SSLCertificateSocketFactory.java
index 95d66bb..39cb323 100644
--- a/core/java/android/net/SSLCertificateSocketFactory.java
+++ b/core/java/android/net/SSLCertificateSocketFactory.java
@@ -304,7 +304,8 @@
     }
 
     /**
-     * Sets the <a href="http://technotes.googlecode.com/git/nextprotoneg.html">Next
+     * Sets the
+     * <a class="external" href="https://tools.ietf.org/id/draft-agl-tls-nextprotoneg-03.html">Next
      * Protocol Negotiation (NPN)</a> protocols that this peer is interested in.
      *
      * <p>For servers this is the sequence of protocols to advertise as
diff --git a/core/java/android/net/SntpClient.java b/core/java/android/net/SntpClient.java
index a55d9d0..f9c2def 100644
--- a/core/java/android/net/SntpClient.java
+++ b/core/java/android/net/SntpClient.java
@@ -78,6 +78,10 @@
         }
     }
 
+    @UnsupportedAppUsage
+    public SntpClient() {
+    }
+
     /**
      * Sends an SNTP request to the given host and processes the response.
      *
diff --git a/core/java/android/net/StaticIpConfiguration.java b/core/java/android/net/StaticIpConfiguration.java
index 5bc9953..990c114 100644
--- a/core/java/android/net/StaticIpConfiguration.java
+++ b/core/java/android/net/StaticIpConfiguration.java
@@ -25,6 +25,8 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 
+import com.android.internal.util.Preconditions;
+
 import java.net.InetAddress;
 import java.util.ArrayList;
 import java.util.List;
@@ -152,6 +154,7 @@
          * @return The {@link Builder} for chaining.
          */
         public @NonNull Builder setDnsServers(@NonNull Iterable<InetAddress> dnsServers) {
+            Preconditions.checkNotNull(dnsServers);
             mDnsServers = dnsServers;
             return this;
         }
@@ -175,8 +178,10 @@
             final StaticIpConfiguration config = new StaticIpConfiguration();
             config.ipAddress = mIpAddress;
             config.gateway = mGateway;
-            for (InetAddress server : mDnsServers) {
-                config.dnsServers.add(server);
+            if (mDnsServers != null) {
+                for (InetAddress server : mDnsServers) {
+                    config.dnsServers.add(server);
+                }
             }
             config.domains = mDomains;
             return config;
diff --git a/core/java/android/net/util/MultinetworkPolicyTracker.java b/core/java/android/net/util/MultinetworkPolicyTracker.java
index 4e88149..aa0f622 100644
--- a/core/java/android/net/util/MultinetworkPolicyTracker.java
+++ b/core/java/android/net/util/MultinetworkPolicyTracker.java
@@ -94,7 +94,8 @@
             }
         };
 
-        TelephonyManager.from(ctx).listen(new PhoneStateListener(handler.getLooper()) {
+        ctx.getSystemService(TelephonyManager.class).listen(
+                new PhoneStateListener(handler.getLooper()) {
             @Override
             public void onActiveDataSubscriptionIdChanged(int subId) {
                 mActiveSubId = subId;
diff --git a/core/java/android/os/AsyncTask.java b/core/java/android/os/AsyncTask.java
index d259f38..b37e176 100644
--- a/core/java/android/os/AsyncTask.java
+++ b/core/java/android/os/AsyncTask.java
@@ -38,9 +38,11 @@
 import java.util.concurrent.atomic.AtomicInteger;
 
 /**
- * <p>AsyncTask enables proper and easy use of the UI thread. This class allows you
- * to perform background operations and publish results on the UI thread without
- * having to manipulate threads and/or handlers.</p>
+ * <p>AsyncTask was intended to enable proper and easy use of the UI thread. However, the most
+ * common use case was for integrating into UI, and that would cause Context leaks, missed
+ * callbacks, or crashes on configuration changes. It also has inconsistent behavior on different
+ * versions of the platform, swallows exceptions from {@code doInBackground}, and does not provide
+ * much utility over using {@link Executor}s directly.</p>
  *
  * <p>AsyncTask is designed to be a helper class around {@link Thread} and {@link Handler}
  * and does not constitute a generic threading framework. AsyncTasks should ideally be
@@ -188,7 +190,12 @@
  * <p>If you truly want parallel execution, you can invoke
  * {@link #executeOnExecutor(java.util.concurrent.Executor, Object[])} with
  * {@link #THREAD_POOL_EXECUTOR}.</p>
+ *
+ * @deprecated Use the standard <code>java.util.concurrent</code> or
+ *   <a href="https://developer.android.com/topic/libraries/architecture/coroutines">
+ *   Kotlin concurrency utilities</a> instead.
  */
+@Deprecated
 public abstract class AsyncTask<Params, Progress, Result> {
     private static final String LOG_TAG = "AsyncTask";
 
@@ -240,7 +247,13 @@
 
     /**
      * An {@link Executor} that can be used to execute tasks in parallel.
+     *
+     * @deprecated Using a single thread pool for a general purpose results in suboptimal behavior
+     *   for different tasks. Small, CPU-bound tasks benefit from a bounded pool and queueing, and
+     *   long-running blocking tasks, such as network operations, benefit from many threads. Use or
+     *   create an {@link Executor} configured for your use case.
      */
+    @Deprecated
     public static final Executor THREAD_POOL_EXECUTOR;
 
     static {
@@ -254,7 +267,10 @@
     /**
      * An {@link Executor} that executes tasks one at a time in serial
      * order.  This serialization is global to a particular process.
+     *
+     * @deprecated Globally serializing tasks results in excessive queuing for unrelated operations.
      */
+    @Deprecated
     public static final Executor SERIAL_EXECUTOR = new SerialExecutor();
 
     private static final int MESSAGE_POST_RESULT = 0x1;
diff --git a/core/java/android/os/BatteryStats.java b/core/java/android/os/BatteryStats.java
index 00d522b..59e9972 100644
--- a/core/java/android/os/BatteryStats.java
+++ b/core/java/android/os/BatteryStats.java
@@ -66,6 +66,10 @@
 public abstract class BatteryStats implements Parcelable {
     private static final String TAG = "BatteryStats";
 
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
+    public BatteryStats() {
+    }
+
     private static final boolean LOCAL_LOGV = false;
     /** Fetching RPM stats is too slow to do each time screen changes, so disable it. */
     protected static final boolean SCREEN_OFF_RPM_STATS_ENABLED = false;
@@ -404,6 +408,10 @@
      */
     public static abstract class Counter {
 
+        @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
+        public Counter() {
+        }
+
         /**
          * Returns the count associated with this Counter for the
          * selected type of statistics.
@@ -513,6 +521,10 @@
      */
     public static abstract class Timer {
 
+        @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
+        public Timer() {
+        }
+
         /**
          * Returns the count associated with this Timer for the
          * selected type of statistics.
@@ -628,6 +640,10 @@
      */
     public static abstract class Uid {
 
+        @UnsupportedAppUsage
+        public Uid() {
+        }
+
         /**
          * Returns a mapping containing wakelock statistics.
          *
@@ -668,6 +684,11 @@
          * The statistics associated with a particular wake lock.
          */
         public static abstract class Wakelock {
+
+            @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
+            public Wakelock(){
+            }
+
             @UnsupportedAppUsage
             public abstract Timer getWakeTime(int type);
         }
@@ -945,6 +966,11 @@
         public abstract void getDeferredJobsLineLocked(StringBuilder sb, int which);
 
         public static abstract class Sensor {
+
+            @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
+            public Sensor() {
+            }
+
             /*
              * FIXME: it's not correct to use this magic value because it
              * could clash with a sensor handle (which are defined by
@@ -975,7 +1001,16 @@
          */
         public static abstract class Proc {
 
+            @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
+            public Proc() {
+            }
+
             public static class ExcessivePower {
+
+                @UnsupportedAppUsage
+                public ExcessivePower() {
+                }
+
                 public static final int TYPE_WAKE = 1;
                 public static final int TYPE_CPU = 2;
 
@@ -1050,6 +1085,10 @@
          */
         public static abstract class Pkg {
 
+            @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
+            public Pkg() {
+            }
+
             /**
              * Returns information about all wakeup alarms that have been triggered for this
              * package.  The mapping keys are tag names for the alarms, the counter contains
@@ -1552,6 +1591,7 @@
     }
 
     public final static class HistoryItem implements Parcelable {
+        @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
         public HistoryItem next;
 
         // The time of this event in milliseconds, as per SystemClock.elapsedRealtime().
@@ -1874,6 +1914,7 @@
             numReadInts += (src.dataPosition()-start)/4;
         }
 
+        @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
         public void clear() {
             time = 0;
             cmd = CMD_NULL;
@@ -1894,12 +1935,14 @@
             eventTag = null;
         }
 
+        @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
         public void setTo(HistoryItem o) {
             time = o.time;
             cmd = o.cmd;
             setToCommon(o);
         }
 
+        @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
         public void setTo(long time, byte cmd, HistoryItem o) {
             this.time = time;
             this.cmd = cmd;
@@ -1955,6 +1998,7 @@
                     && currentTime == o.currentTime;
         }
 
+        @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
         public boolean same(HistoryItem o) {
             if (!sameNonEvent(o) || eventCode != o.eventCode) {
                 return false;
@@ -2337,6 +2381,7 @@
      *
      * {@hide}
      */
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     public abstract long getMobileRadioActiveTime(long elapsedRealtimeUs, int which);
 
     /**
@@ -2694,6 +2739,7 @@
     public static final int NETWORK_WIFI_BG_TX_DATA = 9;
     public static final int NUM_NETWORK_ACTIVITY_TYPES = NETWORK_WIFI_BG_TX_DATA + 1;
 
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     public abstract long getNetworkActivityBytes(int type, int which);
     public abstract long getNetworkActivityPackets(int type, int which);
 
diff --git a/core/java/android/os/Binder.java b/core/java/android/os/Binder.java
index 357c0c9..2e6d2cc 100644
--- a/core/java/android/os/Binder.java
+++ b/core/java/android/os/Binder.java
@@ -502,6 +502,19 @@
     public static final native void restoreCallingWorkSource(long token);
 
     /**
+     * Mark as being built with VINTF-level stability promise. This API should
+     * only ever be invoked by the build system. It means that the interface
+     * represented by this binder is guaranteed to be kept stable for several
+     * years, and the build system also keeps snapshots of these APIs and
+     * invokes the AIDL compiler to make sure that these snapshots are
+     * backwards compatible. Instead of using this API, use an @VintfStability
+     * interface.
+     *
+     * @hide
+     */
+    public final native void markVintfStability();
+
+    /**
      * Flush any Binder commands pending in the current thread to the kernel
      * driver.  This can be
      * useful to call before performing an operation that may block for a long
diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java
index f5426cd..1eda4d9 100755
--- a/core/java/android/os/Build.java
+++ b/core/java/android/os/Build.java
@@ -108,6 +108,7 @@
      * Whether this build was for an emulator device.
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public static final boolean IS_EMULATOR = getString("ro.kernel.qemu").equals("1");
 
@@ -991,6 +992,11 @@
          * engaged. It's now time to see if you can dance.</em>
          */
         public static final int Q = 29;
+
+        /**
+         * R.
+         */
+        public static final int R = CUR_DEVELOPMENT;
     }
 
     /** The type of build, like "user" or "eng". */
@@ -1076,7 +1082,7 @@
             return result == 0;
         }
 
-        final String system = SystemProperties.get("ro.build.fingerprint");
+        final String system = SystemProperties.get("ro.system.build.fingerprint");
         final String vendor = SystemProperties.get("ro.vendor.build.fingerprint");
         final String bootimage = SystemProperties.get("ro.bootimage.build.fingerprint");
         final String requiredBootloader = SystemProperties.get("ro.build.expect.bootloader");
@@ -1085,7 +1091,7 @@
         final String currentRadio = SystemProperties.get("gsm.version.baseband");
 
         if (TextUtils.isEmpty(system)) {
-            Slog.e(TAG, "Required ro.build.fingerprint is empty!");
+            Slog.e(TAG, "Required ro.system.build.fingerprint is empty!");
             return false;
         }
 
diff --git a/core/java/android/os/CancellationSignal.java b/core/java/android/os/CancellationSignal.java
index e8053d5..99fb998 100644
--- a/core/java/android/os/CancellationSignal.java
+++ b/core/java/android/os/CancellationSignal.java
@@ -18,13 +18,19 @@
 
 import android.os.ICancellationSignal;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 /**
  * Provides the ability to cancel an operation in progress.
  */
 public final class CancellationSignal {
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private boolean mIsCanceled;
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private OnCancelListener mOnCancelListener;
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private ICancellationSignal mRemote;
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private boolean mCancelInProgress;
 
     /**
@@ -152,6 +158,7 @@
         }
     }
 
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private void waitForCancelFinishedLocked() {
         while (mCancelInProgress) {
             try {
diff --git a/core/java/android/os/Debug.java b/core/java/android/os/Debug.java
index 154e8cd..4ed7b17 100644
--- a/core/java/android/os/Debug.java
+++ b/core/java/android/os/Debug.java
@@ -1690,6 +1690,8 @@
      * such runtime statistic exists.
      *
      * <p>The following table lists the runtime statistics that the runtime supports.
+     * All statistics are approximate. Individual allocations may not be immediately reflected
+     * in the results.
      * Note runtime statistics may be added or removed in a future API level.</p>
      *
      * <table>
diff --git a/core/java/android/os/Environment.java b/core/java/android/os/Environment.java
index 3462d1f..7a131e5 100644
--- a/core/java/android/os/Environment.java
+++ b/core/java/android/os/Environment.java
@@ -55,6 +55,7 @@
     private static final String ENV_VENDOR_ROOT = "VENDOR_ROOT";
     private static final String ENV_PRODUCT_ROOT = "PRODUCT_ROOT";
     private static final String ENV_SYSTEM_EXT_ROOT = "SYSTEM_EXT_ROOT";
+    private static final String ENV_APEX_ROOT = "APEX_ROOT";
 
     /** {@hide} */
     public static final String DIR_ANDROID = "Android";
@@ -78,7 +79,9 @@
     private static final File DIR_VENDOR_ROOT = getDirectory(ENV_VENDOR_ROOT, "/vendor");
     private static final File DIR_PRODUCT_ROOT = getDirectory(ENV_PRODUCT_ROOT, "/product");
     private static final File DIR_SYSTEM_EXT_ROOT = getDirectory(ENV_SYSTEM_EXT_ROOT,
-                                                           "/system_ext");
+            "/system_ext");
+    private static final File DIR_APEX_ROOT = getDirectory(ENV_APEX_ROOT,
+            "/apex");
 
     @UnsupportedAppUsage
     private static UserEnvironment sCurrentUser;
@@ -169,6 +172,7 @@
     }
 
     /** {@hide} */
+    @UnsupportedAppUsage
     @TestApi
     public static @NonNull File getStorageDirectory() {
         return DIR_ANDROID_STORAGE;
@@ -245,6 +249,16 @@
     }
 
     /**
+     * Return root directory of the apex mount point, where all the apex modules are made available
+     * to the rest of the system.
+     *
+     * @hide
+     */
+    public static @NonNull File getApexDirectory() {
+        return DIR_APEX_ROOT;
+    }
+
+    /**
      * Return the system directory for a user. This is for use by system
      * services to store files relating to the user. This directory will be
      * automatically deleted when the user is removed.
diff --git a/core/java/android/os/FileUtils.java b/core/java/android/os/FileUtils.java
index f789b72..2ac3def 100644
--- a/core/java/android/os/FileUtils.java
+++ b/core/java/android/os/FileUtils.java
@@ -1275,7 +1275,13 @@
     /**
      * Closes the given object quietly, ignoring any checked exceptions. Does
      * nothing if the given object is {@code null}.
+     *
+     * @deprecated This method may suppress potentially significant exceptions, particularly when
+     *   closing writable resources. With a writable resource, a failure thrown from {@code close()}
+     *   should be considered as significant as a failure thrown from a write method because it may
+     *   indicate a failure to flush bytes to the underlying resource.
      */
+    @Deprecated
     public static void closeQuietly(@Nullable AutoCloseable closeable) {
         IoUtils.closeQuietly(closeable);
     }
@@ -1283,7 +1289,13 @@
     /**
      * Closes the given object quietly, ignoring any checked exceptions. Does
      * nothing if the given object is {@code null}.
+     *
+     * @deprecated This method may suppress potentially significant exceptions, particularly when
+     *   closing writable resources. With a writable resource, a failure thrown from {@code close()}
+     *   should be considered as significant as a failure thrown from a write method because it may
+     *   indicate a failure to flush bytes to the underlying resource.
      */
+    @Deprecated
     public static void closeQuietly(@Nullable FileDescriptor fd) {
         IoUtils.closeQuietly(fd);
     }
diff --git a/core/java/android/os/Handler.java b/core/java/android/os/Handler.java
index 9af9eda..a99bdabe 100644
--- a/core/java/android/os/Handler.java
+++ b/core/java/android/os/Handler.java
@@ -28,15 +28,14 @@
  * A Handler allows you to send and process {@link Message} and Runnable
  * objects associated with a thread's {@link MessageQueue}.  Each Handler
  * instance is associated with a single thread and that thread's message
- * queue.  When you create a new Handler, it is bound to the thread /
- * message queue of the thread that is creating it -- from that point on,
- * it will deliver messages and runnables to that message queue and execute
- * them as they come out of the message queue.
- * 
+ * queue. When you create a new Handler it is bound to a {@link Looper}.
+ * It will deliver messages and runnables to that Looper's message
+ * queue and execute them on that Looper's thread.
+ *
  * <p>There are two main uses for a Handler: (1) to schedule messages and
  * runnables to be executed at some point in the future; and (2) to enqueue
  * an action to be performed on a different thread than your own.
- * 
+ *
  * <p>Scheduling messages is accomplished with the
  * {@link #post}, {@link #postAtTime(Runnable, long)},
  * {@link #postDelayed}, {@link #sendEmptyMessage},
@@ -114,7 +113,18 @@
      *
      * If this thread does not have a looper, this handler won't be able to receive messages
      * so an exception is thrown.
+     *
+     * @deprecated Implicitly choosing a Looper during Handler construction can lead to bugs
+     *   where operations are silently lost (if the Handler is not expecting new tasks and quits),
+     *   crashes (if a handler is sometimes created on a thread without a Looper active), or race
+     *   conditions, where the thread a handler is associated with is not what the author
+     *   anticipated. Instead, use an {@link java.util.concurrent.Executor} or specify the Looper
+     *   explicitly, using {@link Looper#getMainLooper}, {link android.view.View#getHandler}, or
+     *   similar. If the implicit thread local behavior is required for compatibility, use
+     *   {@code new Handler(Looper.myLooper())} to make it clear to readers.
+     *
      */
+    @Deprecated
     public Handler() {
         this(null, false);
     }
@@ -128,7 +138,17 @@
      * so an exception is thrown.
      *
      * @param callback The callback interface in which to handle messages, or null.
+     *
+     * @deprecated Implicitly choosing a Looper during Handler construction can lead to bugs
+     *   where operations are silently lost (if the Handler is not expecting new tasks and quits),
+     *   crashes (if a handler is sometimes created on a thread without a Looper active), or race
+     *   conditions, where the thread a handler is associated with is not what the author
+     *   anticipated. Instead, use an {@link java.util.concurrent.Executor} or specify the Looper
+     *   explicitly, using {@link Looper#getMainLooper}, {link android.view.View#getHandler}, or
+     *   similar. If the implicit thread local behavior is required for compatibility, use
+     *   {@code new Handler(Looper.myLooper(), callback)} to make it clear to readers.
      */
+    @Deprecated
     public Handler(@Nullable Callback callback) {
         this(callback, false);
     }
diff --git a/core/java/android/os/HidlMemory.java b/core/java/android/os/HidlMemory.java
new file mode 100644
index 0000000..aeb6589
--- /dev/null
+++ b/core/java/android/os/HidlMemory.java
@@ -0,0 +1,141 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package android.os;
+
+import android.annotation.IntRange;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.SystemApi;
+import android.annotation.TestApi;
+
+import java.io.Closeable;
+import java.io.IOException;
+
+/**
+ * An abstract representation of a memory block, as representing by the HIDL system.
+ *
+ * The block is defined by a {name, size, handle} tuple, where the name is used to determine how to
+ * interpret the handle. The underlying handle is assumed to be owned by this instance and will be
+ * closed as soon as {@link #close()} is called on this instance, or this instance has been
+ * finalized (the latter supports using it in a shared manner without having to worry about who owns
+ * this instance, the former is more efficient resource-wise and is recommended for most use-cases).
+ * Note, however, that ownership of the handle does not necessarily imply ownership of the
+ * underlying file descriptors - the underlying handle may or may not own them. If you want the
+ * underlying handle to outlive this instance, call {@link #releaseHandle()} to obtain the handle
+ * and detach the ownership relationship.
+ *
+ * @hide
+ */
+@SystemApi
+@TestApi
+public class HidlMemory implements Closeable {
+    private final @NonNull String mName;
+    private final long mSize;
+    private @Nullable NativeHandle mHandle;
+    private long mNativeContext;  // For use of native code.
+
+    /**
+     * Constructor.
+     *
+     * @param name      The name of the IMapper service used to resolve the handle (e.g. "ashmem").
+     * @param size      The (non-negative) size in bytes of the memory block.
+     * @param handle    The handle. May be null. This instance will own the handle and will close it
+     *                  as soon as {@link #close()} is called or the object is destroyed. This, this
+     *                  handle instance should generally not be shared with other clients.
+     */
+    public HidlMemory(@NonNull String name, @IntRange(from = 0) long size,
+            @Nullable NativeHandle handle) {
+        mName = name;
+        mSize = size;
+        mHandle = handle;
+    }
+
+    /**
+     * Create a copy of this instance, where the underlying handle (and its file descriptors) have
+     * been duplicated.
+     */
+    @NonNull
+    public HidlMemory dup() throws IOException {
+        return new HidlMemory(mName, mSize, mHandle != null ? mHandle.dup() : null);
+    }
+
+    /**
+     * Close the underlying native handle. No-op if handle is null or has been released using {@link
+     * #releaseHandle()}.
+     */
+    @Override
+    public void close() throws IOException {
+        if (mHandle != null) {
+            mHandle.close();
+        }
+    }
+
+    /**
+     * Disowns the underlying handle and returns it. This object becomes invalid.
+     *
+     * @return The underlying handle.
+     */
+    @NonNull
+    public NativeHandle releaseHandle() {
+        NativeHandle handle = mHandle;
+        mHandle = null;
+        return handle;
+    }
+
+    /**
+     * Gets the name, which represents how the handle is to be interpreted.
+     *
+     * @return The name.
+     */
+    @NonNull
+    public String getName() {
+        return mName;
+    }
+
+    /**
+     * Gets the size of the block, in bytes.
+     *
+     * @return The size.
+     */
+    public long getSize() {
+        return mSize;
+    }
+
+    /**
+     * Gets a native handle. The actual interpretation depends on the name and is implementation
+     * defined.
+     *
+     * @return The native handle.
+     */
+    @Nullable
+    public NativeHandle getHandle() {
+        return mHandle;
+    }
+
+    @Override
+    protected void finalize() {
+        try {
+            close();
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        } finally {
+            nativeFinalize();
+        }
+    }
+
+    private native void nativeFinalize();
+}
diff --git a/core/java/android/os/HidlMemoryUtil.java b/core/java/android/os/HidlMemoryUtil.java
new file mode 100644
index 0000000..b08822d
--- /dev/null
+++ b/core/java/android/os/HidlMemoryUtil.java
@@ -0,0 +1,215 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+package android.os;
+
+import static android.system.OsConstants.MAP_SHARED;
+import static android.system.OsConstants.PROT_READ;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.SuppressLint;
+import android.annotation.SystemApi;
+import android.annotation.TestApi;
+import android.system.ErrnoException;
+import android.system.Os;
+import android.util.Log;
+
+import com.android.internal.util.Preconditions;
+
+import java.nio.ByteBuffer;
+import java.nio.DirectByteBuffer;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Provides utilities for dealing with HidlMemory.
+ *
+ * @hide
+ */
+public final class HidlMemoryUtil {
+    static private final String TAG = "HidlMemoryUtil";
+
+    private HidlMemoryUtil() {
+    }
+
+    /**
+     * Copies a byte-array into a new Ashmem region and return it as HidlMemory.
+     * The returned instance owns the underlying file descriptors, and the client should generally
+     * call close on it when no longer in use (or otherwise, when the object gets destroyed it will
+     * be closed).
+     *
+     * @param input The input byte array.
+     * @return A HidlMemory instance, containing a copy of the input.
+     */
+    public static @NonNull
+    HidlMemory byteArrayToHidlMemory(@NonNull byte[] input) {
+        return byteArrayToHidlMemory(input, null);
+    }
+
+    /**
+     * Copies a byte-array into a new Ashmem region and return it as HidlMemory.
+     * The returned instance owns the underlying file descriptors, and the client should generally
+     * call close on it when no longer in use (or otherwise, when the object gets destroyed it will
+     * be closed).
+     *
+     * @param input The input byte array.
+     * @param name  An optional name for the ashmem region.
+     * @return A HidlMemory instance, containing a copy of the input.
+     */
+    public static @NonNull
+    HidlMemory byteArrayToHidlMemory(@NonNull byte[] input, @Nullable String name) {
+        Preconditions.checkNotNull(input);
+
+        if (input.length == 0) {
+            return new HidlMemory("ashmem", 0, null);
+        }
+
+        try {
+            SharedMemory shmem = SharedMemory.create(name != null ? name : "", input.length);
+            ByteBuffer buffer = shmem.mapReadWrite();
+            buffer.put(input);
+            shmem.unmap(buffer);
+            NativeHandle handle = new NativeHandle(shmem.getFileDescriptor(), true);
+            return new HidlMemory("ashmem", input.length, handle);
+        } catch (ErrnoException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
+     * Copies a byte list into a new Ashmem region and return it as HidlMemory.
+     * The returned instance owns the underlying file descriptors, and the client should generally
+     * call close on it when no longer in use (or otherwise, when the object gets destroyed it will
+     * be closed).
+     *
+     * @param input The input byte list.
+     * @return A HidlMemory instance, containing a copy of the input.
+     */
+    public static @NonNull
+    HidlMemory byteListToHidlMemory(@NonNull List<Byte> input) {
+        return byteListToHidlMemory(input, null);
+    }
+
+    /**
+     * Copies a byte list into a new Ashmem region and return it as HidlMemory.
+     * The returned instance owns the underlying file descriptors, and the client should generally
+     * call close on it when no longer in use (or otherwise, when the object gets destroyed it will
+     * be closed).
+     *
+     * @param input The input byte list.
+     * @param name  An optional name for the ashmem region.
+     * @return A HidlMemory instance, containing a copy of the input.
+     */
+    public static @NonNull
+    HidlMemory byteListToHidlMemory(@NonNull List<Byte> input, @Nullable String name) {
+        Preconditions.checkNotNull(input);
+
+        if (input.isEmpty()) {
+            return new HidlMemory("ashmem", 0, null);
+        }
+
+        try {
+            SharedMemory shmem = SharedMemory.create(name != null ? name : "", input.size());
+            ByteBuffer buffer = shmem.mapReadWrite();
+            for (Byte b : input) {
+                buffer.put(b);
+            }
+            shmem.unmap(buffer);
+            NativeHandle handle = new NativeHandle(shmem.getFileDescriptor(), true);
+            return new HidlMemory("ashmem", input.size(), handle);
+        } catch (ErrnoException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
+     * Copies all data from a HidlMemory instance into a byte array.
+     *
+     * @param mem The HidlMemory instance. Must be of name "ashmem" and of size that doesn't exceed
+     *            {@link Integer#MAX_VALUE}.
+     * @return A byte array, containing a copy of the input.
+     */
+    public static @NonNull
+    byte[] hidlMemoryToByteArray(@NonNull HidlMemory mem) {
+        Preconditions.checkNotNull(mem);
+        Preconditions.checkArgumentInRange(mem.getSize(), 0L, (long) Integer.MAX_VALUE,
+                "Memory size");
+        Preconditions.checkArgument(mem.getSize() == 0 || mem.getName().equals("ashmem"),
+                "Unsupported memory type: %s", mem.getName());
+
+        if (mem.getSize() == 0) {
+            return new byte[0];
+        }
+
+        ByteBuffer buffer = getBuffer(mem);
+        byte[] result = new byte[buffer.remaining()];
+        buffer.get(result);
+        return result;
+    }
+
+    /**
+     * Copies all data from a HidlMemory instance into a byte list.
+     *
+     * @param mem The HidlMemory instance. Must be of name "ashmem" and of size that doesn't exceed
+     *            {@link Integer#MAX_VALUE}.
+     * @return A byte list, containing a copy of the input.
+     */
+    @SuppressLint("ConcreteCollection")
+    public static @NonNull
+    ArrayList<Byte> hidlMemoryToByteList(@NonNull HidlMemory mem) {
+        Preconditions.checkNotNull(mem);
+        Preconditions.checkArgumentInRange(mem.getSize(), 0L, (long) Integer.MAX_VALUE,
+                "Memory size");
+        Preconditions.checkArgument(mem.getSize() == 0 || mem.getName().equals("ashmem"),
+                "Unsupported memory type: %s", mem.getName());
+
+        if (mem.getSize() == 0) {
+            return new ArrayList<>();
+        }
+
+        ByteBuffer buffer = getBuffer(mem);
+
+        ArrayList<Byte> result = new ArrayList<>(buffer.remaining());
+        while (buffer.hasRemaining()) {
+            result.add(buffer.get());
+        }
+        return result;
+    }
+
+    private static ByteBuffer getBuffer(@NonNull HidlMemory mem) {
+        try {
+            final int size = (int) mem.getSize();
+
+            if (size == 0) {
+                return ByteBuffer.wrap(new byte[0]);
+            }
+
+            NativeHandle handle = mem.getHandle();
+
+            final long address = Os.mmap(0, size, PROT_READ, MAP_SHARED, handle.getFileDescriptor(),
+                    0);
+            return new DirectByteBuffer(size, address, handle.getFileDescriptor(), () -> {
+                try {
+                    Os.munmap(address, size);
+                } catch (ErrnoException e) {
+                    Log.wtf(TAG, e);
+                }
+            }, true);
+        } catch (ErrnoException e) {
+            throw new RuntimeException(e);
+        }
+    }
+}
diff --git a/core/java/android/os/HwBlob.java b/core/java/android/os/HwBlob.java
index 2c453bf..154227b2 100644
--- a/core/java/android/os/HwBlob.java
+++ b/core/java/android/os/HwBlob.java
@@ -92,6 +92,14 @@
      * @throws IndexOutOfBoundsException when offset is out of this HwBlob
      */
     public native final String getString(long offset);
+    /**
+     * For embedded fields that follow a two-step approach for reading, first obtain their field
+     * handle using this method, and pass that field handle to the respective
+     * HwParcel.readEmbedded*() method.
+     * @param offset The field offset.
+     * @return The field handle.
+     */
+    public native final long getFieldHandle(long offset);
 
     /**
      * Copy the blobs data starting from the given byte offset into the range, copying
@@ -312,6 +320,20 @@
     public native final void putBlob(long offset, HwBlob blob);
 
     /**
+     * Writes a HidlMemory instance (without duplicating the underlying file descriptors) at an
+     * offset.
+     *
+     * @param offset location to write value
+     * @param mem    a {@link HidlMemory} instance to write
+     * @throws IndexOutOfBoundsException when [offset, offset + sizeof(jobject)] is out of range
+     */
+    public final void putHidlMemory(long offset, @NonNull HidlMemory mem) {
+        putNativeHandle(offset + 0  /* offset of 'handle' field. */, mem.getHandle());
+        putInt64(offset + 16  /* offset of 'size' field. */, mem.getSize());
+        putString(offset + 24  /* offset of 'name' field. */, mem.getName());
+    }
+
+    /**
      * @return current handle of HwBlob for reference in a parcelled binder transaction
      */
     public native final long handle();
diff --git a/core/java/android/os/HwParcel.java b/core/java/android/os/HwParcel.java
index 5e8929c..9786f16 100644
--- a/core/java/android/os/HwParcel.java
+++ b/core/java/android/os/HwParcel.java
@@ -324,6 +324,15 @@
     public native final void writeStrongBinder(IHwBinder binder);
 
     /**
+     * Write a HidlMemory object (without duplicating the underlying file descriptors) to the end
+     * of the parcel.
+     *
+     * @param memory value to write
+     */
+    @FastNative
+    public native final void writeHidlMemory(@NonNull HidlMemory memory);
+
+    /**
      * Checks to make sure that the interface name matches the name written by the parcel
      * sender by writeInterfaceToken
      *
@@ -582,6 +591,38 @@
     public native final IHwBinder readStrongBinder();
 
     /**
+     * Reads a HidlMemory value (without duplicating the underlying file
+     * descriptors) from the parcel. These file descriptors will only
+     * be open for the duration that the binder window is open. If they
+     * are needed further, you must call {@link HidlMemory#dup()}, which makes you also
+     * responsible for calling {@link HidlMemory#close()}.
+     *
+     * @return HidlMemory object read from parcel.
+     * @throws IllegalArgumentException if the parcel has no more data or is otherwise corrupt.
+     */
+    @FastNative
+    @NonNull
+    public native final HidlMemory readHidlMemory();
+
+    /**
+     * Reads an embedded HidlMemory (without duplicating the underlying
+     * file descriptors) from the parcel. These file descriptors will only
+     * be open for the duration that the binder window is open. If they
+     * are needed further, you must call {@link HidlMemory#dup()}. You
+     * do not need to call close on the HidlMemory returned from this.
+     *
+     * @param fieldHandle  handle of the field, obtained from the {@link HwBlob}.
+     * @param parentHandle parentHandle from which to read the embedded object
+     * @param offset       offset into parent
+     * @return a {@link HidlMemory} instance parsed from the parcel
+     * @throws IllegalArgumentException if the parcel has no more data
+     */
+    @FastNative
+    @NonNull
+    public native final @Nullable
+    HidlMemory readEmbeddedHidlMemory(long fieldHandle, long parentHandle, long offset);
+
+    /**
      * Read opaque segment of data as a blob.
      * @return blob of size expectedSize
      * @throws IllegalArgumentException if the parcel has no more data
diff --git a/core/java/android/os/IDeviceIdleController.aidl b/core/java/android/os/IDeviceIdleController.aidl
index aa255bf..8a7a594 100644
--- a/core/java/android/os/IDeviceIdleController.aidl
+++ b/core/java/android/os/IDeviceIdleController.aidl
@@ -31,11 +31,13 @@
     String[] getSystemPowerWhitelistExceptIdle();
     String[] getSystemPowerWhitelist();
     String[] getUserPowerWhitelist();
+    @UnsupportedAppUsage
     String[] getFullPowerWhitelistExceptIdle();
     String[] getFullPowerWhitelist();
     int[] getAppIdWhitelistExceptIdle();
     int[] getAppIdWhitelist();
     int[] getAppIdUserWhitelist();
+    @UnsupportedAppUsage
     int[] getAppIdTempWhitelist();
     boolean isPowerSaveWhitelistExceptIdleApp(String name);
     boolean isPowerSaveWhitelistApp(String name);
diff --git a/core/java/android/os/INetworkManagementService.aidl b/core/java/android/os/INetworkManagementService.aidl
index 9b8a40a..0cce192 100644
--- a/core/java/android/os/INetworkManagementService.aidl
+++ b/core/java/android/os/INetworkManagementService.aidl
@@ -184,6 +184,7 @@
     /**
      * Returns a list of currently tethered interfaces
      */
+    @UnsupportedAppUsage
     String[] listTetheredInterfaces();
 
     /**
diff --git a/core/java/android/os/IPowerManager.aidl b/core/java/android/os/IPowerManager.aidl
index e1d605e..185693e 100644
--- a/core/java/android/os/IPowerManager.aidl
+++ b/core/java/android/os/IPowerManager.aidl
@@ -47,6 +47,7 @@
     void wakeUp(long time, int reason, String details, String opPackageName);
     @UnsupportedAppUsage
     void goToSleep(long time, int reason, int flags);
+    @UnsupportedAppUsage(maxTargetSdk = 28)
     void nap(long time);
     @UnsupportedAppUsage
     boolean isInteractive();
diff --git a/core/java/android/os/Looper.java b/core/java/android/os/Looper.java
index 3222fc4..d468972 100644
--- a/core/java/android/os/Looper.java
+++ b/core/java/android/os/Looper.java
@@ -112,10 +112,12 @@
 
     /**
      * Initialize the current thread as a looper, marking it as an
-     * application's main looper. The main looper for your application
-     * is created by the Android environment, so you should never need
-     * to call this function yourself.  See also: {@link #prepare()}
+     * application's main looper. See also: {@link #prepare()}
+     *
+     * @deprecated The main looper for your application is created by the Android environment,
+     *   so you should never need to call this function yourself.
      */
+    @Deprecated
     public static void prepareMainLooper() {
         prepare(false);
         synchronized (Looper.class) {
diff --git a/core/java/android/os/MessageQueue.java b/core/java/android/os/MessageQueue.java
index c5f1698..f98fdc3 100644
--- a/core/java/android/os/MessageQueue.java
+++ b/core/java/android/os/MessageQueue.java
@@ -468,6 +468,7 @@
      *
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public int postSyncBarrier() {
         return postSyncBarrier(SystemClock.uptimeMillis());
@@ -512,6 +513,7 @@
      *
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public void removeSyncBarrier(int token) {
         // Remove a sync barrier token from the queue.
diff --git a/core/java/android/os/Parcel.java b/core/java/android/os/Parcel.java
index dbe3c93..041f31d 100644
--- a/core/java/android/os/Parcel.java
+++ b/core/java/android/os/Parcel.java
@@ -364,6 +364,11 @@
      * @hide
      */
     public static class ReadWriteHelper {
+
+        @UnsupportedAppUsage
+        public ReadWriteHelper() {
+        }
+
         public static final ReadWriteHelper DEFAULT = new ReadWriteHelper();
 
         /**
@@ -3148,6 +3153,7 @@
     // Cache of previously looked up CREATOR.createFromParcel() methods for
     // particular classes.  Keys are the names of the classes, values are
     // Method objects.
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private static final HashMap<ClassLoader,HashMap<String,Parcelable.Creator<?>>>
         mCreators = new HashMap<>();
 
diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java
index 2fff595..ab4d424 100644
--- a/core/java/android/os/PowerManager.java
+++ b/core/java/android/os/PowerManager.java
@@ -824,6 +824,7 @@
     final Context mContext;
     @UnsupportedAppUsage
     final IPowerManager mService;
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     final Handler mHandler;
 
     IThermalService mThermalService;
diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java
index f852976..450bfae 100644
--- a/core/java/android/os/Process.java
+++ b/core/java/android/os/Process.java
@@ -229,6 +229,7 @@
      * First uid used for fully isolated sandboxed processes (with no permissions of their own)
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public static final int FIRST_ISOLATED_UID = 99000;
 
@@ -236,6 +237,7 @@
      * Last uid used for fully isolated sandboxed processes (with no permissions of their own)
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public static final int LAST_ISOLATED_UID = 99999;
 
@@ -1003,6 +1005,7 @@
      * your own log, or the Android Illuminati will find you some night and
      * beat you up.
      */
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     public static final native void sendSignalQuiet(int pid, int signal);
     
     /** @hide */
diff --git a/core/java/android/os/RecoverySystem.java b/core/java/android/os/RecoverySystem.java
index 48fc2a6..e3f6e12 100644
--- a/core/java/android/os/RecoverySystem.java
+++ b/core/java/android/os/RecoverySystem.java
@@ -888,7 +888,7 @@
         }
         List<SubscriptionInfo> invisibleSubs = new ArrayList<>();
         for (SubscriptionInfo sub : availableSubs) {
-            if (sub.isEmbedded() && !subscriptionManager.isSubscriptionVisible(sub)) {
+            if (sub.isEmbedded() && sub.getGroupUuid() != null && sub.isOpportunistic()) {
                 invisibleSubs.add(sub);
             }
         }
diff --git a/core/java/android/os/Registrant.java b/core/java/android/os/Registrant.java
index 8fb123a..572b975 100644
--- a/core/java/android/os/Registrant.java
+++ b/core/java/android/os/Registrant.java
@@ -114,6 +114,7 @@
         }
     }
 
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     public Handler
     getHandler()
     {
diff --git a/core/java/android/os/RegistrantList.java b/core/java/android/os/RegistrantList.java
index 6e562ff..9c017df 100644
--- a/core/java/android/os/RegistrantList.java
+++ b/core/java/android/os/RegistrantList.java
@@ -17,7 +17,6 @@
 package android.os;
 
 import android.annotation.UnsupportedAppUsage;
-import android.os.Handler;         
 
 import java.util.ArrayList;
 
@@ -27,6 +26,10 @@
     ArrayList   registrants = new ArrayList();      // of Registrant
 
     @UnsupportedAppUsage
+    public RegistrantList() {
+    }
+
+    @UnsupportedAppUsage
     public synchronized void
     add(Handler h, int what, Object obj)
     {
@@ -70,6 +73,7 @@
         return registrants.size();
     }
 
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     public synchronized Object
     get(int index)
     {
diff --git a/core/java/android/os/RemoteCallback.java b/core/java/android/os/RemoteCallback.java
index 047ba1d..da58d0f 100644
--- a/core/java/android/os/RemoteCallback.java
+++ b/core/java/android/os/RemoteCallback.java
@@ -21,6 +21,8 @@
 import android.annotation.SystemApi;
 import android.annotation.TestApi;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 /**
  * @hide
  */
@@ -33,6 +35,7 @@
     }
 
     private final OnResultListener mListener;
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private final Handler mHandler;
     private final IRemoteCallback mCallback;
 
diff --git a/core/java/android/os/ResultReceiver.aidl b/core/java/android/os/ResultReceiver.aidl
index 28ce6d5..9fd5bc9 100644
--- a/core/java/android/os/ResultReceiver.aidl
+++ b/core/java/android/os/ResultReceiver.aidl
@@ -2,19 +2,19 @@
 **
 ** Copyright 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 
+** 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 
+**     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 
+** 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.
 */
 
 package android.os;
 
-parcelable ResultReceiver;
+@JavaOnlyStableParcelable parcelable ResultReceiver;
diff --git a/core/java/android/os/ServiceManager.java b/core/java/android/os/ServiceManager.java
index 9a9b030..bf9225a 100644
--- a/core/java/android/os/ServiceManager.java
+++ b/core/java/android/os/ServiceManager.java
@@ -102,6 +102,10 @@
     });
 
     @UnsupportedAppUsage
+    public ServiceManager() {
+    }
+
+    @UnsupportedAppUsage
     private static IServiceManager getIServiceManager() {
         if (sServiceManager != null) {
             return sServiceManager;
diff --git a/core/java/android/os/StrictMode.java b/core/java/android/os/StrictMode.java
index c707ba8..0bf634e 100644
--- a/core/java/android/os/StrictMode.java
+++ b/core/java/android/os/StrictMode.java
@@ -1892,6 +1892,7 @@
     }
 
     /** @hide */
+    @UnsupportedAppUsage
     @TestApi
     public static void conditionallyCheckInstanceCounts() {
         VmPolicy policy = getVmPolicy();
@@ -2751,6 +2752,7 @@
         }
 
         /** Create an instance of ViolationInfo initialized from a Parcel. */
+        @UnsupportedAppUsage
         public ViolationInfo(Parcel in) {
             this(in, false);
         }
diff --git a/core/java/android/os/SystemClock.java b/core/java/android/os/SystemClock.java
index 64effb8..210f5d7 100644
--- a/core/java/android/os/SystemClock.java
+++ b/core/java/android/os/SystemClock.java
@@ -154,6 +154,7 @@
         final IAlarmManager mgr = IAlarmManager.Stub
                 .asInterface(ServiceManager.getService(Context.ALARM_SERVICE));
         if (mgr == null) {
+            Slog.e(TAG, "Unable to set RTC: mgr == null");
             return false;
         }
 
diff --git a/core/java/android/os/SystemProperties.java b/core/java/android/os/SystemProperties.java
index a6e5972..f08e1ff 100644
--- a/core/java/android/os/SystemProperties.java
+++ b/core/java/android/os/SystemProperties.java
@@ -26,6 +26,9 @@
 
 import com.android.internal.annotations.GuardedBy;
 
+import dalvik.annotation.optimization.CriticalNative;
+import dalvik.annotation.optimization.FastNative;
+
 import libcore.util.HexEncoding;
 
 import java.nio.charset.StandardCharsets;
@@ -93,14 +96,44 @@
         }
     }
 
+    // The one-argument version of native_get used to be a regular native function. Nowadays,
+    // we use the two-argument form of native_get all the time, but we can't just delete the
+    // one-argument overload: apps use it via reflection, as the UnsupportedAppUsage annotation
+    // indicates. Let's just live with having a Java function with a very unusual name.
     @UnsupportedAppUsage
-    private static native String native_get(String key);
+    private static String native_get(String key) {
+        return native_get(key, "");
+    }
+
+    @FastNative
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private static native String native_get(String key, String def);
+    @FastNative
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private static native int native_get_int(String key, int def);
+    @FastNative
     @UnsupportedAppUsage
     private static native long native_get_long(String key, long def);
+    @FastNative
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private static native boolean native_get_boolean(String key, boolean def);
+
+    @FastNative
+    private static native long native_find(String name);
+    @FastNative
+    private static native String native_get(long handle);
+    @CriticalNative
+    private static native int native_get_int(long handle, int def);
+    @CriticalNative
+    private static native long native_get_long(long handle, long def);
+    @CriticalNative
+    private static native boolean native_get_boolean(long handle, boolean def);
+
+    // _NOT_ FastNative: native_set performs IPC and can block
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private static native void native_set(String key, String def);
+
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private static native void native_add_change_callback();
     private static native void native_report_sysprop_change();
 
@@ -224,25 +257,27 @@
 
     @SuppressWarnings("unused")  // Called from native code.
     private static void callChangeCallbacks() {
+        ArrayList<Runnable> callbacks = null;
         synchronized (sChangeCallbacks) {
             //Log.i("foo", "Calling " + sChangeCallbacks.size() + " change callbacks!");
             if (sChangeCallbacks.size() == 0) {
                 return;
             }
-            ArrayList<Runnable> callbacks = new ArrayList<Runnable>(sChangeCallbacks);
-            final long token = Binder.clearCallingIdentity();
-            try {
-                for (int i = 0; i < callbacks.size(); i++) {
-                    try {
-                        callbacks.get(i).run();
-                    } catch (Throwable t) {
-                        Log.wtf(TAG, "Exception in SystemProperties change callback", t);
-                        // Ignore and try to go on.
-                    }
+            callbacks = new ArrayList<Runnable>(sChangeCallbacks);
+        }
+        final long token = Binder.clearCallingIdentity();
+        try {
+            for (int i = 0; i < callbacks.size(); i++) {
+                try {
+                    callbacks.get(i).run();
+                } catch (Throwable t) {
+                    // Ignore and try to go on. Don't use wtf here: that
+                    // will cause the process to exit on some builds and break tests.
+                    Log.e(TAG, "Exception in SystemProperties change callback", t);
                 }
-            } finally {
-                Binder.restoreCallingIdentity(token);
             }
+        } finally {
+            Binder.restoreCallingIdentity(token);
         }
     }
 
@@ -279,4 +314,60 @@
     @UnsupportedAppUsage
     private SystemProperties() {
     }
+
+    /**
+     * Look up a property location by name.
+     * @name name of the property
+     * @return property handle or {@code null} if property isn't set
+     * @hide
+     */
+    @Nullable public static Handle find(@NonNull String name) {
+        long nativeHandle = native_find(name);
+        if (nativeHandle == 0) {
+            return null;
+        }
+        return new Handle(nativeHandle);
+    }
+
+    /**
+     * Handle to a pre-located property. Looking up a property handle in advance allows
+     * for optimal repeated lookup of a single property.
+     * @hide
+     */
+    public static final class Handle {
+
+        private final long mNativeHandle;
+
+        /**
+         * @return Value of the property
+         */
+        @NonNull public String get() {
+            return native_get(mNativeHandle);
+        }
+        /**
+         * @param def default value
+         * @return value or {@code def} on parse error
+         */
+        public int getInt(int def) {
+            return native_get_int(mNativeHandle, def);
+        }
+        /**
+         * @param def default value
+         * @return value or {@code def} on parse error
+         */
+        public long getLong(long def) {
+            return native_get_long(mNativeHandle, def);
+        }
+        /**
+         * @param def default value
+         * @return value or {@code def} on parse error
+         */
+        public boolean getBoolean(boolean def) {
+            return native_get_boolean(mNativeHandle, def);
+        }
+
+        private Handle(long nativeHandle) {
+            mNativeHandle = nativeHandle;
+        }
+    }
 }
diff --git a/core/java/android/os/UserHandle.java b/core/java/android/os/UserHandle.java
index d70ba99..45ee4ef 100644
--- a/core/java/android/os/UserHandle.java
+++ b/core/java/android/os/UserHandle.java
@@ -171,6 +171,7 @@
      * "it's system", because of isolated UIDs. Use {@link #isCore} for that.
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public static boolean isApp(int uid) {
         if (uid > 0) {
@@ -354,6 +355,7 @@
      * components -- user, app, isolated, etc.
      * @hide
      */
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     public static void formatUid(PrintWriter pw, int uid) {
         if (uid < Process.FIRST_APPLICATION_UID) {
             pw.print(uid);
diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java
index 9c9829f..c15618b 100644
--- a/core/java/android/os/UserManager.java
+++ b/core/java/android/os/UserManager.java
@@ -1295,8 +1295,11 @@
                 mContext.getContentResolver(),
                 Settings.Global.ALLOW_USER_SWITCHING_WHEN_SYSTEM_USER_LOCKED, 0) != 0;
         boolean isSystemUserUnlocked = isUserUnlocked(UserHandle.SYSTEM);
-        boolean inCall = TelephonyManager.getDefault().getCallState()
-                != TelephonyManager.CALL_STATE_IDLE;
+        boolean inCall = false;
+        TelephonyManager telephonyManager = mContext.getSystemService(TelephonyManager.class);
+        if (telephonyManager != null) {
+            inCall = telephonyManager.getCallState() != TelephonyManager.CALL_STATE_IDLE;
+        }
         boolean isUserSwitchDisallowed = hasUserRestriction(DISALLOW_USER_SWITCH);
         return (allowUserSwitchingWhenSystemUserLocked || isSystemUserUnlocked) && !inCall
                 && !isUserSwitchDisallowed;
diff --git a/core/java/android/os/VibrationEffect.java b/core/java/android/os/VibrationEffect.java
index 702b41b..64d36a9 100644
--- a/core/java/android/os/VibrationEffect.java
+++ b/core/java/android/os/VibrationEffect.java
@@ -27,6 +27,8 @@
 import android.net.Uri;
 import android.util.MathUtils;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.Arrays;
@@ -77,6 +79,7 @@
      * @see #get(int)
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public static final int EFFECT_THUD = Effect.THUD;
 
@@ -85,6 +88,7 @@
      * @see #get(int)
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public static final int EFFECT_POP = Effect.POP;
 
@@ -126,6 +130,7 @@
      * @see #get(Uri, Context)
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public static final int[] RINGTONES = {
         Effect.RINGTONE_1,
@@ -493,6 +498,7 @@
             out.writeInt(mAmplitude);
         }
 
+        @UnsupportedAppUsage
         public static final @android.annotation.NonNull Parcelable.Creator<OneShot> CREATOR =
             new Parcelable.Creator<OneShot>() {
                 @Override
diff --git a/core/java/android/os/WorkSource.java b/core/java/android/os/WorkSource.java
index 634b2ba..825fc64 100644
--- a/core/java/android/os/WorkSource.java
+++ b/core/java/android/os/WorkSource.java
@@ -40,14 +40,17 @@
      * The WorkSource object itself is not thread safe, but we need to
      * hold sTmpWorkSource lock while working with these statics.
      */
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     static final WorkSource sTmpWorkSource = new WorkSource(0);
     /**
      * For returning newbie work from a modification operation.
      */
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     static WorkSource sNewbWork;
     /**
      * For returning gone work form a modification operation.
      */
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     static WorkSource sGoneWork;
 
     /**
@@ -89,6 +92,7 @@
     }
 
     /** @hide */
+    @UnsupportedAppUsage
     @TestApi
     public WorkSource(int uid) {
         mNum = 1;
@@ -135,12 +139,14 @@
     }
 
     /** @hide */
+    @UnsupportedAppUsage
     @TestApi
     public int size() {
         return mNum;
     }
 
     /** @hide */
+    @UnsupportedAppUsage
     @TestApi
     public int get(int index) {
         return mUids[index];
@@ -162,6 +168,7 @@
     }
 
     /** @hide */
+    @UnsupportedAppUsage
     @TestApi
     public String getName(int index) {
         return mNames != null ? mNames[index] : null;
@@ -416,6 +423,7 @@
     }
 
     /** @hide */
+    @UnsupportedAppUsage
     @TestApi
     public boolean add(int uid) {
         if (mNum <= 0) {
@@ -436,6 +444,7 @@
     }
 
     /** @hide */
+    @UnsupportedAppUsage
     @TestApi
     public boolean add(int uid, String name) {
         if (mNum <= 0) {
@@ -620,6 +629,7 @@
         return changed;
     }
 
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     private boolean updateLocked(WorkSource other, boolean set, boolean returnNewbs) {
         if (mNames == null && other.mNames == null) {
             return updateUidsLocked(other, set, returnNewbs);
diff --git a/core/java/android/os/health/HealthStatsParceler.java b/core/java/android/os/health/HealthStatsParceler.java
index de98359..384342c 100644
--- a/core/java/android/os/health/HealthStatsParceler.java
+++ b/core/java/android/os/health/HealthStatsParceler.java
@@ -19,10 +19,8 @@
 import android.annotation.TestApi;
 import android.os.Parcel;
 import android.os.Parcelable;
-import android.util.ArrayMap;
 
-import java.util.Arrays;
-import java.util.Map;
+import dalvik.annotation.compat.UnsupportedAppUsage;
 
 /**
  * Class to allow sending the HealthStats through aidl generated glue.
@@ -41,6 +39,7 @@
     private HealthStatsWriter mWriter;
     private HealthStats mHealthStats;
 
+    @UnsupportedAppUsage
     public static final @android.annotation.NonNull Parcelable.Creator<HealthStatsParceler> CREATOR
             = new Parcelable.Creator<HealthStatsParceler>() {
         public HealthStatsParceler createFromParcel(Parcel in) {
diff --git a/core/java/android/os/image/DynamicSystemManager.java b/core/java/android/os/image/DynamicSystemManager.java
index 0e00d5e..4c92c28 100644
--- a/core/java/android/os/image/DynamicSystemManager.java
+++ b/core/java/android/os/image/DynamicSystemManager.java
@@ -101,6 +101,19 @@
         }
     }
     /**
+     * Start DynamicSystem installation.
+     *
+     * @return true if the call succeeds
+     */
+    @RequiresPermission(android.Manifest.permission.MANAGE_DYNAMIC_SYSTEM)
+    public boolean startInstallation() {
+        try {
+            return mService.startInstallation();
+        } catch (RemoteException e) {
+            throw new RuntimeException(e.toString());
+        }
+    }
+    /**
      * Start DynamicSystem installation. This call may take an unbounded amount of time. The caller
      * may use another thread to call the getStartProgress() to get the progress.
      *
@@ -112,9 +125,9 @@
      *     true.
      */
     @RequiresPermission(android.Manifest.permission.MANAGE_DYNAMIC_SYSTEM)
-    public Session startInstallation(String name, long size, boolean readOnly) {
+    public Session createPartition(String name, long size, boolean readOnly) {
         try {
-            if (mService.startInstallation(name, size, readOnly)) {
+            if (mService.createPartition(name, size, readOnly)) {
                 return new Session();
             } else {
                 return null;
@@ -123,7 +136,18 @@
             throw new RuntimeException(e.toString());
         }
     }
-
+    /**
+     * Finish a previously started installation. Installations without a cooresponding
+     * finishInstallation() will be cleaned up during device boot.
+     */
+    @RequiresPermission(android.Manifest.permission.MANAGE_DYNAMIC_SYSTEM)
+    public boolean finishInstallation() {
+        try {
+            return mService.finishInstallation();
+        } catch (RemoteException e) {
+            throw new RuntimeException(e.toString());
+        }
+    }
     /**
      * Query the progress of the current installation operation. This can be called while the
      * installation is in progress.
diff --git a/core/java/android/os/image/IDynamicSystemService.aidl b/core/java/android/os/image/IDynamicSystemService.aidl
index 75f6785..69cbab2 100644
--- a/core/java/android/os/image/IDynamicSystemService.aidl
+++ b/core/java/android/os/image/IDynamicSystemService.aidl
@@ -21,15 +21,26 @@
 interface IDynamicSystemService
 {
     /**
-     * Start DynamicSystem installation. This call may take 60~90 seconds. The caller
+     * Start DynamicSystem installation.
+     * @return true if the call succeeds
+     */
+    boolean startInstallation();
+
+    /**
+     * Create a DSU partition. This call may take 60~90 seconds. The caller
      * may use another thread to call the getStartProgress() to get the progress.
-     *
      * @param name The DSU partition name
      * @param size Size of the DSU image in bytes
      * @param readOnly True if this partition is readOnly
      * @return true if the call succeeds
      */
-    boolean startInstallation(@utf8InCpp String name, long size, boolean readOnly);
+    boolean createPartition(@utf8InCpp String name, long size, boolean readOnly);
+
+    /**
+     * Finish a previously started installation. Installations without
+     * a cooresponding finishInstallation() will be cleaned up during device boot.
+     */
+    boolean finishInstallation();
 
     /**
      * Query the progress of the current installation operation. This can be called while
diff --git a/core/java/android/os/storage/StorageEventListener.java b/core/java/android/os/storage/StorageEventListener.java
index 4aa0b08..39d5b45 100644
--- a/core/java/android/os/storage/StorageEventListener.java
+++ b/core/java/android/os/storage/StorageEventListener.java
@@ -24,6 +24,11 @@
  * @hide
  */
 public class StorageEventListener {
+
+    @UnsupportedAppUsage
+    public StorageEventListener() {
+    }
+
     /**
      * Called when the detection state of a USB Mass Storage host has changed.
      * @param connected true if the USB mass storage is connected.
diff --git a/core/java/android/os/storage/StorageVolume.java b/core/java/android/os/storage/StorageVolume.java
index 6280600..aefe843 100644
--- a/core/java/android/os/storage/StorageVolume.java
+++ b/core/java/android/os/storage/StorageVolume.java
@@ -173,6 +173,7 @@
      * @return the mount path
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public String getPath() {
         return mPath.toString();
diff --git a/core/java/android/provider/CalendarContract.java b/core/java/android/provider/CalendarContract.java
index 2f68eb4..f1d90be 100644
--- a/core/java/android/provider/CalendarContract.java
+++ b/core/java/android/provider/CalendarContract.java
@@ -1862,6 +1862,7 @@
          *
          * @hide
          */
+        @UnsupportedAppUsage
         @TestApi
         public static final String[] SYNC_WRITABLE_COLUMNS = new String[] {
             _SYNC_ID,
diff --git a/core/java/android/provider/CallLog.java b/core/java/android/provider/CallLog.java
index 0973a64..391f3a2 100644
--- a/core/java/android/provider/CallLog.java
+++ b/core/java/android/provider/CallLog.java
@@ -35,6 +35,7 @@
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.Data;
 import android.provider.ContactsContract.DataUsageFeedback;
+import android.telecom.CallerInfo;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
@@ -42,9 +43,6 @@
 import android.text.TextUtils;
 import android.util.Log;
 
-import android.telephony.CallerInfo;
-import com.android.internal.telephony.PhoneConstants;
-
 import java.util.List;
 
 /**
@@ -227,7 +225,7 @@
 
         /**
          * Indicates the call underwent Assisted Dialing.
-         * @hide
+         * @see TelecomManager#EXTRA_USE_ASSISTED_DIALING
          */
         public static final int FEATURES_ASSISTED_DIALING_USED = 1 << 4;
 
@@ -610,7 +608,7 @@
          * if the contact is unknown.
          * @param context the context used to get the ContentResolver
          * @param number the phone number to be added to the calls db
-         * @param presentation enum value from PhoneConstants.PRESENTATION_xxx, which
+         * @param presentation enum value from TelecomManager.PRESENTATION_xxx, which
          *        is set by the network and denotes the number presenting rules for
          *        "allowed", "payphone", "restricted" or "unknown"
          * @param callType enumerated values for "incoming", "outgoing", or "missed"
@@ -645,7 +643,7 @@
          * @param number the phone number to be added to the calls db
          * @param viaNumber the secondary number that the incoming call received with. If the
          *       call was received with the SIM assigned number, then this field must be ''.
-         * @param presentation enum value from PhoneConstants.PRESENTATION_xxx, which
+         * @param presentation enum value from TelecomManager.PRESENTATION_xxx, which
          *        is set by the network and denotes the number presenting rules for
          *        "allowed", "payphone", "restricted" or "unknown"
          * @param callType enumerated values for "incoming", "outgoing", or "missed"
@@ -686,7 +684,7 @@
          *        if it was outgoing. Otherwise it is ''.
          * @param viaNumber the secondary number that the incoming call received with. If the
          *        call was received with the SIM assigned number, then this field must be ''.
-         * @param presentation enum value from PhoneConstants.PRESENTATION_xxx, which
+         * @param presentation enum value from TelecomManager.PRESENTATION_xxx, which
          *        is set by the network and denotes the number presenting rules for
          *        "allowed", "payphone", "restricted" or "unknown"
          * @param callType enumerated values for "incoming", "outgoing", or "missed"
@@ -1048,22 +1046,22 @@
 
         /**
          * Remap network specified number presentation types
-         * PhoneConstants.PRESENTATION_xxx to calllog number presentation types
+         * TelecomManager.PRESENTATION_xxx to calllog number presentation types
          * Calls.PRESENTATION_xxx, in order to insulate the persistent calllog
          * from any future radio changes.
          * If the number field is empty set the presentation type to Unknown.
          */
         private static int getLogNumberPresentation(String number, int presentation) {
-            if (presentation == PhoneConstants.PRESENTATION_RESTRICTED) {
+            if (presentation == TelecomManager.PRESENTATION_RESTRICTED) {
                 return presentation;
             }
 
-            if (presentation == PhoneConstants.PRESENTATION_PAYPHONE) {
+            if (presentation == TelecomManager.PRESENTATION_PAYPHONE) {
                 return presentation;
             }
 
             if (TextUtils.isEmpty(number)
-                    || presentation == PhoneConstants.PRESENTATION_UNKNOWN) {
+                    || presentation == TelecomManager.PRESENTATION_UNKNOWN) {
                 return PRESENTATION_UNKNOWN;
             }
 
diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java
index af3a16c..f10e184 100644
--- a/core/java/android/provider/ContactsContract.java
+++ b/core/java/android/provider/ContactsContract.java
@@ -126,6 +126,7 @@
      * Prefix for column names that are not visible to client apps.
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public static final String HIDDEN_COLUMN_PREFIX = "x_";
 
@@ -6069,6 +6070,7 @@
             *
             * @hide
             */
+            @UnsupportedAppUsage
             @TestApi
             public static final Uri ENTERPRISE_CONTENT_URI =
                     Uri.withAppendedPath(Data.ENTERPRISE_CONTENT_URI, "phones");
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 2263f52..d87e9ca 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -101,7 +101,6 @@
 import java.text.SimpleDateFormat;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
@@ -2048,6 +2047,7 @@
      * This is the only type of reset available to non-system clients.
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public static final int RESET_MODE_PACKAGE_DEFAULTS = 1;
 
@@ -6454,6 +6454,7 @@
          * shortcut. Must be its flattened {@link ComponentName}.
          * @hide
          */
+        @UnsupportedAppUsage
         @TestApi
         public static final String ACCESSIBILITY_SHORTCUT_TARGET_SERVICE =
                 "accessibility_shortcut_target_service";
@@ -6646,6 +6647,7 @@
          *
          * @hide
          */
+        @UnsupportedAppUsage
         @TestApi
         public static final String ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED =
                 "accessibility_display_magnification_enabled";
@@ -8493,6 +8495,7 @@
          *
          * @hide
          */
+        @UnsupportedAppUsage
         @TestApi
         public static final String ENABLED_VR_LISTENERS = "enabled_vr_listeners";
 
@@ -8676,6 +8679,7 @@
          * The value is boolean (1 or 0).
          * @hide
          */
+        @UnsupportedAppUsage
         @TestApi
         public static final String NOTIFICATION_BADGING = "notification_badging";
 
@@ -11130,25 +11134,26 @@
         */
        public static final String MODE_RINGER = "mode_ringer";
 
-       /**
-        * Overlay display devices setting.
-        * The associated value is a specially formatted string that describes the
-        * size and density of simulated secondary display devices.
-        * <p>
-        * Format: {width}x{height}/{dpi};...
-        * </p><p>
-        * Example:
-        * <ul>
-        * <li><code>1280x720/213</code>: make one overlay that is 1280x720 at 213dpi.</li>
-        * <li><code>1920x1080/320;1280x720/213</code>: make two overlays, the first
-        * at 1080p and the second at 720p.</li>
-        * <li>If the value is empty, then no overlay display devices are created.</li>
-        * </ul></p>
-        *
-        * @hide
-        */
-       @TestApi
-       public static final String OVERLAY_DISPLAY_DEVICES = "overlay_display_devices";
+        /**
+         * Overlay display devices setting.
+         * The associated value is a specially formatted string that describes the
+         * size and density of simulated secondary display devices.
+         * <p>
+         * Format: {width}x{height}/{dpi};...
+         * </p><p>
+         * Example:
+         * <ul>
+         * <li><code>1280x720/213</code>: make one overlay that is 1280x720 at 213dpi.</li>
+         * <li><code>1920x1080/320;1280x720/213</code>: make two overlays, the first
+         * at 1080p and the second at 720p.</li>
+         * <li>If the value is empty, then no overlay display devices are created.</li>
+         * </ul></p>
+         *
+         * @hide
+         */
+        @UnsupportedAppUsage
+        @TestApi
+        public static final String OVERLAY_DISPLAY_DEVICES = "overlay_display_devices";
 
         /**
          * Threshold values for the duration and level of a discharge cycle,
@@ -11800,6 +11805,7 @@
          * @hide
          * @see com.android.server.power.batterysaver.BatterySaverPolicy
          */
+        @UnsupportedAppUsage
         @TestApi
         public static final String BATTERY_SAVER_CONSTANTS = "battery_saver_constants";
 
@@ -12457,105 +12463,6 @@
                 "adb_allowed_connection_time";
 
         /**
-         * Get the key that retrieves a bluetooth headset's priority.
-         * @hide
-         */
-        public static final String getBluetoothHeadsetPriorityKey(String address) {
-            return BLUETOOTH_HEADSET_PRIORITY_PREFIX + address.toUpperCase(Locale.ROOT);
-        }
-
-        /**
-         * Get the key that retrieves a bluetooth a2dp sink's priority.
-         * @hide
-         */
-        public static final String getBluetoothA2dpSinkPriorityKey(String address) {
-            return BLUETOOTH_A2DP_SINK_PRIORITY_PREFIX + address.toUpperCase(Locale.ROOT);
-        }
-
-        /**
-         * Get the key that retrieves a bluetooth a2dp src's priority.
-         * @hide
-         */
-        public static final String getBluetoothA2dpSrcPriorityKey(String address) {
-            return BLUETOOTH_A2DP_SRC_PRIORITY_PREFIX + address.toUpperCase(Locale.ROOT);
-        }
-
-        /**
-         * Get the key that retrieves a bluetooth a2dp device's ability to support optional codecs.
-         * @hide
-         */
-        public static final String getBluetoothA2dpSupportsOptionalCodecsKey(String address) {
-            return BLUETOOTH_A2DP_SUPPORTS_OPTIONAL_CODECS_PREFIX +
-                    address.toUpperCase(Locale.ROOT);
-        }
-
-        /**
-         * Get the key that retrieves whether a bluetooth a2dp device should have optional codecs
-         * enabled.
-         * @hide
-         */
-        public static final String getBluetoothA2dpOptionalCodecsEnabledKey(String address) {
-            return BLUETOOTH_A2DP_OPTIONAL_CODECS_ENABLED_PREFIX +
-                    address.toUpperCase(Locale.ROOT);
-        }
-
-        /**
-         * Get the key that retrieves a bluetooth Input Device's priority.
-         * @hide
-         */
-        public static final String getBluetoothHidHostPriorityKey(String address) {
-            return BLUETOOTH_INPUT_DEVICE_PRIORITY_PREFIX + address.toUpperCase(Locale.ROOT);
-        }
-
-        /**
-         * Get the key that retrieves a bluetooth pan client priority.
-         * @hide
-         */
-        public static final String getBluetoothPanPriorityKey(String address) {
-            return BLUETOOTH_PAN_PRIORITY_PREFIX + address.toUpperCase(Locale.ROOT);
-        }
-
-        /**
-         * Get the key that retrieves a bluetooth hearing aid priority.
-         * @hide
-         */
-        public static final String getBluetoothHearingAidPriorityKey(String address) {
-            return BLUETOOTH_HEARING_AID_PRIORITY_PREFIX + address.toUpperCase(Locale.ROOT);
-        }
-
-        /**
-         * Get the key that retrieves a bluetooth map priority.
-         * @hide
-         */
-        public static final String getBluetoothMapPriorityKey(String address) {
-            return BLUETOOTH_MAP_PRIORITY_PREFIX + address.toUpperCase(Locale.ROOT);
-        }
-
-        /**
-         * Get the key that retrieves a bluetooth map client priority.
-         * @hide
-         */
-        public static final String getBluetoothMapClientPriorityKey(String address) {
-            return BLUETOOTH_MAP_CLIENT_PRIORITY_PREFIX + address.toUpperCase(Locale.ROOT);
-        }
-
-        /**
-         * Get the key that retrieves a bluetooth pbap client priority.
-         * @hide
-         */
-        public static final String getBluetoothPbapClientPriorityKey(String address) {
-            return BLUETOOTH_PBAP_CLIENT_PRIORITY_PREFIX + address.toUpperCase(Locale.ROOT);
-        }
-
-        /**
-         * Get the key that retrieves a bluetooth sap priority.
-         * @hide
-         */
-        public static final String getBluetoothSapPriorityKey(String address) {
-            return BLUETOOTH_SAP_PRIORITY_PREFIX + address.toUpperCase(Locale.ROOT);
-        }
-
-        /**
          * Scaling factor for normal window animations. Setting to 0 will
          * disable window animations.
          */
diff --git a/telephony/java/android/provider/Telephony.java b/core/java/android/provider/Telephony.java
similarity index 97%
rename from telephony/java/android/provider/Telephony.java
rename to core/java/android/provider/Telephony.java
index d3728a6..5063b2c 100644
--- a/telephony/java/android/provider/Telephony.java
+++ b/core/java/android/provider/Telephony.java
@@ -16,6 +16,7 @@
 
 package android.provider;
 
+import android.Manifest;
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.RequiresPermission;
@@ -1126,8 +1127,9 @@
              * values:</p>
              *
              * <ul>
-             *   <li><em>"message"</em> - An SmsCbMessage object containing the broadcast message
-             *   data, including ETWS or CMAS warning notification info if present.</li>
+             *   <li><em>"message"</em> - An {@link android.telephony.SmsCbMessage} object
+             *   containing the broadcast message data, including ETWS or CMAS warning notification
+             *   info if present.</li>
              * </ul>
              *
              * <p>The extra values can be extracted using
@@ -1138,11 +1140,12 @@
              *
              * <p>Requires {@link android.Manifest.permission#RECEIVE_EMERGENCY_BROADCAST} to
              * receive.</p>
-             * @removed
+             * @hide
              */
             @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
-            public static final String SMS_EMERGENCY_CB_RECEIVED_ACTION =
-                    "android.provider.Telephony.SMS_EMERGENCY_CB_RECEIVED";
+            @SystemApi
+            public static final String ACTION_SMS_EMERGENCY_CB_RECEIVED =
+                    "android.provider.action.SMS_EMERGENCY_CB_RECEIVED";
 
             /**
              * Broadcast Action: A new CDMA SMS has been received containing Service Category
@@ -1363,22 +1366,76 @@
      * Base column for the table that contain Carrier Public key.
      * @hide
      */
+    @SystemApi
     public interface CarrierColumns extends BaseColumns {
 
+        /**
+         * Mobile Country Code (MCC).
+         * <P> Type: TEXT </P>
+         */
         public static final String MCC = "mcc";
+
+        /**
+         * Mobile Network Code (MNC).
+         * <P> Type: TEXT </P>
+         */
         public static final String MNC = "mnc";
+
+        /**
+         * KeyType whether the key is being used for WLAN or ePDG.
+         * <P> Type: INTEGER </P>
+         */
         public static final String KEY_TYPE = "key_type";
+
+        /**
+         * MVNO type:
+         * {@code SPN (Service Provider Name), IMSI, GID (Group Identifier Level 1)}.
+         * <P> Type: TEXT </P>
+         */
         public static final String MVNO_TYPE = "mvno_type";
+
+        /**
+         * MVNO data.
+         * Use the following examples.
+         * <ul>
+         *     <li>SPN: A MOBILE, BEN NL, ...</li>
+         *     <li>IMSI: 302720x94, 2060188, ...</li>
+         *     <li>GID: 4E, 33, ...</li>
+         * </ul>
+         * <P> Type: TEXT </P>
+         */
         public static final String MVNO_MATCH_DATA = "mvno_match_data";
+
+        /**
+         * The carrier public key that is used for the IMSI encryption.
+         * <P> Type: TEXT </P>
+         */
         public static final String PUBLIC_KEY = "public_key";
+
+        /**
+         * The key identifier Attribute value pair that helps a server locate
+         * the private key to decrypt the permanent identity.
+         * <P> Type: TEXT </P>
+         */
         public static final String KEY_IDENTIFIER = "key_identifier";
+
+        /**
+         * Date-Time in UTC when the key will expire.
+         * <P> Type: INTEGER (long) </P>
+         */
         public static final String EXPIRATION_TIME = "expiration_time";
+
+        /**
+         * Timestamp when this table was last modified, in milliseconds since
+         * January 1, 1970 00:00:00.0 UTC.
+         * <P> Type: INTEGER (long) </P>
+         */
         public static final String LAST_MODIFIED = "last_modified";
 
         /**
          * The {@code content://} style URL for this table.
-         * @hide
          */
+        @NonNull
         public static final Uri CONTENT_URI = Uri.parse("content://carrier_information/carrier");
     }
 
@@ -3944,10 +4001,11 @@
     }
 
     /**
-     * Contains received SMS cell broadcast messages. More details are available in 3GPP TS 23.041.
+     * Contains received cell broadcast messages. More details are available in 3GPP TS 23.041.
      * @hide
      */
     @SystemApi
+    @TestApi
     public static final class CellBroadcasts implements BaseColumns {
 
         /**
@@ -3958,11 +4016,44 @@
 
         /**
          * The {@code content://} URI for this table.
+         * Only privileged framework components running on phone or network stack uid can
+         * query or modify this table.
          */
         @NonNull
         public static final Uri CONTENT_URI = Uri.parse("content://cellbroadcasts");
 
         /**
+         * The {@code content://} URI for query cellbroadcast message history.
+         * query results include following entries
+         * <ul>
+         *     <li>{@link #_ID}</li>
+         *     <li>{@link #SLOT_INDEX}</li>
+         *     <li>{@link #GEOGRAPHICAL_SCOPE}</li>
+         *     <li>{@link #PLMN}</li>
+         *     <li>{@link #LAC}</li>
+         *     <li>{@link #CID}</li>
+         *     <li>{@link #SERIAL_NUMBER}</li>
+         *     <li>{@link #SERVICE_CATEGORY}</li>
+         *     <li>{@link #LANGUAGE_CODE}</li>
+         *     <li>{@link #MESSAGE_BODY}</li>
+         *     <li>{@link #DELIVERY_TIME}</li>
+         *     <li>{@link #MESSAGE_READ}</li>
+         *     <li>{@link #MESSAGE_FORMAT}</li>
+         *     <li>{@link #MESSAGE_PRIORITY}</li>
+         *     <li>{@link #ETWS_WARNING_TYPE}</li>
+         *     <li>{@link #CMAS_MESSAGE_CLASS}</li>
+         *     <li>{@link #CMAS_CATEGORY}</li>
+         *     <li>{@link #CMAS_RESPONSE_TYPE}</li>
+         *     <li>{@link #CMAS_SEVERITY}</li>
+         *     <li>{@link #CMAS_URGENCY}</li>
+         *     <li>{@link #CMAS_CERTAINTY}</li>
+         * </ul>
+         */
+        @RequiresPermission(Manifest.permission.READ_CELL_BROADCASTS)
+        @NonNull
+        public static final Uri MESSAGE_HISTORY_URI = Uri.parse("content://cellbroadcasts/history");
+
+        /**
          * The subscription which received this cell broadcast message.
          * @deprecated use {@link #SLOT_INDEX} instead.
          * <P>Type: INTEGER</P>
@@ -3973,7 +4064,6 @@
         /**
          * The slot which received this cell broadcast message.
          * <P>Type: INTEGER</P>
-         * @hide
          */
         public static final String SLOT_INDEX = "slot_index";
 
@@ -4151,14 +4241,12 @@
         /**
          * The timestamp in millisecond of when the device received the message.
          * <P>Type: BIGINT</P>
-         * @hide
          */
         public static final String RECEIVED_TIME = "received_time";
 
         /**
          * Indicates that whether the message has been broadcasted to the application.
          * <P>Type: BOOLEAN</P>
-         * @hide
          */
         public static final String MESSAGE_BROADCASTED = "message_broadcasted";
 
@@ -4194,7 +4282,6 @@
          * "circle|0,0|100;polygon|0,0|0,1.5|1,1|1,0;circle|100.123,100|200.123"
          *
          * <P>Type: TEXT</P>
-         * @hide
          */
         public static final String GEOMETRIES = "geometries";
 
@@ -4206,7 +4293,6 @@
          * for the alert.
          *
          * <P>Type: INTEGER</P>
-         * @hide
          */
         public static final String MAXIMUM_WAIT_TIME = "maximum_wait_time";
 
@@ -4656,7 +4742,16 @@
          * Contains mappings between matching rules with carrier id for all carriers.
          * @hide
          */
+        @SystemApi
         public static final class All implements BaseColumns {
+
+            /**
+             * Not instantiable.
+             * @hide
+             */
+            private All() {
+            }
+
             /**
              * Numeric operator ID (as String). {@code MCC + MNC}
              * <P>Type: TEXT </P>
@@ -4714,6 +4809,7 @@
             /**
              * The {@code content://} URI for this table.
              */
+            @NonNull
             public static final Uri CONTENT_URI = Uri.parse("content://carrier_id/all");
         }
     }
diff --git a/core/java/android/service/carrier/CarrierMessagingServiceWrapper.java b/core/java/android/service/carrier/CarrierMessagingServiceWrapper.java
new file mode 100644
index 0000000..de90b94
--- /dev/null
+++ b/core/java/android/service/carrier/CarrierMessagingServiceWrapper.java
@@ -0,0 +1,389 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package android.service.carrier;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.SystemApi;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.net.Uri;
+import android.os.IBinder;
+import android.os.RemoteException;
+
+import com.android.internal.util.Preconditions;
+
+import java.util.List;
+
+/**
+ * Provides basic structure for platform to connect to the carrier messaging service.
+ * <p>
+ * <code>
+ * CarrierMessagingServiceWrapper carrierMessagingServiceWrapper =
+ *     new CarrierMessagingServiceWrapperImpl();
+ * if (carrierMessagingServiceWrapper.bindToCarrierMessagingService(context, carrierPackageName)) {
+ *   // wait for onServiceReady callback
+ * } else {
+ *   // Unable to bind: handle error.
+ * }
+ * </code>
+ * <p> Upon completion {@link #disposeConnection} should be called to unbind the
+ * CarrierMessagingService.
+ * @hide
+ */
+@SystemApi
+public abstract class CarrierMessagingServiceWrapper {
+    // Populated by bindToCarrierMessagingService. bindToCarrierMessagingService must complete
+    // prior to calling disposeConnection so that mCarrierMessagingServiceConnection is initialized.
+    private volatile CarrierMessagingServiceConnection mCarrierMessagingServiceConnection;
+
+    private volatile ICarrierMessagingService mICarrierMessagingService;
+
+    /**
+     * Binds to the carrier messaging service under package {@code carrierPackageName}. This method
+     * should be called exactly once.
+     *
+     * @param context the context
+     * @param carrierPackageName the carrier package name
+     * @return true upon successfully binding to a carrier messaging service, false otherwise
+     * @hide
+     */
+    @SystemApi
+    public boolean bindToCarrierMessagingService(@NonNull Context context,
+            @NonNull String carrierPackageName) {
+        Preconditions.checkState(mCarrierMessagingServiceConnection == null);
+
+        Intent intent = new Intent(CarrierMessagingService.SERVICE_INTERFACE);
+        intent.setPackage(carrierPackageName);
+        mCarrierMessagingServiceConnection = new CarrierMessagingServiceConnection();
+        return context.bindService(intent, mCarrierMessagingServiceConnection,
+                Context.BIND_AUTO_CREATE);
+    }
+
+    /**
+     * Unbinds the carrier messaging service. This method should be called exactly once.
+     *
+     * @param context the context
+     * @hide
+     */
+    @SystemApi
+    public void disposeConnection(@NonNull Context context) {
+        Preconditions.checkNotNull(mCarrierMessagingServiceConnection);
+        context.unbindService(mCarrierMessagingServiceConnection);
+        mCarrierMessagingServiceConnection = null;
+    }
+
+    /**
+     * Implemented by subclasses to use the carrier messaging service once it is ready.
+     * @hide
+     */
+    @SystemApi
+    public abstract void onServiceReady();
+
+    /**
+     * Called when connection with service is established.
+     *
+     * @param carrierMessagingService the carrier messaing service interface
+     */
+    private void onServiceReady(ICarrierMessagingService carrierMessagingService) {
+        mICarrierMessagingService = carrierMessagingService;
+        onServiceReady();
+    }
+
+    /**
+     * Request filtering an incoming SMS message.
+     * The service will call callback.onFilterComplete with the filtering result.
+     *
+     * @param pdu the PDUs of the message
+     * @param format the format of the PDUs, typically "3gpp" or "3gpp2"
+     * @param destPort the destination port of a data SMS. It will be -1 for text SMS
+     * @param subId SMS subscription ID of the SIM
+     * @param callback the callback to notify upon completion
+     * @hide
+     */
+    @SystemApi
+    public void filterSms(@NonNull MessagePdu pdu, @NonNull String format, int destPort,
+            int subId, @NonNull final CarrierMessagingCallbackWrapper callback) {
+        if (mICarrierMessagingService != null) {
+            try {
+                mICarrierMessagingService.filterSms(pdu, format, destPort, subId,
+                        new CarrierMessagingCallbackWrapperInternal(callback));
+            } catch (RemoteException e) {
+                throw new RuntimeException(e);
+            }
+        }
+    }
+
+    /**
+     * Request sending a new text SMS from the device.
+     * The service will call {@link ICarrierMessagingCallback#onSendSmsComplete} with the send
+     * status.
+     *
+     * @param text the text to send
+     * @param subId SMS subscription ID of the SIM
+     * @param destAddress phone number of the recipient of the message
+     * @param sendSmsFlag flag for sending SMS
+     * @param callback the callback to notify upon completion
+     * @hide
+     */
+    @SystemApi
+    public void sendTextSms(@NonNull String text, int subId, @NonNull String destAddress,
+            int sendSmsFlag, @NonNull final CarrierMessagingCallbackWrapper callback) {
+        if (mICarrierMessagingService != null) {
+            try {
+                mICarrierMessagingService.sendTextSms(text, subId, destAddress, sendSmsFlag,
+                        new CarrierMessagingCallbackWrapperInternal(callback));
+            } catch (RemoteException e) {
+                throw new RuntimeException(e);
+            }
+        }
+    }
+
+    /**
+     * Request sending a new data SMS from the device.
+     * The service will call {@link ICarrierMessagingCallback#onSendSmsComplete} with the send
+     * status.
+     *
+     * @param data the data to send
+     * @param subId SMS subscription ID of the SIM
+     * @param destAddress phone number of the recipient of the message
+     * @param destPort port number of the recipient of the message
+     * @param sendSmsFlag flag for sending SMS
+     * @param callback the callback to notify upon completion
+     * @hide
+     */
+    @SystemApi
+    public void sendDataSms(@NonNull byte[] data, int subId, @NonNull String destAddress,
+            int destPort, int sendSmsFlag,
+            @NonNull final CarrierMessagingCallbackWrapper callback) {
+        if (mICarrierMessagingService != null) {
+            try {
+                mICarrierMessagingService.sendDataSms(data, subId, destAddress, destPort,
+                        sendSmsFlag, new CarrierMessagingCallbackWrapperInternal(callback));
+            } catch (RemoteException e) {
+                throw new RuntimeException(e);
+            }
+        }
+    }
+
+    /**
+     * Request sending a new multi-part text SMS from the device.
+     * The service will call {@link ICarrierMessagingCallback#onSendMultipartSmsComplete}
+     * with the send status.
+     *
+     * @param parts the parts of the multi-part text SMS to send
+     * @param subId SMS subscription ID of the SIM
+     * @param destAddress phone number of the recipient of the message
+     * @param sendSmsFlag flag for sending SMS
+     * @param callback the callback to notify upon completion
+     * @hide
+     */
+    @SystemApi
+    public void sendMultipartTextSms(@NonNull List<String> parts, int subId,
+            @NonNull String destAddress, int sendSmsFlag,
+            @NonNull final CarrierMessagingCallbackWrapper callback) {
+        if (mICarrierMessagingService != null) {
+            try {
+                mICarrierMessagingService.sendMultipartTextSms(parts, subId, destAddress,
+                        sendSmsFlag, new CarrierMessagingCallbackWrapperInternal(callback));
+            } catch (RemoteException e) {
+                throw new RuntimeException(e);
+            }
+        }
+    }
+
+    /**
+     * Request sending a new MMS PDU from the device.
+     * The service will call {@link ICarrierMessagingCallback#onSendMmsComplete} with the send
+     * status.
+     *
+     * @param pduUri the content provider URI of the PDU to send
+     * @param subId SMS subscription ID of the SIM
+     * @param location the optional URI to send this MMS PDU. If this is {code null},
+     *        the PDU should be sent to the default MMSC URL.
+     * @param callback the callback to notify upon completion
+     * @hide
+     */
+    @SystemApi
+    public void sendMms(@NonNull Uri pduUri, int subId, @NonNull Uri location,
+            @NonNull final CarrierMessagingCallbackWrapper callback) {
+        if (mICarrierMessagingService != null) {
+            try {
+                mICarrierMessagingService.sendMms(pduUri, subId, location,
+                        new CarrierMessagingCallbackWrapperInternal(callback));
+            } catch (RemoteException e) {
+                throw new RuntimeException(e);
+            }
+        }
+    }
+
+    /**
+     * Request downloading a new MMS.
+     * The service will call {@link ICarrierMessagingCallback#onDownloadMmsComplete} with the
+     * download status.
+     *
+     * @param pduUri the content provider URI of the PDU to be downloaded.
+     * @param subId SMS subscription ID of the SIM
+     * @param location the URI of the message to be downloaded.
+     * @param callback the callback to notify upon completion
+     * @hide
+     */
+    @SystemApi
+    public void downloadMms(@NonNull Uri pduUri, int subId, @NonNull Uri location,
+            @NonNull final CarrierMessagingCallbackWrapper callback) {
+        if (mICarrierMessagingService != null) {
+            try {
+                mICarrierMessagingService.downloadMms(pduUri, subId, location,
+                        new CarrierMessagingCallbackWrapperInternal(callback));
+            } catch (RemoteException e) {
+                throw new RuntimeException(e);
+            }
+        }
+    }
+
+    /**
+     * A basic {@link ServiceConnection}.
+     */
+    private final class CarrierMessagingServiceConnection implements ServiceConnection {
+        @Override
+        public void onServiceConnected(ComponentName name, IBinder service) {
+            onServiceReady(ICarrierMessagingService.Stub.asInterface(service));
+        }
+
+        @Override
+        public void onServiceDisconnected(ComponentName name) {
+        }
+    }
+
+    /**
+     * Callback wrapper used for response to requests exposed by
+     * {@link CarrierMessagingServiceWrapper}.
+     * @hide
+     */
+    @SystemApi
+    public abstract static class CarrierMessagingCallbackWrapper {
+
+        /**
+         * Response callback for {@link CarrierMessagingServiceWrapper#filterSms}.
+         * @param result a bitmask integer to indicate how the incoming text SMS should be handled
+         *               by the platform. Bits set can be
+         *               {@link CarrierMessagingService#RECEIVE_OPTIONS_DROP} and
+         *               {@link CarrierMessagingService#
+         *               RECEIVE_OPTIONS_SKIP_NOTIFY_WHEN_CREDENTIAL_PROTECTED_STORAGE_UNAVAILABLE}.
+         *               {@see CarrierMessagingService#onReceiveTextSms}.
+         * @hide
+         */
+        @SystemApi
+        public void onFilterComplete(int result) {
+
+        }
+
+        /**
+         * Response callback for {@link CarrierMessagingServiceWrapper#sendTextSms} and
+         * {@link CarrierMessagingServiceWrapper#sendDataSms}.
+         * @param result send status, one of {@link CarrierMessagingService#SEND_STATUS_OK},
+         *               {@link CarrierMessagingService#SEND_STATUS_RETRY_ON_CARRIER_NETWORK},
+         *               and {@link CarrierMessagingService#SEND_STATUS_ERROR}.
+         * @param messageRef message reference of the just-sent message. This field is applicable
+         *                   only if result is {@link CarrierMessagingService#SEND_STATUS_OK}.
+         * @hide
+         */
+        @SystemApi
+        public void onSendSmsComplete(int result, int messageRef) {
+
+        }
+
+        /**
+         * Response callback for {@link CarrierMessagingServiceWrapper#sendMultipartTextSms}.
+         * @param result send status, one of {@link CarrierMessagingService#SEND_STATUS_OK},
+         *               {@link CarrierMessagingService#SEND_STATUS_RETRY_ON_CARRIER_NETWORK},
+         *               and {@link CarrierMessagingService#SEND_STATUS_ERROR}.
+         * @param messageRefs an array of message references, one for each part of the
+         *                    multipart SMS. This field is applicable only if result is
+         *                    {@link CarrierMessagingService#SEND_STATUS_OK}.
+         * @hide
+         */
+        @SystemApi
+        public void onSendMultipartSmsComplete(int result, @Nullable int[] messageRefs) {
+
+        }
+
+        /**
+         * Response callback for {@link CarrierMessagingServiceWrapper#sendMms}.
+         * @param result send status, one of {@link CarrierMessagingService#SEND_STATUS_OK},
+         *               {@link CarrierMessagingService#SEND_STATUS_RETRY_ON_CARRIER_NETWORK},
+         *               and {@link CarrierMessagingService#SEND_STATUS_ERROR}.
+         * @param sendConfPdu a possibly {code null} SendConf PDU, which confirms that the message
+         *                    was sent. sendConfPdu is ignored if the {@code result} is not
+         *                    {@link CarrierMessagingService#SEND_STATUS_OK}.
+         * @hide
+         */
+        @SystemApi
+        public void onSendMmsComplete(int result, @Nullable byte[] sendConfPdu) {
+
+        }
+
+        /**
+         * Response callback for {@link CarrierMessagingServiceWrapper#downloadMms}.
+         * @param result download status, one of {@link CarrierMessagingService#SEND_STATUS_OK},
+         *               {@link CarrierMessagingService#SEND_STATUS_RETRY_ON_CARRIER_NETWORK},
+         *               and {@link CarrierMessagingService#SEND_STATUS_ERROR}.
+         * @hide
+         */
+        @SystemApi
+        public void onDownloadMmsComplete(int result) {
+
+        }
+    }
+
+    private final class CarrierMessagingCallbackWrapperInternal
+            extends ICarrierMessagingCallback.Stub {
+        CarrierMessagingCallbackWrapper mCarrierMessagingCallbackWrapper;
+
+        CarrierMessagingCallbackWrapperInternal(CarrierMessagingCallbackWrapper callback) {
+            mCarrierMessagingCallbackWrapper = callback;
+        }
+
+        @Override
+        public void onFilterComplete(int result) throws RemoteException {
+            mCarrierMessagingCallbackWrapper.onFilterComplete(result);
+        }
+
+        @Override
+        public void onSendSmsComplete(int result, int messageRef) throws RemoteException {
+            mCarrierMessagingCallbackWrapper.onSendSmsComplete(result, messageRef);
+        }
+
+        @Override
+        public void onSendMultipartSmsComplete(int result, int[] messageRefs)
+                throws RemoteException {
+            mCarrierMessagingCallbackWrapper.onSendMultipartSmsComplete(result, messageRefs);
+        }
+
+        @Override
+        public void onSendMmsComplete(int result, byte[] sendConfPdu) throws RemoteException {
+            mCarrierMessagingCallbackWrapper.onSendMmsComplete(result, sendConfPdu);
+        }
+
+        @Override
+        public void onDownloadMmsComplete(int result) throws RemoteException {
+            mCarrierMessagingCallbackWrapper.onDownloadMmsComplete(result);
+        }
+    }
+}
diff --git a/core/java/android/service/carrier/ICarrierMessagingService.aidl b/core/java/android/service/carrier/ICarrierMessagingService.aidl
index 2d96c3d..c4dfb57 100644
--- a/core/java/android/service/carrier/ICarrierMessagingService.aidl
+++ b/core/java/android/service/carrier/ICarrierMessagingService.aidl
@@ -36,6 +36,7 @@
      * @param subId SMS subscription ID of the SIM
      * @param callback the callback to notify upon completion
      */
+    @UnsupportedAppUsage(maxTargetSdk = 28)
     void filterSms(
         in MessagePdu pdu, String format, int destPort, int subId,
         in ICarrierMessagingCallback callback);
diff --git a/core/java/android/service/dreams/IDreamManager.aidl b/core/java/android/service/dreams/IDreamManager.aidl
index d3f2a70..d254ffd 100644
--- a/core/java/android/service/dreams/IDreamManager.aidl
+++ b/core/java/android/service/dreams/IDreamManager.aidl
@@ -29,6 +29,7 @@
     void awaken();
     @UnsupportedAppUsage
     void setDreamComponents(in ComponentName[] componentNames);
+    @UnsupportedAppUsage
     ComponentName[] getDreamComponents();
     ComponentName getDefaultDreamComponent();
     void testDream(in ComponentName componentName);
diff --git a/telephony/java/android/telephony/PhoneStateListener.java b/core/java/android/telephony/PhoneStateListener.java
similarity index 98%
rename from telephony/java/android/telephony/PhoneStateListener.java
rename to core/java/android/telephony/PhoneStateListener.java
index 0ce552a..a65c8fd 100644
--- a/telephony/java/android/telephony/PhoneStateListener.java
+++ b/core/java/android/telephony/PhoneStateListener.java
@@ -28,11 +28,15 @@
 import android.os.Handler;
 import android.os.HandlerExecutor;
 import android.os.Looper;
+import android.telephony.Annotation.CallState;
+import android.telephony.Annotation.RadioPowerState;
+import android.telephony.Annotation.SimActivationState;
+import android.telephony.Annotation.SrvccState;
 import android.telephony.emergency.EmergencyNumber;
 import android.telephony.ims.ImsReasonInfo;
 
-import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.telephony.IPhoneStateListener;
+import com.android.internal.annotations.VisibleForTesting;
 
 import dalvik.system.VMRuntime;
 
@@ -180,7 +184,8 @@
     public static final int LISTEN_CELL_INFO = 0x00000400;
 
     /**
-     * Listen for {@link PreciseCallState.State} of ringing, background and foreground calls.
+     * Listen for {@link android.telephony.Annotation.PreciseCallStates} of ringing,
+     * background and foreground calls.
      *
      * @hide
      */
@@ -567,7 +572,7 @@
      * privileges (see {@link TelephonyManager#hasCarrierPrivileges}), an empty string will be
      * passed as an argument.
      */
-    public void onCallStateChanged(@TelephonyManager.CallState int state, String phoneNumber) {
+    public void onCallStateChanged(@CallState int state, String phoneNumber) {
         // default implementation empty
     }
 
@@ -773,7 +778,7 @@
      * @hide
      */
     @SystemApi
-    public void onSrvccStateChanged(@TelephonyManager.SrvccState int srvccState) {
+    public void onSrvccStateChanged(@SrvccState int srvccState) {
 
     }
 
@@ -791,7 +796,7 @@
      * @hide
      */
     @SystemApi
-    public void onVoiceActivationStateChanged(@TelephonyManager.SimActivationState int state) {
+    public void onVoiceActivationStateChanged(@SimActivationState int state) {
     }
 
     /**
@@ -807,7 +812,7 @@
      * @param state is the current SIM data activation state
      * @hide
      */
-    public void onDataActivationStateChanged(@TelephonyManager.SimActivationState int state) {
+    public void onDataActivationStateChanged(@SimActivationState int state) {
     }
 
     /**
@@ -966,7 +971,7 @@
      * @hide
      */
     @SystemApi
-    public void onRadioPowerStateChanged(@TelephonyManager.RadioPowerState int state) {
+    public void onRadioPowerStateChanged(@RadioPowerState int state) {
         // default implementation empty
     }
 
@@ -1233,7 +1238,7 @@
                     () -> mExecutor.execute(() -> psl.onPhoneCapabilityChanged(capability)));
         }
 
-        public void onRadioPowerStateChanged(@TelephonyManager.RadioPowerState int state) {
+        public void onRadioPowerStateChanged(@RadioPowerState int state) {
             PhoneStateListener psl = mPhoneStateListenerWeakRef.get();
             if (psl == null) return;
 
diff --git a/telephony/java/android/telephony/Rlog.java b/core/java/android/telephony/Rlog.java
similarity index 100%
rename from telephony/java/android/telephony/Rlog.java
rename to core/java/android/telephony/Rlog.java
diff --git a/core/java/android/os/telephony/TelephonyRegistryManager.java b/core/java/android/telephony/TelephonyRegistryManager.java
similarity index 70%
rename from core/java/android/os/telephony/TelephonyRegistryManager.java
rename to core/java/android/telephony/TelephonyRegistryManager.java
index 459c414..5c42730 100644
--- a/core/java/android/os/telephony/TelephonyRegistryManager.java
+++ b/core/java/android/telephony/TelephonyRegistryManager.java
@@ -13,34 +13,50 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package android.os.telephony;
+package android.telephony;
 
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
+import android.content.Context;
 import android.net.LinkProperties;
 import android.net.NetworkCapabilities;
+import android.os.Binder;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.HandlerExecutor;
 import android.os.RemoteException;
 import android.os.ServiceManager;
+import android.telephony.Annotation.ApnType;
+import android.telephony.Annotation.CallState;
+import android.telephony.Annotation.DataActivityType;
+import android.telephony.Annotation.DataFailureCause;
+import android.telephony.Annotation.DataState;
+import android.telephony.Annotation.NetworkType;
+import android.telephony.Annotation.PreciseCallStates;
+import android.telephony.Annotation.RadioPowerState;
+import android.telephony.Annotation.SimActivationState;
+import android.telephony.Annotation.SrvccState;
 import android.telephony.CallQuality;
 import android.telephony.CellInfo;
-import android.telephony.DataFailCause;
 import android.telephony.DisconnectCause;
 import android.telephony.PhoneCapability;
-import android.telephony.PreciseCallState.State;
 import android.telephony.ServiceState;
 import android.telephony.SignalStrength;
 import android.telephony.TelephonyManager;
-import android.telephony.TelephonyManager.CallState;
-import android.telephony.TelephonyManager.DataActivityType;
-import android.telephony.TelephonyManager.DataState;
-import android.telephony.TelephonyManager.NetworkType;
-import android.telephony.TelephonyManager.RadioPowerState;
-import android.telephony.TelephonyManager.SimActivationState;
 import android.telephony.data.ApnSetting;
-import android.telephony.data.ApnSetting.ApnType;
 import android.telephony.ims.ImsReasonInfo;
+import android.util.Log;
+
+import com.android.internal.telephony.IOnSubscriptionsChangedListener;
 import com.android.internal.telephony.ITelephonyRegistry;
+
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.concurrent.Executor;
 
 /**
  * A centralized place to notify telephony related status changes, e.g, {@link ServiceState} update
@@ -57,9 +73,26 @@
 
     private static final String TAG = "TelephonyRegistryManager";
     private static ITelephonyRegistry sRegistry;
+    private final Context mContext;
+
+    /**
+     * A mapping between {@link SubscriptionManager.OnSubscriptionsChangedListener} and
+     * its callback IOnSubscriptionsChangedListener.
+     */
+    private final Map<SubscriptionManager.OnSubscriptionsChangedListener,
+                IOnSubscriptionsChangedListener> mSubscriptionChangedListenerMap = new HashMap<>();
+    /**
+     * A mapping between {@link SubscriptionManager.OnOpportunisticSubscriptionsChangedListener} and
+     * its callback IOnSubscriptionsChangedListener.
+     */
+    private final Map<SubscriptionManager.OnOpportunisticSubscriptionsChangedListener,
+            IOnSubscriptionsChangedListener> mOpportunisticSubscriptionChangedListenerMap
+            = new HashMap<>();
+
 
     /** @hide **/
-    public TelephonyRegistryManager() {
+    public TelephonyRegistryManager(@NonNull Context context) {
+        mContext = context;
         if (sRegistry == null) {
             sRegistry = ITelephonyRegistry.Stub.asInterface(
                 ServiceManager.getService("telephony.registry"));
@@ -67,6 +100,113 @@
     }
 
     /**
+     * Register for changes to the list of active {@link SubscriptionInfo} records or to the
+     * individual records themselves. When a change occurs the onSubscriptionsChanged method of
+     * the listener will be invoked immediately if there has been a notification. The
+     * onSubscriptionChanged method will also be triggered once initially when calling this
+     * function.
+     *
+     * @param listener an instance of {@link SubscriptionManager.OnSubscriptionsChangedListener}
+     *                 with onSubscriptionsChanged overridden.
+     * @param executor the executor that will execute callbacks.
+     */
+    public void addOnSubscriptionsChangedListener(
+            @NonNull SubscriptionManager.OnSubscriptionsChangedListener listener,
+            @NonNull Executor executor) {
+        IOnSubscriptionsChangedListener callback = new IOnSubscriptionsChangedListener.Stub() {
+            @Override
+            public void onSubscriptionsChanged () {
+                Log.d(TAG, "onSubscriptionsChangedListener callback received.");
+                executor.execute(() -> listener.onSubscriptionsChanged());
+            }
+        };
+        mSubscriptionChangedListenerMap.put(listener, callback);
+        try {
+            sRegistry.addOnSubscriptionsChangedListener(mContext.getOpPackageName(), callback);
+        } catch (RemoteException ex) {
+            // system server crash
+        }
+    }
+
+    /**
+     * Unregister the {@link SubscriptionManager.OnSubscriptionsChangedListener}. This is not
+     * strictly necessary as the listener will automatically be unregistered if an attempt to
+     * invoke the listener fails.
+     *
+     * @param listener that is to be unregistered.
+     */
+    public void removeOnSubscriptionsChangedListener(
+            @NonNull SubscriptionManager.OnSubscriptionsChangedListener listener) {
+        if (mSubscriptionChangedListenerMap.get(listener) == null) {
+            return;
+        }
+        try {
+            sRegistry.removeOnSubscriptionsChangedListener(mContext.getOpPackageName(),
+                    mSubscriptionChangedListenerMap.get(listener));
+            mSubscriptionChangedListenerMap.remove(listener);
+        } catch (RemoteException ex) {
+            // system server crash
+        }
+    }
+
+    /**
+     * Register for changes to the list of opportunistic subscription records or to the
+     * individual records themselves. When a change occurs the onOpportunisticSubscriptionsChanged
+     * method of the listener will be invoked immediately if there has been a notification.
+     *
+     * @param listener an instance of
+     * {@link SubscriptionManager.OnOpportunisticSubscriptionsChangedListener} with
+     *                 onOpportunisticSubscriptionsChanged overridden.
+     * @param executor an Executor that will execute callbacks.
+     */
+    public void addOnOpportunisticSubscriptionsChangedListener(
+            @NonNull SubscriptionManager.OnOpportunisticSubscriptionsChangedListener listener,
+            @NonNull Executor executor) {
+        /**
+         * The callback methods need to be called on the executor thread where
+         * this object was created.  If the binder did that for us it'd be nice.
+         */
+        IOnSubscriptionsChangedListener callback = new IOnSubscriptionsChangedListener.Stub() {
+            @Override
+            public void onSubscriptionsChanged() {
+                final long identity = Binder.clearCallingIdentity();
+                try {
+                    Log.d(TAG, "onOpportunisticSubscriptionsChanged callback received.");
+                    executor.execute(() -> listener.onOpportunisticSubscriptionsChanged());
+                } finally {
+                    Binder.restoreCallingIdentity(identity);
+                }
+            }
+        };
+        mOpportunisticSubscriptionChangedListenerMap.put(listener, callback);
+        try {
+            sRegistry.addOnOpportunisticSubscriptionsChangedListener(mContext.getOpPackageName(),
+                    callback);
+        } catch (RemoteException ex) {
+            // system server crash
+        }
+    }
+
+    /**
+     * Unregister the {@link SubscriptionManager.OnOpportunisticSubscriptionsChangedListener}
+     * that is currently listening opportunistic subscriptions change. This is not strictly
+     * necessary as the listener will automatically be unregistered if an attempt to invoke the
+     * listener fails.
+     *
+     * @param listener that is to be unregistered.
+     */
+    public void removeOnOpportunisticSubscriptionsChangedListener(
+            @NonNull SubscriptionManager.OnOpportunisticSubscriptionsChangedListener listener) {
+        try {
+            sRegistry.removeOnSubscriptionsChangedListener(mContext.getOpPackageName(),
+                    mOpportunisticSubscriptionChangedListenerMap.get(listener));
+            mOpportunisticSubscriptionChangedListenerMap.remove(listener);
+        } catch (RemoteException ex) {
+            // system server crash
+        }
+    }
+
+    /**
      * Informs the system of an intentional upcoming carrier network change by a carrier app.
      * This call only used to allow the system to provide alternative UI while telephony is
      * performing an action that may result in intentional, temporary network lack of connectivity.
@@ -96,14 +236,33 @@
      * @param slotIndex for which call state changed. Can be derived from subId except when subId is
      * invalid.
      * @param state latest call state. e.g, offhook, ringing
-     * @param incomingNumer incoming phone number.
+     * @param incomingNumber incoming phone number.
      *
      * @hide
      */
     public void notifyCallStateChanged(int subId, int slotIndex, @CallState int state,
-        String incomingNumer) {
+            String incomingNumber) {
         try {
-            sRegistry.notifyCallState(slotIndex, subId, state, incomingNumer);
+            sRegistry.notifyCallState(slotIndex, subId, state, incomingNumber);
+        } catch (RemoteException ex) {
+            // system server crash
+        }
+    }
+
+    /**
+     * Notify call state changed on all subscriptions.
+     *
+     * @param state latest call state. e.g, offhook, ringing
+     * @param incomingNumber incoming phone number.
+     * @hide
+     */
+    @SystemApi
+    @TestApi
+    @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
+    public void notifyCallStateChangedForAllSubscriptions(@CallState int state,
+            @Nullable String incomingNumber) {
+        try {
+            sRegistry.notifyCallStateForAllSubs(state, incomingNumber);
         } catch (RemoteException ex) {
             // system server crash
         }
@@ -410,7 +569,7 @@
      * @hide
      */
     public void notifyPreciseDataConnectionFailed(int subId, int slotIndex, String apnType,
-        String apn, @DataFailCause.FailCause int failCause) {
+        String apn, @DataFailureCause int failCause) {
         try {
             sRegistry.notifyPreciseDataConnectionFailed(slotIndex, subId, apnType, apn, failCause);
         } catch (RemoteException ex) {
@@ -427,7 +586,7 @@
      *
      * @hide
      */
-    public void notifySrvccStateChanged(int subId, @TelephonyManager.SrvccState int state) {
+    public void notifySrvccStateChanged(int subId, @SrvccState int state) {
         try {
             sRegistry.notifySrvccStateChanged(subId, state);
         } catch (RemoteException ex) {
@@ -464,8 +623,10 @@
      *
      * @hide
      */
-    public void notifyPreciseCallState(int subId, int slotIndex, @State int ringCallPreciseState,
-        @State int foregroundCallPreciseState, @State int backgroundCallPreciseState) {
+    public void notifyPreciseCallState(int subId, int slotIndex,
+        @PreciseCallStates int ringCallPreciseState,
+        @PreciseCallStates int foregroundCallPreciseState,
+        @PreciseCallStates int backgroundCallPreciseState) {
         try {
             sRegistry.notifyPreciseCallState(slotIndex, subId, ringCallPreciseState,
                 foregroundCallPreciseState, backgroundCallPreciseState);
@@ -543,4 +704,15 @@
         }
     }
 
+    /**
+     * @param activeDataSubId
+     * @hide
+     */
+    public void notifyActiveDataSubIdChanged(int activeDataSubId) {
+        try {
+            sRegistry.notifyActiveDataSubIdChanged(activeDataSubId);
+        } catch (RemoteException ex) {
+
+        }
+    }
 }
diff --git a/core/java/android/util/DebugUtils.java b/core/java/android/util/DebugUtils.java
index 265b0d3..55d114b 100644
--- a/core/java/android/util/DebugUtils.java
+++ b/core/java/android/util/DebugUtils.java
@@ -251,7 +251,7 @@
                     if (value == 0 && flagsWasZero) {
                         return constNameWithoutPrefix(prefix, field);
                     }
-                    if ((flags & value) == value) {
+                    if (value != 0 && (flags & value) == value) {
                         flags &= ~value;
                         res.append(constNameWithoutPrefix(prefix, field)).append('|');
                     }
diff --git a/core/java/android/util/Singleton.java b/core/java/android/util/Singleton.java
index 33135e6..15c6b5b 100644
--- a/core/java/android/util/Singleton.java
+++ b/core/java/android/util/Singleton.java
@@ -26,6 +26,11 @@
  * @hide
  */
 public abstract class Singleton<T> {
+
+    @UnsupportedAppUsage
+    public Singleton() {
+    }
+
     @UnsupportedAppUsage
     private T mInstance;
 
diff --git a/core/java/android/util/TimingLogger.java b/core/java/android/util/TimingLogger.java
index be442da..5a4a512 100644
--- a/core/java/android/util/TimingLogger.java
+++ b/core/java/android/util/TimingLogger.java
@@ -44,7 +44,14 @@
  *     D/TAG     ( 3459): methodA:      6 ms, work C
  *     D/TAG     ( 3459): methodA: end, 16 ms
  * </pre>
+ *
+ * @deprecated Use {@link android.os.Trace}, or
+ *   <a href="https://developer.android.com/studio/profile/benchmark">Android Studio</a>. In
+ *   general, milliseconds is the wrong granularity for method-level tracing. Rounding errors
+ *   can overemphasize cheap operations, or underemphasize repeated operations. This timing
+ *   system also does not take CPU scheduling or frequency into account.
  */
+@Deprecated
 public class TimingLogger {
 
     /**
diff --git a/core/java/android/view/AccessibilityIterators.java b/core/java/android/view/AccessibilityIterators.java
index 54cfc00..5f9bf39 100644
--- a/core/java/android/view/AccessibilityIterators.java
+++ b/core/java/android/view/AccessibilityIterators.java
@@ -47,6 +47,10 @@
     public static abstract class AbstractTextSegmentIterator implements TextSegmentIterator {
 
         @UnsupportedAppUsage
+        public AbstractTextSegmentIterator() {
+        }
+
+        @UnsupportedAppUsage
         protected String mText;
 
         private final int[] mSegment = new int[2];
diff --git a/core/java/android/view/ActionMode.java b/core/java/android/view/ActionMode.java
index 05d9167..6b200e1 100644
--- a/core/java/android/view/ActionMode.java
+++ b/core/java/android/view/ActionMode.java
@@ -21,6 +21,8 @@
 import android.annotation.TestApi;
 import android.graphics.Rect;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 /**
  * Represents a contextual mode of the user interface. Action modes can be used to provide
  * alternative interaction modes and replace parts of the normal UI until finished.
@@ -279,6 +281,7 @@
      * @return true if the UI used to show this action mode can take focus
      * @hide Internal use only
      */
+    @UnsupportedAppUsage
     @TestApi
     public boolean isUiFocusable() {
         return true;
diff --git a/core/java/android/view/Choreographer.java b/core/java/android/view/Choreographer.java
index e95b5ca..28eb79a 100644
--- a/core/java/android/view/Choreographer.java
+++ b/core/java/android/view/Choreographer.java
@@ -331,6 +331,7 @@
      * @return the requested time between frames, in milliseconds
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public static long getFrameDelay() {
         return sFrameDelay;
@@ -413,6 +414,7 @@
      * @see #removeCallbacks
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public void postCallback(int callbackType, Runnable action, Object token) {
         postCallbackDelayed(callbackType, action, token, 0);
@@ -432,6 +434,7 @@
      * @see #removeCallback
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public void postCallbackDelayed(int callbackType,
             Runnable action, Object token, long delayMillis) {
@@ -482,6 +485,7 @@
      * @see #postCallbackDelayed
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public void removeCallbacks(int callbackType, Runnable action, Object token) {
         if (callbackType < 0 || callbackType > CALLBACK_LAST) {
diff --git a/core/java/android/view/IWindowManager.aidl b/core/java/android/view/IWindowManager.aidl
index 39792ce..1c32948 100644
--- a/core/java/android/view/IWindowManager.aidl
+++ b/core/java/android/view/IWindowManager.aidl
@@ -151,6 +151,7 @@
     float getCurrentAnimatorScale();
 
     // For testing
+    @UnsupportedAppUsage(maxTargetSdk = 28)
     void setInTouchMode(boolean showFocus);
 
     // For StrictMode flashing a red border on violations from the UI
@@ -158,6 +159,7 @@
     // Manager uses that to determine whether or not the red border should
     // actually be shown.  (it will be ignored that pid doesn't have windows
     // on screen)
+    @UnsupportedAppUsage(maxTargetSdk = 28)
     void showStrictModeViolation(boolean on);
 
     // Proxy to set the system property for whether the flashing
diff --git a/core/java/android/view/MotionEvent.java b/core/java/android/view/MotionEvent.java
index 86e94f4..833e78f 100644
--- a/core/java/android/view/MotionEvent.java
+++ b/core/java/android/view/MotionEvent.java
@@ -2613,6 +2613,7 @@
      * @see #getActionButton()
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public final void setActionButton(int button) {
         nativeSetActionButton(mNativePtr, button);
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 4e86e60..a35eb1e 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -4555,6 +4555,11 @@
     }
 
     static class ListenerInfo {
+
+        @UnsupportedAppUsage
+        ListenerInfo() {
+        }
+
         /**
          * Listener used to dispatch focus change events.
          * This field should be made private, so it is hidden from the SDK.
@@ -24695,6 +24700,7 @@
      * @param isRoot true if the view belongs to the root namespace, false
      *        otherwise
      */
+    @UnsupportedAppUsage
     @TestApi
     public void setIsRootNamespace(boolean isRoot) {
         if (isRoot) {
@@ -27831,6 +27837,10 @@
          */
         private int mClassification;
 
+        @UnsupportedAppUsage
+        private CheckForLongPress() {
+        }
+
         @Override
         public void run() {
             if ((mOriginalPressedState == isPressed()) && (mParent != null)
@@ -28316,6 +28326,11 @@
          * whenever possible.
          */
         static class InvalidateInfo {
+
+            @UnsupportedAppUsage
+            InvalidateInfo() {
+            }
+
             private static final int POOL_LIMIT = 10;
 
             private static final SynchronizedPool<InvalidateInfo> sPool =
diff --git a/core/java/android/view/ViewTreeObserver.java b/core/java/android/view/ViewTreeObserver.java
index c50a3aa..d002d7e 100644
--- a/core/java/android/view/ViewTreeObserver.java
+++ b/core/java/android/view/ViewTreeObserver.java
@@ -218,6 +218,11 @@
      * @hide
      */
     public final static class InternalInsetsInfo {
+
+        @UnsupportedAppUsage
+        public InternalInsetsInfo() {
+        }
+
         /**
          * Offsets from the frame of the window at which the content of
          * windows behind it should be placed.
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java
index 2e5a750..450de6d 100644
--- a/core/java/android/view/WindowManager.java
+++ b/core/java/android/view/WindowManager.java
@@ -1686,6 +1686,7 @@
          *
          * {@hide}
          */
+        @UnsupportedAppUsage
         @TestApi
         public static final int PRIVATE_FLAG_NO_MOVE_ANIMATION = 0x00000040;
 
@@ -1930,6 +1931,7 @@
                         equals = PRIVATE_FLAG_COLOR_SPACE_AGNOSTIC,
                         name = "COLOR_SPACE_AGNOSTIC")
         })
+        @UnsupportedAppUsage
         @TestApi
         public int privateFlags;
 
diff --git a/core/java/android/view/accessibility/TEST_MAPPING b/core/java/android/view/accessibility/TEST_MAPPING
index 535a31a..d2bd6ea 100644
--- a/core/java/android/view/accessibility/TEST_MAPPING
+++ b/core/java/android/view/accessibility/TEST_MAPPING
@@ -30,9 +30,6 @@
         },
         {
           "exclude-annotation": "androidx.test.filters.FlakyTest"
-        },
-        {
-          "exclude-filter": "android.view.textclassifier.TextClassifierTest#testSuggetsConversationActions_deduplicate"
         }
       ]
     }
diff --git a/core/java/android/view/textclassifier/TEST_MAPPING b/core/java/android/view/textclassifier/TEST_MAPPING
index 31e240b..01a6ede 100644
--- a/core/java/android/view/textclassifier/TEST_MAPPING
+++ b/core/java/android/view/textclassifier/TEST_MAPPING
@@ -8,9 +8,6 @@
         },
         {
           "exclude-annotation": "androidx.test.filters.FlakyTest"
-        },
-        {
-          "exclude-filter": "android.view.textclassifier.TextClassifierTest#testSuggetsConversationActions_deduplicate"
         }
       ]
     }
diff --git a/core/java/android/webkit/CacheManager.java b/core/java/android/webkit/CacheManager.java
index 563e00e..7e06719 100644
--- a/core/java/android/webkit/CacheManager.java
+++ b/core/java/android/webkit/CacheManager.java
@@ -50,6 +50,11 @@
      */
     @Deprecated
     public static class CacheResult {
+
+        @UnsupportedAppUsage
+        public CacheResult() {
+        }
+
         // these fields are saved to the database
         @UnsupportedAppUsage
         int httpStatusCode;
diff --git a/core/java/android/widget/RelativeLayout.java b/core/java/android/widget/RelativeLayout.java
index 6b324a5..b9da307 100644
--- a/core/java/android/widget/RelativeLayout.java
+++ b/core/java/android/widget/RelativeLayout.java
@@ -36,7 +36,6 @@
 import android.view.ViewHierarchyEncoder;
 import android.view.accessibility.AccessibilityEvent;
 import android.view.inspector.InspectableProperty;
-import android.view.inspector.InspectionCompanion;
 import android.view.inspector.PropertyMapper;
 import android.view.inspector.PropertyReader;
 import android.widget.RemoteViews.RemoteView;
@@ -2026,6 +2025,11 @@
          * A node with no dependent is considered a root of the graph.
          */
         static class Node {
+
+            @UnsupportedAppUsage
+            Node() {
+            }
+
             /**
              * The view representing this node in the layout.
              */
diff --git a/core/java/android/widget/ScrollBarDrawable.java b/core/java/android/widget/ScrollBarDrawable.java
index 1bed32ec..a5d3e45 100644
--- a/core/java/android/widget/ScrollBarDrawable.java
+++ b/core/java/android/widget/ScrollBarDrawable.java
@@ -60,6 +60,10 @@
     private ColorFilter mColorFilter;
     private boolean mHasSetColorFilter;
 
+    @UnsupportedAppUsage
+    public ScrollBarDrawable() {
+    }
+
     /**
      * Indicate whether the horizontal scrollbar track should always be drawn
      * regardless of the extent. Defaults to false.
diff --git a/core/java/com/android/internal/app/AlertActivity.java b/core/java/com/android/internal/app/AlertActivity.java
index 0b08099..7307de5 100644
--- a/core/java/com/android/internal/app/AlertActivity.java
+++ b/core/java/com/android/internal/app/AlertActivity.java
@@ -34,6 +34,10 @@
  */
 public abstract class AlertActivity extends Activity implements DialogInterface {
 
+    @UnsupportedAppUsage
+    public AlertActivity() {
+    }
+
     /**
      * The model for the alert.
      * 
diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java
index 00206fc..80c821b 100644
--- a/core/java/com/android/internal/app/ChooserActivity.java
+++ b/core/java/com/android/internal/app/ChooserActivity.java
@@ -25,6 +25,7 @@
 import android.animation.ValueAnimator;
 import android.annotation.IntDef;
 import android.annotation.Nullable;
+import android.annotation.UnsupportedAppUsage;
 import android.app.Activity;
 import android.app.ActivityManager;
 import android.app.prediction.AppPredictionContext;
@@ -139,6 +140,9 @@
 public class ChooserActivity extends ResolverActivity {
     private static final String TAG = "ChooserActivity";
 
+    @UnsupportedAppUsage
+    public ChooserActivity() {
+    }
 
     /**
      * Boolean extra to change the following behavior: Normally, ChooserActivity finishes itself
diff --git a/core/java/com/android/internal/app/DisableCarModeActivity.java b/core/java/com/android/internal/app/DisableCarModeActivity.java
index 7943c61..d44312b 100644
--- a/core/java/com/android/internal/app/DisableCarModeActivity.java
+++ b/core/java/com/android/internal/app/DisableCarModeActivity.java
@@ -33,7 +33,9 @@
         try {
             IUiModeManager uiModeManager = IUiModeManager.Stub.asInterface(
                     ServiceManager.getService("uimode"));
-            uiModeManager.disableCarMode(UiModeManager.DISABLE_CAR_MODE_GO_HOME);
+            uiModeManager.disableCarModeByCallingPackage(UiModeManager.DISABLE_CAR_MODE_GO_HOME
+                            | UiModeManager.DISABLE_CAR_MODE_ALL_PRIORITIES,
+                    getOpPackageName());
         } catch (RemoteException e) {
             Log.e(TAG, "Failed to disable car mode", e);
         }
diff --git a/core/java/com/android/internal/app/LocaleHelper.java b/core/java/com/android/internal/app/LocaleHelper.java
index aef4dbf..e3d07aa 100644
--- a/core/java/com/android/internal/app/LocaleHelper.java
+++ b/core/java/com/android/internal/app/LocaleHelper.java
@@ -208,7 +208,7 @@
      * @return the maximized Locale instance.
      */
     public static Locale addLikelySubtags(Locale locale) {
-        return libcore.icu.ICU.addLikelySubtags(locale);
+        return ULocale.addLikelySubtags(ULocale.forLocale(locale)).toLocale();
     }
 
     /**
diff --git a/core/java/com/android/internal/app/LocaleStore.java b/core/java/com/android/internal/app/LocaleStore.java
index c11089b..49f77e1 100644
--- a/core/java/com/android/internal/app/LocaleStore.java
+++ b/core/java/com/android/internal/app/LocaleStore.java
@@ -194,7 +194,7 @@
     private static Set<String> getSimCountries(Context context) {
         Set<String> result = new HashSet<>();
 
-        TelephonyManager tm = TelephonyManager.from(context);
+        TelephonyManager tm = context.getSystemService(TelephonyManager.class);
 
         if (tm != null) {
             String iso = tm.getSimCountryIso().toUpperCase(Locale.US);
diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java
index 58ce03b..f22e62c 100644
--- a/core/java/com/android/internal/app/ResolverActivity.java
+++ b/core/java/com/android/internal/app/ResolverActivity.java
@@ -101,6 +101,10 @@
 @UiThread
 public class ResolverActivity extends Activity {
 
+    @UnsupportedAppUsage
+    public ResolverActivity() {
+    }
+
     // Temporary flag for new chooser delegate behavior.
     boolean mEnableChooserDelegate = true;
 
diff --git a/core/java/com/android/internal/compat/IPlatformCompat.aidl b/core/java/com/android/internal/compat/IPlatformCompat.aidl
index 5857642..7dcb12c 100644
--- a/core/java/com/android/internal/compat/IPlatformCompat.aidl
+++ b/core/java/com/android/internal/compat/IPlatformCompat.aidl
@@ -133,7 +133,7 @@
     boolean isChangeEnabledByUid(long changeId, int uid);
 
     /**
-     * Add overrides to compatibility changes.
+     * Add overrides to compatibility changes. Kills the app to allow the changes to take effect.
      *
      * @param overrides Parcelable containing the compat change overrides to be applied.
      * @param packageName The package name of the app whose changes will be overridden.
@@ -142,7 +142,28 @@
     void setOverrides(in CompatibilityChangeConfig overrides, in String packageName);
 
     /**
-     * Revert overrides to compatibility changes.
+     * Add overrides to compatibility changes. Doesn't kill the app, to be only used in tests.
+     *
+     * @param overrides Parcelable containing the compat change overrides to be applied.
+     * @param packageName The package name of the app whose changes will be overridden.
+     *
+     */
+    void setOverridesForTest(in CompatibilityChangeConfig overrides, in String packageName);
+
+    /**
+     * Removes an override previously added via {@link #setOverrides(CompatibilityChangeConfig,
+     * String)}. This restores the default behaviour for the given change and app, once any app
+     * processes have been restarted.
+     * Kills the app to allow the changes to take effect.
+     *
+     * @param changeId    The ID of the change that was overridden.
+     * @param packageName The app package name that was overridden.
+     * @return {@code true} if an override existed;
+     */
+    boolean clearOverride(long changeId, String packageName);
+
+    /**
+     * Revert overrides to compatibility changes. Kills the app to allow the changes to take effect.
      *
      * @param packageName The package name of the app whose overrides will be cleared.
      *
@@ -150,6 +171,15 @@
     void clearOverrides(in String packageName);
 
     /**
+     * Revert overrides to compatibility changes. Doesn't kill the app, to be only used in tests.
+     *
+     * @param packageName The package name of the app whose overrides will be cleared.
+     *
+     */
+    void clearOverridesForTest(in String packageName);
+
+
+    /**
      * Get configs for an application.
      *
      * @param appInfo The application whose config will be returned.
diff --git a/core/java/com/android/internal/content/PackageMonitor.java b/core/java/com/android/internal/content/PackageMonitor.java
index c928f3f..5d7d3af 100644
--- a/core/java/com/android/internal/content/PackageMonitor.java
+++ b/core/java/com/android/internal/content/PackageMonitor.java
@@ -27,6 +27,7 @@
 import android.os.Looper;
 import android.os.UserHandle;
 import android.util.Slog;
+
 import com.android.internal.os.BackgroundThread;
 import com.android.internal.util.Preconditions;
 
@@ -72,6 +73,10 @@
     String[] mTempArray = new String[1];
 
     @UnsupportedAppUsage
+    public PackageMonitor() {
+    }
+
+    @UnsupportedAppUsage
     public void register(Context context, Looper thread, boolean externalStorage) {
         register(context, thread, null, externalStorage);
     }
diff --git a/core/java/com/android/internal/logging/MetricsLogger.java b/core/java/com/android/internal/logging/MetricsLogger.java
index a691a24..f916cf6 100644
--- a/core/java/com/android/internal/logging/MetricsLogger.java
+++ b/core/java/com/android/internal/logging/MetricsLogger.java
@@ -41,6 +41,10 @@
 
     private static MetricsLogger sMetricsLogger;
 
+    @UnsupportedAppUsage
+    public MetricsLogger() {
+    }
+
     private static MetricsLogger getLogger() {
         if (sMetricsLogger == null) {
             sMetricsLogger = new MetricsLogger();
diff --git a/core/java/com/android/internal/net/LegacyVpnInfo.java b/core/java/com/android/internal/net/LegacyVpnInfo.java
index 9ee9710..2ad9759 100644
--- a/core/java/com/android/internal/net/LegacyVpnInfo.java
+++ b/core/java/com/android/internal/net/LegacyVpnInfo.java
@@ -45,6 +45,10 @@
     public int state = -1;
     public PendingIntent intent;
 
+    @UnsupportedAppUsage
+    public LegacyVpnInfo() {
+    }
+
     @Override
     public int describeContents() {
         return 0;
diff --git a/core/java/com/android/internal/net/VpnConfig.java b/core/java/com/android/internal/net/VpnConfig.java
index 65b974b..e6be549 100644
--- a/core/java/com/android/internal/net/VpnConfig.java
+++ b/core/java/com/android/internal/net/VpnConfig.java
@@ -108,6 +108,10 @@
     public Network[] underlyingNetworks;
     public ProxyInfo proxyInfo;
 
+    @UnsupportedAppUsage
+    public VpnConfig() {
+    }
+
     public void updateAllowedFamilies(InetAddress address) {
         if (address instanceof Inet4Address) {
             allowIPv4 = true;
diff --git a/core/java/com/android/internal/os/BaseCommand.java b/core/java/com/android/internal/os/BaseCommand.java
index 278f406..5ba6629 100644
--- a/core/java/com/android/internal/os/BaseCommand.java
+++ b/core/java/com/android/internal/os/BaseCommand.java
@@ -40,6 +40,10 @@
 
     private String[] mRawArgs;
 
+    @UnsupportedAppUsage
+    public BaseCommand() {
+    }
+
     /**
      * Call to run the command.
      */
diff --git a/core/java/com/android/internal/os/BatterySipper.java b/core/java/com/android/internal/os/BatterySipper.java
index 02c9542..b1fc369 100644
--- a/core/java/com/android/internal/os/BatterySipper.java
+++ b/core/java/com/android/internal/os/BatterySipper.java
@@ -134,6 +134,8 @@
     // This list must be kept current with atoms.proto (frameworks/base/cmds/statsd/src/atoms.proto)
     // so the ordinal values (and therefore the order) must never change.
     //                           ****************
+    @UnsupportedAppUsage(implicitMember =
+            "values()[Lcom/android/internal/os/BatterySipper$DrainType;")
     public enum DrainType {
         AMBIENT_DISPLAY,
         @UnsupportedAppUsage
diff --git a/core/java/com/android/internal/os/Zygote.java b/core/java/com/android/internal/os/Zygote.java
index 46e041b..00ab45e 100644
--- a/core/java/com/android/internal/os/Zygote.java
+++ b/core/java/com/android/internal/os/Zygote.java
@@ -114,6 +114,13 @@
      */
     public static final int DEBUG_IGNORE_APP_SIGNAL_HANDLER = 1 << 17;
 
+    /**
+     * Disable runtime access to {@link android.annotation.TestApi} annotated members.
+     *
+     * <p>This only takes effect if Hidden API access restrictions are enabled as well.
+     */
+    public static final int DISABLE_TEST_API_ENFORCEMENT_POLICY = 1 << 18;
+
     /** No external storage should be mounted. */
     public static final int MOUNT_EXTERNAL_NONE = IVold.REMOUNT_MODE_NONE;
     /** Default external storage should be mounted. */
@@ -884,9 +891,9 @@
         }
     }
 
-    private static void callPostForkSystemServerHooks() {
+    private static void callPostForkSystemServerHooks(int runtimeFlags) {
         // SystemServer specific post fork hooks run before child post fork hooks.
-        ZygoteHooks.postForkSystemServer();
+        ZygoteHooks.postForkSystemServer(runtimeFlags);
     }
 
     private static void callPostForkChildHooks(int runtimeFlags, boolean isSystemServer,
diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java
index ad4c6dd..93e6102 100644
--- a/core/java/com/android/internal/os/ZygoteInit.java
+++ b/core/java/com/android/internal/os/ZygoteInit.java
@@ -248,18 +248,6 @@
 
         InputStream is;
         try {
-            // If we are profiling the boot image, avoid preloading classes.
-            // Can't use device_config since we are the zygote.
-            String prop = SystemProperties.get(
-                    "persist.device_config.runtime_native_boot.profilebootclasspath", "");
-            // Might be empty if the property is unset since the default is "".
-            if (prop.length() == 0) {
-                prop = SystemProperties.get("dalvik.vm.profilebootclasspath", "");
-            }
-            if ("true".equals(prop)) {
-                return;
-            }
-
             is = new FileInputStream(PRELOADED_CLASSES);
         } catch (FileNotFoundException e) {
             Log.e(TAG, "Couldn't find " + PRELOADED_CLASSES + ".");
@@ -339,6 +327,22 @@
             runtime.preloadDexCaches();
             Trace.traceEnd(Trace.TRACE_TAG_DALVIK);
 
+            // If we are profiling the boot image, reset the Jit counters after preloading the
+            // classes. We want to preload for performance, and we can use method counters to
+            // infer what clases are used after calling resetJitCounters, for profile purposes.
+            // Can't use device_config since we are the zygote.
+            String prop = SystemProperties.get(
+                    "persist.device_config.runtime_native_boot.profilebootclasspath", "");
+            // Might be empty if the property is unset since the default is "".
+            if (prop.length() == 0) {
+                prop = SystemProperties.get("dalvik.vm.profilebootclasspath", "");
+            }
+            if ("true".equals(prop)) {
+                Trace.traceBegin(Trace.TRACE_TAG_DALVIK, "ResetJitCounters");
+                runtime.resetJitCounters();
+                Trace.traceEnd(Trace.TRACE_TAG_DALVIK);
+            }
+
             // Bring back root. We'll need it later if we're in the zygote.
             if (droppedPriviliges) {
                 try {
diff --git a/core/java/com/android/internal/package-info.java b/core/java/com/android/internal/package-info.java
new file mode 100644
index 0000000..8a226db
--- /dev/null
+++ b/core/java/com/android/internal/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * @hide
+ */
+package com.android.internal;
diff --git a/core/java/com/android/internal/preference/YesNoPreference.java b/core/java/com/android/internal/preference/YesNoPreference.java
index 7abf416..94ef619 100644
--- a/core/java/com/android/internal/preference/YesNoPreference.java
+++ b/core/java/com/android/internal/preference/YesNoPreference.java
@@ -23,6 +23,8 @@
 import android.preference.DialogPreference;
 import android.util.AttributeSet;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 /**
  * The {@link YesNoPreference} is a preference to show a dialog with Yes and No
  * buttons.
@@ -40,6 +42,7 @@
         this(context, attrs, defStyleAttr, 0);
     }
 
+    @UnsupportedAppUsage
     public YesNoPreference(Context context, AttributeSet attrs) {
         this(context, attrs, com.android.internal.R.attr.yesNoPreferenceStyle);
     }
diff --git a/telephony/java/com/android/internal/telephony/IOnSubscriptionsChangedListener.aidl b/core/java/com/android/internal/telephony/IOnSubscriptionsChangedListener.aidl
similarity index 100%
rename from telephony/java/com/android/internal/telephony/IOnSubscriptionsChangedListener.aidl
rename to core/java/com/android/internal/telephony/IOnSubscriptionsChangedListener.aidl
diff --git a/telephony/java/com/android/internal/telephony/IPhoneStateListener.aidl b/core/java/com/android/internal/telephony/IPhoneStateListener.aidl
similarity index 99%
rename from telephony/java/com/android/internal/telephony/IPhoneStateListener.aidl
rename to core/java/com/android/internal/telephony/IPhoneStateListener.aidl
index 90019ee..084a3cc 100644
--- a/telephony/java/com/android/internal/telephony/IPhoneStateListener.aidl
+++ b/core/java/com/android/internal/telephony/IPhoneStateListener.aidl
@@ -29,6 +29,9 @@
 import android.telephony.emergency.EmergencyNumber;
 import android.telephony.ims.ImsReasonInfo;
 
+/**
+ * {@hide}
+ */
 oneway interface IPhoneStateListener {
     void onServiceStateChanged(in ServiceState serviceState);
     void onSignalStrengthChanged(int asu);
diff --git a/telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl b/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl
similarity index 96%
rename from telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl
rename to core/java/com/android/internal/telephony/ITelephonyRegistry.aidl
index 21b2f39..d7a7af1 100644
--- a/telephony/java/com/android/internal/telephony/ITelephonyRegistry.aidl
+++ b/core/java/com/android/internal/telephony/ITelephonyRegistry.aidl
@@ -49,8 +49,10 @@
     void notifySignalStrengthForPhoneId(in int phoneId, in int subId,
             in SignalStrength signalStrength);
     void notifyMessageWaitingChangedForPhoneId(in int phoneId, in int subId, in boolean mwi);
+    @UnsupportedAppUsage(maxTargetSdk = 28)
     void notifyCallForwardingChanged(boolean cfi);
     void notifyCallForwardingChangedForSubscriber(in int subId, boolean cfi);
+    @UnsupportedAppUsage(maxTargetSdk = 28)
     void notifyDataActivity(int state);
     void notifyDataActivityForSubscriber(in int subId, int state);
     void notifyDataConnection(int state, boolean isDataConnectivityPossible,
@@ -63,8 +65,10 @@
     @UnsupportedAppUsage
     void notifyDataConnectionFailed(String apnType);
     void notifyDataConnectionFailedForSubscriber(int phoneId, int subId, String apnType);
+    @UnsupportedAppUsage(maxTargetSdk = 28)
     void notifyCellLocation(in Bundle cellLocation);
     void notifyCellLocationForSubscriber(in int subId, in Bundle cellLocation);
+    @UnsupportedAppUsage(maxTargetSdk = 28)
     void notifyOtaspChanged(in int subId, in int otaspMode);
     @UnsupportedAppUsage
     void notifyCellInfo(in List<CellInfo> cellInfo);
diff --git a/core/java/com/android/internal/util/BitUtils.java b/core/java/com/android/internal/util/BitUtils.java
index 6158145..27d2cc2 100644
--- a/core/java/com/android/internal/util/BitUtils.java
+++ b/core/java/com/android/internal/util/BitUtils.java
@@ -68,9 +68,9 @@
         int[] result = new int[size];
         int index = 0;
         int bitPos = 0;
-        while (val > 0) {
+        while (val != 0) {
             if ((val & 1) == 1) result[index++] = bitPos;
-            val = val >> 1;
+            val = val >>> 1;
             bitPos++;
         }
         return result;
@@ -79,7 +79,7 @@
     public static long packBits(int[] bits) {
         long packed = 0;
         for (int b : bits) {
-            packed |= (1 << b);
+            packed |= (1L << b);
         }
         return packed;
     }
diff --git a/core/java/com/android/internal/util/MemInfoReader.java b/core/java/com/android/internal/util/MemInfoReader.java
index 630916e..c1d129b 100644
--- a/core/java/com/android/internal/util/MemInfoReader.java
+++ b/core/java/com/android/internal/util/MemInfoReader.java
@@ -24,6 +24,10 @@
     final long[] mInfos = new long[Debug.MEMINFO_COUNT];
 
     @UnsupportedAppUsage
+    public MemInfoReader() {
+    }
+
+    @UnsupportedAppUsage
     public void readMemInfo() {
         // Permit disk reads here, as /proc/meminfo isn't really "on
         // disk" and should be fast.  TODO: make BlockGuard ignore
diff --git a/core/java/com/android/internal/view/BaseIWindow.java b/core/java/com/android/internal/view/BaseIWindow.java
index f9cdf3d..f5a9fde 100644
--- a/core/java/com/android/internal/view/BaseIWindow.java
+++ b/core/java/com/android/internal/view/BaseIWindow.java
@@ -16,9 +16,11 @@
 
 package com.android.internal.view;
 
+import android.annotation.UnsupportedAppUsage;
 import android.graphics.Point;
 import android.graphics.Rect;
 import android.hardware.input.InputManager;
+import android.os.Build;
 import android.os.Bundle;
 import android.os.ParcelFileDescriptor;
 import android.os.RemoteException;
@@ -37,6 +39,10 @@
     private IWindowSession mSession;
     public int mSeq;
 
+    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
+    public BaseIWindow() {
+    }
+
     public void setSession(IWindowSession session) {
         mSession = session;
     }
diff --git a/core/java/com/android/internal/widget/PointerLocationView.java b/core/java/com/android/internal/widget/PointerLocationView.java
index d48034b..1f5b070 100644
--- a/core/java/com/android/internal/widget/PointerLocationView.java
+++ b/core/java/com/android/internal/widget/PointerLocationView.java
@@ -91,6 +91,10 @@
         private VelocityTracker.Estimator mEstimator = new VelocityTracker.Estimator();
         private VelocityTracker.Estimator mAltEstimator = new VelocityTracker.Estimator();
 
+        @UnsupportedAppUsage
+        public PointerState() {
+        }
+
         public void clearTrace() {
             mTraceCount = 0;
         }
diff --git a/core/java/com/android/server/net/BaseNetworkObserver.java b/core/java/com/android/server/net/BaseNetworkObserver.java
index a0740ee..e1a10a5 100644
--- a/core/java/com/android/server/net/BaseNetworkObserver.java
+++ b/core/java/com/android/server/net/BaseNetworkObserver.java
@@ -28,6 +28,11 @@
  * @hide
  */
 public class BaseNetworkObserver extends INetworkManagementEventObserver.Stub {
+
+    @UnsupportedAppUsage
+    public BaseNetworkObserver() {
+    }
+
     @Override
     public void interfaceStatusChanged(String iface, boolean up) {
         // default no-op
diff --git a/core/java/com/google/android/util/AbstractMessageParser.java b/core/java/com/google/android/util/AbstractMessageParser.java
index 9d12f82..00fcb16 100644
--- a/core/java/com/google/android/util/AbstractMessageParser.java
+++ b/core/java/com/google/android/util/AbstractMessageParser.java
@@ -17,13 +17,14 @@
 package com.google.android.util;
 
 import android.annotation.UnsupportedAppUsage;
+
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-import java.util.Set;
-import java.util.List;
 
 /**
  *
@@ -653,8 +654,9 @@
 
   /** Represents a unit of parsed output. */
   public static abstract class Token {
+    @UnsupportedAppUsage(implicitMember =
+            "values()[Lcom/google/android/util/AbstractMessageParser$Token$Type;")
     public enum Type {
-
       @UnsupportedAppUsage
       HTML ("html"),
       @UnsupportedAppUsage
diff --git a/core/jni/Android.bp b/core/jni/Android.bp
index 486d24c..7b61277 100644
--- a/core/jni/Android.bp
+++ b/core/jni/Android.bp
@@ -87,6 +87,7 @@
         "android_text_Hyphenator.cpp",
         "android_os_Debug.cpp",
         "android_os_GraphicsEnvironment.cpp",
+        "android_os_HidlMemory.cpp",
         "android_os_HidlSupport.cpp",
         "android_os_HwBinder.cpp",
         "android_os_HwBlob.cpp",
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index 9a90555..2383731 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -191,6 +191,7 @@
 extern int register_android_os_Trace(JNIEnv* env);
 extern int register_android_os_FileObserver(JNIEnv *env);
 extern int register_android_os_UEventObserver(JNIEnv* env);
+extern int register_android_os_HidlMemory(JNIEnv* env);
 extern int register_android_os_MemoryFile(JNIEnv* env);
 extern int register_android_os_SharedMemory(JNIEnv* env);
 extern int register_android_net_LocalSocketImpl(JNIEnv* env);
@@ -667,6 +668,8 @@
     char dex2oatImageCompilerFilterBuf[sizeof("--compiler-filter=")-1 + PROPERTY_VALUE_MAX];
     char dex2oatThreadsBuf[sizeof("-j")-1 + PROPERTY_VALUE_MAX];
     char dex2oatThreadsImageBuf[sizeof("-j")-1 + PROPERTY_VALUE_MAX];
+    char dex2oatCpuSetBuf[sizeof("--cpu-set=")-1 + PROPERTY_VALUE_MAX];
+    char dex2oatCpuSetImageBuf[sizeof("--cpu-set=")-1 + PROPERTY_VALUE_MAX];
     char dex2oat_isa_variant_key[PROPERTY_KEY_MAX];
     char dex2oat_isa_variant[sizeof("--instruction-set-variant=") -1 + PROPERTY_VALUE_MAX];
     char dex2oat_isa_features_key[PROPERTY_KEY_MAX];
@@ -956,6 +959,10 @@
     parseCompilerOption("dalvik.vm.dex2oat-threads", dex2oatThreadsBuf, "-j", "-Xcompiler-option");
     parseCompilerOption("dalvik.vm.image-dex2oat-threads", dex2oatThreadsImageBuf, "-j",
                         "-Ximage-compiler-option");
+    parseCompilerOption("dalvik.vm.dex2oat-cpu-set", dex2oatCpuSetBuf, "--cpu-set=",
+                        "-Xcompiler-option");
+    parseCompilerOption("dalvik.vm.image-dex2oat-cpu-set", dex2oatCpuSetImageBuf, "--cpu-set=",
+                        "-Ximage-compiler-option");
 
     // The runtime will compile a boot image, when necessary, not using installd. Thus, we need to
     // pass the instruction-set-features/variant as an image-compiler-option.
@@ -1468,6 +1475,7 @@
     REG_JNI(register_android_os_SystemProperties),
     REG_JNI(register_android_os_Binder),
     REG_JNI(register_android_os_Parcel),
+    REG_JNI(register_android_os_HidlMemory),
     REG_JNI(register_android_os_HidlSupport),
     REG_JNI(register_android_os_HwBinder),
     REG_JNI(register_android_os_HwBlob),
diff --git a/core/jni/android_os_HidlMemory.cpp b/core/jni/android_os_HidlMemory.cpp
new file mode 100644
index 0000000..69e4818
--- /dev/null
+++ b/core/jni/android_os_HidlMemory.cpp
@@ -0,0 +1,162 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+#include "android_os_HidlMemory.h"
+#include "core_jni_helpers.h"
+#include "android_os_NativeHandle.h"
+
+#define PACKAGE_PATH    "android/os"
+#define CLASS_NAME      "HidlMemory"
+#define CLASS_PATH      PACKAGE_PATH "/" CLASS_NAME
+
+namespace android {
+
+namespace {
+
+static struct {
+    jclass clazz;
+    jfieldID nativeContext;  // long
+    jmethodID constructor;   // HidlMemory(String, long, NativeHandle)
+    jmethodID getName;       // String HidlMemory.getName()
+    jmethodID getSize;       // int HidlMemory.getSize()
+    jmethodID getHandle;     // NativeHandle HidlMemory.getHandle()
+} gFields;
+
+std::string stringFromJava(JNIEnv* env, jstring jstr) {
+    ScopedUtfChars s(env, jstr);
+    return s.c_str();
+}
+
+jstring stringToJava(JNIEnv* env, const std::string& cstr) {
+    return env->NewStringUTF(cstr.c_str());
+}
+
+static void nativeFinalize(JNIEnv* env, jobject jobj) {
+    jlong jNativeContext = env->GetLongField(jobj, gFields.nativeContext);
+    JHidlMemory* native = reinterpret_cast<JHidlMemory*>(jNativeContext);
+    delete native;
+}
+
+static JNINativeMethod gMethods[] = {
+        {"nativeFinalize", "()V", (void*) nativeFinalize},
+};
+
+}  // namespace
+
+JHidlMemory::~JHidlMemory() {
+    if (mObj) {
+        // Must manually delete the underlying handle - hidl_memory doesn't own
+        // it.
+        native_handle_delete(const_cast<native_handle_t*>(mObj->handle()));
+    }
+}
+
+/* static */ const hardware::hidl_memory* JHidlMemory::fromJava(JNIEnv* env,
+                                                                jobject jobj) {
+    // Try to get the result from cache.
+    env->MonitorEnter(jobj);
+    JHidlMemory* obj = getNativeContext(env, jobj);
+    if (!obj->mObj) {
+        // Create and cache.
+        obj->mObj = javaToNative(env, jobj);
+    }
+    env->MonitorExit(jobj);
+    return obj->mObj.get();
+}
+
+/* static */ jobject JHidlMemory::toJava(JNIEnv* env,
+                                         const hardware::hidl_memory& cobj) {
+    if (cobj.size() > std::numeric_limits<jlong>::max()) {
+        return nullptr;
+    }
+    jstring jname = stringToJava(env, cobj.name());
+    jlong jsize = static_cast<jlong>(cobj.size());
+    jobject jhandle =
+            JNativeHandle::MakeJavaNativeHandleObj(env, cobj.handle());
+
+    // We're sharing the handle of cobj, so the Java instance doesn't own it.
+    return env->NewObject(gFields.clazz,
+                          gFields.constructor,
+                          jname,
+                          jsize,
+                          jhandle,
+                          false);
+}
+
+/* static */ std::unique_ptr<hardware::hidl_memory> JHidlMemory::javaToNative(
+        JNIEnv* env,
+        jobject jobj) {
+    jstring jname =
+            static_cast<jstring>(env->CallObjectMethod(jobj, gFields.getName));
+    jlong jsize = env->CallLongMethod(jobj, gFields.getSize);
+    jobject jhandle = env->CallObjectMethod(jobj, gFields.getHandle);
+
+    if (jsize > std::numeric_limits<size_t>::max()) {
+        return nullptr;
+    }
+
+    std::string cname = stringFromJava(env, jname);
+    size_t csize = jsize;
+    // We created the handle here, we're responsible to call
+    // native_handle_delete() on it. However, we don't assume ownership of the
+    // underlying fd, so we shouldn't call native_handle_close() on it.
+    native_handle_t* chandle = JNativeHandle::MakeCppNativeHandle(env, jhandle,
+                                                                  nullptr);
+    // hidl_memory doesn't take ownership of the handle here, so won't delete
+    // or close it.
+    return std::make_unique<hardware::hidl_memory>(cname, chandle, csize);
+}
+
+/* static */ JHidlMemory* JHidlMemory::getNativeContext(JNIEnv* env,
+                                                        jobject jobj) {
+    env->MonitorEnter(jobj);
+    jlong jNativeContext = env->GetLongField(jobj, gFields.nativeContext);
+    JHidlMemory* native = reinterpret_cast<JHidlMemory*>(jNativeContext);
+    if (!native) {
+        native = new JHidlMemory();
+        env->SetLongField(jobj,
+                          gFields.nativeContext,
+                          reinterpret_cast<jlong>(native));
+    }
+    env->MonitorExit(jobj);
+    return native;
+}
+
+int register_android_os_HidlMemory(JNIEnv* env) {
+    jclass clazz = FindClassOrDie(env, CLASS_PATH);
+    gFields.clazz = MakeGlobalRefOrDie(env, clazz);
+
+    gFields.nativeContext = GetFieldIDOrDie(env, clazz, "mNativeContext", "J");
+
+    gFields.constructor = GetMethodIDOrDie(env,
+                                           clazz,
+                                           "<init>",
+                                           "(Ljava/lang/String;JL" PACKAGE_PATH "/NativeHandle;)V");
+    gFields.getName =
+            GetMethodIDOrDie(env, clazz, "getName", "()Ljava/lang/String;");
+    gFields.getSize = GetMethodIDOrDie(env, clazz, "getSize", "()J");
+    gFields.getHandle = GetMethodIDOrDie(env,
+                                         clazz,
+                                         "getHandle",
+                                         "()L" PACKAGE_PATH "/NativeHandle;");
+
+    RegisterMethodsOrDie(env, CLASS_PATH, gMethods, NELEM(gMethods));
+
+    return 0;
+}
+
+}  // namespace android
+
diff --git a/core/jni/android_os_HidlMemory.h b/core/jni/android_os_HidlMemory.h
new file mode 100644
index 0000000..993a132
--- /dev/null
+++ b/core/jni/android_os_HidlMemory.h
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+#ifndef ANDROID_OS_HIDL_MEMORY_H
+#define ANDROID_OS_HIDL_MEMORY_H
+
+#include <jni.h>
+#include <hidl/HidlSupport.h>
+
+namespace android {
+
+// A utility class for handling the android.os.HidlMemory class from JNI code.
+class JHidlMemory final {
+ public:
+    // Convert an android.os.HidlMemory object to its C++ counterpart,
+    // hardware::hidl_memory.
+    // No duplication of file descriptors is performed.
+    // The returned reference is owned by the underlying Java object.
+    // Returns nullptr if conversion cannot be done.
+    static const hardware::hidl_memory* fromJava(JNIEnv* env,
+                                                 jobject jobj);
+
+    // Convert a hardware::hidl_memory object to its Java counterpart,
+    // android.os.HidlMemory.
+    // No duplication of file descriptors is performed.
+    // Returns nullptr if conversion cannot be done.
+    static jobject toJava(JNIEnv* env,
+                          const hardware::hidl_memory& cobj);
+
+    ~JHidlMemory();
+
+ private:
+    // We store an instance of type JHidlMemory attached to every Java object
+    // of type HidlMemory, for holding any native context we need. This instance
+    // will get deleted when finalize() is called on the Java object.
+    // This method either extracts the native object from the Java object, or
+    // attached a new one if it doesn't yet exist.
+    static JHidlMemory* getNativeContext(JNIEnv* env, jobject obj);
+
+    // Convert an android.os.HidlMemory object to its C++ counterpart,
+    // hardware::hidl_memory.
+    // No duplication of file descriptors is performed.
+    // IMPORTANT: caller is responsible to native_handle_delete() the handle of the
+    // returned object. This is due to an underlying limitation of the hidl_handle
+    // type, where ownership of the handle implies ownership of the fd and we don't
+    // want the latter.
+    // Returns nullptr if conversion cannot be done.
+    static std::unique_ptr<hardware::hidl_memory> javaToNative(JNIEnv* env,
+                                                               jobject jobj);
+
+    std::unique_ptr<hardware::hidl_memory> mObj;
+};
+
+int register_android_os_HidlMemory(JNIEnv* env);
+
+}  // namespace android
+
+#endif //ANDROID_OS_HIDL_MEMORY_H
diff --git a/core/jni/android_os_HwBlob.cpp b/core/jni/android_os_HwBlob.cpp
index e5b72ca..0fb2911 100644
--- a/core/jni/android_os_HwBlob.cpp
+++ b/core/jni/android_os_HwBlob.cpp
@@ -340,6 +340,14 @@
     return env->NewStringUTF(s->c_str());
 }
 
+static jlong JHwBlob_native_getFieldHandle(JNIEnv* env,
+                                           jobject thiz,
+                                           jlong offset) {
+    sp<JHwBlob> blob = JHwBlob::GetNativeContext(env, thiz);
+
+    return reinterpret_cast<jlong>(blob->data()) + offset;
+}
+
 #define DEFINE_BLOB_ARRAY_COPIER(Suffix,Type,NewType)                          \
 static void JHwBlob_native_copyTo ## Suffix ## Array(                          \
         JNIEnv *env,                                                           \
@@ -593,6 +601,7 @@
     { "getFloat", "(J)F", (void *)JHwBlob_native_getFloat },
     { "getDouble", "(J)D", (void *)JHwBlob_native_getDouble },
     { "getString", "(J)Ljava/lang/String;", (void *)JHwBlob_native_getString },
+    { "getFieldHandle", "(J)J", (void*) JHwBlob_native_getFieldHandle},
 
     { "copyToBoolArray", "(J[ZI)V", (void *)JHwBlob_native_copyToBoolArray },
     { "copyToInt8Array", "(J[BI)V", (void *)JHwBlob_native_copyToInt8Array },
diff --git a/core/jni/android_os_HwParcel.cpp b/core/jni/android_os_HwParcel.cpp
index f437a78..151dbfc 100644
--- a/core/jni/android_os_HwParcel.cpp
+++ b/core/jni/android_os_HwParcel.cpp
@@ -20,6 +20,7 @@
 
 #include "android_os_HwParcel.h"
 
+#include "android_os_HidlMemory.h"
 #include "android_os_HwBinder.h"
 #include "android_os_HwBlob.h"
 #include "android_os_NativeHandle.h"
@@ -27,6 +28,8 @@
 
 #include <nativehelper/JNIHelp.h>
 #include <android_runtime/AndroidRuntime.h>
+#include <hidl/HidlBinderSupport.h>
+#include <hidl/HidlSupport.h>
 #include <hidl/HidlTransportSupport.h>
 #include <hidl/Status.h>
 #include <nativehelper/ScopedLocalRef.h>
@@ -650,6 +653,36 @@
     signalExceptionForError(env, err);
 }
 
+static void JHwParcel_native_writeHidlMemory(
+    JNIEnv *env, jobject thiz, jobject jmem) {
+
+    if (jmem == nullptr) {
+        jniThrowException(env, "java/lang/NullPointerException", nullptr);
+        return;
+    }
+
+    status_t err = OK;
+
+    // Convert the Java object to its C++ counterpart.
+    const hardware::hidl_memory* cmem = JHidlMemory::fromJava(env, jmem);
+    if (cmem == nullptr) {
+        err = BAD_VALUE;
+    }
+
+    if (err == OK) {
+        // Write it to the parcel.
+        hardware::Parcel* parcel =
+            JHwParcel::GetNativeContext(env, thiz)->getParcel();
+
+        size_t parentHandle;
+        err = parcel->writeBuffer(cmem, sizeof(*cmem), &parentHandle);
+        if (err == OK) {
+            err = hardware::writeEmbeddedToParcel(*cmem, parcel, parentHandle, 0);
+        }
+    }
+    signalExceptionForError(env, err);
+}
+
 static jstring MakeStringObjFromHidlString(JNIEnv *env, const hidl_string &s) {
     String16 utf16String(s.c_str(), s.size());
 
@@ -877,6 +910,74 @@
     return objArray;
 }
 
+static status_t readEmbeddedHidlMemory(JNIEnv* env,
+                                       hardware::Parcel* parcel,
+                                       const hardware::hidl_memory& mem,
+                                       size_t parentHandle,
+                                       size_t parentOffset,
+                                       jobject* result) {
+    status_t err = hardware::readEmbeddedFromParcel(mem,
+                                                    *parcel,
+                                                    parentHandle,
+                                                    parentOffset);
+    if (err == OK) {
+        // Convert to Java.
+        *result = JHidlMemory::toJava(env, mem);
+        if (*result == nullptr) {
+            err = BAD_VALUE;
+        }
+    }
+    return err;
+}
+
+static jobject JHwParcel_native_readHidlMemory(
+        JNIEnv* env, jobject thiz) {
+    hardware::Parcel* parcel =
+            JHwParcel::GetNativeContext(env, thiz)->getParcel();
+
+    jobject result = nullptr;
+
+    const hardware::hidl_memory* mem;
+    size_t parentHandle;
+
+    status_t err = parcel->readBuffer(sizeof(*mem),
+                                      &parentHandle,
+                                      reinterpret_cast<const void**>(&mem));
+    if (err == OK) {
+        err = readEmbeddedHidlMemory(env,
+                                     parcel,
+                                     *mem,
+                                     parentHandle,
+                                     0,
+                                     &result);
+    }
+
+    signalExceptionForError(env, err);
+    return result;
+}
+
+static jobject JHwParcel_native_readEmbeddedHidlMemory(
+        JNIEnv* env,
+        jobject thiz,
+        jlong fieldHandle,
+        jlong parentHandle,
+        jlong offset) {
+    hardware::Parcel* parcel =
+            JHwParcel::GetNativeContext(env, thiz)->getParcel();
+
+    jobject result = nullptr;
+    const hardware::hidl_memory* mem =
+            reinterpret_cast<const hardware::hidl_memory*>(fieldHandle);
+    status_t err = readEmbeddedHidlMemory(env,
+                                          parcel,
+                                          *mem,
+                                          parentHandle,
+                                          offset,
+                                          &result);
+    signalExceptionForError(env, err);
+    return result;
+}
+
 static jobject JHwParcel_native_readStrongBinder(JNIEnv *env, jobject thiz) {
     hardware::Parcel *parcel =
         JHwParcel::GetNativeContext(env, thiz)->getParcel();
@@ -1075,6 +1176,14 @@
     { "release", "()V",
         (void *)JHwParcel_native_release },
 
+    {"writeHidlMemory", "(L" PACKAGE_PATH "/HidlMemory;)V",
+     (void*) JHwParcel_native_writeHidlMemory},
+
+    {"readHidlMemory", "()L" PACKAGE_PATH "/HidlMemory;",
+     (void*) JHwParcel_native_readHidlMemory},
+
+    {"readEmbeddedHidlMemory", "(JJJ)L" PACKAGE_PATH "/HidlMemory;",
+     (void*) JHwParcel_native_readEmbeddedHidlMemory},
 };
 
 namespace android {
diff --git a/core/jni/android_os_SystemProperties.cpp b/core/jni/android_os_SystemProperties.cpp
index 87f498a..7f3b32e 100644
--- a/core/jni/android_os_SystemProperties.cpp
+++ b/core/jni/android_os_SystemProperties.cpp
@@ -17,9 +17,13 @@
 
 #define LOG_TAG "SysPropJNI"
 
+#include <utility>
+#include <optional>
+
 #include "android-base/logging.h"
+#include "android-base/parsebool.h"
+#include "android-base/parseint.h"
 #include "android-base/properties.h"
-#include "cutils/properties.h"
 #include "utils/misc.h"
 #include <utils/Log.h>
 #include "jni.h"
@@ -28,86 +32,171 @@
 #include <nativehelper/ScopedPrimitiveArray.h>
 #include <nativehelper/ScopedUtfChars.h>
 
-namespace android
-{
+#if defined(__BIONIC__)
+# include <sys/system_properties.h>
+#else
+struct prop_info;
+#endif
 
+namespace android {
 namespace {
 
-template <typename T, typename Handler>
-T ConvertKeyAndForward(JNIEnv *env, jstring keyJ, T defJ, Handler handler) {
-    std::string key;
-    {
-        // Scope the String access. If the handler can throw an exception,
-        // releasing the string characters late would trigger an abort.
-        ScopedUtfChars key_utf(env, keyJ);
-        if (key_utf.c_str() == nullptr) {
-            return defJ;
-        }
-        key = key_utf.c_str();  // This will make a copy, but we can't avoid
-                                // with the existing interface in
-                                // android::base.
-    }
-    return handler(key, defJ);
+using android::base::ParseBoolResult;
+
+template<typename Functor>
+void ReadProperty(const prop_info* prop, Functor&& functor)
+{
+#if defined(__BIONIC__)
+    auto thunk = [](void* cookie,
+                    const char* /*name*/,
+                    const char* value,
+                    uint32_t /*serial*/) {
+        std::forward<Functor>(*static_cast<Functor*>(cookie))(value);
+    };
+    __system_property_read_callback(prop, thunk, &functor);
+#else
+    LOG(FATAL) << "fast property access supported only on device";
+#endif
 }
 
-jstring SystemProperties_getSS(JNIEnv *env, jclass clazz, jstring keyJ,
+template<typename Functor>
+void ReadProperty(JNIEnv* env, jstring keyJ, Functor&& functor)
+{
+    ScopedUtfChars key(env, keyJ);
+    if (!key.c_str()) {
+        return;
+    }
+#if defined(__BIONIC__)
+    const prop_info* prop = __system_property_find(key.c_str());
+    if (!prop) {
+        return;
+    }
+    ReadProperty(prop, std::forward<Functor>(functor));
+#else
+    std::forward<Functor>(functor)(
+        android::base::GetProperty(key.c_str(), "").c_str());
+#endif
+}
+
+jstring SystemProperties_getSS(JNIEnv* env, jclass clazz, jstring keyJ,
                                jstring defJ)
 {
-    // Using ConvertKeyAndForward is sub-optimal for copying the key string,
-    // but improves reuse and reasoning over code.
-    auto handler = [&](const std::string& key, jstring defJ) {
-        std::string prop_val = android::base::GetProperty(key, "");
-        if (!prop_val.empty()) {
-            return env->NewStringUTF(prop_val.c_str());
-        };
-        if (defJ != nullptr) {
-            return defJ;
+    jstring ret = defJ;
+    ReadProperty(env, keyJ, [&](const char* value) {
+        if (value[0]) {
+            ret = env->NewStringUTF(value);
         }
-        // This function is specified to never return null (or have an
-        // exception pending).
-        return env->NewStringUTF("");
-    };
-    return ConvertKeyAndForward(env, keyJ, defJ, handler);
-}
-
-jstring SystemProperties_getS(JNIEnv *env, jclass clazz, jstring keyJ)
-{
-    return SystemProperties_getSS(env, clazz, keyJ, nullptr);
+    });
+    if (ret == nullptr && !env->ExceptionCheck()) {
+      ret = env->NewStringUTF("");  // Legacy behavior
+    }
+    return ret;
 }
 
 template <typename T>
 T SystemProperties_get_integral(JNIEnv *env, jclass, jstring keyJ,
                                        T defJ)
 {
-    auto handler = [](const std::string& key, T defV) {
-        return android::base::GetIntProperty<T>(key, defV);
-    };
-    return ConvertKeyAndForward(env, keyJ, defJ, handler);
+    T ret = defJ;
+    ReadProperty(env, keyJ, [&](const char* value) {
+        android::base::ParseInt<T>(value, &ret);
+    });
+    return ret;
+}
+
+static jboolean jbooleanFromParseBoolResult(ParseBoolResult parseResult, jboolean defJ) {
+    jboolean ret;
+    switch (parseResult) {
+        case ParseBoolResult::kError:
+            ret = defJ;
+            break;
+        case ParseBoolResult::kFalse:
+            ret = JNI_FALSE;
+            break;
+        case ParseBoolResult::kTrue:
+            ret = JNI_TRUE;
+            break;
+    }
+    return ret;
 }
 
 jboolean SystemProperties_get_boolean(JNIEnv *env, jclass, jstring keyJ,
                                       jboolean defJ)
 {
-    auto handler = [](const std::string& key, jboolean defV) -> jboolean {
-        bool result = android::base::GetBoolProperty(key, defV);
-        return result ? JNI_TRUE : JNI_FALSE;
-    };
-    return ConvertKeyAndForward(env, keyJ, defJ, handler);
+    ParseBoolResult parseResult = ParseBoolResult::kError;
+    ReadProperty(env, keyJ, [&](const char* value) {
+        parseResult = android::base::ParseBool(value);
+    });
+    return jbooleanFromParseBoolResult(parseResult, defJ);
+}
+
+jlong SystemProperties_find(JNIEnv* env, jclass, jstring keyJ)
+{
+#if defined(__BIONIC__)
+    ScopedUtfChars key(env, keyJ);
+    if (!key.c_str()) {
+        return 0;
+    }
+    const prop_info* prop = __system_property_find(key.c_str());
+    return reinterpret_cast<jlong>(prop);
+#else
+    LOG(FATAL) << "fast property access supported only on device";
+    __builtin_unreachable();  // Silence warning
+#endif
+}
+
+jstring SystemProperties_getH(JNIEnv* env, jclass clazz, jlong propJ)
+{
+    jstring ret;
+    auto prop = reinterpret_cast<const prop_info*>(propJ);
+    ReadProperty(prop, [&](const char* value) {
+        ret = env->NewStringUTF(value);
+    });
+    return ret;
+}
+
+template <typename T>
+T SystemProperties_get_integralH(CRITICAL_JNI_PARAMS_COMMA jlong propJ, T defJ)
+{
+    T ret = defJ;
+    auto prop = reinterpret_cast<const prop_info*>(propJ);
+    ReadProperty(prop, [&](const char* value) {
+        android::base::ParseInt<T>(value, &ret);
+    });
+    return ret;
+}
+
+jboolean SystemProperties_get_booleanH(CRITICAL_JNI_PARAMS_COMMA jlong propJ, jboolean defJ)
+{
+    ParseBoolResult parseResult = ParseBoolResult::kError;
+    auto prop = reinterpret_cast<const prop_info*>(propJ);
+    ReadProperty(prop, [&](const char* value) {
+        parseResult = android::base::ParseBool(value);
+    });
+    return jbooleanFromParseBoolResult(parseResult, defJ);
 }
 
 void SystemProperties_set(JNIEnv *env, jobject clazz, jstring keyJ,
                           jstring valJ)
 {
-    auto handler = [&](const std::string& key, bool) {
-        std::string val;
-        if (valJ != nullptr) {
-            ScopedUtfChars key_utf(env, valJ);
-            val = key_utf.c_str();
+    ScopedUtfChars key(env, keyJ);
+    if (!key.c_str()) {
+        return;
+    }
+    std::optional<ScopedUtfChars> value;
+    if (valJ != nullptr) {
+        value.emplace(env, valJ);
+        if (!value->c_str()) {
+            return;
         }
-        return android::base::SetProperty(key, val);
-    };
-    if (!ConvertKeyAndForward(env, keyJ, true, handler)) {
-        // Must have been a failure in SetProperty.
+    }
+    bool success;
+#if defined(__BIONIC__)
+    success = !__system_property_set(key.c_str(), value ? value->c_str() : "");
+#else
+    success = android::base::SetProperty(key.c_str(), value ? value->c_str() : "");
+#endif
+    if (!success) {
         jniThrowException(env, "java/lang/RuntimeException",
                           "failed to set system property (check logcat for reason)");
     }
@@ -157,8 +246,6 @@
 int register_android_os_SystemProperties(JNIEnv *env)
 {
     const JNINativeMethod method_table[] = {
-        { "native_get", "(Ljava/lang/String;)Ljava/lang/String;",
-          (void*) SystemProperties_getS },
         { "native_get",
           "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;",
           (void*) SystemProperties_getSS },
@@ -168,6 +255,18 @@
           (void*) SystemProperties_get_integral<jlong> },
         { "native_get_boolean", "(Ljava/lang/String;Z)Z",
           (void*) SystemProperties_get_boolean },
+        { "native_find",
+          "(Ljava/lang/String;)J",
+          (void*) SystemProperties_find },
+        { "native_get",
+          "(J)Ljava/lang/String;",
+          (void*) SystemProperties_getH },
+        { "native_get_int", "(JI)I",
+          (void*) SystemProperties_get_integralH<jint> },
+        { "native_get_long", "(JJ)J",
+          (void*) SystemProperties_get_integralH<jlong> },
+        { "native_get_boolean", "(JZ)Z",
+          (void*) SystemProperties_get_booleanH },
         { "native_set", "(Ljava/lang/String;Ljava/lang/String;)V",
           (void*) SystemProperties_set },
         { "native_add_change_callback", "()V",
@@ -179,4 +278,4 @@
                                 method_table, NELEM(method_table));
 }
 
-};
+}  // namespace android
diff --git a/core/jni/android_util_Binder.cpp b/core/jni/android_util_Binder.cpp
index fe7e508..a236f31 100644
--- a/core/jni/android_util_Binder.cpp
+++ b/core/jni/android_util_Binder.cpp
@@ -30,12 +30,13 @@
 #include <unistd.h>
 
 #include <android-base/stringprintf.h>
-#include <binder/IInterface.h>
-#include <binder/IServiceManager.h>
-#include <binder/IPCThreadState.h>
-#include <binder/Parcel.h>
 #include <binder/BpBinder.h>
+#include <binder/IInterface.h>
+#include <binder/IPCThreadState.h>
+#include <binder/IServiceManager.h>
+#include <binder/Parcel.h>
 #include <binder/ProcessState.h>
+#include <binder/Stability.h>
 #include <cutils/atomic.h>
 #include <log/log.h>
 #include <utils/KeyedVector.h>
@@ -459,6 +460,9 @@
         sp<JavaBBinder> b = mBinder.promote();
         if (b == NULL) {
             b = new JavaBBinder(env, obj);
+            if (mVintf) {
+                ::android::internal::Stability::markVintf(b.get());
+            }
             mBinder = b;
             ALOGV("Creating JavaBinder %p (refs %p) for Object %p, weakCount=%" PRId32 "\n",
                  b.get(), b->getWeakRefs(), obj, b->getWeakRefs()->getWeakCount());
@@ -473,9 +477,18 @@
         return mBinder.promote();
     }
 
+    void markVintf() {
+        mVintf = true;
+    }
+
 private:
     Mutex           mLock;
     wp<JavaBBinder> mBinder;
+
+    // in the future, we might condense this into int32_t stability, or if there
+    // is too much binder state here, we can think about making JavaBBinder an
+    // sp here (avoid recreating it)
+    bool            mVintf = false;
 };
 
 // ----------------------------------------------------------------------------
@@ -962,6 +975,12 @@
     IPCThreadState::self()->restoreCallingWorkSource(token);
 }
 
+static void android_os_Binder_markVintfStability(JNIEnv* env, jobject clazz) {
+    JavaBBinderHolder* jbh =
+        (JavaBBinderHolder*) env->GetLongField(clazz, gBinderOffsets.mObject);
+    jbh->markVintf();
+}
+
 static void android_os_Binder_flushPendingCommands(JNIEnv* env, jobject clazz)
 {
     IPCThreadState::self()->flushCommands();
@@ -1038,6 +1057,7 @@
     // @CriticalNative
     { "clearCallingWorkSource", "()J", (void*)android_os_Binder_clearCallingWorkSource },
     { "restoreCallingWorkSource", "(J)V", (void*)android_os_Binder_restoreCallingWorkSource },
+    { "markVintfStability", "()V", (void*)android_os_Binder_markVintfStability},
     { "flushPendingCommands", "()V", (void*)android_os_Binder_flushPendingCommands },
     { "getNativeBBinderHolder", "()J", (void*)android_os_Binder_getNativeBBinderHolder },
     { "getNativeFinalizer", "()J", (void*)android_os_Binder_getNativeFinalizer },
diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp
index 1a81e3d..a3f5311 100644
--- a/core/jni/com_android_internal_os_Zygote.cpp
+++ b/core/jni/com_android_internal_os_Zygote.cpp
@@ -1108,7 +1108,7 @@
   UnsetChldSignalHandler();
 
   if (is_system_server) {
-    env->CallStaticVoidMethod(gZygoteClass, gCallPostForkSystemServerHooks);
+    env->CallStaticVoidMethod(gZygoteClass, gCallPostForkSystemServerHooks, runtime_flags);
     if (env->ExceptionCheck()) {
       fail_fn("Error calling post fork system server hooks.");
     }
@@ -1741,7 +1741,7 @@
   gZygoteClass = MakeGlobalRefOrDie(env, FindClassOrDie(env, kZygoteClassName));
   gCallPostForkSystemServerHooks = GetStaticMethodIDOrDie(env, gZygoteClass,
                                                           "callPostForkSystemServerHooks",
-                                                          "()V");
+                                                          "(I)V");
   gCallPostForkChildHooks = GetStaticMethodIDOrDie(env, gZygoteClass, "callPostForkChildHooks",
                                                    "(IZZLjava/lang/String;)V");
 
diff --git a/core/jni/core_jni_helpers.h b/core/jni/core_jni_helpers.h
index 16ef753..f03f427 100644
--- a/core/jni/core_jni_helpers.h
+++ b/core/jni/core_jni_helpers.h
@@ -22,6 +22,18 @@
 #include <nativehelper/scoped_utf_chars.h>
 #include <android_runtime/AndroidRuntime.h>
 
+// Host targets (layoutlib) do not differentiate between regular and critical native methods,
+// and they need all the JNI methods to have JNIEnv* and jclass/jobject as their first two arguments.
+// The following macro allows to have those arguments when compiling for host while omitting them when
+// compiling for Android.
+#ifdef __ANDROID__
+#define CRITICAL_JNI_PARAMS
+#define CRITICAL_JNI_PARAMS_COMMA
+#else
+#define CRITICAL_JNI_PARAMS JNIEnv*, jclass
+#define CRITICAL_JNI_PARAMS_COMMA JNIEnv*, jclass,
+#endif
+
 namespace android {
 
 // Defines some helpful functions.
diff --git a/core/jni/fd_utils.cpp b/core/jni/fd_utils.cpp
index 3704ccd..fd6984b 100644
--- a/core/jni/fd_utils.cpp
+++ b/core/jni/fd_utils.cpp
@@ -34,7 +34,9 @@
 // Static whitelist of open paths that the zygote is allowed to keep open.
 static const char* kPathWhitelist[] = {
   "/apex/com.android.conscrypt/javalib/conscrypt.jar",
+  "/apex/com.android.ipsec/javalib/ike.jar",
   "/apex/com.android.media/javalib/updatable-media.jar",
+  "/apex/com.android.sdkext/javalib/framework-sdkext.jar",
   "/dev/null",
   "/dev/socket/zygote",
   "/dev/socket/zygote_secondary",
diff --git a/core/proto/android/app/settings_enums.proto b/core/proto/android/app/settings_enums.proto
index c023438..6bf4c43 100644
--- a/core/proto/android/app/settings_enums.proto
+++ b/core/proto/android/app/settings_enums.proto
@@ -2401,4 +2401,11 @@
     // OS: Q
     // Note: Gear icon is shown next to gesture navigation preference and opens sensitivity dialog
     SETTINGS_GESTURE_NAV_BACK_SENSITIVITY_DLG = 1748;
+
+    // ---- End Q Constants, all Q constants go above this line ----
+
+    // OPEN: Settings > Developer Options > Platform Compat
+    // CATEGORY: SETTINGS
+    // OS: R
+    SETTINGS_PLATFORM_COMPAT_DASHBOARD = 1805;
 }
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 1f20d7a..b5c4ba0 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -108,6 +108,8 @@
 
     <protected-broadcast android:name="android.app.action.ENTER_CAR_MODE" />
     <protected-broadcast android:name="android.app.action.EXIT_CAR_MODE" />
+    <protected-broadcast android:name="android.app.action.ENTER_CAR_MODE_PRIORITIZED" />
+    <protected-broadcast android:name="android.app.action.EXIT_CAR_MODE_PRIORITIZED" />
     <protected-broadcast android:name="android.app.action.ENTER_DESK_MODE" />
     <protected-broadcast android:name="android.app.action.EXIT_DESK_MODE" />
     <protected-broadcast android:name="android.app.action.NEXT_ALARM_CLOCK_CHANGED" />
@@ -142,7 +144,7 @@
     <protected-broadcast android:name="android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED" />
     <protected-broadcast android:name="android.bluetooth.device.action.UUID" />
     <protected-broadcast android:name="android.bluetooth.device.action.MAS_INSTANCE" />
-    <protected-broadcast android:name="android.bluetooth.device.action.ALIAS_CHANGED" />
+    <protected-broadcast android:name="android.bluetooth.action.ALIAS_CHANGED" />
     <protected-broadcast android:name="android.bluetooth.device.action.FOUND" />
     <protected-broadcast android:name="android.bluetooth.device.action.CLASS_CHANGED" />
     <protected-broadcast android:name="android.bluetooth.device.action.ACL_CONNECTED" />
@@ -497,7 +499,6 @@
     <protected-broadcast android:name="android.telephony.action.CARRIER_CONFIG_CHANGED" />
     <protected-broadcast android:name="android.telephony.action.DEFAULT_SUBSCRIPTION_CHANGED" />
     <protected-broadcast android:name="android.telephony.action.DEFAULT_SMS_SUBSCRIPTION_CHANGED" />
-    <protected-broadcast android:name="android.telephony.action.OTA_EMERGENCY_NUMBER_DB_INSTALLED" />
     <protected-broadcast android:name="android.telephony.action.SECRET_CODE" />
     <protected-broadcast android:name="android.telephony.action.SHOW_VOICEMAIL_NOTIFICATION" />
     <protected-broadcast android:name="android.telephony.action.SUBSCRIPTION_PLANS_CHANGED" />
@@ -632,6 +633,11 @@
 
     <protected-broadcast android:name="android.intent.action.DEVICE_CUSTOMIZATION_READY" />
 
+    <!-- NETWORK_SET_TIME / NETWORK_SET_TIMEZONE moved from com.android.phone to system server.
+         They should ultimately be removed. -->
+    <protected-broadcast android:name="android.intent.action.NETWORK_SET_TIME" />
+    <protected-broadcast android:name="android.intent.action.NETWORK_SET_TIMEZONE" />
+
     <!-- For tether entitlement recheck-->
     <protected-broadcast
         android:name="com.android.server.connectivity.tethering.PROVISIONING_RECHECK_ALARM" />
@@ -1626,7 +1632,7 @@
          @hide This should only be used by Settings and SystemUI.
     -->
     <permission android:name="android.permission.NETWORK_SETTINGS"
-        android:protectionLevel="signature" />
+        android:protectionLevel="signature|telephony" />
 
     <!-- Allows SetupWizard to call methods in Networking services
          <p>Not for use by any other third-party or privileged applications.
@@ -2146,12 +2152,12 @@
 
     <!-- Must be required by a telephony data service to ensure that only the
          system can bind to it.
-         <p>Protection level: signature
+         <p>Protection level: signature|telephony
          @SystemApi
          @hide
     -->
     <permission android:name="android.permission.BIND_TELEPHONY_DATA_SERVICE"
-        android:protectionLevel="signature" />
+        android:protectionLevel="signature|telephony" />
 
     <!-- Must be required by a NetworkService to ensure that only the
          system can bind to it.
@@ -2172,11 +2178,11 @@
 
     <!-- @SystemApi Must be required by an EuiccService to ensure that only the system can bind to
          it.
-         <p>Protection level: signature
+         <p>Protection level: signature|telephony
          @hide
     -->
     <permission android:name="android.permission.BIND_EUICC_SERVICE"
-                android:protectionLevel="signature" />
+                android:protectionLevel="signature|telephony" />
 
     <!-- ================================== -->
     <!-- Permissions for sdcard interaction -->
@@ -2956,7 +2962,7 @@
          @hide
     -->
     <permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW"
-        android:protectionLevel="signature" />
+        android:protectionLevel="signature|telephony" />
 
     <!-- @SystemApi Allows an application to use
          {@link android.view.WindowManager.LayoutsParams#SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS}
@@ -3736,7 +3742,7 @@
         @hide
     -->
    <permission android:name="android.permission.DEVICE_POWER"
-        android:protectionLevel="signature" />
+        android:protectionLevel="signature|telephony" />
 
     <!-- Allows toggling battery saver on the system.
          Superseded by DEVICE_POWER permission. @hide @SystemApi
@@ -3771,13 +3777,13 @@
          <p>Not for use by third-party applications.
     -->
     <permission android:name="android.permission.BROADCAST_SMS"
-        android:protectionLevel="signature" />
+        android:protectionLevel="signature|telephony" />
 
     <!-- Allows an application to broadcast a WAP PUSH receipt notification.
          <p>Not for use by third-party applications.
     -->
     <permission android:name="android.permission.BROADCAST_WAP_PUSH"
-        android:protectionLevel="signature" />
+        android:protectionLevel="signature|telephony" />
 
     <!-- @SystemApi Allows an application to broadcast privileged networking requests.
          <p>Not for use by third-party applications.
@@ -4339,6 +4345,21 @@
          it will be ignored.
         @hide -->
     <permission android:name="android.permission.MODIFY_DAY_NIGHT_MODE"
+      android:protectionLevel="signature|privileged" />
+
+    <!-- @SystemApi Allows entering or exiting car mode using a specified priority.
+        This permission is required to use UiModeManager while specifying a priority for the calling
+        app.  A device manufacturer uses this permission to prioritize the apps which can
+        potentially request to enter car-mode on a device to help establish the correct behavior
+        where multiple such apps are active at the same time.
+        @hide -->
+    <permission android:name="android.permission.ENTER_CAR_MODE_PRIORITIZED"
+                android:protectionLevel="signature|privileged" />
+
+    <!-- @SystemApi Required to receive ACTION_ENTER_CAR_MODE_PRIVILEGED or
+        ACTION_EXIT_CAR_MODE_PRIVILEGED.
+        @hide -->
+    <permission android:name="android.permission.HANDLE_CAR_MODE_CHANGES"
                 android:protectionLevel="signature|privileged" />
 
     <!-- The system process is explicitly the only one allowed to launch the
@@ -4392,13 +4413,13 @@
          {@link android.provider.BlockedNumberContract}.
          @hide -->
     <permission android:name="android.permission.READ_BLOCKED_NUMBERS"
-                android:protectionLevel="signature" />
+                android:protectionLevel="signature|telephony" />
 
     <!-- Allows the holder to write blocked numbers. See
          {@link android.provider.BlockedNumberContract}.
          @hide -->
     <permission android:name="android.permission.WRITE_BLOCKED_NUMBERS"
-                android:protectionLevel="signature" />
+                android:protectionLevel="signature|telephony" />
 
     <!-- Must be required by an {@link android.service.vr.VrListenerService}, to ensure that only
          the system can bind to it.
diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml
index 77fca8f..17045d8 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -295,6 +295,9 @@
         <!-- Additional flag from base permission type: this permission can be automatically
             granted to the system app predictor -->
         <flag name="appPredictor" value="0x200000" />
+        <!-- Additional flag from base permission type: this permission can be automatically
+            granted to the system telephony apps -->
+        <flag name="telephony" value="0x400000" />
     </attr>
 
     <!-- Flags indicating more context for a permission group. -->
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
index 05f78d4..4b4baa9 100644
--- a/core/res/res/values/config.xml
+++ b/core/res/res/values/config.xml
@@ -448,7 +448,7 @@
     </string-array>
 
     <!-- Package name for the default CellBroadcastService module [DO NOT TRANSLATE] -->
-    <string name="cellbroadcast_default_package" translatable="false">com.android.cellbroadcastreceiver
+    <string name="cellbroadcast_default_package" translatable="false">com.android.cellbroadcastservice
     </string>
 
     <!-- If the mobile hotspot feature requires provisioning, a package name and class name
@@ -529,7 +529,7 @@
 
              - TYPE_ETHERNET (9) is prepended to this list, and
 
-             - the return value of TelephonyManager.getTetherApnRequired()
+             - the return value of TelephonyManager.isTetheringApnRequired()
                determines how the array is further modified:
 
                    * TRUE (DUN REQUIRED).
@@ -3677,6 +3677,15 @@
      -->
     <string name="config_defaultWellbeingPackage" translatable="false"></string>
 
+
+    <!-- The package name for the system telephony apps.
+         This package must be trusted, as it will be granted with permissions with special telephony
+         protection level. Note, framework by default support multiple telephony apps, each package
+         name is separated by comma.
+         Example: "com.android.phone,com.android.stk,com.android.providers.telephony"
+     -->
+    <string name="config_telephonyPackages" translatable="false">"com.android.phone,com.android.stk,com.android.providers.telephony,com.android.ons"</string>
+
     <!-- The component name for the default system attention service.
          This service must be trusted, as it can be activated without explicit consent of the user.
          See android.attention.AttentionManagerService.
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 6efa2d6..e729b03 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -3056,9 +3056,9 @@
     <string name="ok">OK</string>
     <!-- Preference framework strings. -->
     <string name="cancel">Cancel</string>
-    <!-- Preference framework strings. -->
+    <!-- Preference framework strings. {@deprecated Do not use. Incorrectly matches android.R.string.ok rather than "yes".} -->
     <string name="yes">OK</string>
-    <!-- Preference framework strings. -->
+    <!-- Preference framework strings. {@deprecated Do not use. Incorrectly matches android.R.string.cancel rather than "no".} -->
     <string name="no">Cancel</string>
     <!-- This is the generic "attention" string to be used in attention dialogs.  Typically
          combined with setIconAttribute(android.R.attr.alertDialogIcon)
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 0804703..e8cd271 100644
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -3464,6 +3464,7 @@
   <java-symbol type="string" name="config_defaultAutofillService" />
   <java-symbol type="string" name="config_defaultTextClassifierPackage" />
   <java-symbol type="string" name="config_defaultWellbeingPackage" />
+  <java-symbol type="string" name="config_telephonyPackages" />
   <java-symbol type="string" name="config_defaultContentCaptureService" />
   <java-symbol type="string" name="config_defaultAugmentedAutofillService" />
   <java-symbol type="string" name="config_defaultAppPredictionService" />
diff --git a/core/tests/coretests/src/android/app/timedetector/PhoneTimeSuggestionTest.java b/core/tests/coretests/src/android/app/timedetector/PhoneTimeSuggestionTest.java
index 1b5ad88..c9a86dc 100644
--- a/core/tests/coretests/src/android/app/timedetector/PhoneTimeSuggestionTest.java
+++ b/core/tests/coretests/src/android/app/timedetector/PhoneTimeSuggestionTest.java
@@ -30,17 +30,22 @@
 
     @Test
     public void testEquals() {
-        PhoneTimeSuggestion one =
-                new PhoneTimeSuggestion(PHONE_ID, new TimestampedValue<>(1111L, 2222L));
+        PhoneTimeSuggestion one = new PhoneTimeSuggestion(PHONE_ID);
         assertEquals(one, one);
 
-        PhoneTimeSuggestion two =
-                new PhoneTimeSuggestion(PHONE_ID, new TimestampedValue<>(1111L, 2222L));
+        PhoneTimeSuggestion two = new PhoneTimeSuggestion(PHONE_ID);
         assertEquals(one, two);
         assertEquals(two, one);
 
-        PhoneTimeSuggestion three =
-                new PhoneTimeSuggestion(PHONE_ID + 1, new TimestampedValue<>(1111L, 2222L));
+        one.setUtcTime(new TimestampedValue<>(1111L, 2222L));
+        assertEquals(one, one);
+
+        two.setUtcTime(new TimestampedValue<>(1111L, 2222L));
+        assertEquals(one, two);
+        assertEquals(two, one);
+
+        PhoneTimeSuggestion three = new PhoneTimeSuggestion(PHONE_ID + 1);
+        three.setUtcTime(new TimestampedValue<>(1111L, 2222L));
         assertNotEquals(one, three);
         assertNotEquals(three, one);
 
@@ -52,8 +57,10 @@
 
     @Test
     public void testParcelable() {
-        PhoneTimeSuggestion one =
-                new PhoneTimeSuggestion(PHONE_ID, new TimestampedValue<>(1111L, 2222L));
+        PhoneTimeSuggestion one = new PhoneTimeSuggestion(PHONE_ID);
+        assertEquals(one, roundTripParcelable(one));
+
+        one.setUtcTime(new TimestampedValue<>(1111L, 2222L));
         assertEquals(one, roundTripParcelable(one));
 
         // DebugInfo should also be stored (but is not checked by equals()
diff --git a/core/tests/coretests/src/android/app/timezonedetector/PhoneTimeZoneSuggestionTest.java b/core/tests/coretests/src/android/app/timezonedetector/PhoneTimeZoneSuggestionTest.java
new file mode 100644
index 0000000..ae91edc
--- /dev/null
+++ b/core/tests/coretests/src/android/app/timezonedetector/PhoneTimeZoneSuggestionTest.java
@@ -0,0 +1,170 @@
+/*
+ * Copyright 2019 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.
+ */
+
+package android.app.timezonedetector;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertTrue;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import org.junit.Test;
+
+public class PhoneTimeZoneSuggestionTest {
+    private static final int PHONE_ID = 99999;
+
+    @Test
+    public void testEquals() {
+        PhoneTimeZoneSuggestion.Builder builder1 = new PhoneTimeZoneSuggestion.Builder(PHONE_ID);
+        {
+            PhoneTimeZoneSuggestion one = builder1.build();
+            assertEquals(one, one);
+        }
+
+        PhoneTimeZoneSuggestion.Builder builder2 = new PhoneTimeZoneSuggestion.Builder(PHONE_ID);
+        {
+            PhoneTimeZoneSuggestion one = builder1.build();
+            PhoneTimeZoneSuggestion two = builder2.build();
+            assertEquals(one, two);
+            assertEquals(two, one);
+        }
+
+        PhoneTimeZoneSuggestion.Builder builder3 =
+                new PhoneTimeZoneSuggestion.Builder(PHONE_ID + 1);
+        {
+            PhoneTimeZoneSuggestion one = builder1.build();
+            PhoneTimeZoneSuggestion three = builder3.build();
+            assertNotEquals(one, three);
+            assertNotEquals(three, one);
+        }
+
+        builder1.setZoneId("Europe/London");
+        builder1.setMatchType(PhoneTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_ONLY);
+        builder1.setQuality(PhoneTimeZoneSuggestion.QUALITY_SINGLE_ZONE);
+        {
+            PhoneTimeZoneSuggestion one = builder1.build();
+            PhoneTimeZoneSuggestion two = builder2.build();
+            assertNotEquals(one, two);
+        }
+
+        builder2.setZoneId("Europe/Paris");
+        builder2.setMatchType(PhoneTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_ONLY);
+        builder2.setQuality(PhoneTimeZoneSuggestion.QUALITY_SINGLE_ZONE);
+        {
+            PhoneTimeZoneSuggestion one = builder1.build();
+            PhoneTimeZoneSuggestion two = builder2.build();
+            assertNotEquals(one, two);
+        }
+
+        builder1.setZoneId("Europe/Paris");
+        {
+            PhoneTimeZoneSuggestion one = builder1.build();
+            PhoneTimeZoneSuggestion two = builder2.build();
+            assertEquals(one, two);
+        }
+
+        builder1.setMatchType(PhoneTimeZoneSuggestion.MATCH_TYPE_EMULATOR_ZONE_ID);
+        builder2.setMatchType(PhoneTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_ONLY);
+        {
+            PhoneTimeZoneSuggestion one = builder1.build();
+            PhoneTimeZoneSuggestion two = builder2.build();
+            assertNotEquals(one, two);
+        }
+
+        builder1.setMatchType(PhoneTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_ONLY);
+        {
+            PhoneTimeZoneSuggestion one = builder1.build();
+            PhoneTimeZoneSuggestion two = builder2.build();
+            assertEquals(one, two);
+        }
+
+        builder1.setQuality(PhoneTimeZoneSuggestion.QUALITY_SINGLE_ZONE);
+        builder2.setQuality(PhoneTimeZoneSuggestion.QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS);
+        {
+            PhoneTimeZoneSuggestion one = builder1.build();
+            PhoneTimeZoneSuggestion two = builder2.build();
+            assertNotEquals(one, two);
+        }
+
+        builder1.setQuality(PhoneTimeZoneSuggestion.QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS);
+        {
+            PhoneTimeZoneSuggestion one = builder1.build();
+            PhoneTimeZoneSuggestion two = builder2.build();
+            assertEquals(one, two);
+        }
+
+        // DebugInfo must not be considered in equals().
+        {
+            PhoneTimeZoneSuggestion one = builder1.build();
+            PhoneTimeZoneSuggestion two = builder2.build();
+            one.addDebugInfo("Debug info 1");
+            two.addDebugInfo("Debug info 2");
+            assertEquals(one, two);
+        }
+    }
+
+    @Test(expected = RuntimeException.class)
+    public void testBuilderValidates_emptyZone_badMatchType() {
+        PhoneTimeZoneSuggestion.Builder builder = new PhoneTimeZoneSuggestion.Builder(PHONE_ID);
+        // No zone ID, so match type should be left unset.
+        builder.setMatchType(PhoneTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_AND_OFFSET);
+        builder.build();
+    }
+
+    @Test(expected = RuntimeException.class)
+    public void testBuilderValidates_zoneSet_badMatchType() {
+        PhoneTimeZoneSuggestion.Builder builder = new PhoneTimeZoneSuggestion.Builder(PHONE_ID);
+        builder.setZoneId("Europe/London");
+        builder.setQuality(PhoneTimeZoneSuggestion.QUALITY_SINGLE_ZONE);
+        builder.build();
+    }
+
+    @Test
+    public void testParcelable() {
+        PhoneTimeZoneSuggestion.Builder builder = new PhoneTimeZoneSuggestion.Builder(PHONE_ID);
+        assertRoundTripParcelable(builder.build());
+
+        builder.setZoneId("Europe/London");
+        builder.setMatchType(PhoneTimeZoneSuggestion.MATCH_TYPE_EMULATOR_ZONE_ID);
+        builder.setQuality(PhoneTimeZoneSuggestion.QUALITY_SINGLE_ZONE);
+        PhoneTimeZoneSuggestion suggestion1 = builder.build();
+        assertRoundTripParcelable(suggestion1);
+
+        // DebugInfo should also be stored (but is not checked by equals()
+        String debugString = "This is debug info";
+        suggestion1.addDebugInfo(debugString);
+        PhoneTimeZoneSuggestion suggestion1_2 = roundTripParcelable(suggestion1);
+        assertEquals(suggestion1, suggestion1_2);
+        assertTrue(suggestion1_2.getDebugInfo().contains(debugString));
+    }
+
+    private static void assertRoundTripParcelable(PhoneTimeZoneSuggestion instance) {
+        assertEquals(instance, roundTripParcelable(instance));
+    }
+
+    @SuppressWarnings("unchecked")
+    private static <T extends Parcelable> T roundTripParcelable(T one) {
+        Parcel parcel = Parcel.obtain();
+        parcel.writeTypedObject(one, 0);
+        parcel.setDataPosition(0);
+
+        T toReturn = (T) parcel.readTypedObject(PhoneTimeZoneSuggestion.CREATOR);
+        parcel.recycle();
+        return toReturn;
+    }
+}
diff --git a/core/tests/coretests/src/android/content/pm/PackageParserTest.java b/core/tests/coretests/src/android/content/pm/PackageParserTest.java
index 58c43ac2..5e41355 100644
--- a/core/tests/coretests/src/android/content/pm/PackageParserTest.java
+++ b/core/tests/coretests/src/android/content/pm/PackageParserTest.java
@@ -508,7 +508,12 @@
         apexInfo.modulePath = apexFile.getPath();
         apexInfo.versionCode = 191000070;
         int flags = PackageManager.GET_META_DATA | PackageManager.GET_SIGNING_CERTIFICATES;
-        PackageInfo pi = PackageParser.generatePackageInfoFromApex(apexInfo, flags);
+
+        PackageParser pp = new PackageParser();
+        Package p = pp.parsePackage(apexFile, flags, false);
+        PackageParser.collectCertificates(p, false);
+        PackageInfo pi = PackageParser.generatePackageInfo(p, apexInfo, flags);
+
         assertEquals("com.google.android.tzdata", pi.applicationInfo.packageName);
         assertTrue(pi.applicationInfo.enabled);
         assertEquals(28, pi.applicationInfo.targetSdkVersion);
diff --git a/core/tests/coretests/src/android/net/NetworkKeyTest.java b/core/tests/coretests/src/android/net/NetworkKeyTest.java
index 0f1c71d..c6c0b46 100644
--- a/core/tests/coretests/src/android/net/NetworkKeyTest.java
+++ b/core/tests/coretests/src/android/net/NetworkKeyTest.java
@@ -22,7 +22,7 @@
 
 import android.net.wifi.ScanResult;
 import android.net.wifi.WifiInfo;
-import android.net.wifi.WifiSsid;
+import android.net.wifi.WifiManager;
 
 import androidx.test.runner.AndroidJUnit4;
 
@@ -65,7 +65,7 @@
 
     @Test
     public void createFromWifi_noneSsid() throws Exception {
-        when(mWifiInfo.getSSID()).thenReturn(WifiSsid.NONE);
+        when(mWifiInfo.getSSID()).thenReturn(WifiManager.UNKNOWN_SSID);
         when(mWifiInfo.getBSSID()).thenReturn(VALID_BSSID);
         assertNull(NetworkKey.createFromWifiInfo(mWifiInfo));
     }
@@ -106,7 +106,7 @@
     }
 
     @Test
-    public void createFromScanResult_nullWifiSsid() {
+    public void createFromScanResult_nullSsid() {
         ScanResult scanResult = new ScanResult();
         scanResult.BSSID = VALID_BSSID;
 
@@ -114,18 +114,18 @@
     }
 
     @Test
-    public void createFromScanResult_emptyWifiSsid() {
+    public void createFromScanResult_emptySsid() {
         ScanResult scanResult = new ScanResult();
-        scanResult.wifiSsid = WifiSsid.createFromAsciiEncoded("");
+        scanResult.SSID = "";
         scanResult.BSSID = VALID_BSSID;
 
         assertNull(NetworkKey.createFromScanResult(scanResult));
     }
 
     @Test
-    public void createFromScanResult_noneWifiSsid() {
+    public void createFromScanResult_noneSsid() {
         ScanResult scanResult = new ScanResult();
-        scanResult.wifiSsid = WifiSsid.createFromAsciiEncoded(WifiSsid.NONE);
+        scanResult.SSID = WifiManager.UNKNOWN_SSID;
         scanResult.BSSID = VALID_BSSID;
 
         assertNull(NetworkKey.createFromScanResult(scanResult));
@@ -134,7 +134,7 @@
     @Test
     public void createFromScanResult_nullBssid() {
         ScanResult scanResult = new ScanResult();
-        scanResult.wifiSsid = WifiSsid.createFromAsciiEncoded(VALID_UNQUOTED_SSID);
+        scanResult.SSID = VALID_UNQUOTED_SSID;
 
         assertNull(NetworkKey.createFromScanResult(scanResult));
     }
@@ -142,7 +142,7 @@
     @Test
     public void createFromScanResult_emptyBssid() {
         ScanResult scanResult = new ScanResult();
-        scanResult.wifiSsid = WifiSsid.createFromAsciiEncoded(VALID_UNQUOTED_SSID);
+        scanResult.SSID = VALID_UNQUOTED_SSID;
         scanResult.BSSID = "";
 
         assertNull(NetworkKey.createFromScanResult(scanResult));
@@ -151,16 +151,16 @@
     @Test
     public void createFromScanResult_invalidBssid() {
         ScanResult scanResult = new ScanResult();
-        scanResult.wifiSsid = WifiSsid.createFromAsciiEncoded(VALID_UNQUOTED_SSID);
+        scanResult.SSID = VALID_UNQUOTED_SSID;
         scanResult.BSSID = INVALID_BSSID;
 
         assertNull(NetworkKey.createFromScanResult(scanResult));
     }
 
     @Test
-    public void createFromScanResult_validWifiSsid() {
+    public void createFromScanResult_validSsid() {
         ScanResult scanResult = new ScanResult();
-        scanResult.wifiSsid = WifiSsid.createFromAsciiEncoded(VALID_UNQUOTED_SSID);
+        scanResult.SSID = VALID_UNQUOTED_SSID;
         scanResult.BSSID = VALID_BSSID;
 
         NetworkKey expected = new NetworkKey(new WifiKey(VALID_SSID, VALID_BSSID));
diff --git a/core/tests/coretests/src/android/view/textclassifier/TextClassifierTest.java b/core/tests/coretests/src/android/view/textclassifier/TextClassifierTest.java
index c2fa8b2b..a9a9550 100644
--- a/core/tests/coretests/src/android/view/textclassifier/TextClassifierTest.java
+++ b/core/tests/coretests/src/android/view/textclassifier/TextClassifierTest.java
@@ -529,8 +529,10 @@
     }
 
     @Test
-    public void testSuggetsConversationActions_deduplicate() {
-        if (isTextClassifierDisabled()) return;
+    public void testSuggestConversationActions_deduplicate() {
+        Context context = new FakeContextBuilder()
+                .setIntentComponent(Intent.ACTION_SENDTO, FakeContextBuilder.DEFAULT_COMPONENT)
+                .build();
         ConversationActions.Message message =
                 new ConversationActions.Message.Builder(
                         ConversationActions.Message.PERSON_USER_OTHERS)
@@ -541,7 +543,8 @@
                         .setMaxSuggestions(3)
                         .build();
 
-        ConversationActions conversationActions = mClassifier.suggestConversationActions(request);
+        TextClassifier classifier = new TextClassifierImpl(context, TC_CONSTANTS);
+        ConversationActions conversationActions = classifier.suggestConversationActions(request);
 
         Truth.assertThat(conversationActions.getConversationActions()).isEmpty();
     }
diff --git a/core/tests/systemproperties/src/android/os/SystemPropertiesTest.java b/core/tests/systemproperties/src/android/os/SystemPropertiesTest.java
index 928351e..9f70538 100644
--- a/core/tests/systemproperties/src/android/os/SystemPropertiesTest.java
+++ b/core/tests/systemproperties/src/android/os/SystemPropertiesTest.java
@@ -26,6 +26,7 @@
 
 public class SystemPropertiesTest extends TestCase {
     private static final String KEY = "sys.testkey";
+    private static final String UNSET_KEY = "Aiw7woh6ie4toh7W";
     private static final String PERSIST_KEY = "persist.sys.testkey";
 
     @SmallTest
@@ -93,6 +94,27 @@
     }
 
     @SmallTest
+    private static void testHandle() throws Exception {
+        String value;
+        SystemProperties.Handle handle = SystemProperties.find("doesnotexist_2341431");
+        assertNull(handle);
+        SystemProperties.set(KEY, "abc");
+        handle = SystemProperties.find(KEY);
+        assertNotNull(handle);
+        value = handle.get();
+        assertEquals("abc", value);
+        SystemProperties.set(KEY, "blarg");
+        value = handle.get();
+        assertEquals("blarg", value);
+        SystemProperties.set(KEY, "1");
+        assertEquals(1, handle.getInt(-1));
+        assertEquals(1, handle.getLong(-1));
+        assertEquals(true, handle.getBoolean(false));
+        SystemProperties.set(KEY, "");
+        assertEquals(12345, handle.getInt(12345));
+    }
+
+    @SmallTest
     public void testIntegralProperties() throws Exception {
         testInt("", 123, 123);
         testInt("", 0, 0);
@@ -112,6 +134,15 @@
     }
 
     @SmallTest
+    public void testUnset() throws Exception {
+        assertEquals("abc", SystemProperties.get(UNSET_KEY, "abc"));
+        assertEquals(true, SystemProperties.getBoolean(UNSET_KEY, true));
+        assertEquals(false, SystemProperties.getBoolean(UNSET_KEY, false));
+        assertEquals(5, SystemProperties.getInt(UNSET_KEY, 5));
+        assertEquals(-10, SystemProperties.getLong(UNSET_KEY, -10));
+    }
+
+    @SmallTest
     @SuppressWarnings("null")
     public void testNullKey() throws Exception {
         try {
diff --git a/data/etc/privapp-permissions-platform.xml b/data/etc/privapp-permissions-platform.xml
index 1401137..9064abf 100644
--- a/data/etc/privapp-permissions-platform.xml
+++ b/data/etc/privapp-permissions-platform.xml
@@ -49,6 +49,12 @@
         <permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND"/>
     </privapp-permissions>
 
+    <privapp-permissions package="com.android.cellbroadcastservice">
+        <permission name="android.permission.MODIFY_PHONE_STATE"/>
+        <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
+        <permission name="android.permission.RECEIVE_EMERGENCY_BROADCAST"/>
+    </privapp-permissions>
+
     <privapp-permissions package="com.android.externalstorage">
         <permission name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
         <permission name="android.permission.WRITE_MEDIA_STORAGE"/>
@@ -232,6 +238,7 @@
         <permission name="android.permission.BIND_CONNECTION_SERVICE"/>
         <permission name="android.permission.BIND_INCALL_SERVICE"/>
         <permission name="android.permission.CALL_PRIVILEGED"/>
+        <permission name="android.permission.HANDLE_CAR_MODE_CHANGES"/>
         <permission name="android.permission.INTERACT_ACROSS_USERS"/>
         <permission name="android.permission.MANAGE_USERS"/>
         <permission name="android.permission.MANAGE_ROLE_HOLDERS"/>
@@ -322,6 +329,8 @@
         <permission name="android.permission.REQUEST_NOTIFICATION_ASSISTANT_SERVICE" />
         <!-- Permission required to test ExplicitHealthCheckServiceImpl. -->
         <permission name="android.permission.BIND_EXPLICIT_HEALTH_CHECK_SERVICE"/>
+        <!-- Permission required for UiModeManager cts test. -->
+        <permission name="android.permission.ENTER_CAR_MODE_PRIORITIZED"/>
     </privapp-permissions>
 
     <privapp-permissions package="com.android.statementservice">
diff --git a/data/sounds/AudioPackage11.mk b/data/sounds/AudioPackage11.mk
index 99dfd0a..2392b33 100644
--- a/data/sounds/AudioPackage11.mk
+++ b/data/sounds/AudioPackage11.mk
@@ -32,7 +32,7 @@
 	$(LOCAL_PATH)/effects/ogg/Lock_48k.ogg:$(TARGET_COPY_OUT_PRODUCT)/media/audio/ui/Lock.ogg \
 	$(LOCAL_PATH)/effects/ogg/Unlock_48k.ogg:$(TARGET_COPY_OUT_PRODUCT)/media/audio/ui/Unlock.ogg \
 	$(LOCAL_PATH)/effects/ogg/Trusted_48k.ogg:$(TARGET_COPY_OUT_PRODUCT)/media/audio/ui/Trusted.ogg \
-	$(LOCAL_PATH)/effects/ogg/ChargingStarted.ogg:$(TARGET_COPY_OUT_PRODUCT)/media/audio/ui/ChargingStarted.ogg \.
+	$(LOCAL_PATH)/effects/ogg/ChargingStarted.ogg:$(TARGET_COPY_OUT_PRODUCT)/media/audio/ui/ChargingStarted.ogg \
 	$(LOCAL_PATH)/effects/ogg/InCallNotification.ogg:$(TARGET_COPY_OUT_PRODUCT)/media/audio/ui/InCallNotification.ogg \
 	$(LOCAL_PATH)/effects/material/ogg/WirelessChargingStarted_48k.ogg:$(TARGET_COPY_OUT_PRODUCT)/media/audio/ui/WirelessChargingStarted.ogg \
 	$(LOCAL_PATH)/notifications/ogg/Adara.ogg:$(TARGET_COPY_OUT_PRODUCT)/media/audio/notifications/Adara.ogg \
diff --git a/keystore/java/android/security/KeyStore.java b/keystore/java/android/security/KeyStore.java
index 646aa13..c0a0422 100644
--- a/keystore/java/android/security/KeyStore.java
+++ b/keystore/java/android/security/KeyStore.java
@@ -348,16 +348,6 @@
         return list(prefix, UID_SELF);
     }
 
-    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
-    public boolean reset() {
-        try {
-            return mBinder.reset() == NO_ERROR;
-        } catch (RemoteException e) {
-            Log.w(TAG, "Cannot connect to keystore", e);
-            return false;
-        }
-    }
-
     /**
      * Attempt to lock the keystore for {@code user}.
      *
@@ -922,15 +912,26 @@
         }
     }
 
-    public OperationResult finish(IBinder token, KeymasterArguments arguments, byte[] signature,
-            byte[] entropy) {
+    /**
+     * Android KeyStore finish operation.
+     *
+     * @param token Authentication token.
+     * @param arguments Keymaster arguments
+     * @param input Optional additional input data.
+     * @param signature Optional signature to be verified.
+     * @param entropy Optional additional entropy
+     * @return OperationResult that will indicate success or error of the operation.
+     */
+    public OperationResult finish(IBinder token, KeymasterArguments arguments, byte[] input,
+            byte[] signature, byte[] entropy) {
         OperationPromise promise = new OperationPromise();
         try {
             mBinder.asBinder().linkToDeath(promise, 0);
             arguments = arguments != null ? arguments : new KeymasterArguments();
             entropy = entropy != null ? entropy : new byte[0];
+            input = input != null ? input : new byte[0];
             signature = signature != null ? signature : new byte[0];
-            int errorCode = mBinder.finish(promise, token, arguments, signature, entropy);
+            int errorCode = mBinder.finish(promise, token, arguments, input, signature, entropy);
             if (errorCode == NO_ERROR) {
                 return promise.getFuture().get();
             } else {
@@ -948,7 +949,7 @@
     }
 
     public OperationResult finish(IBinder token, KeymasterArguments arguments, byte[] signature) {
-        return finish(token, arguments, signature, null);
+        return finish(token, arguments, null, signature, null);
     }
 
     private class KeystoreResultPromise
diff --git a/keystore/java/android/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi.java b/keystore/java/android/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi.java
index 441ee66..c6515ef 100644
--- a/keystore/java/android/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi.java
+++ b/keystore/java/android/security/keystore/AndroidKeyStoreAuthenticatedAESCipherSpi.java
@@ -432,7 +432,7 @@
         }
 
         @Override
-        public OperationResult finish(byte[] signature, byte[] additionalEntropy) {
+        public OperationResult finish(byte[] input, byte[] signature, byte[] additionalEntropy) {
             if ((additionalEntropy != null) && (additionalEntropy.length > 0)) {
                 throw new ProviderException("AAD stream does not support additional entropy");
             }
diff --git a/keystore/java/android/security/keystore/AndroidKeyStoreKeyGeneratorSpi.java b/keystore/java/android/security/keystore/AndroidKeyStoreKeyGeneratorSpi.java
index 3dc884e..17aacb9 100644
--- a/keystore/java/android/security/keystore/AndroidKeyStoreKeyGeneratorSpi.java
+++ b/keystore/java/android/security/keystore/AndroidKeyStoreKeyGeneratorSpi.java
@@ -210,13 +210,9 @@
                     }
                 }
                 if (mKeymasterAlgorithm == KeymasterDefs.KM_ALGORITHM_HMAC) {
-                    if (mKeySizeBits < 64) {
+                    if (mKeySizeBits < 64 || mKeySizeBits > 512) {
                         throw new InvalidAlgorithmParameterException(
-                            "HMAC key size must be at least 64 bits.");
-                    }
-                    if (mKeySizeBits > 512 && spec.isStrongBoxBacked()) {
-                        throw new InvalidAlgorithmParameterException(
-                            "StrongBox HMAC key size must be smaller than 512 bits.");
+                            "HMAC key sizes must be within 64-512 bits, inclusive.");
                     }
 
                     // JCA HMAC key algorithm implies a digest (e.g., HmacSHA256 key algorithm
diff --git a/keystore/java/android/security/keystore/KeyGenParameterSpec.java b/keystore/java/android/security/keystore/KeyGenParameterSpec.java
index bd6ce7e..e3f43ef 100644
--- a/keystore/java/android/security/keystore/KeyGenParameterSpec.java
+++ b/keystore/java/android/security/keystore/KeyGenParameterSpec.java
@@ -1256,6 +1256,7 @@
          *
          * Sets whether to include a temporary unique ID field in the attestation certificate.
          */
+        @UnsupportedAppUsage
         @TestApi
         @NonNull
         public Builder setUniqueIdIncluded(boolean uniqueIdIncluded) {
diff --git a/keystore/java/android/security/keystore/KeyStoreCryptoOperationChunkedStreamer.java b/keystore/java/android/security/keystore/KeyStoreCryptoOperationChunkedStreamer.java
index e030478..75bea26 100644
--- a/keystore/java/android/security/keystore/KeyStoreCryptoOperationChunkedStreamer.java
+++ b/keystore/java/android/security/keystore/KeyStoreCryptoOperationChunkedStreamer.java
@@ -62,7 +62,7 @@
          * Returns the result of the KeyStore {@code finish} operation or null if keystore couldn't
          * be reached.
          */
-        OperationResult finish(byte[] siganture, byte[] additionalEntropy);
+        OperationResult finish(byte[] input, byte[] siganture, byte[] additionalEntropy);
     }
 
     // Binder buffer is about 1MB, but it's shared between all active transactions of the process.
@@ -217,7 +217,8 @@
         byte[] output = update(input, inputOffset, inputLength);
         output = ArrayUtils.concat(output, flush());
 
-        OperationResult opResult = mKeyStoreStream.finish(signature, additionalEntropy);
+        OperationResult opResult = mKeyStoreStream.finish(EmptyArray.BYTE, signature,
+                                                          additionalEntropy);
         if (opResult == null) {
             throw new KeyStoreConnectException();
         } else if (opResult.resultCode != KeyStore.NO_ERROR) {
@@ -334,8 +335,8 @@
         }
 
         @Override
-        public OperationResult finish(byte[] signature, byte[] additionalEntropy) {
-            return mKeyStore.finish(mOperationToken, null, signature, additionalEntropy);
+        public OperationResult finish(byte[] input, byte[] signature, byte[] additionalEntropy) {
+            return mKeyStore.finish(mOperationToken, null, input, signature, additionalEntropy);
         }
     }
 }
diff --git a/location/java/com/android/internal/location/GpsNetInitiatedHandler.java b/location/java/com/android/internal/location/GpsNetInitiatedHandler.java
index e890514..f9b2fe0 100644
--- a/location/java/com/android/internal/location/GpsNetInitiatedHandler.java
+++ b/location/java/com/android/internal/location/GpsNetInitiatedHandler.java
@@ -37,6 +37,8 @@
 import com.android.internal.notification.SystemNotificationChannels;
 import com.android.internal.telephony.GsmAlphabet;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 import java.io.UnsupportedEncodingException;
 import java.util.concurrent.TimeUnit;
 
@@ -115,6 +117,7 @@
     private final INetInitiatedListener mNetInitiatedListener;
 
     // Set to true if string from HAL is encoded as Hex, e.g., "3F0039"
+    @UnsupportedAppUsage
     static private boolean mIsHexInput = true;
 
     // End time of emergency call, and extension, if set
@@ -123,6 +126,9 @@
 
     public static class GpsNiNotification
     {
+        @android.annotation.UnsupportedAppUsage
+        public GpsNiNotification() {
+        }
         public int notificationId;
         public int niType;
         public boolean needNotify;
@@ -130,9 +136,13 @@
         public boolean privacyOverride;
         public int timeout;
         public int defaultResponse;
+        @UnsupportedAppUsage
         public String requestorId;
+        @UnsupportedAppUsage
         public String text;
+        @UnsupportedAppUsage
         public int requestorIdEncoding;
+        @UnsupportedAppUsage
         public int textEncoding;
     };
 
@@ -258,6 +268,7 @@
     }
 
     // Handles NI events from HAL
+    @UnsupportedAppUsage
     public void handleNiNotification(GpsNiNotification notif) {
         if (DEBUG) Log.d(TAG, "in handleNiNotification () :"
                         + " notificationId: " + notif.notificationId
@@ -539,6 +550,7 @@
      *                   set to -1, and <code> isHex </code> can be false.
      * @return the decoded string
      */
+    @UnsupportedAppUsage
     static private String decodeString(String original, boolean isHex, int coding)
     {
         if (coding == GPS_ENC_NONE || coding == GPS_ENC_UNKNOWN) {
diff --git a/location/java/com/android/internal/location/ILocationProvider.aidl b/location/java/com/android/internal/location/ILocationProvider.aidl
index a571630..8ae972b 100644
--- a/location/java/com/android/internal/location/ILocationProvider.aidl
+++ b/location/java/com/android/internal/location/ILocationProvider.aidl
@@ -29,10 +29,13 @@
  */
 interface ILocationProvider {
 
+    @UnsupportedAppUsage
     oneway void setLocationProviderManager(in ILocationProviderManager manager);
 
+    @UnsupportedAppUsage
     oneway void setRequest(in ProviderRequest request, in WorkSource ws);
 
+    @UnsupportedAppUsage
     oneway void sendExtraCommand(String command, in Bundle extras);
 
     // --- deprecated and will be removed the future ---
diff --git a/media/java/android/media/IRingtonePlayer.aidl b/media/java/android/media/IRingtonePlayer.aidl
index c038f36..02fa94c 100644
--- a/media/java/android/media/IRingtonePlayer.aidl
+++ b/media/java/android/media/IRingtonePlayer.aidl
@@ -27,6 +27,7 @@
  */
 interface IRingtonePlayer {
     /** Used for Ringtone.java playback */
+    @UnsupportedAppUsage
     oneway void play(IBinder token, in Uri uri, in AudioAttributes aa, float volume, boolean looping);
     oneway void playWithVolumeShaping(IBinder token, in Uri uri, in AudioAttributes aa,
         float volume, boolean looping, in @nullable VolumeShaper.Configuration volumeShaperConfig);
diff --git a/media/java/android/media/MediaCodec.java b/media/java/android/media/MediaCodec.java
index 510ee44..c9d7978 100644
--- a/media/java/android/media/MediaCodec.java
+++ b/media/java/android/media/MediaCodec.java
@@ -1702,20 +1702,22 @@
                     break;
                 }
                 case EVENT_FRAME_RENDERED:
-                    synchronized (mListenerLock) {
-                        Map<String, Object> map = (Map<String, Object>)msg.obj;
-                        for (int i = 0; ; ++i) {
-                            Object mediaTimeUs = map.get(i + "-media-time-us");
-                            Object systemNano = map.get(i + "-system-nano");
-                            if (mediaTimeUs == null || systemNano == null
-                                    || mOnFrameRenderedListener == null) {
-                                break;
-                            }
-                            mOnFrameRenderedListener.onFrameRendered(
-                                    mCodec, (long)mediaTimeUs, (long)systemNano);
+                    Map<String, Object> map = (Map<String, Object>)msg.obj;
+                    for (int i = 0; ; ++i) {
+                        Object mediaTimeUs = map.get(i + "-media-time-us");
+                        Object systemNano = map.get(i + "-system-nano");
+                        OnFrameRenderedListener onFrameRenderedListener;
+                        synchronized (mListenerLock) {
+                            onFrameRenderedListener = mOnFrameRenderedListener;
                         }
-                        break;
+                        if (mediaTimeUs == null || systemNano == null
+                                || onFrameRenderedListener == null) {
+                            break;
+                        }
+                        onFrameRenderedListener.onFrameRendered(
+                                mCodec, (long)mediaTimeUs, (long)systemNano);
                     }
+                    break;
                 default:
                 {
                     break;
diff --git a/media/java/android/media/MediaFile.java b/media/java/android/media/MediaFile.java
index 09221a37..c4eb031 100644
--- a/media/java/android/media/MediaFile.java
+++ b/media/java/android/media/MediaFile.java
@@ -79,6 +79,10 @@
     @UnsupportedAppUsage
     private static final HashMap<Integer, String> sFormatToMimeTypeMap = new HashMap<>();
 
+    @UnsupportedAppUsage
+    public MediaFile() {
+    }
+
     /** @deprecated file types no longer exist */
     @Deprecated
     @UnsupportedAppUsage
diff --git a/media/java/android/media/tv/OWNER b/media/java/android/media/tv/OWNERS
similarity index 100%
rename from media/java/android/media/tv/OWNER
rename to media/java/android/media/tv/OWNERS
diff --git a/media/jni/android_media_MediaDataSource.cpp b/media/jni/android_media_MediaDataSource.cpp
index 8c38d88..84a0e0d 100644
--- a/media/jni/android_media_MediaDataSource.cpp
+++ b/media/jni/android_media_MediaDataSource.cpp
@@ -26,7 +26,6 @@
 #include <nativehelper/JNIHelp.h>
 
 #include <binder/MemoryDealer.h>
-#include <drm/drm_framework_common.h>
 #include <media/stagefright/foundation/ADebug.h>
 #include <nativehelper/ScopedLocalRef.h>
 
@@ -160,8 +159,4 @@
     return String8::format("JMediaDataSource(pid %d, uid %d)", getpid(), getuid());
 }
 
-sp<DecryptHandle> JMediaDataSource::DrmInitialization(const char * /* mime */) {
-    return NULL;
-}
-
 }  // namespace android
diff --git a/media/jni/android_media_MediaDataSource.h b/media/jni/android_media_MediaDataSource.h
index 39405d2..378baf4 100644
--- a/media/jni/android_media_MediaDataSource.h
+++ b/media/jni/android_media_MediaDataSource.h
@@ -47,7 +47,6 @@
     virtual void close();
     virtual uint32_t getFlags();
     virtual String8 toString();
-    virtual sp<DecryptHandle> DrmInitialization(const char *mime);
 
 private:
     // Protect all member variables with mLock because this object will be
diff --git a/media/lib/tvremote/OWNERS b/media/lib/tvremote/OWNERS
new file mode 100644
index 0000000..81d52e1
--- /dev/null
+++ b/media/lib/tvremote/OWNERS
@@ -0,0 +1,2 @@
+nutka@google.com
+skill@google.com
diff --git a/native/android/libandroid_net.map.txt b/native/android/libandroid_net.map.txt
index be3531d..8d4e900 100644
--- a/native/android/libandroid_net.map.txt
+++ b/native/android/libandroid_net.map.txt
@@ -1,15 +1,19 @@
-# They are also all available to vendor code.
+# The following symbols marked with # llndk are available to vendor code.
+# Unlike other VNDK libraries where keeping backwards compatibility is required
+# only within a platform release, these symbols need much longer suppport
+# because the same LLNDK library serves for both system and vendor partition
+# which might be a few years old.
 LIBANDROID_NET {
   global:
     # These functions have been part of the NDK since API 24.
-    android_getaddrinfofornetwork; # vndk
-    android_setsocknetwork; # vndk
-    android_setprocnetwork; # vndk
+    android_getaddrinfofornetwork; # llndk
+    android_setsocknetwork; # llndk
+    android_setprocnetwork; # llndk
     # These functions have been part of the NDK since API 29.
-    android_res_cancel; # vndk
-    android_res_nquery; # vndk
-    android_res_nresult; # vndk
-    android_res_nsend; # vndk
+    android_res_cancel; # llndk
+    android_res_nquery; # llndk
+    android_res_nresult; # llndk
+    android_res_nsend; # llndk
   local:
     *;
 };
diff --git a/opengl/java/com/google/android/gles_jni/EGLImpl.java b/opengl/java/com/google/android/gles_jni/EGLImpl.java
index 41fb072..f94f69f 100644
--- a/opengl/java/com/google/android/gles_jni/EGLImpl.java
+++ b/opengl/java/com/google/android/gles_jni/EGLImpl.java
@@ -16,12 +16,18 @@
 
 package com.google.android.gles_jni;
 
-import javax.microedition.khronos.egl.*;
-
 import android.graphics.SurfaceTexture;
 import android.view.Surface;
-import android.view.SurfaceView;
 import android.view.SurfaceHolder;
+import android.view.SurfaceView;
+
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
+import javax.microedition.khronos.egl.EGL10;
+import javax.microedition.khronos.egl.EGLConfig;
+import javax.microedition.khronos.egl.EGLContext;
+import javax.microedition.khronos.egl.EGLDisplay;
+import javax.microedition.khronos.egl.EGLSurface;
 
 public class EGLImpl implements EGL10 {
     private EGLContextImpl mContext = new EGLContextImpl(-1);
@@ -50,6 +56,10 @@
     /** @hide **/
     public static native int  getInitCount(EGLDisplay display);
 
+    @UnsupportedAppUsage
+    public EGLImpl() {
+    }
+
     public EGLContext eglCreateContext(EGLDisplay display, EGLConfig config, EGLContext share_context, int[] attrib_list) {
         long eglContextId = _eglCreateContext(display, config, share_context, attrib_list);
         if (eglContextId == 0) {
diff --git a/opengl/java/com/google/android/gles_jni/GLImpl.java b/opengl/java/com/google/android/gles_jni/GLImpl.java
index d4c0c80..2a8d07f 100644
--- a/opengl/java/com/google/android/gles_jni/GLImpl.java
+++ b/opengl/java/com/google/android/gles_jni/GLImpl.java
@@ -26,7 +26,10 @@
 import android.os.UserHandle;
 import android.util.Log;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 import java.nio.Buffer;
+
 import javax.microedition.khronos.opengles.GL10;
 import javax.microedition.khronos.opengles.GL10Ext;
 import javax.microedition.khronos.opengles.GL11;
@@ -56,6 +59,7 @@
     private boolean have_OES_framebuffer_object;
     private boolean have_OES_texture_cube_map;
 
+    @UnsupportedAppUsage
     public GLImpl() {
     }
 
diff --git a/packages/CarrierDefaultApp/tests/unit/src/com/android/carrierdefaultapp/CarrierDefaultReceiverTest.java b/packages/CarrierDefaultApp/tests/unit/src/com/android/carrierdefaultapp/CarrierDefaultReceiverTest.java
index 5d84d64..1928ad9 100644
--- a/packages/CarrierDefaultApp/tests/unit/src/com/android/carrierdefaultapp/CarrierDefaultReceiverTest.java
+++ b/packages/CarrierDefaultApp/tests/unit/src/com/android/carrierdefaultapp/CarrierDefaultReceiverTest.java
@@ -21,7 +21,6 @@
 import android.content.Intent;
 import android.os.PersistableBundle;
 import android.telephony.CarrierConfigManager;
-import android.telephony.Rlog;
 import android.telephony.TelephonyManager;
 import android.test.InstrumentationTestCase;
 
@@ -90,12 +89,10 @@
 
         Intent intent = new Intent(TelephonyIntents.ACTION_CARRIER_SIGNAL_REDIRECTED);
         intent.putExtra(PhoneConstants.SUBSCRIPTION_KEY, subId);
-        Rlog.d(TAG, "OnReceive redirection intent");
         mReceiver.onReceive(mContext, intent);
 
         mContext.waitForMs(100);
 
-        Rlog.d(TAG, "verify carrier action: showPortalNotification");
         verify(mNotificationMgr, times(1)).notify(mString.capture(), mInt.capture(),
                 mNotification.capture());
         assertEquals(PORTAL_NOTIFICATION_ID, (int) mInt.getValue());
@@ -103,7 +100,6 @@
         PendingIntent pendingIntent = mNotification.getValue().contentIntent;
         assertNotNull(pendingIntent);
 
-        Rlog.d(TAG, "verify carrier action: disable all metered apns");
         verify(mTelephonyMgr).setCarrierDataEnabled(eq(false));
     }
 }
diff --git a/packages/CtsShim/Android.bp b/packages/CtsShim/Android.bp
new file mode 100644
index 0000000..7728464
--- /dev/null
+++ b/packages/CtsShim/Android.bp
@@ -0,0 +1,74 @@
+//
+// Copyright (C) 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.
+//
+
+//##########################################################
+// Variant: Privileged app
+
+android_app_import {
+    name: "CtsShimPrivPrebuilt",
+
+    // this needs to be a privileged application
+    privileged: true,
+
+    // Make sure the build system doesn't try to resign the APK
+    dex_preopt: {
+        enabled: false,
+    },
+
+    arch: {
+        arm: {
+            apk: "apk/arm/CtsShimPriv.apk",
+        },
+        arm64: {
+            apk: "apk/arm/CtsShimPriv.apk",
+        },
+        x86: {
+            apk: "apk/x86/CtsShimPriv.apk",
+        },
+        x86_64: {
+            apk: "apk/x86/CtsShimPriv.apk",
+        },
+    },
+    presigned: true,
+}
+
+//##########################################################
+// Variant: System app
+
+android_app_import {
+    name: "CtsShimPrebuilt",
+
+    // Make sure the build system doesn't try to resign the APK
+    dex_preopt: {
+        enabled: false,
+    },
+
+    arch: {
+        arm: {
+            apk: "apk/arm/CtsShim.apk",
+        },
+        arm64: {
+            apk: "apk/arm/CtsShim.apk",
+        },
+        x86: {
+            apk: "apk/x86/CtsShim.apk",
+        },
+        x86_64: {
+            apk: "apk/x86/CtsShim.apk",
+        },
+    },
+    presigned: true,
+}
diff --git a/packages/CtsShim/Android.mk b/packages/CtsShim/Android.mk
deleted file mode 100644
index 12972f1..0000000
--- a/packages/CtsShim/Android.mk
+++ /dev/null
@@ -1,64 +0,0 @@
-#
-# Copyright (C) 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.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-###########################################################
-# Variant: Privileged app
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := CtsShimPrivPrebuilt
-LOCAL_MODULE_TAGS := optional
-# this needs to be a privileged application
-LOCAL_PRIVILEGED_MODULE := true
-LOCAL_MODULE_CLASS := APPS
-LOCAL_BUILT_MODULE_STEM := package.apk
-# Make sure the build system doesn't try to resign the APK
-LOCAL_CERTIFICATE := PRESIGNED
-LOCAL_DEX_PREOPT := false
-LOCAL_MODULE_TARGET_ARCH := arm arm64 x86 x86_64
-
-LOCAL_SRC_FILES_arm := apk/arm/CtsShimPriv.apk
-LOCAL_SRC_FILES_arm64 := apk/arm/CtsShimPriv.apk
-LOCAL_SRC_FILES_x86 := apk/x86/CtsShimPriv.apk
-LOCAL_SRC_FILES_x86_64 := apk/x86/CtsShimPriv.apk
-
-include $(BUILD_PREBUILT)
-
-
-###########################################################
-# Variant: System app
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := CtsShimPrebuilt
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_CLASS := APPS
-LOCAL_BUILT_MODULE_STEM := package.apk
-# Make sure the build system doesn't try to resign the APK
-LOCAL_CERTIFICATE := PRESIGNED
-LOCAL_DEX_PREOPT := false
-LOCAL_MODULE_TARGET_ARCH := arm arm64 x86 x86_64
-
-LOCAL_SRC_FILES_arm := apk/arm/CtsShim.apk
-LOCAL_SRC_FILES_arm64 := apk/arm/CtsShim.apk
-LOCAL_SRC_FILES_x86 := apk/x86/CtsShim.apk
-LOCAL_SRC_FILES_x86_64 := apk/x86/CtsShim.apk
-
-include $(BUILD_PREBUILT)
-
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/packages/CtsShim/build/Android.bp b/packages/CtsShim/build/Android.bp
new file mode 100644
index 0000000..ede1fab
--- /dev/null
+++ b/packages/CtsShim/build/Android.bp
@@ -0,0 +1,117 @@
+// Copyright (C) 2019 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.
+
+// Build rules to build shim apks.
+
+//##########################################################
+// Variant: Privileged app upgrade
+
+android_app {
+    name: "CtsShimPrivUpgrade",
+    // this needs to be a privileged application
+    privileged: true,
+
+    sdk_version: "current",
+    optimize: {
+        enabled: false,
+    },
+    dex_preopt: {
+        enabled: false,
+    },
+
+    manifest: "shim_priv_upgrade/AndroidManifest.xml",
+
+    compile_multilib: "both",
+    jni_libs: ["libshim_jni"],
+}
+
+genrule {
+  name: "generate_priv_manifest",
+  srcs: [
+    "shim_priv/AndroidManifest.xml",
+    ":CtsShimPrivUpgrade"
+  ],
+  out: ["AndroidManifest.xml"],
+  cmd: "sed -e s/__HASH__/`sha512sum -b $(location :CtsShimPrivUpgrade) | cut -d' ' -f1`/ $(location shim_priv/AndroidManifest.xml) > $(out)",
+}
+
+//##########################################################
+// Variant: Privileged app
+
+android_app {
+    name: "CtsShimPriv",
+    // this needs to be a privileged application
+    privileged: true,
+
+    sdk_version: "current",
+    optimize: {
+        enabled: false,
+    },
+    dex_preopt: {
+        enabled: false,
+    },
+
+    manifest: ":generate_priv_manifest",
+
+    compile_multilib: "both",
+    jni_libs: ["libshim_jni"],
+    // Explicitly uncompress native libs rather than letting the build system doing it and destroy the
+    // v2/v3 signature.
+    use_embedded_native_libs: true,
+}
+
+//##########################################################
+// Variant: Privileged app upgrade w/ the wrong SHA
+
+android_app {
+    name: "CtsShimPrivUpgradeWrongSHA",
+    // this needs to be a privileged application
+    privileged: true,
+
+    sdk_version: "current",
+    optimize: {
+        enabled: false,
+    },
+    dex_preopt: {
+        enabled: false,
+    },
+    // anything to make this package's SHA different from CtsShimPrivUpgrade
+    aaptflags: [
+        "--version-name",
+        "WrongSHA",
+    ],
+
+    manifest: "shim_priv_upgrade/AndroidManifest.xml",
+
+    compile_multilib: "both",
+    jni_libs: ["libshim_jni"],
+
+}
+
+//##########################################################
+// Variant: System app
+
+android_app {
+    name: "CtsShim",
+
+    sdk_version: "current",
+    optimize: {
+        enabled: false,
+    },
+    dex_preopt: {
+        enabled: false,
+    },
+
+    manifest: "shim/AndroidManifest.xml",
+}
diff --git a/packages/CtsShim/build/Android.mk b/packages/CtsShim/build/Android.mk
deleted file mode 100644
index 03eb0d9..0000000
--- a/packages/CtsShim/build/Android.mk
+++ /dev/null
@@ -1,116 +0,0 @@
-#
-# Copyright (C) 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.
-#
-
-LOCAL_PATH := $(my-dir)
-
-###########################################################
-# Variant: Privileged app upgrade
-
-include $(CLEAR_VARS)
-# this needs to be a privileged application
-LOCAL_PRIVILEGED_MODULE := true
-
-LOCAL_MODULE_TAGS := optional
-LOCAL_SDK_VERSION := current
-LOCAL_PROGUARD_ENABLED := disabled
-LOCAL_DEX_PREOPT := false
-
-LOCAL_PACKAGE_NAME := CtsShimPrivUpgrade
-
-LOCAL_MANIFEST_FILE := shim_priv_upgrade/AndroidManifest.xml
-
-LOCAL_MULTILIB := both
-LOCAL_JNI_SHARED_LIBRARIES := libshim_jni
-
-include $(BUILD_PACKAGE)
-my_shim_priv_upgrade_apk := $(LOCAL_BUILT_MODULE)
-
-###########################################################
-# Variant: Privileged app
-
-include $(CLEAR_VARS)
-# this needs to be a privileged application
-LOCAL_PRIVILEGED_MODULE := true
-
-LOCAL_MODULE_TAGS := optional
-LOCAL_SDK_VERSION := current
-LOCAL_PROGUARD_ENABLED := disabled
-LOCAL_DEX_PREOPT := false
-
-LOCAL_PACKAGE_NAME := CtsShimPriv
-
-# Generate the upgrade key by taking the hash of the built CtsShimPrivUpgrade apk
-gen := $(call intermediates-dir-for,APPS,$(LOCAL_PACKAGE_NAME),,true)/AndroidManifest.xml
-$(gen): PRIVATE_CUSTOM_TOOL = sed -e "s/__HASH__/`sha512sum $(PRIVATE_INPUT_APK) | cut -d' ' -f1`/" $< >$@
-$(gen): PRIVATE_INPUT_APK := $(my_shim_priv_upgrade_apk)
-$(gen): $(LOCAL_PATH)/shim_priv/AndroidManifest.xml $(my_shim_priv_upgrade_apk)
-	$(transform-generated-source)
-
-my_shim_priv_upgrade_apk :=
-
-LOCAL_FULL_MANIFEST_FILE := $(gen)
-
-LOCAL_MULTILIB := both
-LOCAL_JNI_SHARED_LIBRARIES := libshim_jni
-
-LOCAL_USE_AAPT2 := true
-
-include $(BUILD_PACKAGE)
-
-###########################################################
-# Variant: Privileged app upgrade w/ the wrong SHA
-
-include $(CLEAR_VARS)
-# this needs to be a privileged application
-LOCAL_PRIVILEGED_MODULE := true
-
-LOCAL_MODULE_TAGS := optional
-LOCAL_SDK_VERSION := current
-LOCAL_PROGUARD_ENABLED := disabled
-LOCAL_DEX_PREOPT := false
-# anything to make this package's SHA different from CtsShimPrivUpgrade
-LOCAL_AAPT_FLAGS := --version-name WrongSHA
-
-LOCAL_PACKAGE_NAME := CtsShimPrivUpgradeWrongSHA
-
-LOCAL_MANIFEST_FILE := shim_priv_upgrade/AndroidManifest.xml
-
-LOCAL_MULTILIB := both
-LOCAL_JNI_SHARED_LIBRARIES := libshim_jni
-
-include $(BUILD_PACKAGE)
-
-
-###########################################################
-# Variant: System app
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := optional
-LOCAL_SDK_VERSION := current
-LOCAL_PROGUARD_ENABLED := disabled
-LOCAL_DEX_PREOPT := false
-
-LOCAL_PACKAGE_NAME := CtsShim
-
-LOCAL_MANIFEST_FILE := shim/AndroidManifest.xml
-
-LOCAL_USE_AAPT2 := true
-
-include $(BUILD_PACKAGE)
-
-###########################################################
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/packages/DynamicSystemInstallationService/src/com/android/dynsystem/DynamicSystemInstallationService.java b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/DynamicSystemInstallationService.java
index 142078e..9e49826 100644
--- a/packages/DynamicSystemInstallationService/src/com/android/dynsystem/DynamicSystemInstallationService.java
+++ b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/DynamicSystemInstallationService.java
@@ -32,9 +32,11 @@
 import static android.os.image.DynamicSystemClient.STATUS_NOT_STARTED;
 import static android.os.image.DynamicSystemClient.STATUS_READY;
 
+import static com.android.dynsystem.InstallationAsyncTask.RESULT_CANCELLED;
 import static com.android.dynsystem.InstallationAsyncTask.RESULT_ERROR_EXCEPTION;
-import static com.android.dynsystem.InstallationAsyncTask.RESULT_ERROR_INVALID_URL;
 import static com.android.dynsystem.InstallationAsyncTask.RESULT_ERROR_IO;
+import static com.android.dynsystem.InstallationAsyncTask.RESULT_ERROR_UNSUPPORTED_FORMAT;
+import static com.android.dynsystem.InstallationAsyncTask.RESULT_ERROR_UNSUPPORTED_URL;
 import static com.android.dynsystem.InstallationAsyncTask.RESULT_OK;
 
 import android.app.Notification;
@@ -66,11 +68,10 @@
  * cancel and confirm commnands.
  */
 public class DynamicSystemInstallationService extends Service
-        implements InstallationAsyncTask.InstallStatusListener {
+        implements InstallationAsyncTask.ProgressListener {
 
     private static final String TAG = "DynSystemInstallationService";
 
-
     // TODO (b/131866826): This is currently for test only. Will move this to System API.
     static final String KEY_ENABLE_WHEN_COMPLETED = "KEY_ENABLE_WHEN_COMPLETED";
 
@@ -121,9 +122,12 @@
     private DynamicSystemManager mDynSystem;
     private NotificationManager mNM;
 
-    private long mSystemSize;
-    private long mUserdataSize;
-    private long mInstalledSize;
+    private int mNumInstalledPartitions;
+
+    private String mCurrentPartitionName;
+    private long mCurrentPartitionSize;
+    private long mCurrentPartitionInstalledSize;
+
     private boolean mJustCancelledByUser;
 
     // This is for testing only now
@@ -176,8 +180,12 @@
     }
 
     @Override
-    public void onProgressUpdate(long installedSize) {
-        mInstalledSize = installedSize;
+    public void onProgressUpdate(InstallationAsyncTask.Progress progress) {
+        mCurrentPartitionName = progress.mPartitionName;
+        mCurrentPartitionSize = progress.mPartitionSize;
+        mCurrentPartitionInstalledSize = progress.mInstalledSize;
+        mNumInstalledPartitions = progress.mNumInstalledPartitions;
+
         postStatus(STATUS_IN_PROGRESS, CAUSE_NOT_SPECIFIED, null);
     }
 
@@ -197,11 +205,16 @@
         resetTaskAndStop();
 
         switch (result) {
+            case RESULT_CANCELLED:
+                postStatus(STATUS_NOT_STARTED, CAUSE_INSTALL_CANCELLED, null);
+                break;
+
             case RESULT_ERROR_IO:
                 postStatus(STATUS_NOT_STARTED, CAUSE_ERROR_IO, detail);
                 break;
 
-            case RESULT_ERROR_INVALID_URL:
+            case RESULT_ERROR_UNSUPPORTED_URL:
+            case RESULT_ERROR_UNSUPPORTED_FORMAT:
                 postStatus(STATUS_NOT_STARTED, CAUSE_ERROR_INVALID_URL, detail);
                 break;
 
@@ -211,12 +224,6 @@
         }
     }
 
-    @Override
-    public void onCancelled() {
-        resetTaskAndStop();
-        postStatus(STATUS_NOT_STARTED, CAUSE_INSTALL_CANCELLED, null);
-    }
-
     private void executeInstallCommand(Intent intent) {
         if (!verifyRequest(intent)) {
             Log.e(TAG, "Verification failed. Did you use VerificationActivity?");
@@ -234,12 +241,13 @@
         }
 
         String url = intent.getDataString();
-        mSystemSize = intent.getLongExtra(DynamicSystemClient.KEY_SYSTEM_SIZE, 0);
-        mUserdataSize = intent.getLongExtra(DynamicSystemClient.KEY_USERDATA_SIZE, 0);
+        long systemSize = intent.getLongExtra(DynamicSystemClient.KEY_SYSTEM_SIZE, 0);
+        long userdataSize = intent.getLongExtra(DynamicSystemClient.KEY_USERDATA_SIZE, 0);
         mEnableWhenCompleted = intent.getBooleanExtra(KEY_ENABLE_WHEN_COMPLETED, false);
 
+        // TODO: better constructor or builder
         mInstallTask = new InstallationAsyncTask(
-                url, mSystemSize, mUserdataSize, this, mDynSystem, this);
+                url, systemSize, userdataSize, this, mDynSystem, this);
 
         mInstallTask.execute();
 
@@ -257,7 +265,7 @@
         mJustCancelledByUser = true;
 
         if (mInstallTask.cancel(false)) {
-            // Will cleanup and post status in onCancelled()
+            // Will cleanup and post status in onResult()
             Log.d(TAG, "Cancel request filed successfully");
         } else {
             Log.e(TAG, "Trying to cancel installation while it's already completed.");
@@ -288,7 +296,7 @@
     private void executeRebootToDynSystemCommand() {
         boolean enabled = false;
 
-        if (mInstallTask != null && mInstallTask.getResult() == RESULT_OK) {
+        if (mInstallTask != null && mInstallTask.isCompleted()) {
             enabled = mInstallTask.commit();
         } else if (isDynamicSystemInstalled()) {
             enabled = mDynSystem.setEnable(true, true);
@@ -380,8 +388,16 @@
             case STATUS_IN_PROGRESS:
                 builder.setContentText(getString(R.string.notification_install_inprogress));
 
-                int max = (int) Math.max((mSystemSize + mUserdataSize) >> 20, 1);
-                int progress = (int) (mInstalledSize >> 20);
+                int max = 1024;
+                int progress = 0;
+
+                int currentMax = max >> (mNumInstalledPartitions + 1);
+                progress = max - currentMax * 2;
+
+                long currentProgress = (mCurrentPartitionInstalledSize >> 20) * currentMax
+                        / Math.max(mCurrentPartitionSize >> 20, 1);
+
+                progress += (int) currentProgress;
 
                 builder.setProgress(max, progress, false);
 
@@ -464,7 +480,8 @@
             throws RemoteException {
         Bundle bundle = new Bundle();
 
-        bundle.putLong(DynamicSystemClient.KEY_INSTALLED_SIZE, mInstalledSize);
+        // TODO: send more info to the clients
+        bundle.putLong(DynamicSystemClient.KEY_INSTALLED_SIZE, mCurrentPartitionInstalledSize);
 
         if (detail != null) {
             bundle.putSerializable(DynamicSystemClient.KEY_EXCEPTION_DETAIL,
@@ -492,9 +509,7 @@
                 return STATUS_IN_PROGRESS;
 
             case FINISHED:
-                int result = mInstallTask.getResult();
-
-                if (result == RESULT_OK) {
+                if (mInstallTask.isCompleted()) {
                     return STATUS_READY;
                 } else {
                     throw new IllegalStateException("A failed InstallationTask is not reset");
diff --git a/packages/DynamicSystemInstallationService/src/com/android/dynsystem/InstallationAsyncTask.java b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/InstallationAsyncTask.java
index 738c425..b206a1f 100644
--- a/packages/DynamicSystemInstallationService/src/com/android/dynsystem/InstallationAsyncTask.java
+++ b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/InstallationAsyncTask.java
@@ -17,7 +17,6 @@
 package com.android.dynsystem;
 
 import android.content.Context;
-import android.gsi.GsiProgress;
 import android.net.Uri;
 import android.os.AsyncTask;
 import android.os.MemoryFile;
@@ -27,35 +26,70 @@
 import android.webkit.URLUtil;
 
 import java.io.BufferedInputStream;
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
+import java.util.Arrays;
+import java.util.Enumeration;
+import java.util.List;
 import java.util.Locale;
 import java.util.zip.GZIPInputStream;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
+import java.util.zip.ZipInputStream;
 
-class InstallationAsyncTask extends AsyncTask<String, Long, Throwable> {
+class InstallationAsyncTask extends AsyncTask<String, InstallationAsyncTask.Progress, Throwable> {
 
     private static final String TAG = "InstallationAsyncTask";
 
     private static final int READ_BUFFER_SIZE = 1 << 13;
+    private static final long MIN_PROGRESS_TO_PUBLISH = 1 << 27;
 
-    private class InvalidImageUrlException extends RuntimeException {
-        private InvalidImageUrlException(String message) {
+    private static final List<String> UNSUPPORTED_PARTITIONS =
+            Arrays.asList("vbmeta", "boot", "userdata", "dtbo", "super_empty", "system_other");
+
+    private class UnsupportedUrlException extends RuntimeException {
+        private UnsupportedUrlException(String message) {
             super(message);
         }
     }
 
-    /** Not completed, including being cancelled */
-    static final int NO_RESULT = 0;
+    private class UnsupportedFormatException extends RuntimeException {
+        private UnsupportedFormatException(String message) {
+            super(message);
+        }
+    }
+
+    /** UNSET means the installation is not completed */
+    static final int RESULT_UNSET = 0;
     static final int RESULT_OK = 1;
-    static final int RESULT_ERROR_IO = 2;
-    static final int RESULT_ERROR_INVALID_URL = 3;
+    static final int RESULT_CANCELLED = 2;
+    static final int RESULT_ERROR_IO = 3;
+    static final int RESULT_ERROR_UNSUPPORTED_URL = 4;
+    static final int RESULT_ERROR_UNSUPPORTED_FORMAT = 5;
     static final int RESULT_ERROR_EXCEPTION = 6;
 
-    interface InstallStatusListener {
-        void onProgressUpdate(long installedSize);
+    class Progress {
+        String mPartitionName;
+        long mPartitionSize;
+        long mInstalledSize;
+
+        int mNumInstalledPartitions;
+
+        Progress(String partitionName, long partitionSize, long installedSize,
+                int numInstalled) {
+            mPartitionName = partitionName;
+            mPartitionSize = partitionSize;
+            mInstalledSize = installedSize;
+
+            mNumInstalledPartitions = numInstalled;
+        }
+    }
+
+    interface ProgressListener {
+        void onProgressUpdate(Progress progress);
         void onResult(int resultCode, Throwable detail);
-        void onCancelled();
     }
 
     private final String mUrl;
@@ -63,16 +97,17 @@
     private final long mUserdataSize;
     private final Context mContext;
     private final DynamicSystemManager mDynSystem;
-    private final InstallStatusListener mListener;
+    private final ProgressListener mListener;
     private DynamicSystemManager.Session mInstallationSession;
 
-    private int mResult = NO_RESULT;
+    private boolean mIsZip;
+    private boolean mIsCompleted;
 
     private InputStream mStream;
-
+    private ZipFile mZipFile;
 
     InstallationAsyncTask(String url, long systemSize, long userdataSize, Context context,
-            DynamicSystemManager dynSystem, InstallStatusListener listener) {
+            DynamicSystemManager dynSystem, ProgressListener listener) {
         mUrl = url;
         mSystemSize = systemSize;
         mUserdataSize = userdataSize;
@@ -82,131 +117,292 @@
     }
 
     @Override
-    protected void onPreExecute() {
-        mListener.onProgressUpdate(0);
-    }
-
-    @Override
     protected Throwable doInBackground(String... voids) {
         Log.d(TAG, "Start doInBackground(), URL: " + mUrl);
 
         try {
-            long installedSize = 0;
-            long reportedInstalledSize = 0;
+            // call DynamicSystemManager to cleanup stuff
+            mDynSystem.remove();
 
-            long minStepToReport = (mSystemSize + mUserdataSize) / 100;
+            verifyAndPrepare();
 
-            // init input stream before calling startInstallation(), which takes 90 seconds.
-            initInputStream();
+            mDynSystem.startInstallation();
 
-            Thread thread =
-                    new Thread(
-                            () -> {
-                                mDynSystem.startInstallation("userdata", mUserdataSize, false);
-                                mInstallationSession =
-                                        mDynSystem.startInstallation("system", mSystemSize, true);
-                            });
-
-            thread.start();
-
-            while (thread.isAlive()) {
-                if (isCancelled()) {
-                    boolean aborted = mDynSystem.abort();
-                    Log.d(TAG, "Called DynamicSystemManager.abort(), result = " + aborted);
-                    return null;
-                }
-
-                GsiProgress progress = mDynSystem.getInstallationProgress();
-                installedSize = progress.bytes_processed;
-
-                if (installedSize > reportedInstalledSize + minStepToReport) {
-                    publishProgress(installedSize);
-                    reportedInstalledSize = installedSize;
-                }
-
-                Thread.sleep(10);
+            installUserdata();
+            if (isCancelled()) {
+                mDynSystem.remove();
+                return null;
             }
 
-            if (mInstallationSession == null) {
-                throw new IOException(
-                        "Failed to start installation with requested size: "
-                                + (mSystemSize + mUserdataSize));
+            installImages();
+            if (isCancelled()) {
+                mDynSystem.remove();
+                return null;
             }
 
-            installedSize = mUserdataSize;
-
-            MemoryFile memoryFile = new MemoryFile("dsu", READ_BUFFER_SIZE);
-            byte[] bytes = new byte[READ_BUFFER_SIZE];
-            mInstallationSession.setAshmem(
-                    new ParcelFileDescriptor(memoryFile.getFileDescriptor()), READ_BUFFER_SIZE);
-            int numBytesRead;
-            Log.d(TAG, "Start installation loop");
-            while ((numBytesRead = mStream.read(bytes, 0, READ_BUFFER_SIZE)) != -1) {
-                memoryFile.writeBytes(bytes, 0, 0, numBytesRead);
-                if (isCancelled()) {
-                    break;
-                }
-                if (!mInstallationSession.submitFromAshmem(numBytesRead)) {
-                    throw new IOException("Failed write() to DynamicSystem");
-                }
-
-                installedSize += numBytesRead;
-
-                if (installedSize > reportedInstalledSize + minStepToReport) {
-                    publishProgress(installedSize);
-                    reportedInstalledSize = installedSize;
-                }
-            }
-            return null;
-
+            mDynSystem.finishInstallation();
         } catch (Exception e) {
             e.printStackTrace();
+            mDynSystem.remove();
             return e;
         } finally {
             close();
         }
+
+        return null;
+    }
+
+    @Override
+    protected void onPostExecute(Throwable detail) {
+        int result = RESULT_UNSET;
+
+        if (detail == null) {
+            result = RESULT_OK;
+            mIsCompleted = true;
+        } else if (detail instanceof IOException) {
+            result = RESULT_ERROR_IO;
+        } else if (detail instanceof UnsupportedUrlException) {
+            result = RESULT_ERROR_UNSUPPORTED_URL;
+        } else if (detail instanceof UnsupportedFormatException) {
+            result = RESULT_ERROR_UNSUPPORTED_FORMAT;
+        } else {
+            result = RESULT_ERROR_EXCEPTION;
+        }
+
+        Log.d(TAG, "onPostExecute(), URL: " + mUrl + ", result: " + result);
+
+        mListener.onResult(result, detail);
     }
 
     @Override
     protected void onCancelled() {
         Log.d(TAG, "onCancelled(), URL: " + mUrl);
 
-        mListener.onCancelled();
-    }
-
-    @Override
-    protected void onPostExecute(Throwable detail) {
-        if (detail == null) {
-            mResult = RESULT_OK;
-        } else if (detail instanceof IOException) {
-            mResult = RESULT_ERROR_IO;
-        } else if (detail instanceof InvalidImageUrlException) {
-            mResult = RESULT_ERROR_INVALID_URL;
+        if (mDynSystem.abort()) {
+            Log.d(TAG, "Installation aborted");
         } else {
-            mResult = RESULT_ERROR_EXCEPTION;
+            Log.w(TAG, "DynamicSystemManager.abort() returned false");
         }
 
-        Log.d(TAG, "onPostExecute(), URL: " + mUrl + ", result: " + mResult);
-
-        mListener.onResult(mResult, detail);
+        mListener.onResult(RESULT_CANCELLED, null);
     }
 
     @Override
-    protected void onProgressUpdate(Long... values) {
-        long progress = values[0];
+    protected void onProgressUpdate(Progress... values) {
+        Progress progress = values[0];
         mListener.onProgressUpdate(progress);
     }
 
-    private void initInputStream() throws IOException, InvalidImageUrlException {
-        if (URLUtil.isNetworkUrl(mUrl) || URLUtil.isFileUrl(mUrl)) {
-            mStream = new BufferedInputStream(new GZIPInputStream(new URL(mUrl).openStream()));
-        } else if (URLUtil.isContentUrl(mUrl)) {
-            Uri uri = Uri.parse(mUrl);
-            mStream = new BufferedInputStream(new GZIPInputStream(
-                    mContext.getContentResolver().openInputStream(uri)));
+    private void verifyAndPrepare() throws Exception {
+        String extension = mUrl.substring(mUrl.lastIndexOf('.') + 1);
+
+        if ("gz".equals(extension) || "gzip".equals(extension)) {
+            mIsZip = false;
+        } else if ("zip".equals(extension)) {
+            mIsZip = true;
         } else {
-            throw new InvalidImageUrlException(
-                    String.format(Locale.US, "Unsupported file source: %s", mUrl));
+            throw new UnsupportedFormatException(
+                String.format(Locale.US, "Unsupported file format: %s", mUrl));
+        }
+
+        if (URLUtil.isNetworkUrl(mUrl)) {
+            mStream = new URL(mUrl).openStream();
+        } else if (URLUtil.isFileUrl(mUrl)) {
+            if (mIsZip) {
+                mZipFile = new ZipFile(new File(new URL(mUrl).toURI()));
+            } else {
+                mStream = new URL(mUrl).openStream();
+            }
+        } else if (URLUtil.isContentUrl(mUrl)) {
+            mStream = mContext.getContentResolver().openInputStream(Uri.parse(mUrl));
+        } else {
+            throw new UnsupportedUrlException(
+                    String.format(Locale.US, "Unsupported URL: %s", mUrl));
+        }
+    }
+
+    private void installUserdata() throws Exception {
+        Thread thread = new Thread(() -> {
+            mInstallationSession = mDynSystem.createPartition("userdata", mUserdataSize, false);
+        });
+
+        Log.d(TAG, "Creating partition: userdata");
+        thread.start();
+
+        long installedSize = 0;
+        Progress progress = new Progress("userdata", mUserdataSize, installedSize, 0);
+
+        while (thread.isAlive()) {
+            if (isCancelled()) {
+                return;
+            }
+
+            installedSize = mDynSystem.getInstallationProgress().bytes_processed;
+
+            if (installedSize > progress.mInstalledSize + MIN_PROGRESS_TO_PUBLISH) {
+                progress.mInstalledSize = installedSize;
+                publishProgress(progress);
+            }
+
+            Thread.sleep(10);
+        }
+
+        if (mInstallationSession == null) {
+            throw new IOException(
+                    "Failed to start installation with requested size: " + mUserdataSize);
+        }
+    }
+
+    private void installImages() throws IOException, InterruptedException {
+        if (mStream != null) {
+            if (mIsZip) {
+                installStreamingZipUpdate();
+            } else {
+                installStreamingGzUpdate();
+            }
+        } else {
+            installLocalZipUpdate();
+        }
+    }
+
+    private void installStreamingGzUpdate() throws IOException, InterruptedException {
+        Log.d(TAG, "To install a streaming GZ update");
+        installImage("system", mSystemSize, new GZIPInputStream(mStream), 1);
+    }
+
+    private void installStreamingZipUpdate() throws IOException, InterruptedException {
+        Log.d(TAG, "To install a streaming ZIP update");
+
+        ZipInputStream zis = new ZipInputStream(mStream);
+        ZipEntry zipEntry = null;
+
+        int numInstalledPartitions = 1;
+
+        while ((zipEntry = zis.getNextEntry()) != null) {
+            if (installImageFromAnEntry(zipEntry, zis, numInstalledPartitions)) {
+                numInstalledPartitions++;
+            }
+
+            if (isCancelled()) {
+                break;
+            }
+        }
+    }
+
+    private void installLocalZipUpdate() throws IOException, InterruptedException {
+        Log.d(TAG, "To install a local ZIP update");
+
+        Enumeration<? extends ZipEntry> entries = mZipFile.entries();
+        int numInstalledPartitions = 1;
+
+        while (entries.hasMoreElements()) {
+            ZipEntry entry = entries.nextElement();
+            if (installImageFromAnEntry(
+                    entry, mZipFile.getInputStream(entry), numInstalledPartitions)) {
+                numInstalledPartitions++;
+            }
+
+            if (isCancelled()) {
+                break;
+            }
+        }
+    }
+
+    private boolean installImageFromAnEntry(ZipEntry entry, InputStream is,
+            int numInstalledPartitions) throws IOException, InterruptedException {
+        String name = entry.getName();
+
+        Log.d(TAG, "ZipEntry: " + name);
+
+        if (!name.endsWith(".img")) {
+            return false;
+        }
+
+        String partitionName = name.substring(0, name.length() - 4);
+
+        if (UNSUPPORTED_PARTITIONS.contains(partitionName)) {
+            Log.d(TAG, name + " installation is not supported, skip it.");
+            return false;
+        }
+
+        long uncompressedSize = entry.getSize();
+
+        installImage(partitionName, uncompressedSize, is, numInstalledPartitions);
+
+        return true;
+    }
+
+    private void installImage(String partitionName, long uncompressedSize, InputStream is,
+            int numInstalledPartitions) throws IOException, InterruptedException {
+
+        SparseInputStream sis = new SparseInputStream(new BufferedInputStream(is));
+
+        long unsparseSize = sis.getUnsparseSize();
+
+        final long partitionSize;
+
+        if (unsparseSize != -1) {
+            partitionSize = unsparseSize;
+            Log.d(TAG, partitionName + " is sparse, raw size = " + unsparseSize);
+        } else if (uncompressedSize != -1) {
+            partitionSize = uncompressedSize;
+            Log.d(TAG, partitionName + " is already unsparse, raw size = " + uncompressedSize);
+        } else {
+            throw new IOException("Cannot get raw size for " + partitionName);
+        }
+
+        Thread thread = new Thread(() -> {
+            mInstallationSession =
+                    mDynSystem.createPartition(partitionName, partitionSize, true);
+        });
+
+        Log.d(TAG, "Start creating partition: " + partitionName);
+        thread.start();
+
+        while (thread.isAlive()) {
+            if (isCancelled()) {
+                return;
+            }
+
+            Thread.sleep(10);
+        }
+
+        if (mInstallationSession == null) {
+            throw new IOException(
+                    "Failed to start installation with requested size: " + partitionSize);
+        }
+
+        Log.d(TAG, "Start installing: " + partitionName);
+
+        MemoryFile memoryFile = new MemoryFile("dsu_" + partitionName, READ_BUFFER_SIZE);
+        ParcelFileDescriptor pfd = new ParcelFileDescriptor(memoryFile.getFileDescriptor());
+
+        mInstallationSession.setAshmem(pfd, READ_BUFFER_SIZE);
+
+        long installedSize = 0;
+        Progress progress = new Progress(
+                partitionName, partitionSize, installedSize, numInstalledPartitions);
+
+        byte[] bytes = new byte[READ_BUFFER_SIZE];
+        int numBytesRead;
+
+        while ((numBytesRead = sis.read(bytes, 0, READ_BUFFER_SIZE)) != -1) {
+            if (isCancelled()) {
+                return;
+            }
+
+            memoryFile.writeBytes(bytes, 0, 0, numBytesRead);
+
+            if (!mInstallationSession.submitFromAshmem(numBytesRead)) {
+                throw new IOException("Failed write() to DynamicSystem");
+            }
+
+            installedSize += numBytesRead;
+
+            if (installedSize > progress.mInstalledSize + MIN_PROGRESS_TO_PUBLISH) {
+                progress.mInstalledSize = installedSize;
+                publishProgress(progress);
+            }
         }
     }
 
@@ -216,20 +412,20 @@
                 mStream.close();
                 mStream = null;
             }
+            if (mZipFile != null) {
+                mZipFile.close();
+                mZipFile = null;
+            }
         } catch (IOException e) {
             // ignore
         }
     }
 
-    int getResult() {
-        return mResult;
+    boolean isCompleted() {
+        return mIsCompleted;
     }
 
     boolean commit() {
-        if (mInstallationSession == null) {
-            return false;
-        }
-
-        return mInstallationSession.commit();
+        return mDynSystem.setEnable(true, true);
     }
 }
diff --git a/packages/DynamicSystemInstallationService/src/com/android/dynsystem/SparseInputStream.java b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/SparseInputStream.java
new file mode 100644
index 0000000..72230b4
--- /dev/null
+++ b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/SparseInputStream.java
@@ -0,0 +1,199 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package com.android.dynsystem;
+
+import static java.lang.Math.min;
+
+import java.io.BufferedInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.Arrays;
+
+/**
+ * SparseInputStream read from upstream and detects the data format. If the upstream is a valid
+ * sparse data, it will unsparse it on the fly. Otherwise, it just passthrough as is.
+ */
+public class SparseInputStream extends InputStream {
+    static final int FILE_HDR_SIZE = 28;
+    static final int CHUNK_HDR_SIZE = 12;
+
+    /**
+     * This class represents a chunk in the Android sparse image.
+     *
+     * @see system/core/libsparse/sparse_format.h
+     */
+    private class SparseChunk {
+        static final short RAW = (short) 0xCAC1;
+        static final short FILL = (short) 0xCAC2;
+        static final short DONTCARE = (short) 0xCAC3;
+        public short mChunkType;
+        public int mChunkSize;
+        public int mTotalSize;
+        public byte[] fill;
+        public String toString() {
+            return String.format(
+                    "type: %x, chunk_size: %d, total_size: %d", mChunkType, mChunkSize, mTotalSize);
+        }
+    }
+
+    private byte[] readFull(InputStream in, int size) throws IOException {
+        byte[] buf = new byte[size];
+        for (int done = 0, n = 0; done < size; done += n) {
+            if ((n = in.read(buf, done, size - done)) < 0) {
+                throw new IOException("Failed to readFull");
+            }
+        }
+        return buf;
+    }
+
+    private ByteBuffer readBuffer(InputStream in, int size) throws IOException {
+        return ByteBuffer.wrap(readFull(in, size)).order(ByteOrder.LITTLE_ENDIAN);
+    }
+
+    private SparseChunk readChunk(InputStream in) throws IOException {
+        SparseChunk chunk = new SparseChunk();
+        ByteBuffer buf = readBuffer(in, CHUNK_HDR_SIZE);
+        chunk.mChunkType = buf.getShort();
+        buf.getShort();
+        chunk.mChunkSize = buf.getInt();
+        chunk.mTotalSize = buf.getInt();
+        return chunk;
+    }
+
+    private BufferedInputStream mIn;
+    private boolean mIsSparse;
+    private long mBlockSize;
+    private long mTotalBlocks;
+    private long mTotalChunks;
+    private SparseChunk mCur;
+    private long mLeft;
+    private int mCurChunks;
+
+    public SparseInputStream(BufferedInputStream in) throws IOException {
+        mIn = in;
+        in.mark(FILE_HDR_SIZE * 2);
+        ByteBuffer buf = readBuffer(mIn, FILE_HDR_SIZE);
+        mIsSparse = (buf.getInt() == 0xed26ff3a);
+        if (!mIsSparse) {
+            mIn.reset();
+            return;
+        }
+        int major = buf.getShort();
+        int minor = buf.getShort();
+
+        if (major > 0x1 || minor > 0x0) {
+            throw new IOException("Unsupported sparse version: " + major + "." + minor);
+        }
+
+        if (buf.getShort() != FILE_HDR_SIZE) {
+            throw new IOException("Illegal file header size");
+        }
+        if (buf.getShort() != CHUNK_HDR_SIZE) {
+            throw new IOException("Illegal chunk header size");
+        }
+        mBlockSize = buf.getInt();
+        if ((mBlockSize & 0x3) != 0) {
+            throw new IOException("Illegal block size, must be a multiple of 4");
+        }
+        mTotalBlocks = buf.getInt();
+        mTotalChunks = buf.getInt();
+        mLeft = mCurChunks = 0;
+    }
+
+    /**
+     * Check if it needs to open a new chunk.
+     *
+     * @return true if it's EOF
+     */
+    private boolean prepareChunk() throws IOException {
+        if (mCur == null || mLeft <= 0) {
+            if (++mCurChunks > mTotalChunks) return true;
+            mCur = readChunk(mIn);
+            if (mCur.mChunkType == SparseChunk.FILL) {
+                mCur.fill = readFull(mIn, 4);
+            }
+            mLeft = mCur.mChunkSize * mBlockSize;
+        }
+        return mLeft == 0;
+    }
+
+    /**
+     * It overrides the InputStream.read(byte[] buf)
+     */
+    public int read(byte[] buf) throws IOException {
+        if (!mIsSparse) {
+            return mIn.read(buf);
+        }
+        if (prepareChunk()) return -1;
+        int n = -1;
+        switch (mCur.mChunkType) {
+            case SparseChunk.RAW:
+                n = mIn.read(buf, 0, (int) min(mLeft, buf.length));
+                mLeft -= n;
+                return n;
+            case SparseChunk.DONTCARE:
+                n = (int) min(mLeft, buf.length);
+                Arrays.fill(buf, 0, n - 1, (byte) 0);
+                mLeft -= n;
+                return n;
+            case SparseChunk.FILL:
+                // The FILL type is rarely used, so use a simple implmentation.
+                return super.read(buf);
+            default:
+                throw new IOException("Unsupported Chunk:" + mCur.toString());
+        }
+    }
+
+    /**
+     * It overrides the InputStream.read()
+     */
+    public int read() throws IOException {
+        if (!mIsSparse) {
+            return mIn.read();
+        }
+        if (prepareChunk()) return -1;
+        int ret = -1;
+        switch (mCur.mChunkType) {
+            case SparseChunk.RAW:
+                ret = mIn.read();
+                break;
+            case SparseChunk.DONTCARE:
+                ret = 0;
+                break;
+            case SparseChunk.FILL:
+                ret = mCur.fill[(4 - ((int) mLeft & 0x3)) & 0x3];
+                break;
+            default:
+                throw new IOException("Unsupported Chunk:" + mCur.toString());
+        }
+        mLeft--;
+        return ret;
+    }
+
+    /**
+     * Get the unsparse size
+     * @return -1 if unknown
+     */
+    public long getUnsparseSize() {
+        if (!mIsSparse) {
+            return -1;
+        }
+        return mBlockSize * mTotalBlocks;
+    }
+}
diff --git a/packages/SettingsLib/src/com/android/settingslib/DeviceInfoUtils.java b/packages/SettingsLib/src/com/android/settingslib/DeviceInfoUtils.java
index bc5a2c0..69bd0ed 100644
--- a/packages/SettingsLib/src/com/android/settingslib/DeviceInfoUtils.java
+++ b/packages/SettingsLib/src/com/android/settingslib/DeviceInfoUtils.java
@@ -29,6 +29,8 @@
 import android.telephony.PhoneNumberUtils;
 import android.telephony.SubscriptionInfo;
 import android.telephony.TelephonyManager;
+import android.text.BidiFormatter;
+import android.text.TextDirectionHeuristics;
 import android.text.TextUtils;
 import android.text.format.DateFormat;
 import android.util.Log;
@@ -206,4 +208,15 @@
         return sb.toString();
     }
 
+    /**
+     * To get the formatting text for display in a potentially opposite-directionality context
+     * without garbling.
+     * @param subscriptionInfo {@link SubscriptionInfo} subscription information.
+     * @return Returns phone number with Bidi format.
+     */
+    public static String getBidiFormattedPhoneNumber(Context context,
+            SubscriptionInfo subscriptionInfo) {
+        final String phoneNumber = getFormattedPhoneNumber(context, subscriptionInfo);
+        return BidiFormatter.getInstance().unicodeWrap(phoneNumber, TextDirectionHeuristics.LTR);
+    }
 }
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java
index 9a95288..ec5bc96 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java
@@ -363,12 +363,12 @@
 
     /**
      * Get name from remote device
-     * @return {@link BluetoothDevice#getAliasName()} if
-     * {@link BluetoothDevice#getAliasName()} is not null otherwise return
+     * @return {@link BluetoothDevice#getAlias()} if
+     * {@link BluetoothDevice#getAlias()} is not null otherwise return
      * {@link BluetoothDevice#getAddress()}
      */
     public String getName() {
-        final String aliasName = mDevice.getAliasName();
+        final String aliasName = mDevice.getAlias();
         return TextUtils.isEmpty(aliasName) ? getAddress() : aliasName;
     }
 
@@ -426,7 +426,7 @@
      * @return true if device's alias name is not null nor empty, false otherwise
      */
     public boolean hasHumanReadableName() {
-        return !TextUtils.isEmpty(mDevice.getAliasName());
+        return !TextUtils.isEmpty(mDevice.getAlias());
     }
 
     /**
@@ -573,7 +573,7 @@
         }
 
         if (BluetoothUtils.D) {
-            Log.e(TAG, "updating profiles for " + mDevice.getAliasName() + ", " + mDevice);
+            Log.e(TAG, "updating profiles for " + mDevice.getAlias() + ", " + mDevice);
             BluetoothClass bluetoothClass = mDevice.getBluetoothClass();
 
             if (bluetoothClass != null) Log.v(TAG, "Class: " + bluetoothClass.toString());
diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java
index 33e7540..7050db1 100644
--- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java
+++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManager.java
@@ -166,7 +166,7 @@
             return cachedDevice.getName();
         }
 
-        String name = device.getAliasName();
+        String name = device.getAlias();
         if (name != null) {
             return name;
         }
diff --git a/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java b/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java
index ea3c1d9..092cbf3 100644
--- a/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java
+++ b/packages/SettingsLib/src/com/android/settingslib/net/DataUsageController.java
@@ -222,7 +222,8 @@
             }
         }
 
-        return TelephonyManager.from(mContext).createForSubscriptionId(subscriptionId);
+        return mContext.getSystemService(
+                TelephonyManager.class).createForSubscriptionId(subscriptionId);
     }
 
     public void setMobileDataEnabled(boolean enabled) {
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/OWNERS b/packages/SettingsLib/src/com/android/settingslib/wifi/OWNERS
index d5d2e9e..f506b7c 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/OWNERS
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/OWNERS
@@ -1,7 +1,7 @@
 # Default reviewers for this and subdirectories.
+qal@google.com
+arcwang@google.com
+govenliu@google.com
 asapperstein@google.com
-asargent@google.com
-dling@google.com
-zhfan@google.com
 
 # Emergency approvers in case the above are not available
\ No newline at end of file
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java
index dc47de8..c37509b 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceManagerTest.java
@@ -95,9 +95,9 @@
         when(mDevice1.getName()).thenReturn(DEVICE_NAME_1);
         when(mDevice2.getName()).thenReturn(DEVICE_NAME_2);
         when(mDevice3.getName()).thenReturn(DEVICE_NAME_3);
-        when(mDevice1.getAliasName()).thenReturn(DEVICE_ALIAS_1);
-        when(mDevice2.getAliasName()).thenReturn(DEVICE_ALIAS_2);
-        when(mDevice3.getAliasName()).thenReturn(DEVICE_ALIAS_3);
+        when(mDevice1.getAlias()).thenReturn(DEVICE_ALIAS_1);
+        when(mDevice2.getAlias()).thenReturn(DEVICE_ALIAS_2);
+        when(mDevice3.getAlias()).thenReturn(DEVICE_ALIAS_3);
         when(mDevice1.getBluetoothClass()).thenReturn(DEVICE_CLASS_1);
         when(mDevice2.getBluetoothClass()).thenReturn(DEVICE_CLASS_2);
         when(mDevice3.getBluetoothClass()).thenReturn(DEVICE_CLASS_2);
@@ -224,7 +224,7 @@
         assertThat(cachedDevice1.getName()).isEqualTo(DEVICE_ALIAS_1);
 
         final String newAliasName = "NewAliasName";
-        when(mDevice1.getAliasName()).thenReturn(newAliasName);
+        when(mDevice1.getAlias()).thenReturn(newAliasName);
         mCachedDeviceManager.onDeviceNameUpdated(mDevice1);
         assertThat(cachedDevice1.getName()).isEqualTo(newAliasName);
     }
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceTest.java
index 93dcbfe..999916d 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/CachedBluetoothDeviceTest.java
@@ -699,7 +699,7 @@
 
     @Test
     public void deviceName_testAliasNameAvailable() {
-        when(mDevice.getAliasName()).thenReturn(DEVICE_ALIAS);
+        when(mDevice.getAlias()).thenReturn(DEVICE_ALIAS);
         when(mDevice.getName()).thenReturn(DEVICE_NAME);
         CachedBluetoothDevice cachedBluetoothDevice =
                 new CachedBluetoothDevice(mContext, mProfileManager, mDevice);
@@ -722,7 +722,7 @@
     @Test
     public void deviceName_testRenameDevice() {
         final String[] alias = {DEVICE_ALIAS};
-        doAnswer(invocation -> alias[0]).when(mDevice).getAliasName();
+        doAnswer(invocation -> alias[0]).when(mDevice).getAlias();
         doAnswer(invocation -> {
             alias[0] = (String) invocation.getArguments()[0];
             return true;
@@ -839,14 +839,14 @@
 
     @Test
     public void getName_aliasNameNotNull_returnAliasName() {
-        when(mDevice.getAliasName()).thenReturn(DEVICE_NAME);
+        when(mDevice.getAlias()).thenReturn(DEVICE_NAME);
 
         assertThat(mCachedDevice.getName()).isEqualTo(DEVICE_NAME);
     }
 
     @Test
     public void getName_aliasNameIsNull_returnAddress() {
-        when(mDevice.getAliasName()).thenReturn(null);
+        when(mDevice.getAlias()).thenReturn(null);
 
         assertThat(mCachedDevice.getName()).isEqualTo(DEVICE_ADDRESS);
     }
@@ -854,7 +854,7 @@
     @Test
     public void setName_setDeviceNameIsNotNull() {
         final String name = "test name";
-        when(mDevice.getAliasName()).thenReturn(DEVICE_NAME);
+        when(mDevice.getAlias()).thenReturn(DEVICE_NAME);
 
         mCachedDevice.setName(name);
 
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HearingAidDeviceManagerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HearingAidDeviceManagerTest.java
index 2b5466c..7be176a 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HearingAidDeviceManagerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/bluetooth/HearingAidDeviceManagerTest.java
@@ -75,8 +75,8 @@
         when(mDevice2.getAddress()).thenReturn(DEVICE_ADDRESS_2);
         when(mDevice1.getName()).thenReturn(DEVICE_NAME_1);
         when(mDevice2.getName()).thenReturn(DEVICE_NAME_2);
-        when(mDevice1.getAliasName()).thenReturn(DEVICE_ALIAS_1);
-        when(mDevice2.getAliasName()).thenReturn(DEVICE_ALIAS_2);
+        when(mDevice1.getAlias()).thenReturn(DEVICE_ALIAS_1);
+        when(mDevice2.getAlias()).thenReturn(DEVICE_ALIAS_2);
         when(mDevice1.getBluetoothClass()).thenReturn(DEVICE_CLASS);
         when(mDevice2.getBluetoothClass()).thenReturn(DEVICE_CLASS);
         when(mLocalBluetoothManager.getEventManager()).thenReturn(mBluetoothEventManager);
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/DataUsageControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/DataUsageControllerTest.java
index 3da5e76..f7bee30 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/DataUsageControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/net/DataUsageControllerTest.java
@@ -75,7 +75,7 @@
     public void setUp() throws RemoteException {
         MockitoAnnotations.initMocks(this);
         when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager);
-        when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
+        when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
         when(mContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE))
                 .thenReturn(mSubscriptionManager);
         when(mContext.getSystemService(NetworkStatsManager.class)).thenReturn(mNetworkStatsManager);
diff --git a/packages/Shell/AndroidManifest.xml b/packages/Shell/AndroidManifest.xml
index 047ac59..13fc881 100644
--- a/packages/Shell/AndroidManifest.xml
+++ b/packages/Shell/AndroidManifest.xml
@@ -207,6 +207,9 @@
     <!-- Permission required for CTS test - CrossProfileAppsHostSideTest -->
     <uses-permission android:name="android.permission.INTERACT_ACROSS_PROFILES"/>
 
+    <!-- Permission requried for CTS test - UiModeManagerTest -->
+    <uses-permission android:name="android.permission.ENTER_CAR_MODE_PRIORITIZED"/>
+
     <application android:label="@string/app_label"
                 android:theme="@android:style/Theme.DeviceDefault.DayNight"
                 android:defaultToDeviceProtectedStorage="true"
diff --git a/packages/SystemUI/src/com/android/keyguard/CarrierTextController.java b/packages/SystemUI/src/com/android/keyguard/CarrierTextController.java
index 0efc5bf..2f4406b 100644
--- a/packages/SystemUI/src/com/android/keyguard/CarrierTextController.java
+++ b/packages/SystemUI/src/com/android/keyguard/CarrierTextController.java
@@ -171,14 +171,17 @@
         mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
         mSeparator = separator;
         mWakefulnessLifecycle = Dependency.get(WakefulnessLifecycle.class);
-        mSimSlotsNumber = ((TelephonyManager) context.getSystemService(
-                Context.TELEPHONY_SERVICE)).getSupportedModemCount();
+        mSimSlotsNumber = getTelephonyManager().getSupportedModemCount();
         mSimErrorState = new boolean[mSimSlotsNumber];
         updateDisplayOpportunisticSubscriptionCarrierText(SystemProperties.getBoolean(
                 TelephonyProperties.DISPLAY_OPPORTUNISTIC_SUBSCRIPTION_CARRIER_TEXT_PROPERTY_NAME,
                 false));
     }
 
+    private TelephonyManager getTelephonyManager() {
+        return (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
+    }
+
     /**
      * Checks if there are faulty cards. Adds the text depending on the slot of the card
      *
@@ -194,7 +197,7 @@
         CharSequence carrierTextForSimIOError = getCarrierTextForSimState(
                 IccCardConstants.State.CARD_IO_ERROR, carrier);
         // mSimErrorState has the state of each sim indexed by slotID.
-        for (int index = 0; index < mSimErrorState.length; index++) {
+        for (int index = 0; index < getTelephonyManager().getActiveModemCount(); index++) {
             if (!mSimErrorState[index]) {
                 continue;
             }
@@ -227,8 +230,7 @@
      * @param callback Callback to provide text updates
      */
     public void setListening(CarrierTextCallback callback) {
-        TelephonyManager telephonyManager = ((TelephonyManager) mContext
-                .getSystemService(Context.TELEPHONY_SERVICE));
+        TelephonyManager telephonyManager = getTelephonyManager();
         if (callback != null) {
             mCarrierTextCallback = callback;
             if (ConnectivityManager.from(mContext).isNetworkSupported(
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarMobileView.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarMobileView.java
index 689d161..239addd 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarMobileView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarMobileView.java
@@ -208,11 +208,9 @@
 
     @Override
     public void onDarkChanged(Rect area, float darkIntensity, int tint) {
-        if (!isInArea(area, this)) {
-            return;
-        }
+        float intensity = isInArea(area, this) ? darkIntensity : 0;
         mMobileDrawable.setTintList(
-                ColorStateList.valueOf(mDualToneHandler.getSingleColor(darkIntensity)));
+                ColorStateList.valueOf(mDualToneHandler.getSingleColor(intensity)));
         ColorStateList color = ColorStateList.valueOf(getTint(area, this, tint));
         mIn.setImageTintList(color);
         mOut.setImageTintList(color);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarWifiView.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarWifiView.java
index 23e2d27..6dbcc44 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarWifiView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarWifiView.java
@@ -236,15 +236,13 @@
 
     @Override
     public void onDarkChanged(Rect area, float darkIntensity, int tint) {
-        if (!isInArea(area, this)) {
-            return;
-        }
-
-        mWifiIcon.setImageTintList(ColorStateList.valueOf(getTint(area, this, tint)));
-        mIn.setImageTintList(ColorStateList.valueOf(getTint(area, this, tint)));
-        mOut.setImageTintList(ColorStateList.valueOf(getTint(area, this, tint)));
-        mDotView.setDecorColor(tint);
-        mDotView.setIconColor(tint, false);
+        int areaTint = getTint(area, this, tint);
+        ColorStateList color = ColorStateList.valueOf(areaTint);
+        mWifiIcon.setImageTintList(color);
+        mIn.setImageTintList(color);
+        mOut.setImageTintList(color);
+        mDotView.setDecorColor(areaTint);
+        mDotView.setIconColor(areaTint, false);
     }
 
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java
index db2be0e..236f17e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java
@@ -21,20 +21,24 @@
 import android.app.ActivityManager;
 import android.content.Context;
 import android.net.ConnectivityManager;
+import android.net.wifi.WifiClient;
 import android.net.wifi.WifiManager;
 import android.os.Handler;
+import android.os.HandlerExecutor;
 import android.os.UserManager;
 import android.util.Log;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
 import java.util.ArrayList;
+import java.util.List;
 
 import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Singleton;
 
 /**
+ * Controller used to retrieve information related to a hotspot.
  */
 @Singleton
 public class HotspotControllerImpl implements HotspotController, WifiManager.SoftApCallback {
@@ -49,10 +53,11 @@
     private final Context mContext;
 
     private int mHotspotState;
-    private int mNumConnectedDevices;
+    private volatile int mNumConnectedDevices;
     private boolean mWaitingForTerminalState;
 
     /**
+     * Controller used to retrieve information related to a hotspot.
      */
     @Inject
     public HotspotControllerImpl(Context context, @Named(MAIN_HANDLER_NAME) Handler mainHandler) {
@@ -96,7 +101,6 @@
     /**
      * Adds {@code callback} to the controller. The controller will update the callback on state
      * changes. It will immediately trigger the callback added to notify current state.
-     * @param callback
      */
     @Override
     public void addCallback(Callback callback) {
@@ -106,13 +110,16 @@
             mCallbacks.add(callback);
             if (mWifiManager != null) {
                 if (mCallbacks.size() == 1) {
-                    mWifiManager.registerSoftApCallback(this, mMainHandler);
+                    mWifiManager.registerSoftApCallback(new HandlerExecutor(mMainHandler), this);
                 } else {
-                    // mWifiManager#registerSoftApCallback triggers a call to onNumClientsChanged
-                    // on the Main Handler. In order to always update the callback on added, we
-                    // make this call when adding callbacks after the first.
+                    // mWifiManager#registerSoftApCallback triggers a call to
+                    // onConnectedClientsChanged on the Main Handler. In order to always update
+                    // the callback on added, we make this call when adding callbacks after the
+                    // first.
                     mMainHandler.post(() ->
-                            callback.onHotspotChanged(isHotspotEnabled(), mNumConnectedDevices));
+                            callback.onHotspotChanged(isHotspotEnabled(),
+                                    mNumConnectedDevices));
+
                 }
             }
         }
@@ -217,8 +224,8 @@
     }
 
     @Override
-    public void onNumClientsChanged(int numConnectedDevices) {
-        mNumConnectedDevices = numConnectedDevices;
+    public void onConnectedClientsChanged(List<WifiClient> clients) {
+        mNumConnectedDevices = clients.size();
         fireHotspotChangedCallback();
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
index e75365e..c519f56 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
@@ -22,6 +22,8 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.provider.Settings.Global;
+import android.telephony.CellSignalStrength;
+import android.telephony.CellSignalStrengthCdma;
 import android.telephony.NetworkRegistrationInfo;
 import android.telephony.PhoneStateListener;
 import android.telephony.ServiceState;
@@ -48,6 +50,7 @@
 import java.io.PrintWriter;
 import java.util.BitSet;
 import java.util.Objects;
+import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -457,6 +460,18 @@
     }
 
     /**
+     * Extracts the CellSignalStrengthCdma from SignalStrength then returns the level
+     */
+    private final int getCdmaLevel() {
+        List<CellSignalStrengthCdma> signalStrengthCdma =
+            mSignalStrength.getCellSignalStrengths(CellSignalStrengthCdma.class);
+        if (!signalStrengthCdma.isEmpty()) {
+            return signalStrengthCdma.get(0).getLevel();
+        }
+        return CellSignalStrength.SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
+    }
+
+    /**
      * Updates the current state based on mServiceState, mSignalStrength, mDataNetType,
      * mDataState, and mSimState.  It should be called any time one of these is updated.
      * This will call listeners if necessary.
@@ -470,7 +485,7 @@
                 && mSignalStrength != null;
         if (mCurrentState.connected) {
             if (!mSignalStrength.isGsm() && mConfig.alwaysShowCdmaRssi) {
-                mCurrentState.level = mSignalStrength.getCdmaLevel();
+                mCurrentState.level = getCdmaLevel();
             } else {
                 mCurrentState.level = mSignalStrength.getLevel();
             }
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/CarrierTextControllerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/CarrierTextControllerTest.java
index 528625e..e74cc8e 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/CarrierTextControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/CarrierTextControllerTest.java
@@ -120,6 +120,7 @@
         mCarrierTextCallbackInfo = new CarrierTextController.CarrierTextCallbackInfo("",
                 new CharSequence[]{}, false, new int[]{});
         when(mTelephonyManager.getSupportedModemCount()).thenReturn(3);
+        when(mTelephonyManager.getActiveModemCount()).thenReturn(3);
 
         mCarrierTextController = new TestCarrierTextController(mContext, SEPARATOR, true, true,
                 mKeyguardUpdateMonitor);
@@ -173,6 +174,15 @@
         // There's only one subscription in the list
         assertEquals(1, captor.getValue().listOfCarriers.length);
         assertEquals(TEST_CARRIER, captor.getValue().listOfCarriers[0]);
+
+        // Now it becomes single SIM active mode.
+        reset(mCarrierTextCallback);
+        when(mTelephonyManager.getActiveModemCount()).thenReturn(1);
+        // Update carrier text. It should ignore error state of subId 3 in inactive slotId.
+        mCarrierTextController.updateCarrierText();
+        mTestableLooper.processAllMessages();
+        verify(mCarrierTextCallback).updateCarrierInfo(captor.capture());
+        assertEquals("TEST_CARRIER", captor.getValue().carrierText);
     }
 
     @Test
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/HotspotControllerImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/HotspotControllerImplTest.java
index 3e4c4d6..631c580 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/HotspotControllerImplTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/HotspotControllerImplTest.java
@@ -42,6 +42,9 @@
 import org.mockito.MockitoAnnotations;
 import org.mockito.invocation.InvocationOnMock;
 
+import java.util.ArrayList;
+import java.util.concurrent.Executor;
+
 @SmallTest
 @RunWith(AndroidTestingRunner.class)
 @TestableLooper.RunWithLooper
@@ -67,10 +70,11 @@
         mContext.addMockSystemService(WifiManager.class, mWifiManager);
 
         doAnswer((InvocationOnMock invocation) -> {
-            ((WifiManager.SoftApCallback) invocation.getArgument(0)).onNumClientsChanged(1);
+            ((WifiManager.SoftApCallback) invocation.getArgument(1))
+                    .onConnectedClientsChanged(new ArrayList<>());
             return null;
-        }).when(mWifiManager).registerSoftApCallback(any(WifiManager.SoftApCallback.class),
-                any(Handler.class));
+        }).when(mWifiManager).registerSoftApCallback(any(Executor.class),
+                any(WifiManager.SoftApCallback.class));
 
         mController = new HotspotControllerImpl(mContext, new Handler(mLooper.getLooper()));
     }
@@ -80,7 +84,7 @@
         mController.addCallback(mCallback1);
         mController.addCallback(mCallback2);
 
-        verify(mWifiManager, times(1)).registerSoftApCallback(eq(mController), any());
+        verify(mWifiManager, times(1)).registerSoftApCallback(any(), eq(mController));
     }
 
     @Test
diff --git a/packages/Tethering/Android.bp b/packages/Tethering/Android.bp
index 998572f..7e8721d 100644
--- a/packages/Tethering/Android.bp
+++ b/packages/Tethering/Android.bp
@@ -20,13 +20,15 @@
     srcs: [
         "src/**/*.java",
         ":framework-tethering-shared-srcs",
+        ":net-module-utils-srcs",
         ":services-tethering-shared-srcs",
-        ":servicescore-tethering-src",
     ],
     static_libs: [
         "androidx.annotation_annotation",
-        "netd_aidl_interface-java",
-        "networkstack-aidl-interfaces-java",
+        "netd_aidl_interface-unstable-java",
+        "netlink-client",
+        "networkstack-aidl-interfaces-unstable-java",
+        "android.hardware.tetheroffload.control-V1.0-java",
         "tethering-client",
     ],
     manifest: "AndroidManifestBase.xml",
@@ -38,11 +40,52 @@
     defaults: ["TetheringAndroidLibraryDefaults"],
 }
 
+// Due to b/143733063, APK can't access a jni lib that is in APEX (but not in the APK).
+cc_library {
+    name: "libtetheroffloadjni",
+    srcs: [
+        "jni/com_android_server_connectivity_tethering_OffloadHardwareInterface.cpp",
+    ],
+    shared_libs: [
+        "libcgrouprc",
+        "libnativehelper_compat_libc++",
+        "libvndksupport",
+    ],
+    static_libs: [
+        "android.hardware.tetheroffload.config@1.0",
+        "liblog",
+        "libbase",
+        "libbinderthreadstate",
+        "libcutils",
+        "libhidlbase",
+        "libjsoncpp",
+        "libprocessgroup",
+        "libutils",
+    ],
+
+    cflags: [
+        "-Wall",
+        "-Werror",
+        "-Wno-unused-parameter",
+        "-Wthread-safety",
+    ],
+
+    ldflags: ["-Wl,--exclude-libs=ALL,-error-limit=0"],
+}
+
 // Common defaults for compiling the actual APK.
 java_defaults {
     name: "TetheringAppDefaults",
     platform_apis: true,
     privileged: true,
+    // Build system doesn't track transitive dependeicies for jni_libs, list all the dependencies
+    // explicitly.
+    jni_libs: [
+        "libcgrouprc",
+        "libnativehelper_compat_libc++",
+        "libvndksupport",
+        "libtetheroffloadjni",
+    ],
     resource_dirs: [
         "res",
     ],
@@ -52,7 +95,16 @@
 }
 
 // Non-updatable tethering running in the system server process for devices not using the module
-// TODO: build in-process tethering APK here.
+android_app {
+    name: "InProcessTethering",
+    defaults: ["TetheringAppDefaults"],
+    static_libs: ["TetheringApiCurrentLib"],
+    certificate: "platform",
+    manifest: "AndroidManifest_InProcess.xml",
+    // InProcessTethering is a replacement for Tethering
+    overrides: ["Tethering"],
+    // TODO: use PlatformNetworkPermissionConfig.
+}
 
 // Updatable tethering packaged as an application
 android_app {
@@ -65,26 +117,3 @@
     // The permission configuration *must* be included to ensure security of the device
     required: ["NetworkPermissionConfig"],
 }
-
-// This group will be removed when tethering migration is done.
-filegroup {
-    name: "tethering-servicescore-srcs",
-    srcs: [
-        "src/com/android/server/connectivity/tethering/EntitlementManager.java",
-        "src/com/android/server/connectivity/tethering/TetheringConfiguration.java",
-        "src/com/android/server/connectivity/tethering/UpstreamNetworkMonitor.java",
-    ],
-}
-
-// This group will be removed when tethering migration is done.
-filegroup {
-    name: "tethering-servicesnet-srcs",
-    srcs: [
-        "src/android/net/dhcp/DhcpServerCallbacks.java",
-        "src/android/net/dhcp/DhcpServingParamsParcelExt.java",
-        "src/android/net/ip/IpServer.java",
-        "src/android/net/ip/RouterAdvertisementDaemon.java",
-        "src/android/net/util/InterfaceSet.java",
-        "src/android/net/util/PrefixUtils.java",
-    ],
-}
diff --git a/packages/Tethering/AndroidManifest.xml b/packages/Tethering/AndroidManifest.xml
index eb51593..1430ed0 100644
--- a/packages/Tethering/AndroidManifest.xml
+++ b/packages/Tethering/AndroidManifest.xml
@@ -25,5 +25,11 @@
         android:process="com.android.networkstack.process"
         android:extractNativeLibs="false"
         android:persistent="true">
+        <service android:name="com.android.server.connectivity.tethering.TetheringService"
+                 android:permission="android.permission.MAINLINE_NETWORK_STACK">
+            <intent-filter>
+                <action android:name="android.net.ITetheringConnector"/>
+            </intent-filter>
+        </service>
     </application>
 </manifest>
diff --git a/packages/Tethering/AndroidManifest_InProcess.xml b/packages/Tethering/AndroidManifest_InProcess.xml
new file mode 100644
index 0000000..28d405c
--- /dev/null
+++ b/packages/Tethering/AndroidManifest_InProcess.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2019 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.
+ */
+-->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          package="com.android.tethering.inprocess"
+          android:sharedUserId="android.uid.system"
+          android:process="system">
+    <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="29" />
+    <application>
+        <!-- TODO: Using MAINLINE_NETWORK_STACK instead of NETWORK_STACK when tethering run in the
+                   same process with networkstack -->
+        <service android:name="com.android.server.connectivity.tethering.TetheringService"
+                 android:process="system"
+                 android:permission="android.permission.NETWORK_STACK">
+            <intent-filter>
+                <action android:name="android.net.ITetheringConnector.InProcess"/>
+            </intent-filter>
+        </service>
+    </application>
+</manifest>
diff --git a/packages/Tethering/CleanSpec.mk b/packages/Tethering/CleanSpec.mk
new file mode 100644
index 0000000..70db351
--- /dev/null
+++ b/packages/Tethering/CleanSpec.mk
@@ -0,0 +1,52 @@
+# Copyright (C) 2019 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.
+#
+
+# If you don't need to do a full clean build but would like to touch
+# a file or delete some intermediate files, add a clean step to the end
+# of the list.  These steps will only be run once, if they haven't been
+# run before.
+#
+# E.g.:
+#     $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
+#     $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
+#
+# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
+# files that are missing or have been moved.
+#
+# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory.
+# Use $(OUT_DIR) to refer to the "out" directory.
+#
+# If you need to re-do something that's already mentioned, just copy
+# the command and add it to the bottom of the list.  E.g., if a change
+# that you made last week required touching a file and a change you
+# made today requires touching the same file, just copy the old
+# touch step and add it to the end of the list.
+#
+# *****************************************************************
+# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST ABOVE THE BANNER
+# *****************************************************************
+
+# For example:
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates)
+#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
+#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f)
+#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
+
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/priv-app/Tethering)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/priv-app/InProcessTethering)
+
+# ******************************************************************
+# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST ABOVE THIS BANNER
+# ******************************************************************
diff --git a/packages/Tethering/apex/Android.bp b/packages/Tethering/apex/Android.bp
new file mode 100644
index 0000000..bca01ebd
--- /dev/null
+++ b/packages/Tethering/apex/Android.bp
@@ -0,0 +1,35 @@
+//
+// Copyright (C) 2019 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.
+//
+
+apex {
+    name: "com.android.tethering.apex",
+    apps: ["Tethering"],
+    manifest: "manifest.json",
+    key: "com.android.tethering.apex.key",
+
+    androidManifest: "AndroidManifest.xml",
+}
+
+apex_key {
+    name: "com.android.tethering.apex.key",
+    public_key: "com.android.tethering.apex.avbpubkey",
+    private_key: "com.android.tethering.apex.pem",
+}
+
+android_app_certificate {
+    name: "com.android.tethering.apex.certificate",
+    certificate: "com.android.tethering.apex",
+}
diff --git a/packages/Tethering/apex/AndroidManifest.xml b/packages/Tethering/apex/AndroidManifest.xml
new file mode 100644
index 0000000..7769b79
--- /dev/null
+++ b/packages/Tethering/apex/AndroidManifest.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (C) 2019 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.
+ -->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+  package="com.android.tethering.apex">
+  <!-- APEX does not have classes.dex -->
+  <application android:hasCode="false" />
+  <!-- b/145383354: Current minSdk is locked to Q for development cycle, lock it to next version
+                    before ship. -->
+  <uses-sdk
+      android:minSdkVersion="29"
+      android:targetSdkVersion="29"
+  />
+</manifest>
diff --git a/packages/Tethering/apex/com.android.tethering.apex.avbpubkey b/packages/Tethering/apex/com.android.tethering.apex.avbpubkey
new file mode 100644
index 0000000..9c87111
--- /dev/null
+++ b/packages/Tethering/apex/com.android.tethering.apex.avbpubkey
Binary files differ
diff --git a/packages/Tethering/apex/com.android.tethering.apex.pem b/packages/Tethering/apex/com.android.tethering.apex.pem
new file mode 100644
index 0000000..a8cd12e
--- /dev/null
+++ b/packages/Tethering/apex/com.android.tethering.apex.pem
@@ -0,0 +1,51 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIJKQIBAAKCAgEAwloHpMmwszNBEgUVion141BTvF/oJ5g5DlQIYBtmht4tSpc3
+6elWXd+dhMzFxf/RkxSNRsU+dhD11cPKGp9nUYQQGrHEf3xEKwAHJKRMq26TkJ3o
+1TwOO70TaRKKA4ThNiM3VFDX2vy1ijArhZDIBTGVJCUl9HOHiO+ZJG5DKCx3KXbO
+QWz3c+Lbprr1L76dwIsl5kuoAFwgG0J+9BZhHEzIG1lVpGG7RRLxc8eDIxNN/oKT
+gPYBcOxFYqOECKGBBvElf6MxdRv6xG7gooALY2/HDMYUjAJSOosfwzeymugCzMhK
+e+6CSTAaEfUzuVZvMc2qnd1ly7zpLo9x+TOdH5LEVZpSwqmu2n5bqrUnSEAJUvMz
+SSw0YbsLWJZuTiTV7lecSITgqsmwuZyDexDmUkDQChzrTixsQV6S8vsh/FanjWoi
+zBlPneX8Q7/LME3hxHyLbrabxX0zWiyj8iM9h/8Y4mpO/MjEmmavglTAP4J8zrKD
+FBsntCoch9I49IpYBuO6NfKw1h7AUpLf8gARAjFjRxiJVcSgGY/Wt4/pBzJ57T5g
+xPvqxfpPQP0OA2CT8LqqzZIR8jXs8/TquvwLkkY2kRRPXx+azd5oU2A0uonrUY31
+Bc1obfmWPuEMz9bO/i06ETHuWPd4RiUNaB8qEmjYuKJfhv72YNcRwhrAYJECAwEA
+AQKCAgAaQn3b5yCH5fn5zFQPxvpBP35A6ph8mRXEeNg03B7rRCPMe0gjw9JWlrs6
+0Uw7p4gSnmlEUaxR2ZLN0kmBdV5JZlWitbg+HXU8diGA8u4lD6jCloN6JEYsDi0M
+OmQJe6/OV83HB7FStmh1BnMq9dgA06U6IAbT07RRbUY85OUQDYoAQTw3HNkGgHV7
+PrGYROIdvO9fAYPuoIP6Cu8KXee7Iii7gUOQFWBvQdL7+M4gNCCKrevuNc8WCeaK
+IFvbqq67WGPfrhYlo6UrW2vgqPpg8h5r/GuUS0/+9wNQpjrssUKHltxxiFV0PBqZ
+qI7XkPUvPoG6GMsDT0AWeW1F5ZJqEGPN67Xek0BCD0cpUli+nHD0yWGVHtkpHU2D
+qUOZdB2COfBuXRdW1LsYNPg8YjTCPsmGhISLTwiTNcZJeTxoK1y0CcVW9d7Af2aD
+lYzCegscQlXkSZiFj9s90Vd3KdD2XKrH/ADxzsOxQJ89ka004efdQa5/MKs9aChG
+/5XrwBEfN4O92OjY7KqXUAwB7CcVzNymOjD6r07LM24zbkRpwwXlkP0wmjsHBXkh
+8p0ISmY9QRdvhBgYmFmoPWZncM0zym9LI8atBs4CijQ7JjuOQ8HgHg+Se2eppWfe
+t8r6TVkDB8JeNAMxjX9q0G7icf3JjlIrgERZfyXLmpduR9NdkQKCAQEA5rp2fSKh
+RwihHNtJhNktFJuLR9OA++vyfjqhWnB8CrLPo3//LGWW/+WBr8EwXi/76hQpeKlf
+u8SmkTtxIHlTP2Brh2koh1Qf8HKzPHGjZeDFOoVPKHPqe3nV+cv3srd1mS0Eq3BA
+ZFQq+l61f2iiTZKxDroCahNEa8VMzirW6nKb5xhyMPHXgncCUdphHbwAGatas6be
+RUFg4ChH8BwX6jYw7leRUy2K6OqEl0fckT4Laitlb/ezKtwmD4PPE95q5hH0v3SO
+wetHWafiNrOXPn2wQqBrI2y+AfbTjNmQiaIPgcFKAQ7V3n+c3XfGZ9Xfv4L8m/wo
+RZ4ika1zur021QKCAQEA16OUBPA7BnWd+RJFri2kJBG5JZElaV9chO2ZHcXUbFR9
+HIPkWN19bJbki8Ca0w8FUQuS/M7JeeFjoZ194NlczbR899GVmb0X2AUKXilMacs3
+IONxIDczx3KFtsge8ewXRAjQvgE7M3NpmmJfPLPog7spMCbUIxbc3jzjiZgB/J1s
+WytlUTUY/Zy4V1wujkoydgK2KcHcEWG2oIy7EP0RwnL1NhTksXOtBH6+MoRMAT+H
+fcBK6yfJBNBRQzJ0PdkCCLdQPN1VtwRlWjPXZ3ey4fWvZ399wSLUkM2V1jB4GcOZ
++DAgtwFKs9+HfOdV42GgFWFcjP+bkM3bcdrQFnmYzQKCAQAQnf1KpePXqddwrJpu
+5vVINquhUKpJeoTMcoyMZu2IF7i8nctS9z4Yz/63GcLSBcKu6STTe99ZNqCIdS+A
+lzxXpCoaZoh0tqpWNuyRvd12yOlrfY5l63NH0U6H3xjH1k6x6XwcnMkGcMlnnsqT
+koWd8KKv3NWvrhOPb3ZIou03lWmFC02uGLzcuJWCL6gu7AtVzfGKXspDUqIXgs8r
+i9ptE9oSUFw3EWCfxcQm4RYRn9ZSny1/EufkflZ/Z47Sb4Jjb4ehAlQFw1wwKNcx
++V07MvIu2j7dHkfQ/GXgDwtJ3lIfljwuN1NP4wD5Mlcnw0+KC3UGBvMfkHQM6eEb
+4eTBAoIBAQDWfZsqHlpX3n431XkB+9wdFJP5ThrMaVJ51mxLNRBKgO/BgV+NFSNA
+9AZ5DCf0cCh1qPGYDYhSd2LGywT+trac1j7Hse0AcxpYgQsDBkk/oic/y3wm80HJ
+zZw7Z2uAb7nkrnATzt24G8CbE+ZvVvScs3oQr06raH5hgGdD4bN4No4lUVECKbKl
+8VFbdBHK7vqqb6AKgQ4JLAygPduE1nTn2bkXBklESS98HSXK0dVYGH0JFFBw/63v
+39Y05ObC7iwbx1tEb1RnKzQ1OQO1o1aHc/35ENNhXOfa8ONtneCYn/ty50xjPCG2
+MU1vbBv+hIjbO3D3vvhaXKk+4svAz0qxAoIBAQC84FJEjKHJHx17jLeoTuDfuxwX
+6bOQrI3nHbtnFRvPrMryWRDtHLv89Zma3o68/n4vTn5+AnvgYMZifOYlTlIPxinH
+tlE+qCD8KBXUlZdrc+5GGM18lp5tF3Ro4LireH+OhiOAWawaSzDIDYdiR6Kz9NU+
+SjcHKjDObeM6iMEukoaRsufMedpUSrnbzMraAJgBZGay1NZs/o8Icl3OySYPZWEK
+MJxVBMXU9QcUp2GEioYd/eNuP9rwyjq/EIUDJbP2vESAe6+FdGbIgvyYTV/gnKaH
+GcvyMNVZbCMp/wCYNonjlu+18m2w+pVs2uuZLqORkrKYhisK83TKxh4YOWJh
+-----END RSA PRIVATE KEY-----
diff --git a/packages/Tethering/apex/com.android.tethering.apex.pk8 b/packages/Tethering/apex/com.android.tethering.apex.pk8
new file mode 100644
index 0000000..5663246
--- /dev/null
+++ b/packages/Tethering/apex/com.android.tethering.apex.pk8
Binary files differ
diff --git a/packages/Tethering/apex/com.android.tethering.apex.x509.pem b/packages/Tethering/apex/com.android.tethering.apex.x509.pem
new file mode 100644
index 0000000..a5e9401
--- /dev/null
+++ b/packages/Tethering/apex/com.android.tethering.apex.x509.pem
@@ -0,0 +1,36 @@
+-----BEGIN CERTIFICATE-----
+MIIGMzCCBBugAwIBAgIUXVtoDaXanhs7ma8VIICambMkj5UwDQYJKoZIhvcNAQEL
+BQAwgacxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQH
+DA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdBbmRyb2lkMRAwDgYDVQQLDAdBbmRy
+b2lkMSMwIQYDVQQDDBpjb20uYW5kcm9pZC50ZXRoZXJpbmcuYXBleDEiMCAGCSqG
+SIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTAgFw0xOTExMjgwNjU4MTRaGA80
+NzU3MTAyNDA2NTgxNFowgacxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9y
+bmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRAwDgYDVQQKDAdBbmRyb2lkMRAw
+DgYDVQQLDAdBbmRyb2lkMSMwIQYDVQQDDBpjb20uYW5kcm9pZC50ZXRoZXJpbmcu
+YXBleDEiMCAGCSqGSIb3DQEJARYTYW5kcm9pZEBhbmRyb2lkLmNvbTCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBANwzufMBdOj9XlNwiX+bXl/94G0DklWW
+nzob0jPlubCFfRqYkjCf2eOd28Mu/O1pOBcvobnrs9OTpGzcHkz2h58L5/0UMVTS
+tBugwCE49XF5FHawqVHNZE+s5tDmnp2cufhNc5HXHY4oZKh80/WVdbcKxiLjSY2T
+PgRAfB6E6XByKD3t1cSsc3liRVKADoJOVDvmF+xnyvSV/SN38bvTQk9aVs95mj0W
+yov6gzXBnqN7iQlvkhcijZBnFWxvoNbJ5KFy1abYOrm+ueXje4BcNhVOeRMb4E9N
+eo7+9k1GEI7TYG7laNNcp7UJ1IXCJzv/wBFKRg3f1HB3unKfx2rtKerDnVsr3o7V
+KProkgRNKNhhQ6opNguiH1YMzKpWMaC988n4AQPryPdIOmVIxIC5jJrixdxgzDXT
+qeiwFiXis291uyls08B03PQFlY9oWaY9P8s+4hIUjB6rLl+XZXsLDtDFxXeJ97NB
+8XZN1gBJoBoLknFs0C4LKpmJZB/EBao9tXV9dL/5lydRo6HzQDpjW8QX06CTUM6z
+Lr3LVelhqbsuZsV42yBKl+/LfrvNjBLEPdSevt2oMrlJW7m4iSNaMtDtJ2Oy8fA5
+WSIgLWuMbkaFDza3JzwiMzxbtbJHYiy6rY7aVywo3Vqwr1+KO3cq4eLQq62zUjRY
+e6KJwvgE2YmpAgMBAAGjUzBRMB0GA1UdDgQWBBQ8h1oF5JfKFmJCN8nfimbUK+IR
+wjAfBgNVHSMEGDAWgBQ8h1oF5JfKFmJCN8nfimbUK+IRwjAPBgNVHRMBAf8EBTAD
+AQH/MA0GCSqGSIb3DQEBCwUAA4ICAQAP5hIkAxSyt9hRafMKiFlmXcL277bgoxNd
+qGZYbdcCFjfvM2r0QQcM/K7x2ZslFe7mJSzcyMifpm4YQTEo2yYbzKItXQV+eV1K
+9RNksRGFG9umsdWaSHhfQmcmxtr2nu9rGAgxy5OQFtyXmJPUPEM2cb/YeILwYhuQ
+Ux3kaj/fxGltX1JBag7HnMzCTZK++fRo5nqFVOJQgJH8ZpuzGeM9kZvP1+b55046
+PhSnlqmZoKhG4i5POPvvZvaakh/lM3x/N7lIlSaQpCGf7jmldni4L0/GenULVKzH
+iN73aBfh4GEvE0HRcOoH3L7V6kc3WMMLve0chZBHpoVYbzUJEJOUL4yrmwEehqtf
+xm4vlYg3vqtcE3UnU/UGdMb16t77Nz88LlpBY5ierIt0jZMU0M81ppRhr1uiD2Lj
+091sEA0Bxcw/6Q8QNF2eR7SG7Qwipnms+lw6Vcxve+7DdTrdEA0k3XgpdXp8Ya+2
+PAp9SLVp1UHiGq3qD9Jvm34QmlUWAIUTHZs3DSgs1y3K5eyw/cnzTvUUOljc/n2y
+VF0FFZtJ1dVLrzQ80Ik7apEXpBqkgBGV04/L3QYk4C0/sP+1yk6zjeeeAvDtUcHS
+gLtjAfacQl/kwfVQWfrF7VByLcivApC6EUdvT3cURM5DfZRQ4RcKr1D61VYPnNRH
++/NVbMObwQ==
+-----END CERTIFICATE-----
diff --git a/packages/Tethering/apex/manifest.json b/packages/Tethering/apex/manifest.json
new file mode 100644
index 0000000..3fb62f3
--- /dev/null
+++ b/packages/Tethering/apex/manifest.json
@@ -0,0 +1,4 @@
+{
+  "name": "com.android.tethering.apex",
+  "version": 290000000
+}
diff --git a/packages/Tethering/common/TetheringLib/Android.bp b/packages/Tethering/common/TetheringLib/Android.bp
index 5b01b1e..adc5a72 100644
--- a/packages/Tethering/common/TetheringLib/Android.bp
+++ b/packages/Tethering/common/TetheringLib/Android.bp
@@ -18,8 +18,12 @@
 aidl_interface {
     name: "tethering-aidl-interfaces",
     local_include_dir: "src",
+    include_dirs: ["frameworks/base/core/java"], // For framework parcelables.
     srcs: [
+        "src/android/net/ITetherInternalCallback.aidl",
         "src/android/net/ITetheringConnector.aidl",
+        "src/android/net/TetheringConfigurationParcel.aidl",
+        "src/android/net/TetherStatesParcel.aidl",
     ],
     backend: {
         ndk: {
@@ -33,8 +37,15 @@
 
 java_library {
     name: "tethering-client",
-    platform_apis: true,
+    sdk_version: "system_current",
     static_libs: [
         "tethering-aidl-interfaces-java",
     ],
 }
+
+// This is temporary file group which would be removed after TetheringManager is built
+// into tethering-client. Will be done by aosp/1156906.
+filegroup {
+    name: "tethering-manager",
+    srcs: ["src/android/net/TetheringManager.java"],
+}
diff --git a/packages/Tethering/common/TetheringLib/src/android/net/ITetherInternalCallback.aidl b/packages/Tethering/common/TetheringLib/src/android/net/ITetherInternalCallback.aidl
new file mode 100644
index 0000000..abb00e8
--- /dev/null
+++ b/packages/Tethering/common/TetheringLib/src/android/net/ITetherInternalCallback.aidl
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package android.net;
+
+import android.net.Network;
+import android.net.TetheringConfigurationParcel;
+import android.net.TetherStatesParcel;
+
+/**
+ * Callback class for receiving tethering changed events
+ * @hide
+ */
+oneway interface ITetherInternalCallback
+{
+    void onUpstreamChanged(in Network network);
+    void onConfigurationChanged(in TetheringConfigurationParcel config);
+    void onTetherStatesChanged(in TetherStatesParcel states);
+    void onCallbackCreated(in Network network, in TetheringConfigurationParcel config,
+            in TetherStatesParcel states);
+}
diff --git a/packages/Tethering/common/TetheringLib/src/android/net/ITetheringConnector.aidl b/packages/Tethering/common/TetheringLib/src/android/net/ITetheringConnector.aidl
index 443481e..bfe502f 100644
--- a/packages/Tethering/common/TetheringLib/src/android/net/ITetheringConnector.aidl
+++ b/packages/Tethering/common/TetheringLib/src/android/net/ITetheringConnector.aidl
@@ -15,6 +15,23 @@
  */
 package android.net;
 
+import android.net.ITetherInternalCallback;
+import android.os.ResultReceiver;
+
 /** @hide */
 oneway interface ITetheringConnector {
+    void tether(String iface);
+
+    void untether(String iface);
+
+    void setUsbTethering(boolean enable);
+
+    void startTethering(int type, in ResultReceiver receiver, boolean showProvisioningUi);
+
+    void stopTethering(int type);
+
+    void requestLatestTetheringEntitlementResult(int type, in ResultReceiver receiver,
+            boolean showEntitlementUi);
+
+    void registerTetherInternalCallback(ITetherInternalCallback callback);
 }
diff --git a/packages/Tethering/common/TetheringLib/src/android/net/TetherStatesParcel.aidl b/packages/Tethering/common/TetheringLib/src/android/net/TetherStatesParcel.aidl
new file mode 100644
index 0000000..3d842b3
--- /dev/null
+++ b/packages/Tethering/common/TetheringLib/src/android/net/TetherStatesParcel.aidl
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package android.net;
+
+/**
+ * Status details for tethering downstream interfaces.
+ * {@hide}
+ */
+parcelable TetherStatesParcel {
+    String[] availableList;
+    String[] tetheredList;
+    String[] localOnlyList;
+    String[] erroredIfaceList;
+    // List of Last error code corresponding to each errored iface in erroredIfaceList. */
+    // TODO: Improve this as b/143122247.
+    int[] lastErrorList;
+}
diff --git a/packages/Tethering/common/TetheringLib/src/android/net/TetheringConfigurationParcel.aidl b/packages/Tethering/common/TetheringLib/src/android/net/TetheringConfigurationParcel.aidl
new file mode 100644
index 0000000..89f3813
--- /dev/null
+++ b/packages/Tethering/common/TetheringLib/src/android/net/TetheringConfigurationParcel.aidl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package android.net;
+
+/**
+ * Configuration details for tethering.
+ * @hide
+ */
+parcelable TetheringConfigurationParcel {
+    int subId;
+    String[] tetherableUsbRegexs;
+    String[] tetherableWifiRegexs;
+    String[] tetherableBluetoothRegexs;
+    boolean isDunRequired;
+    boolean chooseUpstreamAutomatically;
+    int[] preferredUpstreamIfaceTypes;
+    String[] legacyDhcpRanges;
+    String[] defaultIPv4DNS;
+    boolean enableLegacyDhcpServer;
+    String[] provisioningApp;
+    String provisioningAppNoUi;
+    int provisioningCheckPeriod;
+}
diff --git a/packages/Tethering/common/TetheringLib/src/android/net/TetheringManager.java b/packages/Tethering/common/TetheringLib/src/android/net/TetheringManager.java
new file mode 100644
index 0000000..eb0d443
--- /dev/null
+++ b/packages/Tethering/common/TetheringLib/src/android/net/TetheringManager.java
@@ -0,0 +1,513 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+package android.net;
+
+import static android.Manifest.permission.NETWORK_STACK;
+import static android.net.ConnectivityManager.TETHER_ERROR_NO_ERROR;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.net.util.SharedLog;
+import android.os.ConditionVariable;
+import android.os.IBinder;
+import android.os.RemoteCallbackList;
+import android.os.RemoteException;
+import android.os.ResultReceiver;
+import android.util.Slog;
+
+import com.android.internal.annotations.GuardedBy;
+
+import java.io.PrintWriter;
+import java.util.StringJoiner;
+
+/**
+ * Service used to communicate with the tethering, which is running in a separate module.
+ * @hide
+ */
+public class TetheringManager {
+    private static final String TAG = TetheringManager.class.getSimpleName();
+
+    private static TetheringManager sInstance;
+
+    @Nullable
+    private ITetheringConnector mConnector;
+    private TetherInternalCallback mCallback;
+    private Network mTetherUpstream;
+    private TetheringConfigurationParcel mTetheringConfiguration;
+    private TetherStatesParcel mTetherStatesParcel;
+
+    private final RemoteCallbackList<ITetheringEventCallback> mTetheringEventCallbacks =
+            new RemoteCallbackList<>();
+    @GuardedBy("mLog")
+    private final SharedLog mLog = new SharedLog(TAG);
+
+    private TetheringManager() { }
+
+    /**
+     * Get the TetheringManager singleton instance.
+     */
+    public static synchronized TetheringManager getInstance() {
+        if (sInstance == null) {
+            sInstance = new TetheringManager();
+        }
+        return sInstance;
+    }
+
+    private class TetheringConnection implements
+            ConnectivityModuleConnector.ModuleServiceCallback {
+        @Override
+        public void onModuleServiceConnected(@NonNull IBinder service) {
+            logi("Tethering service connected");
+            registerTetheringService(service);
+        }
+    }
+
+    private void registerTetheringService(@NonNull IBinder service) {
+        final ITetheringConnector connector = ITetheringConnector.Stub.asInterface(service);
+
+        log("Tethering service registered");
+
+        // Currently TetheringManager instance is only used by ConnectivityService and mConnector
+        // only expect to assign once when system server start and bind tethering service.
+        // STOPSHIP: Change mConnector to final before TetheringManager put into boot classpath.
+        mConnector = connector;
+        mCallback = new TetherInternalCallback();
+        try {
+            mConnector.registerTetherInternalCallback(mCallback);
+        } catch (RemoteException e) {
+            e.rethrowFromSystemServer();
+        }
+    }
+
+    private class TetherInternalCallback extends ITetherInternalCallback.Stub {
+        private final ConditionVariable mWaitForCallback = new ConditionVariable(false);
+        private static final int EVENT_CALLBACK_TIMEOUT_MS = 60_000;
+
+        @Override
+        public void onUpstreamChanged(Network network) {
+            mTetherUpstream = network;
+            reportUpstreamChanged(network);
+        }
+
+        @Override
+        public void onConfigurationChanged(TetheringConfigurationParcel config) {
+            mTetheringConfiguration = config;
+        }
+
+        @Override
+        public void onTetherStatesChanged(TetherStatesParcel states) {
+            mTetherStatesParcel = states;
+        }
+
+        @Override
+        public void onCallbackCreated(Network network, TetheringConfigurationParcel config,
+                TetherStatesParcel states) {
+            mTetherUpstream = network;
+            mTetheringConfiguration = config;
+            mTetherStatesParcel = states;
+            mWaitForCallback.open();
+        }
+
+        boolean awaitCallbackCreation() {
+            return mWaitForCallback.block(EVENT_CALLBACK_TIMEOUT_MS);
+        }
+    }
+
+    private void reportUpstreamChanged(Network network) {
+        final int length = mTetheringEventCallbacks.beginBroadcast();
+        try {
+            for (int i = 0; i < length; i++) {
+                try {
+                    mTetheringEventCallbacks.getBroadcastItem(i).onUpstreamChanged(network);
+                } catch (RemoteException e) {
+                    // Not really very much to do here.
+                }
+            }
+        } finally {
+            mTetheringEventCallbacks.finishBroadcast();
+        }
+    }
+
+    /**
+     * Start the tethering service. Should be called only once on device startup.
+     *
+     * <p>This method will start the tethering service either in the network stack process,
+     * or inside the system server on devices that do not support the tethering module.
+     *
+     * {@hide}
+     */
+    public void start() {
+        // Using MAINLINE_NETWORK_STACK permission after cutting off the dpendency of system server.
+        ConnectivityModuleConnector.getInstance().startModuleService(
+                ITetheringConnector.class.getName(), NETWORK_STACK,
+                new TetheringConnection());
+        log("Tethering service start requested");
+    }
+
+    /**
+     * Attempt to tether the named interface.  This will setup a dhcp server
+     * on the interface, forward and NAT IP v4 packets and forward DNS requests
+     * to the best active upstream network interface.  Note that if no upstream
+     * IP network interface is available, dhcp will still run and traffic will be
+     * allowed between the tethered devices and this device, though upstream net
+     * access will of course fail until an upstream network interface becomes
+     * active. Note: return value do not have any meaning. It is better to use
+     * #getTetherableIfaces() to ensure corresponding interface is available for
+     * tethering before calling #tether().
+     *
+     * @deprecated The only usages should be in PanService and Wifi P2P which
+     * need direct access.
+     *
+     * {@hide}
+     */
+    @Deprecated
+    public int tether(@NonNull String iface) {
+        try {
+            mConnector.tether(iface);
+        } catch (RemoteException e) {
+            e.rethrowFromSystemServer();
+        }
+        return TETHER_ERROR_NO_ERROR;
+    }
+
+    /**
+     * Stop tethering the named interface.
+     *
+     * @deprecated
+     * {@hide}
+     */
+    @Deprecated
+    public int untether(@NonNull String iface) {
+        try {
+            mConnector.untether(iface);
+        } catch (RemoteException e) {
+            e.rethrowFromSystemServer();
+        }
+        return TETHER_ERROR_NO_ERROR;
+    }
+
+    /**
+     * Attempt to both alter the mode of USB and Tethering of USB. WARNING: New client should not
+     * use this API anymore. All clients should use #startTethering or #stopTethering which
+     * encapsulate proper entitlement logic. If the API is used and an entitlement check is needed,
+     * downstream USB tethering will be enabled but will not have any upstream.
+     *
+     * @deprecated
+     * {@hide}
+     */
+    @Deprecated
+    public int setUsbTethering(boolean enable) {
+        try {
+            mConnector.setUsbTethering(enable);
+        } catch (RemoteException e) {
+            e.rethrowFromSystemServer();
+        }
+        return TETHER_ERROR_NO_ERROR;
+    }
+
+    /**
+     * Starts tethering and runs tether provisioning for the given type if needed. If provisioning
+     * fails, stopTethering will be called automatically.
+     *
+     * {@hide}
+     */
+    // TODO: improve the usage of ResultReceiver, b/145096122
+    public void startTethering(int type, @NonNull ResultReceiver receiver,
+            boolean showProvisioningUi) {
+        try {
+            mConnector.startTethering(type, receiver, showProvisioningUi);
+        } catch (RemoteException e) {
+            e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
+     * Stops tethering for the given type. Also cancels any provisioning rechecks for that type if
+     * applicable.
+     *
+     * {@hide}
+     */
+    public void stopTethering(int type) {
+        try {
+            mConnector.stopTethering(type);
+        } catch (RemoteException e) {
+            e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
+     * Request the latest value of the tethering entitlement check.
+     *
+     * Note: Allow privileged apps who have TETHER_PRIVILEGED permission to access. If it turns
+     * out some such apps are observed to abuse this API, change to per-UID limits on this API
+     * if it's really needed.
+     */
+    // TODO: improve the usage of ResultReceiver, b/145096122
+    public void requestLatestTetheringEntitlementResult(int type, @NonNull ResultReceiver receiver,
+            boolean showEntitlementUi) {
+        try {
+            mConnector.requestLatestTetheringEntitlementResult(type, receiver, showEntitlementUi);
+        } catch (RemoteException e) {
+            e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
+     * Register tethering event callback.
+     *
+     * {@hide}
+     */
+    public void registerTetheringEventCallback(@NonNull ITetheringEventCallback callback) {
+        mTetheringEventCallbacks.register(callback);
+    }
+
+    /**
+     * Unregister tethering event callback.
+     *
+     * {@hide}
+     */
+    public void unregisterTetheringEventCallback(@NonNull ITetheringEventCallback callback) {
+        mTetheringEventCallbacks.unregister(callback);
+    }
+
+    /**
+     * Get a more detailed error code after a Tethering or Untethering
+     * request asynchronously failed.
+     *
+     * {@hide}
+     */
+    public int getLastTetherError(@NonNull String iface) {
+        if (!mCallback.awaitCallbackCreation()) {
+            throw new NullPointerException("callback was not ready yet");
+        }
+        if (mTetherStatesParcel == null) return TETHER_ERROR_NO_ERROR;
+
+        int i = 0;
+        for (String errored : mTetherStatesParcel.erroredIfaceList) {
+            if (iface.equals(errored)) return mTetherStatesParcel.lastErrorList[i];
+
+            i++;
+        }
+        return TETHER_ERROR_NO_ERROR;
+    }
+
+    /**
+     * Get the list of regular expressions that define any tetherable
+     * USB network interfaces.  If USB tethering is not supported by the
+     * device, this list should be empty.
+     *
+     * {@hide}
+     */
+    public @NonNull String[] getTetherableUsbRegexs() {
+        if (!mCallback.awaitCallbackCreation()) {
+            throw new NullPointerException("callback was not ready yet");
+        }
+        return mTetheringConfiguration.tetherableUsbRegexs;
+    }
+
+    /**
+     * Get the list of regular expressions that define any tetherable
+     * Wifi network interfaces.  If Wifi tethering is not supported by the
+     * device, this list should be empty.
+     *
+     * {@hide}
+     */
+    public @NonNull String[] getTetherableWifiRegexs() {
+        if (!mCallback.awaitCallbackCreation()) {
+            throw new NullPointerException("callback was not ready yet");
+        }
+        return mTetheringConfiguration.tetherableWifiRegexs;
+    }
+
+    /**
+     * Get the list of regular expressions that define any tetherable
+     * Bluetooth network interfaces.  If Bluetooth tethering is not supported by the
+     * device, this list should be empty.
+     *
+     * {@hide}
+     */
+    public @NonNull String[] getTetherableBluetoothRegexs() {
+        if (!mCallback.awaitCallbackCreation()) {
+            throw new NullPointerException("callback was not ready yet");
+        }
+        return mTetheringConfiguration.tetherableBluetoothRegexs;
+    }
+
+    /**
+     * Get the set of tetherable, available interfaces.  This list is limited by
+     * device configuration and current interface existence.
+     *
+     * {@hide}
+     */
+    public @NonNull String[] getTetherableIfaces() {
+        if (!mCallback.awaitCallbackCreation()) {
+            throw new NullPointerException("callback was not ready yet");
+        }
+        if (mTetherStatesParcel == null) return new String[0];
+        return mTetherStatesParcel.availableList;
+    }
+
+    /**
+     * Get the set of tethered interfaces.
+     *
+     * {@hide}
+     */
+    public @NonNull String[] getTetheredIfaces() {
+        if (!mCallback.awaitCallbackCreation()) {
+            throw new NullPointerException("callback was not ready yet");
+        }
+        if (mTetherStatesParcel == null) return new String[0];
+        return mTetherStatesParcel.tetheredList;
+    }
+
+    /**
+     * Get the set of interface names which attempted to tether but
+     * failed.
+     *
+     * {@hide}
+     */
+    public @NonNull String[] getTetheringErroredIfaces() {
+        if (!mCallback.awaitCallbackCreation()) {
+            throw new NullPointerException("callback was not ready yet");
+        }
+        if (mTetherStatesParcel == null) return new String[0];
+        return mTetherStatesParcel.erroredIfaceList;
+    }
+
+    /**
+     * Get the set of tethered dhcp ranges.
+     *
+     * @deprecated This API just return the default value which is not used in DhcpServer.
+     * {@hide}
+     */
+    @Deprecated
+    public @NonNull String[] getTetheredDhcpRanges() {
+        if (!mCallback.awaitCallbackCreation()) {
+            throw new NullPointerException("callback was not ready yet");
+        }
+        return mTetheringConfiguration.legacyDhcpRanges;
+    }
+
+    /**
+     * Check if the device allows for tethering.
+     *
+     * {@hide}
+     */
+    public boolean hasTetherableConfiguration() {
+        if (!mCallback.awaitCallbackCreation()) {
+            throw new NullPointerException("callback was not ready yet");
+        }
+        final boolean hasDownstreamConfiguration =
+                (mTetheringConfiguration.tetherableUsbRegexs.length != 0)
+                || (mTetheringConfiguration.tetherableWifiRegexs.length != 0)
+                || (mTetheringConfiguration.tetherableBluetoothRegexs.length != 0);
+        final boolean hasUpstreamConfiguration =
+                (mTetheringConfiguration.preferredUpstreamIfaceTypes.length != 0)
+                || mTetheringConfiguration.chooseUpstreamAutomatically;
+
+        return hasDownstreamConfiguration && hasUpstreamConfiguration;
+    }
+
+    /**
+     * Log a message in the local log.
+     */
+    private void log(@NonNull String message) {
+        synchronized (mLog) {
+            mLog.log(message);
+        }
+    }
+
+    /**
+     * Log a condition that should never happen.
+     */
+    private void logWtf(@NonNull String message, @Nullable Throwable e) {
+        Slog.wtf(TAG, message);
+        synchronized (mLog) {
+            mLog.e(message, e);
+        }
+    }
+
+    /**
+     * Log a ERROR level message in the local and system logs.
+     */
+    private void loge(@NonNull String message, @Nullable Throwable e) {
+        synchronized (mLog) {
+            mLog.e(message, e);
+        }
+    }
+
+    /**
+     * Log a INFO level message in the local and system logs.
+     */
+    private void logi(@NonNull String message) {
+        synchronized (mLog) {
+            mLog.i(message);
+        }
+    }
+
+    /**
+     * Dump TetheringManager logs to the specified {@link PrintWriter}.
+     */
+    public void dump(@NonNull PrintWriter pw) {
+        // dump is thread-safe on SharedLog
+        mLog.dump(null, pw, null);
+
+        pw.print("subId: ");
+        pw.println(mTetheringConfiguration.subId);
+
+        dumpStringArray(pw, "tetherableUsbRegexs",
+                mTetheringConfiguration.tetherableUsbRegexs);
+        dumpStringArray(pw, "tetherableWifiRegexs",
+                mTetheringConfiguration.tetherableWifiRegexs);
+        dumpStringArray(pw, "tetherableBluetoothRegexs",
+                mTetheringConfiguration.tetherableBluetoothRegexs);
+
+        pw.print("isDunRequired: ");
+        pw.println(mTetheringConfiguration.isDunRequired);
+
+        pw.print("chooseUpstreamAutomatically: ");
+        pw.println(mTetheringConfiguration.chooseUpstreamAutomatically);
+
+        dumpStringArray(pw, "legacyDhcpRanges", mTetheringConfiguration.legacyDhcpRanges);
+        dumpStringArray(pw, "defaultIPv4DNS", mTetheringConfiguration.defaultIPv4DNS);
+
+        dumpStringArray(pw, "provisioningApp", mTetheringConfiguration.provisioningApp);
+        pw.print("provisioningAppNoUi: ");
+        pw.println(mTetheringConfiguration.provisioningAppNoUi);
+
+        pw.print("enableLegacyDhcpServer: ");
+        pw.println(mTetheringConfiguration.enableLegacyDhcpServer);
+
+        pw.println();
+    }
+
+    private static void dumpStringArray(@NonNull PrintWriter pw, @NonNull String label,
+            @Nullable String[] values) {
+        pw.print(label);
+        pw.print(": ");
+
+        if (values != null) {
+            final StringJoiner sj = new StringJoiner(", ", "[", "]");
+            for (String value : values) sj.add(value);
+
+            pw.print(sj.toString());
+        } else {
+            pw.print("null");
+        }
+
+        pw.println();
+    }
+}
diff --git a/services/core/jni/com_android_server_connectivity_tethering_OffloadHardwareInterface.cpp b/packages/Tethering/jni/com_android_server_connectivity_tethering_OffloadHardwareInterface.cpp
similarity index 92%
rename from services/core/jni/com_android_server_connectivity_tethering_OffloadHardwareInterface.cpp
rename to packages/Tethering/jni/com_android_server_connectivity_tethering_OffloadHardwareInterface.cpp
index 3eaf488..663154a 100644
--- a/services/core/jni/com_android_server_connectivity_tethering_OffloadHardwareInterface.cpp
+++ b/packages/Tethering/jni/com_android_server_connectivity_tethering_OffloadHardwareInterface.cpp
@@ -145,4 +145,18 @@
             gMethods, NELEM(gMethods));
 }
 
+extern "C" jint JNI_OnLoad(JavaVM* vm, void*) {
+    JNIEnv *env;
+    if (vm->GetEnv(reinterpret_cast<void**>(&env), JNI_VERSION_1_6) != JNI_OK) {
+        ALOGE("ERROR: GetEnv failed");
+        return JNI_ERR;
+    }
+
+    if (register_android_server_connectivity_tethering_OffloadHardwareInterface(env) < 0) {
+        return JNI_ERR;
+    }
+
+    return JNI_VERSION_1_6;
+}
+
 }; // namespace android
diff --git a/packages/Tethering/src/android/net/util/BaseNetdUnsolicitedEventListener.java b/packages/Tethering/src/android/net/util/BaseNetdUnsolicitedEventListener.java
new file mode 100644
index 0000000..3218c0b
--- /dev/null
+++ b/packages/Tethering/src/android/net/util/BaseNetdUnsolicitedEventListener.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+package android.net.util;
+
+import android.net.INetdUnsolicitedEventListener;
+
+import androidx.annotation.NonNull;
+
+/**
+ * Base {@link INetdUnsolicitedEventListener} that provides no-op implementations which can be
+ * overridden.
+ */
+public class BaseNetdUnsolicitedEventListener extends INetdUnsolicitedEventListener.Stub {
+
+    @Override
+    public void onInterfaceClassActivityChanged(boolean isActive, int timerLabel, long timestampNs,
+            int uid) { }
+
+    @Override
+    public void onQuotaLimitReached(@NonNull String alertName, @NonNull String ifName) { }
+
+    @Override
+    public void onInterfaceDnsServerInfo(@NonNull String ifName, long lifetimeS,
+            @NonNull String[] servers) { }
+
+    @Override
+    public void onInterfaceAddressUpdated(@NonNull String addr, String ifName, int flags,
+            int scope) { }
+
+    @Override
+    public void onInterfaceAddressRemoved(@NonNull String addr, @NonNull String ifName, int flags,
+            int scope) { }
+
+    @Override
+    public void onInterfaceAdded(@NonNull String ifName) { }
+
+    @Override
+    public void onInterfaceRemoved(@NonNull String ifName) { }
+
+    @Override
+    public void onInterfaceChanged(@NonNull String ifName, boolean up) { }
+
+    @Override
+    public void onInterfaceLinkStateChanged(@NonNull String ifName, boolean up) { }
+
+    @Override
+    public void onRouteChanged(boolean updated, @NonNull String route, @NonNull String gateway,
+            @NonNull String ifName) { }
+
+    @Override
+    public void onStrictCleartextDetected(int uid, @NonNull String hex) { }
+
+    @Override
+    public int getInterfaceVersion() {
+        return INetdUnsolicitedEventListener.VERSION;
+    }
+}
diff --git a/services/net/java/android/net/util/VersionedBroadcastListener.java b/packages/Tethering/src/android/net/util/VersionedBroadcastListener.java
similarity index 91%
rename from services/net/java/android/net/util/VersionedBroadcastListener.java
rename to packages/Tethering/src/android/net/util/VersionedBroadcastListener.java
index 107c404..e2804ab 100644
--- a/services/net/java/android/net/util/VersionedBroadcastListener.java
+++ b/packages/Tethering/src/android/net/util/VersionedBroadcastListener.java
@@ -39,10 +39,6 @@
 public class VersionedBroadcastListener {
     private static final boolean DBG = false;
 
-    public interface IntentCallback {
-        public void run(Intent intent);
-    }
-
     private final String mTag;
     private final Context mContext;
     private final Handler mHandler;
@@ -61,6 +57,7 @@
         mGenerationNumber = new AtomicInteger(0);
     }
 
+    /** Start listening to intent broadcast. */
     public void startListening() {
         if (DBG) Log.d(mTag, "startListening");
         if (mReceiver != null) return;
@@ -69,6 +66,7 @@
         mContext.registerReceiver(mReceiver, mFilter, null, mHandler);
     }
 
+    /** Stop listening to intent broadcast. */
     public void stopListening() {
         if (DBG) Log.d(mTag, "stopListening");
         if (mReceiver == null) return;
@@ -85,8 +83,7 @@
         // Used to verify this receiver is still current.
         public final int generationNumber;
 
-        public Receiver(
-                String tag, AtomicInteger atomicGenerationNumber, Consumer<Intent> callback) {
+        Receiver(String tag, AtomicInteger atomicGenerationNumber, Consumer<Intent> callback) {
             this.tag = tag;
             this.atomicGenerationNumber = atomicGenerationNumber;
             this.callback = callback;
@@ -98,8 +95,8 @@
             final int currentGenerationNumber = atomicGenerationNumber.get();
 
             if (DBG) {
-                Log.d(tag, "receiver generationNumber=" + generationNumber +
-                        ", current generationNumber=" + currentGenerationNumber);
+                Log.d(tag, "receiver generationNumber=" + generationNumber
+                        + ", current generationNumber=" + currentGenerationNumber);
             }
             if (generationNumber != currentGenerationNumber) return;
 
diff --git a/packages/Tethering/src/com/android/server/connectivity/tethering/EntitlementManager.java b/packages/Tethering/src/com/android/server/connectivity/tethering/EntitlementManager.java
index 6b0f1de..ba5d08d 100644
--- a/packages/Tethering/src/com/android/server/connectivity/tethering/EntitlementManager.java
+++ b/packages/Tethering/src/com/android/server/connectivity/tethering/EntitlementManager.java
@@ -47,6 +47,7 @@
 import android.os.PersistableBundle;
 import android.os.ResultReceiver;
 import android.os.SystemClock;
+import android.os.SystemProperties;
 import android.os.UserHandle;
 import android.provider.Settings;
 import android.telephony.CarrierConfigManager;
@@ -55,7 +56,6 @@
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.StateMachine;
-import com.android.server.connectivity.MockableSystemProperties;
 
 import java.io.PrintWriter;
 
@@ -94,7 +94,6 @@
     private final ArraySet<Integer> mCurrentTethers;
     private final Context mContext;
     private final int mPermissionChangeMessageCode;
-    private final MockableSystemProperties mSystemProperties;
     private final SharedLog mLog;
     private final SparseIntArray mEntitlementCacheValue;
     private final EntitlementHandler mHandler;
@@ -110,12 +109,12 @@
     private TetheringConfigurationFetcher mFetcher;
 
     public EntitlementManager(Context ctx, StateMachine tetherMasterSM, SharedLog log,
-            int permissionChangeMessageCode, MockableSystemProperties systemProperties) {
+            int permissionChangeMessageCode) {
+
         mContext = ctx;
         mLog = log.forSubComponent(TAG);
         mCurrentTethers = new ArraySet<Integer>();
         mCellularPermitted = new SparseIntArray();
-        mSystemProperties = systemProperties;
         mEntitlementCacheValue = new SparseIntArray();
         mTetherMasterSM = tetherMasterSM;
         mPermissionChangeMessageCode = permissionChangeMessageCode;
@@ -287,7 +286,7 @@
      */
     @VisibleForTesting
     protected boolean isTetherProvisioningRequired(final TetheringConfiguration config) {
-        if (mSystemProperties.getBoolean(DISABLE_PROVISIONING_SYSPROP_KEY, false)
+        if (SystemProperties.getBoolean(DISABLE_PROVISIONING_SYSPROP_KEY, false)
                 || config.provisioningApp.length == 0) {
             return false;
         }
@@ -526,8 +525,8 @@
                     handleMaybeRunProvisioning(config);
                     break;
                 case EVENT_GET_ENTITLEMENT_VALUE:
-                    handleGetLatestTetheringEntitlementValue(msg.arg1, (ResultReceiver) msg.obj,
-                            toBool(msg.arg2));
+                    handleRequestLatestTetheringEntitlementValue(msg.arg1,
+                            (ResultReceiver) msg.obj, toBool(msg.arg2));
                     break;
                 default:
                     mLog.log("Unknown event: " + msg.what);
@@ -651,15 +650,15 @@
     }
 
     /** Get the last value of the tethering entitlement check. */
-    public void getLatestTetheringEntitlementResult(int downstream, ResultReceiver receiver,
+    public void requestLatestTetheringEntitlementResult(int downstream, ResultReceiver receiver,
             boolean showEntitlementUi) {
         mHandler.sendMessage(mHandler.obtainMessage(EVENT_GET_ENTITLEMENT_VALUE,
                 downstream, encodeBool(showEntitlementUi), receiver));
 
     }
 
-    private void handleGetLatestTetheringEntitlementValue(int downstream, ResultReceiver receiver,
-            boolean showEntitlementUi) {
+    private void handleRequestLatestTetheringEntitlementValue(int downstream,
+            ResultReceiver receiver, boolean showEntitlementUi) {
         final TetheringConfiguration config = mFetcher.fetchTetheringConfiguration();
         if (!isTetherProvisioningRequired(config)) {
             receiver.send(TETHER_ERROR_NO_ERROR, null);
diff --git a/services/core/java/com/android/server/connectivity/tethering/IPv6TetheringCoordinator.java b/packages/Tethering/src/com/android/server/connectivity/tethering/IPv6TetheringCoordinator.java
similarity index 92%
rename from services/core/java/com/android/server/connectivity/tethering/IPv6TetheringCoordinator.java
rename to packages/Tethering/src/com/android/server/connectivity/tethering/IPv6TetheringCoordinator.java
index 8186343..edfe3ca 100644
--- a/services/core/java/com/android/server/connectivity/tethering/IPv6TetheringCoordinator.java
+++ b/packages/Tethering/src/com/android/server/connectivity/tethering/IPv6TetheringCoordinator.java
@@ -82,6 +82,7 @@
         mNextSubnetId = 0;
     }
 
+    /** Add active downstream to ipv6 tethering candidate list. */
     public void addActiveDownstream(IpServer downstream, int mode) {
         if (findDownstream(downstream) == null) {
             // Adding a new downstream appends it to the list. Adding a
@@ -97,6 +98,7 @@
         }
     }
 
+    /** Remove downstream from ipv6 tethering candidate list. */
     public void removeActiveDownstream(IpServer downstream) {
         stopIPv6TetheringOn(downstream);
         if (mActiveDownstreams.remove(findDownstream(downstream))) {
@@ -112,6 +114,11 @@
         }
     }
 
+    /**
+     * Call when upstream NetworkState may be changed.
+     * If upstream has ipv6 for tethering, update this new NetworkState
+     * to IpServer. Otherwise stop ipv6 tethering on downstream interfaces.
+     */
     public void updateUpstreamNetworkState(NetworkState ns) {
         if (VDBG) {
             Log.d(TAG, "updateUpstreamNetworkState: " + toDebugString(ns));
@@ -122,8 +129,8 @@
             return;
         }
 
-        if (mUpstreamNetworkState != null &&
-            !ns.network.equals(mUpstreamNetworkState.network)) {
+        if (mUpstreamNetworkState != null
+                && !ns.network.equals(mUpstreamNetworkState.network)) {
             stopIPv6TetheringOnAllInterfaces();
         }
 
@@ -221,8 +228,8 @@
 
         for (RouteInfo routeInfo : lp.getRoutes()) {
             final IpPrefix destination = routeInfo.getDestination();
-            if ((destination.getAddress() instanceof Inet6Address) &&
-                (destination.getPrefixLength() <= 64)) {
+            if ((destination.getAddress() instanceof Inet6Address)
+                    && (destination.getPrefixLength() <= 64)) {
                 v6only.addRoute(routeInfo);
             }
         }
@@ -242,12 +249,12 @@
     // TODO: Delete this and switch to LinkAddress#isGlobalPreferred once we
     // announce our own IPv6 address as DNS server.
     private static boolean isIPv6GlobalAddress(InetAddress ip) {
-        return (ip instanceof Inet6Address) &&
-               !ip.isAnyLocalAddress() &&
-               !ip.isLoopbackAddress() &&
-               !ip.isLinkLocalAddress() &&
-               !ip.isSiteLocalAddress() &&
-               !ip.isMulticastAddress();
+        return (ip instanceof Inet6Address)
+               && !ip.isAnyLocalAddress()
+               && !ip.isLoopbackAddress()
+               && !ip.isLinkLocalAddress()
+               && !ip.isSiteLocalAddress()
+               && !ip.isMulticastAddress();
     }
 
     private static LinkProperties getUniqueLocalConfig(byte[] ulp, short subnetId) {
diff --git a/services/core/java/com/android/server/connectivity/tethering/OffloadController.java b/packages/Tethering/src/com/android/server/connectivity/tethering/OffloadController.java
similarity index 97%
rename from services/core/java/com/android/server/connectivity/tethering/OffloadController.java
rename to packages/Tethering/src/com/android/server/connectivity/tethering/OffloadController.java
index a3c2998..16734d8 100644
--- a/services/core/java/com/android/server/connectivity/tethering/OffloadController.java
+++ b/packages/Tethering/src/com/android/server/connectivity/tethering/OffloadController.java
@@ -36,8 +36,8 @@
 import android.net.util.IpUtils;
 import android.net.util.SharedLog;
 import android.os.Handler;
-import android.os.Looper;
 import android.os.INetworkManagementService;
+import android.os.Looper;
 import android.os.RemoteException;
 import android.os.SystemClock;
 import android.provider.Settings;
@@ -60,7 +60,6 @@
 import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.TimeUnit;
 
 /**
  * A class to encapsulate the business logic of programming the tethering
@@ -74,7 +73,7 @@
     private static final String ANYIP = "0.0.0.0";
     private static final ForwardedStats EMPTY_STATS = new ForwardedStats();
 
-    private static enum UpdateType { IF_NEEDED, FORCE };
+    private enum UpdateType { IF_NEEDED, FORCE };
 
     private final Handler mHandler;
     private final OffloadHardwareInterface mHwInterface;
@@ -128,6 +127,7 @@
         }
     }
 
+    /** Start hardware offload. */
     public boolean start() {
         if (started()) return true;
 
@@ -235,6 +235,7 @@
         return isStarted;
     }
 
+    /** Stop hardware offload. */
     public void stop() {
         // Completely stops tethering offload. After this method is called, it is no longer safe to
         // call any HAL method, no callbacks from the hardware will be delivered, and any in-flight
@@ -258,7 +259,9 @@
             // getTetherStats() is the only function in OffloadController that can be called from
             // a different thread. Do not attempt to update stats by querying the offload HAL
             // synchronously from a different thread than our Handler thread. http://b/64771555.
-            Runnable updateStats = () -> { updateStatsForCurrentUpstream(); };
+            Runnable updateStats = () -> {
+                updateStatsForCurrentUpstream();
+            };
             if (Looper.myLooper() == mHandler.getLooper()) {
                 updateStats.run();
             } else {
@@ -358,6 +361,7 @@
         }
     }
 
+    /** Set current tethering upstream LinkProperties. */
     public void setUpstreamLinkProperties(LinkProperties lp) {
         if (!started() || Objects.equals(mUpstreamLinkProperties, lp)) return;
 
@@ -376,6 +380,7 @@
         pushUpstreamParameters(prevUpstream);
     }
 
+    /** Set local prefixes. */
     public void setLocalPrefixes(Set<IpPrefix> localPrefixes) {
         mExemptPrefixes = localPrefixes;
 
@@ -383,6 +388,7 @@
         computeAndPushLocalPrefixes(UpdateType.IF_NEEDED);
     }
 
+    /** Update current downstream LinkProperties. */
     public void notifyDownstreamLinkProperties(LinkProperties lp) {
         final String ifname = lp.getInterfaceName();
         final LinkProperties oldLp = mDownstreams.put(ifname, new LinkProperties(lp));
@@ -421,6 +427,7 @@
         }
     }
 
+    /** Remove downstream interface from offload hardware. */
     public void removeDownstreamInterface(String ifname) {
         final LinkProperties lp = mDownstreams.remove(ifname);
         if (lp == null) return;
@@ -481,7 +488,7 @@
                 iface, v4addr, v4gateway, (v6gateways.isEmpty() ? null : v6gateways));
 
         if (!success) {
-           return success;
+            return success;
         }
 
         // Update stats after we've told the hardware to change routing so we don't miss packets.
@@ -545,6 +552,7 @@
         return false;
     }
 
+    /** Dump information. */
     public void dump(IndentingPrintWriter pw) {
         if (isOffloadDisabled()) {
             pw.println("Offload disabled");
@@ -630,7 +638,7 @@
             if (ip instanceof Inet4Address) {
                 return (Inet4Address) ip;
             }
-        } catch (IllegalArgumentException iae) {}
+        } catch (IllegalArgumentException iae) { }
         return null;
     }
 
diff --git a/services/core/java/com/android/server/connectivity/tethering/OffloadHardwareInterface.java b/packages/Tethering/src/com/android/server/connectivity/tethering/OffloadHardwareInterface.java
similarity index 81%
rename from services/core/java/com/android/server/connectivity/tethering/OffloadHardwareInterface.java
rename to packages/Tethering/src/com/android/server/connectivity/tethering/OffloadHardwareInterface.java
index 207f867..00a6773 100644
--- a/services/core/java/com/android/server/connectivity/tethering/OffloadHardwareInterface.java
+++ b/packages/Tethering/src/com/android/server/connectivity/tethering/OffloadHardwareInterface.java
@@ -23,9 +23,9 @@
 import android.hardware.tetheroffload.control.V1_0.NatTimeoutUpdate;
 import android.hardware.tetheroffload.control.V1_0.NetworkProtocol;
 import android.hardware.tetheroffload.control.V1_0.OffloadCallbackEvent;
+import android.net.util.SharedLog;
 import android.os.Handler;
 import android.os.RemoteException;
-import android.net.util.SharedLog;
 import android.system.OsConstants;
 
 import java.util.ArrayList;
@@ -55,18 +55,34 @@
     private TetheringOffloadCallback mTetheringOffloadCallback;
     private ControlCallback mControlCallback;
 
+    /** The callback to notify status of offload management process. */
     public static class ControlCallback {
+        /** Offload started. */
         public void onStarted() {}
+        /**
+         * Offload stopped because an error has occurred in lower layer.
+         */
         public void onStoppedError() {}
+        /**
+         * Offload stopped because the device has moved to a bearer on which hardware offload is
+         * not supported. Subsequent calls to setUpstreamParameters and add/removeDownstream will
+         * likely fail and cannot be presumed to be saved inside of the hardware management process.
+         * Upon receiving #onSupportAvailable(), the caller should reprogram the hardware to begin
+         * offload again.
+         */
         public void onStoppedUnsupported() {}
+        /** Indicate that offload is able to proivde support for this time. */
         public void onSupportAvailable() {}
+        /** Offload stopped because of usage limit reached. */
         public void onStoppedLimitReached() {}
 
+        /** Indicate to update NAT timeout. */
         public void onNatTimeoutUpdate(int proto,
                                        String srcAddr, int srcPort,
                                        String dstAddr, int dstPort) {}
     }
 
+    /** The object which records Tx/Rx forwarded bytes. */
     public static class ForwardedStats {
         public long rxBytes;
         public long txBytes;
@@ -76,11 +92,13 @@
             txBytes = 0;
         }
 
+        /** Add Tx/Rx bytes. */
         public void add(ForwardedStats other) {
             rxBytes += other.rxBytes;
             txBytes += other.txBytes;
         }
 
+        /** Returns the string representation of this object. */
         public String toString() {
             return String.format("rx:%s tx:%s", rxBytes, txBytes);
         }
@@ -89,16 +107,21 @@
     public OffloadHardwareInterface(Handler h, SharedLog log) {
         mHandler = h;
         mLog = log.forSubComponent(TAG);
+
+        System.loadLibrary("tetheroffloadjni");
     }
 
+    /** Get default value indicating whether offload is supported. */
     public int getDefaultTetherOffloadDisabled() {
         return DEFAULT_TETHER_OFFLOAD_DISABLED;
     }
 
+    /** Configure offload management process. */
     public boolean initOffloadConfig() {
         return configOffload();
     }
 
+    /** Initialize the tethering offload HAL. */
     public boolean initOffloadControl(ControlCallback controlCb) {
         mControlCallback = controlCb;
 
@@ -125,8 +148,8 @@
             mOffloadControl.initOffload(
                     mTetheringOffloadCallback,
                     (boolean success, String errMsg) -> {
-                        results.success = success;
-                        results.errMsg = errMsg;
+                        results.mSuccess = success;
+                        results.mErrMsg = errMsg;
                     });
         } catch (RemoteException e) {
             record(logmsg, e);
@@ -134,9 +157,10 @@
         }
 
         record(logmsg, results);
-        return results.success;
+        return results.mSuccess;
     }
 
+    /** Stop IOffloadControl. */
     public void stopOffloadControl() {
         if (mOffloadControl != null) {
             try {
@@ -154,6 +178,7 @@
         mLog.log("stopOffloadControl()");
     }
 
+    /** Get Tx/Rx usage from last query. */
     public ForwardedStats getForwardedStats(String upstream) {
         final String logmsg = String.format("getForwardedStats(%s)",  upstream);
 
@@ -174,6 +199,7 @@
         return stats;
     }
 
+    /** Set local prefixes to offload management process. */
     public boolean setLocalPrefixes(ArrayList<String> localPrefixes) {
         final String logmsg = String.format("setLocalPrefixes([%s])",
                 String.join(",", localPrefixes));
@@ -182,8 +208,8 @@
         try {
             mOffloadControl.setLocalPrefixes(localPrefixes,
                     (boolean success, String errMsg) -> {
-                        results.success = success;
-                        results.errMsg = errMsg;
+                        results.mSuccess = success;
+                        results.mErrMsg = errMsg;
                     });
         } catch (RemoteException e) {
             record(logmsg, e);
@@ -191,9 +217,10 @@
         }
 
         record(logmsg, results);
-        return results.success;
+        return results.mSuccess;
     }
 
+    /** Set data limit value to offload management process. */
     public boolean setDataLimit(String iface, long limit) {
 
         final String logmsg = String.format("setDataLimit(%s, %d)", iface, limit);
@@ -203,8 +230,8 @@
             mOffloadControl.setDataLimit(
                     iface, limit,
                     (boolean success, String errMsg) -> {
-                        results.success = success;
-                        results.errMsg = errMsg;
+                        results.mSuccess = success;
+                        results.mErrMsg = errMsg;
                     });
         } catch (RemoteException e) {
             record(logmsg, e);
@@ -212,9 +239,10 @@
         }
 
         record(logmsg, results);
-        return results.success;
+        return results.mSuccess;
     }
 
+    /** Set upstream parameters to offload management process. */
     public boolean setUpstreamParameters(
             String iface, String v4addr, String v4gateway, ArrayList<String> v6gws) {
         iface = (iface != null) ? iface : NO_INTERFACE_NAME;
@@ -230,8 +258,8 @@
             mOffloadControl.setUpstreamParameters(
                     iface, v4addr, v4gateway, v6gws,
                     (boolean success, String errMsg) -> {
-                        results.success = success;
-                        results.errMsg = errMsg;
+                        results.mSuccess = success;
+                        results.mErrMsg = errMsg;
                     });
         } catch (RemoteException e) {
             record(logmsg, e);
@@ -239,9 +267,10 @@
         }
 
         record(logmsg, results);
-        return results.success;
+        return results.mSuccess;
     }
 
+    /** Add downstream prefix to offload management process. */
     public boolean addDownstreamPrefix(String ifname, String prefix) {
         final String logmsg = String.format("addDownstreamPrefix(%s, %s)", ifname, prefix);
 
@@ -249,8 +278,8 @@
         try {
             mOffloadControl.addDownstream(ifname, prefix,
                     (boolean success, String errMsg) -> {
-                        results.success = success;
-                        results.errMsg = errMsg;
+                        results.mSuccess = success;
+                        results.mErrMsg = errMsg;
                     });
         } catch (RemoteException e) {
             record(logmsg, e);
@@ -258,9 +287,10 @@
         }
 
         record(logmsg, results);
-        return results.success;
+        return results.mSuccess;
     }
 
+    /** Remove downstream prefix from offload management process. */
     public boolean removeDownstreamPrefix(String ifname, String prefix) {
         final String logmsg = String.format("removeDownstreamPrefix(%s, %s)", ifname, prefix);
 
@@ -268,8 +298,8 @@
         try {
             mOffloadControl.removeDownstream(ifname, prefix,
                     (boolean success, String errMsg) -> {
-                        results.success = success;
-                        results.errMsg = errMsg;
+                        results.mSuccess = success;
+                        results.mErrMsg = errMsg;
                     });
         } catch (RemoteException e) {
             record(logmsg, e);
@@ -277,7 +307,7 @@
         }
 
         record(logmsg, results);
-        return results.success;
+        return results.mSuccess;
     }
 
     private void record(String msg, Throwable t) {
@@ -286,7 +316,7 @@
 
     private void record(String msg, CbResults results) {
         final String logmsg = msg + YIELDS + results;
-        if (!results.success) {
+        if (!results.mSuccess) {
             mLog.e(logmsg);
         } else {
             mLog.log(logmsg);
@@ -298,7 +328,7 @@
         public final ControlCallback controlCb;
         public final SharedLog log;
 
-        public TetheringOffloadCallback(Handler h, ControlCallback cb, SharedLog sharedLog) {
+        TetheringOffloadCallback(Handler h, ControlCallback cb, SharedLog sharedLog) {
             handler = h;
             controlCb = cb;
             log = sharedLog;
@@ -332,7 +362,7 @@
         @Override
         public void updateTimeout(NatTimeoutUpdate params) {
             handler.post(() -> {
-                    controlCb.onNatTimeoutUpdate(
+                controlCb.onNatTimeoutUpdate(
                         networkProtocolToOsConstant(params.proto),
                         params.src.addr, uint16(params.src.port),
                         params.dst.addr, uint16(params.dst.port));
@@ -352,15 +382,15 @@
     }
 
     private static class CbResults {
-        boolean success;
-        String errMsg;
+        boolean mSuccess;
+        String mErrMsg;
 
         @Override
         public String toString() {
-            if (success) {
+            if (mSuccess) {
                 return "ok";
             } else {
-                return "fail: " + errMsg;
+                return "fail: " + mErrMsg;
             }
         }
     }
diff --git a/services/core/java/com/android/server/connectivity/Tethering.java b/packages/Tethering/src/com/android/server/connectivity/tethering/Tethering.java
similarity index 88%
rename from services/core/java/com/android/server/connectivity/Tethering.java
rename to packages/Tethering/src/com/android/server/connectivity/tethering/Tethering.java
index b3804c4..f1228129 100644
--- a/services/core/java/com/android/server/connectivity/Tethering.java
+++ b/packages/Tethering/src/com/android/server/connectivity/tethering/Tethering.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.server.connectivity;
+package com.android.server.connectivity.tethering;
 
 import static android.hardware.usb.UsbManager.USB_CONFIGURED;
 import static android.hardware.usb.UsbManager.USB_CONNECTED;
@@ -47,8 +47,6 @@
 import static android.telephony.CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED;
 import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID;
 
-import static com.android.server.ConnectivityService.SHORT_ARG;
-
 import android.app.Notification;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
@@ -62,9 +60,10 @@
 import android.content.IntentFilter;
 import android.content.res.Resources;
 import android.hardware.usb.UsbManager;
+import android.net.INetd;
 import android.net.INetworkPolicyManager;
 import android.net.INetworkStatsService;
-import android.net.ITetheringEventCallback;
+import android.net.ITetherInternalCallback;
 import android.net.IpPrefix;
 import android.net.LinkAddress;
 import android.net.LinkProperties;
@@ -72,7 +71,10 @@
 import android.net.NetworkInfo;
 import android.net.NetworkState;
 import android.net.NetworkUtils;
+import android.net.TetherStatesParcel;
+import android.net.TetheringConfigurationParcel;
 import android.net.ip.IpServer;
+import android.net.util.BaseNetdUnsolicitedEventListener;
 import android.net.util.InterfaceSet;
 import android.net.util.PrefixUtils;
 import android.net.util.SharedLog;
@@ -87,13 +89,10 @@
 import android.os.INetworkManagementService;
 import android.os.Looper;
 import android.os.Message;
-import android.os.RemoteCallbackList;
 import android.os.RemoteException;
 import android.os.ResultReceiver;
 import android.os.UserHandle;
 import android.os.UserManager;
-import android.os.UserManagerInternal;
-import android.os.UserManagerInternal.UserRestrictionsListener;
 import android.telephony.PhoneStateListener;
 import android.telephony.TelephonyManager;
 import android.text.TextUtils;
@@ -110,15 +109,6 @@
 import com.android.internal.util.Protocol;
 import com.android.internal.util.State;
 import com.android.internal.util.StateMachine;
-import com.android.server.LocalServices;
-import com.android.server.connectivity.tethering.EntitlementManager;
-import com.android.server.connectivity.tethering.IPv6TetheringCoordinator;
-import com.android.server.connectivity.tethering.OffloadController;
-import com.android.server.connectivity.tethering.TetheringConfiguration;
-import com.android.server.connectivity.tethering.TetheringDependencies;
-import com.android.server.connectivity.tethering.TetheringInterfaceUtils;
-import com.android.server.connectivity.tethering.UpstreamNetworkMonitor;
-import com.android.server.net.BaseNetworkObserver;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
@@ -127,32 +117,32 @@
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.Set;
 
 /**
- * @hide
  *
  * This class holds much of the business logic to allow Android devices
  * to act as IP gateways via USB, BT, and WiFi interfaces.
  */
-public class Tethering extends BaseNetworkObserver {
+public class Tethering {
 
-    private final static String TAG = Tethering.class.getSimpleName();
-    private final static boolean DBG = false;
-    private final static boolean VDBG = false;
+    private static final String TAG = Tethering.class.getSimpleName();
+    private static final boolean DBG = false;
+    private static final boolean VDBG = false;
 
-    private static final Class[] messageClasses = {
+    private static final Class[] sMessageClasses = {
             Tethering.class, TetherMasterSM.class, IpServer.class
     };
     private static final SparseArray<String> sMagicDecoderRing =
-            MessageUtils.findMessageNames(messageClasses);
+            MessageUtils.findMessageNames(sMessageClasses);
 
     private static class TetherState {
         public final IpServer ipServer;
         public int lastState;
         public int lastError;
 
-        public TetherState(IpServer ipServer) {
+        TetherState(IpServer ipServer) {
             this.ipServer = ipServer;
             // Assume all state machines start out available and with no errors.
             lastState = IpServer.STATE_AVAILABLE;
@@ -177,6 +167,7 @@
     private final Context mContext;
     private final ArrayMap<String, TetherState> mTetherStates;
     private final BroadcastReceiver mStateReceiver;
+    // Stopship: replace mNMService before production.
     private final INetworkManagementService mNMService;
     private final INetworkStatsService mStatsService;
     private final INetworkPolicyManager mPolicyManager;
@@ -191,10 +182,13 @@
     private final TetheringDependencies mDeps;
     private final EntitlementManager mEntitlementMgr;
     private final Handler mHandler;
-    private final RemoteCallbackList<ITetheringEventCallback> mTetheringEventCallbacks =
-            new RemoteCallbackList<>();
     private final PhoneStateListener mPhoneStateListener;
+    private final INetd mNetd;
+    private final NetdCallback mNetdCallback;
+    private final UserRestrictionActionListener mTetheringRestriction;
     private int mActiveDataSubId = INVALID_SUBSCRIPTION_ID;
+    // All the usage of mTetherInternalCallback should run in the same thread.
+    private ITetherInternalCallback mTetherInternalCallback = null;
 
     private volatile TetheringConfiguration mConfig;
     private InterfaceSet mCurrentUpstreamIfaceSet;
@@ -205,18 +199,17 @@
     // True iff. WiFi tethering should be started when soft AP is ready.
     private boolean mWifiTetherRequested;
     private Network mTetherUpstream;
+    private TetherStatesParcel mTetherStatesParcel;
 
-    public Tethering(Context context, INetworkManagementService nmService,
-            INetworkStatsService statsService, INetworkPolicyManager policyManager,
-            Looper looper, MockableSystemProperties systemProperties,
-            TetheringDependencies deps) {
-        mLog.mark("constructed");
-        mContext = context;
-        mNMService = nmService;
-        mStatsService = statsService;
-        mPolicyManager = policyManager;
-        mLooper = looper;
+    public Tethering(TetheringDependencies deps) {
+        mLog.mark("Tethering.constructed");
         mDeps = deps;
+        mContext = mDeps.getContext();
+        mNMService = mDeps.getINetworkManagementService();
+        mStatsService = mDeps.getINetworkStatsService();
+        mPolicyManager = mDeps.getINetworkPolicyManager();
+        mNetd = mDeps.getINetd(mContext);
+        mLooper = mDeps.getTetheringLooper();
 
         mPublicSync = new Object();
 
@@ -239,7 +232,7 @@
         // EntitlementManager will send EVENT_UPSTREAM_PERMISSION_CHANGED when cellular upstream
         // permission is changed according to entitlement check result.
         mEntitlementMgr = mDeps.getEntitlementManager(mContext, mTetherMasterSM, mLog,
-                TetherMasterSM.EVENT_UPSTREAM_PERMISSION_CHANGED, systemProperties);
+                TetherMasterSM.EVENT_UPSTREAM_PERMISSION_CHANGED);
         mEntitlementMgr.setOnUiEntitlementFailedListener((int downstream) -> {
             mLog.log("OBSERVED UiEnitlementFailed");
             stopTethering(downstream);
@@ -278,16 +271,28 @@
 
         mStateReceiver = new StateReceiver();
 
+        mNetdCallback = new NetdCallback();
+        try {
+            mNetd.registerUnsolicitedEventListener(mNetdCallback);
+        } catch (RemoteException e) {
+            mLog.e("Unable to register netd UnsolicitedEventListener");
+        }
+
+        final UserManager userManager = (UserManager) mContext.getSystemService(
+                    Context.USER_SERVICE);
+        mTetheringRestriction = new UserRestrictionActionListener(userManager, this);
+
         // Load tethering configuration.
         updateConfiguration();
 
         startStateMachineUpdaters(mHandler);
+        startTrackDefaultNetwork();
     }
 
     private void startStateMachineUpdaters(Handler handler) {
         mCarrierConfigChange.startListening();
-        TelephonyManager.from(mContext).listen(mPhoneStateListener,
-                PhoneStateListener.LISTEN_ACTIVE_DATA_SUBSCRIPTION_ID_CHANGE);
+        mContext.getSystemService(TelephonyManager.class).listen(
+                mPhoneStateListener, PhoneStateListener.LISTEN_ACTIVE_DATA_SUBSCRIPTION_ID_CHANGE);
 
         IntentFilter filter = new IntentFilter();
         filter.addAction(UsbManager.ACTION_USB_STATE);
@@ -295,6 +300,7 @@
         filter.addAction(WifiManager.WIFI_AP_STATE_CHANGED_ACTION);
         filter.addAction(Intent.ACTION_CONFIGURATION_CHANGED);
         filter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);
+        filter.addAction(UserManager.ACTION_USER_RESTRICTIONS_CHANGED);
         mContext.registerReceiver(mStateReceiver, filter, null, handler);
 
         filter = new IntentFilter();
@@ -303,11 +309,6 @@
         filter.addDataScheme("file");
         mContext.registerReceiver(mStateReceiver, filter, null, handler);
 
-        final UserManagerInternal umi = LocalServices.getService(UserManagerInternal.class);
-        // This check is useful only for some unit tests; example: ConnectivityServiceTest.
-        if (umi != null) {
-            umi.addUserRestrictionsListener(new TetheringUserRestrictionListener(this));
-        }
     }
 
     private WifiManager getWifiManager() {
@@ -318,6 +319,7 @@
     private void updateConfiguration() {
         mConfig = mDeps.generateTetheringConfiguration(mContext, mLog, mActiveDataSubId);
         mUpstreamNetworkMonitor.updateMobileRequiresDun(mConfig.isDunRequired);
+        reportConfigurationChanged(mConfig.toStableParcelable());
     }
 
     private void maybeDunSettingChanged() {
@@ -327,10 +329,31 @@
         updateConfiguration();
     }
 
-    @Override
-    public void interfaceStatusChanged(String iface, boolean up) {
+    private class NetdCallback extends BaseNetdUnsolicitedEventListener {
+        @Override
+        public void onInterfaceChanged(String ifName, boolean up) {
+            mHandler.post(() -> interfaceStatusChanged(ifName, up));
+        }
+
+        @Override
+        public void onInterfaceLinkStateChanged(String ifName, boolean up) {
+            mHandler.post(() -> interfaceLinkStateChanged(ifName, up));
+        }
+
+        @Override
+        public void onInterfaceAdded(String ifName) {
+            mHandler.post(() -> interfaceAdded(ifName));
+        }
+
+        @Override
+        public void onInterfaceRemoved(String ifName) {
+            mHandler.post(() -> interfaceRemoved(ifName));
+        }
+    }
+
+    void interfaceStatusChanged(String iface, boolean up) {
         // Never called directly: only called from interfaceLinkStateChanged.
-        // See NetlinkHandler.cpp:71.
+        // See NetlinkHandler.cpp: notifyInterfaceChanged.
         if (VDBG) Log.d(TAG, "interfaceStatusChanged " + iface + ", " + up);
         synchronized (mPublicSync) {
             if (up) {
@@ -349,8 +372,7 @@
         }
     }
 
-    @Override
-    public void interfaceLinkStateChanged(String iface, boolean up) {
+    void interfaceLinkStateChanged(String iface, boolean up) {
         interfaceStatusChanged(iface, up);
     }
 
@@ -369,28 +391,27 @@
         return TETHERING_INVALID;
     }
 
-    @Override
-    public void interfaceAdded(String iface) {
+    void interfaceAdded(String iface) {
         if (VDBG) Log.d(TAG, "interfaceAdded " + iface);
         synchronized (mPublicSync) {
             maybeTrackNewInterfaceLocked(iface);
         }
     }
 
-    @Override
-    public void interfaceRemoved(String iface) {
+
+    void interfaceRemoved(String iface) {
         if (VDBG) Log.d(TAG, "interfaceRemoved " + iface);
         synchronized (mPublicSync) {
             stopTrackingInterfaceLocked(iface);
         }
     }
 
-    public void startTethering(int type, ResultReceiver receiver, boolean showProvisioningUi) {
+    void startTethering(int type, ResultReceiver receiver, boolean showProvisioningUi) {
         mEntitlementMgr.startProvisioningIfNeeded(type, showProvisioningUi);
         enableTetheringInternal(type, true /* enabled */, receiver);
     }
 
-    public void stopTethering(int type) {
+    void stopTethering(int type) {
         enableTetheringInternal(type, false /* disabled */, null);
         mEntitlementMgr.stopProvisioningIfNeeded(type);
     }
@@ -434,8 +455,8 @@
                     mLog.e("setWifiTethering: failed to get WifiManager!");
                     return TETHER_ERROR_SERVICE_UNAVAIL;
                 }
-                if ((enable && mgr.startSoftAp(null /* use existing wifi config */)) ||
-                    (!enable && mgr.stopSoftAp())) {
+                if ((enable && mgr.startSoftAp(null /* use existing wifi config */))
+                        || (!enable && mgr.stopSoftAp())) {
                     mWifiTetherRequested = enable;
                     return TETHER_ERROR_NO_ERROR;
                 }
@@ -450,8 +471,8 @@
     private void setBluetoothTethering(final boolean enable, final ResultReceiver receiver) {
         final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
         if (adapter == null || !adapter.isEnabled()) {
-            Log.w(TAG, "Tried to enable bluetooth tethering with null or disabled adapter. null: " +
-                    (adapter == null));
+            Log.w(TAG, "Tried to enable bluetooth tethering with null or disabled adapter. null: "
+                    + (adapter == null));
             sendTetherResult(receiver, TETHER_ERROR_SERVICE_UNAVAIL);
             return;
         }
@@ -487,7 +508,7 @@
         }, BluetoothProfile.PAN);
     }
 
-    public int tether(String iface) {
+    int tether(String iface) {
         return tether(iface, IpServer.STATE_TETHERED);
     }
 
@@ -515,7 +536,7 @@
         }
     }
 
-    public int untether(String iface) {
+    int untether(String iface) {
         if (DBG) Log.d(TAG, "Untethering " + iface);
         synchronized (mPublicSync) {
             TetherState tetherState = mTetherStates.get(iface);
@@ -532,19 +553,19 @@
         }
     }
 
-    public void untetherAll() {
+    void untetherAll() {
         stopTethering(TETHERING_WIFI);
         stopTethering(TETHERING_WIFI_P2P);
         stopTethering(TETHERING_USB);
         stopTethering(TETHERING_BLUETOOTH);
     }
 
-    public int getLastTetherError(String iface) {
+    int getLastTetherError(String iface) {
         synchronized (mPublicSync) {
             TetherState tetherState = mTetherStates.get(iface);
             if (tetherState == null) {
-                Log.e(TAG, "Tried to getLastTetherError on an unknown iface :" + iface +
-                        ", ignoring");
+                Log.e(TAG, "Tried to getLastTetherError on an unknown iface :" + iface
+                        + ", ignoring");
                 return TETHER_ERROR_UNKNOWN_IFACE;
             }
             return tetherState.lastError;
@@ -559,12 +580,14 @@
         final ArrayList<String> tetherList = new ArrayList<>();
         final ArrayList<String> localOnlyList = new ArrayList<>();
         final ArrayList<String> erroredList = new ArrayList<>();
+        final ArrayList<Integer> lastErrorList = new ArrayList<>();
 
         boolean wifiTethered = false;
         boolean usbTethered = false;
         boolean bluetoothTethered = false;
 
         final TetheringConfiguration cfg = mConfig;
+        final TetherStatesParcel mTetherStatesParcel = new TetherStatesParcel();
 
         synchronized (mPublicSync) {
             for (int i = 0; i < mTetherStates.size(); i++) {
@@ -572,6 +595,7 @@
                 String iface = mTetherStates.keyAt(i);
                 if (tetherState.lastError != TETHER_ERROR_NO_ERROR) {
                     erroredList.add(iface);
+                    lastErrorList.add(tetherState.lastError);
                 } else if (tetherState.lastState == IpServer.STATE_AVAILABLE) {
                     availableList.add(iface);
                 } else if (tetherState.lastState == IpServer.STATE_LOCAL_ONLY) {
@@ -588,9 +612,21 @@
                 }
             }
         }
+
+        mTetherStatesParcel.availableList = availableList.toArray(new String[0]);
+        mTetherStatesParcel.tetheredList = tetherList.toArray(new String[0]);
+        mTetherStatesParcel.localOnlyList = localOnlyList.toArray(new String[0]);
+        mTetherStatesParcel.erroredIfaceList = erroredList.toArray(new String[0]);
+        mTetherStatesParcel.lastErrorList = new int[lastErrorList.size()];
+        Iterator<Integer> iterator = lastErrorList.iterator();
+        for (int i = 0; i < lastErrorList.size(); i++) {
+            mTetherStatesParcel.lastErrorList[i] = iterator.next().intValue();
+        }
+        reportTetherStateChanged(mTetherStatesParcel);
+
         final Intent bcast = new Intent(ACTION_TETHER_STATE_CHANGED);
-        bcast.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING |
-                Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
+        bcast.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING
+                | Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
         bcast.putStringArrayListExtra(EXTRA_AVAILABLE_TETHER, availableList);
         bcast.putStringArrayListExtra(EXTRA_ACTIVE_LOCAL_ONLY, localOnlyList);
         bcast.putStringArrayListExtra(EXTRA_ACTIVE_TETHER, tetherList);
@@ -638,16 +674,16 @@
         }
         int icon = 0;
         switch(id) {
-          case SystemMessage.NOTE_TETHER_USB:
-            icon = com.android.internal.R.drawable.stat_sys_tether_usb;
-            break;
-          case SystemMessage.NOTE_TETHER_BLUETOOTH:
-            icon = com.android.internal.R.drawable.stat_sys_tether_bluetooth;
-            break;
-          case SystemMessage.NOTE_TETHER_GENERAL:
-          default:
-            icon = com.android.internal.R.drawable.stat_sys_tether_general;
-            break;
+            case SystemMessage.NOTE_TETHER_USB:
+                icon = com.android.internal.R.drawable.stat_sys_tether_usb;
+                break;
+            case SystemMessage.NOTE_TETHER_BLUETOOTH:
+                icon = com.android.internal.R.drawable.stat_sys_tether_bluetooth;
+                break;
+            case SystemMessage.NOTE_TETHER_GENERAL:
+            default:
+                icon = com.android.internal.R.drawable.stat_sys_tether_general;
+                break;
         }
 
         if (mLastNotificationId != 0) {
@@ -679,8 +715,8 @@
         }
 
         if (mTetheredNotificationBuilder == null) {
-            mTetheredNotificationBuilder =
-                    new Notification.Builder(mContext, SystemNotificationChannels.NETWORK_STATUS);
+            mTetheredNotificationBuilder = new Notification.Builder(mContext,
+                    SystemNotificationChannels.NETWORK_STATUS);
             mTetheredNotificationBuilder.setWhen(0)
                     .setOngoing(true)
                     .setColor(mContext.getColor(
@@ -701,7 +737,7 @@
     @VisibleForTesting
     protected void clearTetheredNotification() {
         NotificationManager notificationManager =
-            (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
+                (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
         if (notificationManager != null && mLastNotificationId != 0) {
             notificationManager.cancelAsUser(null, mLastNotificationId,
                     UserHandle.ALL);
@@ -726,14 +762,17 @@
             } else if (action.equals(Intent.ACTION_CONFIGURATION_CHANGED)) {
                 mLog.log("OBSERVED configuration changed");
                 updateConfiguration();
+            } else if (action.equals(UserManager.ACTION_USER_RESTRICTIONS_CHANGED)) {
+                mLog.log("OBSERVED user restrictions changed");
+                handleUserRestrictionAction();
             }
         }
 
         private void handleConnectivityAction(Intent intent) {
             final NetworkInfo networkInfo =
                     (NetworkInfo) intent.getParcelableExtra(EXTRA_NETWORK_INFO);
-            if (networkInfo == null ||
-                    networkInfo.getDetailedState() == NetworkInfo.DetailedState.FAILED) {
+            if (networkInfo == null
+                    || networkInfo.getDetailedState() == NetworkInfo.DetailedState.FAILED) {
                 return;
             }
 
@@ -832,25 +871,35 @@
                 }
             }
         }
+
+        private void handleUserRestrictionAction() {
+            mTetheringRestriction.onUserRestrictionsChanged();
+        }
     }
 
     @VisibleForTesting
-    protected static class TetheringUserRestrictionListener implements UserRestrictionsListener {
+    protected static class UserRestrictionActionListener {
+        private final UserManager mUserManager;
         private final Tethering mWrapper;
+        public boolean mDisallowTethering;
 
-        public TetheringUserRestrictionListener(Tethering wrapper) {
+        public UserRestrictionActionListener(UserManager um, Tethering wrapper) {
+            mUserManager = um;
             mWrapper = wrapper;
+            mDisallowTethering = false;
         }
 
-        public void onUserRestrictionsChanged(int userId,
-                                              Bundle newRestrictions,
-                                              Bundle prevRestrictions) {
+        public void onUserRestrictionsChanged() {
+            // getUserRestrictions gets restriction for this process' user, which is the primary
+            // user. This is fine because DISALLOW_CONFIG_TETHERING can only be set on the primary
+            // user. See UserManager.DISALLOW_CONFIG_TETHERING.
+            final Bundle restrictions = mUserManager.getUserRestrictions();
             final boolean newlyDisallowed =
-                    newRestrictions.getBoolean(UserManager.DISALLOW_CONFIG_TETHERING);
-            final boolean previouslyDisallowed =
-                    prevRestrictions.getBoolean(UserManager.DISALLOW_CONFIG_TETHERING);
-            final boolean tetheringDisallowedChanged = (newlyDisallowed != previouslyDisallowed);
+                    restrictions.getBoolean(UserManager.DISALLOW_CONFIG_TETHERING);
+            final boolean prevDisallowed = mDisallowTethering;
+            mDisallowTethering = newlyDisallowed;
 
+            final boolean tetheringDisallowedChanged = (newlyDisallowed != prevDisallowed);
             if (!tetheringDisallowedChanged) {
                 return;
             }
@@ -888,8 +937,8 @@
             }
         }
 
-        mLog.log("Error disabling Wi-Fi IP serving; " +
-                (TextUtils.isEmpty(ifname) ? "no interface name specified"
+        mLog.log("Error disabling Wi-Fi IP serving; "
+                + (TextUtils.isEmpty(ifname) ? "no interface name specified"
                                            : "specified interface: " + ifname));
     }
 
@@ -928,8 +977,8 @@
             changeInterfaceState(ifname, ipServingMode);
         } else {
             mLog.e(String.format(
-                   "Cannot enable IP serving in mode %s on missing interface name",
-                   ipServingMode));
+                    "Cannot enable IP serving in mode %s on missing interface name",
+                    ipServingMode));
         }
     }
 
@@ -989,11 +1038,11 @@
         }
     }
 
-    public TetheringConfiguration getTetheringConfiguration() {
+    TetheringConfiguration getTetheringConfiguration() {
         return mConfig;
     }
 
-    public boolean hasTetherableConfiguration() {
+    boolean hasTetherableConfiguration() {
         final TetheringConfiguration cfg = mConfig;
         final boolean hasDownstreamConfiguration =
                 (cfg.tetherableUsbRegexs.length != 0)
@@ -1007,19 +1056,19 @@
 
     // TODO - update callers to use getTetheringConfiguration(),
     // which has only final members.
-    public String[] getTetherableUsbRegexs() {
+    String[] getTetherableUsbRegexs() {
         return copy(mConfig.tetherableUsbRegexs);
     }
 
-    public String[] getTetherableWifiRegexs() {
+    String[] getTetherableWifiRegexs() {
         return copy(mConfig.tetherableWifiRegexs);
     }
 
-    public String[] getTetherableBluetoothRegexs() {
+    String[] getTetherableBluetoothRegexs() {
         return copy(mConfig.tetherableBluetoothRegexs);
     }
 
-    public int setUsbTethering(boolean enable) {
+    int setUsbTethering(boolean enable) {
         if (VDBG) Log.d(TAG, "setUsbTethering(" + enable + ")");
         UsbManager usbManager = (UsbManager) mContext.getSystemService(Context.USB_SERVICE);
         if (usbManager == null) {
@@ -1035,7 +1084,7 @@
     }
 
     // TODO review API - figure out how to delete these entirely.
-    public String[] getTetheredIfaces() {
+    String[] getTetheredIfaces() {
         ArrayList<String> list = new ArrayList<String>();
         synchronized (mPublicSync) {
             for (int i = 0; i < mTetherStates.size(); i++) {
@@ -1048,7 +1097,7 @@
         return list.toArray(new String[list.size()]);
     }
 
-    public String[] getTetherableIfaces() {
+    String[] getTetherableIfaces() {
         ArrayList<String> list = new ArrayList<String>();
         synchronized (mPublicSync) {
             for (int i = 0; i < mTetherStates.size(); i++) {
@@ -1061,13 +1110,13 @@
         return list.toArray(new String[list.size()]);
     }
 
-    public String[] getTetheredDhcpRanges() {
+    String[] getTetheredDhcpRanges() {
         // TODO: this is only valid for the old DHCP server. Latest search suggests it is only used
         // by WifiP2pServiceImpl to start dnsmasq: remove/deprecate after migrating callers.
         return mConfig.legacyDhcpRanges;
     }
 
-    public String[] getErroredIfaces() {
+    String[] getErroredIfaces() {
         ArrayList<String> list = new ArrayList<String>();
         synchronized (mPublicSync) {
             for (int i = 0; i < mTetherStates.size(); i++) {
@@ -1518,8 +1567,8 @@
                         }
 
                         if (DBG) {
-                            Log.d(TAG, "TetherModeAlive still has " + mNotifyList.size() +
-                                    " live requests:");
+                            Log.d(TAG, "TetherModeAlive still has " + mNotifyList.size()
+                                    + " live requests:");
                             for (IpServer o : mNotifyList) {
                                 Log.d(TAG, "  " + o);
                             }
@@ -1588,7 +1637,7 @@
                         transitionTo(mInitialState);
                         break;
                     default:
-                       retValue = false;
+                        retValue = false;
                 }
                 return retValue;
             }
@@ -1625,7 +1674,7 @@
                 notify(IpServer.CMD_START_TETHERING_ERROR);
                 try {
                     mNMService.setIpForwardingEnabled(false);
-                } catch (Exception e) {}
+                } catch (Exception e) { }
             }
         }
 
@@ -1636,7 +1685,7 @@
                 notify(IpServer.CMD_STOP_TETHERING_ERROR);
                 try {
                     mNMService.setIpForwardingEnabled(false);
-                } catch (Exception e) {}
+                } catch (Exception e) { }
             }
         }
 
@@ -1647,10 +1696,10 @@
                 notify(IpServer.CMD_SET_DNS_FORWARDERS_ERROR);
                 try {
                     mNMService.stopTethering();
-                } catch (Exception e) {}
+                } catch (Exception e) { }
                 try {
                     mNMService.setIpForwardingEnabled(false);
-                } catch (Exception e) {}
+                } catch (Exception e) { }
             }
         }
 
@@ -1731,55 +1780,66 @@
         }
     }
 
-    public void systemReady() {
+    private void startTrackDefaultNetwork() {
         mUpstreamNetworkMonitor.startTrackDefaultNetwork(mDeps.getDefaultNetworkRequest(),
                 mEntitlementMgr);
     }
 
     /** Get the latest value of the tethering entitlement check. */
-    public void getLatestTetheringEntitlementResult(int type, ResultReceiver receiver,
+    void requestLatestTetheringEntitlementResult(int type, ResultReceiver receiver,
             boolean showEntitlementUi) {
         if (receiver != null) {
-            mEntitlementMgr.getLatestTetheringEntitlementResult(type, receiver, showEntitlementUi);
+            mEntitlementMgr.requestLatestTetheringEntitlementResult(type, receiver,
+                    showEntitlementUi);
         }
     }
 
     /** Register tethering event callback */
-    public void registerTetheringEventCallback(ITetheringEventCallback callback) {
+    void registerTetherInternalCallback(ITetherInternalCallback callback) {
         mHandler.post(() -> {
+            mTetherInternalCallback = callback;
             try {
-                callback.onUpstreamChanged(mTetherUpstream);
+                mTetherInternalCallback.onCallbackCreated(mTetherUpstream,
+                        mConfig.toStableParcelable(), mTetherStatesParcel);
             } catch (RemoteException e) {
                 // Not really very much to do here.
             }
-            mTetheringEventCallbacks.register(callback);
-        });
-    }
-
-    /** Unregister tethering event callback */
-    public void unregisterTetheringEventCallback(ITetheringEventCallback callback) {
-        mHandler.post(() -> {
-            mTetheringEventCallbacks.unregister(callback);
         });
     }
 
     private void reportUpstreamChanged(Network network) {
-        final int length = mTetheringEventCallbacks.beginBroadcast();
+        // Don't need to synchronized mTetherInternalCallback because all the usage of this variable
+        // should run at the same thread.
+        if (mTetherInternalCallback == null) return;
+
         try {
-            for (int i = 0; i < length; i++) {
-                try {
-                    mTetheringEventCallbacks.getBroadcastItem(i).onUpstreamChanged(network);
-                } catch (RemoteException e) {
-                    // Not really very much to do here.
-                }
-            }
-        } finally {
-            mTetheringEventCallbacks.finishBroadcast();
+            mTetherInternalCallback.onUpstreamChanged(network);
+        } catch (RemoteException e) {
+            // Not really very much to do here.
         }
     }
 
-    @Override
-    public void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
+    private void reportConfigurationChanged(TetheringConfigurationParcel config) {
+        if (mTetherInternalCallback == null) return;
+
+        try {
+            mTetherInternalCallback.onConfigurationChanged(config);
+        } catch (RemoteException e) {
+            // Not really very much to do here.
+        }
+    }
+
+    private void reportTetherStateChanged(TetherStatesParcel states) {
+        if (mTetherInternalCallback == null) return;
+
+        try {
+            mTetherInternalCallback.onTetherStatesChanged(states);
+        } catch (RemoteException e) {
+            // Not really very much to do here.
+        }
+    }
+
+    void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
         // Binder.java closes the resource for us.
         @SuppressWarnings("resource")
         final IndentingPrintWriter pw = new IndentingPrintWriter(writer, "  ");
@@ -1838,7 +1898,7 @@
 
         pw.println("Log:");
         pw.increaseIndent();
-        if (argsContain(args, SHORT_ARG)) {
+        if (argsContain(args, "--short")) {
             pw.println("<log removed for brevity>");
         } else {
             mLog.dump(fd, pw, args);
diff --git a/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringConfiguration.java b/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringConfiguration.java
index 7709727..0ab4d63 100644
--- a/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringConfiguration.java
+++ b/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringConfiguration.java
@@ -38,6 +38,7 @@
 import android.content.Context;
 import android.content.res.Resources;
 import android.net.ConnectivityManager;
+import android.net.TetheringConfigurationParcel;
 import android.net.util.SharedLog;
 import android.provider.Settings;
 import android.telephony.SubscriptionManager;
@@ -251,7 +252,7 @@
     /** Check whether dun is required. */
     public static boolean checkDunRequired(Context ctx, int id) {
         final TelephonyManager tm = (TelephonyManager) ctx.getSystemService(TELEPHONY_SERVICE);
-        return (tm != null) ? tm.getTetherApnRequired(id) : false;
+        return (tm != null) ? tm.isTetheringApnRequired(id) : false;
     }
 
     private static Collection<Integer> getUpstreamIfaceTypes(Resources res, boolean dunRequired) {
@@ -384,4 +385,32 @@
         }
         return false;
     }
+
+    /**
+     * Convert this TetheringConfiguration to a TetheringConfigurationParcel.
+     */
+    public TetheringConfigurationParcel toStableParcelable() {
+        final TetheringConfigurationParcel parcel = new TetheringConfigurationParcel();
+        parcel.subId = subId;
+        parcel.tetherableUsbRegexs = tetherableUsbRegexs;
+        parcel.tetherableWifiRegexs = tetherableWifiRegexs;
+        parcel.tetherableBluetoothRegexs = tetherableBluetoothRegexs;
+        parcel.isDunRequired = isDunRequired;
+        parcel.chooseUpstreamAutomatically = chooseUpstreamAutomatically;
+
+        int[] preferredTypes = new int[preferredUpstreamIfaceTypes.size()];
+        int index = 0;
+        for (Integer type : preferredUpstreamIfaceTypes) {
+            preferredTypes[index++] = type;
+        }
+        parcel.preferredUpstreamIfaceTypes = preferredTypes;
+
+        parcel.legacyDhcpRanges = legacyDhcpRanges;
+        parcel.defaultIPv4DNS = defaultIPv4DNS;
+        parcel.enableLegacyDhcpServer = enableLegacyDhcpServer;
+        parcel.provisioningApp = provisioningApp;
+        parcel.provisioningAppNoUi = provisioningAppNoUi;
+        parcel.provisioningCheckPeriod = provisioningCheckPeriod;
+        return parcel;
+    }
 }
diff --git a/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringDependencies.java b/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringDependencies.java
new file mode 100644
index 0000000..0ba8412
--- /dev/null
+++ b/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringDependencies.java
@@ -0,0 +1,151 @@
+/*
+ * 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.
+ */
+
+package com.android.server.connectivity.tethering;
+
+import android.content.Context;
+import android.net.INetd;
+import android.net.INetworkPolicyManager;
+import android.net.INetworkStatsService;
+import android.net.NetworkRequest;
+import android.net.ip.IpServer;
+import android.net.util.SharedLog;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.INetworkManagementService;
+import android.os.Looper;
+import android.os.ServiceManager;
+
+import com.android.internal.util.StateMachine;
+
+import java.util.ArrayList;
+
+
+/**
+ * Capture tethering dependencies, for injection.
+ *
+ * @hide
+ */
+public class TetheringDependencies {
+    /**
+     * Get a reference to the offload hardware interface to be used by tethering.
+     */
+    public OffloadHardwareInterface getOffloadHardwareInterface(Handler h, SharedLog log) {
+        return new OffloadHardwareInterface(h, log);
+    }
+
+    /**
+     * Get a reference to the UpstreamNetworkMonitor to be used by tethering.
+     */
+    public UpstreamNetworkMonitor getUpstreamNetworkMonitor(Context ctx, StateMachine target,
+            SharedLog log, int what) {
+        return new UpstreamNetworkMonitor(ctx, target, log, what);
+    }
+
+    /**
+     * Get a reference to the IPv6TetheringCoordinator to be used by tethering.
+     */
+    public IPv6TetheringCoordinator getIPv6TetheringCoordinator(
+            ArrayList<IpServer> notifyList, SharedLog log) {
+        return new IPv6TetheringCoordinator(notifyList, log);
+    }
+
+    /**
+     * Get dependencies to be used by IpServer.
+     */
+    public IpServer.Dependencies getIpServerDependencies() {
+        return new IpServer.Dependencies();
+    }
+
+    /**
+     * Indicates whether tethering is supported on the device.
+     */
+    public boolean isTetheringSupported() {
+        return true;
+    }
+
+    /**
+     * Get the NetworkRequest that should be fulfilled by the default network.
+     */
+    public NetworkRequest getDefaultNetworkRequest() {
+        return null;
+    }
+
+    /**
+     * Get a reference to the EntitlementManager to be used by tethering.
+     */
+    public EntitlementManager getEntitlementManager(Context ctx, StateMachine target,
+            SharedLog log, int what) {
+        return new EntitlementManager(ctx, target, log, what);
+    }
+
+    /**
+     * Generate a new TetheringConfiguration according to input sub Id.
+     */
+    public TetheringConfiguration generateTetheringConfiguration(Context ctx, SharedLog log,
+            int subId) {
+        return new TetheringConfiguration(ctx, log, subId);
+    }
+
+    /**
+     * Get a reference to INetworkManagementService to registerTetheringStatsProvider from
+     * OffloadController. Note: This should be removed soon by Usage refactor work in R
+     * development cycle.
+     */
+    public INetworkManagementService getINetworkManagementService() {
+        return INetworkManagementService.Stub.asInterface(
+                ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE));
+    }
+
+    /**
+     *  Get a reference to INetworkStatsService to force update tethering usage.
+     *  Note: This should be removed in R development cycle.
+     */
+    public INetworkStatsService getINetworkStatsService() {
+        return INetworkStatsService.Stub.asInterface(
+                ServiceManager.getService(Context.NETWORK_STATS_SERVICE));
+    }
+
+    /**
+     * Get a reference to INetworkPolicyManager to be used by tethering.
+     */
+    public INetworkPolicyManager getINetworkPolicyManager() {
+        return INetworkPolicyManager.Stub.asInterface(
+                ServiceManager.getService(Context.NETWORK_POLICY_SERVICE));
+    }
+
+    /**
+     * Get a reference to INetd to be used by tethering.
+     */
+    public INetd getINetd(Context context) {
+        return INetd.Stub.asInterface(
+                (IBinder) context.getSystemService(Context.NETD_SERVICE));
+    }
+
+    /**
+     * Get tethering thread looper.
+     */
+    public Looper getTetheringLooper() {
+        return null;
+    }
+
+    /**
+     *  Get Context of TetheringSerice.
+     */
+    public Context getContext() {
+        return null;
+    }
+}
diff --git a/services/core/java/com/android/server/connectivity/tethering/TetheringInterfaceUtils.java b/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringInterfaceUtils.java
similarity index 100%
rename from services/core/java/com/android/server/connectivity/tethering/TetheringInterfaceUtils.java
rename to packages/Tethering/src/com/android/server/connectivity/tethering/TetheringInterfaceUtils.java
diff --git a/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringService.java b/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringService.java
new file mode 100644
index 0000000..456f2f7
--- /dev/null
+++ b/packages/Tethering/src/com/android/server/connectivity/tethering/TetheringService.java
@@ -0,0 +1,178 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package com.android.server.connectivity.tethering;
+
+import android.app.Service;
+import android.content.Context;
+import android.content.Intent;
+import android.net.ConnectivityManager;
+import android.net.ITetherInternalCallback;
+import android.net.ITetheringConnector;
+import android.net.NetworkRequest;
+import android.net.util.SharedLog;
+import android.os.HandlerThread;
+import android.os.IBinder;
+import android.os.Looper;
+import android.os.ResultReceiver;
+import android.os.SystemProperties;
+import android.provider.Settings;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.android.internal.annotations.VisibleForTesting;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+
+/**
+ * Android service used to manage tethering.
+ *
+ * <p>The service returns a binder for the system server to communicate with the tethering.
+ */
+public class TetheringService extends Service {
+    private static final String TAG = TetheringService.class.getSimpleName();
+
+    private final SharedLog mLog = new SharedLog(TAG);
+    private TetheringConnector mConnector;
+    private Context mContext;
+    private TetheringDependencies mDeps;
+    private Tethering mTethering;
+
+    @Override
+    public void onCreate() {
+        mLog.mark("onCreate");
+        mDeps = getTetheringDependencies();
+        mContext = mDeps.getContext();
+        mTethering = makeTethering(mDeps);
+    }
+
+    /**
+     * Make a reference to Tethering object.
+     */
+    @VisibleForTesting
+    public Tethering makeTethering(TetheringDependencies deps) {
+        return new Tethering(deps);
+    }
+
+    /**
+     * Create a binder connector for the system server to communicate with the tethering.
+     */
+    private synchronized IBinder makeConnector() {
+        if (mConnector == null) {
+            mConnector = new TetheringConnector(mTethering);
+        }
+        return mConnector;
+    }
+
+    @NonNull
+    @Override
+    public IBinder onBind(Intent intent) {
+        mLog.mark("onBind");
+        return makeConnector();
+    }
+
+    private static class TetheringConnector extends ITetheringConnector.Stub {
+        private final Tethering mService;
+
+        TetheringConnector(Tethering tether) {
+            mService = tether;
+        }
+
+        @Override
+        public void tether(String iface) {
+            mService.tether(iface);
+        }
+
+        @Override
+        public void untether(String iface) {
+            mService.untether(iface);
+        }
+
+        @Override
+        public void setUsbTethering(boolean enable) {
+            mService.setUsbTethering(enable);
+        }
+
+        @Override
+        public void startTethering(int type, ResultReceiver receiver, boolean showProvisioningUi) {
+            mService.startTethering(type, receiver, showProvisioningUi);
+        }
+
+        @Override
+        public void stopTethering(int type) {
+            mService.stopTethering(type);
+        }
+
+        @Override
+        public void requestLatestTetheringEntitlementResult(int type, ResultReceiver receiver,
+                boolean showEntitlementUi) {
+            mService.requestLatestTetheringEntitlementResult(type, receiver, showEntitlementUi);
+        }
+
+        @Override
+        public void registerTetherInternalCallback(ITetherInternalCallback callback) {
+            mService.registerTetherInternalCallback(callback);
+        }
+    }
+
+    @Override
+    protected void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter writer,
+                @Nullable String[] args) {
+        mTethering.dump(fd, writer, args);
+    }
+
+    /**
+     * An injection method for testing.
+     */
+    @VisibleForTesting
+    public TetheringDependencies getTetheringDependencies() {
+        if (mDeps == null) {
+            mDeps = new TetheringDependencies() {
+                @Override
+                public NetworkRequest getDefaultNetworkRequest() {
+                    ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(
+                            Context.CONNECTIVITY_SERVICE);
+                    return cm.getDefaultRequest();
+                }
+
+                @Override
+                public Looper getTetheringLooper() {
+                    final HandlerThread tetherThread = new HandlerThread("android.tethering");
+                    tetherThread.start();
+                    return tetherThread.getLooper();
+                }
+
+                @Override
+                public boolean isTetheringSupported() {
+                    int defaultVal =
+                            SystemProperties.get("ro.tether.denied").equals("true") ? 0 : 1;
+                    boolean tetherSupported = Settings.Global.getInt(mContext.getContentResolver(),
+                            Settings.Global.TETHER_SUPPORTED, defaultVal) != 0;
+                    return tetherSupported;
+                }
+
+                @Override
+                public Context getContext() {
+                    return TetheringService.this;
+                }
+            };
+        }
+
+        return mDeps;
+    }
+}
diff --git a/packages/Tethering/tests/unit/Android.bp b/packages/Tethering/tests/unit/Android.bp
index 7c06e5f..5b018df 100644
--- a/packages/Tethering/tests/unit/Android.bp
+++ b/packages/Tethering/tests/unit/Android.bp
@@ -18,13 +18,13 @@
     name: "TetheringTests",
     certificate: "platform",
     srcs: [
-        ":servicescore-tethering-src",
         "src/**/*.java",
     ],
     test_suites: ["device-tests"],
     static_libs: [
         "androidx.test.rules",
         "frameworks-base-testutils",
+        "net-tests-utils",
         "mockito-target-extended-minus-junit4",
         "TetheringApiCurrentLib",
         "testables",
@@ -40,16 +40,3 @@
         "libstaticjvmtiagent",
     ],
 }
-
-// This group would be removed when tethering migration is done.
-filegroup {
-    name: "tethering-tests-src",
-    srcs: [
-        "src/com/android/server/connectivity/tethering/EntitlementManagerTest.java",
-        "src/com/android/server/connectivity/tethering/TetheringConfigurationTest.java",
-        "src/com/android/server/connectivity/tethering/UpstreamNetworkMonitorTest.java",
-        "src/android/net/dhcp/DhcpServingParamsParcelExtTest.java",
-        "src/android/net/ip/IpServerTest.java",
-        "src/android/net/util/InterfaceSetTest.java",
-    ],
-}
diff --git a/tests/net/java/android/net/util/VersionedBroadcastListenerTest.java b/packages/Tethering/tests/unit/src/android/net/util/VersionedBroadcastListenerTest.java
similarity index 96%
rename from tests/net/java/android/net/util/VersionedBroadcastListenerTest.java
rename to packages/Tethering/tests/unit/src/android/net/util/VersionedBroadcastListenerTest.java
index 0d27d5b..5a9b6e3 100644
--- a/tests/net/java/android/net/util/VersionedBroadcastListenerTest.java
+++ b/packages/Tethering/tests/unit/src/android/net/util/VersionedBroadcastListenerTest.java
@@ -51,7 +51,9 @@
     private VersionedBroadcastListener mListener;
     private int mCallbackCount;
 
-    private void doCallback() { mCallbackCount++; }
+    private void doCallback() {
+        mCallbackCount++;
+    }
 
     private class MockContext extends BroadcastInterceptingContext {
         MockContext(Context base) {
@@ -96,7 +98,7 @@
         mListener.startListening();
         for (int i = 0; i < 5; i++) {
             sendBroadcast();
-            assertEquals(i+1, mCallbackCount);
+            assertEquals(i + 1, mCallbackCount);
         }
         mListener.stopListening();
     }
diff --git a/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/EntitlementManagerTest.java b/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/EntitlementManagerTest.java
index 5217e26..99cf9e9 100644
--- a/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/EntitlementManagerTest.java
+++ b/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/EntitlementManagerTest.java
@@ -24,6 +24,9 @@
 import static android.net.ConnectivityManager.TETHER_ERROR_PROVISION_FAILED;
 import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
@@ -44,6 +47,7 @@
 import android.os.Message;
 import android.os.PersistableBundle;
 import android.os.ResultReceiver;
+import android.os.SystemProperties;
 import android.os.test.TestLooper;
 import android.provider.Settings;
 import android.telephony.CarrierConfigManager;
@@ -57,7 +61,6 @@
 import com.android.internal.util.StateMachine;
 import com.android.internal.util.test.BroadcastInterceptingContext;
 import com.android.internal.util.test.FakeSettingsProvider;
-import com.android.server.connectivity.MockableSystemProperties;
 
 import org.junit.After;
 import org.junit.Before;
@@ -65,6 +68,8 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.mockito.MockitoSession;
+import org.mockito.quality.Strictness;
 
 import java.util.ArrayList;
 import java.util.concurrent.CountDownLatch;
@@ -80,7 +85,6 @@
 
     @Mock private CarrierConfigManager mCarrierConfigManager;
     @Mock private Context mContext;
-    @Mock private MockableSystemProperties mSystemProperties;
     @Mock private Resources mResources;
     @Mock private SharedLog mLog;
     @Mock private EntitlementManager.OnUiEntitlementFailedListener mEntitlementFailedListener;
@@ -95,6 +99,7 @@
     private TestStateMachine mSM;
     private WrappedEntitlementManager mEnMgr;
     private TetheringConfiguration mConfig;
+    private MockitoSession mMockingSession;
 
     private class MockContext extends BroadcastInterceptingContext {
         MockContext(Context base) {
@@ -118,8 +123,8 @@
         public int silentProvisionCount = 0;
 
         public WrappedEntitlementManager(Context ctx, StateMachine target,
-                SharedLog log, int what, MockableSystemProperties systemProperties) {
-            super(ctx, target, log, what, systemProperties);
+                SharedLog log, int what) {
+            super(ctx, target, log, what);
         }
 
         public void reset() {
@@ -144,6 +149,15 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
+        mMockingSession = mockitoSession()
+                .initMocks(this)
+                .spyStatic(SystemProperties.class)
+                .strictness(Strictness.WARN)
+                .startMocking();
+        // Don't disable tethering provisioning unless requested.
+        doReturn(false).when(
+                () -> SystemProperties.getBoolean(
+                eq(EntitlementManager.DISABLE_PROVISIONING_SYSPROP_KEY), anyBoolean()));
 
         when(mResources.getStringArray(R.array.config_tether_dhcp_range))
             .thenReturn(new String[0]);
@@ -161,8 +175,7 @@
         mContentResolver.addProvider(Settings.AUTHORITY, new FakeSettingsProvider());
         mMockContext = new MockContext(mContext);
         mSM = new TestStateMachine();
-        mEnMgr = new WrappedEntitlementManager(mMockContext, mSM, mLog, EVENT_EM_UPDATE,
-                mSystemProperties);
+        mEnMgr = new WrappedEntitlementManager(mMockContext, mSM, mLog, EVENT_EM_UPDATE);
         mEnMgr.setOnUiEntitlementFailedListener(mEntitlementFailedListener);
         mConfig = new TetheringConfiguration(mMockContext, mLog, INVALID_SUBSCRIPTION_ID);
         mEnMgr.setTetheringConfigurationFetcher(() -> {
@@ -176,6 +189,7 @@
             mSM.quit();
             mSM = null;
         }
+        mMockingSession.finishMocking();
     }
 
     private void setupForRequiredProvisioning() {
@@ -184,9 +198,6 @@
                 .thenReturn(PROVISIONING_APP_NAME);
         when(mResources.getString(R.string.config_mobile_hotspot_provision_app_no_ui))
                 .thenReturn(PROVISIONING_NO_UI_APP_NAME);
-       // Don't disable tethering provisioning unless requested.
-        when(mSystemProperties.getBoolean(eq(EntitlementManager.DISABLE_PROVISIONING_SYSPROP_KEY),
-                anyBoolean())).thenReturn(false);
         // Act like the CarrierConfigManager is present and ready unless told otherwise.
         when(mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE))
                 .thenReturn(mCarrierConfigManager);
@@ -244,7 +255,7 @@
     }
 
     @Test
-    public void testGetLastEntitlementCacheValue() throws Exception {
+    public void testRequestLastEntitlementCacheValue() throws Exception {
         final CountDownLatch mCallbacklatch = new CountDownLatch(1);
         // 1. Entitlement check is not required.
         mEnMgr.fakeEntitlementResult = TETHER_ERROR_NO_ERROR;
@@ -255,7 +266,7 @@
                 mCallbacklatch.countDown();
             }
         };
-        mEnMgr.getLatestTetheringEntitlementResult(TETHERING_WIFI, receiver, true);
+        mEnMgr.requestLatestTetheringEntitlementResult(TETHERING_WIFI, receiver, true);
         mLooper.dispatchAll();
         callbackTimeoutHelper(mCallbacklatch);
         assertEquals(0, mEnMgr.uiProvisionCount);
@@ -270,7 +281,7 @@
                 mCallbacklatch.countDown();
             }
         };
-        mEnMgr.getLatestTetheringEntitlementResult(TETHERING_WIFI, receiver, false);
+        mEnMgr.requestLatestTetheringEntitlementResult(TETHERING_WIFI, receiver, false);
         mLooper.dispatchAll();
         callbackTimeoutHelper(mCallbacklatch);
         assertEquals(0, mEnMgr.uiProvisionCount);
@@ -284,7 +295,7 @@
                 mCallbacklatch.countDown();
             }
         };
-        mEnMgr.getLatestTetheringEntitlementResult(TETHERING_WIFI, receiver, true);
+        mEnMgr.requestLatestTetheringEntitlementResult(TETHERING_WIFI, receiver, true);
         mLooper.dispatchAll();
         callbackTimeoutHelper(mCallbacklatch);
         assertEquals(1, mEnMgr.uiProvisionCount);
@@ -298,7 +309,7 @@
                 mCallbacklatch.countDown();
             }
         };
-        mEnMgr.getLatestTetheringEntitlementResult(TETHERING_WIFI, receiver, false);
+        mEnMgr.requestLatestTetheringEntitlementResult(TETHERING_WIFI, receiver, false);
         mLooper.dispatchAll();
         callbackTimeoutHelper(mCallbacklatch);
         assertEquals(0, mEnMgr.uiProvisionCount);
@@ -312,7 +323,7 @@
                 mCallbacklatch.countDown();
             }
         };
-        mEnMgr.getLatestTetheringEntitlementResult(TETHERING_WIFI, receiver, true);
+        mEnMgr.requestLatestTetheringEntitlementResult(TETHERING_WIFI, receiver, true);
         mLooper.dispatchAll();
         callbackTimeoutHelper(mCallbacklatch);
         assertEquals(1, mEnMgr.uiProvisionCount);
@@ -326,7 +337,7 @@
                 mCallbacklatch.countDown();
             }
         };
-        mEnMgr.getLatestTetheringEntitlementResult(TETHERING_WIFI, receiver, true);
+        mEnMgr.requestLatestTetheringEntitlementResult(TETHERING_WIFI, receiver, true);
         mLooper.dispatchAll();
         callbackTimeoutHelper(mCallbacklatch);
         assertEquals(0, mEnMgr.uiProvisionCount);
@@ -339,7 +350,7 @@
                 mCallbacklatch.countDown();
             }
         };
-        mEnMgr.getLatestTetheringEntitlementResult(TETHERING_USB, receiver, false);
+        mEnMgr.requestLatestTetheringEntitlementResult(TETHERING_USB, receiver, false);
         mLooper.dispatchAll();
         callbackTimeoutHelper(mCallbacklatch);
         assertEquals(0, mEnMgr.uiProvisionCount);
diff --git a/tests/net/java/com/android/server/connectivity/tethering/OffloadControllerTest.java b/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/OffloadControllerTest.java
similarity index 98%
rename from tests/net/java/com/android/server/connectivity/tethering/OffloadControllerTest.java
rename to packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/OffloadControllerTest.java
index 9931aec..8574f54 100644
--- a/tests/net/java/com/android/server/connectivity/tethering/OffloadControllerTest.java
+++ b/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/OffloadControllerTest.java
@@ -26,10 +26,10 @@
 
 import static com.android.server.connectivity.tethering.OffloadHardwareInterface.ForwardedStats;
 import static com.android.testutils.MiscAssertsKt.assertContainsAll;
+import static com.android.testutils.MiscAssertsKt.assertThrows;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyLong;
 import static org.mockito.Matchers.anyObject;
@@ -148,10 +148,8 @@
     public void testNoSettingsValueDefaultDisabledDoesNotStart() throws Exception {
         setupFunctioningHardwareInterface();
         when(mHardware.getDefaultTetherOffloadDisabled()).thenReturn(1);
-        try {
-            Settings.Global.getInt(mContentResolver, TETHER_OFFLOAD_DISABLED);
-            fail();
-        } catch (SettingNotFoundException expected) {}
+        assertThrows(SettingNotFoundException.class, () ->
+                Settings.Global.getInt(mContentResolver, TETHER_OFFLOAD_DISABLED));
 
         final OffloadController offload = makeOffloadController();
         offload.start();
@@ -168,10 +166,8 @@
     public void testNoSettingsValueDefaultEnabledDoesStart() throws Exception {
         setupFunctioningHardwareInterface();
         when(mHardware.getDefaultTetherOffloadDisabled()).thenReturn(0);
-        try {
-            Settings.Global.getInt(mContentResolver, TETHER_OFFLOAD_DISABLED);
-            fail();
-        } catch (SettingNotFoundException expected) {}
+        assertThrows(SettingNotFoundException.class, () ->
+                Settings.Global.getInt(mContentResolver, TETHER_OFFLOAD_DISABLED));
 
         final OffloadController offload = makeOffloadController();
         offload.start();
diff --git a/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/TetheringConfigurationTest.java b/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/TetheringConfigurationTest.java
index 9f9221f..30bff35 100644
--- a/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/TetheringConfigurationTest.java
+++ b/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/TetheringConfigurationTest.java
@@ -145,7 +145,7 @@
 
     @Test
     public void testDunFromTelephonyManagerMeansDun() {
-        when(mTelephonyManager.getTetherApnRequired(anyInt())).thenReturn(true);
+        when(mTelephonyManager.isTetheringApnRequired(anyInt())).thenReturn(true);
 
         final TetheringConfiguration cfgWifi = getTetheringConfiguration(TYPE_WIFI);
         final TetheringConfiguration cfgMobileWifiHipri = getTetheringConfiguration(
@@ -169,7 +169,7 @@
 
     @Test
     public void testDunNotRequiredFromTelephonyManagerMeansNoDun() {
-        when(mTelephonyManager.getTetherApnRequired(anyInt())).thenReturn(false);
+        when(mTelephonyManager.isTetheringApnRequired(anyInt())).thenReturn(false);
 
         final TetheringConfiguration cfgWifi = getTetheringConfiguration(TYPE_WIFI);
         final TetheringConfiguration cfgMobileWifiHipri = getTetheringConfiguration(
@@ -212,7 +212,7 @@
     @Test
     public void testNoDefinedUpstreamTypesAddsEthernet() {
         when(mResources.getIntArray(config_tether_upstream_types)).thenReturn(new int[]{});
-        when(mTelephonyManager.getTetherApnRequired(anyInt())).thenReturn(false);
+        when(mTelephonyManager.isTetheringApnRequired(anyInt())).thenReturn(false);
 
         final TetheringConfiguration cfg = new TetheringConfiguration(
                 mMockContext, mLog, INVALID_SUBSCRIPTION_ID);
@@ -235,7 +235,7 @@
     public void testDefinedUpstreamTypesSansEthernetAddsEthernet() {
         when(mResources.getIntArray(config_tether_upstream_types)).thenReturn(
                 new int[]{TYPE_WIFI, TYPE_MOBILE_HIPRI});
-        when(mTelephonyManager.getTetherApnRequired(anyInt())).thenReturn(false);
+        when(mTelephonyManager.isTetheringApnRequired(anyInt())).thenReturn(false);
 
         final TetheringConfiguration cfg = new TetheringConfiguration(
                 mMockContext, mLog, INVALID_SUBSCRIPTION_ID);
@@ -253,7 +253,7 @@
     public void testDefinedUpstreamTypesWithEthernetDoesNotAddEthernet() {
         when(mResources.getIntArray(config_tether_upstream_types))
                 .thenReturn(new int[]{TYPE_WIFI, TYPE_ETHERNET, TYPE_MOBILE_HIPRI});
-        when(mTelephonyManager.getTetherApnRequired(anyInt())).thenReturn(false);
+        when(mTelephonyManager.isTetheringApnRequired(anyInt())).thenReturn(false);
 
         final TetheringConfiguration cfg = new TetheringConfiguration(
                 mMockContext, mLog, INVALID_SUBSCRIPTION_ID);
diff --git a/tests/net/java/com/android/server/connectivity/TetheringTest.java b/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/TetheringTest.java
similarity index 83%
rename from tests/net/java/com/android/server/connectivity/TetheringTest.java
rename to packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/TetheringTest.java
index 5f62c08..0273ed3 100644
--- a/tests/net/java/com/android/server/connectivity/TetheringTest.java
+++ b/packages/Tethering/tests/unit/src/com/android/server/connectivity/tethering/TetheringTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.server.connectivity;
+package com.android.server.connectivity.tethering;
 
 import static android.hardware.usb.UsbManager.USB_CONFIGURED;
 import static android.hardware.usb.UsbManager.USB_CONNECTED;
@@ -39,7 +39,9 @@
 import static android.provider.Settings.Global.TETHER_ENABLE_LEGACY_DHCP_SERVER;
 import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID;
 
+import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 import static org.mockito.ArgumentMatchers.argThat;
@@ -70,7 +72,7 @@
 import android.net.INetd;
 import android.net.INetworkPolicyManager;
 import android.net.INetworkStatsService;
-import android.net.ITetheringEventCallback;
+import android.net.ITetherInternalCallback;
 import android.net.InterfaceConfiguration;
 import android.net.IpPrefix;
 import android.net.LinkAddress;
@@ -82,6 +84,8 @@
 import android.net.NetworkState;
 import android.net.NetworkUtils;
 import android.net.RouteInfo;
+import android.net.TetherStatesParcel;
+import android.net.TetheringConfigurationParcel;
 import android.net.dhcp.DhcpServerCallbacks;
 import android.net.dhcp.DhcpServingParamsParcel;
 import android.net.dhcp.IDhcpServer;
@@ -98,6 +102,7 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.INetworkManagementService;
+import android.os.Looper;
 import android.os.PersistableBundle;
 import android.os.RemoteException;
 import android.os.UserHandle;
@@ -109,6 +114,7 @@
 import android.telephony.TelephonyManager;
 import android.test.mock.MockContentResolver;
 
+import androidx.annotation.NonNull;
 import androidx.test.filters.SmallTest;
 import androidx.test.runner.AndroidJUnit4;
 
@@ -116,11 +122,6 @@
 import com.android.internal.util.StateMachine;
 import com.android.internal.util.test.BroadcastInterceptingContext;
 import com.android.internal.util.test.FakeSettingsProvider;
-import com.android.server.connectivity.tethering.IPv6TetheringCoordinator;
-import com.android.server.connectivity.tethering.OffloadHardwareInterface;
-import com.android.server.connectivity.tethering.TetheringConfiguration;
-import com.android.server.connectivity.tethering.TetheringDependencies;
-import com.android.server.connectivity.tethering.UpstreamNetworkMonitor;
 
 import org.junit.After;
 import org.junit.Before;
@@ -154,7 +155,6 @@
     @Mock private INetworkManagementService mNMService;
     @Mock private INetworkStatsService mStatsService;
     @Mock private INetworkPolicyManager mPolicyManager;
-    @Mock private MockableSystemProperties mSystemProperties;
     @Mock private OffloadHardwareInterface mOffloadHardwareInterface;
     @Mock private Resources mResources;
     @Mock private TelephonyManager mTelephonyManager;
@@ -166,6 +166,7 @@
     @Mock private RouterAdvertisementDaemon mRouterAdvertisementDaemon;
     @Mock private IDhcpServer mDhcpServer;
     @Mock private INetd mNetd;
+    @Mock private UserManager mUserManager;
 
     private final MockIpServerDependencies mIpServerDependencies =
             spy(new MockIpServerDependencies());
@@ -184,30 +185,45 @@
     private Tethering mTethering;
     private PhoneStateListener mPhoneStateListener;
 
-    private class MockContext extends BroadcastInterceptingContext {
-        MockContext(Context base) {
+    private class TestContext extends BroadcastInterceptingContext {
+        TestContext(Context base) {
             super(base);
         }
 
         @Override
-        public ApplicationInfo getApplicationInfo() { return mApplicationInfo; }
+        public ApplicationInfo getApplicationInfo() {
+            return mApplicationInfo;
+        }
 
         @Override
-        public ContentResolver getContentResolver() { return mContentResolver; }
+        public ContentResolver getContentResolver() {
+            return mContentResolver;
+        }
 
         @Override
-        public String getPackageName() { return "TetheringTest"; }
+        public String getPackageName() {
+            return "TetheringTest";
+        }
 
         @Override
-        public Resources getResources() { return mResources; }
+        public Resources getResources() {
+            return mResources;
+        }
 
         @Override
         public Object getSystemService(String name) {
             if (Context.WIFI_SERVICE.equals(name)) return mWifiManager;
             if (Context.USB_SERVICE.equals(name)) return mUsbManager;
             if (Context.TELEPHONY_SERVICE.equals(name)) return mTelephonyManager;
+            if (Context.USER_SERVICE.equals(name)) return mUserManager;
             return super.getSystemService(name);
         }
+
+        @Override
+        public String getSystemServiceName(Class<?> serviceClass) {
+            if (TelephonyManager.class.equals(serviceClass)) return Context.TELEPHONY_SERVICE;
+            return super.getSystemServiceName(serviceClass);
+        }
     }
 
     public class MockIpServerDependencies extends IpServer.Dependencies {
@@ -260,14 +276,14 @@
     }
 
     public class MockTetheringDependencies extends TetheringDependencies {
-        StateMachine upstreamNetworkMonitorMasterSM;
-        ArrayList<IpServer> ipv6CoordinatorNotifyList;
-        int isTetheringSupportedCalls;
+        StateMachine mUpstreamNetworkMonitorMasterSM;
+        ArrayList<IpServer> mIpv6CoordinatorNotifyList;
+        int mIsTetheringSupportedCalls;
 
         public void reset() {
-            upstreamNetworkMonitorMasterSM = null;
-            ipv6CoordinatorNotifyList = null;
-            isTetheringSupportedCalls = 0;
+            mUpstreamNetworkMonitorMasterSM = null;
+            mIpv6CoordinatorNotifyList = null;
+            mIsTetheringSupportedCalls = 0;
         }
 
         @Override
@@ -278,14 +294,14 @@
         @Override
         public UpstreamNetworkMonitor getUpstreamNetworkMonitor(Context ctx,
                 StateMachine target, SharedLog log, int what) {
-            upstreamNetworkMonitorMasterSM = target;
+            mUpstreamNetworkMonitorMasterSM = target;
             return mUpstreamNetworkMonitor;
         }
 
         @Override
         public IPv6TetheringCoordinator getIPv6TetheringCoordinator(
                 ArrayList<IpServer> notifyList, SharedLog log) {
-            ipv6CoordinatorNotifyList = notifyList;
+            mIpv6CoordinatorNotifyList = notifyList;
             return mIPv6TetheringCoordinator;
         }
 
@@ -296,7 +312,7 @@
 
         @Override
         public boolean isTetheringSupported() {
-            isTetheringSupportedCalls++;
+            mIsTetheringSupportedCalls++;
             return true;
         }
 
@@ -305,6 +321,36 @@
                 int subId) {
             return new MockTetheringConfiguration(ctx, log, subId);
         }
+
+        @Override
+        public INetworkManagementService getINetworkManagementService() {
+            return mNMService;
+        }
+
+        @Override
+        public INetworkStatsService getINetworkStatsService() {
+            return mStatsService;
+        }
+
+        @Override
+        public INetworkPolicyManager getINetworkPolicyManager() {
+            return mPolicyManager;
+        }
+
+        @Override
+        public INetd getINetd(Context context) {
+            return mNetd;
+        }
+
+        @Override
+        public Looper getTetheringLooper() {
+            return mLooper.getLooper();
+        }
+
+        @Override
+        public Context getContext() {
+            return mServiceContext;
+        }
     }
 
     private static NetworkState buildMobileUpstreamState(boolean withIPv4, boolean withIPv6,
@@ -339,7 +385,7 @@
 
 
         final NetworkCapabilities capabilities = new NetworkCapabilities()
-                .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);;
+                .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
         return new NetworkState(info, prop, capabilities, new Network(100), null, "netid");
     }
 
@@ -384,7 +430,7 @@
         when(mRouterAdvertisementDaemon.start())
                 .thenReturn(true);
 
-        mServiceContext = new MockContext(mContext);
+        mServiceContext = new TestContext(mContext);
         mContentResolver = new MockContentResolver(mServiceContext);
         mContentResolver.addProvider(Settings.AUTHORITY, new FakeSettingsProvider());
         Settings.Global.putInt(mContentResolver, TETHER_ENABLE_LEGACY_DHCP_SERVER, 0);
@@ -397,9 +443,9 @@
         };
         mServiceContext.registerReceiver(mBroadcastReceiver,
                 new IntentFilter(ACTION_TETHER_STATE_CHANGED));
-        mTetheringDependencies.reset();
         mTethering = makeTethering();
         verify(mNMService).registerTetheringStatsProvider(any(), anyString());
+        verify(mNetd).registerUnsolicitedEventListener(any());
         final ArgumentCaptor<PhoneStateListener> phoneListenerCaptor =
                 ArgumentCaptor.forClass(PhoneStateListener.class);
         verify(mTelephonyManager).listen(phoneListenerCaptor.capture(),
@@ -408,9 +454,8 @@
     }
 
     private Tethering makeTethering() {
-        return new Tethering(mServiceContext, mNMService, mStatsService, mPolicyManager,
-                mLooper.getLooper(), mSystemProperties,
-                mTetheringDependencies);
+        mTetheringDependencies.reset();
+        return new Tethering(mTetheringDependencies);
     }
 
     @After
@@ -501,7 +546,7 @@
         // it creates a IpServer and sends out a broadcast indicating that the
         // interface is "available".
         if (emulateInterfaceStatusChanged) {
-            assertEquals(1, mTetheringDependencies.isTetheringSupportedCalls);
+            assertEquals(1, mTetheringDependencies.mIsTetheringSupportedCalls);
             verifyTetheringBroadcast(TEST_WLAN_IFNAME, EXTRA_AVAILABLE_TETHER);
             verify(mWifiManager).updateInterfaceIpState(
                     TEST_WLAN_IFNAME, WifiManager.IFACE_IP_MODE_UNSPECIFIED);
@@ -578,7 +623,7 @@
         verify(mUpstreamNetworkMonitor, times(1)).startObserveAllNetworks();
         // This will be called twice, one is on entering IpServer.STATE_AVAILABLE,
         // and another one is on IpServer.STATE_TETHERED/IpServer.STATE_LOCAL_ONLY.
-        assertEquals(2, mTetheringDependencies.isTetheringSupportedCalls);
+        assertEquals(2, mTetheringDependencies.mIsTetheringSupportedCalls);
 
         // Emulate externally-visible WifiManager effects, when hotspot mode
         // is being torn down.
@@ -611,8 +656,7 @@
                 argThat(sm -> sm.linkProperties().getInterfaceName().equals(TEST_USB_IFNAME)),
                 eq(IpServer.STATE_TETHERED));
 
-        for (IpServer ipSrv :
-                mTetheringDependencies.ipv6CoordinatorNotifyList) {
+        for (IpServer ipSrv : mTetheringDependencies.mIpv6CoordinatorNotifyList) {
             NetworkState ipv6OnlyState = buildMobileUpstreamState(false, true, false);
             ipSrv.sendMessage(IpServer.CMD_IPV6_TETHER_UPDATE, 0, 0,
                     upstreamState.linkProperties.isIpv6Provisioned()
@@ -644,7 +688,7 @@
     @Test
     public void workingMobileUsbTethering_IPv4LegacyDhcp() {
         Settings.Global.putInt(mContentResolver, TETHER_ENABLE_LEGACY_DHCP_SERVER, 1);
-        mTethering = makeTethering();
+        sendConfigurationChanged();
         final NetworkState upstreamState = buildMobileIPv4UpstreamState();
         runUsbTethering(upstreamState);
         sendIPv6TetherUpdates(upstreamState);
@@ -713,7 +757,7 @@
                 .thenReturn(upstreamState);
 
         // Upstream LinkProperties changed: UpstreamNetworkMonitor sends EVENT_ON_LINKPROPERTIES.
-        mTetheringDependencies.upstreamNetworkMonitorMasterSM.sendMessage(
+        mTetheringDependencies.mUpstreamNetworkMonitorMasterSM.sendMessage(
                 Tethering.TetherMasterSM.EVENT_UPSTREAM_CALLBACK,
                 UpstreamNetworkMonitor.EVENT_ON_LINKPROPERTIES,
                 0,
@@ -778,7 +822,7 @@
         sendWifiApStateChanged(WIFI_AP_STATE_ENABLED);
         mLooper.dispatchAll();
 
-        assertEquals(1, mTetheringDependencies.isTetheringSupportedCalls);
+        assertEquals(1, mTetheringDependencies.mIsTetheringSupportedCalls);
         verifyTetheringBroadcast(TEST_WLAN_IFNAME, EXTRA_AVAILABLE_TETHER);
         verify(mWifiManager).updateInterfaceIpState(
                 TEST_WLAN_IFNAME, WifiManager.IFACE_IP_MODE_UNSPECIFIED);
@@ -822,7 +866,7 @@
         verify(mUpstreamNetworkMonitor, times(1)).registerMobileNetworkRequest();
         // This will be called twice, one is on entering IpServer.STATE_AVAILABLE,
         // and another one is on IpServer.STATE_TETHERED/IpServer.STATE_LOCAL_ONLY.
-        assertEquals(2, mTetheringDependencies.isTetheringSupportedCalls);
+        assertEquals(2, mTetheringDependencies.mIsTetheringSupportedCalls);
 
         /////
         // We do not currently emulate any upstream being found.
@@ -895,7 +939,7 @@
                 TEST_WLAN_IFNAME, WifiManager.IFACE_IP_MODE_TETHERED);
         // There are 3 state change event:
         // AVAILABLE -> STATE_TETHERED -> STATE_AVAILABLE.
-        assertEquals(3, mTetheringDependencies.isTetheringSupportedCalls);
+        assertEquals(3, mTetheringDependencies.mIsTetheringSupportedCalls);
         verifyTetheringBroadcast(TEST_WLAN_IFNAME, EXTRA_AVAILABLE_TETHER);
         // This is called, but will throw.
         verify(mNMService, times(1)).setIpForwardingEnabled(true);
@@ -912,26 +956,26 @@
         verifyNoMoreInteractions(mNMService);
     }
 
-    private void userRestrictionsListenerBehaviour(
-        boolean currentDisallow, boolean nextDisallow, String[] activeTetheringIfacesList,
-        int expectedInteractionsWithShowNotification) throws  Exception {
-        final int userId = 0;
-        final Bundle currRestrictions = new Bundle();
+    private void runUserRestrictionsChange(
+            boolean currentDisallow, boolean nextDisallow, String[] activeTetheringIfacesList,
+            int expectedInteractionsWithShowNotification) throws  Exception {
         final Bundle newRestrictions = new Bundle();
-        Tethering tethering = mock(Tethering.class);
-        Tethering.TetheringUserRestrictionListener turl =
-                new Tethering.TetheringUserRestrictionListener(tethering);
-
-        currRestrictions.putBoolean(UserManager.DISALLOW_CONFIG_TETHERING, currentDisallow);
         newRestrictions.putBoolean(UserManager.DISALLOW_CONFIG_TETHERING, nextDisallow);
-        when(tethering.getTetheredIfaces()).thenReturn(activeTetheringIfacesList);
+        final Tethering mockTethering = mock(Tethering.class);
+        when(mockTethering.getTetheredIfaces()).thenReturn(activeTetheringIfacesList);
+        when(mUserManager.getUserRestrictions()).thenReturn(newRestrictions);
 
-        turl.onUserRestrictionsChanged(userId, newRestrictions, currRestrictions);
+        final Tethering.UserRestrictionActionListener ural =
+                new Tethering.UserRestrictionActionListener(mUserManager, mockTethering);
+        ural.mDisallowTethering = currentDisallow;
 
-        verify(tethering, times(expectedInteractionsWithShowNotification))
+        ural.onUserRestrictionsChanged();
+
+        verify(mockTethering, times(expectedInteractionsWithShowNotification))
                 .showTetheredNotification(anyInt(), eq(false));
 
-        verify(tethering, times(expectedInteractionsWithShowNotification)).untetherAll();
+        verify(mockTethering, times(expectedInteractionsWithShowNotification))
+                .untetherAll();
     }
 
     @Test
@@ -941,7 +985,7 @@
         final boolean nextDisallow = true;
         final int expectedInteractionsWithShowNotification = 0;
 
-        userRestrictionsListenerBehaviour(currDisallow, nextDisallow, emptyActiveIfacesList,
+        runUserRestrictionsChange(currDisallow, nextDisallow, emptyActiveIfacesList,
                 expectedInteractionsWithShowNotification);
     }
 
@@ -952,7 +996,7 @@
         final boolean nextDisallow = true;
         final int expectedInteractionsWithShowNotification = 1;
 
-        userRestrictionsListenerBehaviour(currDisallow, nextDisallow, nonEmptyActiveIfacesList,
+        runUserRestrictionsChange(currDisallow, nextDisallow, nonEmptyActiveIfacesList,
                 expectedInteractionsWithShowNotification);
     }
 
@@ -963,7 +1007,7 @@
         final boolean nextDisallow = false;
         final int expectedInteractionsWithShowNotification = 0;
 
-        userRestrictionsListenerBehaviour(currDisallow, nextDisallow, nonEmptyActiveIfacesList,
+        runUserRestrictionsChange(currDisallow, nextDisallow, nonEmptyActiveIfacesList,
                 expectedInteractionsWithShowNotification);
     }
 
@@ -974,7 +1018,7 @@
         final boolean nextDisallow = false;
         final int expectedInteractionsWithShowNotification = 0;
 
-        userRestrictionsListenerBehaviour(currDisallow, nextDisallow, nonEmptyActiveIfacesList,
+        runUserRestrictionsChange(currDisallow, nextDisallow, nonEmptyActiveIfacesList,
                 expectedInteractionsWithShowNotification);
     }
 
@@ -985,27 +1029,59 @@
         boolean currDisallow = true;
         boolean nextDisallow = true;
 
-        userRestrictionsListenerBehaviour(currDisallow, nextDisallow, nonEmptyActiveIfacesList,
+        runUserRestrictionsChange(currDisallow, nextDisallow, nonEmptyActiveIfacesList,
                 expectedInteractionsWithShowNotification);
 
         currDisallow = false;
         nextDisallow = false;
 
-        userRestrictionsListenerBehaviour(currDisallow, nextDisallow, nonEmptyActiveIfacesList,
+        runUserRestrictionsChange(currDisallow, nextDisallow, nonEmptyActiveIfacesList,
                 expectedInteractionsWithShowNotification);
     }
 
-    private class TestTetheringEventCallback extends ITetheringEventCallback.Stub {
+    private class TestTetherInternalCallback extends ITetherInternalCallback.Stub {
         private final ArrayList<Network> mActualUpstreams = new ArrayList<>();
+        private final ArrayList<TetheringConfigurationParcel> mTetheringConfigs =
+                new ArrayList<>();
+        private final ArrayList<TetherStatesParcel> mTetherStates = new ArrayList<>();
 
+        // This function will remove the recorded callbacks, so it must be called once for
+        // each callback. If this is called after multiple callback, the order matters.
+        // onCallbackCreated counts as the first call to expectUpstreamChanged with
+        // @see onCallbackCreated.
         public void expectUpstreamChanged(Network... networks) {
+            if (networks == null) {
+                assertNoUpstreamChangeCallback();
+                return;
+            }
+
             final ArrayList<Network> expectedUpstreams =
                     new ArrayList<Network>(Arrays.asList(networks));
             for (Network upstream : expectedUpstreams) {
                 // throws OOB if no expectations
                 assertEquals(mActualUpstreams.remove(0), upstream);
             }
-            assertNoCallback();
+            assertNoUpstreamChangeCallback();
+        }
+
+        // This function will remove the recorded callbacks, so it must be called once
+        // for each callback. If this is called after multiple callback, the order matters.
+        // onCallbackCreated counts as the first call to onConfigurationChanged with
+        // @see onCallbackCreated.
+        public void expectConfigurationChanged(TetheringConfigurationParcel... tetherConfigs) {
+            final ArrayList<TetheringConfigurationParcel> expectedTetherConfig =
+                    new ArrayList<TetheringConfigurationParcel>(Arrays.asList(tetherConfigs));
+            for (TetheringConfigurationParcel config : expectedTetherConfig) {
+                // throws OOB if no expectations
+                final TetheringConfigurationParcel actualConfig = mTetheringConfigs.remove(0);
+                assertTetherConfigParcelEqual(actualConfig, config);
+            }
+            assertNoConfigChangeCallback();
+        }
+
+        public TetherStatesParcel pollTetherStatesChanged() {
+            assertStateChangeCallback();
+            return mTetherStates.remove(0);
         }
 
         @Override
@@ -1013,48 +1089,93 @@
             mActualUpstreams.add(network);
         }
 
-        public void assertNoCallback() {
+        @Override
+        public void onConfigurationChanged(TetheringConfigurationParcel config) {
+            mTetheringConfigs.add(config);
+        }
+
+        @Override
+        public void onTetherStatesChanged(TetherStatesParcel states) {
+            mTetherStates.add(states);
+        }
+
+        @Override
+        public void onCallbackCreated(Network network, TetheringConfigurationParcel config,
+                TetherStatesParcel states) {
+            mActualUpstreams.add(network);
+            mTetheringConfigs.add(config);
+            mTetherStates.add(states);
+        }
+
+        public void assertNoUpstreamChangeCallback() {
             assertTrue(mActualUpstreams.isEmpty());
         }
+
+        public void assertNoConfigChangeCallback() {
+            assertTrue(mTetheringConfigs.isEmpty());
+        }
+
+        public void assertStateChangeCallback() {
+            assertFalse(mTetherStates.isEmpty());
+        }
+
+        private void assertTetherConfigParcelEqual(@NonNull TetheringConfigurationParcel actual,
+                @NonNull TetheringConfigurationParcel expect) {
+            assertEquals(actual.subId, expect.subId);
+            assertArrayEquals(actual.tetherableUsbRegexs, expect.tetherableUsbRegexs);
+            assertArrayEquals(actual.tetherableWifiRegexs, expect.tetherableWifiRegexs);
+            assertArrayEquals(actual.tetherableBluetoothRegexs, expect.tetherableBluetoothRegexs);
+            assertEquals(actual.isDunRequired, expect.isDunRequired);
+            assertEquals(actual.chooseUpstreamAutomatically, expect.chooseUpstreamAutomatically);
+            assertArrayEquals(actual.preferredUpstreamIfaceTypes,
+                    expect.preferredUpstreamIfaceTypes);
+            assertArrayEquals(actual.legacyDhcpRanges, expect.legacyDhcpRanges);
+            assertArrayEquals(actual.defaultIPv4DNS, expect.defaultIPv4DNS);
+            assertEquals(actual.enableLegacyDhcpServer, expect.enableLegacyDhcpServer);
+            assertArrayEquals(actual.provisioningApp, expect.provisioningApp);
+            assertEquals(actual.provisioningAppNoUi, expect.provisioningAppNoUi);
+            assertEquals(actual.provisioningCheckPeriod, expect.provisioningCheckPeriod);
+        }
     }
 
     @Test
-    public void testRegisterTetheringEventCallback() throws Exception {
-        TestTetheringEventCallback callback1 = new TestTetheringEventCallback();
-        TestTetheringEventCallback callback2 = new TestTetheringEventCallback();
+    public void testRegisterTetherInternalCallback() throws Exception {
+        TestTetherInternalCallback callback = new TestTetherInternalCallback();
 
-        // 1. Register one callback and run usb tethering.
-        mTethering.registerTetheringEventCallback(callback1);
+        // 1. Register one callback before running any tethering.
+        mTethering.registerTetherInternalCallback(callback);
         mLooper.dispatchAll();
-        callback1.expectUpstreamChanged(new Network[] {null});
+        callback.expectUpstreamChanged(new Network[] {null});
+        callback.expectConfigurationChanged(
+                mTethering.getTetheringConfiguration().toStableParcelable());
+        TetherStatesParcel tetherState = callback.pollTetherStatesChanged();
+        assertEquals(tetherState, null);
+        // 2. Enable wifi tethering
         NetworkState upstreamState = buildMobileDualStackUpstreamState();
-        runUsbTethering(upstreamState);
-        callback1.expectUpstreamChanged(upstreamState.network);
-        // 2. Register second callback.
-        mTethering.registerTetheringEventCallback(callback2);
-        mLooper.dispatchAll();
-        callback2.expectUpstreamChanged(upstreamState.network);
-        // 3. Disable usb tethering.
-        mTethering.stopTethering(TETHERING_USB);
-        mLooper.dispatchAll();
-        sendUsbBroadcast(false, false, false);
-        mLooper.dispatchAll();
-        callback1.expectUpstreamChanged(new Network[] {null});
-        callback2.expectUpstreamChanged(new Network[] {null});
-        // 4. Unregister first callback and run hotspot.
-        mTethering.unregisterTetheringEventCallback(callback1);
-        mLooper.dispatchAll();
         when(mUpstreamNetworkMonitor.getCurrentPreferredUpstream()).thenReturn(upstreamState);
         when(mUpstreamNetworkMonitor.selectPreferredUpstreamType(any()))
                 .thenReturn(upstreamState);
         when(mWifiManager.startSoftAp(any(WifiConfiguration.class))).thenReturn(true);
-        mTethering.startTethering(TETHERING_WIFI, null, false);
-        mLooper.dispatchAll();
         mTethering.interfaceStatusChanged(TEST_WLAN_IFNAME, true);
+        mLooper.dispatchAll();
+        tetherState = callback.pollTetherStatesChanged();
+        assertArrayEquals(tetherState.availableList, new String[] {TEST_WLAN_IFNAME});
+
+        mTethering.startTethering(TETHERING_WIFI, null, false);
         sendWifiApStateChanged(WIFI_AP_STATE_ENABLED, TEST_WLAN_IFNAME, IFACE_IP_MODE_TETHERED);
         mLooper.dispatchAll();
-        callback1.assertNoCallback();
-        callback2.expectUpstreamChanged(upstreamState.network);
+        tetherState = callback.pollTetherStatesChanged();
+        assertArrayEquals(tetherState.tetheredList, new String[] {TEST_WLAN_IFNAME});
+        callback.expectUpstreamChanged(upstreamState.network);
+
+        // 3. Disable wifi tethering.
+        mTethering.stopTethering(TETHERING_WIFI);
+        sendWifiApStateChanged(WifiManager.WIFI_AP_STATE_DISABLED);
+        mLooper.dispatchAll();
+        tetherState = callback.pollTetherStatesChanged();
+        assertArrayEquals(tetherState.availableList, new String[] {TEST_WLAN_IFNAME});
+        mLooper.dispatchAll();
+        callback.expectUpstreamChanged(new Network[] {null});
     }
 
     @Test
@@ -1085,7 +1206,7 @@
         verify(mUpstreamNetworkMonitor, times(1)).startObserveAllNetworks();
         // This will be called twice, one is on entering IpServer.STATE_AVAILABLE,
         // and another one is on IpServer.STATE_TETHERED/IpServer.STATE_LOCAL_ONLY.
-        assertEquals(2, mTetheringDependencies.isTetheringSupportedCalls);
+        assertEquals(2, mTetheringDependencies.mIsTetheringSupportedCalls);
 
         assertEquals(TETHER_ERROR_NO_ERROR, mTethering.getLastTetherError(TEST_P2P_IFNAME));
 
diff --git a/services/accessibility/TEST_MAPPING b/services/accessibility/TEST_MAPPING
index 45c5245..d90c3bd 100644
--- a/services/accessibility/TEST_MAPPING
+++ b/services/accessibility/TEST_MAPPING
@@ -52,9 +52,6 @@
         },
         {
           "exclude-annotation": "androidx.test.filters.FlakyTest"
-        },
-        {
-          "exclude-filter": "android.view.textclassifier.TextClassifierTest#testSuggetsConversationActions_deduplicate"
         }
       ]
     },
@@ -66,9 +63,6 @@
         },
         {
           "exclude-annotation": "androidx.test.filters.FlakyTest"
-        },
-        {
-          "exclude-filter": "android.view.textclassifier.TextClassifierTest#testSuggetsConversationActions_deduplicate"
         }
       ]
     }
diff --git a/services/core/Android.bp b/services/core/Android.bp
index ed68f32..4e75e00 100644
--- a/services/core/Android.bp
+++ b/services/core/Android.bp
@@ -20,7 +20,6 @@
         ":vold_aidl",
         ":gsiservice_aidl",
         ":platform-compat-config",
-        ":tethering-servicescore-srcs",
         "java/com/android/server/EventLogTags.logtags",
         "java/com/android/server/am/EventLogTags.logtags",
         "java/com/android/server/policy/EventLogTags.logtags",
@@ -31,6 +30,8 @@
         "android.hardware.light-V2.0-java",
         "android.hardware.power-V1.0-java",
         "android.hardware.tv.cec-V1.0-java",
+        "app-compat-annotations",
+        "vintf-vibrator-java",
     ],
 
     required: [
@@ -48,8 +49,6 @@
         "android.hardware.biometrics.face-V1.0-java",
         "android.hardware.biometrics.fingerprint-V2.1-java",
         "android.hardware.oemlock-V1.0-java",
-        "android.hardware.tetheroffload.control-V1.0-java",
-        "android.hardware.vibrator-V1.4-java",
         "android.hardware.configstore-V1.0-java",
         "android.hardware.contexthub-V1.0-java",
         "android.hidl.manager-V1.2-java",
@@ -81,11 +80,3 @@
     name: "gps_debug.conf",
     src: "java/com/android/server/location/gps_debug.conf",
 }
-
-// TODO: this should be removed after tethering migration done.
-filegroup {
-    name: "servicescore-tethering-src",
-    srcs: [
-        "java/com/android/server/connectivity/MockableSystemProperties.java",
-    ],
-}
diff --git a/services/core/java/com/android/server/AppStateTracker.java b/services/core/java/com/android/server/AppStateTracker.java
index 3a7b5d6..207e007 100644
--- a/services/core/java/com/android/server/AppStateTracker.java
+++ b/services/core/java/com/android/server/AppStateTracker.java
@@ -700,14 +700,16 @@
                 Slog.d(TAG,"onAppIdleStateChanged: " + packageName + " u" + userId
                         + (idle ? " idle" : " active") + " " + bucket);
             }
-            final boolean changed;
-            if (bucket == UsageStatsManager.STANDBY_BUCKET_EXEMPTED) {
-                changed = mExemptedPackages.add(userId, packageName);
-            } else {
-                changed = mExemptedPackages.remove(userId, packageName);
-            }
-            if (changed) {
-                mHandler.notifyExemptChanged();
+            synchronized (mLock) {
+                final boolean changed;
+                if (bucket == UsageStatsManager.STANDBY_BUCKET_EXEMPTED) {
+                    changed = mExemptedPackages.add(userId, packageName);
+                } else {
+                    changed = mExemptedPackages.remove(userId, packageName);
+                }
+                if (changed) {
+                    mHandler.notifyExemptChanged();
+                }
             }
         }
 
diff --git a/services/core/java/com/android/server/BluetoothManagerService.java b/services/core/java/com/android/server/BluetoothManagerService.java
index 208b638..798a4c6 100644
--- a/services/core/java/com/android/server/BluetoothManagerService.java
+++ b/services/core/java/com/android/server/BluetoothManagerService.java
@@ -98,7 +98,7 @@
 
     private static final int TIMEOUT_BIND_MS = 3000; //Maximum msec to wait for a bind
     //Maximum msec to wait for service restart
-    private static final int SERVICE_RESTART_TIME_MS = 200;
+    private static final int SERVICE_RESTART_TIME_MS = 400;
     //Maximum msec to wait for restart due to error
     private static final int ERROR_RESTART_TIME_MS = 3000;
     //Maximum msec to delay MESSAGE_USER_SWITCHED
@@ -1635,13 +1635,13 @@
                         //     ActivityManager detects it.
                         // The waiting for (b) and (c) is accomplished by
                         // delaying the MESSAGE_RESTART_BLUETOOTH_SERVICE
-                        // message. On slower devices, that delay needs to be
-                        // on the order of (2 * SERVICE_RESTART_TIME_MS).
+                        // message. The delay time is backed off if Bluetooth
+                        // continuously failed to turn on itself.
                         //
                         waitForOnOff(false, true);
                         Message restartMsg =
                                 mHandler.obtainMessage(MESSAGE_RESTART_BLUETOOTH_SERVICE);
-                        mHandler.sendMessageDelayed(restartMsg, 2 * SERVICE_RESTART_TIME_MS);
+                        mHandler.sendMessageDelayed(restartMsg, getServiceRestartMs());
                     }
                     break;
 
@@ -1820,7 +1820,7 @@
                             waitForOnOff(false, true);
                             Message restartMsg =
                                     mHandler.obtainMessage(MESSAGE_RESTART_BLUETOOTH_SERVICE);
-                            mHandler.sendMessageDelayed(restartMsg, 2 * SERVICE_RESTART_TIME_MS);
+                            mHandler.sendMessageDelayed(restartMsg, getServiceRestartMs());
                         }
                     }
                     if (newState == BluetoothAdapter.STATE_ON
@@ -1863,7 +1863,7 @@
                         // Send a Bluetooth Restart message
                         Message restartMsg =
                                 mHandler.obtainMessage(MESSAGE_RESTART_BLUETOOTH_SERVICE);
-                        mHandler.sendMessageDelayed(restartMsg, SERVICE_RESTART_TIME_MS);
+                        mHandler.sendMessageDelayed(restartMsg, getServiceRestartMs());
                     }
 
                     sendBluetoothServiceDownCallback();
@@ -1886,14 +1886,20 @@
                     break;
                 }
                 case MESSAGE_RESTART_BLUETOOTH_SERVICE: {
-                    Slog.d(TAG, "MESSAGE_RESTART_BLUETOOTH_SERVICE");
-                    /* Enable without persisting the setting as
-                     it doesnt change when IBluetooth
-                     service restarts */
-                    mEnable = true;
-                    addActiveLog(BluetoothProtoEnums.ENABLE_DISABLE_REASON_RESTARTED,
-                            mContext.getPackageName(), true);
-                    handleEnable(mQuietEnable);
+                    mErrorRecoveryRetryCounter++;
+                    Slog.d(TAG, "MESSAGE_RESTART_BLUETOOTH_SERVICE: retry count="
+                            + mErrorRecoveryRetryCounter);
+                    if (mErrorRecoveryRetryCounter < MAX_ERROR_RESTART_RETRIES) {
+                        /* Enable without persisting the setting as
+                         it doesnt change when IBluetooth
+                         service restarts */
+                        mEnable = true;
+                        addActiveLog(BluetoothProtoEnums.ENABLE_DISABLE_REASON_RESTARTED,
+                                mContext.getPackageName(), true);
+                        handleEnable(mQuietEnable);
+                    } else {
+                        Slog.e(TAG, "Reach maximum retry to restart Bluetooth!");
+                    }
                     break;
                 }
                 case MESSAGE_TIMEOUT_BIND: {
@@ -2332,13 +2338,9 @@
 
         mEnable = false;
 
-        if (mErrorRecoveryRetryCounter++ < MAX_ERROR_RESTART_RETRIES) {
-            // Send a Bluetooth Restart message to reenable bluetooth
-            Message restartMsg = mHandler.obtainMessage(MESSAGE_RESTART_BLUETOOTH_SERVICE);
-            mHandler.sendMessageDelayed(restartMsg, ERROR_RESTART_TIME_MS);
-        } else {
-            // todo: notify user to power down and power up phone to make bluetooth work.
-        }
+        // Send a Bluetooth Restart message to reenable bluetooth
+        Message restartMsg = mHandler.obtainMessage(MESSAGE_RESTART_BLUETOOTH_SERVICE);
+        mHandler.sendMessageDelayed(restartMsg, ERROR_RESTART_TIME_MS);
     }
 
     private boolean isBluetoothDisallowed() {
@@ -2374,6 +2376,10 @@
         }
     }
 
+    private int getServiceRestartMs() {
+        return (mErrorRecoveryRetryCounter + 1) * SERVICE_RESTART_TIME_MS;
+    }
+
     @Override
     public void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
         if (!DumpUtils.checkDumpPermission(mContext, TAG, writer)) {
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
index ce0e9e7..a3a6172 100644
--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -97,6 +97,7 @@
 import android.net.NetworkPolicyManager;
 import android.net.NetworkQuotaInfo;
 import android.net.NetworkRequest;
+import android.net.NetworkScore;
 import android.net.NetworkSpecifier;
 import android.net.NetworkStack;
 import android.net.NetworkStackClient;
@@ -107,6 +108,7 @@
 import android.net.ProxyInfo;
 import android.net.RouteInfo;
 import android.net.SocketKeepalive;
+import android.net.TetheringManager;
 import android.net.UidRange;
 import android.net.Uri;
 import android.net.VpnService;
@@ -145,6 +147,7 @@
 import android.security.KeyStore;
 import android.telephony.TelephonyManager;
 import android.text.TextUtils;
+import android.util.ArrayMap;
 import android.util.ArraySet;
 import android.util.LocalLog;
 import android.util.Log;
@@ -185,9 +188,7 @@
 import com.android.server.connectivity.NetworkNotificationManager.NotificationType;
 import com.android.server.connectivity.PermissionMonitor;
 import com.android.server.connectivity.ProxyTracker;
-import com.android.server.connectivity.Tethering;
 import com.android.server.connectivity.Vpn;
-import com.android.server.connectivity.tethering.TetheringDependencies;
 import com.android.server.net.BaseNetdEventCallback;
 import com.android.server.net.BaseNetworkObserver;
 import com.android.server.net.LockdownVpnTracker;
@@ -231,7 +232,6 @@
 
     private static final String DIAG_ARG = "--diag";
     public static final String SHORT_ARG = "--short";
-    private static final String TETHERING_ARG = "tethering";
     private static final String NETWORK_ARG = "networks";
     private static final String REQUEST_ARG = "requests";
 
@@ -278,7 +278,7 @@
 
     private MockableSystemProperties mSystemProperties;
 
-    private Tethering mTethering;
+    private TetheringManager mTetheringManager;
 
     @VisibleForTesting
     protected final PermissionMonitor mPermissionMonitor;
@@ -867,15 +867,10 @@
         }
 
         /**
-         * @see Tethering
+         * Get a reference to the TetheringManager.
          */
-        public Tethering makeTethering(@NonNull Context context,
-                @NonNull INetworkManagementService nms,
-                @NonNull INetworkStatsService statsService,
-                @NonNull INetworkPolicyManager policyManager,
-                @NonNull TetheringDependencies tetheringDeps) {
-            return new Tethering(context, nms, statsService, policyManager,
-                    IoThread.get().getLooper(), getSystemProperties(), tetheringDeps);
+        public TetheringManager getTetheringManager() {
+            return TetheringManager.getInstance();
         }
 
         /**
@@ -930,6 +925,10 @@
             return IIpConnectivityMetrics.Stub.asInterface(
                     ServiceManager.getService(IpConnectivityLog.SERVICE_NAME));
         }
+
+        public IBatteryStats getBatteryStatsService() {
+            return BatteryStatsService.getService();
+        }
     }
 
     public ConnectivityService(Context context, INetworkManagementService netManager,
@@ -1073,8 +1072,7 @@
 
         mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
 
-        mTethering = deps.makeTethering(mContext, mNMS, mStatsService, mPolicyManager,
-                makeTetheringDependencies());
+        mTetheringManager = mDeps.getTetheringManager();
 
         mPermissionMonitor = new PermissionMonitor(mContext, mNetd);
 
@@ -1109,7 +1107,6 @@
                 mHandler);
 
         try {
-            mNMS.registerObserver(mTethering);
             mNMS.registerObserver(mDataActivityObserver);
         } catch (RemoteException e) {
             loge("Error registering observer :" + e);
@@ -1143,19 +1140,6 @@
         registerPrivateDnsSettingsCallbacks();
     }
 
-    private TetheringDependencies makeTetheringDependencies() {
-        return new TetheringDependencies() {
-            @Override
-            public boolean isTetheringSupported() {
-                return ConnectivityService.this.isTetheringSupported();
-            }
-            @Override
-            public NetworkRequest getDefaultNetworkRequest() {
-                return mDefaultRequest;
-            }
-        };
-    }
-
     private static NetworkCapabilities createDefaultNetworkCapabilitiesForUid(int uid) {
         final NetworkCapabilities netCap = new NetworkCapabilities();
         netCap.addCapability(NET_CAPABILITY_INTERNET);
@@ -1907,7 +1891,9 @@
             // TODO: relocate this specific callback in Tethering.
             if (restrictBackground) {
                 log("onRestrictBackgroundChanged(true): disabling tethering");
-                mTethering.untetherAll();
+                mTetheringManager.stopTethering(ConnectivityManager.TETHERING_WIFI);
+                mTetheringManager.stopTethering(ConnectivityManager.TETHERING_USB);
+                mTetheringManager.stopTethering(ConnectivityManager.TETHERING_BLUETOOTH);
             }
         }
     };
@@ -2162,7 +2148,7 @@
                     opts.setMaxManifestReceiverApiLevel(Build.VERSION_CODES.M);
                     options = opts.toBundle();
                 }
-                final IBatteryStats bs = BatteryStatsService.getService();
+                final IBatteryStats bs = mDeps.getBatteryStatsService();
                 try {
                     bs.noteConnectivityChanged(intent.getIntExtra(
                             ConnectivityManager.EXTRA_NETWORK_TYPE, ConnectivityManager.TYPE_NONE),
@@ -2184,9 +2170,13 @@
      */
     @VisibleForTesting
     public void systemReady() {
+        // Let PermissionMonitor#startMonitoring() running in the beginning of the systemReady
+        // before MultipathPolicyTracker.start(). Since mApps in PermissionMonitor needs to be
+        // populated first to ensure that listening network request which is sent by
+        // MultipathPolicyTracker won't be added NET_CAPABILITY_FOREGROUND capability.
+        mPermissionMonitor.startMonitoring();
         mProxyTracker.loadGlobalProxy();
         registerNetdEventCallback();
-        mTethering.systemReady();
 
         synchronized (this) {
             mSystemReady = true;
@@ -2204,8 +2194,6 @@
         mHandler.sendMessage(mHandler.obtainMessage(EVENT_CONFIGURE_ALWAYS_ON_NETWORKS));
 
         mHandler.sendMessage(mHandler.obtainMessage(EVENT_SYSTEM_READY));
-
-        mPermissionMonitor.startMonitoring();
     }
 
     /**
@@ -2400,9 +2388,6 @@
         if (ArrayUtils.contains(args, DIAG_ARG)) {
             dumpNetworkDiagnostics(pw);
             return;
-        } else if (ArrayUtils.contains(args, TETHERING_ARG)) {
-            mTethering.dump(fd, pw, args);
-            return;
         } else if (ArrayUtils.contains(args, NETWORK_ARG)) {
             dumpNetworks(pw);
             return;
@@ -2464,10 +2449,13 @@
         mLegacyTypeTracker.dump(pw);
 
         pw.println();
-        mTethering.dump(fd, pw, args);
+        mKeepaliveTracker.dump(pw);
 
         pw.println();
-        mKeepaliveTracker.dump(pw);
+        pw.println("TetheringManager logs:");
+        pw.increaseIndent();
+        TetheringManager.getInstance().dump(pw);
+        pw.decreaseIndent();
 
         pw.println();
         dumpAvoidBadWifiSettings(pw);
@@ -2643,7 +2631,8 @@
                     break;
                 }
                 case NetworkAgent.EVENT_NETWORK_SCORE_CHANGED: {
-                    updateNetworkScore(nai, msg.arg1);
+                    final NetworkScore ns = (NetworkScore) msg.obj;
+                    updateNetworkScore(nai, ns);
                     break;
                 }
                 case NetworkAgent.EVENT_SET_EXPLICITLY_SELECTED: {
@@ -3048,7 +3037,8 @@
     }
 
     private void handleAsyncChannelHalfConnect(Message msg) {
-        AsyncChannel ac = (AsyncChannel) msg.obj;
+        ensureRunningOnConnectivityServiceThread();
+        final AsyncChannel ac = (AsyncChannel) msg.obj;
         if (mNetworkFactoryInfos.containsKey(msg.replyTo)) {
             if (msg.arg1 == AsyncChannel.STATUS_SUCCESSFUL) {
                 if (VDBG) log("NetworkFactory connected");
@@ -3058,7 +3048,8 @@
                 // A network factory has connected.  Send it all current NetworkRequests.
                 for (NetworkRequestInfo nri : mNetworkRequests.values()) {
                     if (nri.request.isListen()) continue;
-                    NetworkAgentInfo nai = getNetworkForRequest(nri.request.requestId);
+                    ensureRunningOnConnectivityServiceThread();
+                    NetworkAgentInfo nai = nri.mSatisfier;
                     final int score;
                     final int serial;
                     if (nai != null) {
@@ -3114,6 +3105,7 @@
     // ConnectivityService, free its interfaces and clean up.
     // Must be called on the Handler thread.
     private void disconnectAndDestroyNetwork(NetworkAgentInfo nai) {
+        ensureRunningOnConnectivityServiceThread();
         if (DBG) {
             log(nai.name() + " got DISCONNECTED, was satisfying " + nai.numNetworkRequests());
         }
@@ -3160,14 +3152,17 @@
         // Remove all previously satisfied requests.
         for (int i = 0; i < nai.numNetworkRequests(); i++) {
             NetworkRequest request = nai.requestAt(i);
-            NetworkAgentInfo currentNetwork = getNetworkForRequest(request.requestId);
+            final NetworkRequestInfo nri = mNetworkRequests.get(request);
+            ensureRunningOnConnectivityServiceThread();
+            final NetworkAgentInfo currentNetwork = nri.mSatisfier;
             if (currentNetwork != null && currentNetwork.network.netId == nai.network.netId) {
-                clearNetworkForRequest(request.requestId);
+                nri.mSatisfier = null;
                 sendUpdatedScoreToFactories(request, null);
             }
         }
         nai.clearLingerState();
         if (nai.isSatisfyingRequest(mDefaultRequest.requestId)) {
+            mDefaultNetworkNai = null;
             updateDataActivityTracking(null /* newNetwork */, nai);
             notifyLockdownVpn(nai);
             ensureNetworkTransitionWakelock(nai.name());
@@ -3176,7 +3171,7 @@
         if (!nai.networkCapabilities.hasTransport(TRANSPORT_VPN)) {
             updateAllVpnsCapabilities();
         }
-        rematchAllNetworksAndRequests(null, 0);
+        rematchAllNetworksAndRequests();
         mLingerMonitor.noteDisconnect(nai);
         if (nai.created) {
             // Tell netd to clean up the configuration for this network
@@ -3251,6 +3246,7 @@
     }
 
     private void handleRegisterNetworkRequest(NetworkRequestInfo nri) {
+        ensureRunningOnConnectivityServiceThread();
         mNetworkRequests.put(nri.request, nri);
         mNetworkRequestInfoLogs.log("REGISTER " + nri);
         if (nri.request.isListen()) {
@@ -3261,8 +3257,8 @@
                 }
             }
         }
-        rematchAllNetworksAndRequests(null, 0);
-        if (nri.request.isRequest() && getNetworkForRequest(nri.request.requestId) == null) {
+        rematchAllNetworksAndRequests();
+        if (nri.request.isRequest() && nri.mSatisfier == null) {
             sendUpdatedScoreToFactories(nri.request, null);
         }
     }
@@ -3284,6 +3280,7 @@
     // - UnneededFor.LINGER: foreground NetworkRequests. If a network is unneeded for this reason,
     //   then it should be lingered.
     private boolean unneeded(NetworkAgentInfo nai, UnneededFor reason) {
+        ensureRunningOnConnectivityServiceThread();
         final int numRequests;
         switch (reason) {
             case TEARDOWN:
@@ -3308,6 +3305,7 @@
 
             // If this Network is already the highest scoring Network for a request, or if
             // there is hope for it to become one if it validated, then it is needed.
+            ensureRunningOnConnectivityServiceThread();
             if (nri.request.isRequest() && nai.satisfies(nri.request) &&
                     (nai.isSatisfyingRequest(nri.request.requestId) ||
                     // Note that this catches two important cases:
@@ -3317,8 +3315,8 @@
                     // 2. Unvalidated WiFi will not be reaped when validated cellular
                     //    is currently satisfying the request.  This is desirable when
                     //    WiFi ends up validating and out scoring cellular.
-                    getNetworkForRequest(nri.request.requestId).getCurrentScore() <
-                            nai.getCurrentScoreAsValidated())) {
+                    nri.mSatisfier.getCurrentScore()
+                            < nai.getCurrentScoreAsValidated())) {
                 return false;
             }
         }
@@ -3342,10 +3340,12 @@
     }
 
     private void handleTimedOutNetworkRequest(final NetworkRequestInfo nri) {
+        ensureRunningOnConnectivityServiceThread();
         if (mNetworkRequests.get(nri.request) == null) {
             return;
         }
-        if (getNetworkForRequest(nri.request.requestId) != null) {
+        ensureRunningOnConnectivityServiceThread();
+        if (nri.mSatisfier != null) {
             return;
         }
         if (VDBG || (DBG && nri.request.isRequest())) {
@@ -3372,6 +3372,8 @@
     }
 
     private void handleRemoveNetworkRequest(final NetworkRequestInfo nri) {
+        ensureRunningOnConnectivityServiceThread();
+
         nri.unlinkDeathRecipient();
         mNetworkRequests.remove(nri.request);
 
@@ -3391,7 +3393,8 @@
         mNetworkRequestInfoLogs.log("RELEASE " + nri);
         if (nri.request.isRequest()) {
             boolean wasKept = false;
-            NetworkAgentInfo nai = getNetworkForRequest(nri.request.requestId);
+            ensureRunningOnConnectivityServiceThread();
+            final NetworkAgentInfo nai = nri.mSatisfier;
             if (nai != null) {
                 boolean wasBackgroundNetwork = nai.isBackgroundNetwork();
                 nai.removeRequest(nri.request.requestId);
@@ -3408,7 +3411,7 @@
                 } else {
                     wasKept = true;
                 }
-                clearNetworkForRequest(nri.request.requestId);
+                nri.mSatisfier = null;
                 if (!wasBackgroundNetwork && nai.isBackgroundNetwork()) {
                     // Went from foreground to background.
                     updateCapabilities(nai.getCurrentScore(), nai, nai.networkCapabilities);
@@ -3497,13 +3500,12 @@
         }
 
         if (accept != nai.networkMisc.acceptUnvalidated) {
-            int oldScore = nai.getCurrentScore();
             nai.networkMisc.acceptUnvalidated = accept;
             // If network becomes partial connectivity and user already accepted to use this
             // network, we should respect the user's option and don't need to popup the
             // PARTIAL_CONNECTIVITY notification to user again.
             nai.networkMisc.acceptPartialConnectivity = accept;
-            rematchAllNetworksAndRequests(nai, oldScore);
+            rematchAllNetworksAndRequests();
             sendUpdatedScoreToFactories(nai);
         }
 
@@ -3572,9 +3574,8 @@
             return;
         }
         if (!nai.avoidUnvalidated) {
-            int oldScore = nai.getCurrentScore();
             nai.avoidUnvalidated = true;
-            rematchAllNetworksAndRequests(nai, oldScore);
+            rematchAllNetworksAndRequests();
             sendUpdatedScoreToFactories(nai);
         }
     }
@@ -3675,7 +3676,7 @@
 
 
     private void rematchForAvoidBadWifiUpdate() {
-        rematchAllNetworksAndRequests(null, 0);
+        rematchAllNetworksAndRequests();
         for (NetworkAgentInfo nai: mNetworkAgentInfos.values()) {
             if (nai.networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
                 sendUpdatedScoreToFactories(nai);
@@ -3986,7 +3987,7 @@
     public int tether(String iface, String callerPkg) {
         ConnectivityManager.enforceTetherChangePermission(mContext, callerPkg);
         if (isTetheringSupported()) {
-            return mTethering.tether(iface);
+            return mTetheringManager.tether(iface);
         } else {
             return ConnectivityManager.TETHER_ERROR_UNSUPPORTED;
         }
@@ -3998,7 +3999,7 @@
         ConnectivityManager.enforceTetherChangePermission(mContext, callerPkg);
 
         if (isTetheringSupported()) {
-            return mTethering.untether(iface);
+            return mTetheringManager.untether(iface);
         } else {
             return ConnectivityManager.TETHER_ERROR_UNSUPPORTED;
         }
@@ -4010,7 +4011,7 @@
         enforceTetherAccessPermission();
 
         if (isTetheringSupported()) {
-            return mTethering.getLastTetherError(iface);
+            return mTetheringManager.getLastTetherError(iface);
         } else {
             return ConnectivityManager.TETHER_ERROR_UNSUPPORTED;
         }
@@ -4021,7 +4022,7 @@
     public String[] getTetherableUsbRegexs() {
         enforceTetherAccessPermission();
         if (isTetheringSupported()) {
-            return mTethering.getTetherableUsbRegexs();
+            return mTetheringManager.getTetherableUsbRegexs();
         } else {
             return new String[0];
         }
@@ -4031,7 +4032,7 @@
     public String[] getTetherableWifiRegexs() {
         enforceTetherAccessPermission();
         if (isTetheringSupported()) {
-            return mTethering.getTetherableWifiRegexs();
+            return mTetheringManager.getTetherableWifiRegexs();
         } else {
             return new String[0];
         }
@@ -4041,7 +4042,7 @@
     public String[] getTetherableBluetoothRegexs() {
         enforceTetherAccessPermission();
         if (isTetheringSupported()) {
-            return mTethering.getTetherableBluetoothRegexs();
+            return mTetheringManager.getTetherableBluetoothRegexs();
         } else {
             return new String[0];
         }
@@ -4051,7 +4052,7 @@
     public int setUsbTethering(boolean enable, String callerPkg) {
         ConnectivityManager.enforceTetherChangePermission(mContext, callerPkg);
         if (isTetheringSupported()) {
-            return mTethering.setUsbTethering(enable);
+            return mTetheringManager.setUsbTethering(enable);
         } else {
             return ConnectivityManager.TETHER_ERROR_UNSUPPORTED;
         }
@@ -4062,25 +4063,25 @@
     @Override
     public String[] getTetherableIfaces() {
         enforceTetherAccessPermission();
-        return mTethering.getTetherableIfaces();
+        return mTetheringManager.getTetherableIfaces();
     }
 
     @Override
     public String[] getTetheredIfaces() {
         enforceTetherAccessPermission();
-        return mTethering.getTetheredIfaces();
+        return mTetheringManager.getTetheredIfaces();
     }
 
     @Override
     public String[] getTetheringErroredIfaces() {
         enforceTetherAccessPermission();
-        return mTethering.getErroredIfaces();
+        return mTetheringManager.getTetheringErroredIfaces();
     }
 
     @Override
     public String[] getTetheredDhcpRanges() {
         enforceConnectivityInternalPermission();
-        return mTethering.getTetheredDhcpRanges();
+        return mTetheringManager.getTetheredDhcpRanges();
     }
 
     @Override
@@ -4108,7 +4109,8 @@
             Binder.restoreCallingIdentity(token);
         }
 
-        return tetherEnabledInSettings && adminUser && mTethering.hasTetherableConfiguration();
+        return tetherEnabledInSettings && adminUser
+                && mTetheringManager.hasTetherableConfiguration();
     }
 
     @Override
@@ -4119,13 +4121,13 @@
             receiver.send(ConnectivityManager.TETHER_ERROR_UNSUPPORTED, null);
             return;
         }
-        mTethering.startTethering(type, receiver, showProvisioningUi);
+        mTetheringManager.startTethering(type, receiver, showProvisioningUi);
     }
 
     @Override
     public void stopTethering(int type, String callerPkg) {
         ConnectivityManager.enforceTetherChangePermission(mContext, callerPkg);
-        mTethering.stopTethering(type);
+        mTetheringManager.stopTethering(type);
     }
 
     /**
@@ -4139,7 +4141,8 @@
     public void getLatestTetheringEntitlementResult(int type, ResultReceiver receiver,
             boolean showEntitlementUi, String callerPkg) {
         ConnectivityManager.enforceTetherChangePermission(mContext, callerPkg);
-        mTethering.getLatestTetheringEntitlementResult(type, receiver, showEntitlementUi);
+        mTetheringManager.requestLatestTetheringEntitlementResult(
+                type, receiver, showEntitlementUi);
     }
 
     /** Register tethering event callback. */
@@ -4147,7 +4150,7 @@
     public void registerTetheringEventCallback(ITetheringEventCallback callback,
             String callerPkg) {
         ConnectivityManager.enforceTetherChangePermission(mContext, callerPkg);
-        mTethering.registerTetheringEventCallback(callback);
+        mTetheringManager.registerTetheringEventCallback(callback);
     }
 
     /** Unregister tethering event callback. */
@@ -4155,7 +4158,7 @@
     public void unregisterTetheringEventCallback(ITetheringEventCallback callback,
             String callerPkg) {
         ConnectivityManager.enforceTetherChangePermission(mContext, callerPkg);
-        mTethering.unregisterTetheringEventCallback(callback);
+        mTetheringManager.unregisterTetheringEventCallback(callback);
     }
 
     // Called when we lose the default network and have no replacement yet.
@@ -5091,6 +5094,11 @@
      */
     private class NetworkRequestInfo implements IBinder.DeathRecipient {
         final NetworkRequest request;
+        // The network currently satisfying this request, or null if none. Must only be touched
+        // on the handler thread. This only makes sense for network requests and not for listens,
+        // as defined by NetworkRequest#isRequest(). For listens, this is always null.
+        @Nullable
+        NetworkAgentInfo mSatisfier;
         final PendingIntent mPendingIntent;
         boolean mPendingIntentSent;
         private final IBinder mBinder;
@@ -5477,16 +5485,6 @@
         if (DBG) log("unregisterNetworkFactory for " + nfi.name);
     }
 
-    /**
-     * NetworkAgentInfo supporting a request by requestId.
-     * These have already been vetted (their Capabilities satisfy the request)
-     * and the are the highest scored network available.
-     * the are keyed off the Requests requestId.
-     */
-    // NOTE: Accessed on multiple threads, must be synchronized on itself.
-    @GuardedBy("mNetworkForRequestId")
-    private final SparseArray<NetworkAgentInfo> mNetworkForRequestId = new SparseArray<>();
-
     // NOTE: Accessed on multiple threads, must be synchronized on itself.
     @GuardedBy("mNetworkForNetId")
     private final SparseArray<NetworkAgentInfo> mNetworkForNetId = new SparseArray<>();
@@ -5504,7 +5502,11 @@
     private final HashSet<Integer> mBlockedAppUids = new HashSet<>();
 
     // Note: if mDefaultRequest is changed, NetworkMonitor needs to be updated.
+    @NonNull
     private final NetworkRequest mDefaultRequest;
+    // The NetworkAgentInfo currently satisfying the default request, if any.
+    @Nullable
+    private volatile NetworkAgentInfo mDefaultNetworkNai = null;
 
     // Request used to optionally keep mobile data active even when higher
     // priority networks like Wi-Fi are active.
@@ -5514,26 +5516,8 @@
     // priority networks like ethernet are active.
     private final NetworkRequest mDefaultWifiRequest;
 
-    private NetworkAgentInfo getNetworkForRequest(int requestId) {
-        synchronized (mNetworkForRequestId) {
-            return mNetworkForRequestId.get(requestId);
-        }
-    }
-
-    private void clearNetworkForRequest(int requestId) {
-        synchronized (mNetworkForRequestId) {
-            mNetworkForRequestId.remove(requestId);
-        }
-    }
-
-    private void setNetworkForRequest(int requestId, NetworkAgentInfo nai) {
-        synchronized (mNetworkForRequestId) {
-            mNetworkForRequestId.put(requestId, nai);
-        }
-    }
-
     private NetworkAgentInfo getDefaultNetwork() {
-        return getNetworkForRequest(mDefaultRequest.requestId);
+        return mDefaultNetworkNai;
     }
 
     @Nullable
@@ -5594,9 +5578,11 @@
         // TODO: Instead of passing mDefaultRequest, provide an API to determine whether a Network
         // satisfies mDefaultRequest.
         final NetworkCapabilities nc = new NetworkCapabilities(networkCapabilities);
+        final NetworkScore ns = new NetworkScore();
+        ns.putIntExtension(NetworkScore.LEGACY_SCORE, currentScore);
         final NetworkAgentInfo nai = new NetworkAgentInfo(messenger, new AsyncChannel(),
                 new Network(mNetIdManager.reserveNetId()), new NetworkInfo(networkInfo), lp, nc,
-                currentScore, mContext, mTrackerHandler, new NetworkMisc(networkMisc), this, mNetd,
+                ns, mContext, mTrackerHandler, new NetworkMisc(networkMisc), this, mNetd,
                 mDnsResolver, mNMS, factorySerialNumber);
         // Make sure the network capabilities reflect what the agent info says.
         nai.setNetworkCapabilities(mixInCapabilities(nai, nc));
@@ -5646,7 +5632,8 @@
         // are accurate.
         networkAgent.clatd.fixupLinkProperties(oldLp, newLp);
 
-        updateInterfaces(newLp, oldLp, netId, networkAgent.networkCapabilities);
+        updateInterfaces(newLp, oldLp, netId, networkAgent.networkCapabilities,
+                networkAgent.networkInfo.getType());
 
         // update filtering rules, need to happen after the interface update so netd knows about the
         // new interface (the interface name -> index map becomes initialized)
@@ -5725,21 +5712,26 @@
 
     }
 
-    private void updateInterfaces(LinkProperties newLp, LinkProperties oldLp, int netId,
-                                  NetworkCapabilities caps) {
-        CompareResult<String> interfaceDiff = new CompareResult<>(
+    private void updateInterfaces(final @Nullable LinkProperties newLp,
+            final @Nullable LinkProperties oldLp, final int netId,
+            final @Nullable NetworkCapabilities caps, final int legacyType) {
+        final CompareResult<String> interfaceDiff = new CompareResult<>(
                 oldLp != null ? oldLp.getAllInterfaceNames() : null,
                 newLp != null ? newLp.getAllInterfaceNames() : null);
-        for (String iface : interfaceDiff.added) {
-            try {
-                if (DBG) log("Adding iface " + iface + " to network " + netId);
-                mNMS.addInterfaceToNetwork(iface, netId);
-                wakeupModifyInterface(iface, caps, true);
-            } catch (Exception e) {
-                loge("Exception adding interface: " + e);
+        if (!interfaceDiff.added.isEmpty()) {
+            final IBatteryStats bs = mDeps.getBatteryStatsService();
+            for (final String iface : interfaceDiff.added) {
+                try {
+                    if (DBG) log("Adding iface " + iface + " to network " + netId);
+                    mNMS.addInterfaceToNetwork(iface, netId);
+                    wakeupModifyInterface(iface, caps, true);
+                    bs.noteNetworkInterfaceType(iface, legacyType);
+                } catch (Exception e) {
+                    loge("Exception adding interface: " + e);
+                }
             }
         }
-        for (String iface : interfaceDiff.removed) {
+        for (final String iface : interfaceDiff.removed) {
             try {
                 if (DBG) log("Removing iface " + iface + " from network " + netId);
                 wakeupModifyInterface(iface, caps, false);
@@ -5964,7 +5956,7 @@
         } else {
             // If the requestable capabilities have changed or the score changed, we can't have been
             // called by rematchNetworkAndRequests, so it's safe to start a rematch.
-            rematchAllNetworksAndRequests(nai, oldScore);
+            rematchAllNetworksAndRequests();
             notifyNetworkCallbacks(nai, ConnectivityManager.CALLBACK_CAP_CHANGED);
         }
 
@@ -6249,7 +6241,7 @@
         }
     }
 
-    private void makeDefault(NetworkAgentInfo newNetwork) {
+    private void makeDefault(@NonNull final NetworkAgentInfo newNetwork) {
         if (DBG) log("Switching to new default network: " + newNetwork);
 
         try {
@@ -6258,6 +6250,7 @@
             loge("Exception setting default network :" + e);
         }
 
+        mDefaultNetworkNai = newNetwork;
         notifyLockdownVpn(newNetwork);
         handleApplyDefaultProxy(newNetwork.linkProperties.getHttpProxy());
         updateTcpBufferSizes(newNetwork.linkProperties.getTcpBufferSizes());
@@ -6292,6 +6285,41 @@
         }
     }
 
+    private ArrayMap<NetworkRequestInfo, NetworkAgentInfo> computeRequestReassignmentForNetwork(
+            @NonNull final NetworkAgentInfo newNetwork) {
+        final int score = newNetwork.getCurrentScore();
+        final ArrayMap<NetworkRequestInfo, NetworkAgentInfo> reassignedRequests = new ArrayMap<>();
+        for (NetworkRequestInfo nri : mNetworkRequests.values()) {
+            // Process requests in the first pass and listens in the second pass. This allows us to
+            // change a network's capabilities depending on which requests it has. This is only
+            // correct if the change in capabilities doesn't affect whether the network satisfies
+            // requests or not, and doesn't affect the network's score.
+            if (nri.request.isListen()) continue;
+
+            final NetworkAgentInfo currentNetwork = nri.mSatisfier;
+            final boolean satisfies = newNetwork.satisfies(nri.request);
+            if (newNetwork == currentNetwork && satisfies) continue;
+
+            // check if it satisfies the NetworkCapabilities
+            if (VDBG) log("  checking if request is satisfied: " + nri.request);
+            if (satisfies) {
+                // next check if it's better than any current network we're using for
+                // this request
+                if (VDBG || DDBG) {
+                    log("currentScore = "
+                            + (currentNetwork != null ? currentNetwork.getCurrentScore() : 0)
+                            + ", newScore = " + score);
+                }
+                if (currentNetwork == null || currentNetwork.getCurrentScore() < score) {
+                    reassignedRequests.put(nri, newNetwork);
+                }
+            } else if (newNetwork.isSatisfyingRequest(nri.request.requestId)) {
+                reassignedRequests.put(nri, null);
+            }
+        }
+        return reassignedRequests;
+    }
+
     // Handles a network appearing or improving its score.
     //
     // - Evaluates all current NetworkRequests that can be
@@ -6305,10 +6333,6 @@
     // - Tears down newNetwork if it just became validated
     //   but turns out to be unneeded.
     //
-    // - If reapUnvalidatedNetworks==REAP, tears down unvalidated
-    //   networks that have no chance (i.e. even if validated)
-    //   of becoming the highest scoring network.
-    //
     // NOTE: This function only adds NetworkRequests that "newNetwork" could satisfy,
     // it does not remove NetworkRequests that other Networks could better satisfy.
     // If you need to handle decreases in score, use {@link rematchAllNetworksAndRequests}.
@@ -6316,13 +6340,10 @@
     // as it performs better by a factor of the number of Networks.
     //
     // @param newNetwork is the network to be matched against NetworkRequests.
-    // @param reapUnvalidatedNetworks indicates if an additional pass over all networks should be
-    //               performed to tear down unvalidated networks that have no chance (i.e. even if
-    //               validated) of becoming the highest scoring network.
-    private void rematchNetworkAndRequests(NetworkAgentInfo newNetwork,
-            ReapUnvalidatedNetworks reapUnvalidatedNetworks, long now) {
+    // @param now the time the rematch starts, as returned by SystemClock.elapsedRealtime();
+    private void rematchNetworkAndRequests(NetworkAgentInfo newNetwork, long now) {
+        ensureRunningOnConnectivityServiceThread();
         if (!newNetwork.everConnected) return;
-        boolean keep = newNetwork.isVPN();
         boolean isNewDefault = false;
         NetworkAgentInfo oldDefaultNetwork = null;
 
@@ -6331,74 +6352,53 @@
 
         if (VDBG || DDBG) log("rematching " + newNetwork.name());
 
-        // Find and migrate to this Network any NetworkRequests for
-        // which this network is now the best.
-        ArrayList<NetworkAgentInfo> affectedNetworks = new ArrayList<>();
-        ArrayList<NetworkRequestInfo> addedRequests = new ArrayList<>();
+        final ArrayMap<NetworkRequestInfo, NetworkAgentInfo> reassignedRequests =
+                computeRequestReassignmentForNetwork(newNetwork);
+
         NetworkCapabilities nc = newNetwork.networkCapabilities;
         if (VDBG) log(" network has: " + nc);
-        for (NetworkRequestInfo nri : mNetworkRequests.values()) {
-            // Process requests in the first pass and listens in the second pass. This allows us to
-            // change a network's capabilities depending on which requests it has. This is only
-            // correct if the change in capabilities doesn't affect whether the network satisfies
-            // requests or not, and doesn't affect the network's score.
-            if (nri.request.isListen()) continue;
 
-            final NetworkAgentInfo currentNetwork = getNetworkForRequest(nri.request.requestId);
-            final boolean satisfies = newNetwork.satisfies(nri.request);
-            if (newNetwork == currentNetwork && satisfies) {
-                if (VDBG) {
-                    log("Network " + newNetwork.name() + " was already satisfying" +
-                            " request " + nri.request.requestId + ". No change.");
-                }
-                keep = true;
-                continue;
-            }
-
-            // check if it satisfies the NetworkCapabilities
-            if (VDBG) log("  checking if request is satisfied: " + nri.request);
-            if (satisfies) {
-                // next check if it's better than any current network we're using for
-                // this request
-                if (VDBG || DDBG) {
-                    log("currentScore = " +
-                            (currentNetwork != null ? currentNetwork.getCurrentScore() : 0) +
-                            ", newScore = " + score);
-                }
-                if (currentNetwork == null || currentNetwork.getCurrentScore() < score) {
-                    if (VDBG) log("rematch for " + newNetwork.name());
-                    if (currentNetwork != null) {
-                        if (VDBG || DDBG){
-                            log("   accepting network in place of " + currentNetwork.name());
-                        }
-                        currentNetwork.removeRequest(nri.request.requestId);
-                        currentNetwork.lingerRequest(nri.request, now, mLingerDelayMs);
-                        affectedNetworks.add(currentNetwork);
-                    } else {
-                        if (VDBG || DDBG) log("   accepting network in place of null");
+        // Find and migrate to this Network any NetworkRequests for
+        // which this network is now the best.
+        final ArrayList<NetworkAgentInfo> removedRequests = new ArrayList<>();
+        final ArrayList<NetworkRequestInfo> addedRequests = new ArrayList<>();
+        for (final Map.Entry<NetworkRequestInfo, NetworkAgentInfo> entry :
+                reassignedRequests.entrySet()) {
+            final NetworkRequestInfo nri = entry.getKey();
+            final NetworkAgentInfo previousSatisfier = nri.mSatisfier;
+            final NetworkAgentInfo newSatisfier = entry.getValue();
+            if (newSatisfier != null) {
+                if (VDBG) log("rematch for " + newSatisfier.name());
+                if (previousSatisfier != null) {
+                    if (VDBG || DDBG) {
+                        log("   accepting network in place of " + previousSatisfier.name());
                     }
-                    newNetwork.unlingerRequest(nri.request);
-                    setNetworkForRequest(nri.request.requestId, newNetwork);
-                    if (!newNetwork.addRequest(nri.request)) {
-                        Slog.wtf(TAG, "BUG: " + newNetwork.name() + " already has " + nri.request);
-                    }
-                    addedRequests.add(nri);
-                    keep = true;
-                    // Tell NetworkFactories about the new score, so they can stop
-                    // trying to connect if they know they cannot match it.
-                    // TODO - this could get expensive if we have a lot of requests for this
-                    // network.  Think about if there is a way to reduce this.  Push
-                    // netid->request mapping to each factory?
-                    sendUpdatedScoreToFactories(nri.request, newNetwork);
-                    if (isDefaultRequest(nri)) {
-                        isNewDefault = true;
-                        oldDefaultNetwork = currentNetwork;
-                        if (currentNetwork != null) {
-                            mLingerMonitor.noteLingerDefaultNetwork(currentNetwork, newNetwork);
-                        }
+                    previousSatisfier.removeRequest(nri.request.requestId);
+                    previousSatisfier.lingerRequest(nri.request, now, mLingerDelayMs);
+                    removedRequests.add(previousSatisfier);
+                } else {
+                    if (VDBG || DDBG) log("   accepting network in place of null");
+                }
+                newSatisfier.unlingerRequest(nri.request);
+                nri.mSatisfier = newSatisfier;
+                if (!newSatisfier.addRequest(nri.request)) {
+                    Slog.wtf(TAG, "BUG: " + newSatisfier.name() + " already has " + nri.request);
+                }
+                addedRequests.add(nri);
+                // Tell NetworkFactories about the new score, so they can stop
+                // trying to connect if they know they cannot match it.
+                // TODO - this could get expensive if we have a lot of requests for this
+                // network.  Think about if there is a way to reduce this.  Push
+                // netid->request mapping to each factory?
+                sendUpdatedScoreToFactories(nri.request, newSatisfier);
+                if (isDefaultRequest(nri)) {
+                    isNewDefault = true;
+                    oldDefaultNetwork = previousSatisfier;
+                    if (previousSatisfier != null) {
+                        mLingerMonitor.noteLingerDefaultNetwork(previousSatisfier, newSatisfier);
                     }
                 }
-            } else if (newNetwork.isSatisfyingRequest(nri.request.requestId)) {
+            } else {
                 // If "newNetwork" is listed as satisfying "nri" but no longer satisfies "nri",
                 // mark it as no longer satisfying "nri".  Because networks are processed by
                 // rematchAllNetworksAndRequests() in descending score order, "currentNetwork" will
@@ -6411,13 +6411,14 @@
                             " request " + nri.request.requestId);
                 }
                 newNetwork.removeRequest(nri.request.requestId);
-                if (currentNetwork == newNetwork) {
-                    clearNetworkForRequest(nri.request.requestId);
+                if (previousSatisfier == newNetwork) {
+                    nri.mSatisfier = null;
+                    if (isDefaultRequest(nri)) mDefaultNetworkNai = null;
                     sendUpdatedScoreToFactories(nri.request, null);
                 } else {
                     Slog.wtf(TAG, "BUG: Removing request " + nri.request.requestId + " from " +
                             newNetwork.name() +
-                            " without updating mNetworkForRequestId or factories!");
+                            " without updating mSatisfier or factories!");
                 }
                 // TODO: Technically, sending CALLBACK_LOST here is
                 // incorrect if there is a replacement network currently
@@ -6429,6 +6430,7 @@
                 callCallbackForRequest(nri, newNetwork, ConnectivityManager.CALLBACK_LOST, 0);
             }
         }
+
         if (isNewDefault) {
             updateDataActivityTracking(newNetwork, oldDefaultNetwork);
             // Notify system services that this network is up.
@@ -6465,141 +6467,128 @@
         // do this after the default net is switched, but
         // before LegacyTypeTracker sends legacy broadcasts
         for (NetworkRequestInfo nri : addedRequests) notifyNetworkAvailable(newNetwork, nri);
-
-        // Linger any networks that are no longer needed. This should be done after sending the
-        // available callback for newNetwork.
-        for (NetworkAgentInfo nai : affectedNetworks) {
-            updateLingerState(nai, now);
-        }
-        // Possibly unlinger newNetwork. Unlingering a network does not send any callbacks so it
-        // does not need to be done in any particular order.
-        updateLingerState(newNetwork, now);
-
-        if (isNewDefault) {
-            // Maintain the illusion: since the legacy API only
-            // understands one network at a time, we must pretend
-            // that the current default network disconnected before
-            // the new one connected.
-            if (oldDefaultNetwork != null) {
-                mLegacyTypeTracker.remove(oldDefaultNetwork.networkInfo.getType(),
-                                          oldDefaultNetwork, true);
-            }
-            mDefaultInetConditionPublished = newNetwork.lastValidated ? 100 : 0;
-            mLegacyTypeTracker.add(newNetwork.networkInfo.getType(), newNetwork);
-            notifyLockdownVpn(newNetwork);
-        }
-
-        if (keep) {
-            // Notify battery stats service about this network, both the normal
-            // interface and any stacked links.
-            // TODO: Avoid redoing this; this must only be done once when a network comes online.
-            try {
-                final IBatteryStats bs = BatteryStatsService.getService();
-                final int type = newNetwork.networkInfo.getType();
-
-                final String baseIface = newNetwork.linkProperties.getInterfaceName();
-                bs.noteNetworkInterfaceType(baseIface, type);
-                for (LinkProperties stacked : newNetwork.linkProperties.getStackedLinks()) {
-                    final String stackedIface = stacked.getInterfaceName();
-                    bs.noteNetworkInterfaceType(stackedIface, type);
-                }
-            } catch (RemoteException ignored) {
-            }
-
-            // This has to happen after the notifyNetworkCallbacks as that tickles each
-            // ConnectivityManager instance so that legacy requests correctly bind dns
-            // requests to this network.  The legacy users are listening for this broadcast
-            // and will generally do a dns request so they can ensureRouteToHost and if
-            // they do that before the callbacks happen they'll use the default network.
-            //
-            // TODO: Is there still a race here? We send the broadcast
-            // after sending the callback, but if the app can receive the
-            // broadcast before the callback, it might still break.
-            //
-            // This *does* introduce a race where if the user uses the new api
-            // (notification callbacks) and then uses the old api (getNetworkInfo(type))
-            // they may get old info.  Reverse this after the old startUsing api is removed.
-            // This is on top of the multiple intent sequencing referenced in the todo above.
-            for (int i = 0; i < newNetwork.numNetworkRequests(); i++) {
-                NetworkRequest nr = newNetwork.requestAt(i);
-                if (nr.legacyType != TYPE_NONE && nr.isRequest()) {
-                    // legacy type tracker filters out repeat adds
-                    mLegacyTypeTracker.add(nr.legacyType, newNetwork);
-                }
-            }
-
-            // A VPN generally won't get added to the legacy tracker in the "for (nri)" loop above,
-            // because usually there are no NetworkRequests it satisfies (e.g., mDefaultRequest
-            // wants the NOT_VPN capability, so it will never be satisfied by a VPN). So, add the
-            // newNetwork to the tracker explicitly (it's a no-op if it has already been added).
-            if (newNetwork.isVPN()) {
-                mLegacyTypeTracker.add(TYPE_VPN, newNetwork);
-            }
-        }
-        if (reapUnvalidatedNetworks == ReapUnvalidatedNetworks.REAP) {
-            for (NetworkAgentInfo nai : mNetworkAgentInfos.values()) {
-                if (unneeded(nai, UnneededFor.TEARDOWN)) {
-                    if (nai.getLingerExpiry() > 0) {
-                        // This network has active linger timers and no requests, but is not
-                        // lingering. Linger it.
-                        //
-                        // One way (the only way?) this can happen if this network is unvalidated
-                        // and became unneeded due to another network improving its score to the
-                        // point where this network will no longer be able to satisfy any requests
-                        // even if it validates.
-                        updateLingerState(nai, now);
-                    } else {
-                        if (DBG) log("Reaping " + nai.name());
-                        teardownUnneededNetwork(nai);
-                    }
-                }
-            }
-        }
     }
 
     /**
      * Attempt to rematch all Networks with NetworkRequests.  This may result in Networks
      * being disconnected.
-     * @param changed If only one Network's score or capabilities have been modified since the last
-     *         time this function was called, pass this Network in this argument, otherwise pass
-     *         null.
-     * @param oldScore If only one Network has been changed but its NetworkCapabilities have not
-     *         changed, pass in the Network's score (from getCurrentScore()) prior to the change via
-     *         this argument, otherwise pass {@code changed.getCurrentScore()} or 0 if
-     *         {@code changed} is {@code null}. This is because NetworkCapabilities influence a
-     *         network's score.
      */
-    private void rematchAllNetworksAndRequests(NetworkAgentInfo changed, int oldScore) {
-        // TODO: This may get slow.  The "changed" parameter is provided for future optimization
-        // to avoid the slowness.  It is not simply enough to process just "changed", for
-        // example in the case where "changed"'s score decreases and another network should begin
-        // satisfying a NetworkRequest that "changed" currently satisfies.
-
-        // Optimization: Only reprocess "changed" if its score improved.  This is safe because it
-        // can only add more NetworkRequests satisfied by "changed", and this is exactly what
-        // rematchNetworkAndRequests() handles.
+    private void rematchAllNetworksAndRequests() {
+        // TODO: This may be slow, and should be optimized. Unfortunately at this moment the
+        // processing is network-major instead of request-major (the code iterates through all
+        // networks, then for each it iterates for all requests), which is a problem for re-scoring
+        // requests. Once the code has switched to a request-major iteration style, this can
+        // be optimized to only do the processing needed.
         final long now = SystemClock.elapsedRealtime();
-        if (changed != null && oldScore < changed.getCurrentScore()) {
-            rematchNetworkAndRequests(changed, ReapUnvalidatedNetworks.REAP, now);
-        } else {
-            final NetworkAgentInfo[] nais = mNetworkAgentInfos.values().toArray(
-                    new NetworkAgentInfo[mNetworkAgentInfos.size()]);
-            // Rematch higher scoring networks first to prevent requests first matching a lower
-            // scoring network and then a higher scoring network, which could produce multiple
-            // callbacks and inadvertently unlinger networks.
-            Arrays.sort(nais);
-            for (NetworkAgentInfo nai : nais) {
-                rematchNetworkAndRequests(nai,
-                        // Only reap the last time through the loop.  Reaping before all rematching
-                        // is complete could incorrectly teardown a network that hasn't yet been
-                        // rematched.
-                        (nai != nais[nais.length-1]) ? ReapUnvalidatedNetworks.DONT_REAP
-                                : ReapUnvalidatedNetworks.REAP,
-                        now);
+        final NetworkAgentInfo oldDefaultNetwork = getDefaultNetwork();
+
+        final NetworkAgentInfo[] nais = mNetworkAgentInfos.values().toArray(
+                new NetworkAgentInfo[mNetworkAgentInfos.size()]);
+        // Rematch higher scoring networks first to prevent requests first matching a lower
+        // scoring network and then a higher scoring network, which could produce multiple
+        // callbacks.
+        Arrays.sort(nais);
+        for (final NetworkAgentInfo nai : nais) {
+            rematchNetworkAndRequests(nai, now);
+        }
+
+        final NetworkAgentInfo newDefaultNetwork = getDefaultNetwork();
+
+        for (final NetworkAgentInfo nai : nais) {
+            // Rematching may have altered the linger state of some networks, so update all linger
+            // timers. updateLingerState reads the state from the network agent and does nothing
+            // if the state has not changed : the source of truth is controlled with
+            // NetworkAgentInfo#lingerRequest and NetworkAgentInfo#unlingerRequest, which have been
+            // called while rematching the individual networks above.
+            updateLingerState(nai, now);
+        }
+
+        updateLegacyTypeTrackerAndVpnLockdownForRematch(oldDefaultNetwork, newDefaultNetwork, nais);
+
+        // Tear down all unneeded networks.
+        for (NetworkAgentInfo nai : mNetworkAgentInfos.values()) {
+            if (unneeded(nai, UnneededFor.TEARDOWN)) {
+                if (nai.getLingerExpiry() > 0) {
+                    // This network has active linger timers and no requests, but is not
+                    // lingering. Linger it.
+                    //
+                    // One way (the only way?) this can happen if this network is unvalidated
+                    // and became unneeded due to another network improving its score to the
+                    // point where this network will no longer be able to satisfy any requests
+                    // even if it validates.
+                    updateLingerState(nai, now);
+                } else {
+                    if (DBG) log("Reaping " + nai.name());
+                    teardownUnneededNetwork(nai);
+                }
             }
         }
     }
 
+    private void updateLegacyTypeTrackerAndVpnLockdownForRematch(
+            @Nullable final NetworkAgentInfo oldDefaultNetwork,
+            @Nullable final NetworkAgentInfo newDefaultNetwork,
+            @NonNull final NetworkAgentInfo[] nais) {
+        if (oldDefaultNetwork != newDefaultNetwork) {
+            // Maintain the illusion : since the legacy API only understands one network at a time,
+            // if the default network changed, apps should see a disconnected broadcast for the
+            // old default network before they see a connected broadcast for the new one.
+            if (oldDefaultNetwork != null) {
+                mLegacyTypeTracker.remove(oldDefaultNetwork.networkInfo.getType(),
+                        oldDefaultNetwork, true);
+            }
+            if (newDefaultNetwork != null) {
+                // The new default network can be newly null if and only if the old default
+                // network doesn't satisfy the default request any more because it lost a
+                // capability.
+                mDefaultInetConditionPublished = newDefaultNetwork.lastValidated ? 100 : 0;
+                mLegacyTypeTracker.add(newDefaultNetwork.networkInfo.getType(), newDefaultNetwork);
+                // If the legacy VPN is connected, notifyLockdownVpn may end up sending a broadcast
+                // to reflect the NetworkInfo of this new network. This broadcast has to be sent
+                // after the disconnect broadcasts above, but before the broadcasts sent by the
+                // legacy type tracker below.
+                // TODO : refactor this, it's too complex
+                notifyLockdownVpn(newDefaultNetwork);
+            }
+        }
+
+        // Now that all the callbacks have been sent, send the legacy network broadcasts
+        // as needed. This is necessary so that legacy requests correctly bind dns
+        // requests to this network. The legacy users are listening for this broadcast
+        // and will generally do a dns request so they can ensureRouteToHost and if
+        // they do that before the callbacks happen they'll use the default network.
+        //
+        // TODO: Is there still a race here? The legacy broadcast will be sent after sending
+        // callbacks, but if apps can receive the broadcast before the callback, they still might
+        // have an inconsistent view of networking.
+        //
+        // This *does* introduce a race where if the user uses the new api
+        // (notification callbacks) and then uses the old api (getNetworkInfo(type))
+        // they may get old info. Reverse this after the old startUsing api is removed.
+        // This is on top of the multiple intent sequencing referenced in the todo above.
+        for (NetworkAgentInfo nai : nais) {
+            addNetworkToLegacyTypeTracker(nai);
+        }
+    }
+
+    private void addNetworkToLegacyTypeTracker(@NonNull final NetworkAgentInfo nai) {
+        for (int i = 0; i < nai.numNetworkRequests(); i++) {
+            NetworkRequest nr = nai.requestAt(i);
+            if (nr.legacyType != TYPE_NONE && nr.isRequest()) {
+                // legacy type tracker filters out repeat adds
+                mLegacyTypeTracker.add(nr.legacyType, nai);
+            }
+        }
+
+        // A VPN generally won't get added to the legacy tracker in the "for (nri)" loop above,
+        // because usually there are no NetworkRequests it satisfies (e.g., mDefaultRequest
+        // wants the NOT_VPN capability, so it will never be satisfied by a VPN). So, add the
+        // newNetwork to the tracker explicitly (it's a no-op if it has already been added).
+        if (nai.isVPN()) {
+            mLegacyTypeTracker.add(TYPE_VPN, nai);
+        }
+    }
+
     private void updateInetCondition(NetworkAgentInfo nai) {
         // Don't bother updating until we've graduated to validated at least once.
         if (!nai.everValidated) return;
@@ -6694,8 +6683,7 @@
             }
 
             // Consider network even though it is not yet validated.
-            final long now = SystemClock.elapsedRealtime();
-            rematchNetworkAndRequests(networkAgent, ReapUnvalidatedNetworks.REAP, now);
+            rematchAllNetworksAndRequests();
 
             // This has to happen after matching the requests, because callbacks are just requests.
             notifyNetworkCallbacks(networkAgent, ConnectivityManager.CALLBACK_PRECHECK);
@@ -6716,7 +6704,7 @@
                 state == NetworkInfo.State.SUSPENDED)) {
             // going into or coming out of SUSPEND: re-score and notify
             if (networkAgent.getCurrentScore() != oldScore) {
-                rematchAllNetworksAndRequests(networkAgent, oldScore);
+                rematchAllNetworksAndRequests();
             }
             updateCapabilities(networkAgent.getCurrentScore(), networkAgent,
                     networkAgent.networkCapabilities);
@@ -6729,19 +6717,10 @@
         }
     }
 
-    private void updateNetworkScore(NetworkAgentInfo nai, int score) {
-        if (VDBG || DDBG) log("updateNetworkScore for " + nai.name() + " to " + score);
-        if (score < 0) {
-            loge("updateNetworkScore for " + nai.name() + " got a negative score (" + score +
-                    ").  Bumping score to min of 0");
-            score = 0;
-        }
-
-        final int oldScore = nai.getCurrentScore();
-        nai.setCurrentScore(score);
-
-        rematchAllNetworksAndRequests(nai, oldScore);
-
+    private void updateNetworkScore(NetworkAgentInfo nai, NetworkScore ns) {
+        if (VDBG || DDBG) log("updateNetworkScore for " + nai.name() + " to " + ns);
+        nai.setNetworkScore(ns);
+        rematchAllNetworksAndRequests();
         sendUpdatedScoreToFactories(nai);
     }
 
diff --git a/services/core/java/com/android/server/DynamicSystemService.java b/services/core/java/com/android/server/DynamicSystemService.java
index 190e6cf..7b02b6e 100644
--- a/services/core/java/com/android/server/DynamicSystemService.java
+++ b/services/core/java/com/android/server/DynamicSystemService.java
@@ -18,7 +18,6 @@
 
 import android.content.Context;
 import android.content.pm.PackageManager;
-import android.gsi.GsiInstallParams;
 import android.gsi.GsiProgress;
 import android.gsi.IGsiService;
 import android.gsi.IGsid;
@@ -47,6 +46,7 @@
     private static final int GSID_ROUGH_TIMEOUT_MS = 8192;
     private static final String PATH_DEFAULT = "/data/gsi";
     private Context mContext;
+    private String mInstallPath;
     private volatile IGsiService mGsiService;
 
     DynamicSystemService(Context context) {
@@ -115,8 +115,8 @@
     }
 
     @Override
-    public boolean startInstallation(String name, long size, boolean readOnly)
-            throws RemoteException {
+    public boolean startInstallation() throws RemoteException {
+        IGsiService service = getGsiService();
         // priority from high to low: sysprop -> sdcard -> /data
         String path = SystemProperties.get("os.aot.path");
         if (path.isEmpty()) {
@@ -138,14 +138,19 @@
             }
             Slog.i(TAG, "startInstallation -> " + path);
         }
+        mInstallPath = path;
+        if (service.openInstall(path) != 0) {
+            Slog.i(TAG, "Failed to open " + path);
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    public boolean createPartition(String name, long size, boolean readOnly)
+            throws RemoteException {
         IGsiService service = getGsiService();
-        GsiInstallParams installParams = new GsiInstallParams();
-        installParams.installDir = path;
-        installParams.name = name;
-        installParams.size = size;
-        installParams.wipe = readOnly;
-        installParams.readOnly = readOnly;
-        if (service.beginGsiInstall(installParams) != 0) {
+        if (service.createPartition(name, size, readOnly) != 0) {
             Slog.i(TAG, "Failed to install " + name);
             return false;
         }
@@ -153,6 +158,16 @@
     }
 
     @Override
+    public boolean finishInstallation() throws RemoteException {
+        IGsiService service = getGsiService();
+        if (service.closeInstall() != 0) {
+            Slog.i(TAG, "Failed to finish installation");
+            return false;
+        }
+        return true;
+    }
+
+    @Override
     public GsiProgress getInstallationProgress() throws RemoteException {
         return getGsiService().getInstallProgress();
     }
@@ -190,6 +205,8 @@
 
     @Override
     public boolean remove() throws RemoteException {
+        IGsiService gsiService = getGsiService();
+        String install_dir = gsiService.getInstalledGsiImageDir();
         return getGsiService().removeGsi();
     }
 
diff --git a/services/core/java/com/android/server/NetworkScoreService.java b/services/core/java/com/android/server/NetworkScoreService.java
index 80d7ac9..9a7a4e7 100644
--- a/services/core/java/com/android/server/NetworkScoreService.java
+++ b/services/core/java/com/android/server/NetworkScoreService.java
@@ -60,12 +60,9 @@
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.content.PackageMonitor;
-import com.android.internal.os.TransferPipe;
-import com.android.internal.telephony.SmsApplication;
 import com.android.internal.util.DumpUtils;
 
 import java.io.FileDescriptor;
-import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -908,17 +905,6 @@
             }
             writer.println("Current scorer: " + currentScorer);
 
-            sendCacheUpdateCallback(new BiConsumer<INetworkScoreCache, Object>() {
-                @Override
-                public void accept(INetworkScoreCache networkScoreCache, Object cookie) {
-                    try {
-                        TransferPipe.dumpAsync(networkScoreCache.asBinder(), fd, args);
-                    } catch (IOException | RemoteException e) {
-                        writer.println("Failed to dump score cache: " + e);
-                    }
-                }
-            }, getScoreCacheLists());
-
             synchronized (mServiceConnectionLock) {
                 if (mServiceConnection != null) {
                     mServiceConnection.dump(fd, writer, args);
diff --git a/services/core/java/com/android/server/RecoverySystemService.java b/services/core/java/com/android/server/RecoverySystemService.java
deleted file mode 100644
index 997178e..0000000
--- a/services/core/java/com/android/server/RecoverySystemService.java
+++ /dev/null
@@ -1,317 +0,0 @@
-/*
- * Copyright (C) 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.
- */
-
-package com.android.server;
-
-import android.content.Context;
-import android.net.LocalSocket;
-import android.net.LocalSocketAddress;
-import android.os.IRecoverySystem;
-import android.os.IRecoverySystemProgressListener;
-import android.os.PowerManager;
-import android.os.RecoverySystem;
-import android.os.RemoteException;
-import android.os.SystemProperties;
-import android.util.Slog;
-
-import libcore.io.IoUtils;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.FileWriter;
-import java.io.IOException;
-
-/**
- * The recovery system service is responsible for coordinating recovery related
- * functions on the device. It sets up (or clears) the bootloader control block
- * (BCB), which will be read by the bootloader and the recovery image. It also
- * triggers /system/bin/uncrypt via init to de-encrypt an OTA package on the
- * /data partition so that it can be accessed under the recovery image.
- */
-public final class RecoverySystemService extends SystemService {
-    private static final String TAG = "RecoverySystemService";
-    private static final boolean DEBUG = false;
-
-    // The socket at /dev/socket/uncrypt to communicate with uncrypt.
-    private static final String UNCRYPT_SOCKET = "uncrypt";
-
-    // The init services that communicate with /system/bin/uncrypt.
-    private static final String INIT_SERVICE_UNCRYPT = "init.svc.uncrypt";
-    private static final String INIT_SERVICE_SETUP_BCB = "init.svc.setup-bcb";
-    private static final String INIT_SERVICE_CLEAR_BCB = "init.svc.clear-bcb";
-
-    private static final int SOCKET_CONNECTION_MAX_RETRY = 30;
-
-    private static final Object sRequestLock = new Object();
-
-    private Context mContext;
-
-    public RecoverySystemService(Context context) {
-        super(context);
-        mContext = context;
-    }
-
-    @Override
-    public void onStart() {
-        publishBinderService(Context.RECOVERY_SERVICE, new BinderService());
-    }
-
-    private final class BinderService extends IRecoverySystem.Stub {
-        @Override // Binder call
-        public boolean uncrypt(String filename, IRecoverySystemProgressListener listener) {
-            if (DEBUG) Slog.d(TAG, "uncrypt: " + filename);
-
-            synchronized (sRequestLock) {
-                mContext.enforceCallingOrSelfPermission(android.Manifest.permission.RECOVERY, null);
-
-                final boolean available = checkAndWaitForUncryptService();
-                if (!available) {
-                    Slog.e(TAG, "uncrypt service is unavailable.");
-                    return false;
-                }
-
-                // Write the filename into UNCRYPT_PACKAGE_FILE to be read by
-                // uncrypt.
-                RecoverySystem.UNCRYPT_PACKAGE_FILE.delete();
-
-                try (FileWriter uncryptFile = new FileWriter(RecoverySystem.UNCRYPT_PACKAGE_FILE)) {
-                    uncryptFile.write(filename + "\n");
-                } catch (IOException e) {
-                    Slog.e(TAG, "IOException when writing \"" +
-                            RecoverySystem.UNCRYPT_PACKAGE_FILE + "\":", e);
-                    return false;
-                }
-
-                // Trigger uncrypt via init.
-                SystemProperties.set("ctl.start", "uncrypt");
-
-                // Connect to the uncrypt service socket.
-                LocalSocket socket = connectService();
-                if (socket == null) {
-                    Slog.e(TAG, "Failed to connect to uncrypt socket");
-                    return false;
-                }
-
-                // Read the status from the socket.
-                DataInputStream dis = null;
-                DataOutputStream dos = null;
-                try {
-                    dis = new DataInputStream(socket.getInputStream());
-                    dos = new DataOutputStream(socket.getOutputStream());
-                    int lastStatus = Integer.MIN_VALUE;
-                    while (true) {
-                        int status = dis.readInt();
-                        // Avoid flooding the log with the same message.
-                        if (status == lastStatus && lastStatus != Integer.MIN_VALUE) {
-                            continue;
-                        }
-                        lastStatus = status;
-
-                        if (status >= 0 && status <= 100) {
-                            // Update status
-                            Slog.i(TAG, "uncrypt read status: " + status);
-                            if (listener != null) {
-                                try {
-                                    listener.onProgress(status);
-                                } catch (RemoteException ignored) {
-                                    Slog.w(TAG, "RemoteException when posting progress");
-                                }
-                            }
-                            if (status == 100) {
-                                Slog.i(TAG, "uncrypt successfully finished.");
-                                // Ack receipt of the final status code. uncrypt
-                                // waits for the ack so the socket won't be
-                                // destroyed before we receive the code.
-                                dos.writeInt(0);
-                                break;
-                            }
-                        } else {
-                            // Error in /system/bin/uncrypt.
-                            Slog.e(TAG, "uncrypt failed with status: " + status);
-                            // Ack receipt of the final status code. uncrypt waits
-                            // for the ack so the socket won't be destroyed before
-                            // we receive the code.
-                            dos.writeInt(0);
-                            return false;
-                        }
-                    }
-                } catch (IOException e) {
-                    Slog.e(TAG, "IOException when reading status: ", e);
-                    return false;
-                } finally {
-                    IoUtils.closeQuietly(dis);
-                    IoUtils.closeQuietly(dos);
-                    IoUtils.closeQuietly(socket);
-                }
-
-                return true;
-            }
-        }
-
-        @Override // Binder call
-        public boolean clearBcb() {
-            if (DEBUG) Slog.d(TAG, "clearBcb");
-            synchronized (sRequestLock) {
-                return setupOrClearBcb(false, null);
-            }
-        }
-
-        @Override // Binder call
-        public boolean setupBcb(String command) {
-            if (DEBUG) Slog.d(TAG, "setupBcb: [" + command + "]");
-            synchronized (sRequestLock) {
-                return setupOrClearBcb(true, command);
-            }
-        }
-
-        @Override // Binder call
-        public void rebootRecoveryWithCommand(String command) {
-            if (DEBUG) Slog.d(TAG, "rebootRecoveryWithCommand: [" + command + "]");
-            synchronized (sRequestLock) {
-                if (!setupOrClearBcb(true, command)) {
-                    return;
-                }
-
-                // Having set up the BCB, go ahead and reboot.
-                PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
-                pm.reboot(PowerManager.REBOOT_RECOVERY);
-            }
-        }
-
-        /**
-         * Check if any of the init services is still running. If so, we cannot
-         * start a new uncrypt/setup-bcb/clear-bcb service right away; otherwise
-         * it may break the socket communication since init creates / deletes
-         * the socket (/dev/socket/uncrypt) on service start / exit.
-         */
-        private boolean checkAndWaitForUncryptService() {
-            for (int retry = 0; retry < SOCKET_CONNECTION_MAX_RETRY; retry++) {
-                final String uncryptService = SystemProperties.get(INIT_SERVICE_UNCRYPT);
-                final String setupBcbService = SystemProperties.get(INIT_SERVICE_SETUP_BCB);
-                final String clearBcbService = SystemProperties.get(INIT_SERVICE_CLEAR_BCB);
-                final boolean busy = "running".equals(uncryptService) ||
-                        "running".equals(setupBcbService) || "running".equals(clearBcbService);
-                if (DEBUG) {
-                    Slog.i(TAG, "retry: " + retry + " busy: " + busy +
-                            " uncrypt: [" + uncryptService + "]" +
-                            " setupBcb: [" + setupBcbService + "]" +
-                            " clearBcb: [" + clearBcbService + "]");
-                }
-
-                if (!busy) {
-                    return true;
-                }
-
-                try {
-                    Thread.sleep(1000);
-                } catch (InterruptedException e) {
-                    Slog.w(TAG, "Interrupted:", e);
-                }
-            }
-
-            return false;
-        }
-
-        private LocalSocket connectService() {
-            LocalSocket socket = new LocalSocket();
-            boolean done = false;
-            // The uncrypt socket will be created by init upon receiving the
-            // service request. It may not be ready by this point. So we will
-            // keep retrying until success or reaching timeout.
-            for (int retry = 0; retry < SOCKET_CONNECTION_MAX_RETRY; retry++) {
-                try {
-                    socket.connect(new LocalSocketAddress(UNCRYPT_SOCKET,
-                            LocalSocketAddress.Namespace.RESERVED));
-                    done = true;
-                    break;
-                } catch (IOException ignored) {
-                    try {
-                        Thread.sleep(1000);
-                    } catch (InterruptedException e) {
-                        Slog.w(TAG, "Interrupted:", e);
-                    }
-                }
-            }
-            if (!done) {
-                Slog.e(TAG, "Timed out connecting to uncrypt socket");
-                return null;
-            }
-            return socket;
-        }
-
-        private boolean setupOrClearBcb(boolean isSetup, String command) {
-            mContext.enforceCallingOrSelfPermission(android.Manifest.permission.RECOVERY, null);
-
-            final boolean available = checkAndWaitForUncryptService();
-            if (!available) {
-                Slog.e(TAG, "uncrypt service is unavailable.");
-                return false;
-            }
-
-            if (isSetup) {
-                SystemProperties.set("ctl.start", "setup-bcb");
-            } else {
-                SystemProperties.set("ctl.start", "clear-bcb");
-            }
-
-            // Connect to the uncrypt service socket.
-            LocalSocket socket = connectService();
-            if (socket == null) {
-                Slog.e(TAG, "Failed to connect to uncrypt socket");
-                return false;
-            }
-
-            DataInputStream dis = null;
-            DataOutputStream dos = null;
-            try {
-                dis = new DataInputStream(socket.getInputStream());
-                dos = new DataOutputStream(socket.getOutputStream());
-
-                // Send the BCB commands if it's to setup BCB.
-                if (isSetup) {
-                    byte[] cmdUtf8 = command.getBytes("UTF-8");
-                    dos.writeInt(cmdUtf8.length);
-                    dos.write(cmdUtf8, 0, cmdUtf8.length);
-                }
-
-                // Read the status from the socket.
-                int status = dis.readInt();
-
-                // Ack receipt of the status code. uncrypt waits for the ack so
-                // the socket won't be destroyed before we receive the code.
-                dos.writeInt(0);
-
-                if (status == 100) {
-                    Slog.i(TAG, "uncrypt " + (isSetup ? "setup" : "clear") +
-                            " bcb successfully finished.");
-                } else {
-                    // Error in /system/bin/uncrypt.
-                    Slog.e(TAG, "uncrypt failed with status: " + status);
-                    return false;
-                }
-            } catch (IOException e) {
-                Slog.e(TAG, "IOException when communicating with uncrypt:", e);
-                return false;
-            } finally {
-                IoUtils.closeQuietly(dis);
-                IoUtils.closeQuietly(dos);
-                IoUtils.closeQuietly(socket);
-            }
-
-            return true;
-        }
-    }
-}
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java
index 9693585..d1bc6af 100644
--- a/services/core/java/com/android/server/StorageManagerService.java
+++ b/services/core/java/com/android/server/StorageManagerService.java
@@ -2803,12 +2803,6 @@
         enforcePermission(android.Manifest.permission.STORAGE_INTERNAL);
 
         if (StorageManager.isFileEncryptedNativeOrEmulated()) {
-            // When a user has secure lock screen, require secret to actually unlock.
-            // This check is mostly in place for emulation mode.
-            if (mLockPatternUtils.isSecure(userId) && ArrayUtils.isEmpty(secret)) {
-                throw new IllegalStateException("Secret required to unlock secure user " + userId);
-            }
-
             try {
                 mVold.unlockUserKey(userId, serialNumber, encodeBytes(token),
                         encodeBytes(secret));
diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java
index e25c34d..f8b0072 100644
--- a/services/core/java/com/android/server/TelephonyRegistry.java
+++ b/services/core/java/com/android/server/TelephonyRegistry.java
@@ -16,6 +16,10 @@
 
 package com.android.server;
 
+import static android.telephony.TelephonyManager.ACTION_MULTI_SIM_CONFIG_CHANGED;
+
+import static java.util.Arrays.copyOf;
+
 import android.app.ActivityManager;
 import android.app.AppOpsManager;
 import android.content.BroadcastReceiver;
@@ -33,6 +37,9 @@
 import android.os.Message;
 import android.os.RemoteException;
 import android.os.UserHandle;
+import android.telephony.Annotation.DataFailureCause;
+import android.telephony.Annotation.RadioPowerState;
+import android.telephony.Annotation.SrvccState;
 import android.telephony.CallAttributes;
 import android.telephony.CallQuality;
 import android.telephony.CellInfo;
@@ -245,7 +252,7 @@
 
     private int mActiveDataSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
 
-    @TelephonyManager.RadioPowerState
+    @RadioPowerState
     private int mRadioPowerState = TelephonyManager.RADIO_POWER_UNAVAILABLE;
 
     private final LocalLog mLocalLog = new LocalLog(100);
@@ -283,7 +290,7 @@
             switch (msg.what) {
                 case MSG_USER_SWITCHED: {
                     if (VDBG) log("MSG_USER_SWITCHED userId=" + msg.arg1);
-                    int numPhones = TelephonyManager.getDefault().getPhoneCount();
+                    int numPhones = getTelephonyManager().getPhoneCount();
                     for (int sub = 0; sub < numPhones; sub++) {
                         TelephonyRegistry.this.notifyCellLocationForSubscriber(sub,
                                 mCellLocation[sub]);
@@ -364,10 +371,111 @@
                     mHandler.sendMessage(mHandler.obtainMessage(MSG_UPDATE_DEFAULT_SUB,
                             newDefaultPhoneId, newDefaultSubId));
                 }
+            } else if (action.equals(ACTION_MULTI_SIM_CONFIG_CHANGED)) {
+                onMultiSimConfigChanged();
             }
         }
     };
 
+    private TelephonyManager getTelephonyManager() {
+        return (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
+    }
+
+    private void onMultiSimConfigChanged() {
+        int oldNumPhones = mNumPhones;
+        mNumPhones = getTelephonyManager().getActiveModemCount();
+        if (oldNumPhones == mNumPhones) return;
+
+        if (DBG) {
+            log("TelephonyRegistry: activeModemCount changed from " + oldNumPhones
+                    + " to " + mNumPhones);
+        }
+        mCallState = copyOf(mCallState, mNumPhones);
+        mDataActivity = copyOf(mCallState, mNumPhones);
+        mDataConnectionState = copyOf(mCallState, mNumPhones);
+        mDataConnectionNetworkType = copyOf(mCallState, mNumPhones);
+        mCallIncomingNumber = copyOf(mCallIncomingNumber, mNumPhones);
+        mServiceState = copyOf(mServiceState, mNumPhones);
+        mVoiceActivationState = copyOf(mVoiceActivationState, mNumPhones);
+        mDataActivationState = copyOf(mDataActivationState, mNumPhones);
+        mUserMobileDataState = copyOf(mUserMobileDataState, mNumPhones);
+        mSignalStrength = copyOf(mSignalStrength, mNumPhones);
+        mMessageWaiting = copyOf(mMessageWaiting, mNumPhones);
+        mCallForwarding = copyOf(mCallForwarding, mNumPhones);
+        mCellLocation = copyOf(mCellLocation, mNumPhones);
+        mSrvccState = copyOf(mSrvccState, mNumPhones);
+        mOtaspMode = copyOf(mOtaspMode, mNumPhones);
+        mPreciseCallState = copyOf(mPreciseCallState, mNumPhones);
+        mForegroundCallState = copyOf(mForegroundCallState, mNumPhones);
+        mBackgroundCallState = copyOf(mBackgroundCallState, mNumPhones);
+        mRingingCallState = copyOf(mRingingCallState, mNumPhones);
+        mCallDisconnectCause = copyOf(mCallDisconnectCause, mNumPhones);
+        mCallPreciseDisconnectCause = copyOf(mCallPreciseDisconnectCause, mNumPhones);
+        mCallQuality = copyOf(mCallQuality, mNumPhones);
+        mCallNetworkType = copyOf(mCallNetworkType, mNumPhones);
+        mCallAttributes = copyOf(mCallAttributes, mNumPhones);
+        mPreciseDataConnectionState = copyOf(mPreciseDataConnectionState, mNumPhones);
+        mOutgoingCallEmergencyNumber = copyOf(mOutgoingCallEmergencyNumber, mNumPhones);
+        mOutgoingSmsEmergencyNumber = copyOf(mOutgoingSmsEmergencyNumber, mNumPhones);
+
+        // ds -> ss switch.
+        if (mNumPhones < oldNumPhones) {
+            cutListToSize(mCellInfo, mNumPhones);
+            cutListToSize(mImsReasonInfo, mNumPhones);
+            cutListToSize(mPhysicalChannelConfigs, mNumPhones);
+            return;
+        }
+
+        // mNumPhones > oldNumPhones: ss -> ds switch
+        for (int i = oldNumPhones; i < mNumPhones; i++) {
+            mCallState[i] =  TelephonyManager.CALL_STATE_IDLE;
+            mDataActivity[i] = TelephonyManager.DATA_ACTIVITY_NONE;
+            mDataConnectionState[i] = TelephonyManager.DATA_UNKNOWN;
+            mVoiceActivationState[i] = TelephonyManager.SIM_ACTIVATION_STATE_UNKNOWN;
+            mDataActivationState[i] = TelephonyManager.SIM_ACTIVATION_STATE_UNKNOWN;
+            mCallIncomingNumber[i] =  "";
+            mServiceState[i] =  new ServiceState();
+            mSignalStrength[i] =  new SignalStrength();
+            mUserMobileDataState[i] = false;
+            mMessageWaiting[i] =  false;
+            mCallForwarding[i] =  false;
+            mCellLocation[i] = new Bundle();
+            mCellInfo.add(i, null);
+            mImsReasonInfo.add(i, null);
+            mSrvccState[i] = TelephonyManager.SRVCC_STATE_HANDOVER_NONE;
+            mPhysicalChannelConfigs.add(i, new ArrayList<>());
+            mOtaspMode[i] = TelephonyManager.OTASP_UNKNOWN;
+            mCallDisconnectCause[i] = DisconnectCause.NOT_VALID;
+            mCallPreciseDisconnectCause[i] = PreciseDisconnectCause.NOT_VALID;
+            mCallQuality[i] = new CallQuality();
+            mCallAttributes[i] = new CallAttributes(new PreciseCallState(),
+                    TelephonyManager.NETWORK_TYPE_UNKNOWN, new CallQuality());
+            mCallNetworkType[i] = TelephonyManager.NETWORK_TYPE_UNKNOWN;
+            mPreciseCallState[i] = new PreciseCallState();
+            mRingingCallState[i] = PreciseCallState.PRECISE_CALL_STATE_IDLE;
+            mForegroundCallState[i] = PreciseCallState.PRECISE_CALL_STATE_IDLE;
+            mBackgroundCallState[i] = PreciseCallState.PRECISE_CALL_STATE_IDLE;
+            mPreciseDataConnectionState[i] = new PreciseDataConnectionState();
+        }
+
+        // Note that location can be null for non-phone builds like
+        // like the generic one.
+        CellLocation  location = CellLocation.getEmpty();
+        if (location != null) {
+            for (int i = oldNumPhones; i < mNumPhones; i++) {
+                location.fillInNotifierBundle(mCellLocation[i]);
+            }
+        }
+    }
+
+    private void cutListToSize(List list, int size) {
+        if (list == null) return;
+
+        while (list.size() > size) {
+            list.remove(list.size() - 1);
+        }
+    }
+
     // we keep a copy of all of the state so we can send it out when folks
     // register for it
     //
@@ -382,7 +490,7 @@
         mContext = context;
         mBatteryStats = BatteryStatsService.getService();
 
-        int numPhones = TelephonyManager.getDefault().getSupportedModemCount();
+        int numPhones = getTelephonyManager().getActiveModemCount();
         if (DBG) log("TelephonyRegistry: ctor numPhones=" + numPhones);
         mNumPhones = numPhones;
         mCallState = new int[numPhones];
@@ -464,6 +572,7 @@
         filter.addAction(Intent.ACTION_USER_SWITCHED);
         filter.addAction(Intent.ACTION_USER_REMOVED);
         filter.addAction(SubscriptionManager.ACTION_DEFAULT_SUBSCRIPTION_CHANGED);
+        filter.addAction(ACTION_MULTI_SIM_CONFIG_CHANGED);
         log("systemRunning register for intents");
         mContext.registerReceiver(mBroadcastReceiver, filter);
     }
@@ -1718,7 +1827,7 @@
     }
 
     public void notifyPreciseDataConnectionFailed(int phoneId, int subId, String apnType,
-            String apn, @DataFailCause.FailCause int failCause) {
+            String apn, @DataFailureCause int failCause) {
         if (!checkNotifyPermission("notifyPreciseDataConnectionFailed()")) {
             return;
         }
@@ -1748,7 +1857,7 @@
     }
 
     @Override
-    public void notifySrvccStateChanged(int subId, @TelephonyManager.SrvccState int state) {
+    public void notifySrvccStateChanged(int subId, @SrvccState int state) {
         if (!checkNotifyPermission("notifySrvccStateChanged()")) {
             return;
         }
@@ -1855,8 +1964,7 @@
         }
     }
 
-    public void notifyRadioPowerStateChanged(int phoneId, int subId,
-                                             @TelephonyManager.RadioPowerState int state) {
+    public void notifyRadioPowerStateChanged(int phoneId, int subId, @RadioPowerState int state) {
         if (!checkNotifyPermission("notifyRadioPowerStateChanged()")) {
             return;
         }
@@ -2012,7 +2120,7 @@
             final int recordCount = mRecords.size();
             pw.println("last known state:");
             pw.increaseIndent();
-            for (int i = 0; i < TelephonyManager.getDefault().getPhoneCount(); i++) {
+            for (int i = 0; i < getTelephonyManager().getPhoneCount(); i++) {
                 pw.println("Phone Id=" + i);
                 pw.increaseIndent();
                 pw.println("mCallState=" + mCallState[i]);
@@ -2227,7 +2335,7 @@
 
     private void broadcastPreciseDataConnectionStateChanged(int state, int networkType,
             String apnType, String apn, LinkProperties linkProperties,
-            @DataFailCause.FailCause int failCause) {
+            @DataFailureCause int failCause) {
         Intent intent = new Intent(TelephonyManager.ACTION_PRECISE_DATA_CONNECTION_STATE_CHANGED);
         intent.putExtra(PhoneConstants.STATE_KEY, state);
         intent.putExtra(PhoneConstants.DATA_NETWORK_TYPE_KEY, networkType);
diff --git a/services/core/java/com/android/server/UiModeManagerService.java b/services/core/java/com/android/server/UiModeManagerService.java
index 30a3563..d1e4231 100644
--- a/services/core/java/com/android/server/UiModeManagerService.java
+++ b/services/core/java/com/android/server/UiModeManagerService.java
@@ -16,6 +16,7 @@
 
 package com.android.server;
 
+import android.annotation.IntRange;
 import android.annotation.Nullable;
 import android.app.Activity;
 import android.app.ActivityManager;
@@ -41,6 +42,7 @@
 import android.os.PowerManager;
 import android.os.PowerManager.ServiceType;
 import android.os.PowerManagerInternal;
+import android.os.Process;
 import android.os.RemoteException;
 import android.os.ResultReceiver;
 import android.os.ServiceManager;
@@ -53,6 +55,7 @@
 import android.service.dreams.Sandman;
 import android.service.vr.IVrManager;
 import android.service.vr.IVrStateCallbacks;
+import android.util.ArraySet;
 import android.util.Slog;
 
 import com.android.internal.R;
@@ -66,6 +69,9 @@
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
 
 final class UiModeManagerService extends SystemService {
     private static final String TAG = UiModeManager.class.getSimpleName();
@@ -81,6 +87,7 @@
     private int mLastBroadcastState = Intent.EXTRA_DOCK_STATE_UNDOCKED;
     private int mNightMode = UiModeManager.MODE_NIGHT_NO;
 
+    private Map<Integer, String> mCarModePackagePriority = new HashMap<>();
     private boolean mCarModeEnabled = false;
     private boolean mCharging = false;
     private boolean mPowerSave = false;
@@ -338,15 +345,25 @@
 
     private final IUiModeManager.Stub mService = new IUiModeManager.Stub() {
         @Override
-        public void enableCarMode(int flags) {
+        public void enableCarMode(@UiModeManager.EnableCarMode int flags,
+                @IntRange(from = 0) int priority, String callingPackage) {
             if (isUiModeLocked()) {
                 Slog.e(TAG, "enableCarMode while UI mode is locked");
                 return;
             }
+
+            if (priority != UiModeManager.DEFAULT_PRIORITY
+                    && getContext().checkCallingOrSelfPermission(
+                    android.Manifest.permission.ENTER_CAR_MODE_PRIORITIZED)
+                    != PackageManager.PERMISSION_GRANTED) {
+                throw new SecurityException("Enabling car mode with a priority requires "
+                        + "permission ENTER_CAR_MODE_PRIORITIZED");
+            }
+
             final long ident = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
-                    setCarModeLocked(true, flags);
+                    setCarModeLocked(true, flags, priority, callingPackage);
                     if (mSystemReady) {
                         updateLocked(flags, 0);
                     }
@@ -356,16 +373,49 @@
             }
         }
 
+        /**
+         * This method is only kept around for the time being; the AIDL has an UnsupportedAppUsage
+         * tag which means this method is technically considered part of the greylist "API".
+         * @param flags
+         */
         @Override
-        public void disableCarMode(int flags) {
+        public void disableCarMode(@UiModeManager.DisableCarMode int flags) {
+            disableCarModeByCallingPackage(flags, null /* callingPackage */);
+        }
+
+        /**
+         * Handles requests to disable car mode.
+         * @param flags Disable car mode flags
+         * @param callingPackage
+         */
+        @Override
+        public void disableCarModeByCallingPackage(@UiModeManager.DisableCarMode int flags,
+                String callingPackage) {
             if (isUiModeLocked()) {
                 Slog.e(TAG, "disableCarMode while UI mode is locked");
                 return;
             }
+
+            // If the caller is the system, we will allow the DISABLE_CAR_MODE_ALL_PRIORITIES car
+            // mode flag to be specified; this is so that the user can disable car mode at all
+            // priorities using the persistent notification.
+            boolean isSystemCaller = Binder.getCallingUid() == Process.SYSTEM_UID;
+            final int carModeFlags =
+                    isSystemCaller ? flags : flags & ~UiModeManager.DISABLE_CAR_MODE_ALL_PRIORITIES;
+
             final long ident = Binder.clearCallingIdentity();
             try {
                 synchronized (mLock) {
-                    setCarModeLocked(false, 0);
+                    // Determine if the caller has enabled car mode at a priority other than the
+                    // default one.  If they have, then attempt to disable at that priority.
+                    int priority = mCarModePackagePriority.entrySet()
+                            .stream()
+                            .filter(e -> e.getValue().equals(callingPackage))
+                            .findFirst()
+                            .map(Map.Entry::getKey)
+                            .orElse(UiModeManager.DEFAULT_PRIORITY);
+
+                    setCarModeLocked(false, carModeFlags, priority, callingPackage);
                     if (mSystemReady) {
                         updateLocked(0, flags);
                     }
@@ -471,19 +521,32 @@
         synchronized (mLock) {
             pw.println("Current UI Mode Service state:");
             pw.print("  mDockState="); pw.print(mDockState);
-                    pw.print(" mLastBroadcastState="); pw.println(mLastBroadcastState);
+            pw.print(" mLastBroadcastState="); pw.println(mLastBroadcastState);
+
             pw.print("  mNightMode="); pw.print(mNightMode); pw.print(" (");
-                    pw.print(Shell.nightModeToStr(mNightMode)); pw.print(") ");
-                    pw.print(" mNightModeLocked="); pw.print(mNightModeLocked);
-                    pw.print(" mCarModeEnabled="); pw.print(mCarModeEnabled);
-                    pw.print(" mComputedNightMode="); pw.print(mComputedNightMode);
-                    pw.print(" mCarModeEnableFlags="); pw.print(mCarModeEnableFlags);
-                    pw.print(" mEnableCarDockLaunch="); pw.println(mEnableCarDockLaunch);
+            pw.print(Shell.nightModeToStr(mNightMode)); pw.print(") ");
+            pw.print(" mNightModeLocked="); pw.println(mNightModeLocked);
+
+            pw.print("  mCarModeEnabled="); pw.print(mCarModeEnabled);
+            pw.print(" (carModeApps=");
+            for (Map.Entry<Integer, String> entry : mCarModePackagePriority.entrySet()) {
+                pw.print(entry.getKey());
+                pw.print(":");
+                pw.print(entry.getValue());
+                pw.print(" ");
+            }
+            pw.println("");
+            pw.print(" mComputedNightMode="); pw.print(mComputedNightMode);
+            pw.print(" mCarModeEnableFlags="); pw.print(mCarModeEnableFlags);
+            pw.print(" mEnableCarDockLaunch="); pw.println(mEnableCarDockLaunch);
+
             pw.print("  mCurUiMode=0x"); pw.print(Integer.toHexString(mCurUiMode));
-                    pw.print(" mUiModeLocked="); pw.print(mUiModeLocked);
-                    pw.print(" mSetUiMode=0x"); pw.println(Integer.toHexString(mSetUiMode));
+            pw.print(" mUiModeLocked="); pw.print(mUiModeLocked);
+            pw.print(" mSetUiMode=0x"); pw.println(Integer.toHexString(mSetUiMode));
+
             pw.print("  mHoldingConfiguration="); pw.print(mHoldingConfiguration);
-                    pw.print(" mSystemReady="); pw.println(mSystemReady);
+            pw.print(" mSystemReady="); pw.println(mSystemReady);
+
             if (mTwilightManager != null) {
                 // We may not have a TwilightManager.
                 pw.print("  mTwilightService.getLastTwilightState()=");
@@ -506,12 +569,32 @@
         }
     }
 
-    void setCarModeLocked(boolean enabled, int flags) {
-        if (mCarModeEnabled != enabled) {
-            mCarModeEnabled = enabled;
+    /**
+     * Updates the global car mode state.
+     * The device is considered to be in car mode if there exists an app at any priority level which
+     * has entered car mode.
+     *
+     * @param enabled {@code true} if the caller wishes to enable car mode, {@code false} otherwise.
+     * @param flags Flags used when enabling/disabling car mode.
+     * @param priority The priority level for entering or exiting car mode; defaults to
+     *                 {@link UiModeManager#DEFAULT_PRIORITY} for callers using
+     *                 {@link UiModeManager#enableCarMode(int)}.  Callers using
+     *                 {@link UiModeManager#enableCarMode(int, int)} may specify a priority.
+     * @param packageName The package name of the app which initiated the request to enable or
+     *                    disable car mode.
+     */
+    void setCarModeLocked(boolean enabled, int flags, int priority, String packageName) {
+        if (enabled) {
+            enableCarMode(priority, packageName);
+        } else {
+            disableCarMode(flags, priority, packageName);
+        }
+        boolean isCarModeNowEnabled = isCarModeEnabled();
 
+        if (mCarModeEnabled != isCarModeNowEnabled) {
+            mCarModeEnabled = isCarModeNowEnabled;
             // When exiting car mode, restore night mode from settings
-            if (!mCarModeEnabled) {
+            if (!isCarModeNowEnabled) {
                 Context context = getContext();
                 updateNightModeFromSettings(context,
                         context.getResources(),
@@ -521,11 +604,102 @@
         mCarModeEnableFlags = flags;
     }
 
+    /**
+     * Handles disabling car mode.
+     * <p>
+     * Car mode can be disabled at a priority level if any of the following is true:
+     * 1. The priority being disabled is the {@link UiModeManager#DEFAULT_PRIORITY}.
+     * 2. The priority level is enabled and the caller is the app who originally enabled it.
+     * 3. The {@link UiModeManager#DISABLE_CAR_MODE_ALL_PRIORITIES} flag was specified, meaning all
+     *    car mode priorities are disabled.
+     *
+     * @param flags Car mode flags.
+     * @param priority The priority level at which to disable car mode.
+     * @param packageName The calling package which initiated the request.
+     */
+    private void disableCarMode(int flags, int priority, String packageName) {
+        boolean isDisableAll = (flags & UiModeManager.DISABLE_CAR_MODE_ALL_PRIORITIES) != 0;
+        boolean isPriorityTracked = mCarModePackagePriority.keySet().contains(priority);
+        boolean isDefaultPriority = priority == UiModeManager.DEFAULT_PRIORITY;
+        boolean isChangeAllowed =
+                // Anyone can disable the default priority.
+                isDefaultPriority
+                // If priority was enabled, only enabling package can disable it.
+                || isPriorityTracked && mCarModePackagePriority.get(priority).equals(packageName)
+                // Disable all priorities flag can disable all regardless.
+                || isDisableAll;
+        if (isChangeAllowed) {
+            Slog.d(TAG, "disableCarMode: disabling, priority=" + priority
+                    + ", packageName=" + packageName);
+            if (isDisableAll) {
+                Set<Map.Entry<Integer, String>> entries =
+                        new ArraySet<>(mCarModePackagePriority.entrySet());
+                mCarModePackagePriority.clear();
+
+                for (Map.Entry<Integer, String> entry : entries) {
+                    notifyCarModeDisabled(entry.getKey(), entry.getValue());
+                }
+            } else {
+                mCarModePackagePriority.remove(priority);
+                notifyCarModeDisabled(priority, packageName);
+            }
+        }
+    }
+
+    /**
+     * Handles enabling car mode.
+     * <p>
+     * Car mode can be enabled at any priority if it has not already been enabled at that priority.
+     * The calling package is tracked for the first app which enters priority at the
+     * {@link UiModeManager#DEFAULT_PRIORITY}, though any app can disable it at that priority.
+     *
+     * @param priority The priority for enabling car mode.
+     * @param packageName The calling package which initiated the request.
+     */
+    private void enableCarMode(int priority, String packageName) {
+        boolean isPriorityTracked = mCarModePackagePriority.containsKey(priority);
+        boolean isPackagePresent = mCarModePackagePriority.containsValue(packageName);
+        if (!isPriorityTracked && !isPackagePresent) {
+            Slog.d(TAG, "enableCarMode: enabled at priority=" + priority + ", packageName="
+                    + packageName);
+            mCarModePackagePriority.put(priority, packageName);
+            notifyCarModeEnabled(priority, packageName);
+        } else {
+            Slog.d(TAG, "enableCarMode: car mode at priority " + priority + " already enabled.");
+        }
+
+    }
+
+    private void notifyCarModeEnabled(int priority, String packageName) {
+        Intent intent = new Intent(UiModeManager.ACTION_ENTER_CAR_MODE_PRIORITIZED);
+        intent.putExtra(UiModeManager.EXTRA_CALLING_PACKAGE, packageName);
+        intent.putExtra(UiModeManager.EXTRA_PRIORITY, priority);
+        getContext().sendBroadcastAsUser(intent, UserHandle.ALL,
+                android.Manifest.permission.HANDLE_CAR_MODE_CHANGES);
+    }
+
+    private void notifyCarModeDisabled(int priority, String packageName) {
+        Intent intent = new Intent(UiModeManager.ACTION_EXIT_CAR_MODE_PRIORITIZED);
+        intent.putExtra(UiModeManager.EXTRA_CALLING_PACKAGE, packageName);
+        intent.putExtra(UiModeManager.EXTRA_PRIORITY, priority);
+        getContext().sendBroadcastAsUser(intent, UserHandle.ALL,
+                android.Manifest.permission.HANDLE_CAR_MODE_CHANGES);
+    }
+
+    /**
+     * Determines if car mode is enabled at any priority level.
+     * @return {@code true} if car mode is enabled, {@code false} otherwise.
+     */
+    private boolean isCarModeEnabled() {
+        return mCarModePackagePriority.size() > 0;
+    }
+
     private void updateDockState(int newState) {
         synchronized (mLock) {
             if (newState != mDockState) {
                 mDockState = newState;
-                setCarModeLocked(mDockState == Intent.EXTRA_DOCK_STATE_CAR, 0);
+                setCarModeLocked(mDockState == Intent.EXTRA_DOCK_STATE_CAR, 0,
+                        UiModeManager.DEFAULT_PRIORITY, "" /* packageName */);
                 if (mSystemReady) {
                     updateLocked(UiModeManager.ENABLE_CAR_MODE_GO_CAR_HOME, 0);
                 }
diff --git a/services/core/java/com/android/server/VibratorService.java b/services/core/java/com/android/server/VibratorService.java
index d622fb4..0db8495 100644
--- a/services/core/java/com/android/server/VibratorService.java
+++ b/services/core/java/com/android/server/VibratorService.java
@@ -28,8 +28,8 @@
 import android.content.res.Resources;
 import android.database.ContentObserver;
 import android.hardware.input.InputManager;
+import android.hardware.vibrator.IVibrator;
 import android.hardware.vibrator.V1_0.EffectStrength;
-import android.hardware.vibrator.V1_4.Capabilities;
 import android.icu.text.DateFormat;
 import android.media.AudioAttributes;
 import android.media.AudioManager;
@@ -1153,7 +1153,7 @@
                 long duration = vibratorPerformEffect(prebaked.getId(),
                         prebaked.getEffectStrength(), vib);
                 long timeout = duration;
-                if ((mCapabilities & Capabilities.PERFORM_COMPLETION_CALLBACK) != 0) {
+                if ((mCapabilities & IVibrator.CAP_PERFORM_CALLBACK) != 0) {
                     timeout *= ASYNC_TIMEOUT_MULTIPLIER;
                 }
                 if (timeout > 0) {
diff --git a/services/core/java/com/android/server/Watchdog.java b/services/core/java/com/android/server/Watchdog.java
index 19ad32e..454941c 100644
--- a/services/core/java/com/android/server/Watchdog.java
+++ b/services/core/java/com/android/server/Watchdog.java
@@ -89,6 +89,7 @@
         "/system/bin/drmserver",
         "/system/bin/mediadrmserver",
         "/system/bin/mediaserver",
+        "/system/bin/netd",
         "/system/bin/sdcard",
         "/system/bin/surfaceflinger",
         "/system/bin/vold",
@@ -103,6 +104,8 @@
     public static final List<String> HAL_INTERFACES_OF_INTEREST = Arrays.asList(
             "android.hardware.audio@2.0::IDevicesFactory",
             "android.hardware.audio@4.0::IDevicesFactory",
+            "android.hardware.audio@5.0::IDevicesFactory",
+            "android.hardware.audio@6.0::IDevicesFactory",
             "android.hardware.biometrics.face@1.0::IBiometricsFace",
             "android.hardware.bluetooth@1.0::IBluetoothHci",
             "android.hardware.camera.provider@2.4::ICameraProvider",
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 76bfc97..d07ec48 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -24,6 +24,7 @@
 import static android.Manifest.permission.REMOVE_TASKS;
 import static android.Manifest.permission.START_ACTIVITIES_FROM_BACKGROUND;
 import static android.app.ActivityManager.INSTR_FLAG_DISABLE_HIDDEN_API_CHECKS;
+import static android.app.ActivityManager.INSTR_FLAG_DISABLE_TEST_API_CHECKS;
 import static android.app.ActivityManager.INSTR_FLAG_MOUNT_EXTERNAL_STORAGE_FULL;
 import static android.app.ActivityManager.PROCESS_STATE_LAST_ACTIVITY;
 import static android.app.ActivityManager.PROCESS_STATE_NONEXISTENT;
@@ -348,7 +349,6 @@
 import com.android.server.Watchdog;
 import com.android.server.am.ActivityManagerServiceDumpProcessesProto.UidObserverRegistrationProto;
 import com.android.server.appop.AppOpsService;
-import com.android.server.compat.CompatConfig;
 import com.android.server.compat.PlatformCompat;
 import com.android.server.contentcapture.ContentCaptureManagerInternal;
 import com.android.server.firewall.IntentFirewall;
@@ -5048,8 +5048,9 @@
             bindApplicationTimeMillis = SystemClock.elapsedRealtime();
             mAtmInternal.preBindApplication(app.getWindowProcessController());
             final ActiveInstrumentation instr2 = app.getActiveInstrumentation();
-            long[] disabledCompatChanges = CompatConfig.get().getDisabledChanges(app.info);
+            long[] disabledCompatChanges = {};
             if (mPlatformCompat != null) {
+                disabledCompatChanges = mPlatformCompat.getDisabledChanges(app.info);
                 mPlatformCompat.resetReporting(app.info);
             }
             if (app.isolatedEntryPoint != null) {
@@ -5275,11 +5276,14 @@
 
         // Inform checkpointing systems of success
         try {
+            // This line is needed to CTS test for the correct exception handling
+            // See b/138952436#comment36 for context
+            Slog.i(TAG, "About to commit checkpoint");
             IStorageManager storageManager = PackageHelper.getStorageManager();
             storageManager.commitChanges();
         } catch (Exception e) {
             PowerManager pm = (PowerManager)
-                     mInjector.getContext().getSystemService(Context.POWER_SERVICE);
+                     mContext.getSystemService(Context.POWER_SERVICE);
             pm.reboot("Checkpoint commit failed");
         }
 
@@ -7786,10 +7790,18 @@
                 false /* mountExtStorageFull */, abiOverride);
     }
 
-    // TODO: Move to ProcessList?
     @GuardedBy("this")
     final ProcessRecord addAppLocked(ApplicationInfo info, String customProcess, boolean isolated,
             boolean disableHiddenApiChecks, boolean mountExtStorageFull, String abiOverride) {
+        return addAppLocked(info, customProcess, isolated, disableHiddenApiChecks,
+                false /* disableTestApiChecks */, mountExtStorageFull, abiOverride);
+    }
+
+    // TODO: Move to ProcessList?
+    @GuardedBy("this")
+    final ProcessRecord addAppLocked(ApplicationInfo info, String customProcess, boolean isolated,
+            boolean disableHiddenApiChecks, boolean disableTestApiChecks,
+            boolean mountExtStorageFull, String abiOverride) {
         ProcessRecord app;
         if (!isolated) {
             app = getProcessRecordLocked(customProcess != null ? customProcess : info.processName,
@@ -7824,7 +7836,7 @@
             mPersistentStartingProcesses.add(app);
             mProcessList.startProcessLocked(app, new HostingRecord("added application",
                     customProcess != null ? customProcess : app.processName),
-                    disableHiddenApiChecks, mountExtStorageFull, abiOverride);
+                    disableHiddenApiChecks, disableTestApiChecks, mountExtStorageFull, abiOverride);
         }
 
         return app;
@@ -15761,10 +15773,13 @@
 
             boolean disableHiddenApiChecks = ai.usesNonSdkApi()
                     || (flags & INSTR_FLAG_DISABLE_HIDDEN_API_CHECKS) != 0;
-            if (disableHiddenApiChecks) {
+            boolean disableTestApiChecks = disableHiddenApiChecks
+                    || (flags & INSTR_FLAG_DISABLE_TEST_API_CHECKS) != 0;
+            if (disableHiddenApiChecks || disableTestApiChecks) {
                 enforceCallingPermission(android.Manifest.permission.DISABLE_HIDDEN_API_CHECKS,
                         "disable hidden API checks");
             }
+
             final boolean mountExtStorageFull = isCallerShell()
                     && (flags & INSTR_FLAG_MOUNT_EXTERNAL_STORAGE_FULL) != 0;
 
@@ -15779,7 +15794,7 @@
             }
 
             ProcessRecord app = addAppLocked(ai, defProcess, false, disableHiddenApiChecks,
-                    mountExtStorageFull, abiOverride);
+                    disableTestApiChecks, mountExtStorageFull, abiOverride);
             app.setActiveInstrumentation(activeInstr);
             activeInstr.mFinished = false;
             activeInstr.mRunningProcesses.add(app);
diff --git a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
index 0c1388c..d9e4844 100644
--- a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
+++ b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java
@@ -41,6 +41,7 @@
 import android.app.usage.ConfigurationStats;
 import android.app.usage.IUsageStatsManager;
 import android.app.usage.UsageStatsManager;
+import android.compat.Compatibility;
 import android.content.ComponentCallbacks2;
 import android.content.ComponentName;
 import android.content.Context;
@@ -80,15 +81,17 @@
 import android.text.TextUtils;
 import android.text.format.Time;
 import android.util.ArrayMap;
+import android.util.ArraySet;
 import android.util.DebugUtils;
 import android.util.DisplayMetrics;
 import android.util.proto.ProtoOutputStream;
 import android.view.Display;
 
+import com.android.internal.compat.CompatibilityChangeConfig;
 import com.android.internal.util.HexDump;
 import com.android.internal.util.MemInfoReader;
 import com.android.internal.util.Preconditions;
-import com.android.server.compat.CompatConfig;
+import com.android.server.compat.PlatformCompat;
 
 import java.io.BufferedReader;
 import java.io.File;
@@ -2868,56 +2871,49 @@
         return 0;
     }
 
-    private void killPackage(String packageName, PrintWriter pw) throws RemoteException {
-        int uid = mPm.getPackageUid(packageName, 0, mUserId);
-        if (uid < 0) {
-            // uid is negative if the package wasn't found.
-            pw.println("Didn't find package " + packageName + " on device.");
-        } else {
-            pw.println("Killing package " + packageName + " (UID " + uid + ").");
-            final long origId = Binder.clearCallingIdentity();
-            mInterface.killUid(UserHandle.getAppId(uid),
-                    UserHandle.USER_ALL, "killPackage");
-            Binder.restoreCallingIdentity(origId);
-        }
-    }
-
     private int runCompat(PrintWriter pw) throws RemoteException {
-        final CompatConfig config = CompatConfig.get();
+        final PlatformCompat platformCompat = (PlatformCompat)
+                ServiceManager.getService(Context.PLATFORM_COMPAT_SERVICE);
         String toggleValue = getNextArgRequired();
         long changeId;
         String changeIdString = getNextArgRequired();
         try {
             changeId = Long.parseLong(changeIdString);
         } catch (NumberFormatException e) {
-            changeId = config.lookupChangeId(changeIdString);
+            changeId = platformCompat.lookupChangeId(changeIdString);
         }
         if (changeId == -1) {
             pw.println("Unknown or invalid change: '" + changeIdString + "'.");
+            return -1;
         }
         String packageName = getNextArgRequired();
+        if (!platformCompat.isKnownChangeId(changeId)) {
+            pw.println("Warning! Change " + changeId + " is not known yet. Enabling/disabling it"
+                    + " could have no effect.");
+        }
+        ArraySet<Long> enabled = new ArraySet<>();
+        ArraySet<Long> disabled = new ArraySet<>();
         switch (toggleValue) {
             case "enable":
-                if (!config.addOverride(changeId, packageName, true)) {
-                    pw.println("Warning! Change " + changeId + " is not known yet. Enabling it"
-                            + " could have no effect.");
-                }
+                enabled.add(changeId);
                 pw.println("Enabled change " + changeId + " for " + packageName + ".");
-                killPackage(packageName, pw);
+                CompatibilityChangeConfig overrides =
+                        new CompatibilityChangeConfig(
+                                new Compatibility.ChangeConfig(enabled, disabled));
+                platformCompat.setOverrides(overrides, packageName);
                 return 0;
             case "disable":
-                if (!config.addOverride(changeId, packageName, false)) {
-                    pw.println("Warning! Change " + changeId + " is not known yet. Disabling it"
-                            + " could have no effect.");
-                }
+                disabled.add(changeId);
                 pw.println("Disabled change " + changeId + " for " + packageName + ".");
-                killPackage(packageName, pw);
+                overrides =
+                        new CompatibilityChangeConfig(
+                                new Compatibility.ChangeConfig(enabled, disabled));
+                platformCompat.setOverrides(overrides, packageName);
                 return 0;
             case "reset":
-                if (config.removeOverride(changeId, packageName)) {
+                if (platformCompat.clearOverride(changeId, packageName)) {
                     pw.println("Reset change " + changeId + " for " + packageName
                             + " to default value.");
-                    killPackage(packageName, pw);
                 } else {
                     pw.println("No override exists for changeId " + changeId + ".");
                 }
@@ -3032,7 +3028,8 @@
             pw.println("          specified then send to all users.");
             pw.println("      --receiver-permission <PERMISSION>: Require receiver to hold permission.");
             pw.println("  instrument [-r] [-e <NAME> <VALUE>] [-p <FILE>] [-w]");
-            pw.println("          [--user <USER_ID> | current] [--no-hidden-api-checks]");
+            pw.println("          [--user <USER_ID> | current]");
+            pw.println("          [--no-hidden-api-checks [--no-test-api-checks]]");
             pw.println("          [--no-isolated-storage]");
             pw.println("          [--no-window-animation] [--abi <ABI>] <COMPONENT>");
             pw.println("      Start an Instrumentation.  Typically this target <COMPONENT> is in the");
@@ -3052,6 +3049,8 @@
             pw.println("      --user <USER_ID> | current: Specify user instrumentation runs in;");
             pw.println("          current user if not specified.");
             pw.println("      --no-hidden-api-checks: disable restrictions on use of hidden API.");
+            pw.println("      --no-test-api-checks: disable restrictions to test APIs, if hidden");
+            pw.println("          API checks are enabled.");
             pw.println("      --no-isolated-storage: don't use isolated storage sandbox and ");
             pw.println("          mount full external storage");
             pw.println("      --no-window-animation: turn off window animations while running.");
diff --git a/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java b/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java
index 5255316..0524f91 100644
--- a/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java
+++ b/services/core/java/com/android/server/am/BatteryExternalStatsWorker.java
@@ -445,7 +445,7 @@
         if ((updateFlags & BatteryStatsImpl.ExternalStatsSync.UPDATE_RADIO) != 0) {
             // We were asked to fetch Telephony data.
             if (mTelephony == null) {
-                mTelephony = TelephonyManager.from(mContext);
+                mTelephony = mContext.getSystemService(TelephonyManager.class);
             }
 
             if (mTelephony != null) {
diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java
index c2f4529..5674046 100644
--- a/services/core/java/com/android/server/am/BatteryStatsService.java
+++ b/services/core/java/com/android/server/am/BatteryStatsService.java
@@ -731,7 +731,7 @@
 
     public void notePhoneState(int state) {
         enforceCallingPermission();
-        int simState = TelephonyManager.getDefault().getSimState();
+        int simState = mContext.getSystemService(TelephonyManager.class).getSimState();
         synchronized (mStats) {
             mStats.notePhoneStateLocked(state, simState);
         }
diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java
index 3d598dd..4692fd4 100644
--- a/services/core/java/com/android/server/am/ProcessList.java
+++ b/services/core/java/com/android/server/am/ProcessList.java
@@ -1419,15 +1419,11 @@
 
     /**
      * @return {@code true} if process start is successful, false otherwise.
-     * @param app
-     * @param hostingRecord
-     * @param disableHiddenApiChecks
-     * @param abiOverride
      */
     @GuardedBy("mService")
     boolean startProcessLocked(ProcessRecord app, HostingRecord hostingRecord,
-            boolean disableHiddenApiChecks, boolean mountExtStorageFull,
-            String abiOverride) {
+            boolean disableHiddenApiChecks, boolean disableTestApiChecks,
+            boolean mountExtStorageFull, String abiOverride) {
         if (app.pendingStart) {
             return true;
         }
@@ -1572,6 +1568,10 @@
                     throw new IllegalStateException("Invalid API policy: " + policy);
                 }
                 runtimeFlags |= policyBits;
+
+                if (disableTestApiChecks) {
+                    runtimeFlags |= Zygote.DISABLE_TEST_API_ENFORCEMENT_POLICY;
+                }
             }
 
             String useAppImageCache = SystemProperties.get(
@@ -1845,7 +1845,8 @@
     final boolean startProcessLocked(ProcessRecord app, HostingRecord hostingRecord,
             String abiOverride) {
         return startProcessLocked(app, hostingRecord,
-                false /* disableHiddenApiChecks */, false /* mountExtStorageFull */, abiOverride);
+                false /* disableHiddenApiChecks */, false /* disableTestApiChecks */,
+                false /* mountExtStorageFull */, abiOverride);
     }
 
     @GuardedBy("mService")
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index 055a4bd..48f08e3 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -1461,10 +1461,13 @@
         }
         if (!TextUtils.isEmpty(packageName)) {
             PackageManager pm = mContext.getPackageManager();
+            ActivityManager am =
+                          (ActivityManager) mContext.getSystemService(mContext.ACTIVITY_SERVICE);
+
             if (pm.checkPermission(Manifest.permission.CAPTURE_AUDIO_HOTWORD, packageName)
                     == PackageManager.PERMISSION_GRANTED) {
                 try {
-                    assistantUid = pm.getPackageUid(packageName, 0);
+                    assistantUid = pm.getPackageUidAsUser(packageName, am.getCurrentUser());
                 } catch (PackageManager.NameNotFoundException e) {
                     Log.e(TAG,
                             "updateAssistantUId() could not find UID for package: " + packageName);
@@ -1582,12 +1585,13 @@
         setMicrophoneMuteNoCallerCheck(currentUser);
     }
 
-    private int rescaleIndex(int index, int srcStream, int dstStream) {
-        int srcRange =
-                mStreamStates[srcStream].getMaxIndex() - mStreamStates[srcStream].getMinIndex();
-        int dstRange =
-                mStreamStates[dstStream].getMaxIndex() - mStreamStates[dstStream].getMinIndex();
+    private int getIndexRange(int streamType) {
+        return (mStreamStates[streamType].getMaxIndex() - mStreamStates[streamType].getMinIndex());
+    }
 
+    private int rescaleIndex(int index, int srcStream, int dstStream) {
+        int srcRange = getIndexRange(srcStream);
+        int dstRange = getIndexRange(dstStream);
         if (srcRange == 0) {
             Log.e(TAG, "rescaleIndex : index range should not be zero");
             return mStreamStates[dstStream].getMinIndex();
@@ -1598,6 +1602,17 @@
                 / srcRange;
     }
 
+    private int rescaleStep(int step, int srcStream, int dstStream) {
+        int srcRange = getIndexRange(srcStream);
+        int dstRange = getIndexRange(dstStream);
+        if (srcRange == 0) {
+            Log.e(TAG, "rescaleStep : index range should not be zero");
+            return 0;
+        }
+
+        return ((step * dstRange + srcRange / 2) / srcRange);
+    }
+
     ///////////////////////////////////////////////////////////////////////////
     // IPC methods
     ///////////////////////////////////////////////////////////////////////////
@@ -1774,7 +1789,7 @@
             }
         } else {
             // convert one UI step (+/-1) into a number of internal units on the stream alias
-            step = rescaleIndex(10, streamType, streamTypeAlias);
+            step = rescaleStep(10, streamType, streamTypeAlias);
         }
 
         // If either the client forces allowing ringer modes for this adjustment,
@@ -3896,8 +3911,7 @@
         final boolean muteSystem = (zenPolicy.priorityCategories
                 & NotificationManager.Policy.PRIORITY_CATEGORY_SYSTEM) == 0;
         final boolean muteNotificationAndRing = ZenModeConfig
-                .areAllPriorityOnlyNotificationZenSoundsMuted(
-                        mNm.getConsolidatedNotificationPolicy());
+                .areAllPriorityOnlyNotificationZenSoundsMuted(zenPolicy);
         return muteAlarms && isAlarm(streamType)
                 || muteMedia && isMedia(streamType)
                 || muteSystem && isSystem(streamType)
@@ -3909,11 +3923,13 @@
     }
 
     /**
-     * DND total silence: media and alarms streams are tied to the muted ringer
-     * {@link ZenModeHelper.RingerModeDelegate#getRingerModeAffectedStreams(int)}
-     * DND alarms only: notification, ringer + system muted (by default tied to muted ringer mode)
-     * DND priority only: alarms, media, system streams can be muted separate from ringer based on
-     * zenPolicy (this method determines which streams)
+     * Notifications, ringer and system sounds are controlled by the ringer:
+     * {@link ZenModeHelper.RingerModeDelegate#getRingerModeAffectedStreams(int)} but can
+     * also be muted by DND based on the DND mode:
+     * DND total silence: media and alarms streams can be muted by DND
+     * DND alarms only: no streams additionally controlled by DND
+     * DND priority only: alarms, media, system, ringer and notification streams can be muted by
+     * DND.  The current applied zenPolicy determines which streams will be muted by DND.
      * @return true if changed, else false
      */
     private boolean updateZenModeAffectedStreams() {
@@ -3934,6 +3950,11 @@
                     & NotificationManager.Policy.PRIORITY_CATEGORY_SYSTEM) == 0) {
                 zenModeAffectedStreams |= 1 << AudioManager.STREAM_SYSTEM;
             }
+
+            if (ZenModeConfig.areAllPriorityOnlyNotificationZenSoundsMuted(zenPolicy)) {
+                zenModeAffectedStreams |= 1 << AudioManager.STREAM_NOTIFICATION;
+                zenModeAffectedStreams |= 1 << AudioManager.STREAM_RING;
+            }
         }
 
         if (mZenModeAffectedStreams != zenModeAffectedStreams) {
diff --git a/services/core/java/com/android/server/audio/FocusRequester.java b/services/core/java/com/android/server/audio/FocusRequester.java
index bd129f7..41008c2 100644
--- a/services/core/java/com/android/server/audio/FocusRequester.java
+++ b/services/core/java/com/android/server/audio/FocusRequester.java
@@ -437,7 +437,8 @@
     }
 
     int dispatchFocusChange(int focusChange) {
-        if (mFocusDispatcher == null) {
+        final IAudioFocusDispatcher fd = mFocusDispatcher;
+        if (fd == null) {
             if (MediaFocusControl.DEBUG) { Log.e(TAG, "dispatchFocusChange: no focus dispatcher"); }
             return AudioManager.AUDIOFOCUS_REQUEST_FAILED;
         }
@@ -457,7 +458,7 @@
             mFocusLossReceived = focusChange;
         }
         try {
-            mFocusDispatcher.dispatchAudioFocusChange(focusChange, mClientId);
+            fd.dispatchAudioFocusChange(focusChange, mClientId);
         } catch (android.os.RemoteException e) {
             Log.e(TAG, "dispatchFocusChange: error talking to focus listener " + mClientId, e);
             return AudioManager.AUDIOFOCUS_REQUEST_FAILED;
@@ -466,16 +467,18 @@
     }
 
     void dispatchFocusResultFromExtPolicy(int requestResult) {
-        if (mFocusDispatcher == null) {
+        final IAudioFocusDispatcher fd = mFocusDispatcher;
+        if (fd == null) {
             if (MediaFocusControl.DEBUG) {
                 Log.e(TAG, "dispatchFocusResultFromExtPolicy: no focus dispatcher");
             }
+            return;
         }
         if (DEBUG) {
             Log.v(TAG, "dispatching result" + requestResult + " to " + mClientId);
         }
         try {
-            mFocusDispatcher.dispatchFocusResultFromExtPolicy(requestResult, mClientId);
+            fd.dispatchFocusResultFromExtPolicy(requestResult, mClientId);
         } catch (android.os.RemoteException e) {
             Log.e(TAG, "dispatchFocusResultFromExtPolicy: error talking to focus listener"
                     + mClientId, e);
diff --git a/services/core/java/com/android/server/compat/CompatChange.java b/services/core/java/com/android/server/compat/CompatChange.java
index 8762435..95582f7 100644
--- a/services/core/java/com/android/server/compat/CompatChange.java
+++ b/services/core/java/com/android/server/compat/CompatChange.java
@@ -38,6 +38,20 @@
  */
 public final class CompatChange extends CompatibilityChangeInfo {
 
+    /**
+     * Callback listener for when compat changes are updated for a package.
+     * See {@link #registerListener(ChangeListener)} for more details.
+     */
+    public interface ChangeListener {
+        /**
+         * Called upon an override change for packageName and the change this listener is
+         * registered for. Called before the app is killed.
+         */
+        void onCompatChange(String packageName);
+    }
+
+    ChangeListener mListener = null;
+
     private Map<String, Boolean> mPackageOverrides;
 
     public CompatChange(long changeId) {
@@ -64,6 +78,15 @@
                 change.getDisabled());
     }
 
+    void registerListener(ChangeListener listener) {
+        if (mListener != null) {
+            throw new IllegalStateException(
+                    "Listener for change " + toString() + " already registered.");
+        }
+        mListener = listener;
+    }
+
+
     /**
      * Force the enabled state of this change for a given package name. The change will only take
      * effect after that packages process is killed and restarted.
@@ -78,6 +101,7 @@
             mPackageOverrides = new HashMap<>();
         }
         mPackageOverrides.put(pname, enabled);
+        notifyListener(pname);
     }
 
     /**
@@ -89,7 +113,9 @@
      */
     void removePackageOverride(String pname) {
         if (mPackageOverrides != null) {
-            mPackageOverrides.remove(pname);
+            if (mPackageOverrides.remove(pname) != null) {
+                notifyListener(pname);
+            }
         }
     }
 
@@ -131,4 +157,10 @@
         }
         return sb.append(")").toString();
     }
+
+    private void notifyListener(String packageName) {
+        if (mListener != null) {
+            mListener.onCompatChange(packageName);
+        }
+    }
 }
diff --git a/services/core/java/com/android/server/compat/CompatConfig.java b/services/core/java/com/android/server/compat/CompatConfig.java
index d6ec22b..39c6e75 100644
--- a/services/core/java/com/android/server/compat/CompatConfig.java
+++ b/services/core/java/com/android/server/compat/CompatConfig.java
@@ -43,13 +43,14 @@
 import java.util.Set;
 
 import javax.xml.datatype.DatatypeConfigurationException;
+
 /**
  * This class maintains state relating to platform compatibility changes.
  *
  * <p>It stores the default configuration for each change, and any per-package overrides that have
  * been configured.
  */
-public final class CompatConfig {
+final class CompatConfig {
 
     private static final String TAG = "CompatConfig";
 
@@ -61,13 +62,13 @@
     private final LongSparseArray<CompatChange> mChanges = new LongSparseArray<>();
 
     @VisibleForTesting
-    public CompatConfig() {
+    CompatConfig() {
     }
 
     /**
      * @return The static instance of this class to be used within the system server.
      */
-    public static CompatConfig get() {
+    static CompatConfig get() {
         return sInstance;
     }
 
@@ -77,7 +78,7 @@
      *
      * @param change The change to add. Any change with the same ID will be overwritten.
      */
-    public void addChange(CompatChange change) {
+    void addChange(CompatChange change) {
         synchronized (mChanges) {
             mChanges.put(change.getId(), change);
         }
@@ -89,10 +90,10 @@
      *
      * @param app The app in question
      * @return A sorted long array of change IDs. We use a primitive array to minimize memory
-     *      footprint: Every app process will store this array statically so we aim to reduce
-     *      overhead as much as possible.
+     * footprint: Every app process will store this array statically so we aim to reduce
+     * overhead as much as possible.
      */
-    public long[] getDisabledChanges(ApplicationInfo app) {
+    long[] getDisabledChanges(ApplicationInfo app) {
         LongArray disabled = new LongArray();
         synchronized (mChanges) {
             for (int i = 0; i < mChanges.size(); ++i) {
@@ -113,7 +114,7 @@
      * @param name Name of the change to look up
      * @return The change ID, or {@code -1} if no change with that name exists.
      */
-    public long lookupChangeId(String name) {
+    long lookupChangeId(String name) {
         synchronized (mChanges) {
             for (int i = 0; i < mChanges.size(); ++i) {
                 if (TextUtils.equals(mChanges.valueAt(i).getName(), name)) {
@@ -128,11 +129,11 @@
      * Find if a given change is enabled for a given application.
      *
      * @param changeId The ID of the change in question
-     * @param app App to check for
+     * @param app      App to check for
      * @return {@code true} if the change is enabled for this app. Also returns {@code true} if the
-     *      change ID is not known, as unknown changes are enabled by default.
+     * change ID is not known, as unknown changes are enabled by default.
      */
-    public boolean isChangeEnabled(long changeId, ApplicationInfo app) {
+    boolean isChangeEnabled(long changeId, ApplicationInfo app) {
         synchronized (mChanges) {
             CompatChange c = mChanges.get(changeId);
             if (c == null) {
@@ -150,14 +151,15 @@
      *
      * <p>Note, package overrides are not persistent and will be lost on system or runtime restart.
      *
-     * @param changeId The ID of the change to be overridden. Note, this call will succeed even if
-     *                 this change is not known; it will only have any effect if any code in the
-     *                 platform is gated on the ID given.
+     * @param changeId    The ID of the change to be overridden. Note, this call will succeed even
+     *                    if
+     *                    this change is not known; it will only have any effect if any code in the
+     *                    platform is gated on the ID given.
      * @param packageName The app package name to override the change for.
-     * @param enabled If the change should be enabled or disabled.
+     * @param enabled     If the change should be enabled or disabled.
      * @return {@code true} if the change existed before adding the override.
      */
-    public boolean addOverride(long changeId, String packageName, boolean enabled) {
+    boolean addOverride(long changeId, String packageName, boolean enabled) {
         boolean alreadyKnown = true;
         synchronized (mChanges) {
             CompatChange c = mChanges.get(changeId);
@@ -172,15 +174,27 @@
     }
 
     /**
+     * Check whether the change is known to the compat config.
+     *
+     * @return {@code true} if the change is known.
+     */
+    boolean isKnownChangeId(long changeId) {
+        synchronized (mChanges) {
+            CompatChange c = mChanges.get(changeId);
+            return c != null;
+        }
+    }
+
+    /**
      * Removes an override previously added via {@link #addOverride(long, String, boolean)}. This
      * restores the default behaviour for the given change and app, once any app processes have been
      * restarted.
      *
-     * @param changeId The ID of the change that was overridden.
+     * @param changeId    The ID of the change that was overridden.
      * @param packageName The app package name that was overridden.
      * @return {@code true} if an override existed;
      */
-    public boolean removeOverride(long changeId, String packageName) {
+    boolean removeOverride(long changeId, String packageName) {
         boolean overrideExists = false;
         synchronized (mChanges) {
             CompatChange c = mChanges.get(changeId);
@@ -191,22 +205,22 @@
         }
         return overrideExists;
     }
+
     /**
      * Overrides the enabled state for a given change and app. This method is intended to be used
      * *only* for debugging purposes.
      *
      * <p>Note, package overrides are not persistent and will be lost on system or runtime restart.
      *
-     * @param overrides list of overrides to default changes config.
+     * @param overrides   list of overrides to default changes config.
      * @param packageName app for which the overrides will be applied.
      */
-    public void addOverrides(
-            CompatibilityChangeConfig overrides, String packageName) {
+    void addOverrides(CompatibilityChangeConfig overrides, String packageName) {
         synchronized (mChanges) {
-            for (Long changeId: overrides.enabledChanges()) {
+            for (Long changeId : overrides.enabledChanges()) {
                 addOverride(changeId, packageName, true);
             }
-            for (Long changeId: overrides.disabledChanges()) {
+            for (Long changeId : overrides.disabledChanges()) {
                 addOverride(changeId, packageName, false);
             }
         }
@@ -214,14 +228,14 @@
 
     /**
      * Removes all overrides previously added via {@link #addOverride(long, String, boolean)} or
-     * {@link #addAppOverrides(CompatibilityChangeConfig, String)} for a certain package.
+     * {@link #addOverrides(CompatibilityChangeConfig, String)} for a certain package.
      *
      * <p>This restores the default behaviour for the given change and app, once any app
      * processes have been restarted.
      *
      * @param packageName The package for which the overrides should be purged.
      */
-    public void removePackageOverrides(String packageName) {
+    void removePackageOverrides(String packageName) {
         synchronized (mChanges) {
             for (int i = 0; i < mChanges.size(); ++i) {
                 mChanges.valueAt(i).removePackageOverride(packageName);
@@ -229,12 +243,33 @@
         }
     }
 
+    boolean registerListener(long changeId, CompatChange.ChangeListener listener) {
+        boolean alreadyKnown = true;
+        synchronized (mChanges) {
+            CompatChange c = mChanges.get(changeId);
+            if (c == null) {
+                alreadyKnown = false;
+                c = new CompatChange(changeId);
+                addChange(c);
+            }
+            c.registerListener(listener);
+        }
+        return alreadyKnown;
+    }
+
+    @VisibleForTesting
+    void clearChanges() {
+        synchronized (mChanges) {
+            mChanges.clear();
+        }
+    }
+
     /**
-    * Dumps the current list of compatibility config information.
-    *
-    * @param pw The {@link PrintWriter} instance to which the information will be dumped.
-    */
-    public void dumpConfig(PrintWriter pw) {
+     * Dumps the current list of compatibility config information.
+     *
+     * @param pw The {@link PrintWriter} instance to which the information will be dumped.
+     */
+    void dumpConfig(PrintWriter pw) {
         synchronized (mChanges) {
             if (mChanges.size() == 0) {
                 pw.println("No compat overrides.");
@@ -252,10 +287,10 @@
      *
      * @param applicationInfo the {@link ApplicationInfo} for which the info should be dumped.
      * @return A {@link CompatibilityChangeConfig} which contains the compat config info for the
-     *         given app.
+     * given app.
      */
 
-    public CompatibilityChangeConfig getAppConfig(ApplicationInfo applicationInfo) {
+    CompatibilityChangeConfig getAppConfig(ApplicationInfo applicationInfo) {
         Set<Long> enabled = new HashSet<>();
         Set<Long> disabled = new HashSet<>();
         synchronized (mChanges) {
@@ -276,15 +311,15 @@
      *
      * @return An array of {@link CompatibilityChangeInfo} with the current changes.
      */
-    public CompatibilityChangeInfo[] dumpChanges() {
+    CompatibilityChangeInfo[] dumpChanges() {
         synchronized (mChanges) {
             CompatibilityChangeInfo[] changeInfos = new CompatibilityChangeInfo[mChanges.size()];
             for (int i = 0; i < mChanges.size(); ++i) {
                 CompatChange change = mChanges.valueAt(i);
                 changeInfos[i] = new CompatibilityChangeInfo(change.getId(),
-                                                      change.getName(),
-                                                      change.getEnableAfterTargetSdk(),
-                                                      change.getDisabled());
+                        change.getName(),
+                        change.getEnableAfterTargetSdk(),
+                        change.getDisabled());
             }
             return changeInfos;
         }
diff --git a/services/core/java/com/android/server/compat/PlatformCompat.java b/services/core/java/com/android/server/compat/PlatformCompat.java
index 75e2d22..4a3d7d6 100644
--- a/services/core/java/com/android/server/compat/PlatformCompat.java
+++ b/services/core/java/com/android/server/compat/PlatformCompat.java
@@ -16,9 +16,13 @@
 
 package com.android.server.compat;
 
+import android.app.ActivityManager;
+import android.app.IActivityManager;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
+import android.os.Binder;
+import android.os.RemoteException;
 import android.os.UserHandle;
 import android.util.Slog;
 import android.util.StatsLog;
@@ -103,15 +107,52 @@
         return enabled;
     }
 
+    /**
+     * Register a listener for change state overrides. Only one listener per change is allowed.
+     *
+     * <p>{@code listener.onCompatChange(String)} method is guaranteed to be called with
+     * packageName before the app is killed upon an override change. The state of a change is not
+     * guaranteed to change when {@code listener.onCompatChange(String)} is called.
+     *
+     * @param changeId to get updates for
+     * @param listener the listener that will be called upon a potential change for package.
+     * @throws IllegalStateException if a listener was already registered for changeId
+     * @returns {@code true} if a change with changeId was already known, or (@code false}
+     * otherwise.
+     */
+    public boolean registerListener(long changeId, CompatChange.ChangeListener listener) {
+        return CompatConfig.get().registerListener(changeId, listener);
+    }
+
     @Override
     public void setOverrides(CompatibilityChangeConfig overrides, String packageName) {
         CompatConfig.get().addOverrides(overrides, packageName);
+        killPackage(packageName);
+    }
+
+    @Override
+    public void setOverridesForTest(CompatibilityChangeConfig overrides, String packageName) {
+        CompatConfig.get().addOverrides(overrides, packageName);
     }
 
     @Override
     public void clearOverrides(String packageName) {
         CompatConfig config = CompatConfig.get();
         config.removePackageOverrides(packageName);
+        killPackage(packageName);
+    }
+
+    @Override
+    public void clearOverridesForTest(String packageName) {
+        CompatConfig config = CompatConfig.get();
+        config.removePackageOverrides(packageName);
+    }
+
+    @Override
+    public boolean clearOverride(long changeId, String packageName) {
+        boolean existed = CompatConfig.get().removeOverride(changeId, packageName);
+        killPackage(packageName);
+        return existed;
     }
 
     @Override
@@ -124,6 +165,39 @@
         return CompatConfig.get().dumpChanges();
     }
 
+    /**
+     * Check whether the change is known to the compat config.
+     * @param changeId
+     * @return {@code true} if the change is known.
+     */
+    public boolean isKnownChangeId(long changeId) {
+        return CompatConfig.get().isKnownChangeId(changeId);
+
+    }
+
+    /**
+     * Retrieves the set of disabled changes for a given app. Any change ID not in the returned
+     * array is by default enabled for the app.
+     *
+     * @param appInfo The app in question
+     * @return A sorted long array of change IDs. We use a primitive array to minimize memory
+     *      footprint: Every app process will store this array statically so we aim to reduce
+     *      overhead as much as possible.
+     */
+    public long[] getDisabledChanges(ApplicationInfo appInfo) {
+        return CompatConfig.get().getDisabledChanges(appInfo);
+    }
+
+    /**
+     * Look up a change ID by name.
+     *
+     * @param name Name of the change to look up
+     * @return The change ID, or {@code -1} if no change with that name exists.
+     */
+    public long lookupChangeId(String name) {
+        return CompatConfig.get().lookupChangeId(name);
+    }
+
     @Override
     protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
         if (!DumpUtils.checkDumpAndUsageStatsPermission(mContext, "platform_compat", pw)) return;
@@ -151,4 +225,34 @@
     private void reportChange(long changeId, int uid, int state) {
         mChangeReporter.reportChange(uid, changeId, state);
     }
+
+    private void killPackage(String packageName) {
+        int uid = -1;
+        try {
+            uid = mContext.getPackageManager().getPackageUid(packageName, 0);
+        } catch (PackageManager.NameNotFoundException e) {
+            Slog.w(TAG, "Didn't find package " + packageName + " on device.", e);
+            return;
+        }
+
+        Slog.d(TAG, "Killing package " + packageName + " (UID " + uid + ").");
+        killUid(UserHandle.getAppId(uid),
+                UserHandle.USER_ALL, "PlatformCompat overrides");
+    }
+
+    private void killUid(int appId, int userId, String reason) {
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            IActivityManager am = ActivityManager.getService();
+            if (am != null) {
+                try {
+                    am.killUid(appId, userId, reason);
+                } catch (RemoteException e) {
+                    /* ignore - same process */
+                }
+            }
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
+    }
 }
diff --git a/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java b/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java
index 96b7cb3..bb7f862 100644
--- a/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java
+++ b/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java
@@ -28,6 +28,7 @@
 import android.net.NetworkMisc;
 import android.net.NetworkMonitorManager;
 import android.net.NetworkRequest;
+import android.net.NetworkScore;
 import android.net.NetworkState;
 import android.os.Handler;
 import android.os.INetworkManagementService;
@@ -227,8 +228,10 @@
     // validated).
     private boolean mLingering;
 
-    // This represents the last score received from the NetworkAgent.
-    private int currentScore;
+    // This represents the characteristics of a network that affects how good the network is
+    // considered for a particular use.
+    @NonNull
+    private NetworkScore mNetworkScore;
 
     // The list of NetworkRequests being satisfied by this Network.
     private final SparseArray<NetworkRequest> mNetworkRequests = new SparseArray<>();
@@ -257,8 +260,8 @@
     private final Handler mHandler;
 
     public NetworkAgentInfo(Messenger messenger, AsyncChannel ac, Network net, NetworkInfo info,
-            LinkProperties lp, NetworkCapabilities nc, int score, Context context, Handler handler,
-            NetworkMisc misc, ConnectivityService connService, INetd netd,
+            LinkProperties lp, NetworkCapabilities nc, @NonNull NetworkScore ns, Context context,
+            Handler handler, NetworkMisc misc, ConnectivityService connService, INetd netd,
             IDnsResolver dnsResolver, INetworkManagementService nms, int factorySerialNumber) {
         this.messenger = messenger;
         asyncChannel = ac;
@@ -266,7 +269,7 @@
         networkInfo = info;
         linkProperties = lp;
         networkCapabilities = nc;
-        currentScore = score;
+        mNetworkScore = ns;
         clatd = new Nat464Xlat(this, netd, dnsResolver, nms);
         mConnService = connService;
         mContext = context;
@@ -483,7 +486,7 @@
             return ConnectivityConstants.EXPLICITLY_SELECTED_NETWORK_SCORE;
         }
 
-        int score = currentScore;
+        int score = mNetworkScore.getIntExtension(NetworkScore.LEGACY_SCORE);
         if (!lastValidated && !pretendValidated && !ignoreWifiUnvalidationPenalty() && !isVPN()) {
             score -= ConnectivityConstants.UNVALIDATED_SCORE_PENALTY;
         }
@@ -512,8 +515,13 @@
         return getCurrentScore(true);
     }
 
-    public void setCurrentScore(int newScore) {
-        currentScore = newScore;
+    public void setNetworkScore(@NonNull NetworkScore ns) {
+        mNetworkScore = ns;
+    }
+
+    @NonNull
+    public NetworkScore getNetworkScore() {
+        return mNetworkScore;
     }
 
     public NetworkState getNetworkState() {
@@ -572,7 +580,7 @@
         // semantics of WakeupMessage guarantee that if cancel is called then the alarm will
         // never call its callback (handleLingerComplete), even if it has already fired.
         // WakeupMessage makes no such guarantees about rescheduling a message, so if mLingerMessage
-        // has already been dispatched, rescheduling to some time in the future it won't stop it
+        // has already been dispatched, rescheduling to some time in the future won't stop it
         // from calling its callback immediately.
         if (mLingerMessage != null) {
             mLingerMessage.cancel();
diff --git a/services/core/java/com/android/server/connectivity/NetworkNotificationManager.java b/services/core/java/com/android/server/connectivity/NetworkNotificationManager.java
index d13e675..bc83780 100644
--- a/services/core/java/com/android/server/connectivity/NetworkNotificationManager.java
+++ b/services/core/java/com/android/server/connectivity/NetworkNotificationManager.java
@@ -18,6 +18,7 @@
 
 import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET;
 import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
+import static android.net.NetworkCapabilities.TRANSPORT_VPN;
 import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
 
 import android.app.Notification;
@@ -89,14 +90,22 @@
         mNotificationTypeMap = new SparseIntArray();
     }
 
+    @VisibleForTesting
+    protected static int approximateTransportType(NetworkAgentInfo nai) {
+        return nai.isVPN() ? TRANSPORT_VPN : getFirstTransportType(nai);
+    }
+
     // TODO: deal more gracefully with multi-transport networks.
     private static int getFirstTransportType(NetworkAgentInfo nai) {
+        // TODO: The range is wrong, the safer and correct way is to change the range from
+        // MIN_TRANSPORT to MAX_TRANSPORT.
         for (int i = 0; i < 64; i++) {
             if (nai.networkCapabilities.hasTransport(i)) return i;
         }
         return -1;
     }
 
+    // TODO: Remove @TransportType or change it to @Transport.
     private static String getTransportName(@TransportType int transportType) {
         Resources r = Resources.getSystem();
         String[] networkTypes = r.getStringArray(R.array.network_switch_type_name);
@@ -146,7 +155,7 @@
         final int transportType;
         final String name;
         if (nai != null) {
-            transportType = getFirstTransportType(nai);
+            transportType = approximateTransportType(nai);
             final String extraInfo = nai.networkInfo.getExtraInfo();
             name = TextUtils.isEmpty(extraInfo) ? nai.networkCapabilities.getSSID() : extraInfo;
             // Only notify for Internet-capable networks.
@@ -175,7 +184,7 @@
                     tag, nameOf(eventId), getTransportName(transportType), name, highPriority));
         }
 
-        Resources r = Resources.getSystem();
+        Resources r = mContext.getResources();
         final CharSequence title;
         final CharSequence details;
         int icon = getIcon(transportType, notifyType);
@@ -239,7 +248,7 @@
             details = r.getString(R.string.captive_portal_logged_in_detailed);
         } else if (notifyType == NotificationType.NETWORK_SWITCH) {
             String fromTransport = getTransportName(transportType);
-            String toTransport = getTransportName(getFirstTransportType(switchToNai));
+            String toTransport = getTransportName(approximateTransportType(switchToNai));
             title = r.getString(R.string.network_switch_metered, toTransport);
             details = r.getString(R.string.network_switch_metered_detail, toTransport,
                     fromTransport);
@@ -340,8 +349,8 @@
     }
 
     public void showToast(NetworkAgentInfo fromNai, NetworkAgentInfo toNai) {
-        String fromTransport = getTransportName(getFirstTransportType(fromNai));
-        String toTransport = getTransportName(getFirstTransportType(toNai));
+        String fromTransport = getTransportName(approximateTransportType(fromNai));
+        String toTransport = getTransportName(approximateTransportType(toNai));
         String text = mContext.getResources().getString(
                 R.string.network_switch_metered_toast, fromTransport, toTransport);
         Toast.makeText(mContext, text, Toast.LENGTH_LONG).show();
diff --git a/services/core/java/com/android/server/connectivity/PermissionMonitor.java b/services/core/java/com/android/server/connectivity/PermissionMonitor.java
index 29c4bad..56f4959 100644
--- a/services/core/java/com/android/server/connectivity/PermissionMonitor.java
+++ b/services/core/java/com/android/server/connectivity/PermissionMonitor.java
@@ -229,22 +229,22 @@
     }
 
     @VisibleForTesting
-    boolean hasPermission(PackageInfo app, String permission) {
-        if (app.requestedPermissions != null) {
-            for (String p : app.requestedPermissions) {
-                if (permission.equals(p)) {
-                    return true;
-                }
-            }
+    boolean hasPermission(@NonNull final PackageInfo app, @NonNull final String permission) {
+        if (app.requestedPermissions == null || app.requestedPermissionsFlags == null) {
+            return false;
         }
-        return false;
+        final int index = ArrayUtils.indexOf(app.requestedPermissions, permission);
+        if (index < 0 || index >= app.requestedPermissionsFlags.length) return false;
+        return (app.requestedPermissionsFlags[index] & REQUESTED_PERMISSION_GRANTED) != 0;
     }
 
-    private boolean hasNetworkPermission(PackageInfo app) {
+    @VisibleForTesting
+    boolean hasNetworkPermission(@NonNull final PackageInfo app) {
         return hasPermission(app, CHANGE_NETWORK_STATE);
     }
 
-    private boolean hasRestrictedNetworkPermission(PackageInfo app) {
+    @VisibleForTesting
+    boolean hasRestrictedNetworkPermission(@NonNull final PackageInfo app) {
         // TODO : remove this check in the future(b/31479477). All apps should just
         // request the appropriate permission for their use case since android Q.
         if (app.applicationInfo != null) {
@@ -260,33 +260,18 @@
             }
         }
         return hasPermission(app, CONNECTIVITY_INTERNAL)
+                || hasPermission(app, NETWORK_STACK)
                 || hasPermission(app, CONNECTIVITY_USE_RESTRICTED_NETWORKS);
     }
 
-    private boolean hasUseBackgroundNetworksPermission(PackageInfo app) {
-        // This function defines what it means to hold the permission to use
-        // background networks.
-        return hasPermission(app, CHANGE_NETWORK_STATE)
-                || hasPermission(app, NETWORK_STACK)
-                || hasRestrictedNetworkPermission(app);
-    }
-
-    public boolean hasUseBackgroundNetworksPermission(int uid) {
-        final String[] names = mPackageManager.getPackagesForUid(uid);
-        if (null == names || names.length == 0) return false;
-        try {
-            // Only using the first package name. There may be multiple names if multiple
-            // apps share the same UID, but in that case they also share permissions so
-            // querying with any of the names will return the same results.
-            int userId = UserHandle.getUserId(uid);
-            final PackageInfo app = mPackageManager.getPackageInfoAsUser(
-                    names[0], GET_PERMISSIONS, userId);
-            return hasUseBackgroundNetworksPermission(app);
-        } catch (NameNotFoundException e) {
-            // App not found.
-            loge("NameNotFoundException " + names[0], e);
-            return false;
-        }
+    /** Returns whether the given uid has using background network permission. */
+    public synchronized boolean hasUseBackgroundNetworksPermission(final int uid) {
+        // Apps with any of the CHANGE_NETWORK_STATE, NETWORK_STACK, CONNECTIVITY_INTERNAL or
+        // CONNECTIVITY_USE_RESTRICTED_NETWORKS permission has the permission to use background
+        // networks. mApps contains the result of checks for both hasNetworkPermission and
+        // hasRestrictedNetworkPermission. If uid is in the mApps list that means uid has one of
+        // permissions at least.
+        return mApps.containsKey(uid);
     }
 
     private int[] toIntArray(Collection<Integer> list) {
diff --git a/services/core/java/com/android/server/connectivity/tethering/TetheringDependencies.java b/services/core/java/com/android/server/connectivity/tethering/TetheringDependencies.java
deleted file mode 100644
index 4ad7ac4..0000000
--- a/services/core/java/com/android/server/connectivity/tethering/TetheringDependencies.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.server.connectivity.tethering;
-
-import android.content.Context;
-import android.net.NetworkRequest;
-import android.net.ip.IpServer;
-import android.net.util.SharedLog;
-import android.os.Handler;
-
-import com.android.internal.util.StateMachine;
-import com.android.server.connectivity.MockableSystemProperties;
-
-import java.util.ArrayList;
-
-
-/**
- * Capture tethering dependencies, for injection.
- *
- * @hide
- */
-public class TetheringDependencies {
-    /**
-     * Get a reference to the offload hardware interface to be used by tethering.
-     */
-    public OffloadHardwareInterface getOffloadHardwareInterface(Handler h, SharedLog log) {
-        return new OffloadHardwareInterface(h, log);
-    }
-
-    /**
-     * Get a reference to the UpstreamNetworkMonitor to be used by tethering.
-     */
-    public UpstreamNetworkMonitor getUpstreamNetworkMonitor(Context ctx, StateMachine target,
-            SharedLog log, int what) {
-        return new UpstreamNetworkMonitor(ctx, target, log, what);
-    }
-
-    /**
-     * Get a reference to the IPv6TetheringCoordinator to be used by tethering.
-     */
-    public IPv6TetheringCoordinator getIPv6TetheringCoordinator(
-            ArrayList<IpServer> notifyList, SharedLog log) {
-        return new IPv6TetheringCoordinator(notifyList, log);
-    }
-
-    /**
-     * Get dependencies to be used by IpServer.
-     */
-    public IpServer.Dependencies getIpServerDependencies() {
-        return new IpServer.Dependencies();
-    }
-
-    /**
-     * Indicates whether tethering is supported on the device.
-     */
-    public boolean isTetheringSupported() {
-        return true;
-    }
-
-    /**
-     * Get the NetworkRequest that should be fulfilled by the default network.
-     */
-    public NetworkRequest getDefaultNetworkRequest() {
-        return null;
-    }
-
-    /**
-     * Get a reference to the EntitlementManager to be used by tethering.
-     */
-    public EntitlementManager getEntitlementManager(Context ctx, StateMachine target,
-            SharedLog log, int what, MockableSystemProperties systemProperties) {
-        return new EntitlementManager(ctx, target, log, what, systemProperties);
-    }
-
-    /**
-     * Generate a new TetheringConfiguration according to input sub Id.
-     */
-    public TetheringConfiguration generateTetheringConfiguration(Context ctx, SharedLog log,
-            int subId) {
-        return new TetheringConfiguration(ctx, log, subId);
-    }
-}
diff --git a/services/core/java/com/android/server/location/GnssNetworkConnectivityHandler.java b/services/core/java/com/android/server/location/GnssNetworkConnectivityHandler.java
index 2e72fbd..93227bd 100644
--- a/services/core/java/com/android/server/location/GnssNetworkConnectivityHandler.java
+++ b/services/core/java/com/android/server/location/GnssNetworkConnectivityHandler.java
@@ -321,7 +321,11 @@
 
     private void handleUpdateNetworkState(Network network, boolean isConnected,
             NetworkCapabilities capabilities) {
-        boolean networkAvailable = isConnected && TelephonyManager.getDefault().getDataEnabled();
+        boolean networkAvailable = false;
+        TelephonyManager telephonyManager = mContext.getSystemService(TelephonyManager.class);
+        if (telephonyManager != null) {
+            networkAvailable = isConnected && telephonyManager.getDataEnabled();
+        }
         NetworkAttributes networkAttributes = updateTrackedNetworksState(isConnected, network,
                 capabilities);
         String apn = networkAttributes.mApn;
diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
index d3346cd..d610561 100644
--- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
@@ -1509,6 +1509,11 @@
         latch.await(5, TimeUnit.SECONDS);
     }
 
+    @VisibleForTesting
+    Handler getHandlerForTesting() {
+        return mHandler;
+    }
+
     /**
      * Update mobile policies with data cycle information from {@link CarrierConfigManager}
      * if necessary.
diff --git a/services/core/java/com/android/server/net/NetworkStatsService.java b/services/core/java/com/android/server/net/NetworkStatsService.java
index 41806ca..e473c96 100644
--- a/services/core/java/com/android/server/net/NetworkStatsService.java
+++ b/services/core/java/com/android/server/net/NetworkStatsService.java
@@ -138,7 +138,6 @@
 import com.android.internal.util.IndentingPrintWriter;
 import com.android.server.EventLogTags;
 import com.android.server.LocalServices;
-import com.android.server.connectivity.Tethering;
 
 import java.io.File;
 import java.io.FileDescriptor;
@@ -337,7 +336,7 @@
                 powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
 
         NetworkStatsService service = new NetworkStatsService(context, networkManager, alarmManager,
-                wakeLock, getDefaultClock(), TelephonyManager.getDefault(),
+                wakeLock, getDefaultClock(), context.getSystemService(TelephonyManager.class),
                 new DefaultNetworkStatsSettings(context), new NetworkStatsFactory(),
                 new NetworkStatsObservers(), getDefaultSystemDir(), getDefaultBaseDir());
         service.registerLocalService();
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index 0d9dcff..faac78d 100755
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -7234,7 +7234,7 @@
     }
 
     private void listenForCallState() {
-        TelephonyManager.from(getContext()).listen(new PhoneStateListener() {
+        getContext().getSystemService(TelephonyManager.class).listen(new PhoneStateListener() {
             @Override
             public void onCallStateChanged(int state, String incomingNumber) {
                 if (mCallState == state) return;
diff --git a/services/core/java/com/android/server/notification/SnoozeHelper.java b/services/core/java/com/android/server/notification/SnoozeHelper.java
index abc9841..fbb6d6a 100644
--- a/services/core/java/com/android/server/notification/SnoozeHelper.java
+++ b/services/core/java/com/android/server/notification/SnoozeHelper.java
@@ -231,9 +231,6 @@
             return;
         }
         NotificationRecord existing = pkgRecords.get(record.getKey());
-        if (existing != null && existing.isCanceled) {
-            return;
-        }
         pkgRecords.put(record.getKey(), record);
     }
 
diff --git a/services/core/java/com/android/server/pm/ApexManager.java b/services/core/java/com/android/server/pm/ApexManager.java
index a0c00f8..12e8069 100644
--- a/services/core/java/com/android/server/pm/ApexManager.java
+++ b/services/core/java/com/android/server/pm/ApexManager.java
@@ -11,7 +11,7 @@
  * 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.s
+ * limitations under the License.
  */
 
 package com.android.server.pm;
@@ -29,17 +29,18 @@
 import android.content.IntentFilter;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageInfo;
+import android.content.pm.PackageInstaller;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageParser;
-import android.content.pm.PackageParser.PackageParserException;
+import android.os.Environment;
 import android.os.RemoteException;
 import android.os.ServiceManager;
-import android.os.ServiceManager.ServiceNotFoundException;
 import android.sysprop.ApexProperties;
-import android.util.ArrayMap;
 import android.util.Slog;
 
 import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.os.BackgroundThread;
 import com.android.internal.util.IndentingPrintWriter;
 
 import java.io.File;
@@ -47,6 +48,7 @@
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
@@ -56,118 +58,52 @@
  * ApexManager class handles communications with the apex service to perform operation and queries,
  * as well as providing caching to avoid unnecessary calls to the service.
  */
-class ApexManager {
-    static final String TAG = "ApexManager";
-    private final IApexService mApexService;
-    private final Context mContext;
-    private final Object mLock = new Object();
-    /**
-     * A map from {@code APEX packageName} to the {@Link PackageInfo} generated from the {@code
-     * AndroidManifest.xml}
-     *
-     * <p>Note that key of this map is {@code packageName} field of the corresponding {@code
-     * AndroidManifest.xml}.
-      */
-    @GuardedBy("mLock")
-    private List<PackageInfo> mAllPackagesCache;
-    /**
-     * A map from {@code apexName} to the {@Link PackageInfo} generated from the {@code
-     * AndroidManifest.xml}.
-     *
-     * <p>Note that key of this map is {@code apexName} field which corresponds to the {@code name}
-     * field of {@code apex_manifest.json}.
-     */
-    // TODO(b/132324953): remove.
-    @GuardedBy("mLock")
-    private ArrayMap<String, PackageInfo> mApexNameToPackageInfoCache;
+abstract class ApexManager {
 
-
-    ApexManager(Context context) {
-        mContext = context;
-        if (!isApexSupported()) {
-            mApexService = null;
-            return;
-        }
-        try {
-            mApexService = IApexService.Stub.asInterface(
-                ServiceManager.getServiceOrThrow("apexservice"));
-        } catch (ServiceNotFoundException e) {
-            throw new IllegalStateException("Required service apexservice not available");
-        }
-    }
+    private static final String TAG = "ApexManager";
 
     static final int MATCH_ACTIVE_PACKAGE = 1 << 0;
     static final int MATCH_FACTORY_PACKAGE = 1 << 1;
-    @IntDef(
-            flag = true,
-            prefix = { "MATCH_"},
-            value = {MATCH_ACTIVE_PACKAGE, MATCH_FACTORY_PACKAGE})
-    @Retention(RetentionPolicy.SOURCE)
-    @interface PackageInfoFlags{}
 
-    void systemReady() {
-        if (!isApexSupported()) return;
-        mContext.registerReceiver(new BroadcastReceiver() {
-            @Override
-            public void onReceive(Context context, Intent intent) {
-                onBootCompleted();
-                mContext.unregisterReceiver(this);
-            }
-        }, new IntentFilter(Intent.ACTION_BOOT_COMPLETED));
-    }
-
-    private void populateAllPackagesCacheIfNeeded() {
-        synchronized (mLock) {
-            if (mAllPackagesCache != null) {
-                return;
-            }
-            mApexNameToPackageInfoCache = new ArrayMap<>();
+    /**
+     * Returns an instance of either {@link ApexManagerImpl} or {@link ApexManagerFlattenedApex}
+     * depending on whether this device supports APEX, i.e. {@link ApexProperties#updatable()}
+     * evaluates to {@code true}.
+     */
+    static ApexManager create(Context systemContext) {
+        if (ApexProperties.updatable().orElse(false)) {
             try {
-                mAllPackagesCache = new ArrayList<>();
-                HashSet<String> activePackagesSet = new HashSet<>();
-                HashSet<String> factoryPackagesSet = new HashSet<>();
-                final ApexInfo[] allPkgs = mApexService.getAllPackages();
-                for (ApexInfo ai : allPkgs) {
-                    // If the device is using flattened APEX, don't report any APEX
-                    // packages since they won't be managed or updated by PackageManager.
-                    if ((new File(ai.modulePath)).isDirectory()) {
-                        break;
-                    }
-                    try {
-                        final PackageInfo pkg = PackageParser.generatePackageInfoFromApex(
-                                ai, PackageManager.GET_META_DATA
-                                        | PackageManager.GET_SIGNING_CERTIFICATES);
-                        mAllPackagesCache.add(pkg);
-                        if (ai.isActive) {
-                            if (activePackagesSet.contains(pkg.packageName)) {
-                                throw new IllegalStateException(
-                                        "Two active packages have the same name: "
-                                                + pkg.packageName);
-                            }
-                            activePackagesSet.add(pkg.packageName);
-                            // TODO(b/132324953): remove.
-                            mApexNameToPackageInfoCache.put(ai.moduleName, pkg);
-                        }
-                        if (ai.isFactory) {
-                            if (factoryPackagesSet.contains(pkg.packageName)) {
-                                throw new IllegalStateException(
-                                        "Two factory packages have the same name: "
-                                                + pkg.packageName);
-                            }
-                            factoryPackagesSet.add(pkg.packageName);
-                        }
-                    } catch (PackageParserException pe) {
-                        throw new IllegalStateException("Unable to parse: " + ai, pe);
-                    }
-                }
-            } catch (RemoteException re) {
-                Slog.e(TAG, "Unable to retrieve packages from apexservice: " + re.toString());
-                throw new RuntimeException(re);
+                return new ApexManagerImpl(systemContext, IApexService.Stub.asInterface(
+                        ServiceManager.getServiceOrThrow("apexservice")));
+            } catch (ServiceManager.ServiceNotFoundException e) {
+                throw new IllegalStateException("Required service apexservice not available");
             }
+        } else {
+            return new ApexManagerFlattenedApex();
         }
     }
 
     /**
+     * Minimal information about APEX mount points and the original APEX package they refer to.
+     */
+    static class ActiveApexInfo {
+        public final File apexDirectory;
+        public final File preinstalledApexPath;
+
+        private ActiveApexInfo(File apexDirectory, File preinstalledApexPath) {
+            this.apexDirectory = apexDirectory;
+            this.preinstalledApexPath = preinstalledApexPath;
+        }
+    }
+
+    /**
+     * Returns {@link ActiveApexInfo} records relative to all active APEX packages.
+     */
+    abstract List<ActiveApexInfo> getActiveApexInfos();
+
+    abstract void systemReady();
+
+    /**
      * Retrieves information about an APEX package.
      *
      * @param packageName the package name to look for. Note that this is the package name reported
@@ -179,35 +115,8 @@
      * @return a PackageInfo object with the information about the package, or null if the package
      *         is not found.
      */
-    @Nullable PackageInfo getPackageInfo(String packageName, @PackageInfoFlags int flags) {
-        if (!isApexSupported()) return null;
-        populateAllPackagesCacheIfNeeded();
-        boolean matchActive = (flags & MATCH_ACTIVE_PACKAGE) != 0;
-        boolean matchFactory = (flags & MATCH_FACTORY_PACKAGE) != 0;
-        for (PackageInfo packageInfo: mAllPackagesCache) {
-            if (!packageInfo.packageName.equals(packageName)) {
-                continue;
-            }
-            if ((!matchActive || isActive(packageInfo))
-                    && (!matchFactory || isFactory(packageInfo))) {
-                return packageInfo;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Returns a {@link PackageInfo} for an active APEX package keyed by it's {@code apexName}.
-     *
-     * @deprecated this API will soon be deleted, please don't depend on it.
-     */
-    // TODO(b/132324953): delete.
-    @Deprecated
-    @Nullable PackageInfo getPackageInfoForApexName(String apexName) {
-        if (!isApexSupported()) return null;
-        populateAllPackagesCacheIfNeeded();
-        return mApexNameToPackageInfoCache.get(apexName);
-    }
+    @Nullable
+    abstract PackageInfo getPackageInfo(String packageName, @PackageInfoFlags int flags);
 
     /**
      * Retrieves information about all active APEX packages.
@@ -215,14 +124,7 @@
      * @return a List of PackageInfo object, each one containing information about a different
      *         active package.
      */
-    List<PackageInfo> getActivePackages() {
-        if (!isApexSupported()) return Collections.emptyList();
-        populateAllPackagesCacheIfNeeded();
-        return mAllPackagesCache
-                .stream()
-                .filter(item -> isActive(item))
-                .collect(Collectors.toList());
-    }
+    abstract List<PackageInfo> getActivePackages();
 
     /**
      * Retrieves information about all active pre-installed APEX packages.
@@ -230,14 +132,7 @@
      * @return a List of PackageInfo object, each one containing information about a different
      *         active pre-installed package.
      */
-    List<PackageInfo> getFactoryPackages() {
-        if (!isApexSupported()) return Collections.emptyList();
-        populateAllPackagesCacheIfNeeded();
-        return mAllPackagesCache
-                .stream()
-                .filter(item -> isFactory(item))
-                .collect(Collectors.toList());
-    }
+    abstract List<PackageInfo> getFactoryPackages();
 
     /**
      * Retrieves information about all inactive APEX packages.
@@ -245,14 +140,7 @@
      * @return a List of PackageInfo object, each one containing information about a different
      *         inactive package.
      */
-    List<PackageInfo> getInactivePackages() {
-        if (!isApexSupported()) return Collections.emptyList();
-        populateAllPackagesCacheIfNeeded();
-        return mAllPackagesCache
-                .stream()
-                .filter(item -> !isActive(item))
-                .collect(Collectors.toList());
-    }
+    abstract List<PackageInfo> getInactivePackages();
 
     /**
      * Checks if {@code packageName} is an apex package.
@@ -260,16 +148,7 @@
      * @param packageName package to check.
      * @return {@code true} if {@code packageName} is an apex package.
      */
-    boolean isApexPackage(String packageName) {
-        if (!isApexSupported()) return false;
-        populateAllPackagesCacheIfNeeded();
-        for (PackageInfo packageInfo : mAllPackagesCache) {
-            if (packageInfo.packageName.equals(packageName)) {
-                return true;
-            }
-        }
-        return false;
-    }
+    abstract boolean isApexPackage(String packageName);
 
     /**
      * Retrieves information about an apexd staged session i.e. the internal state used by apexd to
@@ -278,19 +157,8 @@
      * @param sessionId the identifier of the session.
      * @return an ApexSessionInfo object, or null if the session is not known.
      */
-    @Nullable ApexSessionInfo getStagedSessionInfo(int sessionId) {
-        if (!isApexSupported()) return null;
-        try {
-            ApexSessionInfo apexSessionInfo = mApexService.getStagedSessionInfo(sessionId);
-            if (apexSessionInfo.isUnknown) {
-                return null;
-            }
-            return apexSessionInfo;
-        } catch (RemoteException re) {
-            Slog.e(TAG, "Unable to contact apexservice", re);
-            throw new RuntimeException(re);
-        }
-    }
+    @Nullable
+    abstract ApexSessionInfo getStagedSessionInfo(int sessionId);
 
     /**
      * Submit a staged session to apex service. This causes the apex service to perform some initial
@@ -302,47 +170,19 @@
      * @param childSessionIds if {@code sessionId} is a multi-package session, this should contain
      *                        an array of identifiers of all the child sessions. Otherwise it should
      *                        be an empty array.
-     * @param apexInfoList this is an output parameter, which needs to be initialized by tha caller
-     *                     and will be filled with a list of {@link ApexInfo} objects, each of which
-     *                     contains metadata about one of the packages being submitted as part of
-     *                     the session.
-     * @return whether the submission of the session was successful.
+     * @throws PackageManagerException if call to apexd fails
      */
-    boolean submitStagedSession(
-            int sessionId, @NonNull int[] childSessionIds, @NonNull ApexInfoList apexInfoList) {
-        if (!isApexSupported()) return false;
-        try {
-            mApexService.submitStagedSession(sessionId, childSessionIds, apexInfoList);
-            return true;
-        } catch (RemoteException re) {
-            Slog.e(TAG, "Unable to contact apexservice", re);
-            throw new RuntimeException(re);
-        } catch (Exception e) {
-            Slog.e(TAG, "apexd verification failed", e);
-            return false;
-        }
-    }
+    abstract ApexInfoList submitStagedSession(int sessionId, @NonNull int[] childSessionIds)
+            throws PackageManagerException;
 
     /**
      * Mark a staged session previously submitted using {@code submitStagedSession} as ready to be
      * applied at next reboot.
      *
      * @param sessionId the identifier of the {@link PackageInstallerSession} being marked as ready.
-     * @return true upon success, false if the session is unknown.
+     * @throws PackageManagerException if call to apexd fails
      */
-    boolean markStagedSessionReady(int sessionId) {
-        if (!isApexSupported()) return false;
-        try {
-            mApexService.markStagedSessionReady(sessionId);
-            return true;
-        } catch (RemoteException re) {
-            Slog.e(TAG, "Unable to contact apexservice", re);
-            throw new RuntimeException(re);
-        } catch (Exception e) {
-            Slog.e(TAG, "Failed to mark session " + sessionId + " ready", e);
-            return false;
-        }
-    }
+    abstract void markStagedSessionReady(int sessionId) throws PackageManagerException;
 
     /**
      * Marks a staged session as successful.
@@ -352,44 +192,21 @@
      * @param sessionId the identifier of the {@link PackageInstallerSession} being marked as
      *                  successful.
      */
-    void markStagedSessionSuccessful(int sessionId) {
-        if (!isApexSupported()) return;
-        try {
-            mApexService.markStagedSessionSuccessful(sessionId);
-        } catch (RemoteException re) {
-            Slog.e(TAG, "Unable to contact apexservice", re);
-            throw new RuntimeException(re);
-        } catch (Exception e) {
-            // It is fine to just log an exception in this case. APEXd will be able to recover in
-            // case markStagedSessionSuccessful fails.
-            Slog.e(TAG, "Failed to mark session " + sessionId + " as successful", e);
-        }
-    }
+    abstract void markStagedSessionSuccessful(int sessionId);
 
     /**
      * Whether the current device supports the management of APEX packages.
      *
      * @return true if APEX packages can be managed on this device, false otherwise.
      */
-    boolean isApexSupported() {
-        return ApexProperties.updatable().orElse(false);
-    }
+    abstract boolean isApexSupported();
 
     /**
      * Abandons the (only) active session previously submitted.
      *
      * @return {@code true} upon success, {@code false} if any remote exception occurs
      */
-    boolean abortActiveSession() {
-        if (!isApexSupported()) return false;
-        try {
-            mApexService.abortActiveSession();
-            return true;
-        } catch (RemoteException re) {
-            Slog.e(TAG, "Unable to contact apexservice", re);
-            return false;
-        }
-    }
+    abstract boolean abortActiveSession();
 
     /**
      * Uninstalls given {@code apexPackage}.
@@ -399,64 +216,7 @@
      * @param apexPackagePath package to uninstall.
      * @return {@code true} upon successful uninstall, {@code false} otherwise.
      */
-    boolean uninstallApex(String apexPackagePath) {
-        if (!isApexSupported()) return false;
-        try {
-            mApexService.unstagePackages(Collections.singletonList(apexPackagePath));
-            return true;
-        } catch (Exception e) {
-            return false;
-        }
-    }
-
-    /**
-     * Whether an APEX package is active or not.
-     *
-     * @param packageInfo the package to check
-     * @return {@code true} if this package is active, {@code false} otherwise.
-     */
-    private static boolean isActive(PackageInfo packageInfo) {
-        return (packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_INSTALLED) != 0;
-    }
-
-    /**
-     * Whether the APEX package is pre-installed or not.
-     *
-     * @param packageInfo the package to check
-     * @return {@code true} if this package is pre-installed, {@code false} otherwise.
-     */
-    private static boolean isFactory(PackageInfo packageInfo) {
-        return (packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
-    }
-
-    /**
-     * Dump information about the packages contained in a particular cache
-     * @param packagesCache the cache to print information about.
-     * @param packageName a {@link String} containing a package name, or {@code null}. If set, only
-     *                    information about that specific package will be dumped.
-     * @param ipw the {@link IndentingPrintWriter} object to send information to.
-     */
-    void dumpFromPackagesCache(
-            List<PackageInfo> packagesCache,
-            @Nullable String packageName,
-            IndentingPrintWriter ipw) {
-        ipw.println();
-        ipw.increaseIndent();
-        for (PackageInfo pi : packagesCache) {
-            if (packageName != null && !packageName.equals(pi.packageName)) {
-                continue;
-            }
-            ipw.println(pi.packageName);
-            ipw.increaseIndent();
-            ipw.println("Version: " + pi.versionCode);
-            ipw.println("Path: " + pi.applicationInfo.sourceDir);
-            ipw.println("IsActive: " + isActive(pi));
-            ipw.println("IsFactory: " + isFactory(pi));
-            ipw.decreaseIndent();
-        }
-        ipw.decreaseIndent();
-        ipw.println();
-    }
+    abstract boolean uninstallApex(String apexPackagePath);
 
     /**
      * Dumps various state information to the provided {@link PrintWriter} object.
@@ -465,54 +225,471 @@
      * @param packageName a {@link String} containing a package name, or {@code null}. If set, only
      *                    information about that specific package will be dumped.
      */
-    void dump(PrintWriter pw, @Nullable String packageName) {
-        if (!isApexSupported()) return;
-        final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, "  ", 120);
-        try {
-            populateAllPackagesCacheIfNeeded();
-            ipw.println();
-            ipw.println("Active APEX packages:");
-            dumpFromPackagesCache(getActivePackages(), packageName, ipw);
-            ipw.println("Inactive APEX packages:");
-            dumpFromPackagesCache(getInactivePackages(), packageName, ipw);
-            ipw.println("Factory APEX packages:");
-            dumpFromPackagesCache(getFactoryPackages(), packageName, ipw);
-            ipw.increaseIndent();
-            ipw.println("APEX session state:");
-            ipw.increaseIndent();
-            final ApexSessionInfo[] sessions = mApexService.getSessions();
-            for (ApexSessionInfo si : sessions) {
-                ipw.println("Session ID: " + si.sessionId);
-                ipw.increaseIndent();
-                if (si.isUnknown) {
-                    ipw.println("State: UNKNOWN");
-                } else if (si.isVerified) {
-                    ipw.println("State: VERIFIED");
-                } else if (si.isStaged) {
-                    ipw.println("State: STAGED");
-                } else if (si.isActivated) {
-                    ipw.println("State: ACTIVATED");
-                } else if (si.isActivationFailed) {
-                    ipw.println("State: ACTIVATION FAILED");
-                } else if (si.isSuccess) {
-                    ipw.println("State: SUCCESS");
-                } else if (si.isRollbackInProgress) {
-                    ipw.println("State: ROLLBACK IN PROGRESS");
-                } else if (si.isRolledBack) {
-                    ipw.println("State: ROLLED BACK");
-                } else if (si.isRollbackFailed) {
-                    ipw.println("State: ROLLBACK FAILED");
+    abstract void dump(PrintWriter pw, @Nullable String packageName);
+
+    @IntDef(
+            flag = true,
+            prefix = { "MATCH_"},
+            value = {MATCH_ACTIVE_PACKAGE, MATCH_FACTORY_PACKAGE})
+    @Retention(RetentionPolicy.SOURCE)
+    @interface PackageInfoFlags{}
+
+    /**
+     * An implementation of {@link ApexManager} that should be used in case device supports updating
+     * APEX packages.
+     */
+    @VisibleForTesting
+    static class ApexManagerImpl extends ApexManager {
+        private final IApexService mApexService;
+        private final Context mContext;
+        private final Object mLock = new Object();
+        /**
+         * A map from {@code APEX packageName} to the {@Link PackageInfo} generated from the {@code
+         * AndroidManifest.xml}
+         *
+         * <p>Note that key of this map is {@code packageName} field of the corresponding {@code
+         * AndroidManifest.xml}.
+          */
+        @GuardedBy("mLock")
+        private List<PackageInfo> mAllPackagesCache;
+
+        ApexManagerImpl(Context context, IApexService apexService) {
+            mContext = context;
+            mApexService = apexService;
+        }
+
+        /**
+         * Whether an APEX package is active or not.
+         *
+         * @param packageInfo the package to check
+         * @return {@code true} if this package is active, {@code false} otherwise.
+         */
+        private static boolean isActive(PackageInfo packageInfo) {
+            return (packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_INSTALLED) != 0;
+        }
+
+        /**
+         * Whether the APEX package is pre-installed or not.
+         *
+         * @param packageInfo the package to check
+         * @return {@code true} if this package is pre-installed, {@code false} otherwise.
+         */
+        private static boolean isFactory(PackageInfo packageInfo) {
+            return (packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
+        }
+
+        @Override
+        List<ActiveApexInfo> getActiveApexInfos() {
+            try {
+                return Arrays.stream(mApexService.getActivePackages())
+                        .map(apexInfo -> new ActiveApexInfo(
+                                new File(
+                                Environment.getApexDirectory() + File.separator
+                                        + apexInfo.moduleName),
+                                new File(apexInfo.modulePath))).collect(
+                                Collectors.toList());
+            } catch (RemoteException e) {
+                Slog.e(TAG, "Unable to retrieve packages from apexservice", e);
+            }
+            return Collections.emptyList();
+        }
+
+        @Override
+        void systemReady() {
+            mContext.registerReceiver(new BroadcastReceiver() {
+                @Override
+                public void onReceive(Context context, Intent intent) {
+                    // Post populateAllPackagesCacheIfNeeded to a background thread, since it's
+                    // expensive to run it in broadcast handler thread.
+                    BackgroundThread.getHandler().post(() -> populateAllPackagesCacheIfNeeded());
+                    mContext.unregisterReceiver(this);
                 }
+            }, new IntentFilter(Intent.ACTION_BOOT_COMPLETED));
+        }
+
+        private void populateAllPackagesCacheIfNeeded() {
+            synchronized (mLock) {
+                if (mAllPackagesCache != null) {
+                    return;
+                }
+                try {
+                    mAllPackagesCache = new ArrayList<>();
+                    HashSet<String> activePackagesSet = new HashSet<>();
+                    HashSet<String> factoryPackagesSet = new HashSet<>();
+                    final ApexInfo[] allPkgs = mApexService.getAllPackages();
+                    for (ApexInfo ai : allPkgs) {
+                        // If the device is using flattened APEX, don't report any APEX
+                        // packages since they won't be managed or updated by PackageManager.
+                        if ((new File(ai.modulePath)).isDirectory()) {
+                            break;
+                        }
+                        int flags = PackageManager.GET_META_DATA
+                                | PackageManager.GET_SIGNING_CERTIFICATES
+                                | PackageManager.GET_SIGNATURES;
+                        PackageParser.Package pkg;
+                        try {
+                            File apexFile = new File(ai.modulePath);
+                            PackageParser pp = new PackageParser();
+                            pkg = pp.parsePackage(apexFile, flags, false);
+                            PackageParser.collectCertificates(pkg, false);
+                        } catch (PackageParser.PackageParserException pe) {
+                            throw new IllegalStateException("Unable to parse: " + ai, pe);
+                        }
+
+                        final PackageInfo packageInfo =
+                                PackageParser.generatePackageInfo(pkg, ai, flags);
+                        mAllPackagesCache.add(packageInfo);
+                        if (ai.isActive) {
+                            if (activePackagesSet.contains(packageInfo.packageName)) {
+                                throw new IllegalStateException(
+                                        "Two active packages have the same name: "
+                                                + packageInfo.packageName);
+                            }
+                            activePackagesSet.add(packageInfo.packageName);
+                        }
+                        if (ai.isFactory) {
+                            if (factoryPackagesSet.contains(packageInfo.packageName)) {
+                                throw new IllegalStateException(
+                                        "Two factory packages have the same name: "
+                                                + packageInfo.packageName);
+                            }
+                            factoryPackagesSet.add(packageInfo.packageName);
+                        }
+
+                    }
+                } catch (RemoteException re) {
+                    Slog.e(TAG, "Unable to retrieve packages from apexservice: " + re.toString());
+                    throw new RuntimeException(re);
+                }
+            }
+        }
+
+        @Override
+        @Nullable PackageInfo getPackageInfo(String packageName, @PackageInfoFlags int flags) {
+            populateAllPackagesCacheIfNeeded();
+            boolean matchActive = (flags & MATCH_ACTIVE_PACKAGE) != 0;
+            boolean matchFactory = (flags & MATCH_FACTORY_PACKAGE) != 0;
+            for (PackageInfo packageInfo: mAllPackagesCache) {
+                if (!packageInfo.packageName.equals(packageName)) {
+                    continue;
+                }
+                if ((matchActive && isActive(packageInfo))
+                        || (matchFactory && isFactory(packageInfo))) {
+                    return packageInfo;
+                }
+            }
+            return null;
+        }
+
+        @Override
+        List<PackageInfo> getActivePackages() {
+            populateAllPackagesCacheIfNeeded();
+            return mAllPackagesCache
+                    .stream()
+                    .filter(item -> isActive(item))
+                    .collect(Collectors.toList());
+        }
+
+        @Override
+        List<PackageInfo> getFactoryPackages() {
+            populateAllPackagesCacheIfNeeded();
+            return mAllPackagesCache
+                    .stream()
+                    .filter(item -> isFactory(item))
+                    .collect(Collectors.toList());
+        }
+
+        @Override
+        List<PackageInfo> getInactivePackages() {
+            populateAllPackagesCacheIfNeeded();
+            return mAllPackagesCache
+                    .stream()
+                    .filter(item -> !isActive(item))
+                    .collect(Collectors.toList());
+        }
+
+        @Override
+        boolean isApexPackage(String packageName) {
+            if (!isApexSupported()) return false;
+            populateAllPackagesCacheIfNeeded();
+            for (PackageInfo packageInfo : mAllPackagesCache) {
+                if (packageInfo.packageName.equals(packageName)) {
+                    return true;
+                }
+            }
+            return false;
+        }
+
+        @Override
+        @Nullable ApexSessionInfo getStagedSessionInfo(int sessionId) {
+            try {
+                ApexSessionInfo apexSessionInfo = mApexService.getStagedSessionInfo(sessionId);
+                if (apexSessionInfo.isUnknown) {
+                    return null;
+                }
+                return apexSessionInfo;
+            } catch (RemoteException re) {
+                Slog.e(TAG, "Unable to contact apexservice", re);
+                throw new RuntimeException(re);
+            }
+        }
+
+        @Override
+        ApexInfoList submitStagedSession(int sessionId, @NonNull int[] childSessionIds)
+                throws PackageManagerException {
+            try {
+                final ApexInfoList apexInfoList = new ApexInfoList();
+                mApexService.submitStagedSession(sessionId, childSessionIds, apexInfoList);
+                return apexInfoList;
+            } catch (RemoteException re) {
+                Slog.e(TAG, "Unable to contact apexservice", re);
+                throw new RuntimeException(re);
+            } catch (Exception e) {
+                throw new PackageManagerException(
+                        PackageInstaller.SessionInfo.STAGED_SESSION_VERIFICATION_FAILED,
+                        "apexd verification failed : " + e.getMessage());
+            }
+        }
+
+        @Override
+        void markStagedSessionReady(int sessionId) throws PackageManagerException {
+            try {
+                mApexService.markStagedSessionReady(sessionId);
+            } catch (RemoteException re) {
+                Slog.e(TAG, "Unable to contact apexservice", re);
+                throw new RuntimeException(re);
+            } catch (Exception e) {
+                throw new PackageManagerException(
+                        PackageInstaller.SessionInfo.STAGED_SESSION_VERIFICATION_FAILED,
+                        "Failed to mark apexd session as ready : " + e.getMessage());
+            }
+        }
+
+        @Override
+        void markStagedSessionSuccessful(int sessionId) {
+            try {
+                mApexService.markStagedSessionSuccessful(sessionId);
+            } catch (RemoteException re) {
+                Slog.e(TAG, "Unable to contact apexservice", re);
+                throw new RuntimeException(re);
+            } catch (Exception e) {
+                // It is fine to just log an exception in this case. APEXd will be able to recover
+                // in case markStagedSessionSuccessful fails.
+                Slog.e(TAG, "Failed to mark session " + sessionId + " as successful", e);
+            }
+        }
+
+        @Override
+        boolean isApexSupported() {
+            return true;
+        }
+
+        @Override
+        boolean abortActiveSession() {
+            try {
+                mApexService.abortActiveSession();
+                return true;
+            } catch (RemoteException re) {
+                Slog.e(TAG, "Unable to contact apexservice", re);
+                return false;
+            }
+        }
+
+        @Override
+        boolean uninstallApex(String apexPackagePath) {
+            try {
+                mApexService.unstagePackages(Collections.singletonList(apexPackagePath));
+                return true;
+            } catch (Exception e) {
+                return false;
+            }
+        }
+
+        /**
+         * Dump information about the packages contained in a particular cache
+         * @param packagesCache the cache to print information about.
+         * @param packageName a {@link String} containing a package name, or {@code null}. If set,
+         *                    only information about that specific package will be dumped.
+         * @param ipw the {@link IndentingPrintWriter} object to send information to.
+         */
+        void dumpFromPackagesCache(
+                List<PackageInfo> packagesCache,
+                @Nullable String packageName,
+                IndentingPrintWriter ipw) {
+            ipw.println();
+            ipw.increaseIndent();
+            for (PackageInfo pi : packagesCache) {
+                if (packageName != null && !packageName.equals(pi.packageName)) {
+                    continue;
+                }
+                ipw.println(pi.packageName);
+                ipw.increaseIndent();
+                ipw.println("Version: " + pi.versionCode);
+                ipw.println("Path: " + pi.applicationInfo.sourceDir);
+                ipw.println("IsActive: " + isActive(pi));
+                ipw.println("IsFactory: " + isFactory(pi));
                 ipw.decreaseIndent();
             }
             ipw.decreaseIndent();
-        } catch (RemoteException e) {
-            ipw.println("Couldn't communicate with apexd.");
+            ipw.println();
+        }
+
+        @Override
+        void dump(PrintWriter pw, @Nullable String packageName) {
+            final IndentingPrintWriter ipw = new IndentingPrintWriter(pw, "  ", 120);
+            try {
+                populateAllPackagesCacheIfNeeded();
+                ipw.println();
+                ipw.println("Active APEX packages:");
+                dumpFromPackagesCache(getActivePackages(), packageName, ipw);
+                ipw.println("Inactive APEX packages:");
+                dumpFromPackagesCache(getInactivePackages(), packageName, ipw);
+                ipw.println("Factory APEX packages:");
+                dumpFromPackagesCache(getFactoryPackages(), packageName, ipw);
+                ipw.increaseIndent();
+                ipw.println("APEX session state:");
+                ipw.increaseIndent();
+                final ApexSessionInfo[] sessions = mApexService.getSessions();
+                for (ApexSessionInfo si : sessions) {
+                    ipw.println("Session ID: " + si.sessionId);
+                    ipw.increaseIndent();
+                    if (si.isUnknown) {
+                        ipw.println("State: UNKNOWN");
+                    } else if (si.isVerified) {
+                        ipw.println("State: VERIFIED");
+                    } else if (si.isStaged) {
+                        ipw.println("State: STAGED");
+                    } else if (si.isActivated) {
+                        ipw.println("State: ACTIVATED");
+                    } else if (si.isActivationFailed) {
+                        ipw.println("State: ACTIVATION FAILED");
+                    } else if (si.isSuccess) {
+                        ipw.println("State: SUCCESS");
+                    } else if (si.isRollbackInProgress) {
+                        ipw.println("State: ROLLBACK IN PROGRESS");
+                    } else if (si.isRolledBack) {
+                        ipw.println("State: ROLLED BACK");
+                    } else if (si.isRollbackFailed) {
+                        ipw.println("State: ROLLBACK FAILED");
+                    }
+                    ipw.decreaseIndent();
+                }
+                ipw.decreaseIndent();
+            } catch (RemoteException e) {
+                ipw.println("Couldn't communicate with apexd.");
+            }
         }
     }
 
-    public void onBootCompleted() {
-        if (!isApexSupported()) return;
-        populateAllPackagesCacheIfNeeded();
+    /**
+     * An implementation of {@link ApexManager} that should be used in case device does not support
+     * updating APEX packages.
+     */
+    private static final class ApexManagerFlattenedApex extends ApexManager {
+
+        @Override
+        List<ActiveApexInfo> getActiveApexInfos() {
+            // There is no apexd running in case of flattened apex
+            // We look up the /apex directory and identify the active APEX modules from there.
+            // As "preinstalled" path, we just report /system since in the case of flattened APEX
+            // the /apex directory is just a symlink to /system/apex.
+            List<ActiveApexInfo> result = new ArrayList<>();
+            File apexDir = Environment.getApexDirectory();
+            // In flattened configuration, init special-case the art directory and bind-mounts
+            // com.android.art.{release|debug} to com.android.art. At the time of writing, these
+            // directories are copied from the kArtApexDirNames variable in
+            // system/core/init/mount_namespace.cpp.
+            String[] skipDirs = {"com.android.art.release", "com.android.art.debug"};
+            if (apexDir.isDirectory()) {
+                File[] files = apexDir.listFiles();
+                // listFiles might be null if system server doesn't have permission to read
+                // a directory.
+                if (files != null) {
+                    for (File file : files) {
+                        if (file.isDirectory() && !file.getName().contains("@")) {
+                            for (String skipDir : skipDirs) {
+                                if (file.getName().equals(skipDir)) {
+                                    continue;
+                                }
+                            }
+                            result.add(new ActiveApexInfo(file, Environment.getRootDirectory()));
+                        }
+                    }
+                }
+            }
+            return result;
+        }
+
+        @Override
+        void systemReady() {
+            // No-op
+        }
+
+        @Override
+        PackageInfo getPackageInfo(String packageName, int flags) {
+            return null;
+        }
+
+        @Override
+        List<PackageInfo> getActivePackages() {
+            return Collections.emptyList();
+        }
+
+        @Override
+        List<PackageInfo> getFactoryPackages() {
+            return Collections.emptyList();
+        }
+
+        @Override
+        List<PackageInfo> getInactivePackages() {
+            return Collections.emptyList();
+        }
+
+        @Override
+        boolean isApexPackage(String packageName) {
+            return false;
+        }
+
+        @Override
+        ApexSessionInfo getStagedSessionInfo(int sessionId) {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        ApexInfoList submitStagedSession(int sessionId, int[] childSessionIds)
+                throws PackageManagerException {
+            throw new PackageManagerException(PackageManager.INSTALL_FAILED_INTERNAL_ERROR,
+                    "Device doesn't support updating APEX");
+        }
+
+        @Override
+        void markStagedSessionReady(int sessionId) {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        void markStagedSessionSuccessful(int sessionId) {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        boolean isApexSupported() {
+            return false;
+        }
+
+        @Override
+        boolean abortActiveSession() {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        boolean uninstallApex(String apexPackagePath) {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        void dump(PrintWriter pw, String packageName) {
+            // No-op
+        }
     }
 }
diff --git a/services/core/java/com/android/server/pm/ComponentResolver.java b/services/core/java/com/android/server/pm/ComponentResolver.java
index 8facce1..dbe8367 100644
--- a/services/core/java/com/android/server/pm/ComponentResolver.java
+++ b/services/core/java/com/android/server/pm/ComponentResolver.java
@@ -49,6 +49,7 @@
 import android.util.Slog;
 
 import com.android.internal.annotations.GuardedBy;
+import com.android.internal.util.ArrayUtils;
 import com.android.server.IntentResolver;
 
 import java.io.PrintWriter;
@@ -375,8 +376,11 @@
             addProvidersLocked(pkg, chatty);
             addServicesLocked(pkg, chatty);
         }
-        final String setupWizardPackage = sPackageManagerInternal.getKnownPackageName(
-                PACKAGE_SETUP_WIZARD, UserHandle.USER_SYSTEM);
+        // expect single setupwizard package
+        final String setupWizardPackage = ArrayUtils.firstOrNull(
+                sPackageManagerInternal.getKnownPackageNames(
+                        PACKAGE_SETUP_WIZARD, UserHandle.USER_SYSTEM));
+
         for (int i = newIntents.size() - 1; i >= 0; --i) {
             final PackageParser.ActivityIntentInfo intentInfo = newIntents.get(i);
             final PackageParser.Package disabledPkg = sPackageManagerInternal
@@ -410,8 +414,11 @@
         final List<ActivityIntentInfo> protectedFilters = mProtectedFilters;
         mProtectedFilters = null;
 
-        final String setupWizardPackage = sPackageManagerInternal.getKnownPackageName(
-                PACKAGE_SETUP_WIZARD, UserHandle.USER_SYSTEM);
+        // expect single setupwizard package
+        final String setupWizardPackage = ArrayUtils.firstOrNull(
+                sPackageManagerInternal.getKnownPackageNames(
+                        PACKAGE_SETUP_WIZARD, UserHandle.USER_SYSTEM));
+
         if (DEBUG_FILTERS && setupWizardPackage == null) {
             Slog.i(TAG, "No setup wizard;"
                     + " All protected intents capped to priority 0");
diff --git a/services/core/java/com/android/server/pm/InstructionSets.java b/services/core/java/com/android/server/pm/InstructionSets.java
index f326f1d..ec48713 100644
--- a/services/core/java/com/android/server/pm/InstructionSets.java
+++ b/services/core/java/com/android/server/pm/InstructionSets.java
@@ -22,11 +22,11 @@
 import android.text.TextUtils;
 import android.util.ArraySet;
 
+import dalvik.system.VMRuntime;
+
 import java.util.ArrayList;
 import java.util.List;
 
-import dalvik.system.VMRuntime;
-
 /**
  * Provides various methods for obtaining and converting of instruction sets.
  *
@@ -113,12 +113,15 @@
         return allInstructionSets;
     }
 
-    public static String getPrimaryInstructionSet(ApplicationInfo info) {
-        if (info.primaryCpuAbi == null) {
+    /**
+     * Calculates the primary instruction set based on the computed Abis of a given package.
+     */
+    public static String getPrimaryInstructionSet(PackageAbiHelper.Abis abis) {
+        if (abis.primary == null) {
             return getPreferredInstructionSet();
         }
 
-        return VMRuntime.getInstructionSet(info.primaryCpuAbi);
+        return VMRuntime.getInstructionSet(abis.primary);
     }
 
 }
diff --git a/services/core/java/com/android/server/pm/OWNERS b/services/core/java/com/android/server/pm/OWNERS
index 62ea95b..f8c173f 100644
--- a/services/core/java/com/android/server/pm/OWNERS
+++ b/services/core/java/com/android/server/pm/OWNERS
@@ -32,6 +32,9 @@
 per-file CrossProfileIntentResolver.java = omakoto@google.com, yamasani@google.com
 per-file UserManagerService.java = omakoto@google.com, yamasani@google.com
 per-file UserRestrictionsUtils.java = omakoto@google.com, rubinxu@google.com, sandness@google.com, yamasani@google.com
+per-file UserSystemPackageInstaller.java = bookatz@google.com, omakoto@google.com, yamasani@google.com
+per-file UserTypeDetails.java = bookatz@google.com, omakoto@google.com, yamasani@google.com
+per-file UserTypeFactory.java = bookatz@google.com, omakoto@google.com, yamasani@google.com
 
 # security
 per-file KeySetHandle.java = cbrubaker@google.com, nnk@google.com
diff --git a/services/core/java/com/android/server/pm/PackageAbiHelper.java b/services/core/java/com/android/server/pm/PackageAbiHelper.java
new file mode 100644
index 0000000..6f46564
--- /dev/null
+++ b/services/core/java/com/android/server/pm/PackageAbiHelper.java
@@ -0,0 +1,135 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package com.android.server.pm;
+
+import android.annotation.Nullable;
+import android.content.pm.PackageParser;
+import android.util.Pair;
+
+import com.android.internal.annotations.VisibleForTesting;
+
+import java.io.File;
+import java.util.Set;
+
+@VisibleForTesting
+interface PackageAbiHelper {
+    /**
+     * Derive and get the location of native libraries for the given package,
+     * which varies depending on where and how the package was installed.
+     */
+    NativeLibraryPaths getNativeLibraryPaths(
+            PackageParser.Package pkg, File appLib32InstallDir);
+
+    /**
+     * Calculate the abis for a bundled app. These can uniquely be determined from the contents of
+     * the system partition, i.e whether it contains 64 or 32 bit shared libraries etc. We do not
+     * validate any of this information, and instead assume that the system was built sensibly.
+     */
+    Abis getBundledAppAbis(PackageParser.Package pkg);
+
+    /**
+     * Derive the ABI of a non-system package located at {@code pkg}. This information
+     * is derived purely on the basis of the contents of {@code pkg} and {@code cpuAbiOverride}.
+     *
+     * If {@code extractLibs} is true, native libraries are extracted from the app if required.
+     */
+    Pair<Abis, NativeLibraryPaths> derivePackageAbi(
+            PackageParser.Package pkg, String cpuAbiOverride, boolean extractLibs)
+            throws PackageManagerException;
+
+    /**
+     * Calculates adjusted ABIs for a set of packages belonging to a shared user so that they all
+     * match. i.e, so that all packages can be run inside a single process if required.
+     *
+     * Optionally, callers can pass in a parsed package via {@code scannedPackage} in which case
+     * this function will either try and make the ABI for all packages in
+     * {@code packagesForUser} match {@code scannedPackage} or will update the ABI of
+     * {@code scannedPackage} to match the ABI selected for {@code packagesForUser}. This
+     * variant is used when installing or updating a package that belongs to a shared user.
+     *
+     * NOTE: We currently only match for the primary CPU abi string. Matching the secondary
+     * adds unnecessary complexity.
+     *
+     * @return the calculated primary abi that should be set for all non-specified packages
+     *         belonging to the shared user.
+     */
+    @Nullable
+    String getAdjustedAbiForSharedUser(
+            Set<PackageSetting> packagesForUser, PackageParser.Package scannedPackage);
+
+    /**
+     * The native library paths and related properties that should be set on a
+     * {@link android.content.pm.PackageParser.Package}.
+     */
+    final class NativeLibraryPaths {
+        public final String nativeLibraryRootDir;
+        public final boolean nativeLibraryRootRequiresIsa;
+        public final String nativeLibraryDir;
+        public final String secondaryNativeLibraryDir;
+
+        @VisibleForTesting
+        NativeLibraryPaths(String nativeLibraryRootDir,
+                boolean nativeLibraryRootRequiresIsa, String nativeLibraryDir,
+                String secondaryNativeLibraryDir) {
+            this.nativeLibraryRootDir = nativeLibraryRootDir;
+            this.nativeLibraryRootRequiresIsa = nativeLibraryRootRequiresIsa;
+            this.nativeLibraryDir = nativeLibraryDir;
+            this.secondaryNativeLibraryDir = secondaryNativeLibraryDir;
+        }
+
+        public void applyTo(PackageParser.Package pkg) {
+            pkg.applicationInfo.nativeLibraryRootDir = nativeLibraryRootDir;
+            pkg.applicationInfo.nativeLibraryRootRequiresIsa = nativeLibraryRootRequiresIsa;
+            pkg.applicationInfo.nativeLibraryDir = nativeLibraryDir;
+            pkg.applicationInfo.secondaryNativeLibraryDir = secondaryNativeLibraryDir;
+        }
+    }
+
+    /**
+     * The primary and secondary ABIs that should be set on a package and its package setting.
+     */
+    final class Abis {
+        public final String primary;
+        public final String secondary;
+
+        @VisibleForTesting
+        Abis(String primary, String secondary) {
+            this.primary = primary;
+            this.secondary = secondary;
+        }
+
+        Abis(PackageParser.Package pkg) {
+            this(pkg.applicationInfo.primaryCpuAbi, pkg.applicationInfo.secondaryCpuAbi);
+        }
+
+        public void applyTo(PackageParser.Package pkg) {
+            pkg.applicationInfo.primaryCpuAbi = primary;
+            pkg.applicationInfo.secondaryCpuAbi = secondary;
+        }
+        public void applyTo(PackageSetting pkgSetting) {
+            // pkgSetting might be null during rescan following uninstall of updates
+            // to a bundled app, so accommodate that possibility.  The settings in
+            // that case will be established later from the parsed package.
+            //
+            // If the settings aren't null, sync them up with what we've derived.
+            if (pkgSetting != null) {
+                pkgSetting.primaryCpuAbiString = primary;
+                pkgSetting.secondaryCpuAbiString = secondary;
+            }
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/pm/PackageAbiHelperImpl.java b/services/core/java/com/android/server/pm/PackageAbiHelperImpl.java
new file mode 100644
index 0000000..259200b
--- /dev/null
+++ b/services/core/java/com/android/server/pm/PackageAbiHelperImpl.java
@@ -0,0 +1,537 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package com.android.server.pm;
+
+import static android.content.pm.PackageManager.INSTALL_FAILED_INTERNAL_ERROR;
+import static android.content.pm.PackageParser.isApkFile;
+import static android.os.Trace.TRACE_TAG_PACKAGE_MANAGER;
+
+import static com.android.internal.content.NativeLibraryHelper.LIB64_DIR_NAME;
+import static com.android.internal.content.NativeLibraryHelper.LIB_DIR_NAME;
+import static com.android.server.pm.InstructionSets.getPreferredInstructionSet;
+import static com.android.server.pm.InstructionSets.getPrimaryInstructionSet;
+
+import android.annotation.Nullable;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageParser;
+import android.os.Build;
+import android.os.Environment;
+import android.os.FileUtils;
+import android.os.Trace;
+import android.text.TextUtils;
+import android.util.Pair;
+import android.util.Slog;
+
+import com.android.internal.content.NativeLibraryHelper;
+import com.android.internal.util.ArrayUtils;
+
+import dalvik.system.VMRuntime;
+
+import libcore.io.IoUtils;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Set;
+
+final class PackageAbiHelperImpl implements PackageAbiHelper {
+
+    private static String calculateBundledApkRoot(final String codePathString) {
+        final File codePath = new File(codePathString);
+        final File codeRoot;
+        if (FileUtils.contains(Environment.getRootDirectory(), codePath)) {
+            codeRoot = Environment.getRootDirectory();
+        } else if (FileUtils.contains(Environment.getOemDirectory(), codePath)) {
+            codeRoot = Environment.getOemDirectory();
+        } else if (FileUtils.contains(Environment.getVendorDirectory(), codePath)) {
+            codeRoot = Environment.getVendorDirectory();
+        } else if (FileUtils.contains(Environment.getOdmDirectory(), codePath)) {
+            codeRoot = Environment.getOdmDirectory();
+        } else if (FileUtils.contains(Environment.getProductDirectory(), codePath)) {
+            codeRoot = Environment.getProductDirectory();
+        } else if (FileUtils.contains(Environment.getSystemExtDirectory(), codePath)) {
+            codeRoot = Environment.getSystemExtDirectory();
+        } else if (FileUtils.contains(Environment.getOdmDirectory(), codePath)) {
+            codeRoot = Environment.getOdmDirectory();
+        } else if (FileUtils.contains(Environment.getApexDirectory(), codePath)) {
+            String fullPath = codePath.getAbsolutePath();
+            String[] parts = fullPath.split(File.separator);
+            if (parts.length > 2) {
+                codeRoot = new File(parts[1] + File.separator + parts[2]);
+            } else {
+                Slog.w(PackageManagerService.TAG, "Can't canonicalize code path " + codePath);
+                codeRoot = Environment.getApexDirectory();
+            }
+        } else {
+            // Unrecognized code path; take its top real segment as the apk root:
+            // e.g. /something/app/blah.apk => /something
+            try {
+                File f = codePath.getCanonicalFile();
+                File parent = f.getParentFile();    // non-null because codePath is a file
+                File tmp;
+                while ((tmp = parent.getParentFile()) != null) {
+                    f = parent;
+                    parent = tmp;
+                }
+                codeRoot = f;
+                Slog.w(PackageManagerService.TAG, "Unrecognized code path "
+                        + codePath + " - using " + codeRoot);
+            } catch (IOException e) {
+                // Can't canonicalize the code path -- shenanigans?
+                Slog.w(PackageManagerService.TAG, "Can't canonicalize code path " + codePath);
+                return Environment.getRootDirectory().getPath();
+            }
+        }
+        return codeRoot.getPath();
+    }
+
+    // Utility method that returns the relative package path with respect
+    // to the installation directory. Like say for /data/data/com.test-1.apk
+    // string com.test-1 is returned.
+    private static String deriveCodePathName(String codePath) {
+        if (codePath == null) {
+            return null;
+        }
+        final File codeFile = new File(codePath);
+        final String name = codeFile.getName();
+        if (codeFile.isDirectory()) {
+            return name;
+        } else if (name.endsWith(".apk") || name.endsWith(".tmp")) {
+            final int lastDot = name.lastIndexOf('.');
+            return name.substring(0, lastDot);
+        } else {
+            Slog.w(PackageManagerService.TAG, "Odd, " + codePath + " doesn't look like an APK");
+            return null;
+        }
+    }
+
+    private static void maybeThrowExceptionForMultiArchCopy(String message, int copyRet) throws
+            PackageManagerException {
+        if (copyRet < 0) {
+            if (copyRet != PackageManager.NO_NATIVE_LIBRARIES
+                    && copyRet != PackageManager.INSTALL_FAILED_NO_MATCHING_ABIS) {
+                throw new PackageManagerException(copyRet, message);
+            }
+        }
+    }
+
+    @Override
+    public NativeLibraryPaths getNativeLibraryPaths(
+            PackageParser.Package pkg, File appLib32InstallDir) {
+        return getNativeLibraryPaths(new Abis(pkg), appLib32InstallDir, pkg.codePath,
+                pkg.applicationInfo.sourceDir, pkg.applicationInfo.isSystemApp(),
+                pkg.applicationInfo.isUpdatedSystemApp());
+    }
+
+    private static NativeLibraryPaths getNativeLibraryPaths(final Abis abis,
+            final File appLib32InstallDir, final String codePath, final String sourceDir,
+            final boolean isSystemApp, final boolean isUpdatedSystemApp) {
+        final File codeFile = new File(codePath);
+        final boolean bundledApp = isSystemApp && !isUpdatedSystemApp;
+
+        final String nativeLibraryRootDir;
+        final boolean nativeLibraryRootRequiresIsa;
+        final String nativeLibraryDir;
+        final String secondaryNativeLibraryDir;
+
+        if (isApkFile(codeFile)) {
+            // Monolithic install
+            if (bundledApp) {
+                // If "/system/lib64/apkname" exists, assume that is the per-package
+                // native library directory to use; otherwise use "/system/lib/apkname".
+                final String apkRoot = calculateBundledApkRoot(sourceDir);
+                final boolean is64Bit = VMRuntime.is64BitInstructionSet(
+                        getPrimaryInstructionSet(abis));
+
+                // This is a bundled system app so choose the path based on the ABI.
+                // if it's a 64 bit abi, use lib64 otherwise use lib32. Note that this
+                // is just the default path.
+                final String apkName = deriveCodePathName(codePath);
+                final String libDir = is64Bit ? LIB64_DIR_NAME : LIB_DIR_NAME;
+                nativeLibraryRootDir = Environment.buildPath(new File(apkRoot), libDir,
+                        apkName).getAbsolutePath();
+
+                if (abis.secondary != null) {
+                    final String secondaryLibDir = is64Bit ? LIB_DIR_NAME : LIB64_DIR_NAME;
+                    secondaryNativeLibraryDir = Environment.buildPath(new File(apkRoot),
+                            secondaryLibDir, apkName).getAbsolutePath();
+                } else {
+                    secondaryNativeLibraryDir = null;
+                }
+            } else {
+                final String apkName = deriveCodePathName(codePath);
+                nativeLibraryRootDir = new File(appLib32InstallDir, apkName)
+                        .getAbsolutePath();
+                secondaryNativeLibraryDir = null;
+            }
+
+            nativeLibraryRootRequiresIsa = false;
+            nativeLibraryDir = nativeLibraryRootDir;
+        } else {
+            // Cluster install
+            nativeLibraryRootDir = new File(codeFile, LIB_DIR_NAME).getAbsolutePath();
+            nativeLibraryRootRequiresIsa = true;
+
+            nativeLibraryDir = new File(nativeLibraryRootDir,
+                    getPrimaryInstructionSet(abis)).getAbsolutePath();
+
+            if (abis.secondary != null) {
+                secondaryNativeLibraryDir = new File(nativeLibraryRootDir,
+                        VMRuntime.getInstructionSet(abis.secondary)).getAbsolutePath();
+            } else {
+                secondaryNativeLibraryDir = null;
+            }
+        }
+        return new NativeLibraryPaths(nativeLibraryRootDir, nativeLibraryRootRequiresIsa,
+                nativeLibraryDir, secondaryNativeLibraryDir);
+    }
+
+    @Override
+    public Abis getBundledAppAbis(PackageParser.Package pkg) {
+        final String apkName = deriveCodePathName(pkg.applicationInfo.getCodePath());
+
+        // If "/system/lib64/apkname" exists, assume that is the per-package
+        // native library directory to use; otherwise use "/system/lib/apkname".
+        final String apkRoot = calculateBundledApkRoot(pkg.applicationInfo.sourceDir);
+        final Abis abis = getBundledAppAbi(pkg, apkRoot, apkName);
+        return abis;
+    }
+
+    /**
+     * Deduces the ABI of a bundled app and sets the relevant fields on the
+     * parsed pkg object.
+     *
+     * @param apkRoot the root of the installed apk, something like {@code /system} or
+     *                {@code /oem} under which system libraries are installed.
+     * @param apkName the name of the installed package.
+     */
+    private Abis getBundledAppAbi(PackageParser.Package pkg, String apkRoot, String apkName) {
+        final File codeFile = new File(pkg.codePath);
+
+        final boolean has64BitLibs;
+        final boolean has32BitLibs;
+
+        final String primaryCpuAbi;
+        final String secondaryCpuAbi;
+        if (isApkFile(codeFile)) {
+            // Monolithic install
+            has64BitLibs =
+                    (new File(apkRoot, new File(LIB64_DIR_NAME, apkName).getPath())).exists();
+            has32BitLibs = (new File(apkRoot, new File(LIB_DIR_NAME, apkName).getPath())).exists();
+        } else {
+            // Cluster install
+            final File rootDir = new File(codeFile, LIB_DIR_NAME);
+            if (!ArrayUtils.isEmpty(Build.SUPPORTED_64_BIT_ABIS)
+                    && !TextUtils.isEmpty(Build.SUPPORTED_64_BIT_ABIS[0])) {
+                final String isa = VMRuntime.getInstructionSet(Build.SUPPORTED_64_BIT_ABIS[0]);
+                has64BitLibs = (new File(rootDir, isa)).exists();
+            } else {
+                has64BitLibs = false;
+            }
+            if (!ArrayUtils.isEmpty(Build.SUPPORTED_32_BIT_ABIS)
+                    && !TextUtils.isEmpty(Build.SUPPORTED_32_BIT_ABIS[0])) {
+                final String isa = VMRuntime.getInstructionSet(Build.SUPPORTED_32_BIT_ABIS[0]);
+                has32BitLibs = (new File(rootDir, isa)).exists();
+            } else {
+                has32BitLibs = false;
+            }
+        }
+
+        if (has64BitLibs && !has32BitLibs) {
+            // The package has 64 bit libs, but not 32 bit libs. Its primary
+            // ABI should be 64 bit. We can safely assume here that the bundled
+            // native libraries correspond to the most preferred ABI in the list.
+
+            primaryCpuAbi = Build.SUPPORTED_64_BIT_ABIS[0];
+            secondaryCpuAbi = null;
+        } else if (has32BitLibs && !has64BitLibs) {
+            // The package has 32 bit libs but not 64 bit libs. Its primary
+            // ABI should be 32 bit.
+
+            primaryCpuAbi = Build.SUPPORTED_32_BIT_ABIS[0];
+            secondaryCpuAbi = null;
+        } else if (has32BitLibs && has64BitLibs) {
+            // The application has both 64 and 32 bit bundled libraries. We check
+            // here that the app declares multiArch support, and warn if it doesn't.
+            //
+            // We will be lenient here and record both ABIs. The primary will be the
+            // ABI that's higher on the list, i.e, a device that's configured to prefer
+            // 64 bit apps will see a 64 bit primary ABI,
+
+            if ((pkg.applicationInfo.flags & ApplicationInfo.FLAG_MULTIARCH) == 0) {
+                Slog.e(PackageManagerService.TAG,
+                        "Package " + pkg + " has multiple bundled libs, but is not multiarch.");
+            }
+
+            if (VMRuntime.is64BitInstructionSet(getPreferredInstructionSet())) {
+                primaryCpuAbi = Build.SUPPORTED_64_BIT_ABIS[0];
+                secondaryCpuAbi = Build.SUPPORTED_32_BIT_ABIS[0];
+            } else {
+                primaryCpuAbi = Build.SUPPORTED_32_BIT_ABIS[0];
+                secondaryCpuAbi = Build.SUPPORTED_64_BIT_ABIS[0];
+            }
+        } else {
+            primaryCpuAbi = null;
+            secondaryCpuAbi = null;
+        }
+        return new Abis(primaryCpuAbi, secondaryCpuAbi);
+    }
+
+    @Override
+    public Pair<Abis, NativeLibraryPaths> derivePackageAbi(
+            PackageParser.Package pkg, String cpuAbiOverride, boolean extractLibs)
+            throws PackageManagerException {
+        // Give ourselves some initial paths; we'll come back for another
+        // pass once we've determined ABI below.
+        final NativeLibraryPaths initialLibraryPaths = getNativeLibraryPaths(new Abis(pkg),
+                PackageManagerService.sAppLib32InstallDir, pkg.codePath,
+                pkg.applicationInfo.sourceDir, pkg.applicationInfo.isSystemApp(),
+                pkg.applicationInfo.isUpdatedSystemApp());
+
+        // We shouldn't attempt to extract libs from system app when it was not updated.
+        if (PackageManagerService.isSystemApp(pkg) && !pkg.isUpdatedSystemApp()) {
+            extractLibs = false;
+        }
+
+        final String nativeLibraryRootStr = initialLibraryPaths.nativeLibraryRootDir;
+        final boolean useIsaSpecificSubdirs = initialLibraryPaths.nativeLibraryRootRequiresIsa;
+
+        String primaryCpuAbi = null;
+        String secondaryCpuAbi = null;
+
+        NativeLibraryHelper.Handle handle = null;
+        try {
+            handle = NativeLibraryHelper.Handle.create(pkg);
+            // TODO(multiArch): This can be null for apps that didn't go through the
+            // usual installation process. We can calculate it again, like we
+            // do during install time.
+            //
+            // TODO(multiArch): Why do we need to rescan ASEC apps again ? It seems totally
+            // unnecessary.
+            final File nativeLibraryRoot = new File(nativeLibraryRootStr);
+
+            // Null out the abis so that they can be recalculated.
+            primaryCpuAbi = null;
+            secondaryCpuAbi = null;
+            if ((pkg.applicationInfo.flags & ApplicationInfo.FLAG_MULTIARCH) != 0) {
+                // Warn if we've set an abiOverride for multi-lib packages..
+                // By definition, we need to copy both 32 and 64 bit libraries for
+                // such packages.
+                if (pkg.cpuAbiOverride != null
+                        && !NativeLibraryHelper.CLEAR_ABI_OVERRIDE.equals(pkg.cpuAbiOverride)) {
+                    Slog.w(PackageManagerService.TAG,
+                            "Ignoring abiOverride for multi arch application.");
+                }
+
+                int abi32 = PackageManager.NO_NATIVE_LIBRARIES;
+                int abi64 = PackageManager.NO_NATIVE_LIBRARIES;
+                if (Build.SUPPORTED_32_BIT_ABIS.length > 0) {
+                    if (extractLibs) {
+                        Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "copyNativeBinaries");
+                        abi32 = NativeLibraryHelper.copyNativeBinariesForSupportedAbi(handle,
+                                nativeLibraryRoot, Build.SUPPORTED_32_BIT_ABIS,
+                                useIsaSpecificSubdirs);
+                    } else {
+                        Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "findSupportedAbi");
+                        abi32 = NativeLibraryHelper.findSupportedAbi(
+                                handle, Build.SUPPORTED_32_BIT_ABIS);
+                    }
+                    Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
+                }
+
+                // Shared library native code should be in the APK zip aligned
+                if (abi32 >= 0 && pkg.isLibrary() && extractLibs) {
+                    throw new PackageManagerException(INSTALL_FAILED_INTERNAL_ERROR,
+                            "Shared library native lib extraction not supported");
+                }
+
+                maybeThrowExceptionForMultiArchCopy(
+                        "Error unpackaging 32 bit native libs for multiarch app.", abi32);
+
+                if (Build.SUPPORTED_64_BIT_ABIS.length > 0) {
+                    if (extractLibs) {
+                        Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "copyNativeBinaries");
+                        abi64 = NativeLibraryHelper.copyNativeBinariesForSupportedAbi(handle,
+                                nativeLibraryRoot, Build.SUPPORTED_64_BIT_ABIS,
+                                useIsaSpecificSubdirs);
+                    } else {
+                        Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "findSupportedAbi");
+                        abi64 = NativeLibraryHelper.findSupportedAbi(
+                                handle, Build.SUPPORTED_64_BIT_ABIS);
+                    }
+                    Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
+                }
+
+                maybeThrowExceptionForMultiArchCopy(
+                        "Error unpackaging 64 bit native libs for multiarch app.", abi64);
+
+                if (abi64 >= 0) {
+                    // Shared library native libs should be in the APK zip aligned
+                    if (extractLibs && pkg.isLibrary()) {
+                        throw new PackageManagerException(INSTALL_FAILED_INTERNAL_ERROR,
+                                "Shared library native lib extraction not supported");
+                    }
+                    primaryCpuAbi = Build.SUPPORTED_64_BIT_ABIS[abi64];
+                }
+
+                if (abi32 >= 0) {
+                    final String abi = Build.SUPPORTED_32_BIT_ABIS[abi32];
+                    if (abi64 >= 0) {
+                        if (pkg.use32bitAbi) {
+                            secondaryCpuAbi = primaryCpuAbi;
+                            primaryCpuAbi = abi;
+                        } else {
+                            secondaryCpuAbi = abi;
+                        }
+                    } else {
+                        primaryCpuAbi = abi;
+                    }
+                }
+            } else {
+                String[] abiList = (cpuAbiOverride != null)
+                        ? new String[]{cpuAbiOverride} : Build.SUPPORTED_ABIS;
+
+                // Enable gross and lame hacks for apps that are built with old
+                // SDK tools. We must scan their APKs for renderscript bitcode and
+                // not launch them if it's present. Don't bother checking on devices
+                // that don't have 64 bit support.
+                boolean needsRenderScriptOverride = false;
+                if (Build.SUPPORTED_64_BIT_ABIS.length > 0 && cpuAbiOverride == null
+                        && NativeLibraryHelper.hasRenderscriptBitcode(handle)) {
+                    abiList = Build.SUPPORTED_32_BIT_ABIS;
+                    needsRenderScriptOverride = true;
+                }
+
+                final int copyRet;
+                if (extractLibs) {
+                    Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "copyNativeBinaries");
+                    copyRet = NativeLibraryHelper.copyNativeBinariesForSupportedAbi(handle,
+                            nativeLibraryRoot, abiList, useIsaSpecificSubdirs);
+                } else {
+                    Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "findSupportedAbi");
+                    copyRet = NativeLibraryHelper.findSupportedAbi(handle, abiList);
+                }
+                Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
+
+                if (copyRet < 0 && copyRet != PackageManager.NO_NATIVE_LIBRARIES) {
+                    throw new PackageManagerException(INSTALL_FAILED_INTERNAL_ERROR,
+                            "Error unpackaging native libs for app, errorCode=" + copyRet);
+                }
+
+                if (copyRet >= 0) {
+                    // Shared libraries that have native libs must be multi-architecture
+                    if (pkg.isLibrary()) {
+                        throw new PackageManagerException(INSTALL_FAILED_INTERNAL_ERROR,
+                                "Shared library with native libs must be multiarch");
+                    }
+                    primaryCpuAbi = abiList[copyRet];
+                } else if (copyRet == PackageManager.NO_NATIVE_LIBRARIES
+                        && cpuAbiOverride != null) {
+                    primaryCpuAbi = cpuAbiOverride;
+                } else if (needsRenderScriptOverride) {
+                    primaryCpuAbi = abiList[0];
+                }
+            }
+        } catch (IOException ioe) {
+            Slog.e(PackageManagerService.TAG, "Unable to get canonical file " + ioe.toString());
+        } finally {
+            IoUtils.closeQuietly(handle);
+        }
+
+        // Now that we've calculated the ABIs and determined if it's an internal app,
+        // we will go ahead and populate the nativeLibraryPath.
+
+        final Abis abis = new Abis(primaryCpuAbi, secondaryCpuAbi);
+        return new Pair<>(abis,
+                getNativeLibraryPaths(abis, PackageManagerService.sAppLib32InstallDir,
+                        pkg.codePath, pkg.applicationInfo.sourceDir,
+                        pkg.applicationInfo.isSystemApp(),
+                        pkg.applicationInfo.isUpdatedSystemApp()));
+    }
+
+    /**
+     * Adjusts ABIs for a set of packages belonging to a shared user so that they all match.
+     * i.e, so that all packages can be run inside a single process if required.
+     *
+     * Optionally, callers can pass in a parsed package via {@code newPackage} in which case
+     * this function will either try and make the ABI for all packages in
+     * {@code packagesForUser} match {@code scannedPackage} or will update the ABI of
+     * {@code scannedPackage} to match the ABI selected for {@code packagesForUser}. This
+     * variant is used when installing or updating a package that belongs to a shared user.
+     *
+     * NOTE: We currently only match for the primary CPU abi string. Matching the secondary
+     * adds unnecessary complexity.
+     */
+    @Override
+    @Nullable
+    public String getAdjustedAbiForSharedUser(
+            Set<PackageSetting> packagesForUser, PackageParser.Package scannedPackage) {
+        String requiredInstructionSet = null;
+        if (scannedPackage != null && scannedPackage.applicationInfo.primaryCpuAbi != null) {
+            requiredInstructionSet = VMRuntime.getInstructionSet(
+                    scannedPackage.applicationInfo.primaryCpuAbi);
+        }
+
+        PackageSetting requirer = null;
+        for (PackageSetting ps : packagesForUser) {
+            // If packagesForUser contains scannedPackage, we skip it. This will happen
+            // when scannedPackage is an update of an existing package. Without this check,
+            // we will never be able to change the ABI of any package belonging to a shared
+            // user, even if it's compatible with other packages.
+            if (scannedPackage != null && scannedPackage.packageName.equals(ps.name)) {
+                continue;
+            }
+            if (ps.primaryCpuAbiString == null) {
+                continue;
+            }
+
+            final String instructionSet =
+                    VMRuntime.getInstructionSet(ps.primaryCpuAbiString);
+            if (requiredInstructionSet != null && !requiredInstructionSet.equals(instructionSet)) {
+                // We have a mismatch between instruction sets (say arm vs arm64) warn about
+                // this but there's not much we can do.
+                String errorMessage = "Instruction set mismatch, "
+                        + ((requirer == null) ? "[caller]" : requirer)
+                        + " requires " + requiredInstructionSet + " whereas " + ps
+                        + " requires " + instructionSet;
+                Slog.w(PackageManagerService.TAG, errorMessage);
+            }
+
+            if (requiredInstructionSet == null) {
+                requiredInstructionSet = instructionSet;
+                requirer = ps;
+            }
+        }
+
+        if (requiredInstructionSet == null) {
+            return null;
+        }
+        final String adjustedAbi;
+        if (requirer != null) {
+            // requirer != null implies that either scannedPackage was null or that
+            // scannedPackage did not require an ABI, in which case we have to adjust
+            // scannedPackage to match the ABI of the set (which is the same as
+            // requirer's ABI)
+            adjustedAbi = requirer.primaryCpuAbiString;
+        } else {
+            // requirer == null implies that we're updating all ABIs in the set to
+            // match scannedPackage.
+            adjustedAbi = scannedPackage.applicationInfo.primaryCpuAbi;
+        }
+        return adjustedAbi;
+    }
+}
diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java
index 6f9a918..4eddb930 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerSession.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java
@@ -23,6 +23,7 @@
 import static android.content.pm.PackageManager.INSTALL_FAILED_INTERNAL_ERROR;
 import static android.content.pm.PackageManager.INSTALL_FAILED_INVALID_APK;
 import static android.content.pm.PackageManager.INSTALL_FAILED_MISSING_SPLIT;
+import static android.content.pm.PackageParser.APEX_FILE_EXTENSION;
 import static android.content.pm.PackageParser.APK_FILE_EXTENSION;
 import static android.system.OsConstants.O_CREAT;
 import static android.system.OsConstants.O_RDONLY;
@@ -1484,7 +1485,29 @@
                     "Too many files for apex install");
         }
 
-        mResolvedBaseFile = addedFiles[0];
+        try {
+            resolveStageDirLocked();
+        } catch (IOException e) {
+            throw new PackageManagerException(INSTALL_FAILED_CONTAINER_ERROR,
+                    "Failed to resolve stage location", e);
+        }
+
+        File addedFile = addedFiles[0]; // there is only one file
+
+        // Ensure file name has proper suffix
+        final String sourceName = addedFile.getName();
+        final String targetName = sourceName.endsWith(APEX_FILE_EXTENSION)
+                ? sourceName
+                : sourceName + APEX_FILE_EXTENSION;
+        if (!FileUtils.isValidExtFilename(targetName)) {
+            throw new PackageManagerException(INSTALL_FAILED_INVALID_APK,
+                    "Invalid filename: " + targetName);
+        }
+
+        final File targetFile = new File(mResolvedStageDir, targetName);
+        resolveAndStageFile(addedFile, targetFile);
+
+        mResolvedBaseFile = targetFile;
     }
 
     /**
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 461743e..62f3a67 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -91,16 +91,15 @@
 import static android.os.storage.StorageManager.FLAG_STORAGE_DE;
 import static android.os.storage.StorageManager.FLAG_STORAGE_EXTERNAL;
 
+import static com.android.internal.annotations.VisibleForTesting.Visibility;
 import static com.android.internal.app.IntentForwarderActivity.FORWARD_INTENT_TO_MANAGED_PROFILE;
 import static com.android.internal.app.IntentForwarderActivity.FORWARD_INTENT_TO_PARENT;
-import static com.android.internal.content.NativeLibraryHelper.LIB64_DIR_NAME;
 import static com.android.internal.content.NativeLibraryHelper.LIB_DIR_NAME;
 import static com.android.server.pm.ComponentResolver.RESOLVE_PRIORITY_SORTER;
 import static com.android.server.pm.InstructionSets.getAppDexInstructionSets;
 import static com.android.server.pm.InstructionSets.getDexCodeInstructionSet;
 import static com.android.server.pm.InstructionSets.getDexCodeInstructionSets;
 import static com.android.server.pm.InstructionSets.getPreferredInstructionSet;
-import static com.android.server.pm.InstructionSets.getPrimaryInstructionSet;
 import static com.android.server.pm.PackageManagerServiceCompilerMapping.getDefaultCompilerFilter;
 import static com.android.server.pm.PackageManagerServiceUtils.compareSignatures;
 import static com.android.server.pm.PackageManagerServiceUtils.compressedFileExists;
@@ -278,6 +277,7 @@
 
 import com.android.internal.R;
 import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.app.ResolverActivity;
 import com.android.internal.content.NativeLibraryHelper;
 import com.android.internal.content.PackageHelper;
@@ -375,6 +375,7 @@
 import java.util.function.BiConsumer;
 import java.util.function.Consumer;
 import java.util.function.Predicate;
+import java.util.stream.Collectors;
 
 /**
  * Keep track of all those APKs everywhere.
@@ -433,7 +434,7 @@
     // user, but by default initialize to this.
     public static final boolean DEBUG_DEXOPT = false;
 
-    private static final boolean DEBUG_ABI_SELECTION = false;
+    static final boolean DEBUG_ABI_SELECTION = false;
     private static final boolean DEBUG_INSTANT = Build.IS_DEBUGGABLE;
     private static final boolean DEBUG_APP_DATA = false;
 
@@ -589,16 +590,6 @@
 
     private static final String PACKAGE_SCHEME = "package";
 
-    private static final String VENDOR_OVERLAY_DIR = "/vendor/overlay";
-
-    private static final String PRODUCT_OVERLAY_DIR = "/product/overlay";
-
-    private static final String SYSTEM_EXT_OVERLAY_DIR = "/system_ext/overlay";
-
-    private static final String ODM_OVERLAY_DIR = "/odm/overlay";
-
-    private static final String OEM_OVERLAY_DIR = "/oem/overlay";
-
     /** Canonical intent used to identify what counts as a "web browser" app */
     private static final Intent sBrowserIntent;
     static {
@@ -663,7 +654,8 @@
     private static final File sAppInstallDir =
             new File(Environment.getDataDirectory(), "app");
     /** Directory where installed application's 32-bit native libraries are copied. */
-    private static final File sAppLib32InstallDir =
+    @VisibleForTesting
+    static final File sAppLib32InstallDir =
             new File(Environment.getDataDirectory(), "app-lib");
 
     // ----------------------------------------------------------------
@@ -754,6 +746,54 @@
 
     private final ApexManager mApexManager;
 
+    private final Injector mInjector;
+
+    /**
+     * The list of all system partitions that may contain packages in ascending order of
+     * specificity (the more generic, the earlier in the list a partition appears).
+     */
+    @VisibleForTesting(visibility = Visibility.PRIVATE)
+    static final List<SystemPartition> SYSTEM_PARTITIONS = Collections.unmodifiableList(
+            Arrays.asList(
+                    new SystemPartition(Environment.getRootDirectory(), 0 /* scanFlag */,
+                            false /* hasOverlays */),
+                    new SystemPartition(Environment.getVendorDirectory(), SCAN_AS_VENDOR,
+                            true /* hasOverlays */),
+                    new SystemPartition(Environment.getOdmDirectory(), SCAN_AS_ODM,
+                            true /* hasOverlays */),
+                    new SystemPartition(Environment.getOemDirectory(), SCAN_AS_OEM,
+                            true /* hasOverlays */),
+                    new SystemPartition(Environment.getProductDirectory(), SCAN_AS_PRODUCT,
+                            true /* hasOverlays */),
+                    new SystemPartition(Environment.getSystemExtDirectory(), SCAN_AS_SYSTEM_EXT,
+                            true /* hasOverlays */)));
+
+    private final List<SystemPartition> mDirsToScanAsSystem;
+
+    /**
+     * Unit tests will instantiate, extend and/or mock to mock dependencies / behaviors.
+     *
+     * NOTE: All getters should return the same instance for every call.
+     */
+    @VisibleForTesting
+    static class Injector {
+        private final UserManagerInternal mUserManager;
+        private final PackageAbiHelper mAbiHelper;
+
+        Injector(UserManagerInternal userManager, PackageAbiHelper abiHelper) {
+            mUserManager = userManager;
+            mAbiHelper = abiHelper;
+        }
+
+        public UserManagerInternal getUserManager() {
+            return mUserManager;
+        }
+
+        public PackageAbiHelper getAbiHelper() {
+            return mAbiHelper;
+        }
+    }
+
     class PackageParserCallback implements PackageParser.Callback {
         @Override public final boolean hasFeature(String feature) {
             return PackageManagerService.this.hasSystemFeature(feature, 0);
@@ -1406,6 +1446,7 @@
     final @Nullable String mConfiguratorPackage;
     final @Nullable String mAppPredictionServicePackage;
     final @Nullable String mIncidentReportApproverPackage;
+    final @Nullable String[] mTelephonyPackages;
     final @NonNull String mServicesSystemSharedLibraryPackageName;
     final @NonNull String mSharedSystemSharedLibraryPackageName;
 
@@ -2092,8 +2133,8 @@
             // survive long enough to benefit of background optimizations.
             for (int userId : firstUserIds) {
                 PackageInfo info = getPackageInfo(packageName, /*flags*/ 0, userId);
-                // There's a race currently where some install events may interleave with an uninstall.
-                // This can lead to package info being null (b/36642664).
+                // There's a race currently where some install events may interleave with an
+                // uninstall. This can lead to package info being null (b/36642664).
                 if (info != null) {
                     mDexManager.notifyPackageInstalled(info, userId);
                 }
@@ -2163,6 +2204,7 @@
      * external/removable/unprotected storage.
      * @return {@link StorageEnum#TYPE_UNKNOWN} if the package is not stored externally or the
      * corresponding {@link StorageEnum} storage type value if it is.
+     * corresponding {@link StorageEnum} storage type value if it is.
      */
     private static int getPackageExternalStorageType(VolumeInfo packageVolume,
             boolean packageIsExternal) {
@@ -2384,9 +2426,70 @@
         }
     }
 
+    @VisibleForTesting(visibility = Visibility.PRIVATE)
+    static class SystemPartition {
+        public final File folder;
+        public final int scanFlag;
+        public final File appFolder;
+        @Nullable
+        public final File privAppFolder;
+        @Nullable
+        public final File overlayFolder;
+
+
+        private static boolean shouldScanPrivApps(@ScanFlags int scanFlags) {
+            if ((scanFlags & SCAN_AS_OEM) != 0) {
+                return false;
+            }
+            if (scanFlags == 0) {  // /system partition
+                return true;
+            }
+            if ((scanFlags
+                    & (SCAN_AS_VENDOR | SCAN_AS_ODM | SCAN_AS_PRODUCT | SCAN_AS_SYSTEM_EXT)) != 0) {
+                return true;
+            }
+            return false;
+        }
+
+        private SystemPartition(File folder, int scanFlag, boolean hasOverlays) {
+            this.folder = folder;
+            this.scanFlag = scanFlag;
+            this.appFolder = toCanonical(new File(folder, "app"));
+            this.privAppFolder = shouldScanPrivApps(scanFlag)
+                    ? toCanonical(new File(folder, "priv-app"))
+                    : null;
+            this.overlayFolder = hasOverlays ? toCanonical(new File(folder, "overlay")) : null;
+        }
+
+        public boolean containsPrivApp(File scanFile) {
+            return FileUtils.contains(privAppFolder, scanFile);
+        }
+
+        public boolean containsApp(File scanFile) {
+            return FileUtils.contains(appFolder, scanFile);
+        }
+
+        public boolean containsPath(String path) {
+            return path.startsWith(folder.getPath() + "/");
+        }
+
+        public boolean containsPrivPath(String path) {
+            return privAppFolder != null && path.startsWith(privAppFolder.getPath() + "/");
+        }
+
+        private static File toCanonical(File dir) {
+            try {
+                return dir.getCanonicalFile();
+            } catch (IOException e) {
+                // failed to look up canonical path, continue with original one
+                return dir;
+            }
+        }
+    }
+
     public PackageManagerService(Context context, Installer installer,
-            boolean factoryTest, boolean onlyCore) {
-        LockGuard.installLock(mPackages, LockGuard.INDEX_PACKAGES);
+        boolean factoryTest, boolean onlyCore) {
+            LockGuard.installLock(mPackages, LockGuard.INDEX_PACKAGES);
         Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "create package manager");
         EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_PMS_START,
                 SystemClock.uptimeMillis());
@@ -2420,6 +2523,11 @@
                     mPermissionManager.getPermissionSettings(), mPackages);
         }
         }
+
+        // TODO(b/137961986): We should pass this via constructor, but would first need to create
+        // a packages lock that could also be passed in.
+        mInjector = new Injector(getUserManagerInternal(), new PackageAbiHelperImpl());
+
         mSettings.addSharedUserLPw("android.uid.system", Process.SYSTEM_UID,
                 ApplicationInfo.FLAG_SYSTEM, ApplicationInfo.PRIVATE_FLAG_PRIVILEGED);
         mSettings.addSharedUserLPw("android.uid.phone", RADIO_UID,
@@ -2474,7 +2582,19 @@
 
         mProtectedPackages = new ProtectedPackages(mContext);
 
-        mApexManager = new ApexManager(context);
+        mApexManager = ApexManager.create(mContext);
+
+        mDirsToScanAsSystem = new ArrayList<>();
+        mDirsToScanAsSystem.addAll(SYSTEM_PARTITIONS);
+        mDirsToScanAsSystem.addAll(mApexManager.getActiveApexInfos().stream()
+                .map(ai -> resolveApexToSystemPartition(ai))
+                .filter(Objects::nonNull).collect(Collectors.toList()));
+        Slog.d(TAG,
+                "Directories scanned as system partitions: [" + mDirsToScanAsSystem.stream().map(
+                        d -> (d.folder.getAbsolutePath() + ":" + d.scanFlag))
+                        .collect(Collectors.joining(",")) + "]");
+
+        // CHECKSTYLE:OFF IndentationCheck
         synchronized (mInstallLock) {
         // writer
         synchronized (mPackages) {
@@ -2608,215 +2728,35 @@
             // any apps.)
             // For security and version matching reason, only consider overlay packages if they
             // reside in the right directory.
-            scanDirTracedLI(new File(VENDOR_OVERLAY_DIR),
-                    mDefParseFlags
-                    | PackageParser.PARSE_IS_SYSTEM_DIR,
-                    scanFlags
-                    | SCAN_AS_SYSTEM
-                    | SCAN_AS_VENDOR,
-                    0);
-            scanDirTracedLI(new File(PRODUCT_OVERLAY_DIR),
-                    mDefParseFlags
-                    | PackageParser.PARSE_IS_SYSTEM_DIR,
-                    scanFlags
-                    | SCAN_AS_SYSTEM
-                    | SCAN_AS_PRODUCT,
-                    0);
-            scanDirTracedLI(new File(SYSTEM_EXT_OVERLAY_DIR),
-                    mDefParseFlags
-                    | PackageParser.PARSE_IS_SYSTEM_DIR,
-                    scanFlags
-                    | SCAN_AS_SYSTEM
-                    | SCAN_AS_SYSTEM_EXT,
-                    0);
-            scanDirTracedLI(new File(ODM_OVERLAY_DIR),
-                    mDefParseFlags
-                    | PackageParser.PARSE_IS_SYSTEM_DIR,
-                    scanFlags
-                    | SCAN_AS_SYSTEM
-                    | SCAN_AS_ODM,
-                    0);
-            scanDirTracedLI(new File(OEM_OVERLAY_DIR),
-                    mDefParseFlags
-                    | PackageParser.PARSE_IS_SYSTEM_DIR,
-                    scanFlags
-                    | SCAN_AS_SYSTEM
-                    | SCAN_AS_OEM,
-                    0);
+            final int systemParseFlags = mDefParseFlags | PackageParser.PARSE_IS_SYSTEM_DIR;
+            final int systemScanFlags = scanFlags | SCAN_AS_SYSTEM;
+            for (int i = mDirsToScanAsSystem.size() - 1; i >= 0; i--) {
+                final SystemPartition partition = mDirsToScanAsSystem.get(i);
+                if (partition.overlayFolder == null) {
+                    continue;
+                }
+                scanDirTracedLI(partition.overlayFolder, systemParseFlags,
+                        systemScanFlags | partition.scanFlag, 0);
+            }
 
             mParallelPackageParserCallback.findStaticOverlayPackages();
 
-            // Find base frameworks (resource packages without code).
-            scanDirTracedLI(frameworkDir,
-                    mDefParseFlags
-                    | PackageParser.PARSE_IS_SYSTEM_DIR,
-                    scanFlags
-                    | SCAN_NO_DEX
-                    | SCAN_AS_SYSTEM
-                    | SCAN_AS_PRIVILEGED,
-                    0);
+            scanDirTracedLI(frameworkDir, systemParseFlags,
+                    systemScanFlags | SCAN_NO_DEX | SCAN_AS_PRIVILEGED, 0);
             if (!mPackages.containsKey("android")) {
                 throw new IllegalStateException(
                         "Failed to load frameworks package; check log for warnings");
             }
-
-            // Collect privileged system packages.
-            final File privilegedAppDir = new File(Environment.getRootDirectory(), "priv-app");
-            scanDirTracedLI(privilegedAppDir,
-                    mDefParseFlags
-                    | PackageParser.PARSE_IS_SYSTEM_DIR,
-                    scanFlags
-                    | SCAN_AS_SYSTEM
-                    | SCAN_AS_PRIVILEGED,
-                    0);
-
-            // Collect ordinary system packages.
-            final File systemAppDir = new File(Environment.getRootDirectory(), "app");
-            scanDirTracedLI(systemAppDir,
-                    mDefParseFlags
-                    | PackageParser.PARSE_IS_SYSTEM_DIR,
-                    scanFlags
-                    | SCAN_AS_SYSTEM,
-                    0);
-
-            // Collect privileged vendor packages.
-            File privilegedVendorAppDir = new File(Environment.getVendorDirectory(), "priv-app");
-            try {
-                privilegedVendorAppDir = privilegedVendorAppDir.getCanonicalFile();
-            } catch (IOException e) {
-                // failed to look up canonical path, continue with original one
+            for (int i = 0, size = mDirsToScanAsSystem.size(); i < size; i++) {
+                final SystemPartition partition = mDirsToScanAsSystem.get(i);
+                if (partition.privAppFolder != null) {
+                    scanDirTracedLI(partition.privAppFolder, systemParseFlags,
+                            systemScanFlags | SCAN_AS_PRIVILEGED | partition.scanFlag, 0);
+                }
+                scanDirTracedLI(partition.appFolder, systemParseFlags,
+                        systemScanFlags | partition.scanFlag, 0);
             }
-            scanDirTracedLI(privilegedVendorAppDir,
-                    mDefParseFlags
-                    | PackageParser.PARSE_IS_SYSTEM_DIR,
-                    scanFlags
-                    | SCAN_AS_SYSTEM
-                    | SCAN_AS_VENDOR
-                    | SCAN_AS_PRIVILEGED,
-                    0);
 
-            // Collect ordinary vendor packages.
-            File vendorAppDir = new File(Environment.getVendorDirectory(), "app");
-            try {
-                vendorAppDir = vendorAppDir.getCanonicalFile();
-            } catch (IOException e) {
-                // failed to look up canonical path, continue with original one
-            }
-            scanDirTracedLI(vendorAppDir,
-                    mDefParseFlags
-                    | PackageParser.PARSE_IS_SYSTEM_DIR,
-                    scanFlags
-                    | SCAN_AS_SYSTEM
-                    | SCAN_AS_VENDOR,
-                    0);
-
-            // Collect privileged odm packages. /odm is another vendor partition
-            // other than /vendor.
-            File privilegedOdmAppDir = new File(Environment.getOdmDirectory(),
-                        "priv-app");
-            try {
-                privilegedOdmAppDir = privilegedOdmAppDir.getCanonicalFile();
-            } catch (IOException e) {
-                // failed to look up canonical path, continue with original one
-            }
-            scanDirTracedLI(privilegedOdmAppDir,
-                    mDefParseFlags
-                    | PackageParser.PARSE_IS_SYSTEM_DIR,
-                    scanFlags
-                    | SCAN_AS_SYSTEM
-                    | SCAN_AS_VENDOR
-                    | SCAN_AS_PRIVILEGED,
-                    0);
-
-            // Collect ordinary odm packages. /odm is another vendor partition
-            // other than /vendor.
-            File odmAppDir = new File(Environment.getOdmDirectory(), "app");
-            try {
-                odmAppDir = odmAppDir.getCanonicalFile();
-            } catch (IOException e) {
-                // failed to look up canonical path, continue with original one
-            }
-            scanDirTracedLI(odmAppDir,
-                    mDefParseFlags
-                    | PackageParser.PARSE_IS_SYSTEM_DIR,
-                    scanFlags
-                    | SCAN_AS_SYSTEM
-                    | SCAN_AS_VENDOR,
-                    0);
-
-            // Collect all OEM packages.
-            final File oemAppDir = new File(Environment.getOemDirectory(), "app");
-            scanDirTracedLI(oemAppDir,
-                    mDefParseFlags
-                    | PackageParser.PARSE_IS_SYSTEM_DIR,
-                    scanFlags
-                    | SCAN_AS_SYSTEM
-                    | SCAN_AS_OEM,
-                    0);
-
-            // Collected privileged /product packages.
-            File privilegedProductAppDir = new File(Environment.getProductDirectory(), "priv-app");
-            try {
-                privilegedProductAppDir = privilegedProductAppDir.getCanonicalFile();
-            } catch (IOException e) {
-                // failed to look up canonical path, continue with original one
-            }
-            scanDirTracedLI(privilegedProductAppDir,
-                    mDefParseFlags
-                    | PackageParser.PARSE_IS_SYSTEM_DIR,
-                    scanFlags
-                    | SCAN_AS_SYSTEM
-                    | SCAN_AS_PRODUCT
-                    | SCAN_AS_PRIVILEGED,
-                    0);
-
-            // Collect ordinary /product packages.
-            File productAppDir = new File(Environment.getProductDirectory(), "app");
-            try {
-                productAppDir = productAppDir.getCanonicalFile();
-            } catch (IOException e) {
-                // failed to look up canonical path, continue with original one
-            }
-            scanDirTracedLI(productAppDir,
-                    mDefParseFlags
-                    | PackageParser.PARSE_IS_SYSTEM_DIR,
-                    scanFlags
-                    | SCAN_AS_SYSTEM
-                    | SCAN_AS_PRODUCT,
-                    0);
-
-            // Collected privileged /system_ext packages.
-            File privilegedSystemExtAppDir =
-                    new File(Environment.getSystemExtDirectory(), "priv-app");
-            try {
-                privilegedSystemExtAppDir =
-                        privilegedSystemExtAppDir.getCanonicalFile();
-            } catch (IOException e) {
-                // failed to look up canonical path, continue with original one
-            }
-            scanDirTracedLI(privilegedSystemExtAppDir,
-                    mDefParseFlags
-                    | PackageParser.PARSE_IS_SYSTEM_DIR,
-                    scanFlags
-                    | SCAN_AS_SYSTEM
-                    | SCAN_AS_SYSTEM_EXT
-                    | SCAN_AS_PRIVILEGED,
-                    0);
-
-            // Collect ordinary /system_ext packages.
-            File systemExtAppDir = new File(Environment.getSystemExtDirectory(), "app");
-            try {
-                systemExtAppDir = systemExtAppDir.getCanonicalFile();
-            } catch (IOException e) {
-                // failed to look up canonical path, continue with original one
-            }
-            scanDirTracedLI(systemExtAppDir,
-                    mDefParseFlags
-                    | PackageParser.PARSE_IS_SYSTEM_DIR,
-                    scanFlags
-                    | SCAN_AS_SYSTEM
-                    | SCAN_AS_SYSTEM_EXT,
-                    0);
 
             // Prune any system packages that no longer exist.
             final List<String> possiblyDeletedUpdatedSystemApps = new ArrayList<>();
@@ -2984,89 +2924,26 @@
                         logCriticalInfo(Log.WARN, "Expected better " + packageName
                                 + " but never showed up; reverting to system");
 
-                        final @ParseFlags int reparseFlags;
-                        final @ScanFlags int rescanFlags;
-                        if (FileUtils.contains(privilegedAppDir, scanFile)) {
-                            reparseFlags =
-                                    mDefParseFlags |
-                                    PackageParser.PARSE_IS_SYSTEM_DIR;
-                            rescanFlags =
-                                    scanFlags
-                                    | SCAN_AS_SYSTEM
-                                    | SCAN_AS_PRIVILEGED;
-                        } else if (FileUtils.contains(systemAppDir, scanFile)) {
-                            reparseFlags =
-                                    mDefParseFlags |
-                                    PackageParser.PARSE_IS_SYSTEM_DIR;
-                            rescanFlags =
-                                    scanFlags
-                                    | SCAN_AS_SYSTEM;
-                        } else if (FileUtils.contains(privilegedVendorAppDir, scanFile)
-                                || FileUtils.contains(privilegedOdmAppDir, scanFile)) {
-                            reparseFlags =
-                                    mDefParseFlags |
-                                    PackageParser.PARSE_IS_SYSTEM_DIR;
-                            rescanFlags =
-                                    scanFlags
-                                    | SCAN_AS_SYSTEM
-                                    | SCAN_AS_VENDOR
-                                    | SCAN_AS_PRIVILEGED;
-                        } else if (FileUtils.contains(vendorAppDir, scanFile)
-                                || FileUtils.contains(odmAppDir, scanFile)) {
-                            reparseFlags =
-                                    mDefParseFlags |
-                                    PackageParser.PARSE_IS_SYSTEM_DIR;
-                            rescanFlags =
-                                    scanFlags
-                                    | SCAN_AS_SYSTEM
-                                    | SCAN_AS_VENDOR;
-                        } else if (FileUtils.contains(oemAppDir, scanFile)) {
-                            reparseFlags =
-                                    mDefParseFlags |
-                                    PackageParser.PARSE_IS_SYSTEM_DIR;
-                            rescanFlags =
-                                    scanFlags
-                                    | SCAN_AS_SYSTEM
-                                    | SCAN_AS_OEM;
-                        } else if (FileUtils.contains(privilegedProductAppDir, scanFile)) {
-                            reparseFlags =
-                                    mDefParseFlags |
-                                    PackageParser.PARSE_IS_SYSTEM_DIR;
-                            rescanFlags =
-                                    scanFlags
-                                    | SCAN_AS_SYSTEM
-                                    | SCAN_AS_PRODUCT
-                                    | SCAN_AS_PRIVILEGED;
-                        } else if (FileUtils.contains(productAppDir, scanFile)) {
-                            reparseFlags =
-                                    mDefParseFlags |
-                                    PackageParser.PARSE_IS_SYSTEM_DIR;
-                            rescanFlags =
-                                    scanFlags
-                                    | SCAN_AS_SYSTEM
-                                    | SCAN_AS_PRODUCT;
-                        } else if (FileUtils.contains(privilegedSystemExtAppDir, scanFile)) {
-                            reparseFlags =
-                                    mDefParseFlags |
-                                    PackageParser.PARSE_IS_SYSTEM_DIR;
-                            rescanFlags =
-                                    scanFlags
-                                    | SCAN_AS_SYSTEM
-                                    | SCAN_AS_SYSTEM_EXT
-                                    | SCAN_AS_PRIVILEGED;
-                        } else if (FileUtils.contains(systemExtAppDir, scanFile)) {
-                            reparseFlags =
-                                    mDefParseFlags |
-                                    PackageParser.PARSE_IS_SYSTEM_DIR;
-                            rescanFlags =
-                                    scanFlags
-                                    | SCAN_AS_SYSTEM
-                                    | SCAN_AS_SYSTEM_EXT;
-                        } else {
+                        @ParseFlags int reparseFlags = 0;
+                        @ScanFlags int rescanFlags = 0;
+                        for (int i1 = 0, size = mDirsToScanAsSystem.size(); i1 < size; i1++) {
+                            SystemPartition partition = mDirsToScanAsSystem.get(i1);
+                            if (partition.containsPrivApp(scanFile)) {
+                                reparseFlags = systemParseFlags;
+                                rescanFlags = systemScanFlags | SCAN_AS_PRIVILEGED
+                                        | partition.scanFlag;
+                                break;
+                            }
+                            if (partition.containsApp(scanFile)) {
+                                reparseFlags = systemParseFlags;
+                                rescanFlags = systemScanFlags | partition.scanFlag;
+                                break;
+                            }
+                        }
+                        if (rescanFlags == 0) {
                             Slog.e(TAG, "Ignoring unexpected fallback path " + scanFile);
                             continue;
                         }
-
                         mSettings.enableSystemPackageLPw(packageName);
 
                         try {
@@ -3115,6 +2992,7 @@
                     mContext.getString(R.string.config_deviceConfiguratorPackageName);
             mAppPredictionServicePackage = getAppPredictionServicePackageName();
             mIncidentReportApproverPackage = getIncidentReportApproverPackageName();
+            mTelephonyPackages = getTelephonyPackageNames();
 
             // Now that we know all of the shared libraries, update all clients to have
             // the correct library paths.
@@ -3125,7 +3003,9 @@
                 // the rest of the commands above) because there's precious little we
                 // can do about it. A settings error is reported, though.
                 final List<String> changedAbiCodePath =
-                        adjustCpuAbisForSharedUserLPw(setting.packages, null /*scannedPackage*/);
+                        applyAdjustedAbiToSharedUser(setting, null /*scannedPackage*/,
+                        mInjector.getAbiHelper().getAdjustedAbiForSharedUser(
+                                setting.packages, null /*scannedPackage*/));
                 if (changedAbiCodePath != null && changedAbiCodePath.size() > 0) {
                     for (int i = changedAbiCodePath.size() - 1; i >= 0; --i) {
                         final String codePathString = changedAbiCodePath.get(i);
@@ -4262,7 +4142,7 @@
                 }
                 return generatePackageInfo(ps, flags, userId);
             }
-            if (!matchFactoryOnly && (flags & MATCH_APEX) != 0) {
+            if ((flags & MATCH_APEX) != 0) {
                 return mApexManager.getPackageInfo(packageName, ApexManager.MATCH_ACTIVE_PACKAGE);
             }
         }
@@ -9394,7 +9274,8 @@
                             null /* originalPkgSetting */, null, parseFlags, scanFlags,
                             (pkg == mPlatformPackage), user);
                     applyPolicy(pkg, parseFlags, scanFlags, mPlatformPackage);
-                    final ScanResult scanResult = scanPackageOnlyLI(request, mFactoryTest, -1L);
+                    final ScanResult scanResult =
+                            scanPackageOnlyLI(request, mInjector, mFactoryTest, -1L);
                     if (scanResult.existingSettingCopied && scanResult.request.pkgSetting != null) {
                         scanResult.request.pkgSetting.updateFrom(scanResult.pkgSetting);
                     }
@@ -10756,7 +10637,8 @@
     }
 
     /** The result of a package scan. */
-    private static class ScanResult {
+    @VisibleForTesting
+    static class ScanResult {
         /** The request that initiated the scan that produced this result. */
         public final ScanRequest request;
         /** Whether or not the package scan was successful */
@@ -10795,7 +10677,8 @@
     }
 
     /** A package to be scanned */
-    private static class ScanRequest {
+    @VisibleForTesting
+    static class ScanRequest {
         /** The parsed package */
         @NonNull public final PackageParser.Package pkg;
         /** The package this package replaces */
@@ -10988,7 +10871,7 @@
                     pkgSetting == null ? null : pkgSetting.pkg, pkgSetting, disabledPkgSetting,
                     originalPkgSetting, realPkgName, parseFlags, scanFlags,
                     (pkg == mPlatformPackage), user);
-            return scanPackageOnlyLI(request, mFactoryTest, currentTime);
+            return scanPackageOnlyLI(request, mInjector, mFactoryTest, currentTime);
         }
     }
 
@@ -11213,20 +11096,70 @@
     }
 
     /**
+     * Applies the adjusted ABI calculated by
+     * {@link PackageAbiHelper#getAdjustedAbiForSharedUser(Set, PackageParser.Package)} to all
+     * relevant packages and settings.
+     * @param sharedUserSetting The {@code SharedUserSetting} to adjust
+     * @param scannedPackage the package being scanned or null
+     * @param adjustedAbi the adjusted ABI calculated by {@link PackageAbiHelper}
+     * @return the list of code paths that belong to packages that had their ABIs adjusted.
+     */
+    private static List<String> applyAdjustedAbiToSharedUser(SharedUserSetting sharedUserSetting,
+            PackageParser.Package scannedPackage, String adjustedAbi) {
+        if (scannedPackage != null)  {
+            scannedPackage.applicationInfo.primaryCpuAbi = adjustedAbi;
+        }
+        List<String> changedAbiCodePath = null;
+        for (PackageSetting ps : sharedUserSetting.packages) {
+            if (scannedPackage == null || !scannedPackage.packageName.equals(ps.name)) {
+                if (ps.primaryCpuAbiString != null) {
+                    continue;
+                }
+
+                ps.primaryCpuAbiString = adjustedAbi;
+                if (ps.pkg != null && ps.pkg.applicationInfo != null
+                        && !TextUtils.equals(
+                        adjustedAbi, ps.pkg.applicationInfo.primaryCpuAbi)) {
+                    ps.pkg.applicationInfo.primaryCpuAbi = adjustedAbi;
+                    if (DEBUG_ABI_SELECTION) {
+                        Slog.i(TAG,
+                                "Adjusting ABI for " + ps.name + " to " + adjustedAbi
+                                        + " (scannedPackage="
+                                        + (scannedPackage != null ? scannedPackage : "null")
+                                        + ")");
+                    }
+                    if (changedAbiCodePath == null) {
+                        changedAbiCodePath = new ArrayList<>();
+                    }
+                    changedAbiCodePath.add(ps.codePathString);
+                }
+            }
+        }
+        return changedAbiCodePath;
+    }
+
+
+    /**
      * Just scans the package without any side effects.
      * <p>Not entirely true at the moment. There is still one side effect -- this
      * method potentially modifies a live {@link PackageSetting} object representing
      * the package being scanned. This will be resolved in the future.
      *
+     * @param injector injector for acquiring dependencies
      * @param request Information about the package to be scanned
      * @param isUnderFactoryTest Whether or not the device is under factory test
      * @param currentTime The current time, in millis
      * @return The results of the scan
      */
     @GuardedBy("mInstallLock")
-    private static @NonNull ScanResult scanPackageOnlyLI(@NonNull ScanRequest request,
+    @VisibleForTesting
+    @NonNull
+    static ScanResult scanPackageOnlyLI(@NonNull ScanRequest request,
+            Injector injector,
             boolean isUnderFactoryTest, long currentTime)
-                    throws PackageManagerException {
+            throws PackageManagerException {
+        final PackageAbiHelper packageAbiHelper = injector.getAbiHelper();
+        final UserManagerInternal userManager = injector.getUserManager();
         final PackageParser.Package pkg = request.pkg;
         PackageSetting pkgSetting = request.pkgSetting;
         final PackageSetting disabledPkgSetting = request.disabledPkgSetting;
@@ -11332,7 +11265,7 @@
         if (!createNewPackage) {
             final boolean instantApp = (scanFlags & SCAN_AS_INSTANT_APP) != 0;
             final boolean fullApp = (scanFlags & SCAN_AS_FULL_APP) != 0;
-            setInstantAppForUser(pkgSetting, userId, instantApp, fullApp);
+            setInstantAppForUser(userManager, pkgSetting, userId, instantApp, fullApp);
         }
         // TODO(patb): see if we can do away with disabled check here.
         if (disabledPkgSetting != null
@@ -11378,7 +11311,10 @@
             if (needToDeriveAbi) {
                 Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "derivePackageAbi");
                 final boolean extractNativeLibs = !pkg.isLibrary();
-                derivePackageAbi(pkg, cpuAbiOverride, extractNativeLibs);
+                final Pair<PackageAbiHelper.Abis, PackageAbiHelper.NativeLibraryPaths> derivedAbi =
+                        packageAbiHelper.derivePackageAbi(pkg, cpuAbiOverride, extractNativeLibs);
+                derivedAbi.first.applyTo(pkg);
+                derivedAbi.second.applyTo(pkg);
                 Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
 
                 // Some system apps still use directory structure for native libraries
@@ -11386,8 +11322,13 @@
                 // structure. Try to detect abi based on directory structure.
                 if (isSystemApp(pkg) && !pkg.isUpdatedSystemApp() &&
                         pkg.applicationInfo.primaryCpuAbi == null) {
-                    setBundledAppAbisAndRoots(pkg, pkgSetting);
-                    setNativeLibraryPaths(pkg, sAppLib32InstallDir);
+                    final PackageAbiHelper.Abis abis = packageAbiHelper.getBundledAppAbis(
+                            pkg);
+                    abis.applyTo(pkg);
+                    abis.applyTo(pkgSetting);
+                    final PackageAbiHelper.NativeLibraryPaths nativeLibraryPaths =
+                            packageAbiHelper.getNativeLibraryPaths(pkg, sAppLib32InstallDir);
+                    nativeLibraryPaths.applyTo(pkg);
                 }
             } else {
                 // This is not a first boot or an upgrade, don't bother deriving the
@@ -11396,7 +11337,9 @@
                 pkg.applicationInfo.primaryCpuAbi = primaryCpuAbiFromSettings;
                 pkg.applicationInfo.secondaryCpuAbi = secondaryCpuAbiFromSettings;
 
-                setNativeLibraryPaths(pkg, sAppLib32InstallDir);
+                final PackageAbiHelper.NativeLibraryPaths nativeLibraryPaths =
+                        packageAbiHelper.getNativeLibraryPaths(pkg, sAppLib32InstallDir);
+                nativeLibraryPaths.applyTo(pkg);
 
                 if (DEBUG_ABI_SELECTION) {
                     Slog.i(TAG, "Using ABIS and native lib paths from settings : " +
@@ -11417,7 +11360,9 @@
             // ABIs we've determined above. For non-moves, the path will be updated based on the
             // ABIs we determined during compilation, but the path will depend on the final
             // package path (after the rename away from the stage path).
-            setNativeLibraryPaths(pkg, sAppLib32InstallDir);
+            final PackageAbiHelper.NativeLibraryPaths nativeLibraryPaths =
+                    packageAbiHelper.getNativeLibraryPaths(pkg, sAppLib32InstallDir);
+            nativeLibraryPaths.applyTo(pkg);
         }
 
         // This is a special case for the "system" package, where the ABI is
@@ -11471,8 +11416,9 @@
             // We also do this *before* we perform dexopt on this package, so that
             // we can avoid redundant dexopts, and also to make sure we've got the
             // code and package path correct.
-            changedAbiCodePath =
-                    adjustCpuAbisForSharedUserLPw(pkgSetting.sharedUser.packages, pkg);
+            changedAbiCodePath = applyAdjustedAbiToSharedUser(pkgSetting.sharedUser, pkg,
+                    packageAbiHelper.getAdjustedAbiForSharedUser(
+                            pkgSetting.sharedUser.packages, pkg));
         }
 
         if (isUnderFactoryTest && pkg.requestedPermissions.contains(
@@ -12322,264 +12268,6 @@
         Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
     }
 
-    /**
-     * Derive the ABI of a non-system package located at {@code scanFile}. This information
-     * is derived purely on the basis of the contents of {@code scanFile} and
-     * {@code cpuAbiOverride}.
-     *
-     * If {@code extractLibs} is true, native libraries are extracted from the app if required.
-     */
-    private static void derivePackageAbi(PackageParser.Package pkg, String cpuAbiOverride,
-            boolean extractLibs)
-                    throws PackageManagerException {
-        // Give ourselves some initial paths; we'll come back for another
-        // pass once we've determined ABI below.
-        setNativeLibraryPaths(pkg, sAppLib32InstallDir);
-
-        // We shouldn't attempt to extract libs from system app when it was not updated.
-        if (isSystemApp(pkg) && !pkg.isUpdatedSystemApp()) {
-            extractLibs = false;
-        }
-
-        final String nativeLibraryRootStr = pkg.applicationInfo.nativeLibraryRootDir;
-        final boolean useIsaSpecificSubdirs = pkg.applicationInfo.nativeLibraryRootRequiresIsa;
-
-        NativeLibraryHelper.Handle handle = null;
-        try {
-            handle = NativeLibraryHelper.Handle.create(pkg);
-            // TODO(multiArch): This can be null for apps that didn't go through the
-            // usual installation process. We can calculate it again, like we
-            // do during install time.
-            //
-            // TODO(multiArch): Why do we need to rescan ASEC apps again ? It seems totally
-            // unnecessary.
-            final File nativeLibraryRoot = new File(nativeLibraryRootStr);
-
-            // Null out the abis so that they can be recalculated.
-            pkg.applicationInfo.primaryCpuAbi = null;
-            pkg.applicationInfo.secondaryCpuAbi = null;
-            if (isMultiArch(pkg.applicationInfo)) {
-                // Warn if we've set an abiOverride for multi-lib packages..
-                // By definition, we need to copy both 32 and 64 bit libraries for
-                // such packages.
-                if (pkg.cpuAbiOverride != null
-                        && !NativeLibraryHelper.CLEAR_ABI_OVERRIDE.equals(pkg.cpuAbiOverride)) {
-                    Slog.w(TAG, "Ignoring abiOverride for multi arch application.");
-                }
-
-                int abi32 = PackageManager.NO_NATIVE_LIBRARIES;
-                int abi64 = PackageManager.NO_NATIVE_LIBRARIES;
-                if (Build.SUPPORTED_32_BIT_ABIS.length > 0) {
-                    if (extractLibs) {
-                        Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "copyNativeBinaries");
-                        abi32 = NativeLibraryHelper.copyNativeBinariesForSupportedAbi(handle,
-                                nativeLibraryRoot, Build.SUPPORTED_32_BIT_ABIS,
-                                useIsaSpecificSubdirs);
-                    } else {
-                        Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "findSupportedAbi");
-                        abi32 = NativeLibraryHelper.findSupportedAbi(handle, Build.SUPPORTED_32_BIT_ABIS);
-                    }
-                    Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
-                }
-
-                // Shared library native code should be in the APK zip aligned
-                if (abi32 >= 0 && pkg.isLibrary() && extractLibs) {
-                    throw new PackageManagerException(INSTALL_FAILED_INTERNAL_ERROR,
-                            "Shared library native lib extraction not supported");
-                }
-
-                maybeThrowExceptionForMultiArchCopy(
-                        "Error unpackaging 32 bit native libs for multiarch app.", abi32);
-
-                if (Build.SUPPORTED_64_BIT_ABIS.length > 0) {
-                    if (extractLibs) {
-                        Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "copyNativeBinaries");
-                        abi64 = NativeLibraryHelper.copyNativeBinariesForSupportedAbi(handle,
-                                nativeLibraryRoot, Build.SUPPORTED_64_BIT_ABIS,
-                                useIsaSpecificSubdirs);
-                    } else {
-                        Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "findSupportedAbi");
-                        abi64 = NativeLibraryHelper.findSupportedAbi(handle, Build.SUPPORTED_64_BIT_ABIS);
-                    }
-                    Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
-                }
-
-                maybeThrowExceptionForMultiArchCopy(
-                        "Error unpackaging 64 bit native libs for multiarch app.", abi64);
-
-                if (abi64 >= 0) {
-                    // Shared library native libs should be in the APK zip aligned
-                    if (extractLibs && pkg.isLibrary()) {
-                        throw new PackageManagerException(INSTALL_FAILED_INTERNAL_ERROR,
-                                "Shared library native lib extraction not supported");
-                    }
-                    pkg.applicationInfo.primaryCpuAbi = Build.SUPPORTED_64_BIT_ABIS[abi64];
-                }
-
-                if (abi32 >= 0) {
-                    final String abi = Build.SUPPORTED_32_BIT_ABIS[abi32];
-                    if (abi64 >= 0) {
-                        if (pkg.use32bitAbi) {
-                            pkg.applicationInfo.secondaryCpuAbi = pkg.applicationInfo.primaryCpuAbi;
-                            pkg.applicationInfo.primaryCpuAbi = abi;
-                        } else {
-                            pkg.applicationInfo.secondaryCpuAbi = abi;
-                        }
-                    } else {
-                        pkg.applicationInfo.primaryCpuAbi = abi;
-                    }
-                }
-            } else {
-                String[] abiList = (cpuAbiOverride != null) ?
-                        new String[] { cpuAbiOverride } : Build.SUPPORTED_ABIS;
-
-                // Enable gross and lame hacks for apps that are built with old
-                // SDK tools. We must scan their APKs for renderscript bitcode and
-                // not launch them if it's present. Don't bother checking on devices
-                // that don't have 64 bit support.
-                boolean needsRenderScriptOverride = false;
-                if (Build.SUPPORTED_64_BIT_ABIS.length > 0 && cpuAbiOverride == null &&
-                        NativeLibraryHelper.hasRenderscriptBitcode(handle)) {
-                    abiList = Build.SUPPORTED_32_BIT_ABIS;
-                    needsRenderScriptOverride = true;
-                }
-
-                final int copyRet;
-                if (extractLibs) {
-                    Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "copyNativeBinaries");
-                    copyRet = NativeLibraryHelper.copyNativeBinariesForSupportedAbi(handle,
-                            nativeLibraryRoot, abiList, useIsaSpecificSubdirs);
-                } else {
-                    Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "findSupportedAbi");
-                    copyRet = NativeLibraryHelper.findSupportedAbi(handle, abiList);
-                }
-                Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER);
-
-                if (copyRet < 0 && copyRet != PackageManager.NO_NATIVE_LIBRARIES) {
-                    throw new PackageManagerException(INSTALL_FAILED_INTERNAL_ERROR,
-                            "Error unpackaging native libs for app, errorCode=" + copyRet);
-                }
-
-                if (copyRet >= 0) {
-                    // Shared libraries that have native libs must be multi-architecture
-                    if (pkg.isLibrary()) {
-                        throw new PackageManagerException(INSTALL_FAILED_INTERNAL_ERROR,
-                                "Shared library with native libs must be multiarch");
-                    }
-                    pkg.applicationInfo.primaryCpuAbi = abiList[copyRet];
-                } else if (copyRet == PackageManager.NO_NATIVE_LIBRARIES && cpuAbiOverride != null) {
-                    pkg.applicationInfo.primaryCpuAbi = cpuAbiOverride;
-                } else if (needsRenderScriptOverride) {
-                    pkg.applicationInfo.primaryCpuAbi = abiList[0];
-                }
-            }
-        } catch (IOException ioe) {
-            Slog.e(TAG, "Unable to get canonical file " + ioe.toString());
-        } finally {
-            IoUtils.closeQuietly(handle);
-        }
-
-        // Now that we've calculated the ABIs and determined if it's an internal app,
-        // we will go ahead and populate the nativeLibraryPath.
-        setNativeLibraryPaths(pkg, sAppLib32InstallDir);
-    }
-
-    /**
-     * Adjusts ABIs for a set of packages belonging to a shared user so that they all match.
-     * i.e, so that all packages can be run inside a single process if required.
-     *
-     * Optionally, callers can pass in a parsed package via {@code newPackage} in which case
-     * this function will either try and make the ABI for all packages in {@code packagesForUser}
-     * match {@code scannedPackage} or will update the ABI of {@code scannedPackage} to match
-     * the ABI selected for {@code packagesForUser}. This variant is used when installing or
-     * updating a package that belongs to a shared user.
-     *
-     * NOTE: We currently only match for the primary CPU abi string. Matching the secondary
-     * adds unnecessary complexity.
-     */
-    private static @Nullable List<String> adjustCpuAbisForSharedUserLPw(
-            Set<PackageSetting> packagesForUser, PackageParser.Package scannedPackage) {
-        List<String> changedAbiCodePath = null;
-        String requiredInstructionSet = null;
-        if (scannedPackage != null && scannedPackage.applicationInfo.primaryCpuAbi != null) {
-            requiredInstructionSet = VMRuntime.getInstructionSet(
-                     scannedPackage.applicationInfo.primaryCpuAbi);
-        }
-
-        PackageSetting requirer = null;
-        for (PackageSetting ps : packagesForUser) {
-            // If packagesForUser contains scannedPackage, we skip it. This will happen
-            // when scannedPackage is an update of an existing package. Without this check,
-            // we will never be able to change the ABI of any package belonging to a shared
-            // user, even if it's compatible with other packages.
-            if (scannedPackage == null || !scannedPackage.packageName.equals(ps.name)) {
-                if (ps.primaryCpuAbiString == null) {
-                    continue;
-                }
-
-                final String instructionSet = VMRuntime.getInstructionSet(ps.primaryCpuAbiString);
-                if (requiredInstructionSet != null && !instructionSet.equals(requiredInstructionSet)) {
-                    // We have a mismatch between instruction sets (say arm vs arm64) warn about
-                    // this but there's not much we can do.
-                    String errorMessage = "Instruction set mismatch, "
-                            + ((requirer == null) ? "[caller]" : requirer)
-                            + " requires " + requiredInstructionSet + " whereas " + ps
-                            + " requires " + instructionSet;
-                    Slog.w(TAG, errorMessage);
-                }
-
-                if (requiredInstructionSet == null) {
-                    requiredInstructionSet = instructionSet;
-                    requirer = ps;
-                }
-            }
-        }
-
-        if (requiredInstructionSet != null) {
-            String adjustedAbi;
-            if (requirer != null) {
-                // requirer != null implies that either scannedPackage was null or that scannedPackage
-                // did not require an ABI, in which case we have to adjust scannedPackage to match
-                // the ABI of the set (which is the same as requirer's ABI)
-                adjustedAbi = requirer.primaryCpuAbiString;
-                if (scannedPackage != null) {
-                    scannedPackage.applicationInfo.primaryCpuAbi = adjustedAbi;
-                }
-            } else {
-                // requirer == null implies that we're updating all ABIs in the set to
-                // match scannedPackage.
-                adjustedAbi =  scannedPackage.applicationInfo.primaryCpuAbi;
-            }
-
-            for (PackageSetting ps : packagesForUser) {
-                if (scannedPackage == null || !scannedPackage.packageName.equals(ps.name)) {
-                    if (ps.primaryCpuAbiString != null) {
-                        continue;
-                    }
-
-                    ps.primaryCpuAbiString = adjustedAbi;
-                    if (ps.pkg != null && ps.pkg.applicationInfo != null &&
-                            !TextUtils.equals(adjustedAbi, ps.pkg.applicationInfo.primaryCpuAbi)) {
-                        ps.pkg.applicationInfo.primaryCpuAbi = adjustedAbi;
-                        if (DEBUG_ABI_SELECTION) {
-                            Slog.i(TAG, "Adjusting ABI for " + ps.name + " to " + adjustedAbi
-                                    + " (requirer="
-                                    + (requirer != null ? requirer.pkg : "null")
-                                    + ", scannedPackage="
-                                    + (scannedPackage != null ? scannedPackage : "null")
-                                    + ")");
-                        }
-                        if (changedAbiCodePath == null) {
-                            changedAbiCodePath = new ArrayList<>();
-                        }
-                        changedAbiCodePath.add(ps.codePathString);
-                    }
-                }
-            }
-        }
-        return changedAbiCodePath;
-    }
-
     private void setUpCustomResolverActivity(PackageParser.Package pkg) {
         synchronized (mPackages) {
             mResolverReplaced = true;
@@ -12631,207 +12319,6 @@
                 | IntentFilter.MATCH_ADJUSTMENT_NORMAL;
     }
 
-    private static String calculateBundledApkRoot(final String codePathString) {
-        final File codePath = new File(codePathString);
-        final File codeRoot;
-        if (FileUtils.contains(Environment.getRootDirectory(), codePath)) {
-            codeRoot = Environment.getRootDirectory();
-        } else if (FileUtils.contains(Environment.getOemDirectory(), codePath)) {
-            codeRoot = Environment.getOemDirectory();
-        } else if (FileUtils.contains(Environment.getVendorDirectory(), codePath)) {
-            codeRoot = Environment.getVendorDirectory();
-        } else if (FileUtils.contains(Environment.getOdmDirectory(), codePath)) {
-            codeRoot = Environment.getOdmDirectory();
-        } else if (FileUtils.contains(Environment.getProductDirectory(), codePath)) {
-            codeRoot = Environment.getProductDirectory();
-        } else if (FileUtils.contains(Environment.getSystemExtDirectory(), codePath)) {
-            codeRoot = Environment.getSystemExtDirectory();
-        } else if (FileUtils.contains(Environment.getOdmDirectory(), codePath)) {
-            codeRoot = Environment.getOdmDirectory();
-        } else {
-            // Unrecognized code path; take its top real segment as the apk root:
-            // e.g. /something/app/blah.apk => /something
-            try {
-                File f = codePath.getCanonicalFile();
-                File parent = f.getParentFile();    // non-null because codePath is a file
-                File tmp;
-                while ((tmp = parent.getParentFile()) != null) {
-                    f = parent;
-                    parent = tmp;
-                }
-                codeRoot = f;
-                Slog.w(TAG, "Unrecognized code path "
-                        + codePath + " - using " + codeRoot);
-            } catch (IOException e) {
-                // Can't canonicalize the code path -- shenanigans?
-                Slog.w(TAG, "Can't canonicalize code path " + codePath);
-                return Environment.getRootDirectory().getPath();
-            }
-        }
-        return codeRoot.getPath();
-    }
-
-    /**
-     * Derive and set the location of native libraries for the given package,
-     * which varies depending on where and how the package was installed.
-     */
-    private static void setNativeLibraryPaths(PackageParser.Package pkg, File appLib32InstallDir) {
-        final ApplicationInfo info = pkg.applicationInfo;
-        final String codePath = pkg.codePath;
-        final File codeFile = new File(codePath);
-        final boolean bundledApp = info.isSystemApp() && !info.isUpdatedSystemApp();
-
-        info.nativeLibraryRootDir = null;
-        info.nativeLibraryRootRequiresIsa = false;
-        info.nativeLibraryDir = null;
-        info.secondaryNativeLibraryDir = null;
-
-        if (isApkFile(codeFile)) {
-            // Monolithic install
-            if (bundledApp) {
-                // If "/system/lib64/apkname" exists, assume that is the per-package
-                // native library directory to use; otherwise use "/system/lib/apkname".
-                final String apkRoot = calculateBundledApkRoot(info.sourceDir);
-                final boolean is64Bit = VMRuntime.is64BitInstructionSet(
-                        getPrimaryInstructionSet(info));
-
-                // This is a bundled system app so choose the path based on the ABI.
-                // if it's a 64 bit abi, use lib64 otherwise use lib32. Note that this
-                // is just the default path.
-                final String apkName = deriveCodePathName(codePath);
-                final String libDir = is64Bit ? LIB64_DIR_NAME : LIB_DIR_NAME;
-                info.nativeLibraryRootDir = Environment.buildPath(new File(apkRoot), libDir,
-                        apkName).getAbsolutePath();
-
-                if (info.secondaryCpuAbi != null) {
-                    final String secondaryLibDir = is64Bit ? LIB_DIR_NAME : LIB64_DIR_NAME;
-                    info.secondaryNativeLibraryDir = Environment.buildPath(new File(apkRoot),
-                            secondaryLibDir, apkName).getAbsolutePath();
-                }
-            } else {
-                final String apkName = deriveCodePathName(codePath);
-                info.nativeLibraryRootDir = new File(appLib32InstallDir, apkName)
-                        .getAbsolutePath();
-            }
-
-            info.nativeLibraryRootRequiresIsa = false;
-            info.nativeLibraryDir = info.nativeLibraryRootDir;
-        } else {
-            // Cluster install
-            info.nativeLibraryRootDir = new File(codeFile, LIB_DIR_NAME).getAbsolutePath();
-            info.nativeLibraryRootRequiresIsa = true;
-
-            info.nativeLibraryDir = new File(info.nativeLibraryRootDir,
-                    getPrimaryInstructionSet(info)).getAbsolutePath();
-
-            if (info.secondaryCpuAbi != null) {
-                info.secondaryNativeLibraryDir = new File(info.nativeLibraryRootDir,
-                        VMRuntime.getInstructionSet(info.secondaryCpuAbi)).getAbsolutePath();
-            }
-        }
-    }
-
-    /**
-     * Calculate the abis and roots for a bundled app. These can uniquely
-     * be determined from the contents of the system partition, i.e whether
-     * it contains 64 or 32 bit shared libraries etc. We do not validate any
-     * of this information, and instead assume that the system was built
-     * sensibly.
-     */
-    private static void setBundledAppAbisAndRoots(PackageParser.Package pkg,
-                                           PackageSetting pkgSetting) {
-        final String apkName = deriveCodePathName(pkg.applicationInfo.getCodePath());
-
-        // If "/system/lib64/apkname" exists, assume that is the per-package
-        // native library directory to use; otherwise use "/system/lib/apkname".
-        final String apkRoot = calculateBundledApkRoot(pkg.applicationInfo.sourceDir);
-        setBundledAppAbi(pkg, apkRoot, apkName);
-        // pkgSetting might be null during rescan following uninstall of updates
-        // to a bundled app, so accommodate that possibility.  The settings in
-        // that case will be established later from the parsed package.
-        //
-        // If the settings aren't null, sync them up with what we've just derived.
-        // note that apkRoot isn't stored in the package settings.
-        if (pkgSetting != null) {
-            pkgSetting.primaryCpuAbiString = pkg.applicationInfo.primaryCpuAbi;
-            pkgSetting.secondaryCpuAbiString = pkg.applicationInfo.secondaryCpuAbi;
-        }
-    }
-
-    /**
-     * Deduces the ABI of a bundled app and sets the relevant fields on the
-     * parsed pkg object.
-     *
-     * @param apkRoot the root of the installed apk, something like {@code /system} or {@code /oem}
-     *        under which system libraries are installed.
-     * @param apkName the name of the installed package.
-     */
-    private static void setBundledAppAbi(PackageParser.Package pkg, String apkRoot, String apkName) {
-        final File codeFile = new File(pkg.codePath);
-
-        final boolean has64BitLibs;
-        final boolean has32BitLibs;
-        if (isApkFile(codeFile)) {
-            // Monolithic install
-            has64BitLibs = (new File(apkRoot, new File(LIB64_DIR_NAME, apkName).getPath())).exists();
-            has32BitLibs = (new File(apkRoot, new File(LIB_DIR_NAME, apkName).getPath())).exists();
-        } else {
-            // Cluster install
-            final File rootDir = new File(codeFile, LIB_DIR_NAME);
-            if (!ArrayUtils.isEmpty(Build.SUPPORTED_64_BIT_ABIS)
-                    && !TextUtils.isEmpty(Build.SUPPORTED_64_BIT_ABIS[0])) {
-                final String isa = VMRuntime.getInstructionSet(Build.SUPPORTED_64_BIT_ABIS[0]);
-                has64BitLibs = (new File(rootDir, isa)).exists();
-            } else {
-                has64BitLibs = false;
-            }
-            if (!ArrayUtils.isEmpty(Build.SUPPORTED_32_BIT_ABIS)
-                    && !TextUtils.isEmpty(Build.SUPPORTED_32_BIT_ABIS[0])) {
-                final String isa = VMRuntime.getInstructionSet(Build.SUPPORTED_32_BIT_ABIS[0]);
-                has32BitLibs = (new File(rootDir, isa)).exists();
-            } else {
-                has32BitLibs = false;
-            }
-        }
-
-        if (has64BitLibs && !has32BitLibs) {
-            // The package has 64 bit libs, but not 32 bit libs. Its primary
-            // ABI should be 64 bit. We can safely assume here that the bundled
-            // native libraries correspond to the most preferred ABI in the list.
-
-            pkg.applicationInfo.primaryCpuAbi = Build.SUPPORTED_64_BIT_ABIS[0];
-            pkg.applicationInfo.secondaryCpuAbi = null;
-        } else if (has32BitLibs && !has64BitLibs) {
-            // The package has 32 bit libs but not 64 bit libs. Its primary
-            // ABI should be 32 bit.
-
-            pkg.applicationInfo.primaryCpuAbi = Build.SUPPORTED_32_BIT_ABIS[0];
-            pkg.applicationInfo.secondaryCpuAbi = null;
-        } else if (has32BitLibs && has64BitLibs) {
-            // The application has both 64 and 32 bit bundled libraries. We check
-            // here that the app declares multiArch support, and warn if it doesn't.
-            //
-            // We will be lenient here and record both ABIs. The primary will be the
-            // ABI that's higher on the list, i.e, a device that's configured to prefer
-            // 64 bit apps will see a 64 bit primary ABI,
-
-            if ((pkg.applicationInfo.flags & ApplicationInfo.FLAG_MULTIARCH) == 0) {
-                Slog.e(TAG, "Package " + pkg + " has multiple bundled libs, but is not multiarch.");
-            }
-
-            if (VMRuntime.is64BitInstructionSet(getPreferredInstructionSet())) {
-                pkg.applicationInfo.primaryCpuAbi = Build.SUPPORTED_64_BIT_ABIS[0];
-                pkg.applicationInfo.secondaryCpuAbi = Build.SUPPORTED_32_BIT_ABIS[0];
-            } else {
-                pkg.applicationInfo.primaryCpuAbi = Build.SUPPORTED_32_BIT_ABIS[0];
-                pkg.applicationInfo.secondaryCpuAbi = Build.SUPPORTED_64_BIT_ABIS[0];
-            }
-        } else {
-            pkg.applicationInfo.primaryCpuAbi = null;
-            pkg.applicationInfo.secondaryCpuAbi = null;
-        }
-    }
-
     private void killApplication(String pkgName, int appId, String reason) {
         killApplication(pkgName, appId, UserHandle.USER_ALL, reason);
     }
@@ -13553,7 +13040,8 @@
                     // upgrade app from instant to full; we don't allow app downgrade
                     installed = true;
                 }
-                setInstantAppForUser(pkgSetting, userId, instantApp, fullApp);
+                setInstantAppForUser(
+                        getUserManagerInternal(), pkgSetting, userId, instantApp, fullApp);
             }
 
             if (installed) {
@@ -13601,8 +13089,8 @@
         }
     }
 
-    static void setInstantAppForUser(PackageSetting pkgSetting, int userId,
-            boolean instantApp, boolean fullApp) {
+    static void setInstantAppForUser(UserManagerInternal userManager, PackageSetting pkgSetting,
+            int userId, boolean instantApp, boolean fullApp) {
         // no state specified; do nothing
         if (!instantApp && !fullApp) {
             return;
@@ -13614,7 +13102,7 @@
                 pkgSetting.setInstantApp(false /*instantApp*/, userId);
             }
         } else {
-            for (int currentUserId : sUserManager.getUserIds()) {
+            for (int currentUserId : userManager.getUserIds()) {
                 if (instantApp && !pkgSetting.getInstantApp(currentUserId)) {
                     pkgSetting.setInstantApp(true /*instantApp*/, currentUserId);
                 } else if (fullApp && pkgSetting.getInstantApp(currentUserId)) {
@@ -15449,17 +14937,6 @@
                             TRACE_TAG_PACKAGE_MANAGER, "enable_rollback", enableRollbackToken);
                     mPendingEnableRollback.append(enableRollbackToken, this);
 
-                    final int[] installedUsers;
-                    synchronized (mPackages) {
-                        PackageSetting ps = mSettings.getPackageLPr(pkgLite.packageName);
-                        if (ps != null) {
-                            installedUsers = ps.queryInstalledUsers(sUserManager.getUserIds(),
-                                    true);
-                        } else {
-                            installedUsers = new int[0];
-                        }
-                    }
-
                     Intent enableRollbackIntent = new Intent(Intent.ACTION_PACKAGE_ENABLE_ROLLBACK);
                     enableRollbackIntent.putExtra(
                             PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_TOKEN,
@@ -15468,9 +14945,6 @@
                             PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_INSTALL_FLAGS,
                             installFlags);
                     enableRollbackIntent.putExtra(
-                            PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_INSTALLED_USERS,
-                            installedUsers);
-                    enableRollbackIntent.putExtra(
                             PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_USER,
                             getRollbackUser().getIdentifier());
                     enableRollbackIntent.setDataAndType(Uri.fromFile(new File(origin.resolvedPath)),
@@ -15888,16 +15362,6 @@
         }
     }
 
-    private static void maybeThrowExceptionForMultiArchCopy(String message, int copyRet) throws
-            PackageManagerException {
-        if (copyRet < 0) {
-            if (copyRet != PackageManager.NO_NATIVE_LIBRARIES &&
-                    copyRet != PackageManager.INSTALL_FAILED_NO_MATCHING_ABIS) {
-                throw new PackageManagerException(copyRet, message);
-            }
-        }
-    }
-
     /**
      * Logic to handle movement of existing installed applications.
      */
@@ -16024,26 +15488,6 @@
         return result;
     }
 
-    // Utility method that returns the relative package path with respect
-    // to the installation directory. Like say for /data/data/com.test-1.apk
-    // string com.test-1 is returned.
-    static String deriveCodePathName(String codePath) {
-        if (codePath == null) {
-            return null;
-        }
-        final File codeFile = new File(codePath);
-        final String name = codeFile.getName();
-        if (codeFile.isDirectory()) {
-            return name;
-        } else if (name.endsWith(".apk") || name.endsWith(".tmp")) {
-            final int lastDot = name.lastIndexOf('.');
-            return name.substring(0, lastDot);
-        } else {
-            Slog.w(TAG, "Odd, " + codePath + " doesn't look like an APK");
-            return null;
-        }
-    }
-
     static class PackageInstalledInfo {
         String name;
         int uid;
@@ -16976,7 +16420,8 @@
                 final PrepareResult prepareResult;
                 try {
                     Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "preparePackage");
-                    prepareResult = preparePackageLI(request.args, request.installResult);
+                    prepareResult =
+                            preparePackageLI(request.args, request.installResult);
                 } catch (PrepareFailure prepareFailure) {
                     request.installResult.setError(prepareFailure.error,
                             prepareFailure.getMessage());
@@ -17636,7 +17081,11 @@
                 String abiOverride = (TextUtils.isEmpty(pkg.cpuAbiOverride) ?
                         args.abiOverride : pkg.cpuAbiOverride);
                 final boolean extractNativeLibs = !pkg.isLibrary();
-                derivePackageAbi(pkg, abiOverride, extractNativeLibs);
+                final Pair<PackageAbiHelper.Abis, PackageAbiHelper.NativeLibraryPaths>
+                        derivedAbi = mInjector.getAbiHelper().derivePackageAbi(
+                                pkg, abiOverride, extractNativeLibs);
+                derivedAbi.first.applyTo(pkg);
+                derivedAbi.second.applyTo(pkg);
             } catch (PackageManagerException pme) {
                 Slog.e(TAG, "Error deriving application ABI", pme);
                 throw new PrepareFailure(INSTALL_FAILED_INTERNAL_ERROR,
@@ -18165,10 +17614,6 @@
         }
     }
 
-    private static boolean isMultiArch(ApplicationInfo info) {
-        return (info.flags & ApplicationInfo.FLAG_MULTIARCH) != 0;
-    }
-
     private static boolean isExternal(PackageParser.Package pkg) {
         return (pkg.applicationInfo.flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0;
     }
@@ -18177,7 +17622,7 @@
         return (ps.pkgFlags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0;
     }
 
-    private static boolean isSystemApp(PackageParser.Package pkg) {
+    static boolean isSystemApp(PackageParser.Package pkg) {
         return (pkg.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
     }
 
@@ -18616,7 +18061,7 @@
                             continue;
                         }
                         List<VersionedPackage> libClientPackages = getPackagesUsingSharedLibraryLPr(
-                                libraryInfo, 0, currUserId);
+                                libraryInfo, MATCH_KNOWN_PACKAGES, currUserId);
                         if (!ArrayUtils.isEmpty(libClientPackages)) {
                             Slog.w(TAG, "Not removing package " + pkg.manifestPackageName
                                     + " hosting lib " + libraryInfo.getName() + " version "
@@ -18959,80 +18404,28 @@
         }
     }
 
-    static boolean locationIsPrivileged(String path) {
-        try {
-            final File privilegedAppDir = new File(Environment.getRootDirectory(), "priv-app");
-            final File privilegedVendorAppDir = new File(Environment.getVendorDirectory(), "priv-app");
-            final File privilegedOdmAppDir = new File(Environment.getOdmDirectory(), "priv-app");
-            final File privilegedProductAppDir = new File(Environment.getProductDirectory(), "priv-app");
-            final File privilegedSystemExtAppDir =
-                    new File(Environment.getSystemExtDirectory(), "priv-app");
-            return path.startsWith(privilegedAppDir.getCanonicalPath() + "/")
-                    || path.startsWith(privilegedVendorAppDir.getCanonicalPath() + "/")
-                    || path.startsWith(privilegedOdmAppDir.getCanonicalPath() + "/")
-                    || path.startsWith(privilegedProductAppDir.getCanonicalPath() + "/")
-                    || path.startsWith(privilegedSystemExtAppDir.getCanonicalPath() + "/");
-        } catch (IOException e) {
-            Slog.e(TAG, "Unable to access code path " + path);
+    private static @Nullable SystemPartition resolveApexToSystemPartition(
+            ApexManager.ActiveApexInfo apexInfo) {
+        for (int i = 0, size = SYSTEM_PARTITIONS.size(); i < size; i++) {
+            SystemPartition sp = SYSTEM_PARTITIONS.get(i);
+            if (apexInfo.preinstalledApexPath.getAbsolutePath().startsWith(
+                    sp.folder.getAbsolutePath())) {
+                return new SystemPartition(apexInfo.apexDirectory, sp.scanFlag,
+                        false /* hasOverlays */);
+            }
         }
-        return false;
-    }
-
-    static boolean locationIsOem(String path) {
-        try {
-            return path.startsWith(Environment.getOemDirectory().getCanonicalPath() + "/");
-        } catch (IOException e) {
-            Slog.e(TAG, "Unable to access code path " + path);
-        }
-        return false;
-    }
-
-    static boolean locationIsVendor(String path) {
-        try {
-            return path.startsWith(Environment.getVendorDirectory().getCanonicalPath() + "/")
-                    || path.startsWith(Environment.getOdmDirectory().getCanonicalPath() + "/");
-        } catch (IOException e) {
-            Slog.e(TAG, "Unable to access code path " + path);
-        }
-        return false;
-    }
-
-    static boolean locationIsProduct(String path) {
-        try {
-            return path.startsWith(Environment.getProductDirectory().getCanonicalPath() + "/");
-        } catch (IOException e) {
-            Slog.e(TAG, "Unable to access code path " + path);
-        }
-        return false;
-    }
-
-    static boolean locationIsSystemExt(String path) {
-        try {
-            return path.startsWith(
-              Environment.getSystemExtDirectory().getCanonicalPath() + "/");
-        } catch (IOException e) {
-            Slog.e(TAG, "Unable to access code path " + path);
-        }
-        return false;
-    }
-
-    static boolean locationIsOdm(String path) {
-        try {
-            return path.startsWith(Environment.getOdmDirectory().getCanonicalPath() + "/");
-        } catch (IOException e) {
-            Slog.e(TAG, "Unable to access code path " + path);
-        }
-        return false;
+        return null;
     }
 
     /*
      * Tries to delete system package.
      */
     private void deleteSystemPackageLIF(DeletePackageAction action, PackageSetting deletedPs,
-            int[] allUserHandles, int flags, PackageRemovedInfo outInfo, boolean writeSettings)
+            int[] allUserHandles, int flags, @Nullable PackageRemovedInfo outInfo,
+            boolean writeSettings)
             throws SystemDeleteException {
-        final boolean applyUserRestrictions
-                = (allUserHandles != null) && (outInfo.origUsers != null);
+        final boolean applyUserRestrictions =
+                (allUserHandles != null) && outInfo != null && (outInfo.origUsers != null);
         final PackageParser.Package deletedPkg = deletedPs.pkg;
         // Confirm if the system package has been updated
         // An updated system app can be deleted. This will also have to restore
@@ -19053,19 +18446,21 @@
             }
         }
 
-        // Delete the updated package
-        outInfo.isRemovedPackageSystemUpdate = true;
-        if (outInfo.removedChildPackages != null) {
-            final int childCount = (deletedPs.childPackageNames != null)
-                    ? deletedPs.childPackageNames.size() : 0;
-            for (int i = 0; i < childCount; i++) {
-                String childPackageName = deletedPs.childPackageNames.get(i);
-                if (disabledPs.childPackageNames != null && disabledPs.childPackageNames
-                        .contains(childPackageName)) {
-                    PackageRemovedInfo childInfo = outInfo.removedChildPackages.get(
-                            childPackageName);
-                    if (childInfo != null) {
-                        childInfo.isRemovedPackageSystemUpdate = true;
+        if (outInfo != null) {
+            // Delete the updated package
+            outInfo.isRemovedPackageSystemUpdate = true;
+            if (outInfo.removedChildPackages != null) {
+                final int childCount = (deletedPs.childPackageNames != null)
+                        ? deletedPs.childPackageNames.size() : 0;
+                for (int i = 0; i < childCount; i++) {
+                    String childPackageName = deletedPs.childPackageNames.get(i);
+                    if (disabledPs.childPackageNames != null && disabledPs.childPackageNames
+                            .contains(childPackageName)) {
+                        PackageRemovedInfo childInfo = outInfo.removedChildPackages.get(
+                                childPackageName);
+                        if (childInfo != null) {
+                            childInfo.isRemovedPackageSystemUpdate = true;
+                        }
                     }
                 }
             }
@@ -19098,7 +18493,8 @@
         if (DEBUG_REMOVE) Slog.d(TAG, "Re-installing system package: " + disabledPs);
         try {
             installPackageFromSystemLIF(disabledPs.codePathString, allUserHandles,
-                    outInfo.origUsers, deletedPs.getPermissionsState(), writeSettings);
+                    outInfo == null ? null : outInfo.origUsers, deletedPs.getPermissionsState(),
+                    writeSettings);
         } catch (PackageManagerException e) {
             Slog.w(TAG, "Failed to restore system package:" + deletedPkg.packageName + ": "
                     + e.getMessage());
@@ -19130,23 +18526,15 @@
                 | PackageParser.PARSE_MUST_BE_APK
                 | PackageParser.PARSE_IS_SYSTEM_DIR;
         @ScanFlags int scanFlags = SCAN_AS_SYSTEM;
-        if (locationIsPrivileged(codePathString)) {
-            scanFlags |= SCAN_AS_PRIVILEGED;
-        }
-        if (locationIsOem(codePathString)) {
-            scanFlags |= SCAN_AS_OEM;
-        }
-        if (locationIsVendor(codePathString)) {
-            scanFlags |= SCAN_AS_VENDOR;
-        }
-        if (locationIsProduct(codePathString)) {
-            scanFlags |= SCAN_AS_PRODUCT;
-        }
-        if (locationIsSystemExt(codePathString)) {
-            scanFlags |= SCAN_AS_SYSTEM_EXT;
-        }
-        if (locationIsOdm(codePathString)) {
-            scanFlags |= SCAN_AS_ODM;
+        for (int i = 0, size = mDirsToScanAsSystem.size(); i < size; i++) {
+            SystemPartition partition = mDirsToScanAsSystem.get(i);
+            if (partition.containsPath(codePathString)) {
+                scanFlags |= partition.scanFlag;
+                if (partition.containsPrivPath(codePathString)) {
+                    scanFlags |= SCAN_AS_PRIVILEGED;
+                }
+                break;
+            }
         }
 
         final File codePath = new File(codePathString);
@@ -21174,6 +20562,16 @@
     }
 
     @Override
+    public String[] getTelephonyPackageNames() {
+        String names = mContext.getString(R.string.config_telephonyPackages);
+        String[] telephonyPackageNames = null;
+        if (!TextUtils.isEmpty(names)) {
+            telephonyPackageNames = names.trim().split(",");
+        }
+        return telephonyPackageNames;
+    }
+
+    @Override
     public void setApplicationEnabledSetting(String appPackageName,
             int newState, int flags, int userId, String callingPackage) {
         if (!sUserManager.exists(userId)) return;
@@ -22950,9 +22348,9 @@
             mSettings.writeKernelMappingLPr(ps);
         }
 
-        final UserManager um = mContext.getSystemService(UserManager.class);
+        final UserManagerService um = sUserManager;
         UserManagerInternal umInternal = getUserManagerInternal();
-        for (UserInfo user : um.getUsers()) {
+        for (UserInfo user : um.getUsers(false /* excludeDying */)) {
             final int flags;
             if (umInternal.isUserUnlockingOrUnlocked(user.id)) {
                 flags = StorageManager.FLAG_STORAGE_DE | StorageManager.FLAG_STORAGE_CE;
@@ -23635,8 +23033,9 @@
                 continue;
             }
             final String packageName = ps.pkg.packageName;
-            // Skip over if system app
-            if ((ps.pkgFlags & ApplicationInfo.FLAG_SYSTEM) != 0) {
+            // Skip over if system app or static shared library
+            if ((ps.pkgFlags & ApplicationInfo.FLAG_SYSTEM) != 0
+                    || !TextUtils.isEmpty(ps.pkg.staticSharedLibName)) {
                 continue;
             }
             if (DEBUG_CLEAN_APKS) {
@@ -24322,34 +23721,36 @@
         }
 
         @Override
-        public String getKnownPackageName(int knownPackage, int userId) {
+        public @NonNull String[] getKnownPackageNames(int knownPackage, int userId) {
             switch(knownPackage) {
                 case PackageManagerInternal.PACKAGE_BROWSER:
-                    return getDefaultBrowserPackageName(userId);
+                    return new String[]{getDefaultBrowserPackageName(userId)};
                 case PackageManagerInternal.PACKAGE_INSTALLER:
-                    return mRequiredInstallerPackage;
+                    return new String[]{mRequiredInstallerPackage};
                 case PackageManagerInternal.PACKAGE_SETUP_WIZARD:
-                    return mSetupWizardPackage;
+                    return new String[]{mSetupWizardPackage};
                 case PackageManagerInternal.PACKAGE_SYSTEM:
-                    return "android";
+                    return new String[]{"android"};
                 case PackageManagerInternal.PACKAGE_VERIFIER:
-                    return mRequiredVerifierPackage;
+                    return new String[]{mRequiredVerifierPackage};
                 case PackageManagerInternal.PACKAGE_SYSTEM_TEXT_CLASSIFIER:
-                    return mSystemTextClassifierPackage;
+                    return new String[]{mSystemTextClassifierPackage};
                 case PackageManagerInternal.PACKAGE_PERMISSION_CONTROLLER:
-                    return mRequiredPermissionControllerPackage;
+                    return new String[]{mRequiredPermissionControllerPackage};
                 case PackageManagerInternal.PACKAGE_WELLBEING:
-                    return mWellbeingPackage;
+                    return new String[]{mWellbeingPackage};
                 case PackageManagerInternal.PACKAGE_DOCUMENTER:
-                    return mDocumenterPackage;
+                    return new String[]{mDocumenterPackage};
                 case PackageManagerInternal.PACKAGE_CONFIGURATOR:
-                    return mConfiguratorPackage;
+                    return new String[]{mConfiguratorPackage};
                 case PackageManagerInternal.PACKAGE_INCIDENT_REPORT_APPROVER:
-                    return mIncidentReportApproverPackage;
+                    return new String[]{mIncidentReportApproverPackage};
                 case PackageManagerInternal.PACKAGE_APP_PREDICTOR:
-                    return mAppPredictionServicePackage;
+                    return new String[]{mAppPredictionServicePackage};
+                case PackageManagerInternal.PACKAGE_TELEPHONY:
+                    return mTelephonyPackages;
             }
-            return null;
+            return ArrayUtils.emptyArray(String.class);
         }
 
         @Override
@@ -24505,6 +23906,12 @@
         public List<ResolveInfo> queryIntentActivities(
                 Intent intent, int flags, int filterCallingUid, int userId) {
             final String resolvedType = intent.resolveTypeIfNeeded(mContext.getContentResolver());
+            return queryIntentActivities(intent, resolvedType, flags, filterCallingUid, userId);
+        }
+
+        @Override
+        public List<ResolveInfo> queryIntentActivities(
+                Intent intent, String resolvedType, int flags, int filterCallingUid, int userId) {
             return PackageManagerService.this
                     .queryIntentActivitiesInternal(intent, resolvedType, flags, filterCallingUid,
                             userId, false /*resolveForStart*/, true /*allowDynamicSplits*/);
diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
index 9091168..e991a91 100644
--- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
+++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
@@ -3174,7 +3174,7 @@
         pw.println("       [--user USER_ID] INTENT");
         pw.println("    Prints all broadcast receivers that can handle the given INTENT.");
         pw.println("");
-        pw.println("  install [-lrtsfdgw] [-i PACKAGE] [--user USER_ID|all|current]");
+        pw.println("  install [-lrtfdgw] [-i PACKAGE] [--user USER_ID|all|current]");
         pw.println("       [-p INHERIT_PACKAGE] [--install-location 0/1/2]");
         pw.println("       [--install-reason 0/1/2/3/4] [--originating-uri URI]");
         pw.println("       [--referrer URI] [--abi ABI_NAME] [--force-sdk]");
@@ -3189,7 +3189,6 @@
         pw.println("      -R: disallow replacement of existing application");
         pw.println("      -t: allow test packages");
         pw.println("      -i: specify package name of installer owning the app");
-        pw.println("      -s: install application on sdcard");
         pw.println("      -f: install application on internal flash");
         pw.println("      -d: allow version code downgrade (debuggable packages only)");
         pw.println("      -p: partial application install (new split on top of existing pkg)");
diff --git a/services/core/java/com/android/server/pm/PackageSettingBase.java b/services/core/java/com/android/server/pm/PackageSettingBase.java
index 58f262c..029673f 100644
--- a/services/core/java/com/android/server/pm/PackageSettingBase.java
+++ b/services/core/java/com/android/server/pm/PackageSettingBase.java
@@ -270,7 +270,8 @@
         updateAvailable = orig.updateAvailable;
     }
 
-    private PackageUserState modifyUserState(int userId) {
+    @VisibleForTesting
+    PackageUserState modifyUserState(int userId) {
         PackageUserState state = mUserState.get(userId);
         if (state == null) {
             state = new PackageUserState();
@@ -463,6 +464,18 @@
         state.harmfulAppWarning = harmfulAppWarning;
     }
 
+    void setUserState(int userId, PackageUserState otherState) {
+        setUserState(userId, otherState.ceDataInode, otherState.enabled, otherState.installed,
+                otherState.stopped, otherState.notLaunched, otherState.hidden,
+                otherState.distractionFlags, otherState.suspended, otherState.suspendingPackage,
+                otherState.dialogInfo, otherState.suspendedAppExtras,
+                otherState.suspendedLauncherExtras, otherState.instantApp,
+                otherState.virtualPreload, otherState.lastDisableAppCaller,
+                otherState.enabledComponents, otherState.disabledComponents,
+                otherState.domainVerificationStatus, otherState.appLinkGeneration,
+                otherState.installReason, otherState.harmfulAppWarning);
+    }
+
     ArraySet<String> getEnabledComponents(int userId) {
         return readUserState(userId).enabledComponents;
     }
diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java
index 3bc2236..d1e4537 100644
--- a/services/core/java/com/android/server/pm/Settings.java
+++ b/services/core/java/com/android/server/pm/Settings.java
@@ -3337,7 +3337,8 @@
             int flags, ComponentName cn, String scheme, PatternMatcher ssp,
             IntentFilter.AuthorityEntry auth, PatternMatcher path, int userId) {
         final List<ResolveInfo> ri =
-                pmInternal.queryIntentActivities(intent, flags, Binder.getCallingUid(), 0);
+                pmInternal.queryIntentActivities(
+                        intent, intent.getType(), flags, Binder.getCallingUid(), 0);
         if (PackageManagerService.DEBUG_PREFERRED) {
             Log.d(TAG, "Queried " + intent + " results: " + ri);
         }
@@ -3505,7 +3506,7 @@
         int pkgFlags = 0;
         int pkgPrivateFlags = 0;
         pkgFlags |= ApplicationInfo.FLAG_SYSTEM;
-        if (PackageManagerService.locationIsPrivileged(codePathStr)) {
+        if (codePathStr.contains("/priv-app/")) {
             pkgPrivateFlags |= ApplicationInfo.PRIVATE_FLAG_PRIVILEGED;
         }
         PackageSetting ps = new PackageSetting(name, realName, new File(codePathStr),
diff --git a/services/core/java/com/android/server/pm/StagingManager.java b/services/core/java/com/android/server/pm/StagingManager.java
index 88d681f..2705455 100644
--- a/services/core/java/com/android/server/pm/StagingManager.java
+++ b/services/core/java/com/android/server/pm/StagingManager.java
@@ -30,6 +30,7 @@
 import android.content.pm.PackageInstaller;
 import android.content.pm.PackageInstaller.SessionInfo;
 import android.content.pm.PackageManager;
+import android.content.pm.PackageParser;
 import android.content.pm.PackageParser.PackageParserException;
 import android.content.pm.PackageParser.SigningDetails;
 import android.content.pm.PackageParser.SigningDetails.SignatureSchemeVersion;
@@ -43,6 +44,7 @@
 import android.os.PowerManager;
 import android.os.RemoteException;
 import android.os.ServiceManager;
+import android.util.IntArray;
 import android.util.Slog;
 import android.util.SparseArray;
 import android.util.apk.ApkSignatureVerifier;
@@ -104,21 +106,22 @@
         return new ParceledListSlice<>(result);
     }
 
-    private boolean validateApexSignature(String apexPath, String apexModuleName) {
+    private void validateApexSignature(String apexPath, String packageName)
+            throws PackageManagerException {
         final SigningDetails signingDetails;
         try {
             signingDetails = ApkSignatureVerifier.verify(apexPath, SignatureSchemeVersion.JAR);
         } catch (PackageParserException e) {
-            Slog.e(TAG, "Unable to parse APEX package: " + apexPath, e);
-            return false;
+            throw new PackageManagerException(SessionInfo.STAGED_SESSION_VERIFICATION_FAILED,
+                    "Failed to parse APEX package " + apexPath, e);
         }
 
-        final PackageInfo packageInfo = mApexManager.getPackageInfoForApexName(apexModuleName);
-
+        final PackageInfo packageInfo = mApexManager.getPackageInfo(packageName,
+                ApexManager.MATCH_ACTIVE_PACKAGE);
         if (packageInfo == null) {
-            // Don't allow installation of new APEX.
-            Slog.e(TAG, "Attempted to install a new apex " + apexModuleName + ". Rejecting");
-            return false;
+            // This should never happen, because submitSessionToApexService ensures that no new
+            // apexes were installed.
+            throw new IllegalStateException("Unknown apex package " + packageName);
         }
 
         final SigningDetails existingSigningDetails;
@@ -126,73 +129,99 @@
             existingSigningDetails = ApkSignatureVerifier.verify(
                 packageInfo.applicationInfo.sourceDir, SignatureSchemeVersion.JAR);
         } catch (PackageParserException e) {
-            Slog.e(TAG, "Unable to parse APEX package: "
-                    + packageInfo.applicationInfo.sourceDir, e);
-            return false;
+            throw new PackageManagerException(SessionInfo.STAGED_SESSION_VERIFICATION_FAILED,
+                    "Failed to parse APEX package " + packageInfo.applicationInfo.sourceDir, e);
         }
 
         // Now that we have both sets of signatures, demand that they're an exact match.
         if (Signature.areExactMatch(existingSigningDetails.signatures, signingDetails.signatures)) {
-            return true;
+            return;
         }
 
-        return false;
+        throw new PackageManagerException(SessionInfo.STAGED_SESSION_VERIFICATION_FAILED,
+                "APK-container signature verification failed for package "
+                        + packageName + ". Signature of file "
+                        + apexPath + " does not match the signature of "
+                        + " the package already installed.");
     }
 
-    private boolean submitSessionToApexService(@NonNull PackageInstallerSession session,
-                                               List<PackageInstallerSession> childSessions,
-                                               ApexInfoList apexInfoList) {
-        boolean submittedToApexd = mApexManager.submitStagedSession(
-                session.sessionId,
-                childSessions != null
-                        ? childSessions.stream().mapToInt(s -> s.sessionId).toArray() :
-                        new int[]{},
-                apexInfoList);
-        if (!submittedToApexd) {
-            session.setStagedSessionFailed(
-                    SessionInfo.STAGED_SESSION_VERIFICATION_FAILED,
-                    "APEX staging failed, check logcat messages from apexd for more details.");
-            return false;
-        }
-        for (ApexInfo newModule : apexInfoList.apexInfos) {
-            PackageInfo activePackage = mApexManager.getPackageInfoForApexName(
-                    newModule.moduleName);
-            if (activePackage == null) {
-                continue;
+    private List<PackageInfo> submitSessionToApexService(
+            @NonNull PackageInstallerSession session) throws PackageManagerException {
+        final IntArray childSessionsIds = new IntArray();
+        if (session.isMultiPackage()) {
+            for (int id : session.getChildSessionIds()) {
+                if (isApexSession(mStagedSessions.get(id))) {
+                    childSessionsIds.add(id);
+                }
             }
-            long activeVersion = activePackage.applicationInfo.longVersionCode;
-            if (session.params.requiredInstalledVersionCode
-                    != PackageManager.VERSION_CODE_HIGHEST) {
-                if (activeVersion != session.params.requiredInstalledVersionCode) {
-                    session.setStagedSessionFailed(
-                            SessionInfo.STAGED_SESSION_VERIFICATION_FAILED,
-                            "Installed version of APEX package " + activePackage.packageName
+        }
+        // submitStagedSession will throw a PackageManagerException if apexd verification fails,
+        // which will be propagated to populate stagedSessionErrorMessage of this session.
+        final ApexInfoList apexInfoList = mApexManager.submitStagedSession(session.sessionId,
+                childSessionsIds.toArray());
+        final List<PackageInfo> result = new ArrayList<>();
+        for (ApexInfo apexInfo : apexInfoList.apexInfos) {
+            final PackageInfo packageInfo;
+            int flags = PackageManager.GET_META_DATA;
+            PackageParser.Package pkg;
+            try {
+                File apexFile = new File(apexInfo.modulePath);
+                PackageParser pp = new PackageParser();
+                pkg = pp.parsePackage(apexFile, flags, false);
+            } catch (PackageParserException e) {
+                throw new PackageManagerException(SessionInfo.STAGED_SESSION_VERIFICATION_FAILED,
+                        "Failed to parse APEX package " + apexInfo.modulePath, e);
+            }
+            packageInfo = PackageParser.generatePackageInfo(pkg, apexInfo, flags);
+            final PackageInfo activePackage = mApexManager.getPackageInfo(packageInfo.packageName,
+                    ApexManager.MATCH_ACTIVE_PACKAGE);
+            if (activePackage == null) {
+                Slog.w(TAG, "Attempting to install new APEX package " + packageInfo.packageName);
+                throw new PackageManagerException(SessionInfo.STAGED_SESSION_VERIFICATION_FAILED,
+                        "It is forbidden to install new APEX packages.");
+            }
+            checkRequiredVersionCode(session, activePackage);
+            checkDowngrade(session, activePackage, packageInfo);
+            result.add(packageInfo);
+        }
+        return result;
+    }
+
+    private void checkRequiredVersionCode(final PackageInstallerSession session,
+            final PackageInfo activePackage) throws PackageManagerException {
+        if (session.params.requiredInstalledVersionCode == PackageManager.VERSION_CODE_HIGHEST) {
+            return;
+        }
+        final long activeVersion = activePackage.applicationInfo.longVersionCode;
+        if (activeVersion != session.params.requiredInstalledVersionCode) {
+            if (!mApexManager.abortActiveSession()) {
+                Slog.e(TAG, "Failed to abort apex session " + session.sessionId);
+            }
+            throw new PackageManagerException(
+                    SessionInfo.STAGED_SESSION_VERIFICATION_FAILED,
+                    "Installed version of APEX package " + activePackage.packageName
                             + " does not match required. Active version: " + activeVersion
                             + " required: " + session.params.requiredInstalledVersionCode);
-
-                    if (!mApexManager.abortActiveSession()) {
-                        Slog.e(TAG, "Failed to abort apex session " + session.sessionId);
-                    }
-                    return false;
-                }
-            }
-
-            boolean allowsDowngrade = PackageManagerServiceUtils.isDowngradePermitted(
-                    session.params.installFlags, activePackage.applicationInfo.flags);
-            if (activeVersion > newModule.versionCode && !allowsDowngrade) {
-                session.setStagedSessionFailed(
-                        SessionInfo.STAGED_SESSION_VERIFICATION_FAILED,
-                        "Downgrade of APEX package " + activePackage.packageName
-                                + " is not allowed. Active version: " + activeVersion
-                                + " attempted: " + newModule.versionCode);
-
-                if (!mApexManager.abortActiveSession()) {
-                    Slog.e(TAG, "Failed to abort apex session " + session.sessionId);
-                }
-                return false;
-            }
         }
-        return true;
+    }
+
+    private void checkDowngrade(final PackageInstallerSession session,
+            final PackageInfo activePackage, final PackageInfo newPackage)
+            throws PackageManagerException {
+        final long activeVersion = activePackage.applicationInfo.longVersionCode;
+        final long newVersionCode = newPackage.applicationInfo.longVersionCode;
+        boolean allowsDowngrade = PackageManagerServiceUtils.isDowngradePermitted(
+                session.params.installFlags, activePackage.applicationInfo.flags);
+        if (activeVersion > newVersionCode && !allowsDowngrade) {
+            if (!mApexManager.abortActiveSession()) {
+                Slog.e(TAG, "Failed to abort apex session " + session.sessionId);
+            }
+            throw new PackageManagerException(
+                    SessionInfo.STAGED_SESSION_VERIFICATION_FAILED,
+                    "Downgrade of APEX package " + newPackage.packageName
+                            + " is not allowed. Active version: " + activeVersion
+                            + " attempted: " + newVersionCode);
+        }
     }
 
     private static boolean isApexSession(@NonNull PackageInstallerSession session) {
@@ -200,31 +229,20 @@
     }
 
     private void preRebootVerification(@NonNull PackageInstallerSession session) {
-        boolean success = true;
-
-        final ApexInfoList apexInfoList = new ApexInfoList();
+        final boolean hasApex = sessionContainsApex(session);
         // APEX checks. For single-package sessions, check if they contain an APEX. For
         // multi-package sessions, find all the child sessions that contain an APEX.
-        if (!session.isMultiPackage()
-                && isApexSession(session)) {
-            success = submitSessionToApexService(session, null, apexInfoList);
-
-        } else if (session.isMultiPackage()) {
-            List<PackageInstallerSession> childSessions =
-                    Arrays.stream(session.getChildSessionIds())
-                            // Retrieve cached sessions matching ids.
-                            .mapToObj(i -> mStagedSessions.get(i))
-                            // Filter only the ones containing APEX.
-                            .filter(childSession -> isApexSession(childSession))
-                            .collect(Collectors.toList());
-            if (!childSessions.isEmpty()) {
-                success = submitSessionToApexService(session, childSessions, apexInfoList);
-            } // else this is a staged multi-package session with no APEX files.
-        }
-
-        if (!success) {
-            // submitSessionToApexService will populate error.
-            return;
+        if (hasApex) {
+            try {
+                final List<PackageInfo> apexPackages = submitSessionToApexService(session);
+                for (PackageInfo apexPackage : apexPackages) {
+                    validateApexSignature(apexPackage.applicationInfo.sourceDir,
+                            apexPackage.packageName);
+                }
+            } catch (PackageManagerException e) {
+                session.setStagedSessionFailed(e.error, e.getMessage());
+                return;
+            }
         }
 
         if (sessionContainsApk(session)) {
@@ -237,25 +255,6 @@
             }
         }
 
-        if (apexInfoList.apexInfos != null && apexInfoList.apexInfos.length > 0) {
-            // For APEXes, we validate the signature here before we mark the session as ready,
-            // so we fail the session early if there is a signature mismatch. For APKs, the
-            // signature verification will be done by the package manager at the point at which
-            // it applies the staged install.
-            for (ApexInfo apexModule : apexInfoList.apexInfos) {
-                if (!validateApexSignature(apexModule.modulePath,
-                        apexModule.moduleName)) {
-                    session.setStagedSessionFailed(SessionInfo.STAGED_SESSION_VERIFICATION_FAILED,
-                            "APK-container signature verification failed for package "
-                                    + apexModule.moduleName + ". Signature of file "
-                                    + apexModule.modulePath + " does not match the signature of "
-                                    + " the package already installed.");
-                    // TODO(b/118865310): abort the session on apexd.
-                    return;
-                }
-            }
-        }
-
         if ((session.params.installFlags & PackageManager.INSTALL_ENABLE_ROLLBACK) != 0) {
             // If rollback is enabled for this session, we call through to the RollbackManager
             // with the list of sessions it must enable rollback for. Note that notifyStagedSession
@@ -273,12 +272,24 @@
             }
         }
 
+        // Proactively mark session as ready before calling apexd. Although this call order looks
+        // counter-intuitive, this is the easiest way to ensure that session won't end up in the
+        // inconsistent state:
+        //  - If device gets rebooted right before call to apexd, then apexd will never activate
+        //      apex files of this staged session. This will result in StagingManager failing the
+        //      session.
+        // On the other hand, if the order of the calls was inverted (first call apexd, then mark
+        // session as ready), then if a device gets rebooted right after the call to apexd, only
+        // apex part of the train will be applied, leaving device in an inconsistent state.
         session.setStagedSessionReady();
-        if (sessionContainsApex(session)
-                && !mApexManager.markStagedSessionReady(session.sessionId)) {
-            session.setStagedSessionFailed(SessionInfo.STAGED_SESSION_VERIFICATION_FAILED,
-                            "APEX staging failed, check logcat messages from apexd for more "
-                            + "details.");
+        if (!hasApex) {
+            // Session doesn't contain apex, nothing to do.
+            return;
+        }
+        try {
+            mApexManager.markStagedSessionReady(session.sessionId);
+        } catch (PackageManagerException e) {
+            session.setStagedSessionFailed(e.error, e.getMessage());
         }
     }
 
diff --git a/services/core/java/com/android/server/pm/TEST_MAPPING b/services/core/java/com/android/server/pm/TEST_MAPPING
index 15dc6ae..0101366 100644
--- a/services/core/java/com/android/server/pm/TEST_MAPPING
+++ b/services/core/java/com/android/server/pm/TEST_MAPPING
@@ -8,6 +8,20 @@
     },
     {
       "name": "CtsCompilationTestCases"
+    },
+    {
+      "name": "FrameworksServicesTests",
+      "options": [
+        {
+          "include-filter": "com.android.server.pm."
+        },
+        {
+          "include-annotation": "android.platform.test.annotations.Presubmit"
+        },
+        {
+          "exclude-annotation": "androidx.test.filters.FlakyTest"
+        }
+      ]
     }
   ],
   "imports": [
diff --git a/services/core/java/com/android/server/pm/dex/ArtManagerService.java b/services/core/java/com/android/server/pm/dex/ArtManagerService.java
index 9948a3a..b8d3ca5 100644
--- a/services/core/java/com/android/server/pm/dex/ArtManagerService.java
+++ b/services/core/java/com/android/server/pm/dex/ArtManagerService.java
@@ -317,9 +317,13 @@
             case ArtManager.PROFILE_APPS :
                 return SystemProperties.getBoolean("dalvik.vm.usejitprofiles", false);
             case ArtManager.PROFILE_BOOT_IMAGE:
+                // The device config property overrides the system property version.
+                boolean profileBootClassPath = SystemProperties.getBoolean(
+                        "persist.device_config.runtime_native_boot.profilebootclasspath",
+                        SystemProperties.getBoolean("dalvik.vm.profilebootclasspath", false));
                 return (Build.IS_USERDEBUG || Build.IS_ENG) &&
                         SystemProperties.getBoolean("dalvik.vm.usejitprofiles", false) &&
-                        SystemProperties.getBoolean("dalvik.vm.profilebootimage", false);
+                        profileBootClassPath;
             default:
                 throw new IllegalArgumentException("Invalid profile type:" + profileType);
         }
diff --git a/services/core/java/com/android/server/pm/permission/BasePermission.java b/services/core/java/com/android/server/pm/permission/BasePermission.java
index 6d22faa..c39dcfe 100644
--- a/services/core/java/com/android/server/pm/permission/BasePermission.java
+++ b/services/core/java/com/android/server/pm/permission/BasePermission.java
@@ -276,6 +276,9 @@
     public boolean isAppPredictor() {
         return (protectionLevel & PermissionInfo.PROTECTION_FLAG_APP_PREDICTOR) != 0;
     }
+    public boolean isTelephony() {
+        return (protectionLevel & PermissionInfo.PROTECTION_FLAG_TELEPHONY) != 0;
+    }
 
     public void transfer(@NonNull String origPackageName, @NonNull String newPackageName) {
         if (!origPackageName.equals(sourcePackageName)) {
diff --git a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
index f762985..5870986 100644
--- a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
+++ b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
@@ -436,17 +436,20 @@
 
         // Installer
         grantSystemFixedPermissionsToSystemPackage(
-                getKnownPackage(PackageManagerInternal.PACKAGE_INSTALLER, userId),
+                ArrayUtils.firstOrNull(getKnownPackages(
+                        PackageManagerInternal.PACKAGE_INSTALLER, userId)),
                 userId, STORAGE_PERMISSIONS);
 
         // Verifier
-        final String verifier = getKnownPackage(PackageManagerInternal.PACKAGE_VERIFIER, userId);
+        final String verifier = ArrayUtils.firstOrNull(getKnownPackages(
+                PackageManagerInternal.PACKAGE_VERIFIER, userId));
         grantSystemFixedPermissionsToSystemPackage(verifier, userId, STORAGE_PERMISSIONS);
         grantPermissionsToSystemPackage(verifier, userId, PHONE_PERMISSIONS, SMS_PERMISSIONS);
 
         // SetupWizard
         grantPermissionsToSystemPackage(
-                getKnownPackage(PackageManagerInternal.PACKAGE_SETUP_WIZARD, userId), userId,
+                ArrayUtils.firstOrNull(getKnownPackages(
+                        PackageManagerInternal.PACKAGE_SETUP_WIZARD, userId)), userId,
                 PHONE_PERMISSIONS, CONTACTS_PERMISSIONS, ALWAYS_LOCATION_PERMISSIONS,
                 CAMERA_PERMISSIONS);
 
@@ -595,7 +598,8 @@
                 userId, CONTACTS_PERMISSIONS, CALENDAR_PERMISSIONS);
 
         // Browser
-        String browserPackage = getKnownPackage(PackageManagerInternal.PACKAGE_BROWSER, userId);
+        String browserPackage = ArrayUtils.firstOrNull(getKnownPackages(
+                PackageManagerInternal.PACKAGE_BROWSER, userId));
         if (browserPackage == null) {
             browserPackage = getDefaultSystemHandlerActivityPackageForCategory(
                     Intent.CATEGORY_APP_BROWSER, userId);
@@ -760,8 +764,8 @@
         }
     }
 
-    private String getKnownPackage(int knownPkgId, int userId) {
-        return mServiceInternal.getKnownPackageName(knownPkgId, userId);
+    private @NonNull String[] getKnownPackages(int knownPkgId, int userId) {
+        return mServiceInternal.getKnownPackageNames(knownPkgId, userId);
     }
 
     private void grantDefaultPermissionsToDefaultSystemDialerApp(
diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
index 6d1f2d3..6a7c622 100644
--- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
+++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
@@ -1706,8 +1706,9 @@
                 }
             }
         }
-        final String systemPackageName = mPackageManagerInt.getKnownPackageName(
-                PackageManagerInternal.PACKAGE_SYSTEM, UserHandle.USER_SYSTEM);
+        // expect single system package
+        String systemPackageName = ArrayUtils.firstOrNull(mPackageManagerInt.getKnownPackageNames(
+                PackageManagerInternal.PACKAGE_SYSTEM, UserHandle.USER_SYSTEM));
         final PackageParser.Package systemPackage =
                 mPackageManagerInt.getPackage(systemPackageName);
 
@@ -1823,18 +1824,19 @@
             //                  need a separate flag anymore. Hence we need to check which
             //                  permissions are needed by the permission controller
             if (!allowed && bp.isInstaller()
-                    && (pkg.packageName.equals(mPackageManagerInt.getKnownPackageName(
-                            PackageManagerInternal.PACKAGE_INSTALLER, UserHandle.USER_SYSTEM))
-                    || pkg.packageName.equals(mPackageManagerInt.getKnownPackageName(
+                    && ArrayUtils.contains(mPackageManagerInt.getKnownPackageNames(
+                            PackageManagerInternal.PACKAGE_INSTALLER, UserHandle.USER_SYSTEM),
+                    pkg.packageName) || ArrayUtils.contains(mPackageManagerInt.getKnownPackageNames(
                             PackageManagerInternal.PACKAGE_PERMISSION_CONTROLLER,
-                            UserHandle.USER_SYSTEM)))) {
+                    UserHandle.USER_SYSTEM), pkg.packageName)) {
                 // If this permission is to be granted to the system installer and
                 // this app is an installer, then it gets the permission.
                 allowed = true;
             }
             if (!allowed && bp.isVerifier()
-                    && pkg.packageName.equals(mPackageManagerInt.getKnownPackageName(
-                            PackageManagerInternal.PACKAGE_VERIFIER, UserHandle.USER_SYSTEM))) {
+                    && ArrayUtils.contains(mPackageManagerInt.getKnownPackageNames(
+                            PackageManagerInternal.PACKAGE_VERIFIER, UserHandle.USER_SYSTEM),
+                    pkg.packageName)) {
                 // If this permission is to be granted to the system verifier and
                 // this app is a verifier, then it gets the permission.
                 allowed = true;
@@ -1850,53 +1852,64 @@
                 allowed = origPermissions.hasInstallPermission(perm);
             }
             if (!allowed && bp.isSetup()
-                    && pkg.packageName.equals(mPackageManagerInt.getKnownPackageName(
-                            PackageManagerInternal.PACKAGE_SETUP_WIZARD, UserHandle.USER_SYSTEM))) {
+                    && ArrayUtils.contains(mPackageManagerInt.getKnownPackageNames(
+                            PackageManagerInternal.PACKAGE_SETUP_WIZARD, UserHandle.USER_SYSTEM),
+                    pkg.packageName)) {
                 // If this permission is to be granted to the system setup wizard and
                 // this app is a setup wizard, then it gets the permission.
                 allowed = true;
             }
             if (!allowed && bp.isSystemTextClassifier()
-                    && pkg.packageName.equals(mPackageManagerInt.getKnownPackageName(
+                    && ArrayUtils.contains(mPackageManagerInt.getKnownPackageNames(
                             PackageManagerInternal.PACKAGE_SYSTEM_TEXT_CLASSIFIER,
-                            UserHandle.USER_SYSTEM))) {
+                    UserHandle.USER_SYSTEM), pkg.packageName)) {
                 // Special permissions for the system default text classifier.
                 allowed = true;
             }
             if (!allowed && bp.isConfigurator()
-                    && pkg.packageName.equals(mPackageManagerInt.getKnownPackageName(
-                    PackageManagerInternal.PACKAGE_CONFIGURATOR,
-                    UserHandle.USER_SYSTEM))) {
+                    && ArrayUtils.contains(mPackageManagerInt.getKnownPackageNames(
+                            PackageManagerInternal.PACKAGE_CONFIGURATOR,
+                    UserHandle.USER_SYSTEM), pkg.packageName)) {
                 // Special permissions for the device configurator.
                 allowed = true;
             }
             if (!allowed && bp.isWellbeing()
-                    && pkg.packageName.equals(mPackageManagerInt.getKnownPackageName(
-                    PackageManagerInternal.PACKAGE_WELLBEING, UserHandle.USER_SYSTEM))) {
+                    && ArrayUtils.contains(mPackageManagerInt.getKnownPackageNames(
+                            PackageManagerInternal.PACKAGE_WELLBEING, UserHandle.USER_SYSTEM),
+                    pkg.packageName)) {
                 // Special permission granted only to the OEM specified wellbeing app
                 allowed = true;
             }
             if (!allowed && bp.isDocumenter()
-                    && pkg.packageName.equals(mPackageManagerInt.getKnownPackageName(
-                            PackageManagerInternal.PACKAGE_DOCUMENTER, UserHandle.USER_SYSTEM))) {
+                    && ArrayUtils.contains(mPackageManagerInt.getKnownPackageNames(
+                            PackageManagerInternal.PACKAGE_DOCUMENTER, UserHandle.USER_SYSTEM),
+                    pkg.packageName)) {
                 // If this permission is to be granted to the documenter and
                 // this app is the documenter, then it gets the permission.
                 allowed = true;
             }
             if (!allowed && bp.isIncidentReportApprover()
-                    && pkg.packageName.equals(mPackageManagerInt.getKnownPackageName(
+                    && ArrayUtils.contains(mPackageManagerInt.getKnownPackageNames(
                             PackageManagerInternal.PACKAGE_INCIDENT_REPORT_APPROVER,
-                            UserHandle.USER_SYSTEM))) {
+                    UserHandle.USER_SYSTEM), pkg.packageName)) {
                 // If this permission is to be granted to the incident report approver and
                 // this app is the incident report approver, then it gets the permission.
                 allowed = true;
             }
             if (!allowed && bp.isAppPredictor()
-                    && pkg.packageName.equals(mPackageManagerInt.getKnownPackageName(
-                        PackageManagerInternal.PACKAGE_APP_PREDICTOR, UserHandle.USER_SYSTEM))) {
+                    && ArrayUtils.contains(mPackageManagerInt.getKnownPackageNames(
+                            PackageManagerInternal.PACKAGE_APP_PREDICTOR, UserHandle.USER_SYSTEM),
+                    pkg.packageName)) {
                 // Special permissions for the system app predictor.
                 allowed = true;
             }
+            if (!allowed && bp.isTelephony()
+                    && ArrayUtils.contains(mPackageManagerInt.getKnownPackageNames(
+                        PackageManagerInternal.PACKAGE_TELEPHONY, UserHandle.USER_SYSTEM),
+                    pkg.packageName)) {
+                // Special permissions for the system telephony apps.
+                allowed = true;
+            }
         }
         return allowed;
     }
diff --git a/services/core/java/com/android/server/recoverysystem/RecoverySystemService.java b/services/core/java/com/android/server/recoverysystem/RecoverySystemService.java
new file mode 100644
index 0000000..fdb14be
--- /dev/null
+++ b/services/core/java/com/android/server/recoverysystem/RecoverySystemService.java
@@ -0,0 +1,437 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package com.android.server.recoverysystem;
+
+import android.content.Context;
+import android.net.LocalSocket;
+import android.net.LocalSocketAddress;
+import android.os.IRecoverySystem;
+import android.os.IRecoverySystemProgressListener;
+import android.os.PowerManager;
+import android.os.RecoverySystem;
+import android.os.RemoteException;
+import android.os.SystemProperties;
+import android.util.Slog;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.server.SystemService;
+
+import libcore.io.IoUtils;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+
+/**
+ * The recovery system service is responsible for coordinating recovery related
+ * functions on the device. It sets up (or clears) the bootloader control block
+ * (BCB), which will be read by the bootloader and the recovery image. It also
+ * triggers /system/bin/uncrypt via init to de-encrypt an OTA package on the
+ * /data partition so that it can be accessed under the recovery image.
+ */
+public class RecoverySystemService extends IRecoverySystem.Stub {
+    private static final String TAG = "RecoverySystemService";
+    private static final boolean DEBUG = false;
+
+    // The socket at /dev/socket/uncrypt to communicate with uncrypt.
+    private static final String UNCRYPT_SOCKET = "uncrypt";
+
+    // The init services that communicate with /system/bin/uncrypt.
+    @VisibleForTesting
+    static final String INIT_SERVICE_UNCRYPT = "init.svc.uncrypt";
+    @VisibleForTesting
+    static final String INIT_SERVICE_SETUP_BCB = "init.svc.setup-bcb";
+    @VisibleForTesting
+    static final String INIT_SERVICE_CLEAR_BCB = "init.svc.clear-bcb";
+
+    private static final Object sRequestLock = new Object();
+
+    private static final int SOCKET_CONNECTION_MAX_RETRY = 30;
+
+    private final Injector mInjector;
+    private final Context mContext;
+
+    static class Injector {
+        protected final Context mContext;
+
+        Injector(Context context) {
+            mContext = context;
+        }
+
+        public Context getContext() {
+            return mContext;
+        }
+
+        public PowerManager getPowerManager() {
+            return (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
+        }
+
+        public String systemPropertiesGet(String key) {
+            return SystemProperties.get(key);
+        }
+
+        public void systemPropertiesSet(String key, String value) {
+            SystemProperties.set(key, value);
+        }
+
+        public boolean uncryptPackageFileDelete() {
+            return RecoverySystem.UNCRYPT_PACKAGE_FILE.delete();
+        }
+
+        public String getUncryptPackageFileName() {
+            return RecoverySystem.UNCRYPT_PACKAGE_FILE.getName();
+        }
+
+        public FileWriter getUncryptPackageFileWriter() throws IOException {
+            return new FileWriter(RecoverySystem.UNCRYPT_PACKAGE_FILE);
+        }
+
+        public UncryptSocket connectService() {
+            UncryptSocket socket = new UncryptSocket();
+            if (!socket.connectService()) {
+                socket.close();
+                return null;
+            }
+            return socket;
+        }
+
+        public void threadSleep(long millis) throws InterruptedException {
+            Thread.sleep(millis);
+        }
+    }
+
+    /**
+     * Handles the lifecycle events for the RecoverySystemService.
+     */
+    public static final class Lifecycle extends SystemService {
+        public Lifecycle(Context context) {
+            super(context);
+        }
+
+        @Override
+        public void onStart() {
+            RecoverySystemService recoverySystemService = new RecoverySystemService(getContext());
+            publishBinderService(Context.RECOVERY_SERVICE, recoverySystemService);
+        }
+    }
+
+    private RecoverySystemService(Context context) {
+        this(new Injector(context));
+    }
+
+    @VisibleForTesting
+    RecoverySystemService(Injector injector) {
+        mInjector = injector;
+        mContext = injector.getContext();
+    }
+
+    @Override // Binder call
+    public boolean uncrypt(String filename, IRecoverySystemProgressListener listener) {
+        if (DEBUG) Slog.d(TAG, "uncrypt: " + filename);
+
+        synchronized (sRequestLock) {
+            mContext.enforceCallingOrSelfPermission(android.Manifest.permission.RECOVERY, null);
+
+            if (!checkAndWaitForUncryptService()) {
+                Slog.e(TAG, "uncrypt service is unavailable.");
+                return false;
+            }
+
+            // Write the filename into uncrypt package file to be read by
+            // uncrypt.
+            mInjector.uncryptPackageFileDelete();
+
+            try (FileWriter uncryptFile = mInjector.getUncryptPackageFileWriter()) {
+                uncryptFile.write(filename + "\n");
+            } catch (IOException e) {
+                Slog.e(TAG, "IOException when writing \""
+                        + mInjector.getUncryptPackageFileName() + "\":", e);
+                return false;
+            }
+
+            // Trigger uncrypt via init.
+            mInjector.systemPropertiesSet("ctl.start", "uncrypt");
+
+            // Connect to the uncrypt service socket.
+            UncryptSocket socket = mInjector.connectService();
+            if (socket == null) {
+                Slog.e(TAG, "Failed to connect to uncrypt socket");
+                return false;
+            }
+
+            // Read the status from the socket.
+            try {
+                int lastStatus = Integer.MIN_VALUE;
+                while (true) {
+                    int status = socket.getPercentageUncrypted();
+                    // Avoid flooding the log with the same message.
+                    if (status == lastStatus && lastStatus != Integer.MIN_VALUE) {
+                        continue;
+                    }
+                    lastStatus = status;
+
+                    if (status >= 0 && status <= 100) {
+                        // Update status
+                        Slog.i(TAG, "uncrypt read status: " + status);
+                        if (listener != null) {
+                            try {
+                                listener.onProgress(status);
+                            } catch (RemoteException ignored) {
+                                Slog.w(TAG, "RemoteException when posting progress");
+                            }
+                        }
+                        if (status == 100) {
+                            Slog.i(TAG, "uncrypt successfully finished.");
+                            // Ack receipt of the final status code. uncrypt
+                            // waits for the ack so the socket won't be
+                            // destroyed before we receive the code.
+                            socket.sendAck();
+                            break;
+                        }
+                    } else {
+                        // Error in /system/bin/uncrypt.
+                        Slog.e(TAG, "uncrypt failed with status: " + status);
+                        // Ack receipt of the final status code. uncrypt waits
+                        // for the ack so the socket won't be destroyed before
+                        // we receive the code.
+                        socket.sendAck();
+                        return false;
+                    }
+                }
+            } catch (IOException e) {
+                Slog.e(TAG, "IOException when reading status: ", e);
+                return false;
+            } finally {
+                socket.close();
+            }
+
+            return true;
+        }
+    }
+
+    @Override // Binder call
+    public boolean clearBcb() {
+        if (DEBUG) Slog.d(TAG, "clearBcb");
+        synchronized (sRequestLock) {
+            return setupOrClearBcb(false, null);
+        }
+    }
+
+    @Override // Binder call
+    public boolean setupBcb(String command) {
+        if (DEBUG) Slog.d(TAG, "setupBcb: [" + command + "]");
+        synchronized (sRequestLock) {
+            return setupOrClearBcb(true, command);
+        }
+    }
+
+    @Override // Binder call
+    public void rebootRecoveryWithCommand(String command) {
+        if (DEBUG) Slog.d(TAG, "rebootRecoveryWithCommand: [" + command + "]");
+        synchronized (sRequestLock) {
+            if (!setupOrClearBcb(true, command)) {
+                return;
+            }
+
+            // Having set up the BCB, go ahead and reboot.
+            PowerManager pm = mInjector.getPowerManager();
+            pm.reboot(PowerManager.REBOOT_RECOVERY);
+        }
+    }
+
+    /**
+     * Check if any of the init services is still running. If so, we cannot
+     * start a new uncrypt/setup-bcb/clear-bcb service right away; otherwise
+     * it may break the socket communication since init creates / deletes
+     * the socket (/dev/socket/uncrypt) on service start / exit.
+     */
+    private boolean checkAndWaitForUncryptService() {
+        for (int retry = 0; retry < SOCKET_CONNECTION_MAX_RETRY; retry++) {
+            final String uncryptService = mInjector.systemPropertiesGet(INIT_SERVICE_UNCRYPT);
+            final String setupBcbService = mInjector.systemPropertiesGet(INIT_SERVICE_SETUP_BCB);
+            final String clearBcbService = mInjector.systemPropertiesGet(INIT_SERVICE_CLEAR_BCB);
+            final boolean busy = "running".equals(uncryptService)
+                    || "running".equals(setupBcbService) || "running".equals(clearBcbService);
+            if (DEBUG) {
+                Slog.i(TAG, "retry: " + retry + " busy: " + busy
+                        + " uncrypt: [" + uncryptService + "]"
+                        + " setupBcb: [" + setupBcbService + "]"
+                        + " clearBcb: [" + clearBcbService + "]");
+            }
+
+            if (!busy) {
+                return true;
+            }
+
+            try {
+                mInjector.threadSleep(1000);
+            } catch (InterruptedException e) {
+                Slog.w(TAG, "Interrupted:", e);
+            }
+        }
+
+        return false;
+    }
+
+    private boolean setupOrClearBcb(boolean isSetup, String command) {
+        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.RECOVERY, null);
+
+        final boolean available = checkAndWaitForUncryptService();
+        if (!available) {
+            Slog.e(TAG, "uncrypt service is unavailable.");
+            return false;
+        }
+
+        if (isSetup) {
+            mInjector.systemPropertiesSet("ctl.start", "setup-bcb");
+        } else {
+            mInjector.systemPropertiesSet("ctl.start", "clear-bcb");
+        }
+
+        // Connect to the uncrypt service socket.
+        UncryptSocket socket = mInjector.connectService();
+        if (socket == null) {
+            Slog.e(TAG, "Failed to connect to uncrypt socket");
+            return false;
+        }
+
+        try {
+            // Send the BCB commands if it's to setup BCB.
+            if (isSetup) {
+                socket.sendCommand(command);
+            }
+
+            // Read the status from the socket.
+            int status = socket.getPercentageUncrypted();
+
+            // Ack receipt of the status code. uncrypt waits for the ack so
+            // the socket won't be destroyed before we receive the code.
+            socket.sendAck();
+
+            if (status == 100) {
+                Slog.i(TAG, "uncrypt " + (isSetup ? "setup" : "clear")
+                        + " bcb successfully finished.");
+            } else {
+                // Error in /system/bin/uncrypt.
+                Slog.e(TAG, "uncrypt failed with status: " + status);
+                return false;
+            }
+        } catch (IOException e) {
+            Slog.e(TAG, "IOException when communicating with uncrypt:", e);
+            return false;
+        } finally {
+            socket.close();
+        }
+
+        return true;
+    }
+
+    /**
+     * Provides a wrapper for the low-level details of framing packets sent to the uncrypt
+     * socket.
+     */
+    public static class UncryptSocket {
+        private LocalSocket mLocalSocket;
+        private DataInputStream mInputStream;
+        private DataOutputStream mOutputStream;
+
+        /**
+         * Attempt to connect to the uncrypt service. Connection will be retried for up to
+         * {@link #SOCKET_CONNECTION_MAX_RETRY} times. If the connection is unsuccessful, the
+         * socket will be closed. If the connection is successful, the connection must be closed
+         * by the caller.
+         *
+         * @return true if connection was successful, false if unsuccessful
+         */
+        public boolean connectService() {
+            mLocalSocket = new LocalSocket();
+            boolean done = false;
+            // The uncrypt socket will be created by init upon receiving the
+            // service request. It may not be ready by this point. So we will
+            // keep retrying until success or reaching timeout.
+            for (int retry = 0; retry < SOCKET_CONNECTION_MAX_RETRY; retry++) {
+                try {
+                    mLocalSocket.connect(new LocalSocketAddress(UNCRYPT_SOCKET,
+                            LocalSocketAddress.Namespace.RESERVED));
+                    done = true;
+                    break;
+                } catch (IOException ignored) {
+                    try {
+                        Thread.sleep(1000);
+                    } catch (InterruptedException e) {
+                        Slog.w(TAG, "Interrupted:", e);
+                    }
+                }
+            }
+            if (!done) {
+                Slog.e(TAG, "Timed out connecting to uncrypt socket");
+                close();
+                return false;
+            }
+
+            try {
+                mInputStream = new DataInputStream(mLocalSocket.getInputStream());
+                mOutputStream = new DataOutputStream(mLocalSocket.getOutputStream());
+            } catch (IOException e) {
+                close();
+                return false;
+            }
+
+            return true;
+        }
+
+        /**
+         * Sends a command to the uncrypt service.
+         *
+         * @param command command to send to the uncrypt service
+         * @throws IOException if there was an error writing to the socket
+         */
+        public void sendCommand(String command) throws IOException {
+            byte[] cmdUtf8 = command.getBytes(StandardCharsets.UTF_8);
+            mOutputStream.writeInt(cmdUtf8.length);
+            mOutputStream.write(cmdUtf8, 0, cmdUtf8.length);
+        }
+
+        /**
+         * Reads the status from the uncrypt service which is usually represented as a percentage.
+         * @return an integer representing the percentage completed
+         * @throws IOException if there was an error reading the socket
+         */
+        public int getPercentageUncrypted() throws IOException {
+            return mInputStream.readInt();
+        }
+
+        /**
+         * Sends a confirmation to the uncrypt service.
+         * @throws IOException if there was an error writing to the socket
+         */
+        public void sendAck() throws IOException {
+            mOutputStream.writeInt(0);
+        }
+
+        /**
+         * Closes the socket and all underlying data streams.
+         */
+        public void close() {
+            IoUtils.closeQuietly(mInputStream);
+            IoUtils.closeQuietly(mOutputStream);
+            IoUtils.closeQuietly(mLocalSocket);
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/rollback/AppDataRollbackHelper.java b/services/core/java/com/android/server/rollback/AppDataRollbackHelper.java
index 56e1d08..cae09ea3 100644
--- a/services/core/java/com/android/server/rollback/AppDataRollbackHelper.java
+++ b/services/core/java/com/android/server/rollback/AppDataRollbackHelper.java
@@ -20,7 +20,7 @@
 import android.content.rollback.PackageRollbackInfo.RestoreInfo;
 import android.os.storage.StorageManager;
 import android.util.IntArray;
-import android.util.Log;
+import android.util.Slog;
 import android.util.SparseLongArray;
 
 import com.android.internal.annotations.VisibleForTesting;
@@ -52,17 +52,18 @@
     }
 
     /**
-     * Creates an app data snapshot for a specified {@code packageRollbackInfo}. Updates said {@code
-     * packageRollbackInfo} with the inodes of the CE user data snapshot folders.
+     * Creates an app data snapshot for a specified {@code packageRollbackInfo} and the specified
+     * {@code userIds}. Updates said {@code packageRollbackInfo} with the inodes of the CE user data
+     * snapshot folders.
      */
-    public void snapshotAppData(int snapshotId, PackageRollbackInfo packageRollbackInfo) {
-        final int[] installedUsers = packageRollbackInfo.getInstalledUsers().toArray();
-        for (int user : installedUsers) {
+    public void snapshotAppData(
+            int snapshotId, PackageRollbackInfo packageRollbackInfo, int[] userIds) {
+        for (int user : userIds) {
             final int storageFlags;
             if (isUserCredentialLocked(user)) {
                 // We've encountered a user that hasn't unlocked on a FBE device, so we can't copy
                 // across app user data until the user unlocks their device.
-                Log.v(TAG, "User: " + user + " isn't unlocked, skipping CE userdata backup.");
+                Slog.v(TAG, "User: " + user + " isn't unlocked, skipping CE userdata backup.");
                 storageFlags = Installer.FLAG_STORAGE_DE;
                 packageRollbackInfo.addPendingBackup(user);
             } else {
@@ -76,10 +77,11 @@
                     packageRollbackInfo.putCeSnapshotInode(user, ceSnapshotInode);
                 }
             } catch (InstallerException ie) {
-                Log.e(TAG, "Unable to create app data snapshot for: "
+                Slog.e(TAG, "Unable to create app data snapshot for: "
                         + packageRollbackInfo.getPackageName() + ", userId: " + user, ie);
             }
         }
+        packageRollbackInfo.getSnapshottedUsers().addAll(IntArray.wrap(userIds));
     }
 
     /**
@@ -96,14 +98,14 @@
 
         final IntArray pendingBackups = packageRollbackInfo.getPendingBackups();
         final List<RestoreInfo> pendingRestores = packageRollbackInfo.getPendingRestores();
-        boolean changedRollbackData = false;
+        boolean changedRollback = false;
 
         // If we still have a userdata backup pending for this user, it implies that the user
         // hasn't unlocked their device between the point of backup and the point of restore,
         // so the data cannot have changed. We simply skip restoring CE data in this case.
         if (pendingBackups != null && pendingBackups.indexOf(userId) != -1) {
             pendingBackups.remove(pendingBackups.indexOf(userId));
-            changedRollbackData = true;
+            changedRollback = true;
         } else {
             // There's no pending CE backup for this user, which means that we successfully
             // managed to backup data for the user, which means we seek to restore it
@@ -111,7 +113,7 @@
                 // We've encountered a user that hasn't unlocked on a FBE device, so we can't
                 // copy across app user data until the user unlocks their device.
                 pendingRestores.add(new RestoreInfo(userId, appId, seInfo));
-                changedRollbackData = true;
+                changedRollback = true;
             } else {
                 // This user has unlocked, we can proceed to restore both CE and DE data.
                 storageFlags = storageFlags | Installer.FLAG_STORAGE_CE;
@@ -122,11 +124,11 @@
             mInstaller.restoreAppDataSnapshot(packageRollbackInfo.getPackageName(), appId, seInfo,
                     userId, rollbackId, storageFlags);
         } catch (InstallerException ie) {
-            Log.e(TAG, "Unable to restore app data snapshot: "
+            Slog.e(TAG, "Unable to restore app data snapshot: "
                         + packageRollbackInfo.getPackageName(), ie);
         }
 
-        return changedRollbackData;
+        return changedRollback;
     }
 
     /**
@@ -148,7 +150,7 @@
                 ceSnapshotInodes.delete(user);
             }
         } catch (InstallerException ie) {
-            Log.e(TAG, "Unable to delete app data snapshot for "
+            Slog.e(TAG, "Unable to delete app data snapshot for "
                         + packageRollbackInfo.getPackageName(), ie);
         }
     }
@@ -158,29 +160,29 @@
      * Packages pending backup for the given user are added to {@code pendingBackupPackages} along
      * with their corresponding {@code PackageRollbackInfo}.
      *
-     * @return the list of {@code RollbackData} that has pending backups. Note that some of the
+     * @return the list of rollbacks that have pending backups. Note that some of the
      *         backups won't be performed, because they might be counteracted by pending restores.
      */
-    private static List<RollbackData> computePendingBackups(int userId,
+    private static List<Rollback> computePendingBackups(int userId,
             Map<String, PackageRollbackInfo> pendingBackupPackages,
-            List<RollbackData> rollbacks) {
-        List<RollbackData> rd = new ArrayList<>();
+            List<Rollback> rollbacks) {
+        List<Rollback> rollbacksWithPendingBackups = new ArrayList<>();
 
-        for (RollbackData data : rollbacks) {
-            for (PackageRollbackInfo info : data.info.getPackages()) {
+        for (Rollback rollback : rollbacks) {
+            for (PackageRollbackInfo info : rollback.info.getPackages()) {
                 final IntArray pendingBackupUsers = info.getPendingBackups();
                 if (pendingBackupUsers != null) {
                     final int idx = pendingBackupUsers.indexOf(userId);
                     if (idx != -1) {
                         pendingBackupPackages.put(info.getPackageName(), info);
-                        if (rd.indexOf(data) == -1) {
-                            rd.add(data);
+                        if (rollbacksWithPendingBackups.indexOf(rollback) == -1) {
+                            rollbacksWithPendingBackups.add(rollback);
                         }
                     }
                 }
             }
         }
-        return rd;
+        return rollbacksWithPendingBackups;
     }
 
     /**
@@ -188,45 +190,45 @@
      * Packages pending restore are added to {@code pendingRestores} along with their corresponding
      * {@code PackageRollbackInfo}.
      *
-     * @return the list of {@code RollbackData} that has pending restores. Note that some of the
+     * @return the list of rollbacks that have pending restores. Note that some of the
      *         restores won't be performed, because they might be counteracted by pending backups.
      */
-    private static List<RollbackData> computePendingRestores(int userId,
+    private static List<Rollback> computePendingRestores(int userId,
             Map<String, PackageRollbackInfo> pendingRestorePackages,
-            List<RollbackData> rollbacks) {
-        List<RollbackData> rd = new ArrayList<>();
+            List<Rollback> rollbacks) {
+        List<Rollback> rollbacksWithPendingRestores = new ArrayList<>();
 
-        for (RollbackData data : rollbacks) {
-            for (PackageRollbackInfo info : data.info.getPackages()) {
+        for (Rollback rollback : rollbacks) {
+            for (PackageRollbackInfo info : rollback.info.getPackages()) {
                 final RestoreInfo ri = info.getRestoreInfo(userId);
                 if (ri != null) {
                     pendingRestorePackages.put(info.getPackageName(), info);
-                    if (rd.indexOf(data) == -1) {
-                        rd.add(data);
+                    if (rollbacksWithPendingRestores.indexOf(rollback) == -1) {
+                        rollbacksWithPendingRestores.add(rollback);
                     }
                 }
             }
         }
 
-        return rd;
+        return rollbacksWithPendingRestores;
     }
 
     /**
-     * Commits the list of pending backups and restores for a given {@code userId}. For the pending
-     * backups updates corresponding {@code changedRollbackData} with a mapping from {@code userId}
-     * to a inode of theirs CE user data snapshot.
+     * Commits the list of pending backups and restores for a given {@code userId}. For rollbacks
+     * with pending backups, updates the {@code Rollback} instance with a mapping from
+     * {@code userId} to inode of the CE user data snapshot.
      *
-     * @return the set of {@code RollbackData} that have been changed and should be stored on disk.
+     * @return the set of rollbacks with changes that should be stored on disk.
      */
-    public Set<RollbackData> commitPendingBackupAndRestoreForUser(int userId,
-            List<RollbackData> rollbacks) {
+    public Set<Rollback> commitPendingBackupAndRestoreForUser(int userId,
+            List<Rollback> rollbacks) {
 
         final Map<String, PackageRollbackInfo> pendingBackupPackages = new HashMap<>();
-        final List<RollbackData> pendingBackups = computePendingBackups(userId,
+        final List<Rollback> pendingBackups = computePendingBackups(userId,
                 pendingBackupPackages, rollbacks);
 
         final Map<String, PackageRollbackInfo> pendingRestorePackages = new HashMap<>();
-        final List<RollbackData> pendingRestores = computePendingRestores(userId,
+        final List<Rollback> pendingRestores = computePendingRestores(userId,
                 pendingRestorePackages, rollbacks);
 
         // First remove unnecessary backups, i.e. when user did not unlock their phone between the
@@ -246,18 +248,19 @@
         }
 
         if (!pendingBackupPackages.isEmpty()) {
-            for (RollbackData data : pendingBackups) {
-                for (PackageRollbackInfo info : data.info.getPackages()) {
+            for (Rollback rollback : pendingBackups) {
+                for (PackageRollbackInfo info : rollback.info.getPackages()) {
                     final IntArray pendingBackupUsers = info.getPendingBackups();
                     final int idx = pendingBackupUsers.indexOf(userId);
                     if (idx != -1) {
                         try {
                             long ceSnapshotInode = mInstaller.snapshotAppData(info.getPackageName(),
-                                    userId, data.info.getRollbackId(), Installer.FLAG_STORAGE_CE);
+                                    userId, rollback.info.getRollbackId(),
+                                    Installer.FLAG_STORAGE_CE);
                             info.putCeSnapshotInode(userId, ceSnapshotInode);
                             pendingBackupUsers.remove(idx);
                         } catch (InstallerException ie) {
-                            Log.e(TAG,
+                            Slog.e(TAG,
                                     "Unable to create app data snapshot for: "
                                     + info.getPackageName() + ", userId: " + userId, ie);
                         }
@@ -267,17 +270,17 @@
         }
 
         if (!pendingRestorePackages.isEmpty()) {
-            for (RollbackData data : pendingRestores) {
-                for (PackageRollbackInfo info : data.info.getPackages()) {
+            for (Rollback rollback : pendingRestores) {
+                for (PackageRollbackInfo info : rollback.info.getPackages()) {
                     final RestoreInfo ri = info.getRestoreInfo(userId);
                     if (ri != null) {
                         try {
                             mInstaller.restoreAppDataSnapshot(info.getPackageName(), ri.appId,
-                                    ri.seInfo, userId, data.info.getRollbackId(),
+                                    ri.seInfo, userId, rollback.info.getRollbackId(),
                                     Installer.FLAG_STORAGE_CE);
                             info.removeRestoreInfo(ri);
                         } catch (InstallerException ie) {
-                            Log.e(TAG, "Unable to restore app data snapshot for: "
+                            Slog.e(TAG, "Unable to restore app data snapshot for: "
                                     + info.getPackageName(), ie);
                         }
                     }
@@ -285,7 +288,7 @@
             }
         }
 
-        final Set<RollbackData> changed = new HashSet<>(pendingBackups);
+        final Set<Rollback> changed = new HashSet<>(pendingBackups);
         changed.addAll(pendingRestores);
         return changed;
     }
diff --git a/services/core/java/com/android/server/rollback/RollbackData.java b/services/core/java/com/android/server/rollback/Rollback.java
similarity index 85%
rename from services/core/java/com/android/server/rollback/RollbackData.java
rename to services/core/java/com/android/server/rollback/Rollback.java
index b37e268..0d5746b 100644
--- a/services/core/java/com/android/server/rollback/RollbackData.java
+++ b/services/core/java/com/android/server/rollback/Rollback.java
@@ -32,7 +32,7 @@
  * Information about a rollback available for a set of atomically installed
  * packages.
  */
-class RollbackData {
+class Rollback {
     @IntDef(flag = true, prefix = { "ROLLBACK_STATE_" }, value = {
             ROLLBACK_STATE_ENABLING,
             ROLLBACK_STATE_AVAILABLE,
@@ -102,13 +102,13 @@
     public boolean restoreUserDataInProgress = false;
 
     /**
-     * Constructs a new, empty RollbackData instance.
+     * Constructs a new, empty Rollback instance.
      *
      * @param rollbackId the id of the rollback.
      * @param backupDir the directory where the rollback data is stored.
      * @param stagedSessionId the session id if this is a staged rollback, -1 otherwise.
      */
-    RollbackData(int rollbackId, File backupDir, int stagedSessionId) {
+    Rollback(int rollbackId, File backupDir, int stagedSessionId) {
         this.info = new RollbackInfo(rollbackId,
                 /* packages */ new ArrayList<>(),
                 /* isStaged */ stagedSessionId != -1,
@@ -121,9 +121,9 @@
     }
 
     /**
-     * Constructs a RollbackData instance with full rollback data information.
+     * Constructs a pre-populated Rollback instance.
      */
-    RollbackData(RollbackInfo info, File backupDir, Instant timestamp, int stagedSessionId,
+    Rollback(RollbackInfo info, File backupDir, Instant timestamp, int stagedSessionId,
             @RollbackState int state, int apkSessionId, boolean restoreUserDataInProgress) {
         this.info = info;
         this.backupDir = backupDir;
@@ -143,9 +143,9 @@
 
     static String rollbackStateToString(@RollbackState int state) {
         switch (state) {
-            case RollbackData.ROLLBACK_STATE_ENABLING: return "enabling";
-            case RollbackData.ROLLBACK_STATE_AVAILABLE: return "available";
-            case RollbackData.ROLLBACK_STATE_COMMITTED: return "committed";
+            case Rollback.ROLLBACK_STATE_ENABLING: return "enabling";
+            case Rollback.ROLLBACK_STATE_AVAILABLE: return "available";
+            case Rollback.ROLLBACK_STATE_COMMITTED: return "committed";
         }
         throw new AssertionError("Invalid rollback state: " + state);
     }
@@ -153,9 +153,9 @@
     static @RollbackState int rollbackStateFromString(String state)
             throws ParseException {
         switch (state) {
-            case "enabling": return RollbackData.ROLLBACK_STATE_ENABLING;
-            case "available": return RollbackData.ROLLBACK_STATE_AVAILABLE;
-            case "committed": return RollbackData.ROLLBACK_STATE_COMMITTED;
+            case "enabling": return Rollback.ROLLBACK_STATE_ENABLING;
+            case "available": return Rollback.ROLLBACK_STATE_AVAILABLE;
+            case "committed": return Rollback.ROLLBACK_STATE_COMMITTED;
         }
         throw new ParseException("Invalid rollback state: " + state, 0);
     }
diff --git a/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java b/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java
index e107c9a..42f3e2fd 100644
--- a/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java
+++ b/services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java
@@ -45,14 +45,13 @@
 import android.os.HandlerThread;
 import android.os.ParcelFileDescriptor;
 import android.os.Process;
-import android.os.UserHandle;   // duped to avoid merge conflict
-import android.os.UserManager;  // out of order to avoid merge conflict
 import android.os.SystemClock;
 import android.os.UserHandle;
+import android.os.UserManager;
 import android.provider.DeviceConfig;
 import android.util.ArraySet;
 import android.util.IntArray;
-import android.util.Log;
+import android.util.Slog;
 import android.util.SparseBooleanArray;
 import android.util.SparseLongArray;
 
@@ -76,6 +75,7 @@
 import java.util.List;
 import java.util.Random;
 import java.util.Set;
+import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.TimeUnit;
 
@@ -110,14 +110,13 @@
     @GuardedBy("mLock")
     private final SparseBooleanArray mAllocatedRollbackIds = new SparseBooleanArray();
 
-    // Package rollback data for rollbacks we are in the process of enabling.
+    // Rollbacks we are in the process of enabling.
     @GuardedBy("mLock")
     private final Set<NewRollback> mNewRollbacks = new ArraySet<>();
 
     // The list of all rollbacks, including available and committed rollbacks.
-    // This list is null until the rollback data has been loaded.
     @GuardedBy("mLock")
-    private List<RollbackData> mRollbacks;
+    private final List<Rollback> mRollbacks;
 
     private final RollbackStore mRollbackStore;
 
@@ -128,7 +127,7 @@
     private final AppDataRollbackHelper mAppDataRollbackHelper;
 
     // This field stores the difference in Millis between the uptime (millis since device
-    // has booted) and current time (device wall clock) - it's used to update rollback data
+    // has booted) and current time (device wall clock) - it's used to update rollback
     // timestamps when the time is changed, by the user or by change of timezone.
     // No need for guarding with lock because value is only accessed in handler thread.
     private long  mRelativeBootTime = calculateRelativeBootTime();
@@ -139,29 +138,25 @@
         // SystemService#onStart.
         mInstaller = new Installer(mContext);
         mInstaller.onStart();
-        mHandlerThread = new HandlerThread("RollbackManagerServiceHandler");
-        mHandlerThread.start();
-
-        // Monitor the handler thread
-        Watchdog.getInstance().addThread(getHandler(), HANDLER_THREAD_TIMEOUT_DURATION_MILLIS);
 
         mRollbackStore = new RollbackStore(new File(Environment.getDataDirectory(), "rollback"));
 
         mPackageHealthObserver = new RollbackPackageHealthObserver(mContext);
         mAppDataRollbackHelper = new AppDataRollbackHelper(mInstaller);
 
-        // Kick off loading of the rollback data from strorage in a background
-        // thread.
-        // TODO: Consider loading the rollback data directly here instead, to
-        // avoid the need to call ensureRollbackDataLoaded every time before
-        // accessing the rollback data?
-        // TODO: Test that this kicks off initial scheduling of rollback
-        // expiration.
-        getHandler().post(() -> ensureRollbackDataLoaded());
+        // Load rollback data from device storage.
+        synchronized (mLock) {
+            mRollbacks = mRollbackStore.loadRollbacks();
+            for (Rollback rollback : mRollbacks) {
+                mAllocatedRollbackIds.put(rollback.info.getRollbackId(), true);
+            }
+        }
 
-        // TODO: Make sure to register these call backs when a new user is
-        // added too.
-        SessionCallback sessionCallback = new SessionCallback();
+        // Kick off and start monitoring the handler thread.
+        mHandlerThread = new HandlerThread("RollbackManagerServiceHandler");
+        mHandlerThread.start();
+        Watchdog.getInstance().addThread(getHandler(), HANDLER_THREAD_TIMEOUT_DURATION_MILLIS);
+
         for (UserInfo userInfo : UserManager.get(mContext).getUsers(true)) {
             registerUserCallbacks(userInfo.getUserHandle());
         }
@@ -171,7 +166,7 @@
         try {
             enableRollbackFilter.addDataType("application/vnd.android.package-archive");
         } catch (IntentFilter.MalformedMimeTypeException e) {
-            Log.e(TAG, "addDataType", e);
+            Slog.e(TAG, "addDataType", e);
         }
 
         mContext.registerReceiver(new BroadcastReceiver() {
@@ -182,16 +177,14 @@
                             PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_TOKEN, -1);
                     int installFlags = intent.getIntExtra(
                             PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_INSTALL_FLAGS, 0);
-                    int[] installedUsers = intent.getIntArrayExtra(
-                            PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_INSTALLED_USERS);
                     int user = intent.getIntExtra(
                             PackageManagerInternal.EXTRA_ENABLE_ROLLBACK_USER, 0);
 
                     File newPackageCodePath = new File(intent.getData().getPath());
 
                     getHandler().post(() -> {
-                        boolean success = enableRollback(installFlags, newPackageCodePath,
-                                installedUsers, user, token);
+                        boolean success =
+                                enableRollback(installFlags, newPackageCodePath, user, token);
                         int ret = PackageManagerInternal.ENABLE_ROLLBACK_SUCCEEDED;
                         if (!success) {
                             ret = PackageManagerInternal.ENABLE_ROLLBACK_FAILED;
@@ -251,13 +244,10 @@
     private void registerUserCallbacks(UserHandle user) {
         Context context = getContextAsUser(user);
         if (context == null) {
-            Log.e(TAG, "Unable to register user callbacks for user " + user);
+            Slog.e(TAG, "Unable to register user callbacks for user " + user);
             return;
         }
 
-        // TODO: Reuse the same SessionCallback and broadcast receiver
-        // instances, rather than creating new instances for each user.
-
         context.getPackageManager().getPackageInstaller()
                 .registerSessionCallback(new SessionCallback(), getHandler());
 
@@ -281,44 +271,15 @@
         }, filter, null, getHandler());
     }
 
-    /**
-     * This method posts a blocking call to the handler thread, so it should not be called from
-     * that same thread.
-     * @throws {@link IllegalStateException} if called from {@link #mHandlerThread}
-     */
     @Override
     public ParceledListSlice getAvailableRollbacks() {
         enforceManageRollbacks("getAvailableRollbacks");
-        if (Thread.currentThread().equals(mHandlerThread)) {
-            Log.wtf(TAG, "Calling getAvailableRollbacks from mHandlerThread "
-                    + "causes a deadlock");
-            throw new IllegalStateException("Cannot call RollbackManager#getAvailableRollbacks "
-                    + "from the handler thread!");
-        }
-
-        // Wait for the handler thread to get the list of available rollbacks
-        // to get the most up-to-date results. This is intended to reduce test
-        // flakiness when checking available rollbacks immediately after
-        // installing a package with rollback enabled.
-        final LinkedBlockingQueue<Boolean> result = new LinkedBlockingQueue<>();
-        getHandler().post(() -> result.offer(true));
-
-        try {
-            result.take();
-        } catch (InterruptedException ie) {
-            // We may not get the most up-to-date information, but whatever we
-            // can get now is better than nothing, so log but otherwise ignore
-            // the exception.
-            Log.w(TAG, "Interrupted while waiting for handler thread in getAvailableRollbacks");
-        }
-
         synchronized (mLock) {
-            ensureRollbackDataLoadedLocked();
             List<RollbackInfo> rollbacks = new ArrayList<>();
             for (int i = 0; i < mRollbacks.size(); ++i) {
-                RollbackData data = mRollbacks.get(i);
-                if (data.state == RollbackData.ROLLBACK_STATE_AVAILABLE) {
-                    rollbacks.add(data.info);
+                Rollback rollback = mRollbacks.get(i);
+                if (rollback.state == Rollback.ROLLBACK_STATE_AVAILABLE) {
+                    rollbacks.add(rollback.info);
                 }
             }
             return new ParceledListSlice<>(rollbacks);
@@ -326,16 +287,15 @@
     }
 
     @Override
-    public ParceledListSlice<RollbackInfo> getRecentlyExecutedRollbacks() {
+    public ParceledListSlice<RollbackInfo> getRecentlyCommittedRollbacks() {
         enforceManageRollbacks("getRecentlyCommittedRollbacks");
 
         synchronized (mLock) {
-            ensureRollbackDataLoadedLocked();
             List<RollbackInfo> rollbacks = new ArrayList<>();
             for (int i = 0; i < mRollbacks.size(); ++i) {
-                RollbackData data = mRollbacks.get(i);
-                if (data.state == RollbackData.ROLLBACK_STATE_COMMITTED) {
-                    rollbacks.add(data.info);
+                Rollback rollback = mRollbacks.get(i);
+                if (rollback.state == Rollback.ROLLBACK_STATE_COMMITTED) {
+                    rollbacks.add(rollback.info);
                 }
             }
             return new ParceledListSlice<>(rollbacks);
@@ -345,7 +305,7 @@
     @Override
     public void commitRollback(int rollbackId, ParceledListSlice causePackages,
             String callerPackageName, IntentSender statusReceiver) {
-        enforceManageRollbacks("executeRollback");
+        enforceManageRollbacks("commitRollback");
 
         final int callingUid = Binder.getCallingUid();
         AppOpsManager appOps = mContext.getSystemService(AppOpsManager.class);
@@ -365,13 +325,11 @@
                 final long timeDifference = mRelativeBootTime - oldRelativeBootTime;
 
                 synchronized (mLock) {
-                    ensureRollbackDataLoadedLocked();
-
-                    Iterator<RollbackData> iter = mRollbacks.iterator();
+                    Iterator<Rollback> iter = mRollbacks.iterator();
                     while (iter.hasNext()) {
-                        RollbackData data = iter.next();
-                        data.timestamp = data.timestamp.plusMillis(timeDifference);
-                        saveRollbackData(data);
+                        Rollback rollback = iter.next();
+                        rollback.timestamp = rollback.timestamp.plusMillis(timeDifference);
+                        saveRollback(rollback);
                     }
                 }
             }
@@ -393,10 +351,10 @@
      */
     private void commitRollbackInternal(int rollbackId, List<VersionedPackage> causePackages,
             String callerPackageName, IntentSender statusReceiver) {
-        Log.i(TAG, "Initiating rollback");
+        Slog.i(TAG, "Initiating rollback");
 
-        RollbackData data = getRollbackForId(rollbackId);
-        if (data == null || data.state != RollbackData.ROLLBACK_STATE_AVAILABLE) {
+        Rollback rollback = getRollbackForId(rollbackId);
+        if (rollback == null || rollback.state != Rollback.ROLLBACK_STATE_AVAILABLE) {
             sendFailure(statusReceiver, RollbackManager.STATUS_FAILURE_ROLLBACK_UNAVAILABLE,
                     "Rollback unavailable");
             return;
@@ -404,7 +362,7 @@
 
         // Get a context for the caller to use to install the downgraded
         // version of the package.
-        Context context = null;
+        final Context context;
         try {
             context = mContext.createPackageContext(callerPackageName, 0);
         } catch (PackageManager.NameNotFoundException e) {
@@ -420,14 +378,14 @@
                     PackageInstaller.SessionParams.MODE_FULL_INSTALL);
             parentParams.setRequestDowngrade(true);
             parentParams.setMultiPackage();
-            if (data.isStaged()) {
+            if (rollback.isStaged()) {
                 parentParams.setStaged();
             }
 
             int parentSessionId = packageInstaller.createSession(parentParams);
             PackageInstaller.Session parentSession = packageInstaller.openSession(parentSessionId);
 
-            for (PackageRollbackInfo info : data.info.getPackages()) {
+            for (PackageRollbackInfo info : rollback.info.getPackages()) {
                 PackageInstaller.SessionParams params = new PackageInstaller.SessionParams(
                         PackageInstaller.SessionParams.MODE_FULL_INSTALL);
                 // TODO: We can't get the installerPackageName for apex
@@ -442,7 +400,7 @@
                 params.setRequestDowngrade(true);
                 params.setRequiredInstalledVersionCode(
                         info.getVersionRolledBackFrom().getLongVersionCode());
-                if (data.isStaged()) {
+                if (rollback.isStaged()) {
                     params.setStaged();
                 }
                 if (info.isApex()) {
@@ -450,9 +408,8 @@
                 }
                 int sessionId = packageInstaller.createSession(params);
                 PackageInstaller.Session session = packageInstaller.openSession(sessionId);
-
                 File[] packageCodePaths = RollbackStore.getPackageCodePaths(
-                        data, info.getPackageName());
+                        rollback, info.getPackageName());
                 if (packageCodePaths == null) {
                     sendFailure(statusReceiver, RollbackManager.STATUS_FAILURE,
                             "Backup copy of package inaccessible");
@@ -493,8 +450,8 @@
                                     // TODO: Could this cause a rollback to be
                                     // resurrected if it should otherwise have
                                     // expired by now?
-                                    data.state = RollbackData.ROLLBACK_STATE_AVAILABLE;
-                                    data.restoreUserDataInProgress = false;
+                                    rollback.state = Rollback.ROLLBACK_STATE_AVAILABLE;
+                                    rollback.restoreUserDataInProgress = false;
                                 }
                                 sendFailure(statusReceiver, RollbackManager.STATUS_FAILURE_INSTALL,
                                         "Rollback downgrade install failed: "
@@ -504,35 +461,37 @@
                             }
 
                             synchronized (mLock) {
-                                if (!data.isStaged()) {
+                                if (!rollback.isStaged()) {
                                     // All calls to restoreUserData should have
                                     // completed by now for a non-staged install.
-                                    data.restoreUserDataInProgress = false;
+                                    rollback.restoreUserDataInProgress = false;
                                 }
 
-                                data.info.setCommittedSessionId(parentSessionId);
-                                data.info.getCausePackages().addAll(causePackages);
+                                rollback.info.setCommittedSessionId(parentSessionId);
+                                rollback.info.getCausePackages().addAll(causePackages);
                             }
-                            mRollbackStore.deletePackageCodePaths(data);
-                            saveRollbackData(data);
+                            mRollbackStore.deletePackageCodePaths(rollback);
+                            saveRollback(rollback);
 
                             sendSuccess(statusReceiver);
 
                             Intent broadcast = new Intent(Intent.ACTION_ROLLBACK_COMMITTED);
 
-                            mContext.sendBroadcastAsUser(broadcast, UserHandle.SYSTEM,
-                                    Manifest.permission.MANAGE_ROLLBACKS);
+                            for (UserInfo userInfo : UserManager.get(mContext).getUsers(true)) {
+                                mContext.sendBroadcastAsUser(broadcast, userInfo.getUserHandle(),
+                                        Manifest.permission.MANAGE_ROLLBACKS);
+                            }
                         });
                     }
             );
 
             synchronized (mLock) {
-                data.state = RollbackData.ROLLBACK_STATE_COMMITTED;
-                data.restoreUserDataInProgress = true;
+                rollback.state = Rollback.ROLLBACK_STATE_COMMITTED;
+                rollback.restoreUserDataInProgress = true;
             }
             parentSession.commit(receiver.getIntentSender());
         } catch (IOException e) {
-            Log.e(TAG, "Rollback failed", e);
+            Slog.e(TAG, "Rollback failed", e);
             sendFailure(statusReceiver, RollbackManager.STATUS_FAILURE,
                     "IOException: " + e.toString());
             return;
@@ -545,13 +504,21 @@
                 Manifest.permission.TEST_MANAGE_ROLLBACKS,
                 "reloadPersistedData");
 
-        synchronized (mLock) {
-            mRollbacks = null;
-        }
+        CountDownLatch latch = new CountDownLatch(1);
         getHandler().post(() -> {
             updateRollbackLifetimeDurationInMillis();
-            ensureRollbackDataLoaded();
+            synchronized (mLock) {
+                mRollbacks.clear();
+                mRollbacks.addAll(mRollbackStore.loadRollbacks());
+            }
+            latch.countDown();
         });
+
+        try {
+            latch.await();
+        } catch (InterruptedException ie) {
+            throw new IllegalStateException("RollbackManagerHandlerThread interrupted");
+        }
     }
 
     @Override
@@ -560,14 +527,21 @@
                 Manifest.permission.TEST_MANAGE_ROLLBACKS,
                 "expireRollbackForPackage");
         synchronized (mLock) {
-            ensureRollbackDataLoadedLocked();
-            Iterator<RollbackData> iter = mRollbacks.iterator();
+            Iterator<Rollback> iter = mRollbacks.iterator();
             while (iter.hasNext()) {
-                RollbackData data = iter.next();
-                for (PackageRollbackInfo info : data.info.getPackages()) {
+                Rollback rollback = iter.next();
+                for (PackageRollbackInfo info : rollback.info.getPackages()) {
                     if (info.getPackageName().equals(packageName)) {
                         iter.remove();
-                        deleteRollback(data);
+                        deleteRollback(rollback);
+                        break;
+                    }
+                }
+            }
+            for (NewRollback newRollback : mNewRollbacks) {
+                for (PackageRollbackInfo info : newRollback.rollback.info.getPackages()) {
+                    if (info.getPackageName().equals(packageName)) {
+                        newRollback.isCancelled = true;
                         break;
                     }
                 }
@@ -575,18 +549,32 @@
         }
     }
 
+    @Override
+    public void blockRollbackManager(long millis) {
+        mContext.enforceCallingOrSelfPermission(
+                Manifest.permission.TEST_MANAGE_ROLLBACKS,
+                "blockRollbackManager");
+        getHandler().post(() -> {
+            try {
+                Thread.sleep(millis);
+            } catch (InterruptedException e) {
+                throw new IllegalStateException("RollbackManagerHandlerThread interrupted");
+            }
+        });
+    }
+
     void onUnlockUser(int userId) {
         getHandler().post(() -> {
-            final List<RollbackData> rollbacks;
+            final List<Rollback> rollbacks;
             synchronized (mLock) {
                 rollbacks = new ArrayList<>(mRollbacks);
             }
 
-            final Set<RollbackData> changed =
+            final Set<Rollback> changed =
                     mAppDataRollbackHelper.commitPendingBackupAndRestoreForUser(userId, rollbacks);
 
-            for (RollbackData rd : changed) {
-                saveRollbackData(rd);
+            for (Rollback rollback : changed) {
+                saveRollback(rollback);
             }
         });
     }
@@ -609,20 +597,19 @@
         getHandler().post(() -> {
             // Check to see if any rollback-enabled staged sessions or staged
             // rollback sessions been applied.
-            List<RollbackData> enabling = new ArrayList<>();
-            List<RollbackData> restoreInProgress = new ArrayList<>();
+            List<Rollback> enabling = new ArrayList<>();
+            List<Rollback> restoreInProgress = new ArrayList<>();
             Set<String> apexPackageNames = new HashSet<>();
             synchronized (mLock) {
-                ensureRollbackDataLoadedLocked();
-                for (RollbackData data : mRollbacks) {
-                    if (data.isStaged()) {
-                        if (data.state == RollbackData.ROLLBACK_STATE_ENABLING) {
-                            enabling.add(data);
-                        } else if (data.restoreUserDataInProgress) {
-                            restoreInProgress.add(data);
+                for (Rollback rollback : mRollbacks) {
+                    if (rollback.isStaged()) {
+                        if (rollback.state == Rollback.ROLLBACK_STATE_ENABLING) {
+                            enabling.add(rollback);
+                        } else if (rollback.restoreUserDataInProgress) {
+                            restoreInProgress.add(rollback);
                         }
 
-                        for (PackageRollbackInfo info : data.info.getPackages()) {
+                        for (PackageRollbackInfo info : rollback.info.getPackages()) {
                             if (info.isApex()) {
                                 apexPackageNames.add(info.getPackageName());
                             }
@@ -631,35 +618,32 @@
                 }
             }
 
-            for (RollbackData data : enabling) {
+            for (Rollback rollback : enabling) {
                 PackageInstaller installer = mContext.getPackageManager().getPackageInstaller();
                 PackageInstaller.SessionInfo session = installer.getSessionInfo(
-                        data.stagedSessionId);
-                // TODO: What if session is null?
-                if (session != null) {
-                    if (session.isStagedSessionApplied()) {
-                        makeRollbackAvailable(data);
-                    } else if (session.isStagedSessionFailed()) {
-                        // TODO: Do we need to remove this from
-                        // mRollbacks, or is it okay to leave as
-                        // unavailable until the next reboot when it will go
-                        // away on its own?
-                        deleteRollback(data);
-                    }
+                        rollback.stagedSessionId);
+                if (session == null || session.isStagedSessionFailed()) {
+                    // TODO: Do we need to remove this from
+                    // mRollbacks, or is it okay to leave as
+                    // unavailable until the next reboot when it will go
+                    // away on its own?
+                    deleteRollback(rollback);
+                } else if (session.isStagedSessionApplied()) {
+                    makeRollbackAvailable(rollback);
                 }
             }
 
-            for (RollbackData data : restoreInProgress) {
+            for (Rollback rollback : restoreInProgress) {
                 PackageInstaller installer = mContext.getPackageManager().getPackageInstaller();
                 PackageInstaller.SessionInfo session = installer.getSessionInfo(
-                        data.stagedSessionId);
+                        rollback.stagedSessionId);
                 // TODO: What if session is null?
                 if (session != null) {
                     if (session.isStagedSessionApplied() || session.isStagedSessionFailed()) {
                         synchronized (mLock) {
-                            data.restoreUserDataInProgress = false;
+                            rollback.restoreUserDataInProgress = false;
                         }
-                        saveRollbackData(data);
+                        saveRollback(rollback);
                     }
                 }
             }
@@ -676,42 +660,6 @@
     }
 
     /**
-     * Load rollback data from storage if it has not already been loaded.
-     * After calling this funciton, mAvailableRollbacks and
-     * mRecentlyExecutedRollbacks will be non-null.
-     */
-    private void ensureRollbackDataLoaded() {
-        synchronized (mLock) {
-            ensureRollbackDataLoadedLocked();
-        }
-    }
-
-    /**
-     * Load rollback data from storage if it has not already been loaded.
-     * After calling this function, mRollbacks will be non-null.
-     */
-    @GuardedBy("mLock")
-    private void ensureRollbackDataLoadedLocked() {
-        if (mRollbacks == null) {
-            loadAllRollbackDataLocked();
-        }
-    }
-
-    /**
-     * Load all rollback data from storage.
-     * Note: We do potentially heavy IO here while holding mLock, because we
-     * have to have the rollback data loaded before we can do anything else
-     * meaningful.
-     */
-    @GuardedBy("mLock")
-    private void loadAllRollbackDataLocked() {
-        mRollbacks = mRollbackStore.loadAllRollbackData();
-        for (RollbackData data : mRollbacks) {
-            mAllocatedRollbackIds.put(data.info.getRollbackId(), true);
-        }
-    }
-
-    /**
      * Called when a package has been replaced with a different version.
      * Removes all backups for the package not matching the currently
      * installed package version.
@@ -722,20 +670,19 @@
         VersionedPackage installedVersion = getInstalledPackageVersion(packageName);
 
         synchronized (mLock) {
-            ensureRollbackDataLoadedLocked();
-            Iterator<RollbackData> iter = mRollbacks.iterator();
+            Iterator<Rollback> iter = mRollbacks.iterator();
             while (iter.hasNext()) {
-                RollbackData data = iter.next();
+                Rollback rollback = iter.next();
                 // TODO: Should we remove rollbacks in the ENABLING state here?
-                if (data.state == RollbackData.ROLLBACK_STATE_AVAILABLE
-                        || data.state == RollbackData.ROLLBACK_STATE_ENABLING) {
-                    for (PackageRollbackInfo info : data.info.getPackages()) {
+                if (rollback.state == Rollback.ROLLBACK_STATE_AVAILABLE
+                        || rollback.state == Rollback.ROLLBACK_STATE_ENABLING) {
+                    for (PackageRollbackInfo info : rollback.info.getPackages()) {
                         if (info.getPackageName().equals(packageName)
                                 && !packageVersionsEqual(
                                     info.getVersionRolledBackFrom(),
                                     installedVersion)) {
                             iter.remove();
-                            deleteRollback(data);
+                            deleteRollback(rollback);
                             break;
                         }
                     }
@@ -761,7 +708,7 @@
      */
     private void sendFailure(IntentSender statusReceiver, @RollbackManager.Status int status,
             String message) {
-        Log.e(TAG, message);
+        Slog.e(TAG, message);
         try {
             final Intent fillIn = new Intent();
             fillIn.putExtra(RollbackManager.EXTRA_STATUS, status);
@@ -791,19 +738,18 @@
         Instant now = Instant.now();
         Instant oldest = null;
         synchronized (mLock) {
-            ensureRollbackDataLoadedLocked();
-
-            Iterator<RollbackData> iter = mRollbacks.iterator();
+            Iterator<Rollback> iter = mRollbacks.iterator();
             while (iter.hasNext()) {
-                RollbackData data = iter.next();
-                if (data.state != RollbackData.ROLLBACK_STATE_AVAILABLE) {
+                Rollback rollback = iter.next();
+                if (rollback.state != Rollback.ROLLBACK_STATE_AVAILABLE) {
                     continue;
                 }
-                if (!now.isBefore(data.timestamp.plusMillis(mRollbackLifetimeDurationInMillis))) {
+                if (!now.isBefore(
+                            rollback.timestamp.plusMillis(mRollbackLifetimeDurationInMillis))) {
                     iter.remove();
-                    deleteRollback(data);
-                } else if (oldest == null || oldest.isAfter(data.timestamp)) {
-                    oldest = data.timestamp;
+                    deleteRollback(rollback);
+                } else if (oldest == null || oldest.isAfter(rollback.timestamp)) {
+                    oldest = rollback.timestamp;
                 }
             }
         }
@@ -858,13 +804,12 @@
      *
      * @param installFlags information about what is being installed.
      * @param newPackageCodePath path to the package about to be installed.
-     * @param installedUsers the set of users for which a given package is installed.
      * @param user the user that owns the install session to enable rollback on.
      * @param token the distinct rollback token sent by package manager.
      * @return true if enabling the rollback succeeds, false otherwise.
      */
-    private boolean enableRollback(int installFlags, File newPackageCodePath,
-            int[] installedUsers, @UserIdInt int user, int token) {
+    private boolean enableRollback(
+            int installFlags, File newPackageCodePath, @UserIdInt int user, int token) {
 
         // Find the session id associated with this install.
         // TODO: It would be nice if package manager or package installer told
@@ -876,7 +821,7 @@
         // session.
         final Context context = getContextAsUser(UserHandle.of(user));
         if (context == null) {
-            Log.e(TAG, "Unable to create context for install session user.");
+            Slog.e(TAG, "Unable to create context for install session user.");
             return false;
         }
 
@@ -903,45 +848,21 @@
         }
 
         if (parentSession == null || packageSession == null) {
-            Log.e(TAG, "Unable to find session for enabled rollback.");
+            Slog.e(TAG, "Unable to find session for enabled rollback.");
             return false;
         }
 
         // Check to see if this is the apk session for a staged session with
         // rollback enabled.
-        // TODO: This check could be made more efficient.
-        RollbackData rd = null;
         synchronized (mLock) {
-            ensureRollbackDataLoadedLocked();
             for (int i = 0; i < mRollbacks.size(); ++i) {
-                RollbackData data = mRollbacks.get(i);
-                if (data.apkSessionId == parentSession.getSessionId()) {
-                    rd = data;
-                    break;
-                }
-            }
-        }
-
-        if (rd != null) {
-            // This is the apk session for a staged session. We do not need to create a new rollback
-            // for this session.
-            PackageParser.PackageLite newPackage = null;
-            try {
-                newPackage = PackageParser.parsePackageLite(
-                        new File(packageSession.resolvedBaseCodePath), 0);
-            } catch (PackageParser.PackageParserException e) {
-                Log.e(TAG, "Unable to parse new package", e);
-                return false;
-            }
-            String packageName = newPackage.packageName;
-            for (PackageRollbackInfo info : rd.info.getPackages()) {
-                if (info.getPackageName().equals(packageName)) {
-                    info.getInstalledUsers().addAll(IntArray.wrap(installedUsers));
+                Rollback rollback = mRollbacks.get(i);
+                if (rollback.apkSessionId == parentSession.getSessionId()) {
+                    // This is the apk session for a staged session with rollback enabled. We do not
+                    // need to create a new rollback for this session.
                     return true;
                 }
             }
-            Log.e(TAG, "Unable to find package in apk session");
-            return false;
         }
 
         NewRollback newRollback;
@@ -957,7 +878,7 @@
         }
         newRollback.addToken(token);
 
-        return enableRollbackForPackageSession(newRollback.data, packageSession, installedUsers);
+        return enableRollbackForPackageSession(newRollback.rollback, packageSession);
     }
 
     /**
@@ -967,21 +888,21 @@
      *
      * @return true on success, false on failure.
      */
-    private boolean enableRollbackForPackageSession(RollbackData data,
-            PackageInstaller.SessionInfo session, @NonNull int[] installedUsers) {
+    private boolean enableRollbackForPackageSession(Rollback rollback,
+            PackageInstaller.SessionInfo session) {
         // TODO: Don't attempt to enable rollback for split installs.
         final int installFlags = session.installFlags;
         if ((installFlags & PackageManager.INSTALL_ENABLE_ROLLBACK) == 0) {
-            Log.e(TAG, "Rollback is not enabled.");
+            Slog.e(TAG, "Rollback is not enabled.");
             return false;
         }
         if ((installFlags & PackageManager.INSTALL_INSTANT_APP) != 0) {
-            Log.e(TAG, "Rollbacks not supported for instant app install");
+            Slog.e(TAG, "Rollbacks not supported for instant app install");
             return false;
         }
 
         if (session.resolvedBaseCodePath == null) {
-            Log.e(TAG, "Session code path has not been resolved.");
+            Slog.e(TAG, "Session code path has not been resolved.");
             return false;
         }
 
@@ -990,17 +911,17 @@
         try {
             newPackage = PackageParser.parsePackageLite(new File(session.resolvedBaseCodePath), 0);
         } catch (PackageParser.PackageParserException e) {
-            Log.e(TAG, "Unable to parse new package", e);
+            Slog.e(TAG, "Unable to parse new package", e);
             return false;
         }
 
         String packageName = newPackage.packageName;
-        Log.i(TAG, "Enabling rollback for install of " + packageName
+        Slog.i(TAG, "Enabling rollback for install of " + packageName
                 + ", session:" + session.sessionId);
 
         String installerPackageName = session.getInstallerPackageName();
         if (!enableRollbackAllowed(installerPackageName, packageName)) {
-            Log.e(TAG, "Installer " + installerPackageName
+            Slog.e(TAG, "Installer " + installerPackageName
                     + " is not allowed to enable rollback on " + packageName);
             return false;
         }
@@ -1016,7 +937,7 @@
         } catch (PackageManager.NameNotFoundException e) {
             // TODO: Support rolling back fresh package installs rather than
             // fail here. Test this case.
-            Log.e(TAG, packageName + " is not installed");
+            Slog.e(TAG, packageName + " is not installed");
             return false;
         }
 
@@ -1026,24 +947,23 @@
         PackageRollbackInfo packageRollbackInfo = new PackageRollbackInfo(
                 newVersion, installedVersion,
                 new IntArray() /* pendingBackups */, new ArrayList<>() /* pendingRestores */,
-                isApex, IntArray.wrap(installedUsers),
-                new SparseLongArray() /* ceSnapshotInodes */);
+                isApex, new IntArray(), new SparseLongArray() /* ceSnapshotInodes */);
 
         try {
             ApplicationInfo appInfo = pkgInfo.applicationInfo;
-            RollbackStore.backupPackageCodePath(data, packageName, appInfo.sourceDir);
+            RollbackStore.backupPackageCodePath(rollback, packageName, appInfo.sourceDir);
             if (!ArrayUtils.isEmpty(appInfo.splitSourceDirs)) {
                 for (String sourceDir : appInfo.splitSourceDirs) {
-                    RollbackStore.backupPackageCodePath(data, packageName, sourceDir);
+                    RollbackStore.backupPackageCodePath(rollback, packageName, sourceDir);
                 }
             }
         } catch (IOException e) {
-            Log.e(TAG, "Unable to copy package for rollback for " + packageName, e);
+            Slog.e(TAG, "Unable to copy package for rollback for " + packageName, e);
             return false;
         }
 
         synchronized (mLock) {
-            data.info.getPackages().add(packageRollbackInfo);
+            rollback.info.getPackages().add(packageRollbackInfo);
         }
         return true;
     }
@@ -1057,7 +977,7 @@
         }
 
         getHandler().post(() -> {
-            snapshotUserDataInternal(packageName);
+            snapshotUserDataInternal(packageName, userIds);
             restoreUserDataInternal(packageName, userIds, appId, ceDataInode, seInfo, token);
             final PackageManagerInternal pmi = LocalServices.getService(
                     PackageManagerInternal.class);
@@ -1065,20 +985,20 @@
         });
     }
 
-    private void snapshotUserDataInternal(String packageName) {
+    private void snapshotUserDataInternal(String packageName, int[] userIds) {
         synchronized (mLock) {
             // staged installs
-            ensureRollbackDataLoadedLocked();
             for (int i = 0; i < mRollbacks.size(); i++) {
-                RollbackData data = mRollbacks.get(i);
-                if (data.state != RollbackData.ROLLBACK_STATE_ENABLING) {
+                Rollback rollback = mRollbacks.get(i);
+                if (rollback.state != Rollback.ROLLBACK_STATE_ENABLING) {
                     continue;
                 }
 
-                for (PackageRollbackInfo info : data.info.getPackages()) {
+                for (PackageRollbackInfo info : rollback.info.getPackages()) {
                     if (info.getPackageName().equals(packageName)) {
-                        mAppDataRollbackHelper.snapshotAppData(data.info.getRollbackId(), info);
-                        saveRollbackData(data);
+                        mAppDataRollbackHelper.snapshotAppData(
+                                rollback.info.getRollbackId(), info, userIds);
+                        saveRollback(rollback);
                         break;
                     }
                 }
@@ -1086,11 +1006,11 @@
             // non-staged installs
             PackageRollbackInfo info;
             for (NewRollback rollback : mNewRollbacks) {
-                info = getPackageRollbackInfo(rollback.data, packageName);
+                info = getPackageRollbackInfo(rollback.rollback, packageName);
                 if (info != null) {
-                    mAppDataRollbackHelper.snapshotAppData(rollback.data.info.getRollbackId(),
-                            info);
-                    saveRollbackData(rollback.data);
+                    mAppDataRollbackHelper.snapshotAppData(
+                            rollback.rollback.info.getRollbackId(), info, userIds);
+                    saveRollback(rollback.rollback);
                 }
             }
         }
@@ -1099,32 +1019,31 @@
     private void restoreUserDataInternal(String packageName, int[] userIds, int appId,
             long ceDataInode, String seInfo, int token) {
         PackageRollbackInfo info = null;
-        RollbackData rollbackData = null;
+        Rollback rollback = null;
         synchronized (mLock) {
-            ensureRollbackDataLoadedLocked();
             for (int i = 0; i < mRollbacks.size(); ++i) {
-                RollbackData data = mRollbacks.get(i);
-                if (data.restoreUserDataInProgress) {
-                    info = getPackageRollbackInfo(data, packageName);
+                Rollback candidate = mRollbacks.get(i);
+                if (candidate.restoreUserDataInProgress) {
+                    info = getPackageRollbackInfo(candidate, packageName);
                     if (info != null) {
-                        rollbackData = data;
+                        rollback = candidate;
                         break;
                     }
                 }
             }
         }
 
-        if (rollbackData == null) {
+        if (rollback == null) {
             return;
         }
 
         for (int userId : userIds) {
-            final boolean changedRollbackData = mAppDataRollbackHelper.restoreAppData(
-                    rollbackData.info.getRollbackId(), info, userId, appId, seInfo);
+            final boolean changedRollback = mAppDataRollbackHelper.restoreAppData(
+                    rollback.info.getRollbackId(), info, userId, appId, seInfo);
 
             // We've updated metadata about this rollback, so save it to flash.
-            if (changedRollbackData) {
-                saveRollbackData(rollbackData);
+            if (changedRollback) {
+                saveRollback(rollback);
             }
         }
     }
@@ -1143,7 +1062,7 @@
 
             final PackageInstaller.SessionInfo session = installer.getSessionInfo(sessionId);
             if (session == null) {
-                Log.e(TAG, "No matching install session for: " + sessionId);
+                Slog.e(TAG, "No matching install session for: " + sessionId);
                 result.offer(false);
                 return;
             }
@@ -1154,9 +1073,8 @@
             }
 
             if (!session.isMultiPackage()) {
-                if (!enableRollbackForPackageSession(newRollback.data, session,
-                            new int[0])) {
-                    Log.e(TAG, "Unable to enable rollback for session: " + sessionId);
+                if (!enableRollbackForPackageSession(newRollback.rollback, session)) {
+                    Slog.e(TAG, "Unable to enable rollback for session: " + sessionId);
                     result.offer(false);
                     return;
                 }
@@ -1165,13 +1083,12 @@
                     final PackageInstaller.SessionInfo childSession =
                             installer.getSessionInfo(childSessionId);
                     if (childSession == null) {
-                        Log.e(TAG, "No matching child install session for: " + childSessionId);
+                        Slog.e(TAG, "No matching child install session for: " + childSessionId);
                         result.offer(false);
                         return;
                     }
-                    if (!enableRollbackForPackageSession(newRollback.data, childSession,
-                                new int[0])) {
-                        Log.e(TAG, "Unable to enable rollback for session: " + sessionId);
+                    if (!enableRollbackForPackageSession(newRollback.rollback, childSession)) {
+                        Slog.e(TAG, "Unable to enable rollback for session: " + sessionId);
                         result.offer(false);
                         return;
                     }
@@ -1184,7 +1101,7 @@
         try {
             return result.take();
         } catch (InterruptedException ie) {
-            Log.e(TAG, "Interrupted while waiting for notifyStagedSession response");
+            Slog.e(TAG, "Interrupted while waiting for notifyStagedSession response");
             return false;
         }
     }
@@ -1195,21 +1112,20 @@
             throw new SecurityException("notifyStagedApkSession may only be called by the system.");
         }
         getHandler().post(() -> {
-            RollbackData rd = null;
+            Rollback rollback = null;
             synchronized (mLock) {
-                ensureRollbackDataLoadedLocked();
                 for (int i = 0; i < mRollbacks.size(); ++i) {
-                    RollbackData data = mRollbacks.get(i);
-                    if (data.stagedSessionId == originalSessionId) {
-                        data.apkSessionId = apkSessionId;
-                        rd = data;
+                    Rollback candidate = mRollbacks.get(i);
+                    if (candidate.stagedSessionId == originalSessionId) {
+                        candidate.apkSessionId = apkSessionId;
+                        rollback = candidate;
                         break;
                     }
                 }
             }
 
-            if (rd != null) {
-                saveRollbackData(rd);
+            if (rollback != null) {
+                saveRollback(rollback);
             }
         });
     }
@@ -1289,7 +1205,8 @@
 
 
     private boolean packageVersionsEqual(VersionedPackage a, VersionedPackage b) {
-        return a.getPackageName().equals(b.getPackageName())
+        return a != null && b != null
+            && a.getPackageName().equals(b.getPackageName())
             && a.getLongVersionCode() == b.getLongVersionCode();
     }
 
@@ -1318,7 +1235,7 @@
             }
 
             if (newRollback != null) {
-                RollbackData rollback = completeEnableRollback(newRollback, success);
+                Rollback rollback = completeEnableRollback(newRollback, success);
                 if (rollback != null && !rollback.isStaged()) {
                     makeRollbackAvailable(rollback);
                 }
@@ -1331,32 +1248,32 @@
      * This should be called after rollback has been enabled for all packages
      * in the rollback. It does not make the rollback available yet.
      *
-     * @return the rollback data for a successfully enable-completed rollback,
+     * @return the Rollback instance for a successfully enable-completed rollback,
      * or null on error.
      */
-    private RollbackData completeEnableRollback(NewRollback newRollback, boolean success) {
-        RollbackData data = newRollback.data;
+    private Rollback completeEnableRollback(NewRollback newRollback, boolean success) {
+        Rollback rollback = newRollback.rollback;
         if (!success) {
             // The install session was aborted, clean up the pending install.
-            deleteRollback(data);
+            deleteRollback(rollback);
             return null;
         }
         if (newRollback.isCancelled) {
-            Log.e(TAG, "Rollback has been cancelled by PackageManager");
-            deleteRollback(data);
+            Slog.e(TAG, "Rollback has been cancelled by PackageManager");
+            deleteRollback(rollback);
             return null;
         }
 
-        // It's safe to access data.info outside a synchronized block because
+        // It's safe to access rollback.info outside a synchronized block because
         // this is running on the handler thread and all changes to the
-        // data.info occur on the handler thread.
-        if (data.info.getPackages().size() != newRollback.packageSessionIds.length) {
-            Log.e(TAG, "Failed to enable rollback for all packages in session.");
-            deleteRollback(data);
+        // rollback.info occur on the handler thread.
+        if (rollback.info.getPackages().size() != newRollback.packageSessionIds.length) {
+            Slog.e(TAG, "Failed to enable rollback for all packages in session.");
+            deleteRollback(rollback);
             return null;
         }
 
-        saveRollbackData(data);
+        saveRollback(rollback);
         synchronized (mLock) {
             // Note: There is a small window of time between when
             // the session has been committed by the package
@@ -1364,26 +1281,25 @@
             // here. Presumably the window is small enough that
             // nobody will want to roll back the newly installed
             // package before we make the rollback available.
-            // TODO: We'll lose the rollback data if the
+            // TODO: We'll lose the rollback if the
             // device reboots between when the session is
             // committed and this point. Revisit this after
             // adding support for rollback of staged installs.
-            ensureRollbackDataLoadedLocked();
-            mRollbacks.add(data);
+            mRollbacks.add(rollback);
         }
 
-        return data;
+        return rollback;
     }
 
-    private void makeRollbackAvailable(RollbackData data) {
+    private void makeRollbackAvailable(Rollback rollback) {
         // TODO: What if the rollback has since been expired, for example due
         // to a new package being installed. Won't this revive an expired
         // rollback? Consider adding a ROLLBACK_STATE_EXPIRED to address this.
         synchronized (mLock) {
-            data.state = RollbackData.ROLLBACK_STATE_AVAILABLE;
-            data.timestamp = Instant.now();
+            rollback.state = Rollback.ROLLBACK_STATE_AVAILABLE;
+            rollback.timestamp = Instant.now();
         }
-        saveRollbackData(data);
+        saveRollback(rollback);
 
         // TODO(zezeozue): Provide API to explicitly start observing instead
         // of doing this for all rollbacks. If we do this for all rollbacks,
@@ -1391,8 +1307,8 @@
         // After enabling and commiting any rollback, observe packages and
         // prepare to rollback if packages crashes too frequently.
         List<String> packages = new ArrayList<>();
-        for (int i = 0; i < data.info.getPackages().size(); i++) {
-            packages.add(data.info.getPackages().get(i).getPackageName());
+        for (int i = 0; i < rollback.info.getPackages().size(); i++) {
+            packages.add(rollback.info.getPackages().get(i).getPackageName());
         }
         mPackageHealthObserver.startObservingHealth(packages,
                 mRollbackLifetimeDurationInMillis);
@@ -1400,18 +1316,14 @@
     }
 
     /*
-     * Returns the RollbackData, if any, for a rollback with the given
-     * rollbackId.
+     * Returns the rollback with the given rollbackId, if any.
      */
-    private RollbackData getRollbackForId(int rollbackId) {
+    private Rollback getRollbackForId(int rollbackId) {
         synchronized (mLock) {
-            // TODO: Have ensureRollbackDataLoadedLocked return the list of
-            // available rollbacks, to hopefully avoid forgetting to call it?
-            ensureRollbackDataLoadedLocked();
             for (int i = 0; i < mRollbacks.size(); ++i) {
-                RollbackData data = mRollbacks.get(i);
-                if (data.info.getRollbackId() == rollbackId) {
-                    return data;
+                Rollback rollback = mRollbacks.get(i);
+                if (rollback.info.getRollbackId() == rollbackId) {
+                    return rollback;
                 }
             }
         }
@@ -1421,11 +1333,11 @@
 
     /**
      * Returns the {@code PackageRollbackInfo} associated with {@code packageName} from
-     * a specified {@code RollbackData}.
+     * a specified {@code Rollback}.
      */
-    private static PackageRollbackInfo getPackageRollbackInfo(RollbackData data,
+    private static PackageRollbackInfo getPackageRollbackInfo(Rollback rollback,
             String packageName) {
-        for (PackageRollbackInfo info : data.info.getPackages()) {
+        for (PackageRollbackInfo info : rollback.info.getPackages()) {
             if (info.getPackageName().equals(packageName)) {
                 return info;
             }
@@ -1449,30 +1361,30 @@
         throw new IllegalStateException("Failed to allocate rollback ID");
     }
 
-    private void deleteRollback(RollbackData rollbackData) {
-        for (PackageRollbackInfo info : rollbackData.info.getPackages()) {
-            IntArray installedUsers = info.getInstalledUsers();
-            for (int i = 0; i < installedUsers.size(); i++) {
-                int userId = installedUsers.get(i);
-                mAppDataRollbackHelper.destroyAppDataSnapshot(rollbackData.info.getRollbackId(),
+    private void deleteRollback(Rollback rollback) {
+        for (PackageRollbackInfo info : rollback.info.getPackages()) {
+            IntArray snapshottedUsers = info.getSnapshottedUsers();
+            for (int i = 0; i < snapshottedUsers.size(); i++) {
+                int userId = snapshottedUsers.get(i);
+                mAppDataRollbackHelper.destroyAppDataSnapshot(rollback.info.getRollbackId(),
                         info, userId);
             }
         }
-        mRollbackStore.deleteRollbackData(rollbackData);
+        mRollbackStore.deleteRollback(rollback);
     }
 
     /**
-     * Saves rollback data, swallowing any IOExceptions.
+     * Saves a rollback, swallowing any IOExceptions.
      * For those times when it's not obvious what to do about the IOException.
      * TODO: Double check we can't do a better job handling the IOException in
      * a cases where this method is called.
      */
-    private void saveRollbackData(RollbackData rollbackData) {
+    private void saveRollback(Rollback rollback) {
         try {
-            mRollbackStore.saveRollbackData(rollbackData);
+            mRollbackStore.saveRollback(rollback);
         } catch (IOException ioe) {
-            Log.e(TAG, "Unable to save rollback info for: "
-                    + rollbackData.info.getRollbackId(), ioe);
+            Slog.e(TAG, "Unable to save rollback for: "
+                    + rollback.info.getRollbackId(), ioe);
         }
     }
 
@@ -1480,14 +1392,14 @@
     protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
         IndentingPrintWriter ipw = new IndentingPrintWriter(pw, "  ");
         synchronized (mLock) {
-            for (RollbackData data : mRollbacks) {
-                RollbackInfo info = data.info;
+            for (Rollback rollback : mRollbacks) {
+                RollbackInfo info = rollback.info;
                 ipw.println(info.getRollbackId() + ":");
                 ipw.increaseIndent();
-                ipw.println("-state: " + data.getStateAsString());
-                ipw.println("-timestamp: " + data.timestamp);
-                if (data.stagedSessionId != -1) {
-                    ipw.println("-stagedSessionId: " + data.stagedSessionId);
+                ipw.println("-state: " + rollback.getStateAsString());
+                ipw.println("-timestamp: " + rollback.timestamp);
+                if (rollback.stagedSessionId != -1) {
+                    ipw.println("-stagedSessionId: " + rollback.stagedSessionId);
                 }
                 ipw.println("-packages:");
                 ipw.increaseIndent();
@@ -1497,7 +1409,7 @@
                             + " -> " + pkg.getVersionRolledBackTo().getLongVersionCode());
                 }
                 ipw.decreaseIndent();
-                if (data.state == RollbackData.ROLLBACK_STATE_COMMITTED) {
+                if (rollback.state == Rollback.ROLLBACK_STATE_COMMITTED) {
                     ipw.println("-causePackages:");
                     ipw.increaseIndent();
                     for (VersionedPackage cPkg : info.getCausePackages()) {
@@ -1523,7 +1435,7 @@
     }
 
     private static class NewRollback {
-        public final RollbackData data;
+        public final Rollback rollback;
 
         /**
          * This array holds all of the rollback tokens associated with package sessions included
@@ -1541,9 +1453,9 @@
         public final int[] packageSessionIds;
 
         /**
-         * Flag to determine whether the RollbackData has been cancelled.
+         * Flag to determine whether the rollback has been cancelled.
          *
-         * <p>RollbackData could be invalidated and cancelled if RollbackManager receives
+         * <p>Rollback could be invalidated and cancelled if RollbackManager receives
          * {@link Intent#ACTION_CANCEL_ENABLE_ROLLBACK} from {@link PackageManager}.
          *
          * <p>The main underlying assumption here is that if enabling the rollback times out, then
@@ -1553,8 +1465,8 @@
          */
         public boolean isCancelled = false;
 
-        NewRollback(RollbackData data, int[] packageSessionIds) {
-            this.data = data;
+        NewRollback(Rollback rollback, int[] packageSessionIds) {
+            this.rollback = rollback;
             this.packageSessionIds = packageSessionIds;
         }
 
@@ -1569,13 +1481,13 @@
 
     NewRollback createNewRollbackLocked(PackageInstaller.SessionInfo parentSession) {
         int rollbackId = allocateRollbackIdLocked();
-        final RollbackData data;
+        final Rollback rollback;
         int parentSessionId = parentSession.getSessionId();
 
         if (parentSession.isStaged()) {
-            data = mRollbackStore.createStagedRollback(rollbackId, parentSessionId);
+            rollback = mRollbackStore.createStagedRollback(rollbackId, parentSessionId);
         } else {
-            data = mRollbackStore.createNonStagedRollback(rollbackId);
+            rollback = mRollbackStore.createNonStagedRollback(rollbackId);
         }
 
         int[] packageSessionIds;
@@ -1585,7 +1497,7 @@
             packageSessionIds = new int[]{parentSessionId};
         }
 
-        return new NewRollback(data, packageSessionIds);
+        return new NewRollback(rollback, packageSessionIds);
     }
 
     /**
@@ -1596,10 +1508,10 @@
     NewRollback getNewRollbackForPackageSessionLocked(int packageSessionId) {
         // We expect mNewRollbacks to be a very small list; linear search
         // should be plenty fast.
-        for (NewRollback newRollbackData : mNewRollbacks) {
-            for (int id : newRollbackData.packageSessionIds) {
+        for (NewRollback newRollback: mNewRollbacks) {
+            for (int id : newRollback.packageSessionIds) {
                 if (id == packageSessionId) {
-                    return newRollbackData;
+                    return newRollback;
                 }
             }
         }
diff --git a/services/core/java/com/android/server/rollback/RollbackStore.java b/services/core/java/com/android/server/rollback/RollbackStore.java
index 8a26368c..b2448f6 100644
--- a/services/core/java/com/android/server/rollback/RollbackStore.java
+++ b/services/core/java/com/android/server/rollback/RollbackStore.java
@@ -16,8 +16,8 @@
 
 package com.android.server.rollback;
 
-import static com.android.server.rollback.RollbackData.rollbackStateFromString;
-import static com.android.server.rollback.RollbackData.rollbackStateToString;
+import static com.android.server.rollback.Rollback.rollbackStateFromString;
+import static com.android.server.rollback.Rollback.rollbackStateToString;
 
 import android.annotation.NonNull;
 import android.content.pm.VersionedPackage;
@@ -25,7 +25,7 @@
 import android.content.rollback.PackageRollbackInfo.RestoreInfo;
 import android.content.rollback.RollbackInfo;
 import android.util.IntArray;
-import android.util.Log;
+import android.util.Slog;
 import android.util.SparseLongArray;
 
 import libcore.io.IoUtils;
@@ -73,17 +73,17 @@
     }
 
     /**
-     * Reads the rollback data from persistent storage.
+     * Reads the rollbacks from persistent storage.
      */
-    List<RollbackData> loadAllRollbackData() {
-        List<RollbackData> rollbacks = new ArrayList<>();
+    List<Rollback> loadRollbacks() {
+        List<Rollback> rollbacks = new ArrayList<>();
         mRollbackDataDir.mkdirs();
         for (File rollbackDir : mRollbackDataDir.listFiles()) {
             if (rollbackDir.isDirectory()) {
                 try {
-                    rollbacks.add(loadRollbackData(rollbackDir));
+                    rollbacks.add(loadRollback(rollbackDir));
                 } catch (IOException e) {
-                    Log.e(TAG, "Unable to read rollback data at " + rollbackDir, e);
+                    Slog.e(TAG, "Unable to read rollback at " + rollbackDir, e);
                     removeFile(rollbackDir);
                 }
             }
@@ -191,21 +191,21 @@
     }
 
     /**
-     * Creates a new RollbackData instance for a non-staged rollback with
+     * Creates a new Rollback instance for a non-staged rollback with
      * backupDir assigned.
      */
-    RollbackData createNonStagedRollback(int rollbackId) {
+    Rollback createNonStagedRollback(int rollbackId) {
         File backupDir = new File(mRollbackDataDir, Integer.toString(rollbackId));
-        return new RollbackData(rollbackId, backupDir, -1);
+        return new Rollback(rollbackId, backupDir, -1);
     }
 
     /**
-     * Creates a new RollbackData instance for a staged rollback with
+     * Creates a new Rollback instance for a staged rollback with
      * backupDir assigned.
      */
-    RollbackData createStagedRollback(int rollbackId, int stagedSessionId) {
+    Rollback createStagedRollback(int rollbackId, int stagedSessionId) {
         File backupDir = new File(mRollbackDataDir, Integer.toString(rollbackId));
-        return new RollbackData(rollbackId, backupDir, stagedSessionId);
+        return new Rollback(rollbackId, backupDir, stagedSessionId);
     }
 
     /**
@@ -213,10 +213,10 @@
      * For packages containing splits, this method should be called for each
      * of the package's split apks in addition to the base apk.
      */
-    static void backupPackageCodePath(RollbackData data, String packageName, String codePath)
+    static void backupPackageCodePath(Rollback rollback, String packageName, String codePath)
             throws IOException {
         File sourceFile = new File(codePath);
-        File targetDir = new File(data.backupDir, packageName);
+        File targetDir = new File(rollback.backupDir, packageName);
         targetDir.mkdirs();
         File targetFile = new File(targetDir, sourceFile.getName());
 
@@ -228,8 +228,8 @@
      * Returns the apk or apex files backed up for the given package.
      * Includes the base apk and any splits. Returns null if none found.
      */
-    static File[] getPackageCodePaths(RollbackData data, String packageName) {
-        File targetDir = new File(data.backupDir, packageName);
+    static File[] getPackageCodePaths(Rollback rollback, String packageName) {
+        File targetDir = new File(rollback.backupDir, packageName);
         File[] files = targetDir.listFiles();
         if (files == null || files.length == 0) {
             return null;
@@ -241,27 +241,27 @@
      * Deletes all backed up apks and apex files associated with the given
      * rollback.
      */
-    static void deletePackageCodePaths(RollbackData data) {
-        for (PackageRollbackInfo info : data.info.getPackages()) {
-            File targetDir = new File(data.backupDir, info.getPackageName());
+    static void deletePackageCodePaths(Rollback rollback) {
+        for (PackageRollbackInfo info : rollback.info.getPackages()) {
+            File targetDir = new File(rollback.backupDir, info.getPackageName());
             removeFile(targetDir);
         }
     }
 
     /**
-     * Saves the rollback data to persistent storage.
+     * Saves the given rollback to persistent storage.
      */
-    void saveRollbackData(RollbackData data) throws IOException {
+    void saveRollback(Rollback rollback) throws IOException {
         try {
             JSONObject dataJson = new JSONObject();
-            dataJson.put("info", rollbackInfoToJson(data.info));
-            dataJson.put("timestamp", data.timestamp.toString());
-            dataJson.put("stagedSessionId", data.stagedSessionId);
-            dataJson.put("state", rollbackStateToString(data.state));
-            dataJson.put("apkSessionId", data.apkSessionId);
-            dataJson.put("restoreUserDataInProgress", data.restoreUserDataInProgress);
+            dataJson.put("info", rollbackInfoToJson(rollback.info));
+            dataJson.put("timestamp", rollback.timestamp.toString());
+            dataJson.put("stagedSessionId", rollback.stagedSessionId);
+            dataJson.put("state", rollbackStateToString(rollback.state));
+            dataJson.put("apkSessionId", rollback.apkSessionId);
+            dataJson.put("restoreUserDataInProgress", rollback.restoreUserDataInProgress);
 
-            PrintWriter pw = new PrintWriter(new File(data.backupDir, "rollback.json"));
+            PrintWriter pw = new PrintWriter(new File(rollback.backupDir, "rollback.json"));
             pw.println(dataJson.toString());
             pw.close();
         } catch (JSONException e) {
@@ -270,23 +270,23 @@
     }
 
     /**
-     * Removes all persistant storage associated with the given rollback data.
+     * Removes all persistent storage associated with the given rollback.
      */
-    void deleteRollbackData(RollbackData data) {
-        removeFile(data.backupDir);
+    void deleteRollback(Rollback rollback) {
+        removeFile(rollback.backupDir);
     }
 
     /**
      * Reads the metadata for a rollback from the given directory.
      * @throws IOException in case of error reading the data.
      */
-    private static RollbackData loadRollbackData(File backupDir) throws IOException {
+    private static Rollback loadRollback(File backupDir) throws IOException {
         try {
             File rollbackJsonFile = new File(backupDir, "rollback.json");
             JSONObject dataJson = new JSONObject(
                     IoUtils.readFileAsString(rollbackJsonFile.getAbsolutePath()));
 
-            return new RollbackData(
+            return new Rollback(
                     rollbackInfoFromJson(dataJson.getJSONObject("info")),
                     backupDir,
                     Instant.parse(dataJson.getString("timestamp")),
@@ -319,13 +319,14 @@
 
         IntArray pendingBackups = info.getPendingBackups();
         List<RestoreInfo> pendingRestores = info.getPendingRestores();
-        IntArray installedUsers = info.getInstalledUsers();
+        IntArray snapshottedUsers = info.getSnapshottedUsers();
         json.put("pendingBackups", convertToJsonArray(pendingBackups));
         json.put("pendingRestores", convertToJsonArray(pendingRestores));
 
         json.put("isApex", info.isApex());
 
-        json.put("installedUsers", convertToJsonArray(installedUsers));
+        // Field is named 'installedUsers' for legacy reasons.
+        json.put("installedUsers", convertToJsonArray(snapshottedUsers));
         json.put("ceSnapshotInodes", ceSnapshotInodesToJson(info.getCeSnapshotInodes()));
 
         return json;
@@ -345,12 +346,13 @@
 
         final boolean isApex = json.getBoolean("isApex");
 
-        final IntArray installedUsers = convertToIntArray(json.getJSONArray("installedUsers"));
+        // Field is named 'installedUsers' for legacy reasons.
+        final IntArray snapshottedUsers = convertToIntArray(json.getJSONArray("installedUsers"));
         final SparseLongArray ceSnapshotInodes = ceSnapshotInodesFromJson(
                 json.getJSONArray("ceSnapshotInodes"));
 
         return new PackageRollbackInfo(versionRolledBackFrom, versionRolledBackTo,
-                pendingBackups, pendingRestores, isApex, installedUsers, ceSnapshotInodes);
+                pendingBackups, pendingRestores, isApex, snapshottedUsers, ceSnapshotInodes);
     }
 
     private static JSONArray versionedPackagesToJson(List<VersionedPackage> packages)
diff --git a/services/core/java/com/android/server/rollback/TEST_MAPPING b/services/core/java/com/android/server/rollback/TEST_MAPPING
index 8c7b5ac..2cc931b 100644
--- a/services/core/java/com/android/server/rollback/TEST_MAPPING
+++ b/services/core/java/com/android/server/rollback/TEST_MAPPING
@@ -1,12 +1,6 @@
 {
   "presubmit": [
     {
-      "name": "RollbackTest"
-    },
-    {
-      "name": "StagedRollbackTest"
-    },
-    {
       "name": "FrameworksServicesTests",
       "options": [
         {
@@ -21,6 +15,9 @@
     },
     {
       "path": "cts/hostsidetests/rollback"
+    },
+    {
+      "path": "frameworks/base/tests/RollbackTest"
     }
   ]
 }
diff --git a/services/core/java/com/android/server/timedetector/SimpleTimeDetectorStrategy.java b/services/core/java/com/android/server/timedetector/SimpleTimeDetectorStrategy.java
index 9dbbf16..0b970bf 100644
--- a/services/core/java/com/android/server/timedetector/SimpleTimeDetectorStrategy.java
+++ b/services/core/java/com/android/server/timedetector/SimpleTimeDetectorStrategy.java
@@ -16,35 +16,58 @@
 
 package com.android.server.timedetector;
 
+import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.app.AlarmManager;
+import android.app.timedetector.ManualTimeSuggestion;
 import android.app.timedetector.PhoneTimeSuggestion;
 import android.content.Intent;
+import android.util.LocalLog;
 import android.util.Slog;
 import android.util.TimestampedValue;
 
+import com.android.internal.annotations.GuardedBy;
 import com.android.internal.telephony.TelephonyIntents;
+import com.android.internal.util.IndentingPrintWriter;
 
 import java.io.PrintWriter;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
 
 /**
  * An implementation of TimeDetectorStrategy that passes only NITZ suggestions to
- * {@link AlarmManager}. The TimeDetectorService handles thread safety: all calls to
- * this class can be assumed to be single threaded (though the thread used may vary).
+ * {@link AlarmManager}.
+ *
+ * <p>Most public methods are marked synchronized to ensure thread safety around internal state.
  */
-// @NotThreadSafe
 public final class SimpleTimeDetectorStrategy implements TimeDetectorStrategy {
 
-    private final static String TAG = "timedetector.SimpleTimeDetectorStrategy";
+    private static final boolean DBG = false;
+    private static final String LOG_TAG = "SimpleTimeDetectorStrategy";
+
+    @IntDef({ ORIGIN_PHONE, ORIGIN_MANUAL })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface Origin {}
+
+    /** Used when a time value originated from a telephony signal. */
+    @Origin
+    private static final int ORIGIN_PHONE = 1;
+
+    /** Used when a time value originated from a user / manual settings. */
+    @Origin
+    private static final int ORIGIN_MANUAL = 2;
 
     /**
      * CLOCK_PARANOIA: The maximum difference allowed between the expected system clock time and the
      * actual system clock time before a warning is logged. Used to help identify situations where
-     * there is something other than this class setting the system clock.
+     * there is something other than this class setting the system clock automatically.
      */
     private static final long SYSTEM_CLOCK_PARANOIA_THRESHOLD_MILLIS = 2 * 1000;
 
+    // A log for changes made to the system clock and why.
+    @NonNull private final LocalLog mTimeChangesLog = new LocalLog(30);
+
     // @NonNull after initialize()
     private Callback mCallback;
 
@@ -52,11 +75,11 @@
     @Nullable private PhoneTimeSuggestion mLastPhoneSuggestion;
 
     // Information about the last time signal received: Used when toggling auto-time.
-    @Nullable private TimestampedValue<Long> mLastSystemClockTime;
-    private boolean mLastSystemClockTimeSendNetworkBroadcast;
+    @Nullable private TimestampedValue<Long> mLastAutoSystemClockTime;
+    private boolean mLastAutoSystemClockTimeSendNetworkBroadcast;
 
     // System clock state.
-    @Nullable private TimestampedValue<Long> mLastSystemClockTimeSet;
+    @Nullable private TimestampedValue<Long> mLastAutoSystemClockTimeSet;
 
     @Override
     public void initialize(@NonNull Callback callback) {
@@ -64,26 +87,32 @@
     }
 
     @Override
-    public void suggestPhoneTime(@NonNull PhoneTimeSuggestion timeSuggestion) {
+    public synchronized void suggestPhoneTime(@NonNull PhoneTimeSuggestion timeSuggestion) {
         // NITZ logic
 
+        // Empty suggestions are just ignored as we don't currently keep track of suggestion origin.
+        if (timeSuggestion.getUtcTime() == null) {
+            return;
+        }
+
         boolean timeSuggestionIsValid =
                 validateNewPhoneSuggestion(timeSuggestion, mLastPhoneSuggestion);
         if (!timeSuggestionIsValid) {
             return;
         }
         // Always store the last NITZ value received, regardless of whether we go on to use it to
-        // update the system clock. This is so that we can validate future NITZ signals.
+        // update the system clock. This is so that we can validate future phone suggestions.
         mLastPhoneSuggestion = timeSuggestion;
 
         // System clock update logic.
-
-        // Historically, Android has sent a telephony broadcast only when setting the time using
-        // NITZ.
-        final boolean sendNetworkBroadcast = true;
-
         final TimestampedValue<Long> newUtcTime = timeSuggestion.getUtcTime();
-        setSystemClockIfRequired(newUtcTime, sendNetworkBroadcast);
+        setSystemClockIfRequired(ORIGIN_PHONE, newUtcTime, timeSuggestion);
+    }
+
+    @Override
+    public synchronized void suggestManualTime(ManualTimeSuggestion timeSuggestion) {
+        final TimestampedValue<Long> newUtcTime = timeSuggestion.getUtcTime();
+        setSystemClockIfRequired(ORIGIN_MANUAL, newUtcTime, timeSuggestion);
     }
 
     private static boolean validateNewPhoneSuggestion(@NonNull PhoneTimeSuggestion newSuggestion,
@@ -94,7 +123,7 @@
                     newSuggestion.getUtcTime(), lastSuggestion.getUtcTime());
             if (referenceTimeDifference < 0 || referenceTimeDifference > Integer.MAX_VALUE) {
                 // Out of order or bogus.
-                Slog.w(TAG, "validateNewNitzTime: Bad NITZ signal received."
+                Slog.w(LOG_TAG, "Bad NITZ signal received."
                         + " referenceTimeDifference=" + referenceTimeDifference
                         + " lastSuggestion=" + lastSuggestion
                         + " newSuggestion=" + newSuggestion);
@@ -104,17 +133,37 @@
         return true;
     }
 
+    @GuardedBy("this")
     private void setSystemClockIfRequired(
-            TimestampedValue<Long> time, boolean sendNetworkBroadcast) {
+            @Origin int origin, TimestampedValue<Long> time, Object cause) {
+        // Historically, Android has sent a TelephonyIntents.ACTION_NETWORK_SET_TIME broadcast only
+        // when setting the time using NITZ.
+        boolean sendNetworkBroadcast = origin == ORIGIN_PHONE;
 
-        // Store the last candidate we've seen in all cases so we can set the system clock
-        // when/if time detection is enabled.
-        mLastSystemClockTime = time;
-        mLastSystemClockTimeSendNetworkBroadcast = sendNetworkBroadcast;
+        boolean isOriginAutomatic = isOriginAutomatic(origin);
+        if (isOriginAutomatic) {
+            // Store the last auto time candidate we've seen in all cases so we can set the system
+            // clock when/if time detection is off but later enabled.
+            mLastAutoSystemClockTime = time;
+            mLastAutoSystemClockTimeSendNetworkBroadcast = sendNetworkBroadcast;
 
-        if (!mCallback.isTimeDetectionEnabled()) {
-            Slog.d(TAG, "setSystemClockIfRequired: Time detection is not enabled. time=" + time);
-            return;
+            if (!mCallback.isAutoTimeDetectionEnabled()) {
+                if (DBG) {
+                    Slog.d(LOG_TAG, "Auto time detection is not enabled."
+                            + " time=" + time
+                            + ", cause=" + cause);
+                }
+                return;
+            }
+        } else {
+            if (mCallback.isAutoTimeDetectionEnabled()) {
+                if (DBG) {
+                    Slog.d(LOG_TAG, "Auto time detection is enabled."
+                            + " time=" + time
+                            + ", cause=" + cause);
+                }
+                return;
+            }
         }
 
         mCallback.acquireWakeLock();
@@ -122,37 +171,45 @@
             long elapsedRealtimeMillis = mCallback.elapsedRealtimeMillis();
             long actualTimeMillis = mCallback.systemClockMillis();
 
-            // CLOCK_PARANOIA : Check to see if this class owns the clock or if something else
-            // may be setting the clock.
-            if (mLastSystemClockTimeSet != null) {
-                long expectedTimeMillis = TimeDetectorStrategy.getTimeAt(
-                        mLastSystemClockTimeSet, elapsedRealtimeMillis);
-                long absSystemClockDifference = Math.abs(expectedTimeMillis - actualTimeMillis);
-                if (absSystemClockDifference > SYSTEM_CLOCK_PARANOIA_THRESHOLD_MILLIS) {
-                    Slog.w(TAG, "System clock has not tracked elapsed real time clock. A clock may"
-                            + " be inaccurate or something unexpectedly set the system clock."
-                            + " elapsedRealtimeMillis=" + elapsedRealtimeMillis
-                            + " expectedTimeMillis=" + expectedTimeMillis
-                            + " actualTimeMillis=" + actualTimeMillis);
+            if (isOriginAutomatic) {
+                // CLOCK_PARANOIA : Check to see if this class owns the clock or if something else
+                // may be setting the clock.
+                if (mLastAutoSystemClockTimeSet != null) {
+                    long expectedTimeMillis = TimeDetectorStrategy.getTimeAt(
+                            mLastAutoSystemClockTimeSet, elapsedRealtimeMillis);
+                    long absSystemClockDifference = Math.abs(expectedTimeMillis - actualTimeMillis);
+                    if (absSystemClockDifference > SYSTEM_CLOCK_PARANOIA_THRESHOLD_MILLIS) {
+                        Slog.w(LOG_TAG,
+                                "System clock has not tracked elapsed real time clock. A clock may"
+                                        + " be inaccurate or something unexpectedly set the system"
+                                        + " clock."
+                                        + " elapsedRealtimeMillis=" + elapsedRealtimeMillis
+                                        + " expectedTimeMillis=" + expectedTimeMillis
+                                        + " actualTimeMillis=" + actualTimeMillis);
+                    }
                 }
             }
 
-            final String reason = "New time signal";
             adjustAndSetDeviceSystemClock(
-                    time, sendNetworkBroadcast, elapsedRealtimeMillis, actualTimeMillis, reason);
+                    time, sendNetworkBroadcast, elapsedRealtimeMillis, actualTimeMillis, cause);
         } finally {
             mCallback.releaseWakeLock();
         }
     }
 
+    private static boolean isOriginAutomatic(@Origin int origin) {
+        return origin == ORIGIN_PHONE;
+    }
+
     @Override
-    public void handleAutoTimeDetectionToggle(boolean enabled) {
+    public synchronized void handleAutoTimeDetectionChanged() {
         // If automatic time detection is enabled we update the system clock instantly if we can.
         // Conversely, if automatic time detection is disabled we leave the clock as it is.
+        boolean enabled = mCallback.isAutoTimeDetectionEnabled();
         if (enabled) {
-            if (mLastSystemClockTime != null) {
+            if (mLastAutoSystemClockTime != null) {
                 // Only send the network broadcast if the last candidate would have caused one.
-                final boolean sendNetworkBroadcast = mLastSystemClockTimeSendNetworkBroadcast;
+                final boolean sendNetworkBroadcast = mLastAutoSystemClockTimeSendNetworkBroadcast;
 
                 mCallback.acquireWakeLock();
                 try {
@@ -160,7 +217,7 @@
                     long actualTimeMillis = mCallback.systemClockMillis();
 
                     final String reason = "Automatic time detection enabled.";
-                    adjustAndSetDeviceSystemClock(mLastSystemClockTime, sendNetworkBroadcast,
+                    adjustAndSetDeviceSystemClock(mLastAutoSystemClockTime, sendNetworkBroadcast,
                             elapsedRealtimeMillis, actualTimeMillis, reason);
                 } finally {
                     mCallback.releaseWakeLock();
@@ -169,22 +226,35 @@
         } else {
             // CLOCK_PARANOIA: We are losing "control" of the system clock so we cannot predict what
             // it should be in future.
-            mLastSystemClockTimeSet = null;
+            mLastAutoSystemClockTimeSet = null;
         }
     }
 
     @Override
-    public void dump(@NonNull PrintWriter pw, @Nullable String[] args) {
+    public synchronized void dump(@NonNull PrintWriter pw, @Nullable String[] args) {
         pw.println("mLastPhoneSuggestion=" + mLastPhoneSuggestion);
-        pw.println("mLastSystemClockTimeSet=" + mLastSystemClockTimeSet);
-        pw.println("mLastSystemClockTime=" + mLastSystemClockTime);
-        pw.println("mLastSystemClockTimeSendNetworkBroadcast="
-                + mLastSystemClockTimeSendNetworkBroadcast);
+        pw.println("mLastAutoSystemClockTimeSet=" + mLastAutoSystemClockTimeSet);
+        pw.println("mLastAutoSystemClockTime=" + mLastAutoSystemClockTime);
+        pw.println("mLastAutoSystemClockTimeSendNetworkBroadcast="
+                + mLastAutoSystemClockTimeSendNetworkBroadcast);
+
+        IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " ");
+
+        ipw.println("TimeDetectorStrategyImpl logs:");
+        ipw.increaseIndent(); // level 1
+
+        ipw.println("Time change log:");
+        ipw.increaseIndent(); // level 2
+        mTimeChangesLog.dump(ipw);
+        ipw.decreaseIndent(); // level 2
+
+        ipw.decreaseIndent(); // level 1
     }
 
+    @GuardedBy("this")
     private void adjustAndSetDeviceSystemClock(
             TimestampedValue<Long> newTime, boolean sendNetworkBroadcast,
-            long elapsedRealtimeMillis, long actualSystemClockMillis, String reason) {
+            long elapsedRealtimeMillis, long actualSystemClockMillis, Object cause) {
 
         // Adjust for the time that has elapsed since the signal was received.
         long newSystemClockMillis = TimeDetectorStrategy.getTimeAt(newTime, elapsedRealtimeMillis);
@@ -194,24 +264,30 @@
         long absTimeDifference = Math.abs(newSystemClockMillis - actualSystemClockMillis);
         long systemClockUpdateThreshold = mCallback.systemClockUpdateThresholdMillis();
         if (absTimeDifference < systemClockUpdateThreshold) {
-            Slog.d(TAG, "adjustAndSetDeviceSystemClock: Not setting system clock. New time and"
-                    + " system clock are close enough."
-                    + " elapsedRealtimeMillis=" + elapsedRealtimeMillis
-                    + " newTime=" + newTime
-                    + " reason=" + reason
-                    + " systemClockUpdateThreshold=" + systemClockUpdateThreshold
-                    + " absTimeDifference=" + absTimeDifference);
+            if (DBG) {
+                Slog.d(LOG_TAG, "Not setting system clock. New time and"
+                        + " system clock are close enough."
+                        + " elapsedRealtimeMillis=" + elapsedRealtimeMillis
+                        + " newTime=" + newTime
+                        + " cause=" + cause
+                        + " systemClockUpdateThreshold=" + systemClockUpdateThreshold
+                        + " absTimeDifference=" + absTimeDifference);
+            }
             return;
         }
 
-        Slog.d(TAG, "Setting system clock using time=" + newTime
-                + " reason=" + reason
-                + " elapsedRealtimeMillis=" + elapsedRealtimeMillis
-                + " newTimeMillis=" + newSystemClockMillis);
         mCallback.setSystemClock(newSystemClockMillis);
+        String logMsg = "Set system clock using time=" + newTime
+                + " cause=" + cause
+                + " elapsedRealtimeMillis=" + elapsedRealtimeMillis
+                + " newSystemClockMillis=" + newSystemClockMillis;
+        if (DBG) {
+            Slog.d(LOG_TAG, logMsg);
+        }
+        mTimeChangesLog.log(logMsg);
 
         // CLOCK_PARANOIA : Record the last time this class set the system clock.
-        mLastSystemClockTimeSet = newTime;
+        mLastAutoSystemClockTimeSet = newTime;
 
         if (sendNetworkBroadcast) {
             // Send a broadcast that telephony code used to send after setting the clock.
diff --git a/services/core/java/com/android/server/timedetector/TimeDetectorService.java b/services/core/java/com/android/server/timedetector/TimeDetectorService.java
index ee42279..34400ff 100644
--- a/services/core/java/com/android/server/timedetector/TimeDetectorService.java
+++ b/services/core/java/com/android/server/timedetector/TimeDetectorService.java
@@ -19,14 +19,14 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.app.timedetector.ITimeDetectorService;
+import android.app.timedetector.ManualTimeSuggestion;
 import android.app.timedetector.PhoneTimeSuggestion;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.database.ContentObserver;
-import android.os.Binder;
+import android.os.Handler;
 import android.provider.Settings;
 
-import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.DumpUtils;
 import com.android.server.FgThread;
@@ -38,7 +38,7 @@
 import java.util.Objects;
 
 public final class TimeDetectorService extends ITimeDetectorService.Stub {
-    private static final String TAG = "timedetector.TimeDetectorService";
+    private static final String TAG = "TimeDetectorService";
 
     public static class Lifecycle extends SystemService {
 
@@ -56,29 +56,25 @@
         }
     }
 
+    @NonNull private final Handler mHandler;
     @NonNull private final Context mContext;
     @NonNull private final Callback mCallback;
-
-    // The lock used when call the strategy to ensure thread safety.
-    @NonNull private final Object mStrategyLock = new Object();
-
-    @GuardedBy("mStrategyLock")
     @NonNull private final TimeDetectorStrategy mTimeDetectorStrategy;
 
     private static TimeDetectorService create(@NonNull Context context) {
-        final TimeDetectorStrategy timeDetector = new SimpleTimeDetectorStrategy();
-        final TimeDetectorStrategyCallbackImpl callback =
-                new TimeDetectorStrategyCallbackImpl(context);
+        TimeDetectorStrategy timeDetector = new SimpleTimeDetectorStrategy();
+        TimeDetectorStrategyCallbackImpl callback = new TimeDetectorStrategyCallbackImpl(context);
         timeDetector.initialize(callback);
 
+        Handler handler = FgThread.getHandler();
         TimeDetectorService timeDetectorService =
-                new TimeDetectorService(context, callback, timeDetector);
+                new TimeDetectorService(context, handler, callback, timeDetector);
 
         // Wire up event listening.
         ContentResolver contentResolver = context.getContentResolver();
         contentResolver.registerContentObserver(
                 Settings.Global.getUriFor(Settings.Global.AUTO_TIME), true,
-                new ContentObserver(FgThread.getHandler()) {
+                new ContentObserver(handler) {
                     public void onChange(boolean selfChange) {
                         timeDetectorService.handleAutoTimeDetectionToggle();
                     }
@@ -88,34 +84,33 @@
     }
 
     @VisibleForTesting
-    public TimeDetectorService(@NonNull Context context, @NonNull Callback callback,
-            @NonNull TimeDetectorStrategy timeDetectorStrategy) {
+    public TimeDetectorService(@NonNull Context context, @NonNull Handler handler,
+            @NonNull Callback callback, @NonNull TimeDetectorStrategy timeDetectorStrategy) {
         mContext = Objects.requireNonNull(context);
+        mHandler = Objects.requireNonNull(handler);
         mCallback = Objects.requireNonNull(callback);
         mTimeDetectorStrategy = Objects.requireNonNull(timeDetectorStrategy);
     }
 
     @Override
     public void suggestPhoneTime(@NonNull PhoneTimeSuggestion timeSignal) {
-        enforceSetTimePermission();
+        enforceSuggestPhoneTimePermission();
         Objects.requireNonNull(timeSignal);
 
-        long idToken = Binder.clearCallingIdentity();
-        try {
-            synchronized (mStrategyLock) {
-                mTimeDetectorStrategy.suggestPhoneTime(timeSignal);
-            }
-        } finally {
-            Binder.restoreCallingIdentity(idToken);
-        }
+        mHandler.post(() -> mTimeDetectorStrategy.suggestPhoneTime(timeSignal));
+    }
+
+    @Override
+    public void suggestManualTime(@NonNull ManualTimeSuggestion timeSignal) {
+        enforceSuggestManualTimePermission();
+        Objects.requireNonNull(timeSignal);
+
+        mHandler.post(() -> mTimeDetectorStrategy.suggestManualTime(timeSignal));
     }
 
     @VisibleForTesting
     public void handleAutoTimeDetectionToggle() {
-        synchronized (mStrategyLock) {
-            final boolean timeDetectionEnabled = mCallback.isTimeDetectionEnabled();
-            mTimeDetectorStrategy.handleAutoTimeDetectionToggle(timeDetectionEnabled);
-        }
+        mHandler.post(mTimeDetectorStrategy::handleAutoTimeDetectionChanged);
     }
 
     @Override
@@ -123,12 +118,14 @@
             @Nullable String[] args) {
         if (!DumpUtils.checkDumpPermission(mContext, TAG, pw)) return;
 
-        synchronized (mStrategyLock) {
-            mTimeDetectorStrategy.dump(pw, args);
-        }
+        mTimeDetectorStrategy.dump(pw, args);
     }
 
-    private void enforceSetTimePermission() {
+    private void enforceSuggestPhoneTimePermission() {
         mContext.enforceCallingPermission(android.Manifest.permission.SET_TIME, "set time");
     }
-}
\ No newline at end of file
+
+    private void enforceSuggestManualTimePermission() {
+        mContext.enforceCallingOrSelfPermission(android.Manifest.permission.SET_TIME, "set time");
+    }
+}
diff --git a/services/core/java/com/android/server/timedetector/TimeDetectorStrategy.java b/services/core/java/com/android/server/timedetector/TimeDetectorStrategy.java
index 7c2a945..32cee2d 100644
--- a/services/core/java/com/android/server/timedetector/TimeDetectorStrategy.java
+++ b/services/core/java/com/android/server/timedetector/TimeDetectorStrategy.java
@@ -18,6 +18,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.app.timedetector.ManualTimeSuggestion;
 import android.app.timedetector.PhoneTimeSuggestion;
 import android.content.Intent;
 import android.util.TimestampedValue;
@@ -26,12 +27,14 @@
 
 /**
  * The interface for classes that implement the time detection algorithm used by the
- * TimeDetectorService. The TimeDetectorService handles thread safety: all calls to implementations
- * of this interface can be assumed to be single threaded (though the thread used may vary).
+ * TimeDetectorService.
+ *
+ * <p>Most calls will be handled by a single thread but that is not true for all calls. For example
+ * {@link #dump(PrintWriter, String[])}) may be called on a different thread so implementations must
+ * handle thread safety.
  *
  * @hide
  */
-// @NotThreadSafe
 public interface TimeDetectorStrategy {
 
     /**
@@ -47,7 +50,7 @@
         int systemClockUpdateThresholdMillis();
 
         /** Returns true if automatic time detection is enabled. */
-        boolean isTimeDetectionEnabled();
+        boolean isAutoTimeDetectionEnabled();
 
         /** Acquire a suitable wake lock. Must be followed by {@link #releaseWakeLock()} */
         void acquireWakeLock();
@@ -71,11 +74,14 @@
     /** Initialize the strategy. */
     void initialize(@NonNull Callback callback);
 
-    /** Process the suggested time. */
+    /** Process the suggested time from telephony sources. */
     void suggestPhoneTime(@NonNull PhoneTimeSuggestion timeSuggestion);
 
+    /** Process the suggested manually entered time. */
+    void suggestManualTime(@NonNull ManualTimeSuggestion timeSuggestion);
+
     /** Handle the auto-time setting being toggled on or off. */
-    void handleAutoTimeDetectionToggle(boolean enabled);
+    void handleAutoTimeDetectionChanged();
 
     /** Dump debug information. */
     void dump(@NonNull PrintWriter pw, @Nullable String[] args);
diff --git a/services/core/java/com/android/server/timedetector/TimeDetectorStrategyCallbackImpl.java b/services/core/java/com/android/server/timedetector/TimeDetectorStrategyCallbackImpl.java
index 77b9e62..42d59d5 100644
--- a/services/core/java/com/android/server/timedetector/TimeDetectorStrategyCallbackImpl.java
+++ b/services/core/java/com/android/server/timedetector/TimeDetectorStrategyCallbackImpl.java
@@ -72,7 +72,7 @@
     }
 
     @Override
-    public boolean isTimeDetectionEnabled() {
+    public boolean isAutoTimeDetectionEnabled() {
         try {
             return Settings.Global.getInt(mContentResolver, Settings.Global.AUTO_TIME) != 0;
         } catch (Settings.SettingNotFoundException snfe) {
diff --git a/services/core/java/com/android/server/timezone/RulesManagerService.java b/services/core/java/com/android/server/timezone/RulesManagerService.java
index 28c171b..9347d21 100644
--- a/services/core/java/com/android/server/timezone/RulesManagerService.java
+++ b/services/core/java/com/android/server/timezone/RulesManagerService.java
@@ -32,6 +32,7 @@
 import android.app.timezone.RulesManager;
 import android.app.timezone.RulesState;
 import android.content.Context;
+import android.icu.util.TimeZone;
 import android.os.ParcelFileDescriptor;
 import android.os.RemoteException;
 import android.util.Slog;
@@ -45,7 +46,6 @@
 import com.android.timezone.distro.TimeZoneDistro;
 import com.android.timezone.distro.installer.TimeZoneDistroInstaller;
 
-import libcore.icu.ICU;
 import libcore.timezone.TimeZoneDataFiles;
 import libcore.timezone.TimeZoneFinder;
 import libcore.timezone.TzDataSetVersion;
@@ -519,7 +519,7 @@
                             // Report the active rules version (i.e. the rules in use by the current
                             // process).
                             pw.println("Active rules version (ICU, ZoneInfoDB, TimeZoneFinder): "
-                                    + ICU.getTZDataVersion() + ","
+                                    + TimeZone.getTZDataVersion() + ","
                                     + ZoneInfoDB.getInstance().getVersion() + ","
                                     + TimeZoneFinder.getInstance().getIanaVersion());
                             break;
@@ -535,7 +535,7 @@
 
         pw.println("RulesManagerService state: " + toString());
         pw.println("Active rules version (ICU, ZoneInfoDB, TimeZoneFinder): "
-                + ICU.getTZDataVersion() + ","
+                + TimeZone.getTZDataVersion() + ","
                 + ZoneInfoDB.getInstance().getVersion() + ","
                 + TimeZoneFinder.getInstance().getIanaVersion());
         pw.println("Distro state: " + rulesState.toString());
diff --git a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorCallbackImpl.java b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorCallbackImpl.java
new file mode 100644
index 0000000..23746ac
--- /dev/null
+++ b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorCallbackImpl.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright 2019 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.
+ */
+
+package com.android.server.timezonedetector;
+
+import android.annotation.Nullable;
+import android.app.AlarmManager;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.os.SystemProperties;
+import android.os.UserHandle;
+import android.provider.Settings;
+
+import com.android.internal.telephony.TelephonyIntents;
+
+/**
+ * The real implementation of {@link TimeZoneDetectorStrategy.Callback}.
+ */
+public final class TimeZoneDetectorCallbackImpl implements TimeZoneDetectorStrategy.Callback {
+
+    private static final String TIMEZONE_PROPERTY = "persist.sys.timezone";
+
+    private final Context mContext;
+    private final ContentResolver mCr;
+
+    TimeZoneDetectorCallbackImpl(Context context) {
+        mContext = context;
+        mCr = context.getContentResolver();
+    }
+
+    @Override
+    public boolean isTimeZoneDetectionEnabled() {
+        return Settings.Global.getInt(mCr, Settings.Global.AUTO_TIME_ZONE, 1 /* default */) > 0;
+    }
+
+    @Override
+    public boolean isDeviceTimeZoneInitialized() {
+        // timezone.equals("GMT") will be true and only true if the time zone was
+        // set to a default value by the system server (when starting, system server
+        // sets the persist.sys.timezone to "GMT" if it's not set). "GMT" is not used by
+        // any code that sets it explicitly (in case where something sets GMT explicitly,
+        // "Etc/GMT" Olson ID would be used).
+
+        String timeZoneId = getDeviceTimeZone();
+        return timeZoneId != null && timeZoneId.length() > 0 && !timeZoneId.equals("GMT");
+    }
+
+    @Override
+    @Nullable
+    public String getDeviceTimeZone() {
+        return SystemProperties.get(TIMEZONE_PROPERTY);
+    }
+
+    @Override
+    public void setDeviceTimeZone(String zoneId) {
+        AlarmManager alarmManager = mContext.getSystemService(AlarmManager.class);
+        alarmManager.setTimeZone(zoneId);
+
+        // TODO Nothing in the platform appears to listen for this. Remove it.
+        Intent intent = new Intent(TelephonyIntents.ACTION_NETWORK_SET_TIMEZONE);
+        intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
+        intent.putExtra("time-zone", zoneId);
+        mContext.sendStickyBroadcastAsUser(intent, UserHandle.ALL);
+    }
+}
diff --git a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorService.java b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorService.java
new file mode 100644
index 0000000..558aa9e
--- /dev/null
+++ b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorService.java
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package com.android.server.timezonedetector;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.app.timezonedetector.ITimeZoneDetectorService;
+import android.app.timezonedetector.PhoneTimeZoneSuggestion;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.database.ContentObserver;
+import android.os.Handler;
+import android.provider.Settings;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.DumpUtils;
+import com.android.internal.util.IndentingPrintWriter;
+import com.android.server.FgThread;
+import com.android.server.SystemService;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.util.Objects;
+
+/**
+ * The implementation of ITimeZoneDetectorService.aidl.
+ */
+public final class TimeZoneDetectorService extends ITimeZoneDetectorService.Stub {
+    private static final String TAG = "TimeZoneDetectorService";
+
+    /**
+     * Handles the lifecycle for {@link TimeZoneDetectorService}.
+     */
+    public static class Lifecycle extends SystemService {
+
+        public Lifecycle(@NonNull Context context) {
+            super(context);
+        }
+
+        @Override
+        public void onStart() {
+            TimeZoneDetectorService service = TimeZoneDetectorService.create(getContext());
+
+            // Publish the binder service so it can be accessed from other (appropriately
+            // permissioned) processes.
+            publishBinderService(Context.TIME_ZONE_DETECTOR_SERVICE, service);
+        }
+    }
+
+    @NonNull private final Context mContext;
+    @NonNull private final Handler mHandler;
+    @NonNull private final TimeZoneDetectorStrategy mTimeZoneDetectorStrategy;
+
+    private static TimeZoneDetectorService create(@NonNull Context context) {
+        final TimeZoneDetectorStrategy timeZoneDetectorStrategy =
+                TimeZoneDetectorStrategy.create(context);
+
+        Handler handler = FgThread.getHandler();
+        ContentResolver contentResolver = context.getContentResolver();
+        contentResolver.registerContentObserver(
+                Settings.Global.getUriFor(Settings.Global.AUTO_TIME_ZONE), true,
+                new ContentObserver(handler) {
+                    public void onChange(boolean selfChange) {
+                        timeZoneDetectorStrategy.handleTimeZoneDetectionChange();
+                    }
+                });
+
+        return new TimeZoneDetectorService(context, handler, timeZoneDetectorStrategy);
+    }
+
+    @VisibleForTesting
+    public TimeZoneDetectorService(@NonNull Context context, @NonNull Handler handler,
+            @NonNull TimeZoneDetectorStrategy timeZoneDetectorStrategy) {
+        mContext = Objects.requireNonNull(context);
+        mHandler = Objects.requireNonNull(handler);
+        mTimeZoneDetectorStrategy = Objects.requireNonNull(timeZoneDetectorStrategy);
+    }
+
+    @Override
+    public void suggestPhoneTimeZone(@NonNull PhoneTimeZoneSuggestion timeZoneSuggestion) {
+        enforceSetTimeZonePermission();
+        Objects.requireNonNull(timeZoneSuggestion);
+
+        mHandler.post(() -> mTimeZoneDetectorStrategy.suggestPhoneTimeZone(timeZoneSuggestion));
+    }
+
+    @Override
+    protected void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter pw,
+            @Nullable String[] args) {
+        if (!DumpUtils.checkDumpPermission(mContext, TAG, pw)) return;
+
+        mTimeZoneDetectorStrategy.dumpState(pw);
+        mTimeZoneDetectorStrategy.dumpLogs(new IndentingPrintWriter(pw, " "));
+    }
+
+    private void enforceSetTimeZonePermission() {
+        mContext.enforceCallingPermission(
+                android.Manifest.permission.SET_TIME_ZONE, "set time zone");
+    }
+}
+
diff --git a/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorStrategy.java b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorStrategy.java
new file mode 100644
index 0000000..e24c089
--- /dev/null
+++ b/services/core/java/com/android/server/timezonedetector/TimeZoneDetectorStrategy.java
@@ -0,0 +1,507 @@
+/*
+ * Copyright 2019 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.
+ */
+package com.android.server.timezonedetector;
+
+import static android.app.timezonedetector.PhoneTimeZoneSuggestion.MATCH_TYPE_EMULATOR_ZONE_ID;
+import static android.app.timezonedetector.PhoneTimeZoneSuggestion.MATCH_TYPE_TEST_NETWORK_OFFSET_ONLY;
+import static android.app.timezonedetector.PhoneTimeZoneSuggestion.QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS;
+import static android.app.timezonedetector.PhoneTimeZoneSuggestion.QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET;
+import static android.app.timezonedetector.PhoneTimeZoneSuggestion.QUALITY_SINGLE_ZONE;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.app.timezonedetector.PhoneTimeZoneSuggestion;
+import android.content.Context;
+import android.util.ArrayMap;
+import android.util.LocalLog;
+import android.util.Slog;
+
+import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.IndentingPrintWriter;
+
+import java.io.PrintWriter;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * A singleton, stateful time zone detection strategy that is aware of multiple phone devices. It
+ * keeps track of the most recent suggestion from each phone and it uses the best based on a scoring
+ * algorithm. If several phones provide the same score then the phone with the lowest numeric ID
+ * "wins". If the situation changes and it is no longer possible to be confident about the time
+ * zone, phones must submit an empty suggestion in order to "withdraw" their previous suggestion.
+ */
+public class TimeZoneDetectorStrategy {
+
+    /**
+     * Used by {@link TimeZoneDetectorStrategy} to interact with the surrounding service. It can be
+     * faked for tests.
+     */
+    @VisibleForTesting
+    public interface Callback {
+
+        /**
+         * Returns true if automatic time zone detection is enabled in settings.
+         */
+        boolean isTimeZoneDetectionEnabled();
+
+        /**
+         * Returns true if the device has had an explicit time zone set.
+         */
+        boolean isDeviceTimeZoneInitialized();
+
+        /**
+         * Returns the device's currently configured time zone.
+         */
+        String getDeviceTimeZone();
+
+        /**
+         * Sets the device's time zone.
+         */
+        void setDeviceTimeZone(@NonNull String zoneId);
+    }
+
+    static final String LOG_TAG = "TimeZoneDetectorStrategy";
+    static final boolean DBG = false;
+
+    /**
+     * The abstract score for an empty or invalid suggestion.
+     *
+     * Used to score suggestions where there is no zone.
+     */
+    @VisibleForTesting
+    public static final int SCORE_NONE = 0;
+
+    /**
+     * The abstract score for a low quality suggestion.
+     *
+     * Used to score suggestions where:
+     * The suggested zone ID is one of several possibilities, and the possibilities have different
+     * offsets.
+     *
+     * You would have to be quite desperate to want to use this choice.
+     */
+    @VisibleForTesting
+    public static final int SCORE_LOW = 1;
+
+    /**
+     * The abstract score for a medium quality suggestion.
+     *
+     * Used for:
+     * The suggested zone ID is one of several possibilities but at least the possibilities have the
+     * same offset. Users would get the correct time but for the wrong reason. i.e. their device may
+     * switch to DST at the wrong time and (for example) their calendar events.
+     */
+    @VisibleForTesting
+    public static final int SCORE_MEDIUM = 2;
+
+    /**
+     * The abstract score for a high quality suggestion.
+     *
+     * Used for:
+     * The suggestion was for one zone ID and the answer was unambiguous and likely correct given
+     * the info available.
+     */
+    @VisibleForTesting
+    public static final int SCORE_HIGH = 3;
+
+    /**
+     * The abstract score for a highest quality suggestion.
+     *
+     * Used for:
+     * Suggestions that must "win" because they constitute test or emulator zone ID.
+     */
+    @VisibleForTesting
+    public static final int SCORE_HIGHEST = 4;
+
+    /** The threshold at which suggestions are good enough to use to set the device's time zone. */
+    @VisibleForTesting
+    public static final int SCORE_USAGE_THRESHOLD = SCORE_MEDIUM;
+
+    /** The number of previous phone suggestions to keep for each ID (for use during debugging). */
+    private static final int KEEP_SUGGESTION_HISTORY_SIZE = 30;
+
+    @NonNull
+    private final Callback mCallback;
+
+    /**
+     * A log that records the decisions / decision metadata that affected the device's time zone
+     * (for use during debugging).
+     */
+    @NonNull
+    private final LocalLog mTimeZoneChangesLog = new LocalLog(30);
+
+    /**
+     * A mapping from phoneId to a linked list of time zone suggestions (the head being the latest).
+     * We typically expect one or two entries in this Map: devices will have a small number
+     * of telephony devices and phoneIds are assumed to be stable. The LinkedList associated with
+     * the ID will not exceed {@link #KEEP_SUGGESTION_HISTORY_SIZE} in size.
+     */
+    @GuardedBy("this")
+    private ArrayMap<Integer, LinkedList<QualifiedPhoneTimeZoneSuggestion>> mSuggestionByPhoneId =
+            new ArrayMap<>();
+
+    /**
+     * The most recent best guess of time zone from all phones. Can be {@code null} to indicate
+     * there would be no current suggestion.
+     */
+    @GuardedBy("this")
+    @Nullable
+    private QualifiedPhoneTimeZoneSuggestion mCurrentSuggestion;
+
+    /**
+     * Creates a new instance of {@link TimeZoneDetectorStrategy}.
+     */
+    public static TimeZoneDetectorStrategy create(Context context) {
+        Callback timeZoneDetectionServiceHelper = new TimeZoneDetectorCallbackImpl(context);
+        return new TimeZoneDetectorStrategy(timeZoneDetectionServiceHelper);
+    }
+
+    @VisibleForTesting
+    public TimeZoneDetectorStrategy(Callback callback) {
+        mCallback = Objects.requireNonNull(callback);
+    }
+
+    /**
+     * Suggests a time zone for the device, or withdraws a previous suggestion if
+     * {@link PhoneTimeZoneSuggestion#getZoneId()} is {@code null}. The suggestion is scoped to a
+     * specific {@link PhoneTimeZoneSuggestion#getPhoneId() phone}.
+     * See {@link PhoneTimeZoneSuggestion} for an explanation of the metadata associated with a
+     * suggestion. The service uses suggestions to decide whether to modify the device's time zone
+     * setting and what to set it to.
+     */
+    public synchronized void suggestPhoneTimeZone(@NonNull PhoneTimeZoneSuggestion newSuggestion) {
+        if (DBG) {
+            Slog.d(LOG_TAG, "suggestPhoneTimeZone: newSuggestion=" + newSuggestion);
+        }
+        Objects.requireNonNull(newSuggestion);
+
+        int score = scoreSuggestion(newSuggestion);
+        QualifiedPhoneTimeZoneSuggestion scoredSuggestion =
+                new QualifiedPhoneTimeZoneSuggestion(newSuggestion, score);
+
+        // Record the suggestion against the correct phoneId.
+        LinkedList<QualifiedPhoneTimeZoneSuggestion> suggestions =
+                mSuggestionByPhoneId.get(newSuggestion.getPhoneId());
+        if (suggestions == null) {
+            suggestions = new LinkedList<>();
+            mSuggestionByPhoneId.put(newSuggestion.getPhoneId(), suggestions);
+        }
+        suggestions.addFirst(scoredSuggestion);
+        if (suggestions.size() > KEEP_SUGGESTION_HISTORY_SIZE) {
+            suggestions.removeLast();
+        }
+
+        // Now run the competition between the phones' suggestions.
+        doTimeZoneDetection();
+    }
+
+    private static int scoreSuggestion(@NonNull PhoneTimeZoneSuggestion suggestion) {
+        int score;
+        if (suggestion.getZoneId() == null) {
+            score = SCORE_NONE;
+        } else if (suggestion.getMatchType() == MATCH_TYPE_TEST_NETWORK_OFFSET_ONLY
+                || suggestion.getMatchType() == MATCH_TYPE_EMULATOR_ZONE_ID) {
+            // Handle emulator / test cases : These suggestions should always just be used.
+            score = SCORE_HIGHEST;
+        } else if (suggestion.getQuality() == QUALITY_SINGLE_ZONE) {
+            score = SCORE_HIGH;
+        } else if (suggestion.getQuality() == QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET) {
+            // The suggestion may be wrong, but at least the offset should be correct.
+            score = SCORE_MEDIUM;
+        } else if (suggestion.getQuality() == QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS) {
+            // The suggestion has a good chance of being wrong.
+            score = SCORE_LOW;
+        } else {
+            throw new AssertionError();
+        }
+        return score;
+    }
+
+    /**
+     * Finds the best available time zone suggestion from all phones. If it is high-enough quality
+     * and automatic time zone detection is enabled then it will be set on the device. The outcome
+     * can be that this service becomes / remains un-opinionated and nothing is set.
+     */
+    @GuardedBy("this")
+    private void doTimeZoneDetection() {
+        QualifiedPhoneTimeZoneSuggestion bestSuggestion = findBestSuggestion();
+        boolean timeZoneDetectionEnabled = mCallback.isTimeZoneDetectionEnabled();
+
+        // Work out what to do with the best suggestion.
+        if (bestSuggestion == null) {
+            // There is no suggestion. Become un-opinionated.
+            if (DBG) {
+                Slog.d(LOG_TAG, "doTimeZoneDetection: No good suggestion."
+                        + " bestSuggestion=null"
+                        + ", timeZoneDetectionEnabled=" + timeZoneDetectionEnabled);
+            }
+            mCurrentSuggestion = null;
+            return;
+        }
+
+        // Special case handling for uninitialized devices. This should only happen once.
+        String newZoneId = bestSuggestion.suggestion.getZoneId();
+        if (newZoneId != null && !mCallback.isDeviceTimeZoneInitialized()) {
+            Slog.i(LOG_TAG, "doTimeZoneDetection: Device has no time zone set so might set the"
+                    + " device to the best available suggestion."
+                    + " bestSuggestion=" + bestSuggestion
+                    + ", timeZoneDetectionEnabled=" + timeZoneDetectionEnabled);
+
+            mCurrentSuggestion = bestSuggestion;
+            if (timeZoneDetectionEnabled) {
+                setDeviceTimeZone(bestSuggestion.suggestion);
+            }
+            return;
+        }
+
+        boolean suggestionGoodEnough = bestSuggestion.score >= SCORE_USAGE_THRESHOLD;
+        if (!suggestionGoodEnough) {
+            if (DBG) {
+                Slog.d(LOG_TAG, "doTimeZoneDetection: Suggestion not good enough."
+                        + " bestSuggestion=" + bestSuggestion);
+            }
+            mCurrentSuggestion = null;
+            return;
+        }
+
+        // Paranoia: Every suggestion above the SCORE_USAGE_THRESHOLD should have a non-null time
+        // zone ID.
+        if (newZoneId == null) {
+            Slog.w(LOG_TAG, "Empty zone suggestion scored higher than expected. This is an error:"
+                    + " bestSuggestion=" + bestSuggestion);
+            mCurrentSuggestion = null;
+            return;
+        }
+
+        // There is a good suggestion. Store the suggestion and set the device time zone if
+        // settings allow.
+        mCurrentSuggestion = bestSuggestion;
+
+        // Only set the device time zone if time zone detection is enabled.
+        if (!timeZoneDetectionEnabled) {
+            if (DBG) {
+                Slog.d(LOG_TAG, "doTimeZoneDetection: Not setting the time zone because time zone"
+                        + " detection is disabled."
+                        + " bestSuggestion=" + bestSuggestion);
+            }
+            return;
+        }
+        PhoneTimeZoneSuggestion suggestion = bestSuggestion.suggestion;
+        setDeviceTimeZone(suggestion);
+    }
+
+    private void setDeviceTimeZone(@NonNull PhoneTimeZoneSuggestion suggestion) {
+        String currentZoneId = mCallback.getDeviceTimeZone();
+        String newZoneId = suggestion.getZoneId();
+
+        // Paranoia: This should never happen.
+        if (newZoneId == null) {
+            Slog.w(LOG_TAG, "setDeviceTimeZone: Suggested zone is null."
+                    + " timeZoneSuggestion=" + suggestion);
+            return;
+        }
+
+        // Avoid unnecessary changes / intents.
+        if (newZoneId.equals(currentZoneId)) {
+            // No need to set the device time zone - the setting is already what we would be
+            // suggesting.
+            if (DBG) {
+                Slog.d(LOG_TAG, "setDeviceTimeZone: No need to change the time zone;"
+                        + " device is already set to the suggested zone."
+                        + " timeZoneSuggestion=" + suggestion);
+            }
+            return;
+        }
+
+        String msg = "Changing device time zone. currentZoneId=" + currentZoneId
+                + ", timeZoneSuggestion=" + suggestion;
+        if (DBG) {
+            Slog.d(LOG_TAG, msg);
+        }
+        mTimeZoneChangesLog.log(msg);
+        mCallback.setDeviceTimeZone(newZoneId);
+    }
+
+    @GuardedBy("this")
+    @Nullable
+    private QualifiedPhoneTimeZoneSuggestion findBestSuggestion() {
+        QualifiedPhoneTimeZoneSuggestion bestSuggestion = null;
+
+        // Iterate over the latest QualifiedPhoneTimeZoneSuggestion objects received for each phone
+        // and find the best. Note that we deliberately do not look at age: the caller can
+        // rate-limit so age is not a strong indicator of confidence. Instead, the callers are
+        // expected to withdraw suggestions they no longer have confidence in.
+        for (int i = 0; i < mSuggestionByPhoneId.size(); i++) {
+            LinkedList<QualifiedPhoneTimeZoneSuggestion> phoneSuggestions =
+                    mSuggestionByPhoneId.valueAt(i);
+            if (phoneSuggestions == null) {
+                // Unexpected
+                continue;
+            }
+            QualifiedPhoneTimeZoneSuggestion candidateSuggestion = phoneSuggestions.getFirst();
+            if (candidateSuggestion == null) {
+                // Unexpected
+                continue;
+            }
+
+            if (bestSuggestion == null) {
+                bestSuggestion = candidateSuggestion;
+            } else if (candidateSuggestion.score > bestSuggestion.score) {
+                bestSuggestion = candidateSuggestion;
+            } else if (candidateSuggestion.score == bestSuggestion.score) {
+                // Tie! Use the suggestion with the lowest phoneId.
+                int candidatePhoneId = candidateSuggestion.suggestion.getPhoneId();
+                int bestPhoneId = bestSuggestion.suggestion.getPhoneId();
+                if (candidatePhoneId < bestPhoneId) {
+                    bestSuggestion = candidateSuggestion;
+                }
+            }
+        }
+        return bestSuggestion;
+    }
+
+    /**
+     * Returns the current best suggestion. Not intended for general use: it is used during tests
+     * to check service behavior.
+     */
+    @VisibleForTesting
+    @Nullable
+    public synchronized QualifiedPhoneTimeZoneSuggestion findBestSuggestionForTests() {
+        return findBestSuggestion();
+    }
+
+    /**
+     * Called when the has been a change to the automatic time zone detection setting.
+     */
+    @VisibleForTesting
+    public synchronized void handleTimeZoneDetectionChange() {
+        if (DBG) {
+            Slog.d(LOG_TAG, "handleTimeZoneDetectionChange() called");
+        }
+        if (mCallback.isTimeZoneDetectionEnabled()) {
+            // When the user enabled time zone detection, run the time zone detection and change the
+            // device time zone if possible.
+            doTimeZoneDetection();
+        }
+    }
+
+    /**
+     * Dumps any logs held to the supplied writer.
+     */
+    public synchronized void dumpLogs(IndentingPrintWriter ipw) {
+        ipw.println("TimeZoneDetectorStrategy:");
+
+        ipw.increaseIndent(); // level 1
+
+        ipw.println("Time zone change log:");
+        ipw.increaseIndent(); // level 2
+        mTimeZoneChangesLog.dump(ipw);
+        ipw.decreaseIndent(); // level 2
+
+        ipw.println("Phone suggestion history:");
+        ipw.increaseIndent(); // level 2
+        for (Map.Entry<Integer, LinkedList<QualifiedPhoneTimeZoneSuggestion>> entry
+                : mSuggestionByPhoneId.entrySet()) {
+            ipw.println("Phone " + entry.getKey());
+
+            ipw.increaseIndent(); // level 3
+            for (QualifiedPhoneTimeZoneSuggestion suggestion : entry.getValue()) {
+                ipw.println(suggestion);
+            }
+            ipw.decreaseIndent(); // level 3
+        }
+        ipw.decreaseIndent(); // level 2
+        ipw.decreaseIndent(); // level 1
+    }
+
+    /**
+     * Dumps internal state such as field values.
+     */
+    public synchronized void dumpState(PrintWriter pw) {
+        pw.println("mCurrentSuggestion=" + mCurrentSuggestion);
+        pw.println("mCallback.isTimeZoneDetectionEnabled()="
+                + mCallback.isTimeZoneDetectionEnabled());
+        pw.println("mCallback.isDeviceTimeZoneInitialized()="
+                + mCallback.isDeviceTimeZoneInitialized());
+        pw.println("mCallback.getDeviceTimeZone()="
+                + mCallback.getDeviceTimeZone());
+        pw.flush();
+    }
+
+    /**
+     * A method used to inspect service state during tests. Not intended for general use.
+     */
+    @VisibleForTesting
+    public synchronized QualifiedPhoneTimeZoneSuggestion getLatestPhoneSuggestion(int phoneId) {
+        LinkedList<QualifiedPhoneTimeZoneSuggestion> suggestions =
+                mSuggestionByPhoneId.get(phoneId);
+        if (suggestions == null) {
+            return null;
+        }
+        return suggestions.getFirst();
+    }
+
+    /**
+     * A {@link PhoneTimeZoneSuggestion} with additional qualifying metadata.
+     */
+    @VisibleForTesting
+    public static class QualifiedPhoneTimeZoneSuggestion {
+
+        @VisibleForTesting
+        public final PhoneTimeZoneSuggestion suggestion;
+
+        /**
+         * The score the suggestion has been given. This can be used to rank against other
+         * suggestions of the same type.
+         */
+        @VisibleForTesting
+        public final int score;
+
+        @VisibleForTesting
+        public QualifiedPhoneTimeZoneSuggestion(PhoneTimeZoneSuggestion suggestion, int score) {
+            this.suggestion = suggestion;
+            this.score = score;
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            if (this == o) {
+                return true;
+            }
+            if (o == null || getClass() != o.getClass()) {
+                return false;
+            }
+            QualifiedPhoneTimeZoneSuggestion that = (QualifiedPhoneTimeZoneSuggestion) o;
+            return score == that.score
+                    && suggestion.equals(that.suggestion);
+        }
+
+        @Override
+        public int hashCode() {
+            return Objects.hash(score, suggestion);
+        }
+
+        @Override
+        public String toString() {
+            return "QualifiedPhoneTimeZoneSuggestion{"
+                    + "suggestion=" + suggestion
+                    + ", score=" + score
+                    + '}';
+        }
+    }
+}
diff --git a/services/core/java/com/android/server/updates/EmergencyNumberDbInstallReceiver.java b/services/core/java/com/android/server/updates/EmergencyNumberDbInstallReceiver.java
index cb0b45c..c78a8e6 100644
--- a/services/core/java/com/android/server/updates/EmergencyNumberDbInstallReceiver.java
+++ b/services/core/java/com/android/server/updates/EmergencyNumberDbInstallReceiver.java
@@ -37,9 +37,8 @@
         Slog.i(TAG, "Emergency number database is updated in file partition");
 
         // Notify EmergencyNumberTracker for emergency number installation complete.
-        Intent notifyInstallComplete = new Intent(
-                TelephonyManager.ACTION_OTA_EMERGENCY_NUMBER_DB_INSTALLED);
-        context.sendBroadcast(
-                notifyInstallComplete, android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE);
+        TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(
+                Context.TELEPHONY_SERVICE);
+        telephonyManager.notifyOtaEmergencyNumberDbInstalled();
     }
 }
diff --git a/services/core/jni/Android.bp b/services/core/jni/Android.bp
index d6fbd35..2b1c07b 100644
--- a/services/core/jni/Android.bp
+++ b/services/core/jni/Android.bp
@@ -23,7 +23,6 @@
         "com_android_server_AlarmManagerService.cpp",
         "com_android_server_am_BatteryStatsService.cpp",
         "com_android_server_connectivity_Vpn.cpp",
-        "com_android_server_connectivity_tethering_OffloadHardwareInterface.cpp",
         "com_android_server_ConsumerIrService.cpp",
         "com_android_server_devicepolicy_CryptoTestHelper.cpp",
         "com_android_server_HardwarePropertiesManagerService.cpp",
@@ -122,7 +121,6 @@
         "android.hardware.power@1.0",
         "android.hardware.power@1.1",
         "android.hardware.power.stats@1.0",
-        "android.hardware.tetheroffload.config@1.0",
         "android.hardware.thermal@1.0",
         "android.hardware.tv.cec@1.0",
         "android.hardware.tv.input@1.0",
@@ -130,7 +128,6 @@
         "android.hardware.vibrator@1.1",
         "android.hardware.vibrator@1.2",
         "android.hardware.vibrator@1.3",
-        "android.hardware.vibrator@1.4",
         "android.hardware.vr@1.0",
         "android.frameworks.schedulerservice@1.0",
         "android.frameworks.sensorservice@1.0",
diff --git a/services/core/jni/com_android_server_VibratorService.cpp b/services/core/jni/com_android_server_VibratorService.cpp
index 8ddb86b..612a1e7 100644
--- a/services/core/jni/com_android_server_VibratorService.cpp
+++ b/services/core/jni/com_android_server_VibratorService.cpp
@@ -16,7 +16,7 @@
 
 #define LOG_TAG "VibratorService"
 
-#include <android/hardware/vibrator/1.4/IVibrator.h>
+#include <android/hardware/vibrator/1.3/IVibrator.h>
 #include <android/hardware/vibrator/BnVibratorCallback.h>
 #include <android/hardware/vibrator/IVibrator.h>
 #include <binder/IServiceManager.h>
@@ -43,149 +43,41 @@
 namespace V1_1 = android::hardware::vibrator::V1_1;
 namespace V1_2 = android::hardware::vibrator::V1_2;
 namespace V1_3 = android::hardware::vibrator::V1_3;
-namespace V1_4 = android::hardware::vibrator::V1_4;
 namespace aidl = android::hardware::vibrator;
 
 namespace android {
 
 static jmethodID sMethodIdOnComplete;
 
-// TODO(b/141828236): remove HIDL 1.4 and re-write all of this code to remove
-// shim
-class VibratorShim : public V1_4::IVibrator {
-  public:
-    VibratorShim(const sp<aidl::IVibrator>& vib) : mVib(vib) {}
+static_assert(static_cast<uint8_t>(V1_0::EffectStrength::LIGHT) ==
+                static_cast<uint8_t>(aidl::EffectStrength::LIGHT));
+static_assert(static_cast<uint8_t>(V1_0::EffectStrength::MEDIUM) ==
+                static_cast<uint8_t>(aidl::EffectStrength::MEDIUM));
+static_assert(static_cast<uint8_t>(V1_0::EffectStrength::STRONG) ==
+                static_cast<uint8_t>(aidl::EffectStrength::STRONG));
 
-    Return<V1_0::Status> on(uint32_t timeoutMs) override {
-        return on_1_4(timeoutMs, nullptr);
-    }
+static_assert(static_cast<uint8_t>(V1_3::Effect::CLICK) ==
+                static_cast<uint8_t>(aidl::Effect::CLICK));
+static_assert(static_cast<uint8_t>(V1_3::Effect::DOUBLE_CLICK) ==
+                static_cast<uint8_t>(aidl::Effect::DOUBLE_CLICK));
+static_assert(static_cast<uint8_t>(V1_3::Effect::TICK) ==
+                static_cast<uint8_t>(aidl::Effect::TICK));
+static_assert(static_cast<uint8_t>(V1_3::Effect::THUD) ==
+                static_cast<uint8_t>(aidl::Effect::THUD));
+static_assert(static_cast<uint8_t>(V1_3::Effect::POP) ==
+                static_cast<uint8_t>(aidl::Effect::POP));
+static_assert(static_cast<uint8_t>(V1_3::Effect::HEAVY_CLICK) ==
+                static_cast<uint8_t>(aidl::Effect::HEAVY_CLICK));
+static_assert(static_cast<uint8_t>(V1_3::Effect::RINGTONE_1) ==
+                static_cast<uint8_t>(aidl::Effect::RINGTONE_1));
+static_assert(static_cast<uint8_t>(V1_3::Effect::RINGTONE_2) ==
+                static_cast<uint8_t>(aidl::Effect::RINGTONE_2));
+static_assert(static_cast<uint8_t>(V1_3::Effect::RINGTONE_15) ==
+                static_cast<uint8_t>(aidl::Effect::RINGTONE_15));
+static_assert(static_cast<uint8_t>(V1_3::Effect::TEXTURE_TICK) ==
+                static_cast<uint8_t>(aidl::Effect::TEXTURE_TICK));
 
-    Return<V1_0::Status> off() override {
-        return toHidlStatus(mVib->off());
-    }
-
-    Return<bool> supportsAmplitudeControl() override {
-        int32_t cap = 0;
-        if (!mVib->getCapabilities(&cap).isOk()) return false;
-        return (cap & aidl::IVibrator::CAP_AMPLITUDE_CONTROL) > 0;
-    }
-
-    Return<V1_0::Status> setAmplitude(uint8_t amplitude) override {
-        return toHidlStatus(mVib->setAmplitude(amplitude));
-    }
-
-    Return<void> perform(V1_0::Effect effect, V1_0::EffectStrength strength,
-                         perform_cb _hidl_cb) override {
-        return perform_1_4(static_cast<V1_3::Effect>(effect), strength, nullptr, _hidl_cb);
-    }
-
-    Return<void> perform_1_1(V1_1::Effect_1_1 effect, V1_0::EffectStrength strength,
-                             perform_1_1_cb _hidl_cb) override {
-        return perform_1_4(static_cast<V1_3::Effect>(effect), strength, nullptr, _hidl_cb);
-    }
-
-    Return<void> perform_1_2(V1_2::Effect effect, V1_0::EffectStrength strength,
-                             perform_1_2_cb _hidl_cb) override {
-        return perform_1_4(static_cast<V1_3::Effect>(effect), strength, nullptr, _hidl_cb);
-    }
-
-    Return<bool> supportsExternalControl() override {
-        int32_t cap = 0;
-        if (!mVib->getCapabilities(&cap).isOk()) return false;
-        return (cap & aidl::IVibrator::CAP_EXTERNAL_CONTROL) > 0;
-    }
-
-    Return<V1_0::Status> setExternalControl(bool enabled) override {
-        return toHidlStatus(mVib->setExternalControl(enabled));
-    }
-
-    Return<void> perform_1_3(V1_3::Effect effect, V1_0::EffectStrength strength,
-                             perform_1_3_cb _hidl_cb) override {
-        return perform_1_4(static_cast<V1_3::Effect>(effect), strength, nullptr, _hidl_cb);
-    }
-
-    Return<uint32_t> getCapabilities() override {
-        static_assert(static_cast<int32_t>(V1_4::Capabilities::ON_COMPLETION_CALLBACK) ==
-                      static_cast<int32_t>(aidl::IVibrator::CAP_ON_CALLBACK));
-        static_assert(static_cast<int32_t>(V1_4::Capabilities::PERFORM_COMPLETION_CALLBACK) ==
-                      static_cast<int32_t>(aidl::IVibrator::CAP_PERFORM_CALLBACK));
-
-        int32_t cap;
-        if (!mVib->getCapabilities(&cap).isOk()) return 0;
-        return (cap & (aidl::IVibrator::CAP_ON_CALLBACK |
-                       aidl::IVibrator::CAP_PERFORM_CALLBACK)) > 0;
-    }
-
-    Return<V1_0::Status> on_1_4(uint32_t timeoutMs,
-                                const sp<V1_4::IVibratorCallback>& callback) override {
-        sp<aidl::IVibratorCallback> cb = callback ? new CallbackShim(callback) : nullptr;
-        return toHidlStatus(mVib->on(timeoutMs, cb));
-    }
-
-    Return<void> perform_1_4(V1_3::Effect effect, V1_0::EffectStrength strength,
-                             const sp<V1_4::IVibratorCallback>& callback,
-                             perform_1_4_cb _hidl_cb) override {
-        static_assert(static_cast<uint8_t>(V1_0::EffectStrength::LIGHT) ==
-                      static_cast<uint8_t>(aidl::EffectStrength::LIGHT));
-        static_assert(static_cast<uint8_t>(V1_0::EffectStrength::MEDIUM) ==
-                      static_cast<uint8_t>(aidl::EffectStrength::MEDIUM));
-        static_assert(static_cast<uint8_t>(V1_0::EffectStrength::STRONG) ==
-                      static_cast<uint8_t>(aidl::EffectStrength::STRONG));
-        static_assert(static_cast<uint8_t>(V1_3::Effect::CLICK) ==
-                      static_cast<uint8_t>(aidl::Effect::CLICK));
-        static_assert(static_cast<uint8_t>(V1_3::Effect::DOUBLE_CLICK) ==
-                      static_cast<uint8_t>(aidl::Effect::DOUBLE_CLICK));
-        static_assert(static_cast<uint8_t>(V1_3::Effect::TICK) ==
-                      static_cast<uint8_t>(aidl::Effect::TICK));
-        static_assert(static_cast<uint8_t>(V1_3::Effect::THUD) ==
-                      static_cast<uint8_t>(aidl::Effect::THUD));
-        static_assert(static_cast<uint8_t>(V1_3::Effect::POP) ==
-                      static_cast<uint8_t>(aidl::Effect::POP));
-        static_assert(static_cast<uint8_t>(V1_3::Effect::HEAVY_CLICK) ==
-                      static_cast<uint8_t>(aidl::Effect::HEAVY_CLICK));
-        static_assert(static_cast<uint8_t>(V1_3::Effect::RINGTONE_1) ==
-                      static_cast<uint8_t>(aidl::Effect::RINGTONE_1));
-        static_assert(static_cast<uint8_t>(V1_3::Effect::RINGTONE_2) ==
-                      static_cast<uint8_t>(aidl::Effect::RINGTONE_2));
-        static_assert(static_cast<uint8_t>(V1_3::Effect::RINGTONE_15) ==
-                      static_cast<uint8_t>(aidl::Effect::RINGTONE_15));
-        static_assert(static_cast<uint8_t>(V1_3::Effect::TEXTURE_TICK) ==
-                      static_cast<uint8_t>(aidl::Effect::TEXTURE_TICK));
-
-        sp<aidl::IVibratorCallback> cb = callback ? new CallbackShim(callback) : nullptr;
-        int timeoutMs = 0;
-        V1_0::Status status = toHidlStatus(
-            mVib->perform(static_cast<aidl::Effect>(effect),
-                          static_cast<aidl::EffectStrength>(strength), cb, &timeoutMs));
-        _hidl_cb(status, timeoutMs);
-        return android::hardware::Status::ok();
-    }
-  private:
-    sp<aidl::IVibrator> mVib;
-
-    V1_0::Status toHidlStatus(const android::binder::Status& status) {
-        switch(status.exceptionCode()) {
-            using android::hardware::Status;
-            case Status::EX_NONE: return V1_0::Status::OK;
-            case Status::EX_ILLEGAL_ARGUMENT: return V1_0::Status::BAD_VALUE;
-            case Status::EX_UNSUPPORTED_OPERATION: return V1_0::Status::UNSUPPORTED_OPERATION;
-        }
-        return V1_0::Status::UNKNOWN_ERROR;
-    }
-
-    class CallbackShim : public aidl::BnVibratorCallback {
-      public:
-        CallbackShim(const sp<V1_4::IVibratorCallback>& cb) : mCb(cb) {}
-        binder::Status onComplete() {
-            mCb->onComplete();
-            return binder::Status::ok(); // oneway, local call
-        }
-      private:
-        sp<V1_4::IVibratorCallback> mCb;
-    };
-};
-
-class VibratorCallback : public V1_4::IVibratorCallback {
+class VibratorCallback {
     public:
         VibratorCallback(JNIEnv *env, jobject vibration) :
         mVibration(MakeGlobalRefOrDie(env, vibration)) {}
@@ -195,47 +87,92 @@
             env->DeleteGlobalRef(mVibration);
         }
 
-        Return<void> onComplete() override {
+        void onComplete() {
             auto env = AndroidRuntime::getJNIEnv();
             env->CallVoidMethod(mVibration, sMethodIdOnComplete);
-            return Void();
         }
 
     private:
         jobject mVibration;
 };
 
+class AidlVibratorCallback : public aidl::BnVibratorCallback {
+  public:
+    AidlVibratorCallback(JNIEnv *env, jobject vibration) :
+    mCb(env, vibration) {}
+
+    binder::Status onComplete() override {
+        mCb.onComplete();
+        return binder::Status::ok(); // oneway, local call
+    }
+
+  private:
+    VibratorCallback mCb;
+};
+
 static constexpr int NUM_TRIES = 2;
 
+template<class R>
+inline R NoneStatus() {
+    using ::android::hardware::Status;
+    return Status::fromExceptionCode(Status::EX_NONE);
+}
+
+template<>
+inline binder::Status NoneStatus() {
+    using binder::Status;
+    return Status::fromExceptionCode(Status::EX_NONE);
+}
+
 // Creates a Return<R> with STATUS::EX_NULL_POINTER.
 template<class R>
-inline Return<R> NullptrStatus() {
+inline R NullptrStatus() {
     using ::android::hardware::Status;
-    return Return<R>{Status::fromExceptionCode(Status::EX_NULL_POINTER)};
+    return Status::fromExceptionCode(Status::EX_NULL_POINTER);
+}
+
+template<>
+inline binder::Status NullptrStatus() {
+    using binder::Status;
+    return Status::fromExceptionCode(Status::EX_NULL_POINTER);
+}
+
+template <typename I>
+sp<I> getService() {
+    return I::getService();
+}
+
+template <>
+sp<aidl::IVibrator> getService() {
+    return waitForVintfService<aidl::IVibrator>();
+}
+
+template <typename I>
+sp<I> tryGetService() {
+    return I::tryGetService();
+}
+
+template <>
+sp<aidl::IVibrator> tryGetService() {
+    return checkVintfService<aidl::IVibrator>();
 }
 
 template <typename I>
 class HalWrapper {
   public:
     static std::unique_ptr<HalWrapper> Create() {
-        sp<aidl::IVibrator> aidlVib = waitForVintfService<aidl::IVibrator>();
-        if (aidlVib) {
-            return std::unique_ptr<HalWrapper>(new HalWrapper(new VibratorShim(aidlVib)));
-        }
-
         // Assume that if getService returns a nullptr, HAL is not available on the
         // device.
-        auto hal = I::getService();
+        auto hal = getService<I>();
         return hal ? std::unique_ptr<HalWrapper>(new HalWrapper(std::move(hal))) : nullptr;
     }
 
     // Helper used to transparently deal with the vibrator HAL becoming unavailable.
     template<class R, class... Args0, class... Args1>
-    Return<R> call(Return<R> (I::* fn)(Args0...), Args1&&... args1) {
+    R call(R (I::* fn)(Args0...), Args1&&... args1) {
         // Return<R> doesn't have a default constructor, so make a Return<R> with
         // STATUS::EX_NONE.
-        using ::android::hardware::Status;
-        Return<R> ret{Status::fromExceptionCode(Status::EX_NONE)};
+        R ret{NoneStatus<R>()};
 
         // Note that ret is guaranteed to be changed after this loop.
         for (int i = 0; i < NUM_TRIES; ++i) {
@@ -247,8 +184,9 @@
             }
 
             ALOGE("Failed to issue command to vibrator HAL. Retrying.");
+
             // Restoring connection to the HAL.
-            mHal = I::tryGetService();
+            mHal = tryGetService<I>();
         }
         return ret;
     }
@@ -267,7 +205,7 @@
 }
 
 template<class R, class I, class... Args0, class... Args1>
-Return<R> halCall(Return<R> (I::* fn)(Args0...), Args1&&... args1) {
+R halCall(R (I::* fn)(Args0...), Args1&&... args1) {
     auto hal = getHal<I>();
     return hal ? hal->call(fn, std::forward<Args1>(args1)...) : NullptrStatus<R>();
 }
@@ -284,110 +222,192 @@
 
 static void vibratorInit(JNIEnv *env, jclass clazz)
 {
-    halCall(&V1_0::IVibrator::ping).isOk();
+    if (auto hal = getHal<aidl::IVibrator>()) {
+        // IBinder::pingBinder isn't accessible as a pointer function
+        // but getCapabilities can serve the same purpose
+        int32_t cap;
+        hal->call(&aidl::IVibrator::getCapabilities, &cap).isOk();
+    } else {
+        halCall(&V1_0::IVibrator::ping).isOk();
+    }
 }
 
 static jboolean vibratorExists(JNIEnv* /* env */, jclass /* clazz */)
 {
-    return halCall(&V1_0::IVibrator::ping).isOk() ? JNI_TRUE : JNI_FALSE;
+    bool ok;
+
+    if (auto hal = getHal<aidl::IVibrator>()) {
+        // IBinder::pingBinder isn't accessible as a pointer function
+        // but getCapabilities can serve the same purpose
+        int32_t cap;
+        ok = hal->call(&aidl::IVibrator::getCapabilities, &cap).isOk();
+    } else {
+        ok = halCall(&V1_0::IVibrator::ping).isOk();
+    }
+    return ok ? JNI_TRUE : JNI_FALSE;
 }
 
 static void vibratorOn(JNIEnv* /* env */, jclass /* clazz */, jlong timeout_ms)
 {
-    Status retStatus = halCall(&V1_0::IVibrator::on, timeout_ms).withDefault(Status::UNKNOWN_ERROR);
-    if (retStatus != Status::OK) {
-        ALOGE("vibratorOn command failed (%" PRIu32 ").", static_cast<uint32_t>(retStatus));
+    if (auto hal = getHal<aidl::IVibrator>()) {
+        auto status = hal->call(&aidl::IVibrator::on, timeout_ms, nullptr);
+        if (!status.isOk()) {
+            ALOGE("vibratorOn command failed: %s", status.toString8().string());
+        }
+    } else {
+        Status retStatus = halCall(&V1_0::IVibrator::on, timeout_ms).withDefault(Status::UNKNOWN_ERROR);
+        if (retStatus != Status::OK) {
+            ALOGE("vibratorOn command failed (%" PRIu32 ").", static_cast<uint32_t>(retStatus));
+        }
     }
 }
 
 static void vibratorOff(JNIEnv* /* env */, jclass /* clazz */)
 {
-    Status retStatus = halCall(&V1_0::IVibrator::off).withDefault(Status::UNKNOWN_ERROR);
-    if (retStatus != Status::OK) {
-        ALOGE("vibratorOff command failed (%" PRIu32 ").", static_cast<uint32_t>(retStatus));
+    if (auto hal = getHal<aidl::IVibrator>()) {
+        auto status = hal->call(&aidl::IVibrator::off);
+        if (!status.isOk()) {
+            ALOGE("vibratorOff command failed: %s", status.toString8().string());
+        }
+    } else {
+        Status retStatus = halCall(&V1_0::IVibrator::off).withDefault(Status::UNKNOWN_ERROR);
+        if (retStatus != Status::OK) {
+            ALOGE("vibratorOff command failed (%" PRIu32 ").", static_cast<uint32_t>(retStatus));
+        }
     }
 }
 
 static jlong vibratorSupportsAmplitudeControl(JNIEnv*, jclass) {
-    return halCall(&V1_0::IVibrator::supportsAmplitudeControl).withDefault(false);
+    if (auto hal = getHal<aidl::IVibrator>()) {
+        int32_t cap = 0;
+        if (!hal->call(&aidl::IVibrator::getCapabilities, &cap).isOk()) {
+            return false;
+        }
+        return (cap & aidl::IVibrator::CAP_AMPLITUDE_CONTROL) > 0;
+    } else {
+        return halCall(&V1_0::IVibrator::supportsAmplitudeControl).withDefault(false);
+    }
 }
 
 static void vibratorSetAmplitude(JNIEnv*, jclass, jint amplitude) {
-    Status status = halCall(&V1_0::IVibrator::setAmplitude, static_cast<uint32_t>(amplitude))
-        .withDefault(Status::UNKNOWN_ERROR);
-    if (status != Status::OK) {
-      ALOGE("Failed to set vibrator amplitude (%" PRIu32 ").",
-            static_cast<uint32_t>(status));
+    if (auto hal = getHal<aidl::IVibrator>()) {
+        auto status = hal->call(&aidl::IVibrator::IVibrator::setAmplitude, static_cast<float>(amplitude) / UINT8_MAX);
+        if (!status.isOk()) {
+            ALOGE("Failed to set vibrator amplitude: %s", status.toString8().string());
+        }
+    } else {
+        Status status = halCall(&V1_0::IVibrator::setAmplitude, static_cast<uint32_t>(amplitude))
+            .withDefault(Status::UNKNOWN_ERROR);
+        if (status != Status::OK) {
+            ALOGE("Failed to set vibrator amplitude (%" PRIu32 ").",
+                  static_cast<uint32_t>(status));
+        }
     }
 }
 
 static jboolean vibratorSupportsExternalControl(JNIEnv*, jclass) {
-    return halCall(&V1_3::IVibrator::supportsExternalControl).withDefault(false);
+    if (auto hal = getHal<aidl::IVibrator>()) {
+        int32_t cap = 0;
+        if (!hal->call(&aidl::IVibrator::getCapabilities, &cap).isOk()) {
+            return false;
+        }
+        return (cap & aidl::IVibrator::CAP_EXTERNAL_CONTROL) > 0;
+    } else {
+        return halCall(&V1_3::IVibrator::supportsExternalControl).withDefault(false);
+    }
 }
 
 static void vibratorSetExternalControl(JNIEnv*, jclass, jboolean enabled) {
-    Status status = halCall(&V1_3::IVibrator::setExternalControl, static_cast<uint32_t>(enabled))
-        .withDefault(Status::UNKNOWN_ERROR);
-    if (status != Status::OK) {
-      ALOGE("Failed to set vibrator external control (%" PRIu32 ").",
-            static_cast<uint32_t>(status));
+    if (auto hal = getHal<aidl::IVibrator>()) {
+        auto status = hal->call(&aidl::IVibrator::IVibrator::setExternalControl, enabled);
+        if (!status.isOk()) {
+            ALOGE("Failed to set vibrator external control: %s", status.toString8().string());
+        }
+    } else {
+        Status status = halCall(&V1_3::IVibrator::setExternalControl, static_cast<uint32_t>(enabled))
+            .withDefault(Status::UNKNOWN_ERROR);
+        if (status != Status::OK) {
+            ALOGE("Failed to set vibrator external control (%" PRIu32 ").",
+                static_cast<uint32_t>(status));
+        }
     }
 }
 
 static jlong vibratorPerformEffect(JNIEnv* env, jclass, jlong effect, jlong strength,
                                    jobject vibration) {
-    Status status;
-    uint32_t lengthMs;
-    auto callback = [&status, &lengthMs](Status retStatus, uint32_t retLengthMs) {
-        status = retStatus;
-        lengthMs = retLengthMs;
-    };
-    EffectStrength effectStrength(static_cast<EffectStrength>(strength));
+    if (auto hal = getHal<aidl::IVibrator>()) {
+        int32_t lengthMs;
+        sp<AidlVibratorCallback> effectCallback = new AidlVibratorCallback(env, vibration);
+        aidl::Effect effectType(static_cast<aidl::Effect>(strength));
+        aidl::EffectStrength effectStrength(static_cast<aidl::EffectStrength>(strength));
 
-    Return<void> ret;
-    if (auto hal = getHal<V1_4::IVibrator>(); hal && isValidEffect<V1_3::Effect>(effect)) {
-        sp<VibratorCallback> effectCallback = new VibratorCallback(env, vibration);
-        ret = hal->call(&V1_4::IVibrator::perform_1_4, static_cast<V1_3::Effect>(effect),
-                effectStrength, effectCallback, callback);
-    } else if (isValidEffect<V1_0::Effect>(effect)) {
-        ret = halCall(&V1_0::IVibrator::perform, static_cast<V1_0::Effect>(effect),
-                effectStrength, callback);
-    } else if (isValidEffect<Effect_1_1>(effect)) {
-        ret = halCall(&V1_1::IVibrator::perform_1_1, static_cast<Effect_1_1>(effect),
-                           effectStrength, callback);
-    } else if (isValidEffect<V1_2::Effect>(effect)) {
-        ret = halCall(&V1_2::IVibrator::perform_1_2, static_cast<V1_2::Effect>(effect),
-                           effectStrength, callback);
-    } else if (isValidEffect<V1_3::Effect>(effect)) {
-        ret = halCall(&V1_3::IVibrator::perform_1_3, static_cast<V1_3::Effect>(effect),
-                           effectStrength, callback);
-    } else {
-        ALOGW("Unable to perform haptic effect, invalid effect ID (%" PRId32 ")",
-                static_cast<int32_t>(effect));
-        return -1;
-    }
-
-    if (!ret.isOk()) {
-        ALOGW("Failed to perform effect (%" PRId32 ")", static_cast<int32_t>(effect));
-        return -1;
-    }
-
-    if (status == Status::OK) {
+        auto status = hal->call(&aidl::IVibrator::perform, effectType, effectStrength, effectCallback, &lengthMs);
+        if (!status.isOk()) {
+            if (status.exceptionCode() != binder::Status::EX_UNSUPPORTED_OPERATION) {
+                ALOGE("Failed to perform haptic effect: effect=%" PRId64 ", strength=%" PRId32
+                        ": %s", static_cast<int64_t>(effect), static_cast<int32_t>(strength), status.toString8().string());
+            }
+            return -1;
+        }
         return lengthMs;
-    } else if (status != Status::UNSUPPORTED_OPERATION) {
-        // Don't warn on UNSUPPORTED_OPERATION, that's a normal event and just means the motor
-        // doesn't have a pre-defined waveform to perform for it, so we should just give the
-        // opportunity to fall back to the framework waveforms.
-        ALOGE("Failed to perform haptic effect: effect=%" PRId64 ", strength=%" PRId32
-                ", error=%" PRIu32 ").", static_cast<int64_t>(effect),
-                static_cast<int32_t>(strength), static_cast<uint32_t>(status));
+    } else {
+        Status status;
+        uint32_t lengthMs;
+        auto callback = [&status, &lengthMs](Status retStatus, uint32_t retLengthMs) {
+            status = retStatus;
+            lengthMs = retLengthMs;
+        };
+        EffectStrength effectStrength(static_cast<EffectStrength>(strength));
+
+        Return<void> ret;
+        if (isValidEffect<V1_0::Effect>(effect)) {
+            ret = halCall(&V1_0::IVibrator::perform, static_cast<V1_0::Effect>(effect),
+                    effectStrength, callback);
+        } else if (isValidEffect<Effect_1_1>(effect)) {
+            ret = halCall(&V1_1::IVibrator::perform_1_1, static_cast<Effect_1_1>(effect),
+                            effectStrength, callback);
+        } else if (isValidEffect<V1_2::Effect>(effect)) {
+            ret = halCall(&V1_2::IVibrator::perform_1_2, static_cast<V1_2::Effect>(effect),
+                            effectStrength, callback);
+        } else if (isValidEffect<V1_3::Effect>(effect)) {
+            ret = halCall(&V1_3::IVibrator::perform_1_3, static_cast<V1_3::Effect>(effect),
+                            effectStrength, callback);
+        } else {
+            ALOGW("Unable to perform haptic effect, invalid effect ID (%" PRId32 ")",
+                    static_cast<int32_t>(effect));
+            return -1;
+        }
+
+        if (!ret.isOk()) {
+            ALOGW("Failed to perform effect (%" PRId32 ")", static_cast<int32_t>(effect));
+            return -1;
+        }
+
+        if (status == Status::OK) {
+            return lengthMs;
+        } else if (status != Status::UNSUPPORTED_OPERATION) {
+            // Don't warn on UNSUPPORTED_OPERATION, that's a normal event and just means the motor
+            // doesn't have a pre-defined waveform to perform for it, so we should just give the
+            // opportunity to fall back to the framework waveforms.
+            ALOGE("Failed to perform haptic effect: effect=%" PRId64 ", strength=%" PRId32
+                    ", error=%" PRIu32 ").", static_cast<int64_t>(effect),
+                    static_cast<int32_t>(strength), static_cast<uint32_t>(status));
+        }
     }
 
     return -1;
 }
 
 static jlong vibratorGetCapabilities(JNIEnv*, jclass) {
-    return halCall(&V1_4::IVibrator::getCapabilities).withDefault(0);
+    if (auto hal = getHal<aidl::IVibrator>()) {
+        int32_t cap = 0;
+        if (!hal->call(&aidl::IVibrator::getCapabilities, &cap).isOk()) {
+            return 0;
+        }
+        return cap;
+    }
+
+    return 0;
 }
 
 static const JNINativeMethod method_table[] = {
diff --git a/services/core/jni/onload.cpp b/services/core/jni/onload.cpp
index efffa6c..692c9d2 100644
--- a/services/core/jni/onload.cpp
+++ b/services/core/jni/onload.cpp
@@ -40,7 +40,6 @@
 int register_android_server_VibratorService(JNIEnv* env);
 int register_android_server_location_GnssLocationProvider(JNIEnv* env);
 int register_android_server_connectivity_Vpn(JNIEnv* env);
-int register_android_server_connectivity_tethering_OffloadHardwareInterface(JNIEnv*);
 int register_android_server_TestNetworkService(JNIEnv* env);
 int register_android_server_devicepolicy_CryptoTestHelper(JNIEnv*);
 int register_android_server_hdmi_HdmiCecController(JNIEnv* env);
@@ -88,7 +87,6 @@
     register_android_server_SystemServer(env);
     register_android_server_location_GnssLocationProvider(env);
     register_android_server_connectivity_Vpn(env);
-    register_android_server_connectivity_tethering_OffloadHardwareInterface(env);
     register_android_server_TestNetworkService(env);
     register_android_server_devicepolicy_CryptoTestHelper(env);
     register_android_server_ConsumerIrService(env);
diff --git a/services/devicepolicy/Android.bp b/services/devicepolicy/Android.bp
index 47790ce..dbe0d81 100644
--- a/services/devicepolicy/Android.bp
+++ b/services/devicepolicy/Android.bp
@@ -4,5 +4,6 @@
 
     libs: [
         "services.core",
+        "app-compat-annotations",
     ],
 }
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index 37931be..e8617bc 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -133,6 +133,8 @@
 import android.app.admin.SystemUpdateInfo;
 import android.app.admin.SystemUpdatePolicy;
 import android.app.backup.IBackupManager;
+import android.app.timedetector.ManualTimeSuggestion;
+import android.app.timedetector.TimeDetector;
 import android.app.trust.TrustManager;
 import android.app.usage.UsageStatsManagerInternal;
 import android.content.ActivityNotFoundException;
@@ -1939,7 +1941,7 @@
         }
 
         TelephonyManager getTelephonyManager() {
-            return TelephonyManager.from(mContext);
+            return mContext.getSystemService(TelephonyManager.class);
         }
 
         TrustManager getTrustManager() {
@@ -1950,6 +1952,10 @@
             return mContext.getSystemService(AlarmManager.class);
         }
 
+        TimeDetector getTimeDetector() {
+            return mContext.getSystemService(TimeDetector.class);
+        }
+
         ConnectivityManager getConnectivityManager() {
             return mContext.getSystemService(ConnectivityManager.class);
         }
@@ -10859,7 +10865,10 @@
         if (mInjector.settingsGlobalGetInt(Global.AUTO_TIME, 0) == 1) {
             return false;
         }
-        mInjector.binderWithCleanCallingIdentity(() -> mInjector.getAlarmManager().setTime(millis));
+        ManualTimeSuggestion manualTimeSuggestion = TimeDetector.createManualTimeSuggestion(
+                millis, "DevicePolicyManagerService: setTime");
+        mInjector.binderWithCleanCallingIdentity(
+                () -> mInjector.getTimeDetector().suggestManualTime(manualTimeSuggestion));
         return true;
     }
 
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index 16c60ca..a5cc82a 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -40,6 +40,7 @@
 import android.hardware.display.DisplayManagerInternal;
 import android.net.ConnectivityModuleConnector;
 import android.net.NetworkStackClient;
+import android.net.TetheringManager;
 import android.os.BaseBundle;
 import android.os.Binder;
 import android.os.Build;
@@ -135,6 +136,7 @@
 import com.android.server.power.PowerManagerService;
 import com.android.server.power.ShutdownThread;
 import com.android.server.power.ThermalManagerService;
+import com.android.server.recoverysystem.RecoverySystemService;
 import com.android.server.restrictions.RestrictionsManagerService;
 import com.android.server.role.RoleManagerService;
 import com.android.server.rollback.RollbackManagerService;
@@ -270,6 +272,8 @@
             "com.android.internal.car.CarServiceHelperService";
     private static final String TIME_DETECTOR_SERVICE_CLASS =
             "com.android.server.timedetector.TimeDetectorService$Lifecycle";
+    private static final String TIME_ZONE_DETECTOR_SERVICE_CLASS =
+            "com.android.server.timezonedetector.TimeZoneDetectorService$Lifecycle";
     private static final String ACCESSIBILITY_MANAGER_SERVICE_CLASS =
             "com.android.server.accessibility.AccessibilityManagerService$Lifecycle";
     private static final String ADB_SERVICE_CLASS =
@@ -383,15 +387,6 @@
             EventLog.writeEvent(EventLogTags.SYSTEM_SERVER_START,
                     mStartCount, mRuntimeStartUptime, mRuntimeStartElapsedTime);
 
-            // If a device's clock is before 1970 (before 0), a lot of
-            // APIs crash dealing with negative numbers, notably
-            // java.io.File#setLastModified, so instead we fake it and
-            // hope that time from cell towers or NTP fixes it shortly.
-            if (System.currentTimeMillis() < EARLIEST_SUPPORTED_TIME) {
-                Slog.w(TAG, "System clock is before 1970; setting to 1970.");
-                SystemClock.setCurrentTimeMillis(EARLIEST_SUPPORTED_TIME);
-            }
-
             //
             // Default the timezone property to GMT if not set.
             //
@@ -698,7 +693,7 @@
 
         // Bring up recovery system in case a rescue party needs a reboot
         traceBeginAndSlog("StartRecoverySystemService");
-        mSystemServiceManager.startService(RecoverySystemService.class);
+        mSystemServiceManager.startService(RecoverySystemService.Lifecycle.class);
         traceEnd();
 
         // Now that we have the bare essentials of the OS up and running, take
@@ -1471,6 +1466,14 @@
             }
             traceEnd();
 
+            traceBeginAndSlog("StartTimeZoneDetectorService");
+            try {
+                mSystemServiceManager.startService(TIME_ZONE_DETECTOR_SERVICE_CLASS);
+            } catch (Throwable e) {
+                reportWtf("starting StartTimeZoneDetectorService service", e);
+            }
+            traceEnd();
+
             if (!isWatch) {
                 traceBeginAndSlog("StartSearchManagerService");
                 try {
@@ -2183,6 +2186,15 @@
             }
             traceEnd();
 
+            traceBeginAndSlog("StartTethering");
+            try {
+                // Tethering must start after ConnectivityService and NetworkStack.
+                TetheringManager.getInstance().start();
+            } catch (Throwable e) {
+                reportWtf("starting Tethering", e);
+            }
+            traceEnd();
+
             traceBeginAndSlog("MakeLocationServiceReady");
             try {
                 if (locationF != null) {
diff --git a/services/net/Android.bp b/services/net/Android.bp
index e24dec5..2dabdb7 100644
--- a/services/net/Android.bp
+++ b/services/net/Android.bp
@@ -1,37 +1,26 @@
 java_library_static {
     name: "services.net",
     srcs: [
-        ":tethering-servicesnet-srcs",
+        ":net-module-utils-srcs",
         "java/**/*.java",
+        ":tethering-manager",
     ],
     static_libs: [
         "dnsresolver_aidl_interface-V2-java",
         "netd_aidl_interface-unstable-java",
+        "netlink-client",
         "networkstack-client",
         "tethering-client",
     ],
 }
 
 filegroup {
-    name: "services-networkstack-shared-srcs",
-    srcs: [
-        "java/android/net/ip/InterfaceController.java", // TODO: move to NetworkStack with tethering
-        "java/android/net/util/InterfaceParams.java", // TODO: move to NetworkStack with IpServer
-        "java/android/net/shared/*.java",
-        "java/android/net/netlink/*.java",
-    ],
-}
-
-filegroup {
     name: "services-tethering-shared-srcs",
     srcs: [
         ":framework-annotations",
         "java/android/net/ConnectivityModuleConnector.java",
         "java/android/net/NetworkStackClient.java",
-        "java/android/net/ip/InterfaceController.java",
-        "java/android/net/util/InterfaceParams.java",
         "java/android/net/util/NetdService.java",
         "java/android/net/util/NetworkConstants.java",
-        "java/android/net/util/SharedLog.java"
     ],
 }
diff --git a/services/net/java/android/net/NetworkStackClient.java b/services/net/java/android/net/NetworkStackClient.java
index 69e2406..865e3b8 100644
--- a/services/net/java/android/net/NetworkStackClient.java
+++ b/services/net/java/android/net/NetworkStackClient.java
@@ -103,7 +103,7 @@
             // checks here should be kept in sync with PermissionUtil.
             if (caller != Process.SYSTEM_UID
                     && caller != Process.NETWORK_STACK_UID
-                    && !UserHandle.isSameApp(caller, Process.BLUETOOTH_UID)) {
+                    && UserHandle.getAppId(caller) != Process.BLUETOOTH_UID) {
                 throw new SecurityException(
                         "Only the system server should try to bind to the network stack.");
             }
diff --git a/services/net/java/android/net/ip/InterfaceController.java b/services/net/java/android/net/ip/InterfaceController.java
deleted file mode 100644
index 970bc9c..0000000
--- a/services/net/java/android/net/ip/InterfaceController.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * 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.
- */
-
-package android.net.ip;
-
-import android.net.INetd;
-import android.net.InterfaceConfigurationParcel;
-import android.net.LinkAddress;
-import android.net.util.SharedLog;
-import android.os.RemoteException;
-import android.os.ServiceSpecificException;
-import android.system.OsConstants;
-
-import java.net.Inet4Address;
-import java.net.InetAddress;
-
-
-/**
- * Encapsulates the multiple IP configuration operations performed on an interface.
- *
- * TODO: refactor/eliminate the redundant ways to set and clear addresses.
- *
- * @hide
- */
-public class InterfaceController {
-    private final static boolean DBG = false;
-
-    private final String mIfName;
-    private final INetd mNetd;
-    private final SharedLog mLog;
-
-    public InterfaceController(String ifname, INetd netd, SharedLog log) {
-        mIfName = ifname;
-        mNetd = netd;
-        mLog = log;
-    }
-
-    private boolean setInterfaceAddress(LinkAddress addr) {
-        final InterfaceConfigurationParcel ifConfig = new InterfaceConfigurationParcel();
-        ifConfig.ifName = mIfName;
-        ifConfig.ipv4Addr = addr.getAddress().getHostAddress();
-        ifConfig.prefixLength = addr.getPrefixLength();
-        ifConfig.hwAddr = "";
-        ifConfig.flags = new String[0];
-        try {
-            mNetd.interfaceSetCfg(ifConfig);
-        } catch (RemoteException | ServiceSpecificException e) {
-            logError("Setting IPv4 address to %s/%d failed: %s",
-                    ifConfig.ipv4Addr, ifConfig.prefixLength, e);
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     * Set the IPv4 address of the interface.
-     */
-    public boolean setIPv4Address(LinkAddress address) {
-        if (!(address.getAddress() instanceof Inet4Address)) {
-            return false;
-        }
-        return setInterfaceAddress(address);
-    }
-
-    /**
-     * Clear the IPv4Address of the interface.
-     */
-    public boolean clearIPv4Address() {
-        return setInterfaceAddress(new LinkAddress("0.0.0.0/0"));
-    }
-
-    private boolean setEnableIPv6(boolean enabled) {
-        try {
-            mNetd.interfaceSetEnableIPv6(mIfName, enabled);
-        } catch (RemoteException | ServiceSpecificException e) {
-            logError("%s IPv6 failed: %s", (enabled ? "enabling" : "disabling"), e);
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     * Enable IPv6 on the interface.
-     */
-    public boolean enableIPv6() {
-        return setEnableIPv6(true);
-    }
-
-    /**
-     * Disable IPv6 on the interface.
-     */
-    public boolean disableIPv6() {
-        return setEnableIPv6(false);
-    }
-
-    /**
-     * Enable or disable IPv6 privacy extensions on the interface.
-     * @param enabled Whether the extensions should be enabled.
-     */
-    public boolean setIPv6PrivacyExtensions(boolean enabled) {
-        try {
-            mNetd.interfaceSetIPv6PrivacyExtensions(mIfName, enabled);
-        } catch (RemoteException | ServiceSpecificException e) {
-            logError("error %s IPv6 privacy extensions: %s",
-                    (enabled ? "enabling" : "disabling"), e);
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     * Set IPv6 address generation mode on the interface.
-     *
-     * <p>IPv6 should be disabled before changing the mode.
-     */
-    public boolean setIPv6AddrGenModeIfSupported(int mode) {
-        try {
-            mNetd.setIPv6AddrGenMode(mIfName, mode);
-        } catch (RemoteException e) {
-            logError("Unable to set IPv6 addrgen mode: %s", e);
-            return false;
-        } catch (ServiceSpecificException e) {
-            if (e.errorCode != OsConstants.EOPNOTSUPP) {
-                logError("Unable to set IPv6 addrgen mode: %s", e);
-                return false;
-            }
-        }
-        return true;
-    }
-
-    /**
-     * Add an address to the interface.
-     */
-    public boolean addAddress(LinkAddress addr) {
-        return addAddress(addr.getAddress(), addr.getPrefixLength());
-    }
-
-    /**
-     * Add an address to the interface.
-     */
-    public boolean addAddress(InetAddress ip, int prefixLen) {
-        try {
-            mNetd.interfaceAddAddress(mIfName, ip.getHostAddress(), prefixLen);
-        } catch (ServiceSpecificException | RemoteException e) {
-            logError("failed to add %s/%d: %s", ip, prefixLen, e);
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     * Remove an address from the interface.
-     */
-    public boolean removeAddress(InetAddress ip, int prefixLen) {
-        try {
-            mNetd.interfaceDelAddress(mIfName, ip.getHostAddress(), prefixLen);
-        } catch (ServiceSpecificException | RemoteException e) {
-            logError("failed to remove %s/%d: %s", ip, prefixLen, e);
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     * Remove all addresses from the interface.
-     */
-    public boolean clearAllAddresses() {
-        try {
-            mNetd.interfaceClearAddrs(mIfName);
-        } catch (Exception e) {
-            logError("Failed to clear addresses: %s", e);
-            return false;
-        }
-        return true;
-    }
-
-    private void logError(String fmt, Object... args) {
-        mLog.e(String.format(fmt, args));
-    }
-}
diff --git a/services/net/java/android/net/netlink/ConntrackMessage.java b/services/net/java/android/net/netlink/ConntrackMessage.java
deleted file mode 100644
index 6978739..0000000
--- a/services/net/java/android/net/netlink/ConntrackMessage.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * 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.
- */
-
-package android.net.netlink;
-
-import static android.net.netlink.StructNlMsgHdr.NLM_F_ACK;
-import static android.net.netlink.StructNlMsgHdr.NLM_F_REPLACE;
-import static android.net.netlink.StructNlMsgHdr.NLM_F_REQUEST;
-
-import static java.nio.ByteOrder.BIG_ENDIAN;
-
-import android.system.OsConstants;
-
-import java.net.Inet4Address;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-
-
-/**
- * A NetlinkMessage subclass for netlink conntrack messages.
- *
- * see also: &lt;linux_src&gt;/include/uapi/linux/netfilter/nfnetlink_conntrack.h
- *
- * @hide
- */
-public class ConntrackMessage extends NetlinkMessage {
-    public static final int STRUCT_SIZE = StructNlMsgHdr.STRUCT_SIZE + StructNfGenMsg.STRUCT_SIZE;
-
-    public static final short NFNL_SUBSYS_CTNETLINK = 1;
-    public static final short IPCTNL_MSG_CT_NEW = 0;
-
-    // enum ctattr_type
-    public static final short CTA_TUPLE_ORIG  = 1;
-    public static final short CTA_TUPLE_REPLY = 2;
-    public static final short CTA_TIMEOUT     = 7;
-
-    // enum ctattr_tuple
-    public static final short CTA_TUPLE_IP    = 1;
-    public static final short CTA_TUPLE_PROTO = 2;
-
-    // enum ctattr_ip
-    public static final short CTA_IP_V4_SRC = 1;
-    public static final short CTA_IP_V4_DST = 2;
-
-    // enum ctattr_l4proto
-    public static final short CTA_PROTO_NUM      = 1;
-    public static final short CTA_PROTO_SRC_PORT = 2;
-    public static final short CTA_PROTO_DST_PORT = 3;
-
-    public static byte[] newIPv4TimeoutUpdateRequest(
-            int proto, Inet4Address src, int sport, Inet4Address dst, int dport, int timeoutSec) {
-        // *** STYLE WARNING ***
-        //
-        // Code below this point uses extra block indentation to highlight the
-        // packing of nested tuple netlink attribute types.
-        final StructNlAttr ctaTupleOrig = new StructNlAttr(CTA_TUPLE_ORIG,
-                new StructNlAttr(CTA_TUPLE_IP,
-                        new StructNlAttr(CTA_IP_V4_SRC, src),
-                        new StructNlAttr(CTA_IP_V4_DST, dst)),
-                new StructNlAttr(CTA_TUPLE_PROTO,
-                        new StructNlAttr(CTA_PROTO_NUM, (byte) proto),
-                        new StructNlAttr(CTA_PROTO_SRC_PORT, (short) sport, BIG_ENDIAN),
-                        new StructNlAttr(CTA_PROTO_DST_PORT, (short) dport, BIG_ENDIAN)));
-
-        final StructNlAttr ctaTimeout = new StructNlAttr(CTA_TIMEOUT, timeoutSec, BIG_ENDIAN);
-
-        final int payloadLength = ctaTupleOrig.getAlignedLength() + ctaTimeout.getAlignedLength();
-        final byte[] bytes = new byte[STRUCT_SIZE + payloadLength];
-        final ByteBuffer byteBuffer = ByteBuffer.wrap(bytes);
-        byteBuffer.order(ByteOrder.nativeOrder());
-
-        final ConntrackMessage ctmsg = new ConntrackMessage();
-        ctmsg.mHeader.nlmsg_len = bytes.length;
-        ctmsg.mHeader.nlmsg_type = (NFNL_SUBSYS_CTNETLINK << 8) | IPCTNL_MSG_CT_NEW;
-        ctmsg.mHeader.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK | NLM_F_REPLACE;
-        ctmsg.mHeader.nlmsg_seq = 1;
-        ctmsg.pack(byteBuffer);
-
-        ctaTupleOrig.pack(byteBuffer);
-        ctaTimeout.pack(byteBuffer);
-
-        return bytes;
-    }
-
-    protected StructNfGenMsg mNfGenMsg;
-
-    private ConntrackMessage() {
-        super(new StructNlMsgHdr());
-        mNfGenMsg = new StructNfGenMsg((byte) OsConstants.AF_INET);
-    }
-
-    public void pack(ByteBuffer byteBuffer) {
-        mHeader.pack(byteBuffer);
-        mNfGenMsg.pack(byteBuffer);
-    }
-}
diff --git a/services/net/java/android/net/netlink/InetDiagMessage.java b/services/net/java/android/net/netlink/InetDiagMessage.java
deleted file mode 100644
index ca07630..0000000
--- a/services/net/java/android/net/netlink/InetDiagMessage.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * Copyright (C) 2018 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.
- */
-
-package android.net.netlink;
-
-import static android.net.netlink.NetlinkConstants.SOCK_DIAG_BY_FAMILY;
-import static android.net.netlink.NetlinkSocket.DEFAULT_RECV_BUFSIZE;
-import static android.net.netlink.StructNlMsgHdr.NLM_F_DUMP;
-import static android.net.netlink.StructNlMsgHdr.NLM_F_REQUEST;
-import static android.os.Process.INVALID_UID;
-import static android.system.OsConstants.AF_INET;
-import static android.system.OsConstants.AF_INET6;
-import static android.system.OsConstants.IPPROTO_UDP;
-import static android.system.OsConstants.NETLINK_INET_DIAG;
-
-import android.annotation.Nullable;
-import android.net.util.SocketUtils;
-import android.system.ErrnoException;
-import android.util.Log;
-
-import java.io.FileDescriptor;
-import java.io.IOException;
-import java.io.InterruptedIOException;
-import java.net.Inet4Address;
-import java.net.Inet6Address;
-import java.net.InetSocketAddress;
-import java.net.SocketException;
-import java.net.UnknownHostException;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-
-/**
- * A NetlinkMessage subclass for netlink inet_diag messages.
- *
- * see also: &lt;linux_src&gt;/include/uapi/linux/inet_diag.h
- *
- * @hide
- */
-public class InetDiagMessage extends NetlinkMessage {
-    public static final String TAG = "InetDiagMessage";
-    private static final int TIMEOUT_MS = 500;
-
-    public static byte[] InetDiagReqV2(int protocol, InetSocketAddress local,
-            InetSocketAddress remote, int family, short flags) {
-        return InetDiagReqV2(protocol, local, remote, family, flags, 0 /* pad */,
-                0 /* idiagExt */, StructInetDiagReqV2.INET_DIAG_REQ_V2_ALL_STATES);
-    }
-
-    /**
-     * Construct an inet_diag_req_v2 message. This method will throw {@code NullPointerException}
-     * if local and remote are not both null or both non-null.
-     *
-     * @param protocol the request protocol type. This should be set to one of IPPROTO_TCP,
-     *                 IPPROTO_UDP, or IPPROTO_UDPLITE.
-     * @param local local socket address of the target socket. This will be packed into a
-     *              {@Code StructInetDiagSockId}. Request to diagnose for all sockets if both of
-     *              local or remote address is null.
-     * @param remote remote socket address of the target socket. This will be packed into a
-     *              {@Code StructInetDiagSockId}. Request to diagnose for all sockets if both of
-     *              local or remote address is null.
-     * @param family the ip family of the request message. This should be set to either AF_INET or
-     *               AF_INET6 for IPv4 or IPv6 sockets respectively.
-     * @param flags message flags. See &lt;linux_src&gt;/include/uapi/linux/netlink.h.
-     * @param pad for raw socket protocol specification.
-     * @param idiagExt a set of flags defining what kind of extended information to report.
-     * @param state a bit mask that defines a filter of socket states.
-     *
-     * @return bytes array representation of the message
-     **/
-    public static byte[] InetDiagReqV2(int protocol, @Nullable InetSocketAddress local,
-            @Nullable InetSocketAddress remote, int family, short flags, int pad, int idiagExt,
-            int state) throws NullPointerException {
-        final byte[] bytes = new byte[StructNlMsgHdr.STRUCT_SIZE + StructInetDiagReqV2.STRUCT_SIZE];
-        final ByteBuffer byteBuffer = ByteBuffer.wrap(bytes);
-        byteBuffer.order(ByteOrder.nativeOrder());
-
-        final StructNlMsgHdr nlMsgHdr = new StructNlMsgHdr();
-        nlMsgHdr.nlmsg_len = bytes.length;
-        nlMsgHdr.nlmsg_type = SOCK_DIAG_BY_FAMILY;
-        nlMsgHdr.nlmsg_flags = flags;
-        nlMsgHdr.pack(byteBuffer);
-        final StructInetDiagReqV2 inetDiagReqV2 =
-                new StructInetDiagReqV2(protocol, local, remote, family, pad, idiagExt, state);
-
-        inetDiagReqV2.pack(byteBuffer);
-        return bytes;
-    }
-
-    public StructInetDiagMsg mStructInetDiagMsg;
-
-    private InetDiagMessage(StructNlMsgHdr header) {
-        super(header);
-        mStructInetDiagMsg = new StructInetDiagMsg();
-    }
-
-    public static InetDiagMessage parse(StructNlMsgHdr header, ByteBuffer byteBuffer) {
-        final InetDiagMessage msg = new InetDiagMessage(header);
-        msg.mStructInetDiagMsg = StructInetDiagMsg.parse(byteBuffer);
-        return msg;
-    }
-
-    private static int lookupUidByFamily(int protocol, InetSocketAddress local,
-                                         InetSocketAddress remote, int family, short flags,
-                                         FileDescriptor fd)
-            throws ErrnoException, InterruptedIOException {
-        byte[] msg = InetDiagReqV2(protocol, local, remote, family, flags);
-        NetlinkSocket.sendMessage(fd, msg, 0, msg.length, TIMEOUT_MS);
-        ByteBuffer response = NetlinkSocket.recvMessage(fd, DEFAULT_RECV_BUFSIZE, TIMEOUT_MS);
-
-        final NetlinkMessage nlMsg = NetlinkMessage.parse(response);
-        final StructNlMsgHdr hdr = nlMsg.getHeader();
-        if (hdr.nlmsg_type == NetlinkConstants.NLMSG_DONE) {
-            return INVALID_UID;
-        }
-        if (nlMsg instanceof InetDiagMessage) {
-            return ((InetDiagMessage) nlMsg).mStructInetDiagMsg.idiag_uid;
-        }
-        return INVALID_UID;
-    }
-
-    private static final int FAMILY[] = {AF_INET6, AF_INET};
-
-    private static int lookupUid(int protocol, InetSocketAddress local,
-                                 InetSocketAddress remote, FileDescriptor fd)
-            throws ErrnoException, InterruptedIOException {
-        int uid;
-
-        for (int family : FAMILY) {
-            /**
-             * For exact match lookup, swap local and remote for UDP lookups due to kernel
-             * bug which will not be fixed. See aosp/755889 and
-             * https://www.mail-archive.com/netdev@vger.kernel.org/msg248638.html
-             */
-            if (protocol == IPPROTO_UDP) {
-                uid = lookupUidByFamily(protocol, remote, local, family, NLM_F_REQUEST, fd);
-            } else {
-                uid = lookupUidByFamily(protocol, local, remote, family, NLM_F_REQUEST, fd);
-            }
-            if (uid != INVALID_UID) {
-                return uid;
-            }
-        }
-
-        /**
-         * For UDP it's possible for a socket to send packets to arbitrary destinations, even if the
-         * socket is not connected (and even if the socket is connected to a different destination).
-         * If we want this API to work for such packets, then on miss we need to do a second lookup
-         * with only the local address and port filled in.
-         * Always use flags == NLM_F_REQUEST | NLM_F_DUMP for wildcard.
-         */
-        if (protocol == IPPROTO_UDP) {
-            try {
-                InetSocketAddress wildcard = new InetSocketAddress(
-                        Inet6Address.getByName("::"), 0);
-                uid = lookupUidByFamily(protocol, local, wildcard, AF_INET6,
-                        (short) (NLM_F_REQUEST | NLM_F_DUMP), fd);
-                if (uid != INVALID_UID) {
-                    return uid;
-                }
-                wildcard = new InetSocketAddress(Inet4Address.getByName("0.0.0.0"), 0);
-                uid = lookupUidByFamily(protocol, local, wildcard, AF_INET,
-                        (short) (NLM_F_REQUEST | NLM_F_DUMP), fd);
-                if (uid != INVALID_UID) {
-                    return uid;
-                }
-            } catch (UnknownHostException e) {
-                Log.e(TAG, e.toString());
-            }
-        }
-        return INVALID_UID;
-    }
-
-    /**
-     * Use an inet_diag socket to look up the UID associated with the input local and remote
-     * address/port and protocol of a connection.
-     */
-    public static int getConnectionOwnerUid(int protocol, InetSocketAddress local,
-                                            InetSocketAddress remote) {
-        int uid = INVALID_UID;
-        FileDescriptor fd = null;
-        try {
-            fd = NetlinkSocket.forProto(NETLINK_INET_DIAG);
-            NetlinkSocket.connectToKernel(fd);
-            uid = lookupUid(protocol, local, remote, fd);
-        } catch (ErrnoException | SocketException | IllegalArgumentException
-                | InterruptedIOException e) {
-            Log.e(TAG, e.toString());
-        } finally {
-            if (fd != null) {
-                try {
-                    SocketUtils.closeSocket(fd);
-                } catch (IOException e) {
-                    Log.e(TAG, e.toString());
-                }
-            }
-        }
-        return uid;
-    }
-
-    @Override
-    public String toString() {
-        return "InetDiagMessage{ "
-                + "nlmsghdr{" + (mHeader == null ? "" : mHeader.toString()) + "}, "
-                + "inet_diag_msg{"
-                + (mStructInetDiagMsg == null ? "" : mStructInetDiagMsg.toString()) + "} "
-                + "}";
-    }
-}
diff --git a/services/net/java/android/net/netlink/NetlinkConstants.java b/services/net/java/android/net/netlink/NetlinkConstants.java
deleted file mode 100644
index fc1551c..0000000
--- a/services/net/java/android/net/netlink/NetlinkConstants.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * 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.
- */
-
-package android.net.netlink;
-
-import android.system.OsConstants;
-import com.android.internal.util.HexDump;
-
-import java.nio.ByteBuffer;
-
-
-/**
- * Various constants and static helper methods for netlink communications.
- *
- * Values taken from:
- *
- *     &lt;linux_src&gt;/include/uapi/linux/netlink.h
- *     &lt;linux_src&gt;/include/uapi/linux/rtnetlink.h
- *
- * @hide
- */
-public class NetlinkConstants {
-    private NetlinkConstants() {}
-
-    public static final int NLA_ALIGNTO = 4;
-
-    public static final int alignedLengthOf(short length) {
-        final int intLength = (int) length & 0xffff;
-        return alignedLengthOf(intLength);
-    }
-
-    public static final int alignedLengthOf(int length) {
-        if (length <= 0) { return 0; }
-        return (((length + NLA_ALIGNTO - 1) / NLA_ALIGNTO) * NLA_ALIGNTO);
-    }
-
-    public static String stringForAddressFamily(int family) {
-        if (family == OsConstants.AF_INET) { return "AF_INET"; }
-        if (family == OsConstants.AF_INET6) { return "AF_INET6"; }
-        if (family == OsConstants.AF_NETLINK) { return "AF_NETLINK"; }
-        return String.valueOf(family);
-    }
-
-    public static String stringForProtocol(int protocol) {
-        if (protocol == OsConstants.IPPROTO_TCP) { return "IPPROTO_TCP"; }
-        if (protocol == OsConstants.IPPROTO_UDP) { return "IPPROTO_UDP"; }
-        return String.valueOf(protocol);
-    }
-
-    public static String hexify(byte[] bytes) {
-        if (bytes == null) { return "(null)"; }
-        return HexDump.toHexString(bytes);
-    }
-
-    public static String hexify(ByteBuffer buffer) {
-        if (buffer == null) { return "(null)"; }
-        return HexDump.toHexString(
-                buffer.array(), buffer.position(), buffer.remaining());
-    }
-
-    // Known values for struct nlmsghdr nlm_type.
-    public static final short NLMSG_NOOP         = 1;   // Nothing
-    public static final short NLMSG_ERROR        = 2;   // Error
-    public static final short NLMSG_DONE         = 3;   // End of a dump
-    public static final short NLMSG_OVERRUN      = 4;   // Data lost
-    public static final short NLMSG_MAX_RESERVED = 15;  // Max reserved value
-
-    public static final short RTM_NEWLINK        = 16;
-    public static final short RTM_DELLINK        = 17;
-    public static final short RTM_GETLINK        = 18;
-    public static final short RTM_SETLINK        = 19;
-    public static final short RTM_NEWADDR        = 20;
-    public static final short RTM_DELADDR        = 21;
-    public static final short RTM_GETADDR        = 22;
-    public static final short RTM_NEWROUTE       = 24;
-    public static final short RTM_DELROUTE       = 25;
-    public static final short RTM_GETROUTE       = 26;
-    public static final short RTM_NEWNEIGH       = 28;
-    public static final short RTM_DELNEIGH       = 29;
-    public static final short RTM_GETNEIGH       = 30;
-    public static final short RTM_NEWRULE        = 32;
-    public static final short RTM_DELRULE        = 33;
-    public static final short RTM_GETRULE        = 34;
-    public static final short RTM_NEWNDUSEROPT   = 68;
-
-    /* see &lt;linux_src&gt;/include/uapi/linux/sock_diag.h */
-    public static final short SOCK_DIAG_BY_FAMILY = 20;
-
-    public static String stringForNlMsgType(short nlm_type) {
-        switch (nlm_type) {
-            case NLMSG_NOOP: return "NLMSG_NOOP";
-            case NLMSG_ERROR: return "NLMSG_ERROR";
-            case NLMSG_DONE: return "NLMSG_DONE";
-            case NLMSG_OVERRUN: return "NLMSG_OVERRUN";
-            case RTM_NEWLINK: return "RTM_NEWLINK";
-            case RTM_DELLINK: return "RTM_DELLINK";
-            case RTM_GETLINK: return "RTM_GETLINK";
-            case RTM_SETLINK: return "RTM_SETLINK";
-            case RTM_NEWADDR: return "RTM_NEWADDR";
-            case RTM_DELADDR: return "RTM_DELADDR";
-            case RTM_GETADDR: return "RTM_GETADDR";
-            case RTM_NEWROUTE: return "RTM_NEWROUTE";
-            case RTM_DELROUTE: return "RTM_DELROUTE";
-            case RTM_GETROUTE: return "RTM_GETROUTE";
-            case RTM_NEWNEIGH: return "RTM_NEWNEIGH";
-            case RTM_DELNEIGH: return "RTM_DELNEIGH";
-            case RTM_GETNEIGH: return "RTM_GETNEIGH";
-            case RTM_NEWRULE: return "RTM_NEWRULE";
-            case RTM_DELRULE: return "RTM_DELRULE";
-            case RTM_GETRULE: return "RTM_GETRULE";
-            case RTM_NEWNDUSEROPT: return "RTM_NEWNDUSEROPT";
-            default:
-                return "unknown RTM type: " + String.valueOf(nlm_type);
-        }
-    }
-}
diff --git a/services/net/java/android/net/netlink/NetlinkErrorMessage.java b/services/net/java/android/net/netlink/NetlinkErrorMessage.java
deleted file mode 100644
index e275574..0000000
--- a/services/net/java/android/net/netlink/NetlinkErrorMessage.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * 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.
- */
-
-package android.net.netlink;
-
-import android.net.netlink.StructNlMsgHdr;
-import android.net.netlink.NetlinkMessage;
-
-import java.nio.ByteBuffer;
-
-
-/**
- * A NetlinkMessage subclass for netlink error messages.
- *
- * @hide
- */
-public class NetlinkErrorMessage extends NetlinkMessage {
-
-    public static NetlinkErrorMessage parse(StructNlMsgHdr header, ByteBuffer byteBuffer) {
-        final NetlinkErrorMessage errorMsg = new NetlinkErrorMessage(header);
-
-        errorMsg.mNlMsgErr = StructNlMsgErr.parse(byteBuffer);
-        if (errorMsg.mNlMsgErr == null) {
-            return null;
-        }
-
-        return errorMsg;
-    }
-
-    private StructNlMsgErr mNlMsgErr;
-
-    NetlinkErrorMessage(StructNlMsgHdr header) {
-        super(header);
-        mNlMsgErr = null;
-    }
-
-    public StructNlMsgErr getNlMsgError() {
-        return mNlMsgErr;
-    }
-
-    @Override
-    public String toString() {
-        return "NetlinkErrorMessage{ "
-                + "nlmsghdr{" + (mHeader == null ? "" : mHeader.toString()) + "}, "
-                + "nlmsgerr{" + (mNlMsgErr == null ? "" : mNlMsgErr.toString()) + "} "
-                + "}";
-    }
-}
diff --git a/services/net/java/android/net/netlink/NetlinkMessage.java b/services/net/java/android/net/netlink/NetlinkMessage.java
deleted file mode 100644
index a325db8..0000000
--- a/services/net/java/android/net/netlink/NetlinkMessage.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * 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.
- */
-
-package android.net.netlink;
-
-import android.net.netlink.NetlinkConstants;
-import android.net.netlink.NetlinkErrorMessage;
-import android.net.netlink.RtNetlinkNeighborMessage;
-import android.net.netlink.StructNlAttr;
-import android.net.netlink.StructNlMsgHdr;
-import android.util.Log;
-
-import java.nio.ByteBuffer;
-
-
-/**
- * NetlinkMessage base class for other, more specific netlink message types.
- *
- * Classes that extend NetlinkMessage should:
- *     - implement a public static parse(StructNlMsgHdr, ByteBuffer) method
- *     - returning either null (parse errors) or a new object of the subclass
- *       type (cast-able to NetlinkMessage)
- *
- * NetlinkMessage.parse() should be updated to know which nlmsg_type values
- * correspond with which message subclasses.
- *
- * @hide
- */
-public class NetlinkMessage {
-    private final static String TAG = "NetlinkMessage";
-
-    public static NetlinkMessage parse(ByteBuffer byteBuffer) {
-        final int startPosition = (byteBuffer != null) ? byteBuffer.position() : -1;
-        final StructNlMsgHdr nlmsghdr = StructNlMsgHdr.parse(byteBuffer);
-        if (nlmsghdr == null) {
-            return null;
-        }
-
-        int payloadLength = NetlinkConstants.alignedLengthOf(nlmsghdr.nlmsg_len);
-        payloadLength -= StructNlMsgHdr.STRUCT_SIZE;
-        if (payloadLength < 0 || payloadLength > byteBuffer.remaining()) {
-            // Malformed message or runt buffer.  Pretend the buffer was consumed.
-            byteBuffer.position(byteBuffer.limit());
-            return null;
-        }
-
-        switch (nlmsghdr.nlmsg_type) {
-            //case NetlinkConstants.NLMSG_NOOP:
-            case NetlinkConstants.NLMSG_ERROR:
-                return (NetlinkMessage) NetlinkErrorMessage.parse(nlmsghdr, byteBuffer);
-            case NetlinkConstants.NLMSG_DONE:
-                byteBuffer.position(byteBuffer.position() + payloadLength);
-                return new NetlinkMessage(nlmsghdr);
-            //case NetlinkConstants.NLMSG_OVERRUN:
-            case NetlinkConstants.RTM_NEWNEIGH:
-            case NetlinkConstants.RTM_DELNEIGH:
-            case NetlinkConstants.RTM_GETNEIGH:
-                return (NetlinkMessage) RtNetlinkNeighborMessage.parse(nlmsghdr, byteBuffer);
-            case NetlinkConstants.SOCK_DIAG_BY_FAMILY:
-                return (NetlinkMessage) InetDiagMessage.parse(nlmsghdr, byteBuffer);
-            default:
-                if (nlmsghdr.nlmsg_type <= NetlinkConstants.NLMSG_MAX_RESERVED) {
-                    // Netlink control message.  Just parse the header for now,
-                    // pretending the whole message was consumed.
-                    byteBuffer.position(byteBuffer.position() + payloadLength);
-                    return new NetlinkMessage(nlmsghdr);
-                }
-                return null;
-        }
-    }
-
-    protected StructNlMsgHdr mHeader;
-
-    public NetlinkMessage(StructNlMsgHdr nlmsghdr) {
-        mHeader = nlmsghdr;
-    }
-
-    public StructNlMsgHdr getHeader() {
-        return mHeader;
-    }
-
-    @Override
-    public String toString() {
-        return "NetlinkMessage{" + (mHeader == null ? "" : mHeader.toString()) + "}";
-    }
-}
diff --git a/services/net/java/android/net/netlink/NetlinkSocket.java b/services/net/java/android/net/netlink/NetlinkSocket.java
deleted file mode 100644
index 7311fc5..0000000
--- a/services/net/java/android/net/netlink/NetlinkSocket.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * 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.
- */
-
-package android.net.netlink;
-
-import static android.net.util.SocketUtils.makeNetlinkSocketAddress;
-import static android.system.OsConstants.AF_NETLINK;
-import static android.system.OsConstants.EIO;
-import static android.system.OsConstants.EPROTO;
-import static android.system.OsConstants.ETIMEDOUT;
-import static android.system.OsConstants.SOCK_DGRAM;
-import static android.system.OsConstants.SOL_SOCKET;
-import static android.system.OsConstants.SO_RCVBUF;
-import static android.system.OsConstants.SO_RCVTIMEO;
-import static android.system.OsConstants.SO_SNDTIMEO;
-
-import android.net.util.SocketUtils;
-import android.system.ErrnoException;
-import android.system.Os;
-import android.system.StructTimeval;
-import android.util.Log;
-
-import java.io.FileDescriptor;
-import java.io.IOException;
-import java.io.InterruptedIOException;
-import java.net.SocketException;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-
-
-/**
- * NetlinkSocket
- *
- * A small static class to assist with AF_NETLINK socket operations.
- *
- * @hide
- */
-public class NetlinkSocket {
-    private static final String TAG = "NetlinkSocket";
-
-    public static final int DEFAULT_RECV_BUFSIZE = 8 * 1024;
-    public static final int SOCKET_RECV_BUFSIZE = 64 * 1024;
-
-    public static void sendOneShotKernelMessage(int nlProto, byte[] msg) throws ErrnoException {
-        final String errPrefix = "Error in NetlinkSocket.sendOneShotKernelMessage";
-        final long IO_TIMEOUT = 300L;
-
-        final FileDescriptor fd = forProto(nlProto);
-
-        try {
-            connectToKernel(fd);
-            sendMessage(fd, msg, 0, msg.length, IO_TIMEOUT);
-            final ByteBuffer bytes = recvMessage(fd, DEFAULT_RECV_BUFSIZE, IO_TIMEOUT);
-            // recvMessage() guaranteed to not return null if it did not throw.
-            final NetlinkMessage response = NetlinkMessage.parse(bytes);
-            if (response != null && response instanceof NetlinkErrorMessage &&
-                    (((NetlinkErrorMessage) response).getNlMsgError() != null)) {
-                final int errno = ((NetlinkErrorMessage) response).getNlMsgError().error;
-                if (errno != 0) {
-                    // TODO: consider ignoring EINVAL (-22), which appears to be
-                    // normal when probing a neighbor for which the kernel does
-                    // not already have / no longer has a link layer address.
-                    Log.e(TAG, errPrefix + ", errmsg=" + response.toString());
-                    // Note: convert kernel errnos (negative) into userspace errnos (positive).
-                    throw new ErrnoException(response.toString(), Math.abs(errno));
-                }
-            } else {
-                final String errmsg;
-                if (response == null) {
-                    bytes.position(0);
-                    errmsg = "raw bytes: " + NetlinkConstants.hexify(bytes);
-                } else {
-                    errmsg = response.toString();
-                }
-                Log.e(TAG, errPrefix + ", errmsg=" + errmsg);
-                throw new ErrnoException(errmsg, EPROTO);
-            }
-        } catch (InterruptedIOException e) {
-            Log.e(TAG, errPrefix, e);
-            throw new ErrnoException(errPrefix, ETIMEDOUT, e);
-        } catch (SocketException e) {
-            Log.e(TAG, errPrefix, e);
-            throw new ErrnoException(errPrefix, EIO, e);
-        } finally {
-            try {
-                SocketUtils.closeSocket(fd);
-            } catch (IOException e) {
-                // Nothing we can do here
-            }
-        }
-    }
-
-    public static FileDescriptor forProto(int nlProto) throws ErrnoException {
-        final FileDescriptor fd = Os.socket(AF_NETLINK, SOCK_DGRAM, nlProto);
-        Os.setsockoptInt(fd, SOL_SOCKET, SO_RCVBUF, SOCKET_RECV_BUFSIZE);
-        return fd;
-    }
-
-    public static void connectToKernel(FileDescriptor fd) throws ErrnoException, SocketException {
-        Os.connect(fd, makeNetlinkSocketAddress(0, 0));
-    }
-
-    private static void checkTimeout(long timeoutMs) {
-        if (timeoutMs < 0) {
-            throw new IllegalArgumentException("Negative timeouts not permitted");
-        }
-    }
-
-    /**
-     * Wait up to |timeoutMs| (or until underlying socket error) for a
-     * netlink message of at most |bufsize| size.
-     *
-     * Multi-threaded calls with different timeouts will cause unexpected results.
-     */
-    public static ByteBuffer recvMessage(FileDescriptor fd, int bufsize, long timeoutMs)
-            throws ErrnoException, IllegalArgumentException, InterruptedIOException {
-        checkTimeout(timeoutMs);
-
-        Os.setsockoptTimeval(fd, SOL_SOCKET, SO_RCVTIMEO, StructTimeval.fromMillis(timeoutMs));
-
-        ByteBuffer byteBuffer = ByteBuffer.allocate(bufsize);
-        int length = Os.read(fd, byteBuffer);
-        if (length == bufsize) {
-            Log.w(TAG, "maximum read");
-        }
-        byteBuffer.position(0);
-        byteBuffer.limit(length);
-        byteBuffer.order(ByteOrder.nativeOrder());
-        return byteBuffer;
-    }
-
-    /**
-     * Send a message to a peer to which this socket has previously connected,
-     * waiting at most |timeoutMs| milliseconds for the send to complete.
-     *
-     * Multi-threaded calls with different timeouts will cause unexpected results.
-     */
-    public static int sendMessage(
-            FileDescriptor fd, byte[] bytes, int offset, int count, long timeoutMs)
-            throws ErrnoException, IllegalArgumentException, InterruptedIOException {
-        checkTimeout(timeoutMs);
-        Os.setsockoptTimeval(fd, SOL_SOCKET, SO_SNDTIMEO, StructTimeval.fromMillis(timeoutMs));
-        return Os.write(fd, bytes, offset, count);
-    }
-}
diff --git a/services/net/java/android/net/netlink/RtNetlinkNeighborMessage.java b/services/net/java/android/net/netlink/RtNetlinkNeighborMessage.java
deleted file mode 100644
index e784fbb..0000000
--- a/services/net/java/android/net/netlink/RtNetlinkNeighborMessage.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/*
- * 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.
- */
-
-package android.net.netlink;
-
-import static android.net.netlink.StructNlMsgHdr.NLM_F_ACK;
-import static android.net.netlink.StructNlMsgHdr.NLM_F_DUMP;
-import static android.net.netlink.StructNlMsgHdr.NLM_F_REPLACE;
-import static android.net.netlink.StructNlMsgHdr.NLM_F_REQUEST;
-
-import android.net.netlink.StructNdaCacheInfo;
-import android.net.netlink.StructNdMsg;
-import android.net.netlink.StructNlAttr;
-import android.net.netlink.StructNlMsgHdr;
-import android.net.netlink.NetlinkMessage;
-import android.system.OsConstants;
-import android.util.Log;
-
-import java.net.InetAddress;
-import java.net.Inet6Address;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-
-
-/**
- * A NetlinkMessage subclass for rtnetlink neighbor messages.
- *
- * see also: &lt;linux_src&gt;/include/uapi/linux/neighbour.h
- *
- * @hide
- */
-public class RtNetlinkNeighborMessage extends NetlinkMessage {
-    public static final short NDA_UNSPEC    = 0;
-    public static final short NDA_DST       = 1;
-    public static final short NDA_LLADDR    = 2;
-    public static final short NDA_CACHEINFO = 3;
-    public static final short NDA_PROBES    = 4;
-    public static final short NDA_VLAN      = 5;
-    public static final short NDA_PORT      = 6;
-    public static final short NDA_VNI       = 7;
-    public static final short NDA_IFINDEX   = 8;
-    public static final short NDA_MASTER    = 9;
-
-    private static StructNlAttr findNextAttrOfType(short attrType, ByteBuffer byteBuffer) {
-        while (byteBuffer != null && byteBuffer.remaining() > 0) {
-            final StructNlAttr nlAttr = StructNlAttr.peek(byteBuffer);
-            if (nlAttr == null) {
-                break;
-            }
-            if (nlAttr.nla_type == attrType) {
-                return StructNlAttr.parse(byteBuffer);
-            }
-            if (byteBuffer.remaining() < nlAttr.getAlignedLength()) {
-                break;
-            }
-            byteBuffer.position(byteBuffer.position() + nlAttr.getAlignedLength());
-        }
-        return null;
-    }
-
-    public static RtNetlinkNeighborMessage parse(StructNlMsgHdr header, ByteBuffer byteBuffer) {
-        final RtNetlinkNeighborMessage neighMsg = new RtNetlinkNeighborMessage(header);
-
-        neighMsg.mNdmsg = StructNdMsg.parse(byteBuffer);
-        if (neighMsg.mNdmsg == null) {
-            return null;
-        }
-
-        // Some of these are message-type dependent, and not always present.
-        final int baseOffset = byteBuffer.position();
-        StructNlAttr nlAttr = findNextAttrOfType(NDA_DST, byteBuffer);
-        if (nlAttr != null) {
-            neighMsg.mDestination = nlAttr.getValueAsInetAddress();
-        }
-
-        byteBuffer.position(baseOffset);
-        nlAttr = findNextAttrOfType(NDA_LLADDR, byteBuffer);
-        if (nlAttr != null) {
-            neighMsg.mLinkLayerAddr = nlAttr.nla_value;
-        }
-
-        byteBuffer.position(baseOffset);
-        nlAttr = findNextAttrOfType(NDA_PROBES, byteBuffer);
-        if (nlAttr != null) {
-            neighMsg.mNumProbes = nlAttr.getValueAsInt(0);
-        }
-
-        byteBuffer.position(baseOffset);
-        nlAttr = findNextAttrOfType(NDA_CACHEINFO, byteBuffer);
-        if (nlAttr != null) {
-            neighMsg.mCacheInfo = StructNdaCacheInfo.parse(nlAttr.getValueAsByteBuffer());
-        }
-
-        final int kMinConsumed = StructNlMsgHdr.STRUCT_SIZE + StructNdMsg.STRUCT_SIZE;
-        final int kAdditionalSpace = NetlinkConstants.alignedLengthOf(
-                neighMsg.mHeader.nlmsg_len - kMinConsumed);
-        if (byteBuffer.remaining() < kAdditionalSpace) {
-            byteBuffer.position(byteBuffer.limit());
-        } else {
-            byteBuffer.position(baseOffset + kAdditionalSpace);
-        }
-
-        return neighMsg;
-    }
-
-    /**
-     * A convenience method to create an RTM_GETNEIGH request message.
-     */
-    public static byte[] newGetNeighborsRequest(int seqNo) {
-        final int length = StructNlMsgHdr.STRUCT_SIZE + StructNdMsg.STRUCT_SIZE;
-        final byte[] bytes = new byte[length];
-        final ByteBuffer byteBuffer = ByteBuffer.wrap(bytes);
-        byteBuffer.order(ByteOrder.nativeOrder());
-
-        final StructNlMsgHdr nlmsghdr = new StructNlMsgHdr();
-        nlmsghdr.nlmsg_len = length;
-        nlmsghdr.nlmsg_type = NetlinkConstants.RTM_GETNEIGH;
-        nlmsghdr.nlmsg_flags = NLM_F_REQUEST | NLM_F_DUMP;
-        nlmsghdr.nlmsg_seq = seqNo;
-        nlmsghdr.pack(byteBuffer);
-
-        final StructNdMsg ndmsg = new StructNdMsg();
-        ndmsg.pack(byteBuffer);
-
-        return bytes;
-    }
-
-    /**
-     * A convenience method to create an RTM_NEWNEIGH message, to modify
-     * the kernel's state information for a specific neighbor.
-     */
-    public static byte[] newNewNeighborMessage(
-            int seqNo, InetAddress ip, short nudState, int ifIndex, byte[] llAddr) {
-        final StructNlMsgHdr nlmsghdr = new StructNlMsgHdr();
-        nlmsghdr.nlmsg_type = NetlinkConstants.RTM_NEWNEIGH;
-        nlmsghdr.nlmsg_flags = NLM_F_REQUEST | NLM_F_ACK | NLM_F_REPLACE;
-        nlmsghdr.nlmsg_seq = seqNo;
-
-        final RtNetlinkNeighborMessage msg = new RtNetlinkNeighborMessage(nlmsghdr);
-        msg.mNdmsg = new StructNdMsg();
-        msg.mNdmsg.ndm_family =
-                (byte) ((ip instanceof Inet6Address) ? OsConstants.AF_INET6 : OsConstants.AF_INET);
-        msg.mNdmsg.ndm_ifindex = ifIndex;
-        msg.mNdmsg.ndm_state = nudState;
-        msg.mDestination = ip;
-        msg.mLinkLayerAddr = llAddr;  // might be null
-
-        final byte[] bytes = new byte[msg.getRequiredSpace()];
-        nlmsghdr.nlmsg_len = bytes.length;
-        final ByteBuffer byteBuffer = ByteBuffer.wrap(bytes);
-        byteBuffer.order(ByteOrder.nativeOrder());
-        msg.pack(byteBuffer);
-        return bytes;
-    }
-
-    private StructNdMsg mNdmsg;
-    private InetAddress mDestination;
-    private byte[] mLinkLayerAddr;
-    private int mNumProbes;
-    private StructNdaCacheInfo mCacheInfo;
-
-    private RtNetlinkNeighborMessage(StructNlMsgHdr header) {
-        super(header);
-        mNdmsg = null;
-        mDestination = null;
-        mLinkLayerAddr = null;
-        mNumProbes = 0;
-        mCacheInfo = null;
-    }
-
-    public StructNdMsg getNdHeader() {
-        return mNdmsg;
-    }
-
-    public InetAddress getDestination() {
-        return mDestination;
-    }
-
-    public byte[] getLinkLayerAddress() {
-        return mLinkLayerAddr;
-    }
-
-    public int getProbes() {
-        return mNumProbes;
-    }
-
-    public StructNdaCacheInfo getCacheInfo() {
-        return mCacheInfo;
-    }
-
-    public int getRequiredSpace() {
-        int spaceRequired = StructNlMsgHdr.STRUCT_SIZE + StructNdMsg.STRUCT_SIZE;
-        if (mDestination != null) {
-            spaceRequired += NetlinkConstants.alignedLengthOf(
-                    StructNlAttr.NLA_HEADERLEN + mDestination.getAddress().length);
-        }
-        if (mLinkLayerAddr != null) {
-            spaceRequired += NetlinkConstants.alignedLengthOf(
-                    StructNlAttr.NLA_HEADERLEN + mLinkLayerAddr.length);
-        }
-        // Currently we don't write messages with NDA_PROBES nor NDA_CACHEINFO
-        // attributes appended.  Fix later, if necessary.
-        return spaceRequired;
-    }
-
-    private static void packNlAttr(short nlType, byte[] nlValue, ByteBuffer byteBuffer) {
-        final StructNlAttr nlAttr = new StructNlAttr();
-        nlAttr.nla_type = nlType;
-        nlAttr.nla_value = nlValue;
-        nlAttr.nla_len = (short) (StructNlAttr.NLA_HEADERLEN + nlAttr.nla_value.length);
-        nlAttr.pack(byteBuffer);
-    }
-
-    public void pack(ByteBuffer byteBuffer) {
-        getHeader().pack(byteBuffer) ;
-        mNdmsg.pack(byteBuffer);
-
-        if (mDestination != null) {
-            packNlAttr(NDA_DST, mDestination.getAddress(), byteBuffer);
-        }
-        if (mLinkLayerAddr != null) {
-            packNlAttr(NDA_LLADDR, mLinkLayerAddr, byteBuffer);
-        }
-    }
-
-    @Override
-    public String toString() {
-        final String ipLiteral = (mDestination == null) ? "" : mDestination.getHostAddress();
-        return "RtNetlinkNeighborMessage{ "
-                + "nlmsghdr{" + (mHeader == null ? "" : mHeader.toString()) + "}, "
-                + "ndmsg{" + (mNdmsg == null ? "" : mNdmsg.toString()) + "}, "
-                + "destination{" + ipLiteral + "} "
-                + "linklayeraddr{" + NetlinkConstants.hexify(mLinkLayerAddr) + "} "
-                + "probes{" + mNumProbes + "} "
-                + "cacheinfo{" + (mCacheInfo == null ? "" : mCacheInfo.toString()) + "} "
-                + "}";
-    }
-}
diff --git a/services/net/java/android/net/netlink/StructInetDiagMsg.java b/services/net/java/android/net/netlink/StructInetDiagMsg.java
deleted file mode 100644
index da824ad..0000000
--- a/services/net/java/android/net/netlink/StructInetDiagMsg.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2018 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.
- */
-
-package android.net.netlink;
-
-import static java.nio.ByteOrder.BIG_ENDIAN;
-import static android.system.OsConstants.AF_INET;
-import static android.system.OsConstants.AF_INET6;
-
-import java.net.Inet4Address;
-import java.net.InetSocketAddress;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import android.util.Log;
-
-/**
- * struct inet_diag_msg
- *
- * see &lt;linux_src&gt;/include/uapi/linux/inet_diag.h
- *
- * struct inet_diag_msg {
- *      __u8    idiag_family;
- *      __u8    idiag_state;
- *      __u8    idiag_timer;
- *      __u8    idiag_retrans;
- *      struct  inet_diag_sockid id;
- *      __u32   idiag_expires;
- *      __u32   idiag_rqueue;
- *      __u32   idiag_wqueue;
- *      __u32   idiag_uid;
- *      __u32   idiag_inode;
- * };
- *
- * @hide
- */
-public class StructInetDiagMsg {
-    public static final int STRUCT_SIZE = 4 + StructInetDiagSockId.STRUCT_SIZE + 20;
-    private static final int IDIAG_UID_OFFSET = StructNlMsgHdr.STRUCT_SIZE + 4 +
-            StructInetDiagSockId.STRUCT_SIZE + 12;
-    public int idiag_uid;
-
-    public static StructInetDiagMsg parse(ByteBuffer byteBuffer) {
-        StructInetDiagMsg struct = new StructInetDiagMsg();
-        struct.idiag_uid = byteBuffer.getInt(IDIAG_UID_OFFSET);
-        return struct;
-    }
-
-    @Override
-    public String toString() {
-        return "StructInetDiagMsg{ "
-                + "idiag_uid{" + idiag_uid + "}, "
-                + "}";
-    }
-}
diff --git a/services/net/java/android/net/netlink/StructInetDiagReqV2.java b/services/net/java/android/net/netlink/StructInetDiagReqV2.java
deleted file mode 100644
index 2268113..0000000
--- a/services/net/java/android/net/netlink/StructInetDiagReqV2.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2018 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.
- */
-
-package android.net.netlink;
-
-import android.annotation.Nullable;
-
-import java.net.InetSocketAddress;
-import java.nio.ByteBuffer;
-
-/**
- * struct inet_diag_req_v2
- *
- * see &lt;linux_src&gt;/include/uapi/linux/inet_diag.h
- *
- *      struct inet_diag_req_v2 {
- *          __u8    sdiag_family;
- *          __u8    sdiag_protocol;
- *          __u8    idiag_ext;
- *          __u8    pad;
- *          __u32   idiag_states;
- *          struct  inet_diag_sockid id;
- *      };
- *
- * @hide
- */
-public class StructInetDiagReqV2 {
-    public static final int STRUCT_SIZE = 8 + StructInetDiagSockId.STRUCT_SIZE;
-
-    private final byte mSdiagFamily;
-    private final byte mSdiagProtocol;
-    private final byte mIdiagExt;
-    private final byte mPad;
-    private final StructInetDiagSockId mId;
-    private final int mState;
-    public static final int INET_DIAG_REQ_V2_ALL_STATES = (int) 0xffffffff;
-
-    public StructInetDiagReqV2(int protocol, InetSocketAddress local, InetSocketAddress remote,
-            int family) {
-        this(protocol, local, remote, family, 0 /* pad */, 0 /* extension */,
-                INET_DIAG_REQ_V2_ALL_STATES);
-    }
-
-    public StructInetDiagReqV2(int protocol, @Nullable InetSocketAddress local,
-            @Nullable InetSocketAddress remote, int family, int pad, int extension, int state)
-            throws NullPointerException {
-        mSdiagFamily = (byte) family;
-        mSdiagProtocol = (byte) protocol;
-        // Request for all sockets if no specific socket is requested. Specify the local and remote
-        // socket address information for target request socket.
-        if ((local == null) != (remote == null)) {
-            throw new NullPointerException("Local and remote must be both null or both non-null");
-        }
-        mId = ((local != null && remote != null) ? new StructInetDiagSockId(local, remote) : null);
-        mPad = (byte) pad;
-        mIdiagExt = (byte) extension;
-        mState = state;
-    }
-
-    public void pack(ByteBuffer byteBuffer) {
-        // The ByteOrder must have already been set by the caller.
-        byteBuffer.put((byte) mSdiagFamily);
-        byteBuffer.put((byte) mSdiagProtocol);
-        byteBuffer.put((byte) mIdiagExt);
-        byteBuffer.put((byte) mPad);
-        byteBuffer.putInt(mState);
-        if (mId != null) mId.pack(byteBuffer);
-    }
-
-    @Override
-    public String toString() {
-        final String familyStr = NetlinkConstants.stringForAddressFamily(mSdiagFamily);
-        final String protocolStr = NetlinkConstants.stringForAddressFamily(mSdiagProtocol);
-
-        return "StructInetDiagReqV2{ "
-                + "sdiag_family{" + familyStr + "}, "
-                + "sdiag_protocol{" + protocolStr + "}, "
-                + "idiag_ext{" + mIdiagExt + ")}, "
-                + "pad{" + mPad + "}, "
-                + "idiag_states{" + Integer.toHexString(mState) + "}, "
-                + ((mId != null) ? mId.toString() : "inet_diag_sockid=null")
-                + "}";
-    }
-}
diff --git a/services/net/java/android/net/netlink/StructInetDiagSockId.java b/services/net/java/android/net/netlink/StructInetDiagSockId.java
deleted file mode 100644
index 2e9fa25..0000000
--- a/services/net/java/android/net/netlink/StructInetDiagSockId.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2018 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.
- */
-
-package android.net.netlink;
-
-import static java.nio.ByteOrder.BIG_ENDIAN;
-
-import java.net.Inet4Address;
-import java.net.InetSocketAddress;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-
-/**
- * struct inet_diag_req_v2
- *
- * see &lt;linux_src&gt;/include/uapi/linux/inet_diag.h
- *
- * struct inet_diag_sockid {
- *        __be16    idiag_sport;
- *        __be16    idiag_dport;
- *        __be32    idiag_src[4];
- *        __be32    idiag_dst[4];
- *        __u32     idiag_if;
- *        __u32     idiag_cookie[2];
- * #define INET_DIAG_NOCOOKIE (~0U)
- * };
- *
- * @hide
- */
-public class StructInetDiagSockId {
-    public static final int STRUCT_SIZE = 48;
-
-    private final InetSocketAddress mLocSocketAddress;
-    private final InetSocketAddress mRemSocketAddress;
-    private final byte[] INET_DIAG_NOCOOKIE = new byte[]{
-            (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
-            (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff};
-    private final byte[] IPV4_PADDING = new byte[] {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-
-    public StructInetDiagSockId(InetSocketAddress loc, InetSocketAddress rem) {
-        mLocSocketAddress = loc;
-        mRemSocketAddress = rem;
-    }
-
-    public void pack(ByteBuffer byteBuffer) {
-        byteBuffer.order(BIG_ENDIAN);
-        byteBuffer.putShort((short) mLocSocketAddress.getPort());
-        byteBuffer.putShort((short) mRemSocketAddress.getPort());
-        byteBuffer.put(mLocSocketAddress.getAddress().getAddress());
-        if (mLocSocketAddress.getAddress() instanceof Inet4Address) {
-            byteBuffer.put(IPV4_PADDING);
-        }
-        byteBuffer.put(mRemSocketAddress.getAddress().getAddress());
-        if (mRemSocketAddress.getAddress() instanceof Inet4Address) {
-            byteBuffer.put(IPV4_PADDING);
-        }
-        byteBuffer.order(ByteOrder.nativeOrder());
-        byteBuffer.putInt(0);
-        byteBuffer.put(INET_DIAG_NOCOOKIE);
-    }
-
-    @Override
-    public String toString() {
-        return "StructInetDiagSockId{ "
-                + "idiag_sport{" + mLocSocketAddress.getPort() + "}, "
-                + "idiag_dport{" + mRemSocketAddress.getPort() + "}, "
-                + "idiag_src{" + mLocSocketAddress.getAddress().getHostAddress() + "}, "
-                + "idiag_dst{" + mRemSocketAddress.getAddress().getHostAddress() + "}, "
-                + "idiag_if{" + 0 + "} "
-                + "idiag_cookie{INET_DIAG_NOCOOKIE}"
-                + "}";
-    }
-}
diff --git a/services/net/java/android/net/netlink/StructNdMsg.java b/services/net/java/android/net/netlink/StructNdMsg.java
deleted file mode 100644
index e34ec39..0000000
--- a/services/net/java/android/net/netlink/StructNdMsg.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * 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.
- */
-
-package android.net.netlink;
-
-import android.net.netlink.NetlinkConstants;
-import android.system.OsConstants;
-import java.nio.ByteBuffer;
-
-
-/**
- * struct ndmsg
- *
- * see: &lt;linux_src&gt;/include/uapi/linux/neighbour.h
- *
- * @hide
- */
-public class StructNdMsg {
-    // Already aligned.
-    public static final int STRUCT_SIZE = 12;
-
-    // Neighbor Cache Entry States
-    public static final short NUD_NONE        = 0x00;
-    public static final short NUD_INCOMPLETE  = 0x01;
-    public static final short NUD_REACHABLE   = 0x02;
-    public static final short NUD_STALE       = 0x04;
-    public static final short NUD_DELAY       = 0x08;
-    public static final short NUD_PROBE       = 0x10;
-    public static final short NUD_FAILED      = 0x20;
-    public static final short NUD_NOARP       = 0x40;
-    public static final short NUD_PERMANENT   = 0x80;
-
-    public static String stringForNudState(short nudState) {
-        switch (nudState) {
-            case NUD_NONE: return "NUD_NONE";
-            case NUD_INCOMPLETE: return "NUD_INCOMPLETE";
-            case NUD_REACHABLE: return "NUD_REACHABLE";
-            case NUD_STALE: return "NUD_STALE";
-            case NUD_DELAY: return "NUD_DELAY";
-            case NUD_PROBE: return "NUD_PROBE";
-            case NUD_FAILED: return "NUD_FAILED";
-            case NUD_NOARP: return "NUD_NOARP";
-            case NUD_PERMANENT: return "NUD_PERMANENT";
-            default:
-                return "unknown NUD state: " + String.valueOf(nudState);
-        }
-    }
-
-    public static boolean isNudStateConnected(short nudState) {
-        return ((nudState & (NUD_PERMANENT|NUD_NOARP|NUD_REACHABLE)) != 0);
-    }
-
-    public static boolean isNudStateValid(short nudState) {
-        return (isNudStateConnected(nudState) ||
-                ((nudState & (NUD_PROBE|NUD_STALE|NUD_DELAY)) != 0));
-    }
-
-    // Neighbor Cache Entry Flags
-    public static byte NTF_USE       = (byte) 0x01;
-    public static byte NTF_SELF      = (byte) 0x02;
-    public static byte NTF_MASTER    = (byte) 0x04;
-    public static byte NTF_PROXY     = (byte) 0x08;
-    public static byte NTF_ROUTER    = (byte) 0x80;
-
-    public static String stringForNudFlags(byte flags) {
-        final StringBuilder sb = new StringBuilder();
-        if ((flags & NTF_USE) != 0) {
-            sb.append("NTF_USE");
-        }
-        if ((flags & NTF_SELF) != 0) {
-            if (sb.length() > 0) { sb.append("|"); }
-            sb.append("NTF_SELF");
-        }
-        if ((flags & NTF_MASTER) != 0) {
-            if (sb.length() > 0) { sb.append("|"); }
-            sb.append("NTF_MASTER");
-        }
-        if ((flags & NTF_PROXY) != 0) {
-            if (sb.length() > 0) { sb.append("|");
-        }
-            sb.append("NTF_PROXY"); }
-        if ((flags & NTF_ROUTER) != 0) {
-            if (sb.length() > 0) { sb.append("|"); }
-            sb.append("NTF_ROUTER");
-        }
-        return sb.toString();
-    }
-
-    private static boolean hasAvailableSpace(ByteBuffer byteBuffer) {
-        return byteBuffer != null && byteBuffer.remaining() >= STRUCT_SIZE;
-    }
-
-    public static StructNdMsg parse(ByteBuffer byteBuffer) {
-        if (!hasAvailableSpace(byteBuffer)) { return null; }
-
-        // The ByteOrder must have already been set by the caller.  In most
-        // cases ByteOrder.nativeOrder() is correct, with the possible
-        // exception of usage within unittests.
-        final StructNdMsg struct = new StructNdMsg();
-        struct.ndm_family = byteBuffer.get();
-        final byte pad1 = byteBuffer.get();
-        final short pad2 = byteBuffer.getShort();
-        struct.ndm_ifindex = byteBuffer.getInt();
-        struct.ndm_state = byteBuffer.getShort();
-        struct.ndm_flags = byteBuffer.get();
-        struct.ndm_type = byteBuffer.get();
-        return struct;
-    }
-
-    public byte ndm_family;
-    public int ndm_ifindex;
-    public short ndm_state;
-    public byte ndm_flags;
-    public byte ndm_type;
-
-    public StructNdMsg() {
-        ndm_family = (byte) OsConstants.AF_UNSPEC;
-    }
-
-    public void pack(ByteBuffer byteBuffer) {
-        // The ByteOrder must have already been set by the caller.  In most
-        // cases ByteOrder.nativeOrder() is correct, with the exception
-        // of usage within unittests.
-        byteBuffer.put(ndm_family);
-        byteBuffer.put((byte) 0);         // pad1
-        byteBuffer.putShort((short) 0);   // pad2
-        byteBuffer.putInt(ndm_ifindex);
-        byteBuffer.putShort(ndm_state);
-        byteBuffer.put(ndm_flags);
-        byteBuffer.put(ndm_type);
-    }
-
-    public boolean nudConnected() {
-        return isNudStateConnected(ndm_state);
-    }
-
-    public boolean nudValid() {
-        return isNudStateValid(ndm_state);
-    }
-
-    @Override
-    public String toString() {
-        final String stateStr = "" + ndm_state + " (" + stringForNudState(ndm_state) + ")";
-        final String flagsStr = "" + ndm_flags + " (" + stringForNudFlags(ndm_flags) + ")";
-        return "StructNdMsg{ "
-                + "family{" + NetlinkConstants.stringForAddressFamily((int) ndm_family) + "}, "
-                + "ifindex{" + ndm_ifindex + "}, "
-                + "state{" + stateStr + "}, "
-                + "flags{" + flagsStr + "}, "
-                + "type{" + ndm_type + "} "
-                + "}";
-    }
-}
diff --git a/services/net/java/android/net/netlink/StructNdaCacheInfo.java b/services/net/java/android/net/netlink/StructNdaCacheInfo.java
deleted file mode 100644
index 16cf563..0000000
--- a/services/net/java/android/net/netlink/StructNdaCacheInfo.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * 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.
- */
-
-package android.net.netlink;
-
-import android.system.Os;
-import android.system.OsConstants;
-
-import java.nio.ByteBuffer;
-
-
-/**
- * struct nda_cacheinfo
- *
- * see: &lt;linux_src&gt;/include/uapi/linux/neighbour.h
- *
- * @hide
- */
-public class StructNdaCacheInfo {
-    // Already aligned.
-    public static final int STRUCT_SIZE = 16;
-
-    private static boolean hasAvailableSpace(ByteBuffer byteBuffer) {
-        return byteBuffer != null && byteBuffer.remaining() >= STRUCT_SIZE;
-    }
-
-    public static StructNdaCacheInfo parse(ByteBuffer byteBuffer) {
-        if (!hasAvailableSpace(byteBuffer)) { return null; }
-
-        // The ByteOrder must have already been set by the caller.  In most
-        // cases ByteOrder.nativeOrder() is correct, with the possible
-        // exception of usage within unittests.
-        final StructNdaCacheInfo struct = new StructNdaCacheInfo();
-        struct.ndm_used = byteBuffer.getInt();
-        struct.ndm_confirmed = byteBuffer.getInt();
-        struct.ndm_updated = byteBuffer.getInt();
-        struct.ndm_refcnt = byteBuffer.getInt();
-        return struct;
-    }
-
-    // TODO: investigate whether this can change during device runtime and
-    // decide what (if anything) should be done about that.
-    private static final long CLOCK_TICKS_PER_SECOND = Os.sysconf(OsConstants._SC_CLK_TCK);
-
-    private static long ticksToMilliSeconds(int intClockTicks) {
-        final long longClockTicks = (long) intClockTicks & 0xffffffff;
-        return (longClockTicks * 1000) / CLOCK_TICKS_PER_SECOND;
-    }
-
-    /**
-     * Explanatory notes, for reference.
-     *
-     * Before being returned to user space, the neighbor entry times are
-     * converted to clock_t's like so:
-     *
-     *     ndm_used      = jiffies_to_clock_t(now - neigh->used);
-     *     ndm_confirmed = jiffies_to_clock_t(now - neigh->confirmed);
-     *     ndm_updated   = jiffies_to_clock_t(now - neigh->updated);
-     *
-     * meaning that these values are expressed as "clock ticks ago".  To
-     * convert these clock ticks to seconds divide by sysconf(_SC_CLK_TCK).
-     * When _SC_CLK_TCK is 100, for example, the ndm_* times are expressed
-     * in centiseconds.
-     *
-     * These values are unsigned, but fortunately being expressed as "some
-     * clock ticks ago", these values are typically very small (and 
-     * 2^31 centiseconds = 248 days).
-     *
-     * By observation, it appears that:
-     *     ndm_used: the last time ARP/ND took place for this neighbor
-     *     ndm_confirmed: the last time ARP/ND succeeded for this neighbor OR
-     *                    higher layer confirmation (TCP or MSG_CONFIRM)
-     *                    was received
-     *     ndm_updated: the time when the current NUD state was entered
-     */
-    public int ndm_used;
-    public int ndm_confirmed;
-    public int ndm_updated;
-    public int ndm_refcnt;
-
-    public StructNdaCacheInfo() {}
-
-    public long lastUsed() {
-        return ticksToMilliSeconds(ndm_used);
-    }
-
-    public long lastConfirmed() {
-        return ticksToMilliSeconds(ndm_confirmed);
-    }
-
-    public long lastUpdated() {
-        return ticksToMilliSeconds(ndm_updated);
-    }
-
-    @Override
-    public String toString() {
-        return "NdaCacheInfo{ "
-                + "ndm_used{" + lastUsed() + "}, "
-                + "ndm_confirmed{" + lastConfirmed() + "}, "
-                + "ndm_updated{" + lastUpdated() + "}, "
-                + "ndm_refcnt{" + ndm_refcnt + "} "
-                + "}";
-    }
-}
diff --git a/services/net/java/android/net/netlink/StructNfGenMsg.java b/services/net/java/android/net/netlink/StructNfGenMsg.java
deleted file mode 100644
index 8155977..0000000
--- a/services/net/java/android/net/netlink/StructNfGenMsg.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.
- */
-
-package android.net.netlink;
-
-import java.nio.ByteBuffer;
-
-
-/**
- * struct nfgenmsg
- *
- * see &lt;linux_src&gt;/include/uapi/linux/netfilter/nfnetlink.h
- *
- * @hide
- */
-public class StructNfGenMsg {
-    public static final int STRUCT_SIZE = 2 + Short.BYTES;
-
-    public static final int NFNETLINK_V0 = 0;
-
-    final public byte nfgen_family;
-    final public byte version;
-    final public short res_id;  // N.B.: this is big endian in the kernel
-
-    public StructNfGenMsg(byte family) {
-        nfgen_family = family;
-        version = (byte) NFNETLINK_V0;
-        res_id = (short) 0;
-    }
-
-    public void pack(ByteBuffer byteBuffer) {
-        byteBuffer.put(nfgen_family);
-        byteBuffer.put(version);
-        byteBuffer.putShort(res_id);
-    }
-}
diff --git a/services/net/java/android/net/netlink/StructNlAttr.java b/services/net/java/android/net/netlink/StructNlAttr.java
deleted file mode 100644
index 28a4e88..0000000
--- a/services/net/java/android/net/netlink/StructNlAttr.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * 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.
- */
-
-package android.net.netlink;
-
-import android.net.netlink.NetlinkConstants;
-
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.nio.ByteOrder;
-import java.nio.ByteBuffer;
-
-
-/**
- * struct nlattr
- *
- * see: &lt;linux_src&gt;/include/uapi/linux/netlink.h
- *
- * @hide
- */
-public class StructNlAttr {
-    // Already aligned.
-    public static final int NLA_HEADERLEN  = 4;
-    public static final int NLA_F_NESTED   = (1 << 15);
-
-    public static short makeNestedType(short type) {
-        return (short) (type | NLA_F_NESTED);
-    }
-
-    // Return a (length, type) object only, without consuming any bytes in
-    // |byteBuffer| and without copying or interpreting any value bytes.
-    // This is used for scanning over a packed set of struct nlattr's,
-    // looking for instances of a particular type.
-    public static StructNlAttr peek(ByteBuffer byteBuffer) {
-        if (byteBuffer == null || byteBuffer.remaining() < NLA_HEADERLEN) {
-            return null;
-        }
-        final int baseOffset = byteBuffer.position();
-
-        // Assume the byte order of the buffer is the expected byte order of the value.
-        final StructNlAttr struct = new StructNlAttr(byteBuffer.order());
-        // The byte order of nla_len and nla_type is always native.
-        final ByteOrder originalOrder = byteBuffer.order();
-        byteBuffer.order(ByteOrder.nativeOrder());
-        try {
-            struct.nla_len = byteBuffer.getShort();
-            struct.nla_type = byteBuffer.getShort();
-        } finally {
-            byteBuffer.order(originalOrder);
-        }
-
-        byteBuffer.position(baseOffset);
-        if (struct.nla_len < NLA_HEADERLEN) {
-            // Malformed.
-            return null;
-        }
-        return struct;
-    }
-
-    public static StructNlAttr parse(ByteBuffer byteBuffer) {
-        final StructNlAttr struct = peek(byteBuffer);
-        if (struct == null || byteBuffer.remaining() < struct.getAlignedLength()) {
-            return null;
-        }
-
-        final int baseOffset = byteBuffer.position();
-        byteBuffer.position(baseOffset + NLA_HEADERLEN);
-
-        int valueLen = ((int) struct.nla_len) & 0xffff;
-        valueLen -= NLA_HEADERLEN;
-        if (valueLen > 0) {
-            struct.nla_value = new byte[valueLen];
-            byteBuffer.get(struct.nla_value, 0, valueLen);
-            byteBuffer.position(baseOffset + struct.getAlignedLength());
-        }
-        return struct;
-    }
-
-    public short nla_len = (short) NLA_HEADERLEN;
-    public short nla_type;
-    public byte[] nla_value;
-
-    // The byte order used to read/write the value member. Netlink length and
-    // type members are always read/written in native order.
-    private ByteOrder mByteOrder = ByteOrder.nativeOrder();
-
-    public StructNlAttr() {}
-
-    public StructNlAttr(ByteOrder byteOrder) {
-        mByteOrder = byteOrder;
-    }
-
-    public StructNlAttr(short type, byte value) {
-        nla_type = type;
-        setValue(new byte[1]);
-        nla_value[0] = value;
-    }
-
-    public StructNlAttr(short type, short value) {
-        this(type, value, ByteOrder.nativeOrder());
-    }
-
-    public StructNlAttr(short type, short value, ByteOrder order) {
-        this(order);
-        nla_type = type;
-        setValue(new byte[Short.BYTES]);
-        getValueAsByteBuffer().putShort(value);
-    }
-
-    public StructNlAttr(short type, int value) {
-        this(type, value, ByteOrder.nativeOrder());
-    }
-
-    public StructNlAttr(short type, int value, ByteOrder order) {
-        this(order);
-        nla_type = type;
-        setValue(new byte[Integer.BYTES]);
-        getValueAsByteBuffer().putInt(value);
-    }
-
-    public StructNlAttr(short type, InetAddress ip) {
-        nla_type = type;
-        setValue(ip.getAddress());
-    }
-
-    public StructNlAttr(short type, StructNlAttr... nested) {
-        this();
-        nla_type = makeNestedType(type);
-
-        int payloadLength = 0;
-        for (StructNlAttr nla : nested) payloadLength += nla.getAlignedLength();
-        setValue(new byte[payloadLength]);
-
-        final ByteBuffer buf = getValueAsByteBuffer();
-        for (StructNlAttr nla : nested) {
-            nla.pack(buf);
-        }
-    }
-
-    public int getAlignedLength() {
-        return NetlinkConstants.alignedLengthOf(nla_len);
-    }
-
-    public ByteBuffer getValueAsByteBuffer() {
-        if (nla_value == null) { return null; }
-        final ByteBuffer byteBuffer = ByteBuffer.wrap(nla_value);
-        byteBuffer.order(mByteOrder);
-        return byteBuffer;
-    }
-
-    public int getValueAsInt(int defaultValue) {
-        final ByteBuffer byteBuffer = getValueAsByteBuffer();
-        if (byteBuffer == null || byteBuffer.remaining() != Integer.BYTES) {
-            return defaultValue;
-        }
-        return getValueAsByteBuffer().getInt();
-    }
-
-    public InetAddress getValueAsInetAddress() {
-        if (nla_value == null) { return null; }
-
-        try {
-            return InetAddress.getByAddress(nla_value);
-        } catch (UnknownHostException ignored) {
-            return null;
-        }
-    }
-
-    public void pack(ByteBuffer byteBuffer) {
-        final ByteOrder originalOrder = byteBuffer.order();
-        final int originalPosition = byteBuffer.position();
-
-        byteBuffer.order(ByteOrder.nativeOrder());
-        try {
-            byteBuffer.putShort(nla_len);
-            byteBuffer.putShort(nla_type);
-            if (nla_value != null) byteBuffer.put(nla_value);
-        } finally {
-            byteBuffer.order(originalOrder);
-        }
-        byteBuffer.position(originalPosition + getAlignedLength());
-    }
-
-    private void setValue(byte[] value) {
-        nla_value = value;
-        nla_len = (short) (NLA_HEADERLEN + ((nla_value != null) ? nla_value.length : 0));
-    }
-
-    @Override
-    public String toString() {
-        return "StructNlAttr{ "
-                + "nla_len{" + nla_len + "}, "
-                + "nla_type{" + nla_type + "}, "
-                + "nla_value{" + NetlinkConstants.hexify(nla_value) + "}, "
-                + "}";
-    }
-}
diff --git a/services/net/java/android/net/netlink/StructNlMsgErr.java b/services/net/java/android/net/netlink/StructNlMsgErr.java
deleted file mode 100644
index 6fcc6e6..0000000
--- a/services/net/java/android/net/netlink/StructNlMsgErr.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * 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.
- */
-
-package android.net.netlink;
-
-import android.net.netlink.NetlinkConstants;
-import android.net.netlink.StructNlMsgHdr;
-
-import java.nio.ByteBuffer;
-
-
-/**
- * struct nlmsgerr
- *
- * see &lt;linux_src&gt;/include/uapi/linux/netlink.h
- *
- * @hide
- */
-public class StructNlMsgErr {
-    public static final int STRUCT_SIZE = Integer.BYTES + StructNlMsgHdr.STRUCT_SIZE;
-
-    public static boolean hasAvailableSpace(ByteBuffer byteBuffer) {
-        return byteBuffer != null && byteBuffer.remaining() >= STRUCT_SIZE;
-    }
-
-    public static StructNlMsgErr parse(ByteBuffer byteBuffer) {
-        if (!hasAvailableSpace(byteBuffer)) { return null; }
-
-        // The ByteOrder must have already been set by the caller.  In most
-        // cases ByteOrder.nativeOrder() is correct, with the exception
-        // of usage within unittests.
-        final StructNlMsgErr struct = new StructNlMsgErr();
-        struct.error = byteBuffer.getInt();
-        struct.msg = StructNlMsgHdr.parse(byteBuffer);
-        return struct;
-    }
-
-    public int error;
-    public StructNlMsgHdr msg;
-
-    public void pack(ByteBuffer byteBuffer) {
-        // The ByteOrder must have already been set by the caller.  In most
-        // cases ByteOrder.nativeOrder() is correct, with the possible
-        // exception of usage within unittests.
-        byteBuffer.putInt(error);
-        if (msg != null) {
-            msg.pack(byteBuffer);
-        }
-    }
-
-    @Override
-    public String toString() {
-        return "StructNlMsgErr{ "
-                + "error{" + error + "}, "
-                + "msg{" + (msg == null ? "" : msg.toString()) + "} "
-                + "}";
-    }
-}
diff --git a/services/net/java/android/net/netlink/StructNlMsgHdr.java b/services/net/java/android/net/netlink/StructNlMsgHdr.java
deleted file mode 100644
index 98ab5e7..0000000
--- a/services/net/java/android/net/netlink/StructNlMsgHdr.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * 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.
- */
-
-package android.net.netlink;
-
-import android.net.netlink.NetlinkConstants;
-import java.nio.ByteBuffer;
-
-
-/**
- * struct nlmsghdr
- *
- * see &lt;linux_src&gt;/include/uapi/linux/netlink.h
- *
- * @hide
- */
-public class StructNlMsgHdr {
-    // Already aligned.
-    public static final int STRUCT_SIZE = 16;
-
-    public static final short NLM_F_REQUEST = 0x0001;
-    public static final short NLM_F_MULTI   = 0x0002;
-    public static final short NLM_F_ACK     = 0x0004;
-    public static final short NLM_F_ECHO    = 0x0008;
-    // Flags for a GET request.
-    public static final short NLM_F_ROOT    = 0x0100;
-    public static final short NLM_F_MATCH   = 0x0200;
-    public static final short NLM_F_DUMP    = NLM_F_ROOT|NLM_F_MATCH;
-    // Flags for a NEW request.
-    public static final short NLM_F_REPLACE   = 0x100;
-    public static final short NLM_F_EXCL      = 0x200;
-    public static final short NLM_F_CREATE    = 0x400;
-    public static final short NLM_F_APPEND    = 0x800;
-
-
-    public static String stringForNlMsgFlags(short flags) {
-        final StringBuilder sb = new StringBuilder();
-        if ((flags & NLM_F_REQUEST) != 0) {
-            sb.append("NLM_F_REQUEST");
-        }
-        if ((flags & NLM_F_MULTI) != 0) {
-            if (sb.length() > 0) { sb.append("|"); }
-            sb.append("NLM_F_MULTI");
-        }
-        if ((flags & NLM_F_ACK) != 0) {
-            if (sb.length() > 0) { sb.append("|"); }
-            sb.append("NLM_F_ACK");
-        }
-        if ((flags & NLM_F_ECHO) != 0) {
-            if (sb.length() > 0) { sb.append("|"); }
-            sb.append("NLM_F_ECHO");
-        }
-        if ((flags & NLM_F_ROOT) != 0) {
-            if (sb.length() > 0) { sb.append("|"); }
-            sb.append("NLM_F_ROOT");
-        }
-        if ((flags & NLM_F_MATCH) != 0) {
-            if (sb.length() > 0) { sb.append("|"); }
-            sb.append("NLM_F_MATCH");
-        }
-        return sb.toString();
-    }
-
-    public static boolean hasAvailableSpace(ByteBuffer byteBuffer) {
-        return byteBuffer != null && byteBuffer.remaining() >= STRUCT_SIZE;
-    }
-
-    public static StructNlMsgHdr parse(ByteBuffer byteBuffer) {
-        if (!hasAvailableSpace(byteBuffer)) { return null; }
-
-        // The ByteOrder must have already been set by the caller.  In most
-        // cases ByteOrder.nativeOrder() is correct, with the exception
-        // of usage within unittests.
-        final StructNlMsgHdr struct = new StructNlMsgHdr();
-        struct.nlmsg_len = byteBuffer.getInt();
-        struct.nlmsg_type = byteBuffer.getShort();
-        struct.nlmsg_flags = byteBuffer.getShort();
-        struct.nlmsg_seq = byteBuffer.getInt();
-        struct.nlmsg_pid = byteBuffer.getInt();
-
-        if (struct.nlmsg_len < STRUCT_SIZE) {
-            // Malformed.
-            return null;
-        }
-        return struct;
-    }
-
-    public int nlmsg_len;
-    public short nlmsg_type;
-    public short nlmsg_flags;
-    public int nlmsg_seq;
-    public int nlmsg_pid;
-
-    public StructNlMsgHdr() {
-        nlmsg_len = 0;
-        nlmsg_type = 0;
-        nlmsg_flags = 0;
-        nlmsg_seq = 0;
-        nlmsg_pid = 0;
-    }
-
-    public void pack(ByteBuffer byteBuffer) {
-        // The ByteOrder must have already been set by the caller.  In most
-        // cases ByteOrder.nativeOrder() is correct, with the possible
-        // exception of usage within unittests.
-        byteBuffer.putInt(nlmsg_len);
-        byteBuffer.putShort(nlmsg_type);
-        byteBuffer.putShort(nlmsg_flags);
-        byteBuffer.putInt(nlmsg_seq);
-        byteBuffer.putInt(nlmsg_pid);
-    }
-
-    @Override
-    public String toString() {
-        final String typeStr = "" + nlmsg_type
-                + "(" + NetlinkConstants.stringForNlMsgType(nlmsg_type) + ")";
-        final String flagsStr = "" + nlmsg_flags
-                + "(" + stringForNlMsgFlags(nlmsg_flags) + ")";
-        return "StructNlMsgHdr{ "
-                + "nlmsg_len{" + nlmsg_len + "}, "
-                + "nlmsg_type{" + typeStr + "}, "
-                + "nlmsg_flags{" + flagsStr + ")}, "
-                + "nlmsg_seq{" + nlmsg_seq + "}, "
-                + "nlmsg_pid{" + nlmsg_pid + "} "
-                + "}";
-    }
-}
diff --git a/services/net/java/android/net/shared/InitialConfiguration.java b/services/net/java/android/net/shared/InitialConfiguration.java
deleted file mode 100644
index 007c8ca9..0000000
--- a/services/net/java/android/net/shared/InitialConfiguration.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-package android.net.shared;
-
-import static android.net.shared.ParcelableUtil.fromParcelableArray;
-import static android.net.shared.ParcelableUtil.toParcelableArray;
-import static android.text.TextUtils.join;
-
-import android.net.InetAddresses;
-import android.net.InitialConfigurationParcelable;
-import android.net.IpPrefix;
-import android.net.LinkAddress;
-import android.net.RouteInfo;
-
-import java.net.Inet4Address;
-import java.net.InetAddress;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.function.Predicate;
-
-/** @hide */
-public class InitialConfiguration {
-    public final Set<LinkAddress> ipAddresses = new HashSet<>();
-    public final Set<IpPrefix> directlyConnectedRoutes = new HashSet<>();
-    public final Set<InetAddress> dnsServers = new HashSet<>();
-
-    private static final int RFC6177_MIN_PREFIX_LENGTH = 48;
-    private static final int RFC7421_PREFIX_LENGTH = 64;
-
-    public static final InetAddress INET6_ANY = InetAddresses.parseNumericAddress("::");
-
-    /**
-     * Create a InitialConfiguration that is a copy of the specified configuration.
-     */
-    public static InitialConfiguration copy(InitialConfiguration config) {
-        if (config == null) {
-            return null;
-        }
-        InitialConfiguration configCopy = new InitialConfiguration();
-        configCopy.ipAddresses.addAll(config.ipAddresses);
-        configCopy.directlyConnectedRoutes.addAll(config.directlyConnectedRoutes);
-        configCopy.dnsServers.addAll(config.dnsServers);
-        return configCopy;
-    }
-
-    @Override
-    public String toString() {
-        return String.format(
-                "InitialConfiguration(IPs: {%s}, prefixes: {%s}, DNS: {%s})",
-                join(", ", ipAddresses), join(", ", directlyConnectedRoutes),
-                join(", ", dnsServers));
-    }
-
-    /**
-     * Tests whether the contents of this IpConfiguration represent a valid configuration.
-     */
-    public boolean isValid() {
-        if (ipAddresses.isEmpty()) {
-            return false;
-        }
-
-        // For every IP address, there must be at least one prefix containing that address.
-        for (LinkAddress addr : ipAddresses) {
-            if (!any(directlyConnectedRoutes, (p) -> p.contains(addr.getAddress()))) {
-                return false;
-            }
-        }
-        // For every dns server, there must be at least one prefix containing that address.
-        for (InetAddress addr : dnsServers) {
-            if (!any(directlyConnectedRoutes, (p) -> p.contains(addr))) {
-                return false;
-            }
-        }
-        // All IPv6 LinkAddresses have an RFC7421-suitable prefix length
-        // (read: compliant with RFC4291#section2.5.4).
-        if (any(ipAddresses, not(InitialConfiguration::isPrefixLengthCompliant))) {
-            return false;
-        }
-        // If directlyConnectedRoutes contains an IPv6 default route
-        // then ipAddresses MUST contain at least one non-ULA GUA.
-        if (any(directlyConnectedRoutes, InitialConfiguration::isIPv6DefaultRoute)
-                && all(ipAddresses, not(InitialConfiguration::isIPv6GUA))) {
-            return false;
-        }
-        // The prefix length of routes in directlyConnectedRoutes be within reasonable
-        // bounds for IPv6: /48-/64 just as we’d accept in RIOs.
-        if (any(directlyConnectedRoutes, not(InitialConfiguration::isPrefixLengthCompliant))) {
-            return false;
-        }
-        // There no more than one IPv4 address
-        if (ipAddresses.stream().filter(InitialConfiguration::isIPv4).count() > 1) {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * @return true if the given list of addressess and routes satisfies provisioning for this
-     * InitialConfiguration. LinkAddresses and RouteInfo objects are not compared with equality
-     * because addresses and routes seen by Netlink will contain additional fields like flags,
-     * interfaces, and so on. If this InitialConfiguration has no IP address specified, the
-     * provisioning check always fails.
-     *
-     * If the given list of routes is null, only addresses are taken into considerations.
-     */
-    public boolean isProvisionedBy(List<LinkAddress> addresses, List<RouteInfo> routes) {
-        if (ipAddresses.isEmpty()) {
-            return false;
-        }
-
-        for (LinkAddress addr : ipAddresses) {
-            if (!any(addresses, (addrSeen) -> addr.isSameAddressAs(addrSeen))) {
-                return false;
-            }
-        }
-
-        if (routes != null) {
-            for (IpPrefix prefix : directlyConnectedRoutes) {
-                if (!any(routes, (routeSeen) -> isDirectlyConnectedRoute(routeSeen, prefix))) {
-                    return false;
-                }
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * Convert this configuration to a {@link InitialConfigurationParcelable}.
-     */
-    public InitialConfigurationParcelable toStableParcelable() {
-        final InitialConfigurationParcelable p = new InitialConfigurationParcelable();
-        p.ipAddresses = ipAddresses.toArray(new LinkAddress[0]);
-        p.directlyConnectedRoutes = directlyConnectedRoutes.toArray(new IpPrefix[0]);
-        p.dnsServers = toParcelableArray(
-                dnsServers, IpConfigurationParcelableUtil::parcelAddress, String.class);
-        return p;
-    }
-
-    /**
-     * Create an instance of {@link InitialConfiguration} based on the contents of the specified
-     * {@link InitialConfigurationParcelable}.
-     */
-    public static InitialConfiguration fromStableParcelable(InitialConfigurationParcelable p) {
-        if (p == null) return null;
-        final InitialConfiguration config = new InitialConfiguration();
-        config.ipAddresses.addAll(Arrays.asList(p.ipAddresses));
-        config.directlyConnectedRoutes.addAll(Arrays.asList(p.directlyConnectedRoutes));
-        config.dnsServers.addAll(
-                fromParcelableArray(p.dnsServers, IpConfigurationParcelableUtil::unparcelAddress));
-        return config;
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (!(obj instanceof InitialConfiguration)) return false;
-        final InitialConfiguration other = (InitialConfiguration) obj;
-        return ipAddresses.equals(other.ipAddresses)
-                && directlyConnectedRoutes.equals(other.directlyConnectedRoutes)
-                && dnsServers.equals(other.dnsServers);
-    }
-
-    private static boolean isDirectlyConnectedRoute(RouteInfo route, IpPrefix prefix) {
-        return !route.hasGateway() && prefix.equals(route.getDestination());
-    }
-
-    private static boolean isPrefixLengthCompliant(LinkAddress addr) {
-        return isIPv4(addr) || isCompliantIPv6PrefixLength(addr.getPrefixLength());
-    }
-
-    private static boolean isPrefixLengthCompliant(IpPrefix prefix) {
-        return isIPv4(prefix) || isCompliantIPv6PrefixLength(prefix.getPrefixLength());
-    }
-
-    private static boolean isCompliantIPv6PrefixLength(int prefixLength) {
-        return (RFC6177_MIN_PREFIX_LENGTH <= prefixLength)
-                && (prefixLength <= RFC7421_PREFIX_LENGTH);
-    }
-
-    private static boolean isIPv4(IpPrefix prefix) {
-        return prefix.getAddress() instanceof Inet4Address;
-    }
-
-    private static boolean isIPv4(LinkAddress addr) {
-        return addr.getAddress() instanceof Inet4Address;
-    }
-
-    private static boolean isIPv6DefaultRoute(IpPrefix prefix) {
-        return prefix.getAddress().equals(INET6_ANY);
-    }
-
-    private static boolean isIPv6GUA(LinkAddress addr) {
-        return addr.isIpv6() && addr.isGlobalPreferred();
-    }
-
-    // TODO: extract out into CollectionUtils.
-
-    /**
-     * Indicate whether any element of the specified iterable verifies the specified predicate.
-     */
-    public static <T> boolean any(Iterable<T> coll, Predicate<T> fn) {
-        for (T t : coll) {
-            if (fn.test(t)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Indicate whether all elements of the specified iterable verifies the specified predicate.
-     */
-    public static <T> boolean all(Iterable<T> coll, Predicate<T> fn) {
-        return !any(coll, not(fn));
-    }
-
-    /**
-     * Create a predicate that returns the opposite value of the specified predicate.
-     */
-    public static <T> Predicate<T> not(Predicate<T> fn) {
-        return (t) -> !fn.test(t);
-    }
-}
diff --git a/services/net/java/android/net/shared/IpConfigurationParcelableUtil.java b/services/net/java/android/net/shared/IpConfigurationParcelableUtil.java
deleted file mode 100644
index 172dc24..0000000
--- a/services/net/java/android/net/shared/IpConfigurationParcelableUtil.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-package android.net.shared;
-
-import android.annotation.Nullable;
-import android.net.DhcpResults;
-import android.net.DhcpResultsParcelable;
-import android.net.InetAddresses;
-
-import java.net.Inet4Address;
-import java.net.InetAddress;
-
-/**
- * Collection of utility methods to convert to and from stable AIDL parcelables for IpClient
- * configuration classes.
- * @hide
- */
-public final class IpConfigurationParcelableUtil {
-    /**
-     * Convert DhcpResults to a DhcpResultsParcelable.
-     */
-    public static DhcpResultsParcelable toStableParcelable(@Nullable DhcpResults results) {
-        if (results == null) return null;
-        final DhcpResultsParcelable p = new DhcpResultsParcelable();
-        p.baseConfiguration = results.toStaticIpConfiguration();
-        p.leaseDuration = results.leaseDuration;
-        p.mtu = results.mtu;
-        p.serverAddress = parcelAddress(results.serverAddress);
-        p.vendorInfo = results.vendorInfo;
-        p.serverHostName = results.serverHostName;
-        return p;
-    }
-
-    /**
-     * Convert a DhcpResultsParcelable to DhcpResults.
-     */
-    public static DhcpResults fromStableParcelable(@Nullable DhcpResultsParcelable p) {
-        if (p == null) return null;
-        final DhcpResults results = new DhcpResults(p.baseConfiguration);
-        results.leaseDuration = p.leaseDuration;
-        results.mtu = p.mtu;
-        results.serverAddress = (Inet4Address) unparcelAddress(p.serverAddress);
-        results.vendorInfo = p.vendorInfo;
-        results.serverHostName = p.serverHostName;
-        return results;
-    }
-
-    /**
-     * Convert InetAddress to String.
-     * TODO: have an InetAddressParcelable
-     */
-    public static String parcelAddress(@Nullable InetAddress addr) {
-        if (addr == null) return null;
-        return addr.getHostAddress();
-    }
-
-    /**
-     * Convert String to InetAddress.
-     * TODO: have an InetAddressParcelable
-     */
-    public static InetAddress unparcelAddress(@Nullable String addr) {
-        if (addr == null) return null;
-        return InetAddresses.parseNumericAddress(addr);
-    }
-}
diff --git a/services/net/java/android/net/shared/LinkPropertiesParcelableUtil.java b/services/net/java/android/net/shared/LinkPropertiesParcelableUtil.java
deleted file mode 100644
index 1729da6..0000000
--- a/services/net/java/android/net/shared/LinkPropertiesParcelableUtil.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-package android.net.shared;
-
-import android.annotation.Nullable;
-import android.net.LinkProperties;
-import android.net.ProxyInfo;
-
-/**
- * Collection of utility methods to convert to and from stable AIDL parcelables for LinkProperties
- * and its attributes.
- * @hide
- */
-public final class LinkPropertiesParcelableUtil {
-    // Temporary methods to facilitate migrating clients away from LinkPropertiesParcelable
-    // TODO: remove the following methods after migrating clients.
-
-    /**
-     * @deprecated conversion to stable parcelable is no longer necessary.
-     */
-    @Deprecated
-    public static LinkProperties toStableParcelable(@Nullable LinkProperties lp) {
-        return lp;
-    }
-
-    /**
-     * @deprecated conversion to stable parcelable is no longer necessary.
-     */
-    @Deprecated
-    public static ProxyInfo toStableParcelable(@Nullable ProxyInfo info) {
-        return info;
-    }
-}
diff --git a/services/net/java/android/net/shared/NetworkMonitorUtils.java b/services/net/java/android/net/shared/NetworkMonitorUtils.java
deleted file mode 100644
index 46e9c73..0000000
--- a/services/net/java/android/net/shared/NetworkMonitorUtils.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2018 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.
- */
-
-package android.net.shared;
-
-import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET;
-import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED;
-import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_VPN;
-import static android.net.NetworkCapabilities.NET_CAPABILITY_TRUSTED;
-
-import android.net.NetworkCapabilities;
-
-/** @hide */
-public class NetworkMonitorUtils {
-
-    // Network conditions broadcast constants
-    public static final String ACTION_NETWORK_CONDITIONS_MEASURED =
-            "android.net.conn.NETWORK_CONDITIONS_MEASURED";
-    public static final String EXTRA_CONNECTIVITY_TYPE = "extra_connectivity_type";
-    public static final String EXTRA_NETWORK_TYPE = "extra_network_type";
-    public static final String EXTRA_RESPONSE_RECEIVED = "extra_response_received";
-    public static final String EXTRA_IS_CAPTIVE_PORTAL = "extra_is_captive_portal";
-    public static final String EXTRA_CELL_ID = "extra_cellid";
-    public static final String EXTRA_SSID = "extra_ssid";
-    public static final String EXTRA_BSSID = "extra_bssid";
-    /** real time since boot */
-    public static final String EXTRA_REQUEST_TIMESTAMP_MS = "extra_request_timestamp_ms";
-    public static final String EXTRA_RESPONSE_TIMESTAMP_MS = "extra_response_timestamp_ms";
-    public static final String PERMISSION_ACCESS_NETWORK_CONDITIONS =
-            "android.permission.ACCESS_NETWORK_CONDITIONS";
-
-    /**
-     * Return whether validation is required for private DNS in strict mode.
-     * @param nc Network capabilities of the network to test.
-     */
-    public static boolean isPrivateDnsValidationRequired(NetworkCapabilities nc) {
-        // TODO: Consider requiring validation for DUN networks.
-        return nc != null
-                && nc.hasCapability(NET_CAPABILITY_INTERNET)
-                && nc.hasCapability(NET_CAPABILITY_NOT_RESTRICTED)
-                && nc.hasCapability(NET_CAPABILITY_TRUSTED);
-    }
-
-    /**
-     * Return whether validation is required for a network.
-     * @param nc Network capabilities of the network to test.
-     */
-    public static boolean isValidationRequired(NetworkCapabilities nc) {
-        // TODO: Consider requiring validation for DUN networks.
-        return isPrivateDnsValidationRequired(nc) && nc.hasCapability(NET_CAPABILITY_NOT_VPN);
-    }
-}
diff --git a/services/net/java/android/net/shared/ParcelableUtil.java b/services/net/java/android/net/shared/ParcelableUtil.java
deleted file mode 100644
index 3f40300..0000000
--- a/services/net/java/android/net/shared/ParcelableUtil.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-package android.net.shared;
-
-import android.annotation.NonNull;
-
-import java.lang.reflect.Array;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.function.Function;
-
-/**
- * Utility methods to help convert to/from stable parcelables.
- * @hide
- */
-public final class ParcelableUtil {
-    // Below methods could be implemented easily with streams, but streams are frowned upon in
-    // frameworks code.
-
-    /**
-     * Convert a list of BaseType items to an array of ParcelableType items using the specified
-     * converter function.
-     */
-    public static <ParcelableType, BaseType> ParcelableType[] toParcelableArray(
-            @NonNull Collection<BaseType> base,
-            @NonNull Function<BaseType, ParcelableType> conv,
-            @NonNull Class<ParcelableType> parcelClass) {
-        final ParcelableType[] out = (ParcelableType[]) Array.newInstance(parcelClass, base.size());
-        int i = 0;
-        for (BaseType b : base) {
-            out[i] = conv.apply(b);
-            i++;
-        }
-        return out;
-    }
-
-    /**
-     * Convert an array of ParcelableType items to a list of BaseType items using the specified
-     * converter function.
-     */
-    public static <ParcelableType, BaseType> ArrayList<BaseType> fromParcelableArray(
-            @NonNull ParcelableType[] parceled, @NonNull Function<ParcelableType, BaseType> conv) {
-        final ArrayList<BaseType> out = new ArrayList<>(parceled.length);
-        for (ParcelableType t : parceled) {
-            out.add(conv.apply(t));
-        }
-        return out;
-    }
-}
diff --git a/services/net/java/android/net/shared/PrivateDnsConfig.java b/services/net/java/android/net/shared/PrivateDnsConfig.java
deleted file mode 100644
index c7dc530..0000000
--- a/services/net/java/android/net/shared/PrivateDnsConfig.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2018 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.
- */
-
-package android.net.shared;
-
-import static android.net.shared.ParcelableUtil.fromParcelableArray;
-import static android.net.shared.ParcelableUtil.toParcelableArray;
-
-import android.net.PrivateDnsConfigParcel;
-import android.text.TextUtils;
-
-import java.net.InetAddress;
-import java.util.Arrays;
-
-/** @hide */
-public class PrivateDnsConfig {
-    public final boolean useTls;
-    public final String hostname;
-    public final InetAddress[] ips;
-
-    public PrivateDnsConfig() {
-        this(false);
-    }
-
-    public PrivateDnsConfig(boolean useTls) {
-        this.useTls = useTls;
-        this.hostname = "";
-        this.ips = new InetAddress[0];
-    }
-
-    public PrivateDnsConfig(String hostname, InetAddress[] ips) {
-        this.useTls = !TextUtils.isEmpty(hostname);
-        this.hostname = useTls ? hostname : "";
-        this.ips = (ips != null) ? ips : new InetAddress[0];
-    }
-
-    public PrivateDnsConfig(PrivateDnsConfig cfg) {
-        useTls = cfg.useTls;
-        hostname = cfg.hostname;
-        ips = cfg.ips;
-    }
-
-    /**
-     * Indicates whether this is a strict mode private DNS configuration.
-     */
-    public boolean inStrictMode() {
-        return useTls && !TextUtils.isEmpty(hostname);
-    }
-
-    @Override
-    public String toString() {
-        return PrivateDnsConfig.class.getSimpleName()
-                + "{" + useTls + ":" + hostname + "/" + Arrays.toString(ips) + "}";
-    }
-
-    /**
-     * Create a stable AIDL-compatible parcel from the current instance.
-     */
-    public PrivateDnsConfigParcel toParcel() {
-        final PrivateDnsConfigParcel parcel = new PrivateDnsConfigParcel();
-        parcel.hostname = hostname;
-        parcel.ips = toParcelableArray(
-                Arrays.asList(ips), IpConfigurationParcelableUtil::parcelAddress, String.class);
-
-        return parcel;
-    }
-
-    /**
-     * Build a configuration from a stable AIDL-compatible parcel.
-     */
-    public static PrivateDnsConfig fromParcel(PrivateDnsConfigParcel parcel) {
-        InetAddress[] ips = new InetAddress[parcel.ips.length];
-        ips = fromParcelableArray(parcel.ips, IpConfigurationParcelableUtil::unparcelAddress)
-                .toArray(ips);
-        return new PrivateDnsConfig(parcel.hostname, ips);
-    }
-}
diff --git a/services/net/java/android/net/shared/ProvisioningConfiguration.java b/services/net/java/android/net/shared/ProvisioningConfiguration.java
deleted file mode 100644
index 6f9c294..0000000
--- a/services/net/java/android/net/shared/ProvisioningConfiguration.java
+++ /dev/null
@@ -1,312 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-package android.net.shared;
-
-import android.annotation.Nullable;
-import android.net.INetd;
-import android.net.Network;
-import android.net.ProvisioningConfigurationParcelable;
-import android.net.StaticIpConfiguration;
-import android.net.apf.ApfCapabilities;
-import android.net.ip.IIpClient;
-
-import java.util.Objects;
-import java.util.StringJoiner;
-
-/**
- * This class encapsulates parameters to be passed to
- * IpClient#startProvisioning(). A defensive copy is made by IpClient
- * and the values specified herein are in force until IpClient#stop()
- * is called.
- *
- * Example use:
- *
- *     final ProvisioningConfiguration config =
- *             new ProvisioningConfiguration.Builder()
- *                     .withPreDhcpAction()
- *                     .withProvisioningTimeoutMs(36 * 1000)
- *                     .build();
- *     mIpClient.startProvisioning(config.toStableParcelable());
- *     ...
- *     mIpClient.stop();
- *
- * The specified provisioning configuration will only be active until
- * IIpClient#stop() is called. Future calls to IIpClient#startProvisioning()
- * must specify the configuration again.
- * @hide
- */
-public class ProvisioningConfiguration {
-    // TODO: Delete this default timeout once those callers that care are
-    // fixed to pass in their preferred timeout.
-    //
-    // We pick 36 seconds so we can send DHCP requests at
-    //
-    //     t=0, t=2, t=6, t=14, t=30
-    //
-    // allowing for 10% jitter.
-    private static final int DEFAULT_TIMEOUT_MS = 36 * 1000;
-
-    /**
-     * Builder to create a {@link ProvisioningConfiguration}.
-     */
-    public static class Builder {
-        protected ProvisioningConfiguration mConfig = new ProvisioningConfiguration();
-
-        /**
-         * Specify that the configuration should not enable IPv4. It is enabled by default.
-         */
-        public Builder withoutIPv4() {
-            mConfig.mEnableIPv4 = false;
-            return this;
-        }
-
-        /**
-         * Specify that the configuration should not enable IPv6. It is enabled by default.
-         */
-        public Builder withoutIPv6() {
-            mConfig.mEnableIPv6 = false;
-            return this;
-        }
-
-        /**
-         * Specify that the configuration should not use a MultinetworkPolicyTracker. It is used
-         * by default.
-         */
-        public Builder withoutMultinetworkPolicyTracker() {
-            mConfig.mUsingMultinetworkPolicyTracker = false;
-            return this;
-        }
-
-        /**
-         * Specify that the configuration should not use a IpReachabilityMonitor. It is used by
-         * default.
-         */
-        public Builder withoutIpReachabilityMonitor() {
-            mConfig.mUsingIpReachabilityMonitor = false;
-            return this;
-        }
-
-        /**
-         * Identical to {@link #withPreDhcpAction(int)}, using a default timeout.
-         * @see #withPreDhcpAction(int)
-         */
-        public Builder withPreDhcpAction() {
-            mConfig.mRequestedPreDhcpActionMs = DEFAULT_TIMEOUT_MS;
-            return this;
-        }
-
-        /**
-         * Specify that {@link IpClientCallbacks#onPreDhcpAction()} should be called. Clients must
-         * call {@link IIpClient#completedPreDhcpAction()} when the callback called. This behavior
-         * is disabled by default.
-         * @param dhcpActionTimeoutMs Timeout for clients to call completedPreDhcpAction().
-         */
-        public Builder withPreDhcpAction(int dhcpActionTimeoutMs) {
-            mConfig.mRequestedPreDhcpActionMs = dhcpActionTimeoutMs;
-            return this;
-        }
-
-        /**
-         * Specify the initial provisioning configuration.
-         */
-        public Builder withInitialConfiguration(InitialConfiguration initialConfig) {
-            mConfig.mInitialConfig = initialConfig;
-            return this;
-        }
-
-        /**
-         * Specify a static configuration for provisioning.
-         */
-        public Builder withStaticConfiguration(StaticIpConfiguration staticConfig) {
-            mConfig.mStaticIpConfig = staticConfig;
-            return this;
-        }
-
-        /**
-         * Specify ApfCapabilities.
-         */
-        public Builder withApfCapabilities(ApfCapabilities apfCapabilities) {
-            mConfig.mApfCapabilities = apfCapabilities;
-            return this;
-        }
-
-        /**
-         * Specify the timeout to use for provisioning.
-         */
-        public Builder withProvisioningTimeoutMs(int timeoutMs) {
-            mConfig.mProvisioningTimeoutMs = timeoutMs;
-            return this;
-        }
-
-        /**
-         * Specify that IPv6 address generation should use a random MAC address.
-         */
-        public Builder withRandomMacAddress() {
-            mConfig.mIPv6AddrGenMode = INetd.IPV6_ADDR_GEN_MODE_EUI64;
-            return this;
-        }
-
-        /**
-         * Specify that IPv6 address generation should use a stable MAC address.
-         */
-        public Builder withStableMacAddress() {
-            mConfig.mIPv6AddrGenMode = INetd.IPV6_ADDR_GEN_MODE_STABLE_PRIVACY;
-            return this;
-        }
-
-        /**
-         * Specify the network to use for provisioning.
-         */
-        public Builder withNetwork(Network network) {
-            mConfig.mNetwork = network;
-            return this;
-        }
-
-        /**
-         * Specify the display name that the IpClient should use.
-         */
-        public Builder withDisplayName(String displayName) {
-            mConfig.mDisplayName = displayName;
-            return this;
-        }
-
-        /**
-         * Build the configuration using previously specified parameters.
-         */
-        public ProvisioningConfiguration build() {
-            return new ProvisioningConfiguration(mConfig);
-        }
-    }
-
-    public boolean mEnableIPv4 = true;
-    public boolean mEnableIPv6 = true;
-    public boolean mUsingMultinetworkPolicyTracker = true;
-    public boolean mUsingIpReachabilityMonitor = true;
-    public int mRequestedPreDhcpActionMs;
-    public InitialConfiguration mInitialConfig;
-    public StaticIpConfiguration mStaticIpConfig;
-    public ApfCapabilities mApfCapabilities;
-    public int mProvisioningTimeoutMs = DEFAULT_TIMEOUT_MS;
-    public int mIPv6AddrGenMode = INetd.IPV6_ADDR_GEN_MODE_STABLE_PRIVACY;
-    public Network mNetwork = null;
-    public String mDisplayName = null;
-
-    public ProvisioningConfiguration() {} // used by Builder
-
-    public ProvisioningConfiguration(ProvisioningConfiguration other) {
-        mEnableIPv4 = other.mEnableIPv4;
-        mEnableIPv6 = other.mEnableIPv6;
-        mUsingMultinetworkPolicyTracker = other.mUsingMultinetworkPolicyTracker;
-        mUsingIpReachabilityMonitor = other.mUsingIpReachabilityMonitor;
-        mRequestedPreDhcpActionMs = other.mRequestedPreDhcpActionMs;
-        mInitialConfig = InitialConfiguration.copy(other.mInitialConfig);
-        mStaticIpConfig = other.mStaticIpConfig == null
-                ? null
-                : new StaticIpConfiguration(other.mStaticIpConfig);
-        mApfCapabilities = other.mApfCapabilities;
-        mProvisioningTimeoutMs = other.mProvisioningTimeoutMs;
-        mIPv6AddrGenMode = other.mIPv6AddrGenMode;
-        mNetwork = other.mNetwork;
-        mDisplayName = other.mDisplayName;
-    }
-
-    /**
-     * Create a ProvisioningConfigurationParcelable from this ProvisioningConfiguration.
-     */
-    public ProvisioningConfigurationParcelable toStableParcelable() {
-        final ProvisioningConfigurationParcelable p = new ProvisioningConfigurationParcelable();
-        p.enableIPv4 = mEnableIPv4;
-        p.enableIPv6 = mEnableIPv6;
-        p.usingMultinetworkPolicyTracker = mUsingMultinetworkPolicyTracker;
-        p.usingIpReachabilityMonitor = mUsingIpReachabilityMonitor;
-        p.requestedPreDhcpActionMs = mRequestedPreDhcpActionMs;
-        p.initialConfig = mInitialConfig == null ? null : mInitialConfig.toStableParcelable();
-        p.staticIpConfig = mStaticIpConfig == null
-                ? null
-                : new StaticIpConfiguration(mStaticIpConfig);
-        p.apfCapabilities = mApfCapabilities; // ApfCapabilities is immutable
-        p.provisioningTimeoutMs = mProvisioningTimeoutMs;
-        p.ipv6AddrGenMode = mIPv6AddrGenMode;
-        p.network = mNetwork;
-        p.displayName = mDisplayName;
-        return p;
-    }
-
-    /**
-     * Create a ProvisioningConfiguration from a ProvisioningConfigurationParcelable.
-     */
-    public static ProvisioningConfiguration fromStableParcelable(
-            @Nullable ProvisioningConfigurationParcelable p) {
-        if (p == null) return null;
-        final ProvisioningConfiguration config = new ProvisioningConfiguration();
-        config.mEnableIPv4 = p.enableIPv4;
-        config.mEnableIPv6 = p.enableIPv6;
-        config.mUsingMultinetworkPolicyTracker = p.usingMultinetworkPolicyTracker;
-        config.mUsingIpReachabilityMonitor = p.usingIpReachabilityMonitor;
-        config.mRequestedPreDhcpActionMs = p.requestedPreDhcpActionMs;
-        config.mInitialConfig = InitialConfiguration.fromStableParcelable(p.initialConfig);
-        config.mStaticIpConfig = p.staticIpConfig == null
-                ? null
-                : new StaticIpConfiguration(p.staticIpConfig);
-        config.mApfCapabilities = p.apfCapabilities; // ApfCapabilities is immutable
-        config.mProvisioningTimeoutMs = p.provisioningTimeoutMs;
-        config.mIPv6AddrGenMode = p.ipv6AddrGenMode;
-        config.mNetwork = p.network;
-        config.mDisplayName = p.displayName;
-        return config;
-    }
-
-    @Override
-    public String toString() {
-        return new StringJoiner(", ", getClass().getSimpleName() + "{", "}")
-                .add("mEnableIPv4: " + mEnableIPv4)
-                .add("mEnableIPv6: " + mEnableIPv6)
-                .add("mUsingMultinetworkPolicyTracker: " + mUsingMultinetworkPolicyTracker)
-                .add("mUsingIpReachabilityMonitor: " + mUsingIpReachabilityMonitor)
-                .add("mRequestedPreDhcpActionMs: " + mRequestedPreDhcpActionMs)
-                .add("mInitialConfig: " + mInitialConfig)
-                .add("mStaticIpConfig: " + mStaticIpConfig)
-                .add("mApfCapabilities: " + mApfCapabilities)
-                .add("mProvisioningTimeoutMs: " + mProvisioningTimeoutMs)
-                .add("mIPv6AddrGenMode: " + mIPv6AddrGenMode)
-                .add("mNetwork: " + mNetwork)
-                .add("mDisplayName: " + mDisplayName)
-                .toString();
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (!(obj instanceof ProvisioningConfiguration)) return false;
-        final ProvisioningConfiguration other = (ProvisioningConfiguration) obj;
-        return mEnableIPv4 == other.mEnableIPv4
-                && mEnableIPv6 == other.mEnableIPv6
-                && mUsingMultinetworkPolicyTracker == other.mUsingMultinetworkPolicyTracker
-                && mUsingIpReachabilityMonitor == other.mUsingIpReachabilityMonitor
-                && mRequestedPreDhcpActionMs == other.mRequestedPreDhcpActionMs
-                && Objects.equals(mInitialConfig, other.mInitialConfig)
-                && Objects.equals(mStaticIpConfig, other.mStaticIpConfig)
-                && Objects.equals(mApfCapabilities, other.mApfCapabilities)
-                && mProvisioningTimeoutMs == other.mProvisioningTimeoutMs
-                && mIPv6AddrGenMode == other.mIPv6AddrGenMode
-                && Objects.equals(mNetwork, other.mNetwork)
-                && Objects.equals(mDisplayName, other.mDisplayName);
-    }
-
-    public boolean isValid() {
-        return (mInitialConfig == null) || mInitialConfig.isValid();
-    }
-}
diff --git a/services/net/java/android/net/util/InterfaceParams.java b/services/net/java/android/net/util/InterfaceParams.java
deleted file mode 100644
index f6bb873..0000000
--- a/services/net/java/android/net/util/InterfaceParams.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * 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.
- */
-
-package android.net.util;
-
-import static com.android.internal.util.Preconditions.checkArgument;
-
-import android.net.MacAddress;
-import android.text.TextUtils;
-
-import java.net.NetworkInterface;
-import java.net.SocketException;
-
-
-/**
- * Encapsulate the interface parameters common to IpClient/IpServer components.
- *
- * Basically all java.net.NetworkInterface methods throw Exceptions. IpClient
- * and IpServer (sub)components need most or all of this information at some
- * point during their lifecycles, so pass only this simplified object around
- * which can be created once when IpClient/IpServer are told to start.
- *
- * @hide
- */
-public class InterfaceParams {
-    public final String name;
-    public final int index;
-    public final MacAddress macAddr;
-    public final int defaultMtu;
-
-    // TODO: move the below to NetworkStackConstants when this class is moved to the NetworkStack.
-    private static final int ETHER_MTU = 1500;
-    private static final int IPV6_MIN_MTU = 1280;
-
-
-    public static InterfaceParams getByName(String name) {
-        final NetworkInterface netif = getNetworkInterfaceByName(name);
-        if (netif == null) return null;
-
-        // Not all interfaces have MAC addresses, e.g. rmnet_data0.
-        final MacAddress macAddr = getMacAddress(netif);
-
-        try {
-            return new InterfaceParams(name, netif.getIndex(), macAddr, netif.getMTU());
-        } catch (IllegalArgumentException|SocketException e) {
-            return null;
-        }
-    }
-
-    public InterfaceParams(String name, int index, MacAddress macAddr) {
-        this(name, index, macAddr, ETHER_MTU);
-    }
-
-    public InterfaceParams(String name, int index, MacAddress macAddr, int defaultMtu) {
-        checkArgument((!TextUtils.isEmpty(name)), "impossible interface name");
-        checkArgument((index > 0), "invalid interface index");
-        this.name = name;
-        this.index = index;
-        this.macAddr = (macAddr != null) ? macAddr : MacAddress.fromBytes(new byte[] {
-                0x02, 0x00, 0x00, 0x00, 0x00, 0x00 });
-        this.defaultMtu = (defaultMtu > IPV6_MIN_MTU) ? defaultMtu : IPV6_MIN_MTU;
-    }
-
-    @Override
-    public String toString() {
-        return String.format("%s/%d/%s/%d", name, index, macAddr, defaultMtu);
-    }
-
-    private static NetworkInterface getNetworkInterfaceByName(String name) {
-        try {
-            return NetworkInterface.getByName(name);
-        } catch (NullPointerException|SocketException e) {
-            return null;
-        }
-    }
-
-    private static MacAddress getMacAddress(NetworkInterface netif) {
-        try {
-            return MacAddress.fromBytes(netif.getHardwareAddress());
-        } catch (IllegalArgumentException|NullPointerException|SocketException e) {
-            return null;
-        }
-    }
-}
diff --git a/services/net/java/android/net/util/SharedLog.java b/services/net/java/android/net/util/SharedLog.java
deleted file mode 100644
index 2cdb2b0..0000000
--- a/services/net/java/android/net/util/SharedLog.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * 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.
- */
-
-package android.net.util;
-
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.text.TextUtils;
-import android.util.LocalLog;
-import android.util.Log;
-
-import java.io.FileDescriptor;
-import java.io.PrintWriter;
-import java.util.StringJoiner;
-
-
-/**
- * Class to centralize logging functionality for tethering.
- *
- * All access to class methods other than dump() must be on the same thread.
- *
- * TODO: this is a copy of SharedLog in the NetworkStack. Remove after Tethering is migrated.
- * @hide
- */
-public class SharedLog {
-    private static final int DEFAULT_MAX_RECORDS = 500;
-    private static final String COMPONENT_DELIMITER = ".";
-
-    private enum Category {
-        NONE,
-        ERROR,
-        MARK,
-        WARN,
-    };
-
-    private final LocalLog mLocalLog;
-    // The tag to use for output to the system log. This is not output to the
-    // LocalLog because that would be redundant.
-    private final String mTag;
-    // The component (or subcomponent) of a system that is sharing this log.
-    // This can grow in depth if components call forSubComponent() to obtain
-    // their SharedLog instance. The tag is not included in the component for
-    // brevity.
-    private final String mComponent;
-
-    public SharedLog(String tag) {
-        this(DEFAULT_MAX_RECORDS, tag);
-    }
-
-    public SharedLog(int maxRecords, String tag) {
-        this(new LocalLog(maxRecords), tag, tag);
-    }
-
-    private SharedLog(LocalLog localLog, String tag, String component) {
-        mLocalLog = localLog;
-        mTag = tag;
-        mComponent = component;
-    }
-
-    public String getTag() {
-        return mTag;
-    }
-
-    /**
-     * Create a SharedLog based on this log with an additional component prefix on each logged line.
-     */
-    public SharedLog forSubComponent(String component) {
-        if (!isRootLogInstance()) {
-            component = mComponent + COMPONENT_DELIMITER + component;
-        }
-        return new SharedLog(mLocalLog, mTag, component);
-    }
-
-    /**
-     * Dump the contents of this log.
-     *
-     * <p>This method may be called on any thread.
-     */
-    public void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
-        mLocalLog.readOnlyLocalLog().dump(fd, writer, args);
-    }
-
-    //////
-    // Methods that both log an entry and emit it to the system log.
-    //////
-
-    /**
-     * Log an error due to an exception. This does not include the exception stacktrace.
-     *
-     * <p>The log entry will be also added to the system log.
-     * @see #e(String, Throwable)
-     */
-    public void e(Exception e) {
-        Log.e(mTag, record(Category.ERROR, e.toString()));
-    }
-
-    /**
-     * Log an error message.
-     *
-     * <p>The log entry will be also added to the system log.
-     */
-    public void e(String msg) {
-        Log.e(mTag, record(Category.ERROR, msg));
-    }
-
-    /**
-     * Log an error due to an exception, with the exception stacktrace if provided.
-     *
-     * <p>The error and exception message appear in the shared log, but the stacktrace is only
-     * logged in general log output (logcat). The log entry will be also added to the system log.
-     */
-    public void e(@NonNull String msg, @Nullable Throwable exception) {
-        if (exception == null) {
-            e(msg);
-            return;
-        }
-        Log.e(mTag, record(Category.ERROR, msg + ": " + exception.getMessage()), exception);
-    }
-
-    /**
-     * Log an informational message.
-     *
-     * <p>The log entry will be also added to the system log.
-     */
-    public void i(String msg) {
-        Log.i(mTag, record(Category.NONE, msg));
-    }
-
-    /**
-     * Log a warning message.
-     *
-     * <p>The log entry will be also added to the system log.
-     */
-    public void w(String msg) {
-        Log.w(mTag, record(Category.WARN, msg));
-    }
-
-    //////
-    // Methods that only log an entry (and do NOT emit to the system log).
-    //////
-
-    /**
-     * Log a general message to be only included in the in-memory log.
-     *
-     * <p>The log entry will *not* be added to the system log.
-     */
-    public void log(String msg) {
-        record(Category.NONE, msg);
-    }
-
-    /**
-     * Log a general, formatted message to be only included in the in-memory log.
-     *
-     * <p>The log entry will *not* be added to the system log.
-     * @see String#format(String, Object...)
-     */
-    public void logf(String fmt, Object... args) {
-        log(String.format(fmt, args));
-    }
-
-    /**
-     * Log a message with MARK level.
-     *
-     * <p>The log entry will *not* be added to the system log.
-     */
-    public void mark(String msg) {
-        record(Category.MARK, msg);
-    }
-
-    private String record(Category category, String msg) {
-        final String entry = logLine(category, msg);
-        mLocalLog.log(entry);
-        return entry;
-    }
-
-    private String logLine(Category category, String msg) {
-        final StringJoiner sj = new StringJoiner(" ");
-        if (!isRootLogInstance()) sj.add("[" + mComponent + "]");
-        if (category != Category.NONE) sj.add(category.toString());
-        return sj.add(msg).toString();
-    }
-
-    // Check whether this SharedLog instance is nominally the top level in
-    // a potential hierarchy of shared logs (the root of a tree),
-    // or is a subcomponent within the hierarchy.
-    private boolean isRootLogInstance() {
-        return TextUtils.isEmpty(mComponent) || mComponent.equals(mTag);
-    }
-}
diff --git a/services/tests/servicestests/res/raw/apex_test.apex b/services/tests/servicestests/res/raw/apex_test.apex
new file mode 100644
index 0000000..19b1c5e
--- /dev/null
+++ b/services/tests/servicestests/res/raw/apex_test.apex
Binary files differ
diff --git a/services/tests/servicestests/src/com/android/server/DynamicSystemServiceTest.java b/services/tests/servicestests/src/com/android/server/DynamicSystemServiceTest.java
index 0605d9e..50437b4 100644
--- a/services/tests/servicestests/src/com/android/server/DynamicSystemServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/DynamicSystemServiceTest.java
@@ -36,7 +36,7 @@
     public void test1() {
         assertTrue("dynamic_system service available", mService != null);
         try {
-            mService.startInstallation("userdata", 8L << 30, false);
+            mService.startInstallation();
             fail("DynamicSystemService did not throw SecurityException as expected");
         } catch (SecurityException e) {
             // expected
diff --git a/services/tests/servicestests/src/com/android/server/NetworkScoreServiceTest.java b/services/tests/servicestests/src/com/android/server/NetworkScoreServiceTest.java
index e9e96c9..8fd8d04 100644
--- a/services/tests/servicestests/src/com/android/server/NetworkScoreServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/NetworkScoreServiceTest.java
@@ -56,6 +56,7 @@
 import android.net.wifi.ScanResult;
 import android.net.wifi.WifiConfiguration;
 import android.net.wifi.WifiInfo;
+import android.net.wifi.WifiManager;
 import android.net.wifi.WifiSsid;
 import android.os.Binder;
 import android.os.Handler;
@@ -719,7 +720,7 @@
 
     @Test
     public void testCurrentNetworkScoreCacheFilter_invalidWifiInfo_noneSsid() throws Exception {
-        when(mWifiInfo.getSSID()).thenReturn(WifiSsid.NONE);
+        when(mWifiInfo.getSSID()).thenReturn(WifiManager.UNKNOWN_SSID);
         NetworkScoreService.CurrentNetworkScoreCacheFilter cacheFilter =
                 new NetworkScoreService.CurrentNetworkScoreCacheFilter(() -> mWifiInfo);
 
@@ -793,7 +794,7 @@
         List<ScanResult> invalidScanResults = Lists.newArrayList(
                 new ScanResult(),
                 createScanResult("", SCORED_NETWORK.networkKey.wifiKey.bssid),
-                createScanResult(WifiSsid.NONE, SCORED_NETWORK.networkKey.wifiKey.bssid),
+                createScanResult(WifiManager.UNKNOWN_SSID, SCORED_NETWORK.networkKey.wifiKey.bssid),
                 createScanResult(SSID, null),
                 createScanResult(SSID, INVALID_BSSID)
         );
diff --git a/services/tests/servicestests/src/com/android/server/compat/PlatformCompatTest.java b/services/tests/servicestests/src/com/android/server/compat/PlatformCompatTest.java
new file mode 100644
index 0000000..c406876
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/compat/PlatformCompatTest.java
@@ -0,0 +1,272 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package com.android.server.compat;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.mockito.internal.verification.VerificationModeFactory.times;
+import static org.testng.Assert.assertThrows;
+
+import android.compat.Compatibility;
+import android.content.Context;
+import android.content.pm.PackageManager;
+
+import com.android.internal.compat.CompatibilityChangeConfig;
+
+import com.google.common.collect.ImmutableSet;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+
+@RunWith(MockitoJUnitRunner.class)
+public class PlatformCompatTest {
+    private static final String PACKAGE_NAME = "my.package";
+
+    @Mock
+    private Context mContext;
+    @Mock
+    private PackageManager mPackageManager;
+    @Mock
+    CompatChange.ChangeListener mListener1, mListener2;
+
+
+    @Before
+    public void setUp() throws Exception {
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
+        when(mPackageManager.getPackageUid(eq(PACKAGE_NAME), eq(0))).thenThrow(
+                new PackageManager.NameNotFoundException());
+        CompatConfig.get().clearChanges();
+    }
+
+    @Test
+    public void testRegisterListenerToSameIdThrows() {
+        PlatformCompat pc = new PlatformCompat(mContext);
+
+        // Registering a listener to change 1 is successful.
+        pc.registerListener(1, mListener1);
+        // Registering a listener to change 2 is successful.
+        pc.registerListener(2, mListener1);
+        // Trying to register another listener to change id 1 fails.
+        assertThrows(IllegalStateException.class, () -> pc.registerListener(1, mListener1));
+    }
+
+    @Test
+    public void testRegisterListenerReturn() {
+        PlatformCompat pc = new PlatformCompat(mContext);
+
+        pc.setOverrides(
+                new CompatibilityChangeConfig(
+                        new Compatibility.ChangeConfig(ImmutableSet.of(1L), ImmutableSet.of())),
+                PACKAGE_NAME);
+
+        // Change id 1 is known (added in setOverrides).
+        assertThat(pc.registerListener(1, mListener1)).isTrue();
+        // Change 2 is unknown.
+        assertThat(pc.registerListener(2, mListener1)).isFalse();
+    }
+
+    @Test
+    public void testListenerCalledOnSetOverrides() {
+        PlatformCompat pc = new PlatformCompat(mContext);
+
+        pc.registerListener(1, mListener1);
+        pc.registerListener(2, mListener1);
+
+        pc.setOverrides(
+                new CompatibilityChangeConfig(
+                        new Compatibility.ChangeConfig(ImmutableSet.of(1L), ImmutableSet.of(2L))),
+                PACKAGE_NAME);
+
+        verify(mListener1, times(2)).onCompatChange(PACKAGE_NAME);
+    }
+
+    @Test
+    public void testListenerNotCalledOnWrongPackage() {
+        PlatformCompat pc = new PlatformCompat(mContext);
+
+        pc.registerListener(1, mListener1);
+        pc.registerListener(2, mListener1);
+
+        pc.setOverridesForTest(
+                new CompatibilityChangeConfig(
+                        new Compatibility.ChangeConfig(ImmutableSet.of(1L), ImmutableSet.of(2L))),
+                PACKAGE_NAME);
+
+        verify(mListener1, never()).onCompatChange("other.package");
+    }
+
+    @Test
+    public void testListenerCalledOnSetOverridesTwoListeners() {
+        PlatformCompat pc = new PlatformCompat(mContext);
+        pc.registerListener(1, mListener1);
+
+        final ImmutableSet<Long> enabled = ImmutableSet.of(1L);
+        final ImmutableSet<Long> disabled = ImmutableSet.of(2L);
+
+        pc.setOverrides(
+                new CompatibilityChangeConfig(
+                        new Compatibility.ChangeConfig(enabled, disabled)),
+                PACKAGE_NAME);
+
+        verify(mListener1, times(1)).onCompatChange(PACKAGE_NAME);
+        verify(mListener2, never()).onCompatChange(PACKAGE_NAME);
+
+        reset(mListener1);
+        reset(mListener2);
+
+        pc.registerListener(2, mListener2);
+
+        pc.setOverrides(
+                new CompatibilityChangeConfig(
+                        new Compatibility.ChangeConfig(enabled, disabled)),
+                PACKAGE_NAME);
+
+        verify(mListener1, times(1)).onCompatChange(PACKAGE_NAME);
+        verify(mListener2, times(1)).onCompatChange(PACKAGE_NAME);
+    }
+
+    @Test
+    public void testListenerCalledOnSetOverridesForTest() {
+        PlatformCompat pc = new PlatformCompat(mContext);
+
+        pc.registerListener(1, mListener1);
+        pc.registerListener(2, mListener1);
+
+        pc.setOverridesForTest(
+                new CompatibilityChangeConfig(
+                        new Compatibility.ChangeConfig(ImmutableSet.of(1L), ImmutableSet.of(2L))),
+                PACKAGE_NAME);
+
+        verify(mListener1, times(2)).onCompatChange(PACKAGE_NAME);
+    }
+
+    @Test
+    public void testListenerCalledOnSetOverridesTwoListenersForTest() {
+        PlatformCompat pc = new PlatformCompat(mContext);
+        pc.registerListener(1, mListener1);
+
+        final ImmutableSet<Long> enabled = ImmutableSet.of(1L);
+        final ImmutableSet<Long> disabled = ImmutableSet.of(2L);
+
+        pc.setOverridesForTest(
+                new CompatibilityChangeConfig(
+                        new Compatibility.ChangeConfig(enabled, disabled)),
+                PACKAGE_NAME);
+
+        verify(mListener1, times(1)).onCompatChange(PACKAGE_NAME);
+        verify(mListener2, never()).onCompatChange(PACKAGE_NAME);
+
+        reset(mListener1);
+        reset(mListener2);
+
+        pc.registerListener(2, mListener2);
+        pc.setOverridesForTest(
+                new CompatibilityChangeConfig(
+                        new Compatibility.ChangeConfig(enabled, disabled)),
+                PACKAGE_NAME);
+
+        verify(mListener1, times(1)).onCompatChange(PACKAGE_NAME);
+        verify(mListener2, times(1)).onCompatChange(PACKAGE_NAME);
+    }
+
+    @Test
+    public void testListenerCalledOnClearOverrides() {
+        PlatformCompat pc = new PlatformCompat(mContext);
+
+        pc.registerListener(1, mListener1);
+        pc.registerListener(2, mListener2);
+
+        pc.setOverrides(
+                new CompatibilityChangeConfig(
+                        new Compatibility.ChangeConfig(ImmutableSet.of(1L), ImmutableSet.of())),
+                PACKAGE_NAME);
+        verify(mListener1, times(1)).onCompatChange(PACKAGE_NAME);
+        verify(mListener2, never()).onCompatChange(PACKAGE_NAME);
+
+        reset(mListener1);
+        reset(mListener2);
+
+        pc.clearOverrides(PACKAGE_NAME);
+        verify(mListener1, times(1)).onCompatChange(PACKAGE_NAME);
+        verify(mListener2, never()).onCompatChange(PACKAGE_NAME);
+    }
+
+    @Test
+    public void testListenerCalledOnClearOverridesMultipleOverrides() {
+        PlatformCompat pc = new PlatformCompat(mContext);
+
+        pc.registerListener(1, mListener1);
+        pc.registerListener(2, mListener2);
+
+        pc.setOverrides(
+                new CompatibilityChangeConfig(
+                        new Compatibility.ChangeConfig(ImmutableSet.of(1L), ImmutableSet.of(2L))),
+                PACKAGE_NAME);
+        verify(mListener1, times(1)).onCompatChange(PACKAGE_NAME);
+        verify(mListener2, times(1)).onCompatChange(PACKAGE_NAME);
+
+        reset(mListener1);
+        reset(mListener2);
+
+        pc.clearOverrides(PACKAGE_NAME);
+        verify(mListener1, times(1)).onCompatChange(PACKAGE_NAME);
+        verify(mListener2, times(1)).onCompatChange(PACKAGE_NAME);
+    }
+
+    @Test
+    public void testListenerCalledOnClearOverrideExists() {
+        PlatformCompat pc = new PlatformCompat(mContext);
+
+        pc.registerListener(1, mListener1);
+        pc.registerListener(2, mListener2);
+
+        pc.setOverrides(
+                new CompatibilityChangeConfig(
+                        new Compatibility.ChangeConfig(ImmutableSet.of(1L), ImmutableSet.of())),
+                PACKAGE_NAME);
+        verify(mListener1, times(1)).onCompatChange(PACKAGE_NAME);
+        verify(mListener2, never()).onCompatChange(PACKAGE_NAME);
+
+        reset(mListener1);
+        reset(mListener2);
+
+        pc.clearOverride(1, PACKAGE_NAME);
+        verify(mListener1, times(1)).onCompatChange(PACKAGE_NAME);
+        verify(mListener2, never()).onCompatChange(PACKAGE_NAME);
+    }
+
+    @Test
+    public void testListenerCalledOnClearOverrideDoesntExist() {
+        PlatformCompat pc = new PlatformCompat(mContext);
+
+        pc.registerListener(1, mListener1);
+
+        pc.clearOverride(1, PACKAGE_NAME);
+        // Listener not called when a non existing override is removed.
+        verify(mListener1, never()).onCompatChange(PACKAGE_NAME);
+    }
+
+
+}
diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java
index 2ce4c54..0fde850 100644
--- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java
+++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java
@@ -22,6 +22,7 @@
 import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.app.backup.IBackupManager;
+import android.app.timedetector.TimeDetector;
 import android.app.usage.UsageStatsManagerInternal;
 import android.content.Context;
 import android.content.Intent;
@@ -217,6 +218,11 @@
         AlarmManager getAlarmManager() {return services.alarmManager;}
 
         @Override
+        TimeDetector getTimeDetector() {
+            return services.timeDetector;
+        }
+
+        @Override
         LockPatternUtils newLockPatternUtils() {
             return services.lockPatternUtils;
         }
diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
index 9ae9824..b93b47a 100644
--- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
@@ -63,6 +63,7 @@
 import android.app.admin.DevicePolicyManager;
 import android.app.admin.DevicePolicyManagerInternal;
 import android.app.admin.PasswordMetrics;
+import android.app.timedetector.ManualTimeSuggestion;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.Intent;
@@ -3473,7 +3474,19 @@
         mContext.binder.callingUid = DpmMockContext.CALLER_SYSTEM_USER_UID;
         setupDeviceOwner();
         dpm.setTime(admin1, 0);
-        verify(getServices().alarmManager).setTime(0);
+
+        BaseMatcher<ManualTimeSuggestion> hasZeroTime = new BaseMatcher<ManualTimeSuggestion>() {
+            @Override
+            public boolean matches(Object item) {
+                final ManualTimeSuggestion suggestion = (ManualTimeSuggestion) item;
+                return suggestion.getUtcTime().getValue() == 0;
+            }
+            @Override
+            public void describeTo(Description description) {
+                description.appendText("ManualTimeSuggestion{utcTime.value=0}");
+            }
+        };
+        verify(getServices().timeDetector).suggestManualTime(argThat(hasZeroTime));
     }
 
     public void testSetTimeFailWithPO() throws Exception {
diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java
index bd513dc..1a67576 100644
--- a/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java
+++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DpmMockContext.java
@@ -207,6 +207,8 @@
         switch (name) {
             case Context.ALARM_SERVICE:
                 return mMockSystemServices.alarmManager;
+            case Context.TIME_DETECTOR_SERVICE:
+                return mMockSystemServices.timeDetector;
             case Context.USER_SERVICE:
                 return mMockSystemServices.userManager;
             case Context.POWER_SERVICE:
diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/MockSystemServices.java b/services/tests/servicestests/src/com/android/server/devicepolicy/MockSystemServices.java
index 8f0aeea..b208f82 100644
--- a/services/tests/servicestests/src/com/android/server/devicepolicy/MockSystemServices.java
+++ b/services/tests/servicestests/src/com/android/server/devicepolicy/MockSystemServices.java
@@ -31,6 +31,7 @@
 import android.app.IActivityTaskManager;
 import android.app.NotificationManager;
 import android.app.backup.IBackupManager;
+import android.app.timedetector.TimeDetector;
 import android.app.usage.UsageStatsManagerInternal;
 import android.content.BroadcastReceiver;
 import android.content.ContentValues;
@@ -107,6 +108,7 @@
     public final TelephonyManager telephonyManager;
     public final AccountManager accountManager;
     public final AlarmManager alarmManager;
+    public final TimeDetector timeDetector;
     public final KeyChain.KeyChainConnection keyChainConnection;
     /** Note this is a partial mock, not a real mock. */
     public final PackageManager packageManager;
@@ -146,6 +148,7 @@
         telephonyManager = mock(TelephonyManager.class);
         accountManager = mock(AccountManager.class);
         alarmManager = mock(AlarmManager.class);
+        timeDetector = mock(TimeDetector.class);
         keyChainConnection = mock(KeyChain.KeyChainConnection.class, RETURNS_DEEP_STUBS);
 
         // Package manager is huge, so we use a partial mock instead.
diff --git a/services/tests/servicestests/src/com/android/server/locksettings/BaseLockSettingsServiceTests.java b/services/tests/servicestests/src/com/android/server/locksettings/BaseLockSettingsServiceTests.java
index 1f5ebe4..842cdd5 100644
--- a/services/tests/servicestests/src/com/android/server/locksettings/BaseLockSettingsServiceTests.java
+++ b/services/tests/servicestests/src/com/android/server/locksettings/BaseLockSettingsServiceTests.java
@@ -16,10 +16,12 @@
 
 package com.android.server.locksettings;
 
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyBoolean;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.eq;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -40,7 +42,9 @@
 import android.os.storage.IStorageManager;
 import android.os.storage.StorageManager;
 import android.security.KeyStore;
-import android.test.AndroidTestCase;
+
+import androidx.test.InstrumentationRegistry;
+import androidx.test.runner.AndroidJUnit4;
 
 import com.android.internal.widget.ILockSettings;
 import com.android.internal.widget.LockPatternUtils;
@@ -49,6 +53,9 @@
 import com.android.server.locksettings.recoverablekeystore.RecoverableKeyStoreManager;
 import com.android.server.wm.WindowManagerInternal;
 
+import org.junit.After;
+import org.junit.Before;
+import org.junit.runner.RunWith;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 
@@ -56,8 +63,8 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 
-
-public abstract class BaseLockSettingsServiceTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public abstract class BaseLockSettingsServiceTests {
     protected static final int PRIMARY_USER_ID = 0;
     protected static final int MANAGED_PROFILE_USER_ID = 12;
     protected static final int TURNED_OFF_PROFILE_USER_ID = 17;
@@ -93,10 +100,8 @@
     RecoverableKeyStoreManager mRecoverableKeyStoreManager;
     protected boolean mHasSecureLockScreen;
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
+    @Before
+    public void setUp_baseServices() throws Exception {
         mGateKeeperService = new FakeGateKeeperService();
         mNotificationManager = mock(NotificationManager.class);
         mUserManager = mock(UserManager.class);
@@ -115,11 +120,11 @@
         LocalServices.addService(DevicePolicyManagerInternal.class, mDevicePolicyManagerInternal);
         LocalServices.addService(WindowManagerInternal.class, mMockWindowManager);
 
-        mContext = new MockLockSettingsContext(getContext(), mUserManager, mNotificationManager,
-                mDevicePolicyManager, mock(StorageManager.class), mock(TrustManager.class),
-                mock(KeyguardManager.class));
+        mContext = new MockLockSettingsContext(InstrumentationRegistry.getContext(), mUserManager,
+                mNotificationManager, mDevicePolicyManager, mock(StorageManager.class),
+                mock(TrustManager.class), mock(KeyguardManager.class));
         mStorage = new LockSettingsStorageTestable(mContext,
-                new File(getContext().getFilesDir(), "locksettings"));
+                new File(InstrumentationRegistry.getContext().getFilesDir(), "locksettings"));
         File storageDir = mStorage.mStorageDir;
         if (storageDir.exists()) {
             FileUtils.deleteContents(storageDir);
@@ -222,11 +227,10 @@
         return sm;
     }
 
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
+    @After
+    public void tearDown_baseServices() throws Exception {
         mStorage.closeDatabase();
-        File db = getContext().getDatabasePath("locksettings.db");
+        File db = InstrumentationRegistry.getContext().getDatabasePath("locksettings.db");
         assertTrue(!db.exists() || db.delete());
 
         File storageDir = mStorage.mStorageDir;
diff --git a/services/tests/servicestests/src/com/android/server/locksettings/CachedSyntheticPasswordTests.java b/services/tests/servicestests/src/com/android/server/locksettings/CachedSyntheticPasswordTests.java
index d2a9145..6616c96 100644
--- a/services/tests/servicestests/src/com/android/server/locksettings/CachedSyntheticPasswordTests.java
+++ b/services/tests/servicestests/src/com/android/server/locksettings/CachedSyntheticPasswordTests.java
@@ -20,6 +20,7 @@
 
 import static com.android.server.testutils.TestUtils.assertExpectException;
 
+import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.anyInt;
 import static org.mockito.Mockito.atLeastOnce;
 import static org.mockito.Mockito.verify;
@@ -29,10 +30,14 @@
 import android.platform.test.annotations.Presubmit;
 
 import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
 
 import com.android.internal.widget.LockPatternUtils;
 import com.android.internal.widget.VerifyCredentialResponse;
 
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 
 import java.util.ArrayList;
@@ -45,11 +50,11 @@
  */
 @SmallTest
 @Presubmit
+@RunWith(AndroidJUnit4.class)
 public class CachedSyntheticPasswordTests extends SyntheticPasswordTests {
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
+    @Before
+    public void enableSpCache() throws Exception {
         enableSpCaching(true);
     }
 
@@ -58,6 +63,7 @@
                 .canUserHaveUntrustedCredentialReset(anyInt())).thenReturn(enable);
     }
 
+    @Test
     public void testSyntheticPasswordClearCredentialUntrusted() throws RemoteException {
         final byte[] password = "testSyntheticPasswordClearCredential-password".getBytes();
         final byte[] newPassword = "testSyntheticPasswordClearCredential-newpassword".getBytes();
@@ -78,6 +84,7 @@
         assertNotEquals(sid, mGateKeeperService.getSecureUserId(PRIMARY_USER_ID));
     }
 
+    @Test
     public void testSyntheticPasswordChangeCredentialUntrusted() throws RemoteException {
         final byte[] password = "testSyntheticPasswordClearCredential-password".getBytes();
         final byte[] newPassword = "testSyntheticPasswordClearCredential-newpassword".getBytes();
@@ -95,6 +102,7 @@
                 LockPatternUtils.CREDENTIAL_TYPE_PASSWORD, 0, PRIMARY_USER_ID).getResponseCode());
     }
 
+    @Test
     public void testUntrustedCredentialChangeMaintainsAuthSecret() throws RemoteException {
         final byte[] password =
                 "testUntrustedCredentialChangeMaintainsAuthSecret-password".getBytes();
@@ -117,6 +125,7 @@
         assertEquals(1, secret.getAllValues().stream().distinct().count());
     }
 
+    @Test
     public void testUntrustedCredentialChangeBlockedIfSpNotCached() throws RemoteException {
         final byte[] password =
                 "testUntrustedCredentialChangeBlockedIfSpNotCached-password".getBytes();
diff --git a/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsServiceTests.java b/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsServiceTests.java
index 67d6eda..c0f27ff 100644
--- a/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsServiceTests.java
+++ b/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsServiceTests.java
@@ -25,6 +25,12 @@
 import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_PASSWORD;
 import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_PATTERN;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
@@ -37,59 +43,60 @@
 import android.service.gatekeeper.GateKeeperResponse;
 
 import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
 
 import com.android.internal.widget.LockPatternUtils;
 import com.android.internal.widget.VerifyCredentialResponse;
 import com.android.server.locksettings.FakeGateKeeperService.VerifyHandle;
 import com.android.server.locksettings.LockSettingsStorage.CredentialHash;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 /**
- * runtest frameworks-services -c com.android.server.locksettings.LockSettingsServiceTests
+ * atest FrameworksServicesTests:LockSettingsServiceTests
  */
 @SmallTest
 @Presubmit
+@RunWith(AndroidJUnit4.class)
 public class LockSettingsServiceTests extends BaseLockSettingsServiceTests {
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
-    }
-
+    @Test
     public void testCreatePasswordPrimaryUser() throws RemoteException {
         testCreateCredential(PRIMARY_USER_ID, "password", CREDENTIAL_TYPE_PASSWORD,
                 PASSWORD_QUALITY_ALPHABETIC);
     }
 
+    @Test
     public void testCreatePasswordFailsWithoutLockScreen() throws RemoteException {
         testCreateCredentialFailsWithoutLockScreen(PRIMARY_USER_ID, "password",
                 CREDENTIAL_TYPE_PASSWORD, PASSWORD_QUALITY_ALPHABETIC);
     }
 
+    @Test
     public void testCreatePatternPrimaryUser() throws RemoteException {
         testCreateCredential(PRIMARY_USER_ID, "123456789", CREDENTIAL_TYPE_PATTERN,
                 PASSWORD_QUALITY_SOMETHING);
     }
 
+    @Test
     public void testCreatePatternFailsWithoutLockScreen() throws RemoteException {
         testCreateCredentialFailsWithoutLockScreen(PRIMARY_USER_ID, "123456789",
                 CREDENTIAL_TYPE_PATTERN, PASSWORD_QUALITY_SOMETHING);
     }
 
+    @Test
     public void testChangePasswordPrimaryUser() throws RemoteException {
         testChangeCredentials(PRIMARY_USER_ID, "78963214", CREDENTIAL_TYPE_PATTERN,
                 "asdfghjk", CREDENTIAL_TYPE_PASSWORD, PASSWORD_QUALITY_ALPHABETIC);
     }
 
+    @Test
     public void testChangePatternPrimaryUser() throws RemoteException {
         testChangeCredentials(PRIMARY_USER_ID, "!£$%^&*(())", CREDENTIAL_TYPE_PASSWORD,
                 "1596321", CREDENTIAL_TYPE_PATTERN, PASSWORD_QUALITY_SOMETHING);
     }
 
+    @Test
     public void testChangePasswordFailPrimaryUser() throws RemoteException {
         final long sid = 1234;
         final String FAILED_MESSAGE = "Failed to enroll password";
@@ -105,6 +112,7 @@
         assertVerifyCredentials(PRIMARY_USER_ID, "password", CREDENTIAL_TYPE_PASSWORD, sid);
     }
 
+    @Test
     public void testClearPasswordPrimaryUser() throws RemoteException {
         final String PASSWORD = "password";
         initializeStorageWithCredential(PRIMARY_USER_ID, PASSWORD, CREDENTIAL_TYPE_PASSWORD, 1234);
@@ -115,6 +123,7 @@
         assertEquals(0, mGateKeeperService.getSecureUserId(PRIMARY_USER_ID));
     }
 
+    @Test
     public void testManagedProfileUnifiedChallenge() throws RemoteException {
         final String firstUnifiedPassword = "testManagedProfileUnifiedChallenge-pwd-1";
         final String secondUnifiedPassword = "testManagedProfileUnifiedChallenge-pwd-2";
@@ -170,6 +179,7 @@
         assertEquals(0, mGateKeeperService.getSecureUserId(TURNED_OFF_PROFILE_USER_ID));
     }
 
+    @Test
     public void testManagedProfileSeparateChallenge() throws RemoteException {
         final String primaryPassword = "testManagedProfileSeparateChallenge-primary";
         final String profilePassword = "testManagedProfileSeparateChallenge-profile";
@@ -218,6 +228,7 @@
         assertEquals(profileSid, mGateKeeperService.getSecureUserId(MANAGED_PROFILE_USER_ID));
     }
 
+    @Test
     public void testSetLockCredential_forPrimaryUser_sendsCredentials() throws Exception {
         final byte[] password = "password".getBytes();
 
@@ -233,6 +244,7 @@
                 .lockScreenSecretChanged(CREDENTIAL_TYPE_PASSWORD, password, PRIMARY_USER_ID);
     }
 
+    @Test
     public void testSetLockCredential_forProfileWithSeparateChallenge_sendsCredentials()
             throws Exception {
         final byte[] pattern = "12345".getBytes();
@@ -249,6 +261,7 @@
                 .lockScreenSecretChanged(CREDENTIAL_TYPE_PATTERN, pattern, MANAGED_PROFILE_USER_ID);
     }
 
+    @Test
     public void testSetLockCredential_forProfileWithSeparateChallenge_updatesCredentials()
             throws Exception {
         final String oldCredential = "12345";
@@ -272,6 +285,7 @@
                         CREDENTIAL_TYPE_PASSWORD, newCredential, MANAGED_PROFILE_USER_ID);
     }
 
+    @Test
     public void testSetLockCredential_forProfileWithUnifiedChallenge_doesNotSendRandomCredential()
             throws Exception {
         mService.setSeparateProfileChallengeEnabled(MANAGED_PROFILE_USER_ID, false, null);
@@ -289,6 +303,7 @@
                         eq(CREDENTIAL_TYPE_PASSWORD), any(), eq(MANAGED_PROFILE_USER_ID));
     }
 
+    @Test
     public void
             testSetLockCredential_forPrimaryUserWithUnifiedChallengeProfile_updatesBothCredentials()
                     throws Exception {
@@ -313,6 +328,7 @@
                         CREDENTIAL_TYPE_PASSWORD, newCredential, MANAGED_PROFILE_USER_ID);
     }
 
+    @Test
     public void
             testSetLockCredential_forPrimaryUserWithUnifiedChallengeProfile_removesBothCredentials()
                     throws Exception {
@@ -335,6 +351,7 @@
                 .lockScreenSecretChanged(CREDENTIAL_TYPE_NONE, null, MANAGED_PROFILE_USER_ID);
     }
 
+    @Test
     public void testSetLockCredential_forUnifiedToSeparateChallengeProfile_sendsNewCredentials()
             throws Exception {
         final String parentPassword = "parentPassword";
@@ -356,6 +373,7 @@
                         CREDENTIAL_TYPE_PASSWORD, profilePassword, MANAGED_PROFILE_USER_ID);
     }
 
+    @Test
     public void
             testSetLockCredential_forSeparateToUnifiedChallengeProfile_doesNotSendRandomCredential()
                     throws Exception {
@@ -379,6 +397,7 @@
                 .lockScreenSecretChanged(anyInt(), any(), eq(MANAGED_PROFILE_USER_ID));
     }
 
+    @Test
     public void testVerifyCredential_forPrimaryUser_sendsCredentials() throws Exception {
         final String password = "password";
         initializeStorageWithCredential(PRIMARY_USER_ID, password, CREDENTIAL_TYPE_PASSWORD, 1234);
@@ -392,6 +411,7 @@
                         CREDENTIAL_TYPE_PASSWORD, password.getBytes(), PRIMARY_USER_ID);
     }
 
+    @Test
     public void testVerifyCredential_forProfileWithSeparateChallenge_sendsCredentials()
             throws Exception {
         final byte[] pattern = "12345".getBytes();
@@ -411,8 +431,8 @@
                         CREDENTIAL_TYPE_PATTERN, pattern, MANAGED_PROFILE_USER_ID);
     }
 
-    public void
-            testVerifyCredential_forPrimaryUserWithUnifiedChallengeProfile_sendsCredentialsForBoth()
+    @Test
+    public void verifyCredential_forPrimaryUserWithUnifiedChallengeProfile_sendsCredentialsForBoth()
                     throws Exception {
         final String pattern = "12345";
         initializeStorageWithCredential(PRIMARY_USER_ID, pattern, CREDENTIAL_TYPE_PATTERN, 1234);
diff --git a/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsShellCommandTest.java b/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsShellCommandTest.java
index c00d33b..b959126 100644
--- a/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsShellCommandTest.java
+++ b/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsShellCommandTest.java
@@ -23,7 +23,7 @@
 
 import static junit.framework.Assert.assertEquals;
 
-import static org.mockito.Matchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
diff --git a/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsStorageTests.java b/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsStorageTests.java
index 18453aa..a1f423e 100644
--- a/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsStorageTests.java
+++ b/services/tests/servicestests/src/com/android/server/locksettings/LockSettingsStorageTests.java
@@ -16,7 +16,13 @@
 
 package com.android.server.locksettings;
 
-import static org.mockito.Matchers.eq;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -31,18 +37,24 @@
 import android.os.UserManager;
 import android.os.storage.StorageManager;
 import android.platform.test.annotations.Presubmit;
-import android.test.AndroidTestCase;
 import android.util.Log;
 import android.util.Log.TerribleFailure;
 import android.util.Log.TerribleFailureHandler;
 
+import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
 
 import com.android.internal.widget.LockPatternUtils;
 import com.android.server.PersistentDataBlockManagerInternal;
 import com.android.server.locksettings.LockSettingsStorage.CredentialHash;
 import com.android.server.locksettings.LockSettingsStorage.PersistentData;
 
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -50,11 +62,12 @@
 import java.util.concurrent.CountDownLatch;
 
 /**
- * runtest frameworks-services -c com.android.server.locksettings.LockSettingsStorageTests
+ * atest FrameworksServicesTests:LockSettingsStorageTests
  */
 @SmallTest
 @Presubmit
-public class LockSettingsStorageTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class LockSettingsStorageTests {
     private static final int SOME_USER_ID = 1034;
     private final byte[] PASSWORD_0 = "thepassword0".getBytes();
     private final byte[] PASSWORD_1 = "password1".getBytes();
@@ -68,11 +81,10 @@
 
     private File mDb;
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mStorageDir = new File(getContext().getFilesDir(), "locksettings");
-        mDb = getContext().getDatabasePath("locksettings.db");
+    @Before
+    public void setUp() throws Exception {
+        mStorageDir = new File(InstrumentationRegistry.getContext().getFilesDir(), "locksettings");
+        mDb = InstrumentationRegistry.getContext().getDatabasePath("locksettings.db");
 
         assertTrue(mStorageDir.exists() || mStorageDir.mkdirs());
         assertTrue(FileUtils.deleteContents(mStorageDir));
@@ -84,11 +96,12 @@
         // User 3 is a profile of user 0.
         when(mockUserManager.getProfileParent(eq(3))).thenReturn(new UserInfo(0, "name", 0));
 
-        MockLockSettingsContext context = new MockLockSettingsContext(getContext(), mockUserManager,
+        MockLockSettingsContext context = new MockLockSettingsContext(
+                InstrumentationRegistry.getContext(), mockUserManager,
                 mock(NotificationManager.class), mock(DevicePolicyManager.class),
                 mock(StorageManager.class), mock(TrustManager.class), mock(KeyguardManager.class));
         mStorage = new LockSettingsStorageTestable(context,
-                new File(getContext().getFilesDir(), "locksettings"));
+                new File(InstrumentationRegistry.getContext().getFilesDir(), "locksettings"));
         mStorage.setDatabaseOnCreateCallback(new LockSettingsStorage.Callback() {
                     @Override
                     public void initialize(SQLiteDatabase db) {
@@ -97,18 +110,19 @@
                 });
     }
 
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
+    @After
+    public void tearDown() throws Exception {
         mStorage.closeDatabase();
     }
 
+    @Test
     public void testKeyValue_InitializeWorked() {
         assertEquals("initialValue", mStorage.readKeyValue("initializedKey", "default", 0));
         mStorage.clearCache();
         assertEquals("initialValue", mStorage.readKeyValue("initializedKey", "default", 0));
     }
 
+    @Test
     public void testKeyValue_WriteThenRead() {
         mStorage.writeKeyValue("key", "value", 0);
         assertEquals("value", mStorage.readKeyValue("key", "default", 0));
@@ -116,11 +130,13 @@
         assertEquals("value", mStorage.readKeyValue("key", "default", 0));
     }
 
+    @Test
     public void testKeyValue_DefaultValue() {
         assertEquals("default", mStorage.readKeyValue("unititialized key", "default", 0));
         assertEquals("default2", mStorage.readKeyValue("unititialized key", "default2", 0));
     }
 
+    @Test
     public void testKeyValue_Concurrency() {
         final Object monitor = new Object();
         List<Thread> threads = new ArrayList<>();
@@ -160,6 +176,7 @@
         assertEquals('5', mStorage.readKeyValue("key", "default", 0).charAt(0));
     }
 
+    @Test
     public void testKeyValue_CacheStarvedWriter() {
         final CountDownLatch latch = new CountDownLatch(1);
         List<Thread> threads = new ArrayList<>();
@@ -195,6 +212,7 @@
         assertEquals("Cached value didn't match stored value", storage, cached);
     }
 
+    @Test
     public void testRemoveUser() {
         mStorage.writeKeyValue("key", "value", 0);
         writePasswordBytes(PASSWORD_0, 0);
@@ -212,10 +230,12 @@
         assertPatternBytes(PATTERN_1, 1);
     }
 
+    @Test
     public void testCredential_Default() {
         assertEquals(mStorage.readCredentialHash(0).type, LockPatternUtils.CREDENTIAL_TYPE_NONE);
     }
 
+    @Test
     public void testPassword_Write() {
         writePasswordBytes(PASSWORD_0, 0);
 
@@ -224,6 +244,7 @@
         assertPasswordBytes(PASSWORD_0, 0);
     }
 
+    @Test
     public void testPassword_WriteProfileWritesParent() {
         writePasswordBytes(PASSWORD_0, 1);
         writePasswordBytes(PASSWORD_1, 2);
@@ -235,6 +256,7 @@
         assertPasswordBytes(PASSWORD_1, 2);
     }
 
+    @Test
     public void testLockType_WriteProfileWritesParent() {
         writePasswordBytes(PASSWORD_0, 10);
         writePatternBytes(PATTERN_0, 20);
@@ -250,6 +272,7 @@
                 mStorage.readCredentialHash(20).type);
     }
 
+    @Test
     public void testPassword_WriteParentWritesProfile() {
         writePasswordBytes(PASSWORD_0, 2);
         writePasswordBytes(PASSWORD_1, 1);
@@ -261,6 +284,7 @@
         assertPasswordBytes(PASSWORD_0, 2);
     }
 
+    @Test
     public void testProfileLock_ReadWriteChildProfileLock() {
         assertFalse(mStorage.hasChildProfileLock(20));
         mStorage.writeChildProfileLock(20, PASSWORD_0);
@@ -271,6 +295,7 @@
         assertTrue(mStorage.hasChildProfileLock(20));
     }
 
+    @Test
     public void testPattern_Write() {
         writePatternBytes(PATTERN_0, 0);
 
@@ -279,6 +304,7 @@
         assertPatternBytes(PATTERN_0, 0);
     }
 
+    @Test
     public void testPattern_WriteProfileWritesParent() {
         writePatternBytes(PATTERN_0, 1);
         writePatternBytes(PATTERN_1, 2);
@@ -290,6 +316,7 @@
         assertPatternBytes(PATTERN_1, 2);
     }
 
+    @Test
     public void testPattern_WriteParentWritesProfile() {
         writePatternBytes(PATTERN_1, 2);
         writePatternBytes(PATTERN_0, 1);
@@ -301,6 +328,7 @@
         assertPatternBytes(PATTERN_1, 2);
     }
 
+    @Test
     public void testPrefetch() {
         mStorage.writeKeyValue("key", "toBeFetched", 0);
         writePatternBytes(PATTERN_0, 0);
@@ -312,8 +340,9 @@
         assertPatternBytes(PATTERN_0, 0);
     }
 
+    @Test
     public void testFileLocation_Owner() {
-        LockSettingsStorage storage = new LockSettingsStorage(getContext());
+        LockSettingsStorage storage = new LockSettingsStorage(InstrumentationRegistry.getContext());
 
         assertEquals("/data/system/gesture.key", storage.getLegacyLockPatternFilename(0));
         assertEquals("/data/system/password.key", storage.getLegacyLockPasswordFilename(0));
@@ -321,27 +350,31 @@
         assertEquals("/data/system/gatekeeper.password.key", storage.getLockPasswordFilename(0));
     }
 
+    @Test
     public void testFileLocation_SecondaryUser() {
-        LockSettingsStorage storage = new LockSettingsStorage(getContext());
+        LockSettingsStorage storage = new LockSettingsStorage(InstrumentationRegistry.getContext());
 
         assertEquals("/data/system/users/1/gatekeeper.pattern.key", storage.getLockPatternFilename(1));
         assertEquals("/data/system/users/1/gatekeeper.password.key", storage.getLockPasswordFilename(1));
     }
 
+    @Test
     public void testFileLocation_ProfileToSecondary() {
-        LockSettingsStorage storage = new LockSettingsStorage(getContext());
+        LockSettingsStorage storage = new LockSettingsStorage(InstrumentationRegistry.getContext());
 
         assertEquals("/data/system/users/2/gatekeeper.pattern.key", storage.getLockPatternFilename(2));
         assertEquals("/data/system/users/2/gatekeeper.password.key", storage.getLockPasswordFilename(2));
     }
 
+    @Test
     public void testFileLocation_ProfileToOwner() {
-        LockSettingsStorage storage = new LockSettingsStorage(getContext());
+        LockSettingsStorage storage = new LockSettingsStorage(InstrumentationRegistry.getContext());
 
         assertEquals("/data/system/users/3/gatekeeper.pattern.key", storage.getLockPatternFilename(3));
         assertEquals("/data/system/users/3/gatekeeper.password.key", storage.getLockPasswordFilename(3));
     }
 
+    @Test
     public void testSyntheticPasswordState() {
         final byte[] data = {1,2,3,4};
         mStorage.writeSyntheticPasswordState(10, 1234L, "state", data);
@@ -352,18 +385,21 @@
         assertEquals(null, mStorage.readSyntheticPasswordState(10, 1234L, "state"));
     }
 
+    @Test
     public void testPersistentDataBlock_unavailable() {
         mStorage.mPersistentDataBlock = null;
 
         assertSame(PersistentData.NONE, mStorage.readPersistentDataBlock());
     }
 
+    @Test
     public void testPersistentDataBlock_empty() {
         mStorage.mPersistentDataBlock = mock(PersistentDataBlockManagerInternal.class);
 
         assertSame(PersistentData.NONE, mStorage.readPersistentDataBlock());
     }
 
+    @Test
     public void testPersistentDataBlock_withData() {
         mStorage.mPersistentDataBlock = mock(PersistentDataBlockManagerInternal.class);
         when(mStorage.mPersistentDataBlock.getFrpCredentialHandle())
@@ -378,6 +414,7 @@
         assertArrayEquals(PAYLOAD, data.payload);
     }
 
+    @Test
     public void testPersistentDataBlock_exception() {
         mStorage.mPersistentDataBlock = mock(PersistentDataBlockManagerInternal.class);
         when(mStorage.mPersistentDataBlock.getFrpCredentialHandle())
@@ -385,6 +422,7 @@
         assertSame(PersistentData.NONE, mStorage.readPersistentDataBlock());
     }
 
+    @Test
     public void testPersistentData_serializeUnserialize() {
         byte[] serialized = PersistentData.toBytes(PersistentData.TYPE_SP, SOME_USER_ID,
                 DevicePolicyManager.PASSWORD_QUALITY_COMPLEX, PAYLOAD);
@@ -395,16 +433,19 @@
         assertArrayEquals(PAYLOAD, deserialized.payload);
     }
 
+    @Test
     public void testPersistentData_unserializeNull() {
         PersistentData deserialized = PersistentData.fromBytes(null);
         assertSame(PersistentData.NONE, deserialized);
     }
 
+    @Test
     public void testPersistentData_unserializeEmptyArray() {
         PersistentData deserialized = PersistentData.fromBytes(new byte[0]);
         assertSame(PersistentData.NONE, deserialized);
     }
 
+    @Test
     public void testPersistentData_unserializeInvalid() {
         assertNotNull(suppressAndReturnWtf(() -> {
             PersistentData deserialized = PersistentData.fromBytes(new byte[]{5});
@@ -412,6 +453,7 @@
         }));
     }
 
+    @Test
     public void testPersistentData_unserialize_version1() {
         // This test ensures that we can read serialized VERSION_1 PersistentData even if we change
         // the wire format in the future.
diff --git a/services/tests/servicestests/src/com/android/server/locksettings/PasswordSlotManagerTests.java b/services/tests/servicestests/src/com/android/server/locksettings/PasswordSlotManagerTests.java
index 31526b5..0f24fb2 100644
--- a/services/tests/servicestests/src/com/android/server/locksettings/PasswordSlotManagerTests.java
+++ b/services/tests/servicestests/src/com/android/server/locksettings/PasswordSlotManagerTests.java
@@ -20,6 +20,12 @@
 import android.test.AndroidTestCase;
 
 import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -30,24 +36,22 @@
 
 @SmallTest
 @Presubmit
+@RunWith(AndroidJUnit4.class)
 public class PasswordSlotManagerTests extends AndroidTestCase {
 
     PasswordSlotManagerTestable mManager;
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-
+    @Before
+    public void setUp() throws Exception {
         mManager = new PasswordSlotManagerTestable();
     }
 
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
-
+    @After
+    public void tearDown() throws Exception {
         mManager.cleanup();
     }
 
+    @Test
     public void testBasicSlotUse() throws Exception {
         mManager.markSlotInUse(0);
         mManager.markSlotInUse(1);
@@ -64,6 +68,7 @@
         assertEquals(expected, mManager.getUsedSlots());
     }
 
+    @Test
     public void testMergeSlots() throws Exception {
         // Add some slots from a different OS image.
         mManager.setGsiImageNumber(1);
@@ -90,6 +95,7 @@
         assertEquals(expected, mManager.getUsedSlots());
     }
 
+    @Test
     public void testSerialization() throws Exception {
         mManager.markSlotInUse(0);
         mManager.markSlotInUse(1);
@@ -109,6 +115,7 @@
         assertEquals(expected, map);
     }
 
+    @Test
     public void testSaving() throws Exception {
         mManager.markSlotInUse(0);
         mManager.markSlotInUse(1);
diff --git a/services/tests/servicestests/src/com/android/server/locksettings/SP800DeriveTests.java b/services/tests/servicestests/src/com/android/server/locksettings/SP800DeriveTests.java
index 29d0fc1..89b7ec8 100644
--- a/services/tests/servicestests/src/com/android/server/locksettings/SP800DeriveTests.java
+++ b/services/tests/servicestests/src/com/android/server/locksettings/SP800DeriveTests.java
@@ -16,16 +16,23 @@
 
 package com.android.server.locksettings;
 
+import static org.junit.Assert.assertEquals;
+
 import android.platform.test.annotations.Presubmit;
-import android.test.AndroidTestCase;
 
 import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
 
 import com.android.internal.util.HexDump;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
 @SmallTest
 @Presubmit
-public class SP800DeriveTests extends AndroidTestCase {
+@RunWith(AndroidJUnit4.class)
+public class SP800DeriveTests {
+    @Test
     public void testFixedInput() throws Exception {
         // CAVP: https://csrc.nist.gov/projects/cryptographic-algorithm-validation-program/key-derivation
         byte[] keyBytes = HexDump.hexStringToByteArray(
diff --git a/services/tests/servicestests/src/com/android/server/locksettings/SyntheticPasswordTests.java b/services/tests/servicestests/src/com/android/server/locksettings/SyntheticPasswordTests.java
index 1cd590c..d9b1320 100644
--- a/services/tests/servicestests/src/com/android/server/locksettings/SyntheticPasswordTests.java
+++ b/services/tests/servicestests/src/com/android/server/locksettings/SyntheticPasswordTests.java
@@ -24,6 +24,12 @@
 import static com.android.internal.widget.LockPatternUtils.SYNTHETIC_PASSWORD_ENABLED_KEY;
 import static com.android.internal.widget.LockPatternUtils.SYNTHETIC_PASSWORD_HANDLE_KEY;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.atLeastOnce;
 import static org.mockito.Mockito.never;
@@ -36,6 +42,7 @@
 import android.platform.test.annotations.Presubmit;
 
 import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
 
 import com.android.internal.widget.LockPatternUtils;
 import com.android.internal.widget.VerifyCredentialResponse;
@@ -43,31 +50,25 @@
 import com.android.server.locksettings.SyntheticPasswordManager.AuthenticationToken;
 import com.android.server.locksettings.SyntheticPasswordManager.PasswordData;
 
+import org.junit.Test;
+import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 
 import java.util.ArrayList;
 
 
 /**
- * runtest frameworks-services -c com.android.server.locksettings.SyntheticPasswordTests
+ * atest FrameworksServicesTests:SyntheticPasswordTests
  */
 @SmallTest
 @Presubmit
+@RunWith(AndroidJUnit4.class)
 public class SyntheticPasswordTests extends BaseLockSettingsServiceTests {
 
     public static final byte[] PAYLOAD = new byte[] {1, 2, -1, -2, 55};
     public static final byte[] PAYLOAD2 = new byte[] {2, 3, -2, -3, 44, 1};
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
-    }
-
+    @Test
     public void testPasswordBasedSyntheticPassword() throws RemoteException {
         final int USER_ID = 10;
         final byte[] password = "user-password".getBytes();
@@ -102,6 +103,7 @@
         return mService.getLong(SYNTHETIC_PASSWORD_HANDLE_KEY, 0, userId) != 0;
     }
 
+    @Test
     public void testPasswordMigration() throws RemoteException {
         final byte[] password = "testPasswordMigration-password".getBytes();
 
@@ -135,6 +137,7 @@
         mService.setLockCredential(password, type, null, quality, userId, false);
     }
 
+    @Test
     public void testSyntheticPasswordChangeCredential() throws RemoteException {
         final byte[] password = "testSyntheticPasswordChangeCredential-password".getBytes();
         final byte[] newPassword = "testSyntheticPasswordChangeCredential-newpassword".getBytes();
@@ -149,6 +152,7 @@
         assertEquals(sid, mGateKeeperService.getSecureUserId(PRIMARY_USER_ID));
     }
 
+    @Test
     public void testSyntheticPasswordVerifyCredential() throws RemoteException {
         final byte[] password = "testSyntheticPasswordVerifyCredential-password".getBytes();
         final byte[] badPassword = "testSyntheticPasswordVerifyCredential-badpassword".getBytes();
@@ -163,6 +167,7 @@
                         .getResponseCode());
     }
 
+    @Test
     public void testSyntheticPasswordClearCredential() throws RemoteException {
         final byte[] password = "testSyntheticPasswordClearCredential-password".getBytes();
         final byte[] badPassword = "testSyntheticPasswordClearCredential-newpassword".getBytes();
@@ -183,6 +188,7 @@
         assertNotEquals(sid, mGateKeeperService.getSecureUserId(PRIMARY_USER_ID));
     }
 
+    @Test
     public void testSyntheticPasswordChangeCredentialKeepsAuthSecret() throws RemoteException {
         final byte[] password =
                 "testSyntheticPasswordChangeCredentialKeepsAuthSecret-password".getBytes();
@@ -202,6 +208,7 @@
         assertEquals(1, secret.getAllValues().stream().distinct().count());
     }
 
+    @Test
     public void testSyntheticPasswordVerifyPassesPrimaryUserAuthSecret() throws RemoteException {
         final byte[] password =
                 "testSyntheticPasswordVerifyPassesPrimaryUserAuthSecret-password".getBytes();
@@ -216,6 +223,7 @@
         verify(mAuthSecretService).primaryUserCredential(any(ArrayList.class));
     }
 
+    @Test
     public void testSecondaryUserDoesNotPassAuthSecret() throws RemoteException {
         final byte[] password = "testSecondaryUserDoesNotPassAuthSecret-password".getBytes();
 
@@ -226,6 +234,7 @@
         verify(mAuthSecretService, never()).primaryUserCredential(any(ArrayList.class));
     }
 
+    @Test
     public void testNoSyntheticPasswordOrCredentialDoesNotPassAuthSecret() throws RemoteException {
         // Setting null doesn't create a synthetic password
         initializeCredentialUnderSP(null, PRIMARY_USER_ID);
@@ -236,6 +245,7 @@
         verify(mAuthSecretService, never()).primaryUserCredential(any(ArrayList.class));
     }
 
+    @Test
     public void testSyntheticPasswordAndCredentialDoesNotPassAuthSecret() throws RemoteException {
         final byte[] password = "passwordForASyntheticPassword".getBytes();
         initializeCredentialUnderSP(password, PRIMARY_USER_ID);
@@ -246,6 +256,7 @@
         verify(mAuthSecretService, never()).primaryUserCredential(any(ArrayList.class));
     }
 
+    @Test
     public void testSyntheticPasswordButNoCredentialPassesAuthSecret() throws RemoteException {
         final byte[] password = "getASyntheticPassword".getBytes();
         initializeCredentialUnderSP(password, PRIMARY_USER_ID);
@@ -258,6 +269,7 @@
         verify(mAuthSecretService).primaryUserCredential(any(ArrayList.class));
     }
 
+    @Test
     public void testManagedProfileUnifiedChallengeMigration() throws RemoteException {
         final byte[] UnifiedPassword = "testManagedProfileUnifiedChallengeMigration-pwd".getBytes();
         disableSyntheticPassword();
@@ -292,6 +304,7 @@
         assertTrue(hasSyntheticPassword(MANAGED_PROFILE_USER_ID));
     }
 
+    @Test
     public void testManagedProfileSeparateChallengeMigration() throws RemoteException {
         final byte[] primaryPassword =
                 "testManagedProfileSeparateChallengeMigration-primary".getBytes();
@@ -336,6 +349,7 @@
         assertTrue(hasSyntheticPassword(MANAGED_PROFILE_USER_ID));
     }
 
+    @Test
     public void testTokenBasedResetPassword() throws RemoteException {
         final byte[] password = "password".getBytes();
         final byte[] pattern = "123654".getBytes();
@@ -368,6 +382,7 @@
         assertArrayEquals(storageKey, mStorageManager.getUserUnlockToken(PRIMARY_USER_ID));
     }
 
+    @Test
     public void testTokenBasedClearPassword() throws RemoteException {
         final byte[] password = "password".getBytes();
         final byte[] pattern = "123654".getBytes();
@@ -394,6 +409,7 @@
         assertArrayEquals(storageKey, mStorageManager.getUserUnlockToken(PRIMARY_USER_ID));
     }
 
+    @Test
     public void testTokenBasedResetPasswordAfterCredentialChanges() throws RemoteException {
         final byte[] password = "password".getBytes();
         final byte[] pattern = "123654".getBytes();
@@ -422,6 +438,7 @@
         assertArrayEquals(storageKey, mStorageManager.getUserUnlockToken(PRIMARY_USER_ID));
     }
 
+    @Test
     public void testEscrowTokenActivatedImmediatelyIfNoUserPasswordNeedsMigration()
             throws RemoteException {
         final String token = "some-high-entropy-secure-token";
@@ -432,6 +449,7 @@
         assertTrue(hasSyntheticPassword(PRIMARY_USER_ID));
     }
 
+    @Test
     public void testEscrowTokenActivatedImmediatelyIfNoUserPasswordNoMigration()
             throws RemoteException {
         final String token = "some-high-entropy-secure-token";
@@ -442,6 +460,7 @@
         assertTrue(hasSyntheticPassword(PRIMARY_USER_ID));
     }
 
+    @Test
     public void testEscrowTokenActivatedLaterWithUserPasswordNeedsMigration()
             throws RemoteException {
         final byte[] token = "some-high-entropy-secure-token".getBytes();
@@ -463,6 +482,7 @@
         assertTrue(mLocalService.isEscrowTokenActive(handle, PRIMARY_USER_ID));
     }
 
+    @Test
     public void testSetLockCredentialWithTokenFailsWithoutLockScreen() throws Exception {
         final byte[] password = "password".getBytes();
         final byte[] pattern = "123654".getBytes();
@@ -494,6 +514,7 @@
         assertFalse(mService.havePattern(PRIMARY_USER_ID));
     }
 
+    @Test
     public void testgetHashFactorPrimaryUser() throws RemoteException {
         final byte[] password = "password".getBytes();
         mService.setLockCredential(password, LockPatternUtils.CREDENTIAL_TYPE_PASSWORD, null,
@@ -509,6 +530,7 @@
         assertArrayEquals(hashFactor, newHashFactor);
     }
 
+    @Test
     public void testgetHashFactorManagedProfileUnifiedChallenge() throws RemoteException {
         final byte[] pattern = "1236".getBytes();
         mService.setLockCredential(pattern, LockPatternUtils.CREDENTIAL_TYPE_PATTERN,
@@ -517,6 +539,7 @@
         assertNotNull(mService.getHashFactor(null, MANAGED_PROFILE_USER_ID));
     }
 
+    @Test
     public void testgetHashFactorManagedProfileSeparateChallenge() throws RemoteException {
         final byte[] primaryPassword = "primary".getBytes();
         final byte[] profilePassword = "profile".getBytes();
@@ -527,6 +550,7 @@
         assertNotNull(mService.getHashFactor(profilePassword, MANAGED_PROFILE_USER_ID));
     }
 
+    @Test
     public void testPasswordData_serializeDeserialize() {
         PasswordData data = new PasswordData();
         data.scryptN = 11;
@@ -546,6 +570,7 @@
         assertArrayEquals(PAYLOAD2, deserialized.passwordHandle);
     }
 
+    @Test
     public void testPasswordData_deserialize() {
         // Test that we can deserialize existing PasswordData and don't inadvertently change the
         // wire format.
@@ -569,6 +594,7 @@
         assertArrayEquals(PAYLOAD2, deserialized.passwordHandle);
     }
 
+    @Test
     public void testGsiDisablesAuthSecret() throws RemoteException {
         mGsiService.setIsGsiRunning(true);
 
diff --git a/services/tests/servicestests/src/com/android/server/locksettings/WeaverBasedSyntheticPasswordTests.java b/services/tests/servicestests/src/com/android/server/locksettings/WeaverBasedSyntheticPasswordTests.java
index abbf016..a3ac515 100644
--- a/services/tests/servicestests/src/com/android/server/locksettings/WeaverBasedSyntheticPasswordTests.java
+++ b/services/tests/servicestests/src/com/android/server/locksettings/WeaverBasedSyntheticPasswordTests.java
@@ -3,15 +3,18 @@
 import android.platform.test.annotations.Presubmit;
 
 import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Before;
+import org.junit.runner.RunWith;
 
 @SmallTest
 @Presubmit
+@RunWith(AndroidJUnit4.class)
 public class WeaverBasedSyntheticPasswordTests extends SyntheticPasswordTests {
 
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
+    @Before
+    public void enableWeaver() throws Exception {
         mSpManager.enableWeaver();
     }
-
 }
diff --git a/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java
index ce1edcd..49c22a3 100644
--- a/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/net/NetworkPolicyManagerServiceTest.java
@@ -113,6 +113,7 @@
 import android.net.NetworkTemplate;
 import android.net.StringNetworkSpecifier;
 import android.os.Binder;
+import android.os.Handler;
 import android.os.INetworkManagementService;
 import android.os.PersistableBundle;
 import android.os.PowerManagerInternal;
@@ -1047,7 +1048,7 @@
         // Define simple data plan
         final SubscriptionPlan plan = buildMonthlyDataPlan(
                 ZonedDateTime.parse("2015-11-01T00:00:00.00Z"), DataUnit.MEGABYTES.toBytes(1800));
-        mService.setSubscriptionPlans(TEST_SUB_ID, new SubscriptionPlan[] { plan },
+        setSubscriptionPlans(TEST_SUB_ID, new SubscriptionPlan[] { plan },
                 mServiceContext.getOpPackageName());
 
         // We're 20% through the month (6 days)
@@ -1171,7 +1172,7 @@
         // Define simple data plan which gives us effectively 60MB/day
         final SubscriptionPlan plan = buildMonthlyDataPlan(
                 ZonedDateTime.parse("2015-11-01T00:00:00.00Z"), DataUnit.MEGABYTES.toBytes(1800));
-        mService.setSubscriptionPlans(TEST_SUB_ID, new SubscriptionPlan[] { plan },
+        setSubscriptionPlans(TEST_SUB_ID, new SubscriptionPlan[] { plan },
                 mServiceContext.getOpPackageName());
 
         // We're 20% through the month (6 days)
@@ -1387,6 +1388,8 @@
         when(mConnManager.getAllNetworkState()).thenReturn(new NetworkState[0]);
         when(mSubscriptionManager.getActiveSubscriptionIdList()).thenReturn(new int[]{FAKE_SUB_ID});
         when(mTelephonyManager.getSubscriberId(FAKE_SUB_ID)).thenReturn(FAKE_SUBSCRIBER_ID);
+        when(mTelephonyManager.createForSubscriptionId(FAKE_SUB_ID))
+                .thenReturn(mock(TelephonyManager.class));
         PersistableBundle bundle = CarrierConfigManager.getDefaultConfig();
         when(mCarrierConfigManager.getConfigForSubId(FAKE_SUB_ID)).thenReturn(bundle);
         setNetworkPolicies(buildDefaultFakeMobilePolicy());
@@ -1398,6 +1401,8 @@
         when(mConnManager.getAllNetworkState()).thenReturn(new NetworkState[0]);
         when(mSubscriptionManager.getActiveSubscriptionIdList()).thenReturn(new int[]{FAKE_SUB_ID});
         when(mTelephonyManager.getSubscriberId(FAKE_SUB_ID)).thenReturn(FAKE_SUBSCRIBER_ID);
+        when(mTelephonyManager.createForSubscriptionId(FAKE_SUB_ID))
+                .thenReturn(mock(TelephonyManager.class));
         when(mCarrierConfigManager.getConfigForSubId(FAKE_SUB_ID)).thenReturn(null);
         setNetworkPolicies(buildDefaultFakeMobilePolicy());
         // smoke test to make sure no errors are raised
@@ -1583,7 +1588,7 @@
             final SubscriptionPlan plan = buildMonthlyDataPlan(
                     ZonedDateTime.parse("2015-11-01T00:00:00.00Z"),
                     DataUnit.MEGABYTES.toBytes(1800));
-            mService.setSubscriptionPlans(TEST_SUB_ID, new SubscriptionPlan[]{plan},
+            setSubscriptionPlans(TEST_SUB_ID, new SubscriptionPlan[]{plan},
                     mServiceContext.getOpPackageName());
 
             reset(mTelephonyManager, mNetworkManager, mNotifManager);
@@ -1604,7 +1609,7 @@
             final SubscriptionPlan plan = buildMonthlyDataPlan(
                     ZonedDateTime.parse("2015-11-01T00:00:00.00Z"),
                     DataUnit.MEGABYTES.toBytes(100));
-            mService.setSubscriptionPlans(TEST_SUB_ID, new SubscriptionPlan[]{plan},
+            setSubscriptionPlans(TEST_SUB_ID, new SubscriptionPlan[]{plan},
                     mServiceContext.getOpPackageName());
 
             reset(mTelephonyManager, mNetworkManager, mNotifManager);
@@ -1620,7 +1625,7 @@
         {
             final SubscriptionPlan plan = buildMonthlyDataPlan(
                     ZonedDateTime.parse("2015-11-01T00:00:00.00Z"), BYTES_UNLIMITED);
-            mService.setSubscriptionPlans(TEST_SUB_ID, new SubscriptionPlan[]{plan},
+            setSubscriptionPlans(TEST_SUB_ID, new SubscriptionPlan[]{plan},
                     mServiceContext.getOpPackageName());
 
             reset(mTelephonyManager, mNetworkManager, mNotifManager);
@@ -1637,7 +1642,7 @@
         {
             final SubscriptionPlan plan = buildMonthlyDataPlan(
                     ZonedDateTime.parse("2015-11-01T00:00:00.00Z"), BYTES_UNLIMITED);
-            mService.setSubscriptionPlans(TEST_SUB_ID, new SubscriptionPlan[]{plan},
+            setSubscriptionPlans(TEST_SUB_ID, new SubscriptionPlan[]{plan},
                     mServiceContext.getOpPackageName());
 
             reset(mTelephonyManager, mNetworkManager, mNotifManager);
@@ -1853,6 +1858,8 @@
         when(mSubscriptionManager.getActiveSubscriptionIdList()).thenReturn(
                 new int[] { TEST_SUB_ID });
         when(mTelephonyManager.getSubscriberId(TEST_SUB_ID)).thenReturn(TEST_IMSI);
+        when(mTelephonyManager.createForSubscriptionId(TEST_SUB_ID))
+                .thenReturn(mock(TelephonyManager.class));
         doNothing().when(mTelephonyManager).setPolicyDataEnabled(anyBoolean(), anyInt());
         expectNetworkState(false /* roaming */);
     }
@@ -1979,6 +1986,23 @@
 
     private FutureIntent mRestrictBackgroundChanged;
 
+    private void postMsgAndWaitForCompletion() throws InterruptedException {
+        final Handler handler = mService.getHandlerForTesting();
+        final CountDownLatch latch = new CountDownLatch(1);
+        mService.getHandlerForTesting().post(latch::countDown);
+        if (!latch.await(5, TimeUnit.SECONDS)) {
+            fail("Timed out waiting for the test msg to be handled");
+        }
+    }
+
+    private void setSubscriptionPlans(int subId, SubscriptionPlan[] plans, String callingPackage)
+            throws InterruptedException {
+        mService.setSubscriptionPlans(subId, plans, callingPackage);
+        // setSubscriptionPlans() triggers async events, wait for those to be completed before
+        // moving forward as they could interfere with the tests later.
+        postMsgAndWaitForCompletion();
+    }
+
     private void setRestrictBackground(boolean flag) throws Exception {
         mService.setRestrictBackground(flag);
         // Sanity check.
diff --git a/services/tests/servicestests/src/com/android/server/pm/ApexManagerTest.java b/services/tests/servicestests/src/com/android/server/pm/ApexManagerTest.java
new file mode 100644
index 0000000..6bb4202
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/pm/ApexManagerTest.java
@@ -0,0 +1,298 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package com.android.server.pm;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.testng.Assert.assertThrows;
+
+import android.apex.ApexInfo;
+import android.apex.ApexSessionInfo;
+import android.apex.IApexService;
+import android.content.Context;
+import android.content.pm.PackageInfo;
+import android.os.FileUtils;
+import android.os.RemoteException;
+import android.platform.test.annotations.Presubmit;
+
+import androidx.test.filters.SmallTest;
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.runner.AndroidJUnit4;
+
+import com.android.frameworks.servicestests.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+@SmallTest
+@Presubmit
+@RunWith(AndroidJUnit4.class)
+public class ApexManagerTest {
+    private static final String TEST_APEX_PKG = "com.android.apex.test";
+    private static final int TEST_SESSION_ID = 99999999;
+    private static final int[] TEST_CHILD_SESSION_ID = {8888, 7777};
+    private ApexManager mApexManager;
+    private Context mContext;
+
+    private IApexService mApexService = mock(IApexService.class);
+
+    @Before
+    public void setUp() throws RemoteException {
+        mContext = InstrumentationRegistry.getInstrumentation().getContext();
+        mApexManager = new ApexManager.ApexManagerImpl(mContext, mApexService);
+    }
+
+    @Test
+    public void testGetPackageInfo_setFlagsMatchActivePackage() throws RemoteException {
+        when(mApexService.getAllPackages()).thenReturn(createApexInfo(true, false));
+        final PackageInfo activePkgPi = mApexManager.getPackageInfo(TEST_APEX_PKG,
+                ApexManager.MATCH_ACTIVE_PACKAGE);
+
+        assertThat(activePkgPi).isNotNull();
+        assertThat(activePkgPi.packageName).contains(TEST_APEX_PKG);
+
+        final PackageInfo factoryPkgPi = mApexManager.getPackageInfo(TEST_APEX_PKG,
+                ApexManager.MATCH_FACTORY_PACKAGE);
+
+        assertThat(factoryPkgPi).isNull();
+    }
+
+    @Test
+    public void testGetPackageInfo_setFlagsMatchFactoryPackage() throws RemoteException {
+        when(mApexService.getAllPackages()).thenReturn(createApexInfo(false, true));
+        PackageInfo factoryPkgPi = mApexManager.getPackageInfo(TEST_APEX_PKG,
+                ApexManager.MATCH_FACTORY_PACKAGE);
+
+        assertThat(factoryPkgPi).isNotNull();
+        assertThat(factoryPkgPi.packageName).contains(TEST_APEX_PKG);
+
+        final PackageInfo activePkgPi = mApexManager.getPackageInfo(TEST_APEX_PKG,
+                ApexManager.MATCH_ACTIVE_PACKAGE);
+
+        assertThat(activePkgPi).isNull();
+    }
+
+    @Test
+    public void testGetPackageInfo_setFlagsNone() throws RemoteException {
+        when(mApexService.getAllPackages()).thenReturn(createApexInfo(false, true));
+
+        assertThat(mApexManager.getPackageInfo(TEST_APEX_PKG, 0)).isNull();
+    }
+
+    @Test
+    public void testGetActivePackages() throws RemoteException {
+        when(mApexService.getAllPackages()).thenReturn(createApexInfo(true, true));
+
+        assertThat(mApexManager.getActivePackages()).isNotEmpty();
+    }
+
+    @Test
+    public void testGetActivePackages_noneActivePackages() throws RemoteException {
+        when(mApexService.getAllPackages()).thenReturn(createApexInfo(false, true));
+
+        assertThat(mApexManager.getActivePackages()).isEmpty();
+    }
+
+    @Test
+    public void testGetFactoryPackages() throws RemoteException {
+        when(mApexService.getAllPackages()).thenReturn(createApexInfo(false, true));
+
+        assertThat(mApexManager.getFactoryPackages()).isNotEmpty();
+    }
+
+    @Test
+    public void testGetFactoryPackages_noneFactoryPackages() throws RemoteException {
+        when(mApexService.getAllPackages()).thenReturn(createApexInfo(true, false));
+
+        assertThat(mApexManager.getFactoryPackages()).isEmpty();
+    }
+
+    @Test
+    public void testGetInactivePackages() throws RemoteException {
+        when(mApexService.getAllPackages()).thenReturn(createApexInfo(false, true));
+
+        assertThat(mApexManager.getInactivePackages()).isNotEmpty();
+    }
+
+    @Test
+    public void testGetInactivePackages_noneInactivePackages() throws RemoteException {
+        when(mApexService.getAllPackages()).thenReturn(createApexInfo(true, false));
+
+        assertThat(mApexManager.getInactivePackages()).isEmpty();
+    }
+
+    @Test
+    public void testIsApexPackage() throws RemoteException {
+        when(mApexService.getAllPackages()).thenReturn(createApexInfo(false, true));
+
+        assertThat(mApexManager.isApexPackage(TEST_APEX_PKG)).isTrue();
+    }
+
+    @Test
+    public void testIsApexSupported() {
+        assertThat(mApexManager.isApexSupported()).isTrue();
+    }
+
+    @Test
+    public void testGetStagedSessionInfo() throws RemoteException {
+        when(mApexService.getStagedSessionInfo(anyInt())).thenReturn(
+                getFakeStagedSessionInfo());
+
+        mApexManager.getStagedSessionInfo(TEST_SESSION_ID);
+        verify(mApexService, times(1)).getStagedSessionInfo(TEST_SESSION_ID);
+    }
+
+    @Test
+    public void testGetStagedSessionInfo_unKnownStagedSessionId() throws RemoteException {
+        when(mApexService.getStagedSessionInfo(anyInt())).thenReturn(
+                getFakeUnknownSessionInfo());
+
+        assertThat(mApexManager.getStagedSessionInfo(TEST_SESSION_ID)).isNull();
+    }
+
+    @Test
+    public void testSubmitStagedSession_throwPackageManagerException() throws RemoteException {
+        doAnswer(invocation -> {
+            throw new Exception();
+        }).when(mApexService).submitStagedSession(anyInt(), any(), any());
+
+        assertThrows(PackageManagerException.class,
+                () -> mApexManager.submitStagedSession(TEST_SESSION_ID, TEST_CHILD_SESSION_ID));
+    }
+
+    @Test
+    public void testSubmitStagedSession_throwRunTimeException() throws RemoteException {
+        doThrow(RemoteException.class).when(mApexService).submitStagedSession(anyInt(), any(),
+                any());
+
+        assertThrows(RuntimeException.class,
+                () -> mApexManager.submitStagedSession(TEST_SESSION_ID, TEST_CHILD_SESSION_ID));
+    }
+
+    @Test
+    public void testMarkStagedSessionReady_throwPackageManagerException() throws RemoteException {
+        doAnswer(invocation -> {
+            throw new Exception();
+        }).when(mApexService).markStagedSessionReady(anyInt());
+
+        assertThrows(PackageManagerException.class,
+                () -> mApexManager.markStagedSessionReady(TEST_SESSION_ID));
+    }
+
+    @Test
+    public void testMarkStagedSessionReady_throwRunTimeException() throws RemoteException {
+        doThrow(RemoteException.class).when(mApexService).markStagedSessionReady(anyInt());
+
+        assertThrows(RuntimeException.class,
+                () -> mApexManager.markStagedSessionReady(TEST_SESSION_ID));
+    }
+
+    @Test
+    public void testAbortActiveSession_remoteException() throws RemoteException {
+        doThrow(RemoteException.class).when(mApexService).abortActiveSession();
+
+        try {
+            assertThat(mApexManager.abortActiveSession()).isFalse();
+        } catch (Exception e) {
+            throw new AssertionError("ApexManager should not raise Exception");
+        }
+    }
+
+    @Test
+    public void testMarkStagedSessionSuccessful_throwRemoteException() throws RemoteException {
+        doThrow(RemoteException.class).when(mApexService).markStagedSessionSuccessful(anyInt());
+
+        assertThrows(RuntimeException.class,
+                () -> mApexManager.markStagedSessionSuccessful(TEST_SESSION_ID));
+    }
+
+    @Test
+    public void testUninstallApex_throwException_returnFalse() throws RemoteException {
+        doAnswer(invocation -> {
+            throw new Exception();
+        }).when(mApexService).unstagePackages(any());
+
+        assertThat(mApexManager.uninstallApex(TEST_APEX_PKG)).isFalse();
+    }
+
+    private ApexInfo[] createApexInfo(boolean isActive, boolean isFactory) {
+        File apexFile = copyRawResourceToFile(TEST_APEX_PKG, R.raw.apex_test);
+        ApexInfo apexInfo = new ApexInfo();
+        apexInfo.isActive = isActive;
+        apexInfo.isFactory = isFactory;
+        apexInfo.moduleName = TEST_APEX_PKG;
+        apexInfo.modulePath = apexFile.getPath();
+        apexInfo.versionCode = 191000070;
+
+        return new ApexInfo[]{apexInfo};
+    }
+
+    private ApexSessionInfo getFakeStagedSessionInfo() {
+        ApexSessionInfo stagedSessionInfo = new ApexSessionInfo();
+        stagedSessionInfo.sessionId = TEST_SESSION_ID;
+        stagedSessionInfo.isStaged = true;
+
+        return stagedSessionInfo;
+    }
+
+    private ApexSessionInfo getFakeUnknownSessionInfo() {
+        ApexSessionInfo stagedSessionInfo = new ApexSessionInfo();
+        stagedSessionInfo.sessionId = TEST_SESSION_ID;
+        stagedSessionInfo.isUnknown = true;
+
+        return stagedSessionInfo;
+    }
+
+    /**
+     * Copies a specified {@code resourceId} to a temp file. Returns a non-null file if the copy
+     * succeeded
+     */
+    File copyRawResourceToFile(String baseName, int resourceId) {
+        File outFile;
+        try {
+            outFile = File.createTempFile(baseName, ".apex");
+        } catch (IOException e) {
+            throw new AssertionError("CreateTempFile IOException" + e);
+        }
+
+        try (InputStream is = mContext.getResources().openRawResource(resourceId);
+             FileOutputStream os = new FileOutputStream(outFile)) {
+            assertThat(FileUtils.copy(is, os)).isGreaterThan(0L);
+        } catch (FileNotFoundException e) {
+            throw new AssertionError("File not found exception " + e);
+        } catch (IOException e) {
+            throw new AssertionError("IOException" + e);
+        }
+
+        return outFile;
+    }
+}
diff --git a/services/tests/servicestests/src/com/android/server/pm/PackageBuilder.java b/services/tests/servicestests/src/com/android/server/pm/PackageBuilder.java
new file mode 100644
index 0000000..470d4fa
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/pm/PackageBuilder.java
@@ -0,0 +1,122 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package com.android.server.pm;
+
+import android.content.pm.PackageParser;
+
+import com.android.internal.util.ArrayUtils;
+
+class PackageBuilder {
+    final PackageParser.Package mPkg;
+
+    PackageBuilder(String packageName) {
+        mPkg = new PackageParser.Package(packageName);
+    }
+
+    PackageBuilder setApplicationInfoCodePath(String codePath) {
+        mPkg.applicationInfo.setCodePath(codePath);
+        return this;
+    }
+
+    PackageBuilder setApplicationInfoResourcePath(String resourcePath) {
+        mPkg.applicationInfo.setResourcePath(resourcePath);
+        return this;
+    }
+
+    PackageBuilder setCodePath(String codePath) {
+        mPkg.codePath = codePath;
+        return this;
+    }
+
+    PackageBuilder setBaseCodePath(String baseCodePath) {
+        mPkg.baseCodePath = baseCodePath;
+        return this;
+    }
+
+    PackageBuilder addUsesStaticLibrary(String name, long version) {
+        mPkg.usesStaticLibraries = ArrayUtils.add(mPkg.usesStaticLibraries, name);
+        mPkg.usesStaticLibrariesVersions =
+                ArrayUtils.appendLong(mPkg.usesStaticLibrariesVersions, version);
+        return this;
+    }
+
+    PackageBuilder setApplicationInfoNativeLibraryRootDir(String dir) {
+        mPkg.applicationInfo.nativeLibraryRootDir = dir;
+        return this;
+    }
+
+    PackageBuilder setStaticSharedLib(String staticSharedLibName, long staticSharedLibVersion) {
+        mPkg.staticSharedLibVersion = staticSharedLibVersion;
+        mPkg.staticSharedLibName = staticSharedLibName;
+        return this;
+    }
+
+    PackageBuilder setManifestPackageName(String manifestPackageName) {
+        mPkg.manifestPackageName = manifestPackageName;
+        return this;
+    }
+
+    PackageBuilder setVersionCodeMajor(int versionCodeMajor) {
+        mPkg.mVersionCodeMajor = versionCodeMajor;
+        return this;
+    }
+
+    PackageBuilder setVersionCode(int versionCode) {
+        mPkg.mVersionCode = versionCode;
+        return this;
+    }
+
+    PackageBuilder addSplitCodePath(String splitCodePath) {
+        mPkg.splitCodePaths =
+                ArrayUtils.appendElement(String.class, mPkg.splitCodePaths, splitCodePath);
+        return this;
+    }
+
+    PackageBuilder setApplicationInfoVolumeUuid(String volumeUuid) {
+        mPkg.applicationInfo.volumeUuid = volumeUuid;
+        return this;
+    }
+
+    PackageBuilder addLibraryName(String libraryName) {
+        mPkg.libraryNames = ArrayUtils.add(mPkg.libraryNames, libraryName);
+        return this;
+    }
+
+    PackageBuilder setRealPackageName(String realPackageName) {
+        mPkg.mRealPackage = realPackageName;
+        return this;
+    }
+
+    PackageBuilder setCpuAbiOVerride(String cpuAbiOverride) {
+        mPkg.cpuAbiOverride = cpuAbiOverride;
+        return this;
+    }
+
+    PackageBuilder addPermissionRequest(String permissionName) {
+        mPkg.requestedPermissions.add(permissionName);
+        return this;
+    }
+
+    PackageParser.Package build() {
+        return mPkg;
+    }
+
+    public PackageBuilder addApplicationInfoFlag(int flag) {
+        mPkg.applicationInfo.flags |= flag;
+        return this;
+    }
+}
diff --git a/services/tests/servicestests/src/com/android/server/pm/PackageManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/pm/PackageManagerServiceTest.java
index fc7cfec..0a310d1 100644
--- a/services/tests/servicestests/src/com/android/server/pm/PackageManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/PackageManagerServiceTest.java
@@ -118,17 +118,20 @@
         String[] partitions = { "system", "vendor", "odm", "oem", "product", "system_ext" };
         String[] appdir = { "app", "priv-app" };
         for (int i = 0; i < partitions.length; i++) {
+            final PackageManagerService.SystemPartition systemPartition =
+                    PackageManagerService.SYSTEM_PARTITIONS.get(i);
             for (int j = 0; j < appdir.length; j++) {
                 String canonical = new File("/" + partitions[i]).getCanonicalPath();
                 String path = String.format("%s/%s/A.apk", canonical, appdir[j]);
 
-                Assert.assertEquals(j == 1 && i != 3,
-                    PackageManagerService.locationIsPrivileged(path));
+                Assert.assertEquals(j == 1 && i != 3, systemPartition.containsPrivPath(path));
 
-                Assert.assertEquals(i == 1 || i == 2, PackageManagerService.locationIsVendor(path));
-                Assert.assertEquals(i == 3, PackageManagerService.locationIsOem(path));
-                Assert.assertEquals(i == 4, PackageManagerService.locationIsProduct(path));
-                Assert.assertEquals(i == 5, PackageManagerService.locationIsSystemExt(path));
+                final int scanFlag = systemPartition.scanFlag;
+                Assert.assertEquals(i == 1, scanFlag == PackageManagerService.SCAN_AS_VENDOR);
+                Assert.assertEquals(i == 2, scanFlag == PackageManagerService.SCAN_AS_ODM);
+                Assert.assertEquals(i == 3, scanFlag == PackageManagerService.SCAN_AS_OEM);
+                Assert.assertEquals(i == 4, scanFlag == PackageManagerService.SCAN_AS_PRODUCT);
+                Assert.assertEquals(i == 5, scanFlag == PackageManagerService.SCAN_AS_SYSTEM_EXT);
             }
         }
     }
diff --git a/services/tests/servicestests/src/com/android/server/pm/PackageSettingBuilder.java b/services/tests/servicestests/src/com/android/server/pm/PackageSettingBuilder.java
new file mode 100644
index 0000000..b42cfd8
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/pm/PackageSettingBuilder.java
@@ -0,0 +1,154 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package com.android.server.pm;
+
+import android.content.pm.PackageUserState;
+import android.util.SparseArray;
+
+import java.io.File;
+import java.util.List;
+
+class PackageSettingBuilder {
+    private String mName;
+    private String mRealName;
+    private String mCodePath;
+    private String mResourcePath;
+    private String mLegacyNativeLibraryPathString;
+    private String mPrimaryCpuAbiString;
+    private String mSecondaryCpuAbiString;
+    private String mCpuAbiOverrideString;
+    private long mPVersionCode;
+    private int mPkgFlags;
+    private int mPrivateFlags;
+    private String mParentPackageName;
+    private List<String> mChildPackageNames;
+    private int mSharedUserId;
+    private String[] mUsesStaticLibraries;
+    private long[] mUsesStaticLibrariesVersions;
+    private String mVolumeUuid;
+    private SparseArray<PackageUserState> mUserStates = new SparseArray<>();
+
+    public PackageSettingBuilder setName(String name) {
+        this.mName = name;
+        return this;
+    }
+
+    public PackageSettingBuilder setRealName(String realName) {
+        this.mRealName = realName;
+        return this;
+    }
+
+    public PackageSettingBuilder setCodePath(String codePath) {
+        this.mCodePath = codePath;
+        return this;
+    }
+
+    public PackageSettingBuilder setResourcePath(String resourcePath) {
+        this.mResourcePath = resourcePath;
+        return this;
+    }
+
+    public PackageSettingBuilder setLegacyNativeLibraryPathString(
+            String legacyNativeLibraryPathString) {
+        this.mLegacyNativeLibraryPathString = legacyNativeLibraryPathString;
+        return this;
+    }
+
+    public PackageSettingBuilder setPrimaryCpuAbiString(String primaryCpuAbiString) {
+        this.mPrimaryCpuAbiString = primaryCpuAbiString;
+        return this;
+    }
+
+    public PackageSettingBuilder setSecondaryCpuAbiString(String secondaryCpuAbiString) {
+        this.mSecondaryCpuAbiString = secondaryCpuAbiString;
+        return this;
+    }
+
+    public PackageSettingBuilder setCpuAbiOverrideString(String cpuAbiOverrideString) {
+        this.mCpuAbiOverrideString = cpuAbiOverrideString;
+        return this;
+    }
+
+    public PackageSettingBuilder setPVersionCode(long pVersionCode) {
+        this.mPVersionCode = pVersionCode;
+        return this;
+    }
+
+    public PackageSettingBuilder setPkgFlags(int pkgFlags) {
+        this.mPkgFlags = pkgFlags;
+        return this;
+    }
+
+    public PackageSettingBuilder setPrivateFlags(int privateFlags) {
+        this.mPrivateFlags = privateFlags;
+        return this;
+    }
+
+    public PackageSettingBuilder setParentPackageName(String parentPackageName) {
+        this.mParentPackageName = parentPackageName;
+        return this;
+    }
+
+    public PackageSettingBuilder setChildPackageNames(List<String> childPackageNames) {
+        this.mChildPackageNames = childPackageNames;
+        return this;
+    }
+
+    public PackageSettingBuilder setSharedUserId(int sharedUserId) {
+        this.mSharedUserId = sharedUserId;
+        return this;
+    }
+
+    public PackageSettingBuilder setUsesStaticLibraries(String[] usesStaticLibraries) {
+        this.mUsesStaticLibraries = usesStaticLibraries;
+        return this;
+    }
+
+    public PackageSettingBuilder setUsesStaticLibrariesVersions(
+            long[] usesStaticLibrariesVersions) {
+        this.mUsesStaticLibrariesVersions = usesStaticLibrariesVersions;
+        return this;
+    }
+
+    public PackageSettingBuilder setVolumeUuid(String volumeUuid) {
+        this.mVolumeUuid = volumeUuid;
+        return this;
+    }
+
+    public PackageSettingBuilder setInstantAppUserState(int userId, boolean isInstant) {
+        if (mUserStates.indexOfKey(userId) < 0) {
+            mUserStates.put(userId, new PackageUserState());
+        }
+        mUserStates.get(userId).instantApp = isInstant;
+        return this;
+    }
+
+    public PackageSetting build() {
+        final PackageSetting packageSetting = new PackageSetting(mName, mRealName,
+                new File(mCodePath), new File(mResourcePath),
+                mLegacyNativeLibraryPathString, mPrimaryCpuAbiString, mSecondaryCpuAbiString,
+                mCpuAbiOverrideString, mPVersionCode, mPkgFlags, mPrivateFlags, mParentPackageName,
+                mChildPackageNames, mSharedUserId, mUsesStaticLibraries,
+                mUsesStaticLibrariesVersions);
+        packageSetting.volumeUuid = this.mVolumeUuid;
+        for (int i = 0; i < mUserStates.size(); i++) {
+            packageSetting.setUserState(mUserStates.keyAt(i), mUserStates.valueAt(i));
+        }
+        return packageSetting;
+
+    }
+}
diff --git a/services/tests/servicestests/src/com/android/server/pm/ScanRequestBuilder.java b/services/tests/servicestests/src/com/android/server/pm/ScanRequestBuilder.java
new file mode 100644
index 0000000..34a3f86
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/pm/ScanRequestBuilder.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package com.android.server.pm;
+
+import android.content.pm.PackageParser;
+import android.os.UserHandle;
+
+class ScanRequestBuilder {
+    private final PackageParser.Package mPkg;
+    private PackageParser.Package mOldPkg;
+    private SharedUserSetting mSharedUserSetting;
+    private PackageSetting mPkgSetting;
+    private PackageSetting mDisabledPkgSetting;
+    private PackageSetting mOriginalPkgSetting;
+    private String mRealPkgName;
+    private int mParseFlags;
+    private int mScanFlags;
+    private UserHandle mUser;
+    private boolean mIsPlatformPackage;
+
+    ScanRequestBuilder(PackageParser.Package pkg) {
+        this.mPkg = pkg;
+    }
+
+    public ScanRequestBuilder setOldPkg(PackageParser.Package oldPkg) {
+        this.mOldPkg = oldPkg;
+        return this;
+    }
+
+    public ScanRequestBuilder setSharedUserSetting(SharedUserSetting sharedUserSetting) {
+        this.mSharedUserSetting = sharedUserSetting;
+        return this;
+    }
+
+    public ScanRequestBuilder setPkgSetting(PackageSetting pkgSetting) {
+        this.mPkgSetting = pkgSetting;
+        return this;
+    }
+
+    public ScanRequestBuilder setDisabledPkgSetting(PackageSetting disabledPkgSetting) {
+        this.mDisabledPkgSetting = disabledPkgSetting;
+        return this;
+    }
+
+    public ScanRequestBuilder setOriginalPkgSetting(PackageSetting originalPkgSetting) {
+        this.mOriginalPkgSetting = originalPkgSetting;
+        return this;
+    }
+
+    public ScanRequestBuilder setRealPkgName(String realPkgName) {
+        this.mRealPkgName = realPkgName;
+        return this;
+    }
+
+    public ScanRequestBuilder setParseFlags(int parseFlags) {
+        this.mParseFlags = parseFlags;
+        return this;
+    }
+
+    public ScanRequestBuilder addParseFlag(int parseFlag) {
+        this.mParseFlags |= parseFlag;
+        return this;
+    }
+
+    public ScanRequestBuilder setScanFlags(int scanFlags) {
+        this.mScanFlags = scanFlags;
+        return this;
+    }
+
+    public ScanRequestBuilder addScanFlag(int scanFlag) {
+        this.mScanFlags |= scanFlag;
+        return this;
+    }
+
+    public ScanRequestBuilder setUser(UserHandle user) {
+        this.mUser = user;
+        return this;
+    }
+
+    public ScanRequestBuilder setIsPlatformPackage(boolean isPlatformPackage) {
+        this.mIsPlatformPackage = isPlatformPackage;
+        return this;
+    }
+
+    PackageManagerService.ScanRequest build() {
+        return new PackageManagerService.ScanRequest(
+                mPkg, mSharedUserSetting, mOldPkg, mPkgSetting, mDisabledPkgSetting,
+                mOriginalPkgSetting, mRealPkgName, mParseFlags, mScanFlags, mIsPlatformPackage,
+                mUser);
+    }
+}
diff --git a/services/tests/servicestests/src/com/android/server/pm/ScanTests.java b/services/tests/servicestests/src/com/android/server/pm/ScanTests.java
new file mode 100644
index 0000000..dd3d8b9
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/pm/ScanTests.java
@@ -0,0 +1,551 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package com.android.server.pm;
+
+import static android.content.pm.SharedLibraryInfo.TYPE_DYNAMIC;
+import static android.content.pm.SharedLibraryInfo.TYPE_STATIC;
+import static android.content.pm.SharedLibraryInfo.VERSION_UNDEFINED;
+
+import static com.android.server.pm.PackageManagerService.SCAN_AS_FULL_APP;
+import static com.android.server.pm.PackageManagerService.SCAN_AS_INSTANT_APP;
+import static com.android.server.pm.PackageManagerService.SCAN_FIRST_BOOT_OR_UPGRADE;
+import static com.android.server.pm.PackageManagerService.SCAN_NEW_INSTALL;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.empty;
+import static org.hamcrest.Matchers.hasItems;
+import static org.hamcrest.Matchers.nullValue;
+import static org.hamcrest.collection.IsArrayContainingInOrder.arrayContaining;
+import static org.hamcrest.core.Is.is;
+import static org.junit.Assert.assertNotSame;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.nullable;
+import static org.mockito.Mockito.when;
+
+import android.Manifest;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageParser;
+import android.content.pm.SharedLibraryInfo;
+import android.os.Environment;
+import android.os.UserHandle;
+import android.os.UserManagerInternal;
+import android.platform.test.annotations.Presubmit;
+import android.util.Pair;
+
+import org.hamcrest.BaseMatcher;
+import org.hamcrest.Description;
+import org.hamcrest.Matcher;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+
+import java.io.File;
+
+@RunWith(MockitoJUnitRunner.class)
+@Presubmit
+// TODO: shared user tests
+public class ScanTests {
+
+    private static final String DUMMY_PACKAGE_NAME = "some.app.to.test";
+
+    @Mock
+    PackageAbiHelper mMockPackageAbiHelper;
+    @Mock
+    UserManagerInternal mMockUserManager;
+
+    @Before
+    public void setupDefaultUser() {
+        when(mMockUserManager.getUserIds()).thenReturn(new int[]{0});
+    }
+
+    @Before
+    public void setupDefaultAbiBehavior() throws Exception {
+        when(mMockPackageAbiHelper.derivePackageAbi(
+                any(PackageParser.Package.class), nullable(String.class), anyBoolean()))
+                .thenReturn(new Pair<>(
+                        new PackageAbiHelper.Abis("derivedPrimary", "derivedSecondary"),
+                        new PackageAbiHelper.NativeLibraryPaths(
+                                "derivedRootDir", true, "derivedNativeDir", "derivedNativeDir2")));
+        when(mMockPackageAbiHelper.getNativeLibraryPaths(
+                any(PackageParser.Package.class), any(File.class)))
+                .thenReturn(new PackageAbiHelper.NativeLibraryPaths(
+                        "getRootDir", true, "getNativeDir", "getNativeDir2"
+                ));
+        when(mMockPackageAbiHelper.getBundledAppAbis(
+                any(PackageParser.Package.class)))
+                .thenReturn(new PackageAbiHelper.Abis("bundledPrimary", "bundledSecondary"));
+    }
+
+    @Test
+    public void newInstallSimpleAllNominal() throws Exception {
+        final PackageManagerService.ScanRequest scanRequest =
+                createBasicScanRequestBuilder(createBasicPackage(DUMMY_PACKAGE_NAME).build())
+                        .addScanFlag(PackageManagerService.SCAN_NEW_INSTALL)
+                        .addScanFlag(PackageManagerService.SCAN_AS_FULL_APP)
+                        .build();
+
+        final PackageManagerService.ScanResult scanResult = executeScan(scanRequest);
+
+        assertBasicPackageScanResult(scanResult, DUMMY_PACKAGE_NAME, false /*isInstant*/);
+        assertThat(scanResult.existingSettingCopied, is(false));
+        assertPathsNotDerived(scanResult);
+    }
+
+    @Test
+    public void newInstallForAllUsers() throws Exception {
+        final int[] userIds = {0, 10, 11};
+        when(mMockUserManager.getUserIds()).thenReturn(userIds);
+
+        final PackageManagerService.ScanRequest scanRequest =
+                createBasicScanRequestBuilder(createBasicPackage(DUMMY_PACKAGE_NAME).build())
+                        .setRealPkgName(null)
+                        .addScanFlag(PackageManagerService.SCAN_NEW_INSTALL)
+                        .addScanFlag(PackageManagerService.SCAN_AS_FULL_APP)
+                        .build();
+        final PackageManagerService.ScanResult scanResult = executeScan(scanRequest);
+
+        for (int uid : userIds) {
+            assertThat(scanResult.pkgSetting.readUserState(uid).installed, is(true));
+        }
+    }
+
+    @Test
+    public void installRealPackageName() throws Exception {
+        final PackageManagerService.ScanRequest scanRequest =
+                createBasicScanRequestBuilder(createBasicPackage(DUMMY_PACKAGE_NAME).build())
+                        .setRealPkgName("com.package.real")
+                        .build();
+
+        final PackageManagerService.ScanResult scanResult = executeScan(scanRequest);
+
+        assertThat(scanResult.pkgSetting.realName, is("com.package.real"));
+
+        final PackageManagerService.ScanRequest scanRequestNoRealPkg =
+                createBasicScanRequestBuilder(
+                        createBasicPackage(DUMMY_PACKAGE_NAME)
+                                .setRealPackageName("com.package.real").build())
+                        .build();
+
+        final PackageManagerService.ScanResult scanResultNoReal = executeScan(scanRequestNoRealPkg);
+        assertThat(scanResultNoReal.pkgSetting.realName, nullValue());
+    }
+
+    @Test
+    public void updateSimpleNominal() throws Exception {
+        when(mMockUserManager.getUserIds()).thenReturn(new int[]{0});
+
+        final PackageSetting pkgSetting = createBasicPackageSettingBuilder(DUMMY_PACKAGE_NAME)
+                .setPrimaryCpuAbiString("primaryCpuAbi")
+                .setSecondaryCpuAbiString("secondaryCpuAbi")
+                .build();
+        final PackageManagerService.ScanRequest scanRequest =
+                createBasicScanRequestBuilder(createBasicPackage(DUMMY_PACKAGE_NAME).build())
+                        .addScanFlag(PackageManagerService.SCAN_AS_FULL_APP)
+                        .setPkgSetting(pkgSetting)
+                        .build();
+
+
+        final PackageManagerService.ScanResult scanResult = executeScan(scanRequest);
+
+        assertThat(scanResult.existingSettingCopied, is(true));
+
+        // ensure we don't overwrite the existing pkgSetting, in case something post-scan fails
+        assertNotSame(pkgSetting, scanResult.pkgSetting);
+
+        assertBasicPackageScanResult(scanResult, DUMMY_PACKAGE_NAME, false /*isInstant*/);
+
+        assertThat(scanResult.pkgSetting.primaryCpuAbiString, is("primaryCpuAbi"));
+        assertThat(scanResult.pkgSetting.secondaryCpuAbiString, is("secondaryCpuAbi"));
+        assertThat(scanResult.pkgSetting.cpuAbiOverrideString, nullValue());
+
+        assertPathsNotDerived(scanResult);
+    }
+
+    @Test
+    public void updateInstantSimpleNominal() throws Exception {
+        when(mMockUserManager.getUserIds()).thenReturn(new int[]{0});
+
+        final PackageSetting existingPkgSetting =
+                createBasicPackageSettingBuilder(DUMMY_PACKAGE_NAME)
+                        .setInstantAppUserState(0, true)
+                        .build();
+
+        final PackageManagerService.ScanRequest scanRequest =
+                createBasicScanRequestBuilder(createBasicPackage(DUMMY_PACKAGE_NAME).build())
+                        .setPkgSetting(existingPkgSetting)
+                        .build();
+
+
+        final PackageManagerService.ScanResult scanResult = executeScan(scanRequest);
+
+        assertBasicPackageScanResult(scanResult, DUMMY_PACKAGE_NAME, true /*isInstant*/);
+    }
+
+    @Test
+    public void installStaticSharedLibrary() throws Exception {
+        final PackageParser.Package pkg = createBasicPackage("static.lib.pkg.123")
+                .setStaticSharedLib("static.lib", 123L)
+                .setManifestPackageName("static.lib.pkg")
+                .setVersionCodeMajor(1)
+                .setVersionCode(234)
+                .setBaseCodePath("/some/path.apk")
+                .addSplitCodePath("/some/other/path.apk")
+                .build();
+
+        final PackageManagerService.ScanRequest scanRequest = new ScanRequestBuilder(
+                pkg).setUser(UserHandle.of(0)).build();
+
+
+        final PackageManagerService.ScanResult scanResult = executeScan(scanRequest);
+
+        assertThat(scanResult.staticSharedLibraryInfo.getPackageName(), is("static.lib.pkg.123"));
+        assertThat(scanResult.staticSharedLibraryInfo.getName(), is("static.lib"));
+        assertThat(scanResult.staticSharedLibraryInfo.getLongVersion(), is(123L));
+        assertThat(scanResult.staticSharedLibraryInfo.getType(), is(TYPE_STATIC));
+        assertThat(scanResult.staticSharedLibraryInfo.getDeclaringPackage().getPackageName(),
+                is("static.lib.pkg"));
+        assertThat(scanResult.staticSharedLibraryInfo.getDeclaringPackage().getLongVersionCode(),
+                is(pkg.getLongVersionCode()));
+        assertThat(scanResult.staticSharedLibraryInfo.getAllCodePaths(),
+                hasItems("/some/path.apk", "/some/other/path.apk"));
+        assertThat(scanResult.staticSharedLibraryInfo.getDependencies(), nullValue());
+        assertThat(scanResult.staticSharedLibraryInfo.getDependentPackages(), empty());
+    }
+
+    @Test
+    public void installDynamicLibraries() throws Exception {
+        final PackageParser.Package pkg = createBasicPackage("dynamic.lib.pkg")
+                .setManifestPackageName("dynamic.lib.pkg")
+                .addLibraryName("liba")
+                .addLibraryName("libb")
+                .setVersionCodeMajor(1)
+                .setVersionCode(234)
+                .setBaseCodePath("/some/path.apk")
+                .addSplitCodePath("/some/other/path.apk")
+                .build();
+
+        final PackageManagerService.ScanRequest scanRequest =
+                new ScanRequestBuilder(pkg).setUser(UserHandle.of(0)).build();
+
+
+        final PackageManagerService.ScanResult scanResult = executeScan(scanRequest);
+
+        final SharedLibraryInfo dynamicLib0 = scanResult.dynamicSharedLibraryInfos.get(0);
+        assertThat(dynamicLib0.getPackageName(), is("dynamic.lib.pkg"));
+        assertThat(dynamicLib0.getName(), is("liba"));
+        assertThat(dynamicLib0.getLongVersion(), is((long) VERSION_UNDEFINED));
+        assertThat(dynamicLib0.getType(), is(TYPE_DYNAMIC));
+        assertThat(dynamicLib0.getDeclaringPackage().getPackageName(), is("dynamic.lib.pkg"));
+        assertThat(dynamicLib0.getDeclaringPackage().getLongVersionCode(),
+                is(pkg.getLongVersionCode()));
+        assertThat(dynamicLib0.getAllCodePaths(),
+                hasItems("/some/path.apk", "/some/other/path.apk"));
+        assertThat(dynamicLib0.getDependencies(), nullValue());
+        assertThat(dynamicLib0.getDependentPackages(), empty());
+
+        final SharedLibraryInfo dynamicLib1 = scanResult.dynamicSharedLibraryInfos.get(1);
+        assertThat(dynamicLib1.getPackageName(), is("dynamic.lib.pkg"));
+        assertThat(dynamicLib1.getName(), is("libb"));
+        assertThat(dynamicLib1.getLongVersion(), is((long) VERSION_UNDEFINED));
+        assertThat(dynamicLib1.getType(), is(TYPE_DYNAMIC));
+        assertThat(dynamicLib1.getDeclaringPackage().getPackageName(), is("dynamic.lib.pkg"));
+        assertThat(dynamicLib1.getDeclaringPackage().getLongVersionCode(),
+                is(pkg.getLongVersionCode()));
+        assertThat(dynamicLib1.getAllCodePaths(),
+                hasItems("/some/path.apk", "/some/other/path.apk"));
+        assertThat(dynamicLib1.getDependencies(), nullValue());
+        assertThat(dynamicLib1.getDependentPackages(), empty());
+    }
+
+    @Test
+    public void volumeUuidChangesOnUpdate() throws Exception {
+        final PackageSetting pkgSetting =
+                createBasicPackageSettingBuilder(DUMMY_PACKAGE_NAME)
+                        .setVolumeUuid("someUuid")
+                        .build();
+
+        final PackageParser.Package basicPackage = createBasicPackage(DUMMY_PACKAGE_NAME)
+                .setApplicationInfoVolumeUuid("someNewUuid")
+                .build();
+
+
+        final PackageManagerService.ScanResult scanResult = executeScan(
+                new ScanRequestBuilder(basicPackage).setPkgSetting(pkgSetting).build());
+
+        assertThat(scanResult.pkgSetting.volumeUuid, is("someNewUuid"));
+    }
+
+    @Test
+    public void scanFirstBoot_derivesAbis() throws Exception {
+        final PackageSetting pkgSetting =
+                createBasicPackageSettingBuilder(DUMMY_PACKAGE_NAME).build();
+
+        final PackageParser.Package basicPackage =
+                createBasicPackage(DUMMY_PACKAGE_NAME)
+                        .setCpuAbiOVerride("testOverride")
+                        .build();
+
+
+        final PackageManagerService.ScanResult scanResult = executeScan(new ScanRequestBuilder(
+                basicPackage)
+                .setPkgSetting(pkgSetting)
+                .addScanFlag(SCAN_FIRST_BOOT_OR_UPGRADE)
+                .build());
+
+        assertAbiAndPathssDerived(scanResult);
+    }
+
+    @Test
+    public void scanWithOriginalPkgSetting_packageNameChanges() throws Exception {
+        final PackageSetting originalPkgSetting =
+                createBasicPackageSettingBuilder("original.package").build();
+
+        final PackageParser.Package basicPackage =
+                createBasicPackage(DUMMY_PACKAGE_NAME)
+                        .build();
+
+
+        final PackageManagerService.ScanResult result =
+                executeScan(new ScanRequestBuilder(basicPackage)
+                        .setOriginalPkgSetting(originalPkgSetting)
+                        .build());
+
+        assertThat(result.request.pkg.packageName, is("original.package"));
+    }
+
+    @Test
+    public void updateInstant_changeToFull() throws Exception {
+        when(mMockUserManager.getUserIds()).thenReturn(new int[]{0});
+
+        final PackageSetting existingPkgSetting =
+                createBasicPackageSettingBuilder(DUMMY_PACKAGE_NAME)
+                        .setInstantAppUserState(0, true)
+                        .build();
+
+        final PackageManagerService.ScanRequest scanRequest =
+                createBasicScanRequestBuilder(createBasicPackage(DUMMY_PACKAGE_NAME).build())
+                        .setPkgSetting(existingPkgSetting)
+                        .addScanFlag(SCAN_AS_FULL_APP)
+                        .build();
+
+
+        final PackageManagerService.ScanResult scanResult = executeScan(scanRequest);
+
+        assertBasicPackageScanResult(scanResult, DUMMY_PACKAGE_NAME, false /*isInstant*/);
+    }
+
+    @Test
+    public void updateFull_changeToInstant() throws Exception {
+        when(mMockUserManager.getUserIds()).thenReturn(new int[]{0});
+
+        final PackageSetting existingPkgSetting =
+                createBasicPackageSettingBuilder(DUMMY_PACKAGE_NAME)
+                        .setInstantAppUserState(0, false)
+                        .build();
+
+        final PackageManagerService.ScanRequest scanRequest =
+                createBasicScanRequestBuilder(createBasicPackage(DUMMY_PACKAGE_NAME).build())
+                        .setPkgSetting(existingPkgSetting)
+                        .addScanFlag(SCAN_AS_INSTANT_APP)
+                        .build();
+
+
+        final PackageManagerService.ScanResult scanResult = executeScan(scanRequest);
+
+        assertBasicPackageScanResult(scanResult, DUMMY_PACKAGE_NAME, true /*isInstant*/);
+    }
+
+    @Test
+    public void updateSystemApp_applicationInfoFlagSet() throws Exception {
+        final PackageSetting existingPkgSetting =
+                createBasicPackageSettingBuilder(DUMMY_PACKAGE_NAME)
+                        .setPkgFlags(ApplicationInfo.FLAG_SYSTEM)
+                        .build();
+
+        final PackageManagerService.ScanRequest scanRequest =
+                createBasicScanRequestBuilder(createBasicPackage(DUMMY_PACKAGE_NAME).build())
+                        .setPkgSetting(existingPkgSetting)
+                        .setDisabledPkgSetting(existingPkgSetting)
+                        .addScanFlag(SCAN_NEW_INSTALL)
+                        .build();
+
+        final PackageManagerService.ScanResult scanResult = executeScan(scanRequest);
+
+        assertThat(scanResult.request.pkg.applicationInfo.flags,
+                hasFlag(ApplicationInfo.FLAG_UPDATED_SYSTEM_APP));
+    }
+
+    @Test
+    public void factoryTestFlagSet() throws Exception {
+        final PackageParser.Package basicPackage = createBasicPackage(DUMMY_PACKAGE_NAME)
+                .addPermissionRequest(Manifest.permission.FACTORY_TEST)
+                .build();
+
+        final PackageManagerService.ScanResult scanResult = PackageManagerService.scanPackageOnlyLI(
+                createBasicScanRequestBuilder(basicPackage).build(),
+                new PackageManagerService.Injector(mMockUserManager, mMockPackageAbiHelper),
+                true /*isUnderFactoryTest*/,
+                System.currentTimeMillis());
+
+        assertThat(scanResult.request.pkg.applicationInfo.flags,
+                hasFlag(ApplicationInfo.FLAG_FACTORY_TEST));
+    }
+
+    @Test
+    public void scanSystemApp_isOrphanedTrue() throws Exception {
+        final PackageParser.Package pkg = createBasicPackage(DUMMY_PACKAGE_NAME)
+                .addApplicationInfoFlag(ApplicationInfo.FLAG_SYSTEM)
+                .build();
+
+        final PackageManagerService.ScanRequest scanRequest =
+                createBasicScanRequestBuilder(pkg)
+                        .build();
+
+        final PackageManagerService.ScanResult scanResult = executeScan(scanRequest);
+
+        assertThat(scanResult.pkgSetting.isOrphaned, is(true));
+    }
+
+    private static Matcher<Integer> hasFlag(final int flag) {
+        return new BaseMatcher<Integer>() {
+            @Override public void describeTo(Description description) {
+                description.appendText("flags ");
+            }
+
+            @Override public boolean matches(Object item) {
+                return ((int) item & flag) != 0;
+            }
+
+            @Override
+            public void describeMismatch(Object item, Description mismatchDescription) {
+                mismatchDescription
+                        .appendValue(item)
+                        .appendText(" does not contain flag ")
+                        .appendValue(flag);
+            }
+        };
+    }
+
+    private PackageManagerService.ScanResult executeScan(
+            PackageManagerService.ScanRequest scanRequest) throws PackageManagerException {
+        return PackageManagerService.scanPackageOnlyLI(
+                scanRequest,
+                new PackageManagerService.Injector(mMockUserManager, mMockPackageAbiHelper),
+                false /*isUnderFactoryTest*/,
+                System.currentTimeMillis());
+    }
+
+    private static String createResourcePath(String packageName) {
+        return "/data/app/" + packageName + "-randompath/base.apk";
+    }
+
+    private static String createCodePath(String packageName) {
+        return "/data/app/" + packageName + "-randompath";
+    }
+
+    private static PackageSettingBuilder createBasicPackageSettingBuilder(String packageName) {
+        return new PackageSettingBuilder()
+                .setName(packageName)
+                .setCodePath(createCodePath(packageName))
+                .setResourcePath(createResourcePath(packageName));
+    }
+
+    private static ScanRequestBuilder createBasicScanRequestBuilder(PackageParser.Package pkg) {
+        return new ScanRequestBuilder(pkg)
+                .setUser(UserHandle.of(0));
+    }
+
+
+    private static PackageBuilder createBasicPackage(String packageName) {
+        return new PackageBuilder(packageName)
+                .setCodePath("/data/tmp/randompath")
+                .setApplicationInfoCodePath(createCodePath(packageName))
+                .setApplicationInfoResourcePath(createResourcePath(packageName))
+                .setApplicationInfoVolumeUuid("volumeUuid")
+                .setBaseCodePath("/data/tmp/randompath/base.apk")
+                .addUsesStaticLibrary("some.static.library", 234L)
+                .addUsesStaticLibrary("some.other.static.library", 456L)
+                .setApplicationInfoNativeLibraryRootDir("/data/tmp/randompath/base.apk:/lib")
+                .setVersionCodeMajor(1)
+                .setVersionCode(2345);
+    }
+
+    private static void assertBasicPackageScanResult(
+            PackageManagerService.ScanResult scanResult, String packageName, boolean isInstant) {
+        assertThat(scanResult.success, is(true));
+
+        final PackageSetting pkgSetting = scanResult.pkgSetting;
+        assertBasicPackageSetting(scanResult, packageName, isInstant, pkgSetting);
+
+        final ApplicationInfo applicationInfo = pkgSetting.pkg.applicationInfo;
+        assertBasicApplicationInfo(scanResult, applicationInfo);
+
+    }
+
+    private static void assertBasicPackageSetting(PackageManagerService.ScanResult scanResult,
+            String packageName, boolean isInstant, PackageSetting pkgSetting) {
+        assertThat(pkgSetting.pkg.packageName, is(packageName));
+        assertThat(pkgSetting.getInstantApp(0), is(isInstant));
+        assertThat(pkgSetting.usesStaticLibraries,
+                arrayContaining("some.static.library", "some.other.static.library"));
+        assertThat(pkgSetting.usesStaticLibrariesVersions, is(new long[]{234L, 456L}));
+        assertThat(pkgSetting.pkg, is(scanResult.request.pkg));
+        assertThat(pkgSetting.pkg.mExtras, is(pkgSetting));
+        assertThat(pkgSetting.codePath, is(new File(createCodePath(packageName))));
+        assertThat(pkgSetting.resourcePath, is(new File(createResourcePath(packageName))));
+        assertThat(pkgSetting.versionCode, is(PackageInfo.composeLongVersionCode(1, 2345)));
+    }
+
+    private static void assertBasicApplicationInfo(PackageManagerService.ScanResult scanResult,
+            ApplicationInfo applicationInfo) {
+        assertThat(applicationInfo.processName, is(scanResult.request.pkg.packageName));
+
+        final int uid = applicationInfo.uid;
+        assertThat(UserHandle.getUserId(uid), is(UserHandle.USER_SYSTEM));
+
+        final String calculatedCredentialId = Environment.getDataUserCePackageDirectory(
+                applicationInfo.volumeUuid, UserHandle.USER_SYSTEM,
+                scanResult.request.pkg.packageName).getAbsolutePath();
+        assertThat(applicationInfo.credentialProtectedDataDir, is(calculatedCredentialId));
+        assertThat(applicationInfo.dataDir, is(applicationInfo.credentialProtectedDataDir));
+    }
+
+    private static void assertAbiAndPathssDerived(PackageManagerService.ScanResult scanResult) {
+        final ApplicationInfo applicationInfo = scanResult.pkgSetting.pkg.applicationInfo;
+        assertThat(applicationInfo.primaryCpuAbi, is("derivedPrimary"));
+        assertThat(applicationInfo.secondaryCpuAbi, is("derivedSecondary"));
+
+        assertThat(applicationInfo.nativeLibraryRootDir, is("derivedRootDir"));
+        assertThat(scanResult.pkgSetting.legacyNativeLibraryPathString, is("derivedRootDir"));
+        assertThat(applicationInfo.nativeLibraryRootRequiresIsa, is(true));
+        assertThat(applicationInfo.nativeLibraryDir, is("derivedNativeDir"));
+        assertThat(applicationInfo.secondaryNativeLibraryDir, is("derivedNativeDir2"));
+    }
+
+    private static void assertPathsNotDerived(PackageManagerService.ScanResult scanResult) {
+        final ApplicationInfo applicationInfo = scanResult.pkgSetting.pkg.applicationInfo;
+        assertThat(applicationInfo.nativeLibraryRootDir, is("getRootDir"));
+        assertThat(scanResult.pkgSetting.legacyNativeLibraryPathString, is("getRootDir"));
+        assertThat(applicationInfo.nativeLibraryRootRequiresIsa, is(true));
+        assertThat(applicationInfo.nativeLibraryDir, is("getNativeDir"));
+        assertThat(applicationInfo.secondaryNativeLibraryDir, is("getNativeDir2"));
+    }
+}
diff --git a/services/tests/servicestests/src/com/android/server/recoverysystem/RecoverySystemServiceTest.java b/services/tests/servicestests/src/com/android/server/recoverysystem/RecoverySystemServiceTest.java
new file mode 100644
index 0000000..1f312bf
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/recoverysystem/RecoverySystemServiceTest.java
@@ -0,0 +1,197 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package com.android.server.recoverysystem;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.os.Handler;
+import android.os.IPowerManager;
+import android.os.IRecoverySystemProgressListener;
+import android.os.Looper;
+import android.os.PowerManager;
+
+import androidx.test.InstrumentationRegistry;
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.io.FileWriter;
+
+/**
+ * atest FrameworksServicesTests:RecoverySystemServiceTest
+ */
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class RecoverySystemServiceTest {
+    private RecoverySystemService mRecoverySystemService;
+    private RecoverySystemServiceTestable.FakeSystemProperties mSystemProperties;
+    private RecoverySystemService.UncryptSocket mUncryptSocket;
+    private Context mContext;
+    private IPowerManager mIPowerManager;
+    private FileWriter mUncryptUpdateFileWriter;
+
+    @Before
+    public void setup() {
+        mContext = mock(Context.class);
+        mSystemProperties = new RecoverySystemServiceTestable.FakeSystemProperties();
+        mUncryptSocket = mock(RecoverySystemService.UncryptSocket.class);
+        mUncryptUpdateFileWriter = mock(FileWriter.class);
+
+        Looper looper = InstrumentationRegistry.getContext().getMainLooper();
+        mIPowerManager = mock(IPowerManager.class);
+        PowerManager powerManager = new PowerManager(mock(Context.class), mIPowerManager,
+                new Handler(looper));
+
+        mRecoverySystemService = new RecoverySystemServiceTestable(mContext, mSystemProperties,
+                powerManager, mUncryptUpdateFileWriter, mUncryptSocket);
+    }
+
+    @Test
+    public void clearBcb_success() throws Exception {
+        doNothing().when(mContext).enforceCallingOrSelfPermission(
+                eq(android.Manifest.permission.RECOVERY), any());
+        when(mUncryptSocket.getPercentageUncrypted()).thenReturn(100);
+
+        assertThat(mRecoverySystemService.clearBcb(), is(true));
+
+        assertThat(mSystemProperties.getCtlStart(), is("clear-bcb"));
+        verify(mUncryptSocket).sendAck();
+        verify(mUncryptSocket).close();
+    }
+
+    @Test
+    public void clearBcb_uncrypt_failure() throws Exception {
+        doNothing().when(mContext).enforceCallingOrSelfPermission(
+                eq(android.Manifest.permission.RECOVERY), any());
+        when(mUncryptSocket.getPercentageUncrypted()).thenReturn(0);
+
+        assertThat(mRecoverySystemService.clearBcb(), is(false));
+
+        assertThat(mSystemProperties.getCtlStart(), is("clear-bcb"));
+        verify(mUncryptSocket).sendAck();
+        verify(mUncryptSocket).close();
+    }
+
+    @Test(expected = SecurityException.class)
+    public void clearBcb_noPerm() {
+        doThrow(SecurityException.class).when(mContext).enforceCallingOrSelfPermission(
+                eq(android.Manifest.permission.RECOVERY), any());
+        mRecoverySystemService.clearBcb();
+    }
+
+    @Test
+    public void setupBcb_success() throws Exception {
+        doNothing().when(mContext).enforceCallingOrSelfPermission(
+                eq(android.Manifest.permission.RECOVERY), any());
+        when(mUncryptSocket.getPercentageUncrypted()).thenReturn(100);
+
+        assertThat(mRecoverySystemService.setupBcb("foo"), is(true));
+
+        assertThat(mSystemProperties.getCtlStart(), is("setup-bcb"));
+        verify(mUncryptSocket).sendCommand("foo");
+        verify(mUncryptSocket).sendAck();
+        verify(mUncryptSocket).close();
+    }
+
+    @Test
+    public void setupBcb_uncrypt_failure() throws Exception {
+        doNothing().when(mContext).enforceCallingOrSelfPermission(
+                eq(android.Manifest.permission.RECOVERY), any());
+        when(mUncryptSocket.getPercentageUncrypted()).thenReturn(0);
+
+        assertThat(mRecoverySystemService.setupBcb("foo"), is(false));
+
+        assertThat(mSystemProperties.getCtlStart(), is("setup-bcb"));
+        verify(mUncryptSocket).sendCommand("foo");
+        verify(mUncryptSocket).sendAck();
+        verify(mUncryptSocket).close();
+    }
+
+    @Test(expected = SecurityException.class)
+    public void setupBcb_noPerm() {
+        doThrow(SecurityException.class).when(mContext).enforceCallingOrSelfPermission(
+                eq(android.Manifest.permission.RECOVERY), any());
+        mRecoverySystemService.setupBcb("foo");
+    }
+
+    @Test
+    public void rebootRecoveryWithCommand_success() throws Exception {
+        doNothing().when(mContext).enforceCallingOrSelfPermission(
+                eq(android.Manifest.permission.RECOVERY), any());
+        when(mUncryptSocket.getPercentageUncrypted()).thenReturn(100);
+
+        mRecoverySystemService.rebootRecoveryWithCommand("foo");
+
+        assertThat(mSystemProperties.getCtlStart(), is("setup-bcb"));
+        verify(mUncryptSocket).sendCommand("foo");
+        verify(mUncryptSocket).sendAck();
+        verify(mUncryptSocket).close();
+        verify(mIPowerManager).reboot(anyBoolean(), eq("recovery"), anyBoolean());
+    }
+
+    @Test
+    public void rebootRecoveryWithCommand_failure() throws Exception {
+        doNothing().when(mContext).enforceCallingOrSelfPermission(
+                eq(android.Manifest.permission.RECOVERY), any());
+        when(mUncryptSocket.getPercentageUncrypted()).thenReturn(0);
+
+        mRecoverySystemService.rebootRecoveryWithCommand("foo");
+
+        assertThat(mSystemProperties.getCtlStart(), is("setup-bcb"));
+        verify(mUncryptSocket).sendCommand("foo");
+        verify(mUncryptSocket).sendAck();
+        verify(mUncryptSocket).close();
+        verifyNoMoreInteractions(mIPowerManager);
+    }
+
+    @Test(expected = SecurityException.class)
+    public void rebootRecoveryWithCommand_noPerm() {
+        doThrow(SecurityException.class).when(mContext).enforceCallingOrSelfPermission(
+                eq(android.Manifest.permission.RECOVERY), any());
+        mRecoverySystemService.rebootRecoveryWithCommand("foo");
+    }
+
+    @Test
+    public void uncrypt_success() throws Exception {
+        doNothing().when(mContext).enforceCallingOrSelfPermission(
+                eq(android.Manifest.permission.RECOVERY), any());
+        when(mUncryptSocket.getPercentageUncrypted()).thenReturn(0, 5, 25, 50, 90, 99, 100);
+
+        IRecoverySystemProgressListener listener = mock(IRecoverySystemProgressListener.class);
+        assertThat(mRecoverySystemService.uncrypt("foo.zip", listener), is(true));
+
+        assertThat(mSystemProperties.getCtlStart(), is("uncrypt"));
+        verify(mUncryptSocket, times(7)).getPercentageUncrypted();
+        verify(mUncryptSocket).sendAck();
+        verify(mUncryptSocket).close();
+    }
+}
diff --git a/services/tests/servicestests/src/com/android/server/recoverysystem/RecoverySystemServiceTestable.java b/services/tests/servicestests/src/com/android/server/recoverysystem/RecoverySystemServiceTestable.java
new file mode 100644
index 0000000..a986b71
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/recoverysystem/RecoverySystemServiceTestable.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package com.android.server.recoverysystem;
+
+import android.content.Context;
+import android.os.PowerManager;
+
+import java.io.FileWriter;
+
+public class RecoverySystemServiceTestable extends RecoverySystemService {
+    private static class MockInjector extends RecoverySystemService.Injector {
+        private final FakeSystemProperties mSystemProperties;
+        private final PowerManager mPowerManager;
+        private final FileWriter mUncryptPackageFileWriter;
+        private final UncryptSocket mUncryptSocket;
+
+        MockInjector(Context context, FakeSystemProperties systemProperties,
+                PowerManager powerManager, FileWriter uncryptPackageFileWriter,
+                UncryptSocket uncryptSocket) {
+            super(context);
+            mSystemProperties = systemProperties;
+            mPowerManager = powerManager;
+            mUncryptPackageFileWriter = uncryptPackageFileWriter;
+            mUncryptSocket = uncryptSocket;
+        }
+
+        @Override
+        public PowerManager getPowerManager() {
+            return mPowerManager;
+        }
+
+        @Override
+        public String systemPropertiesGet(String key) {
+            return mSystemProperties.get(key);
+        }
+
+        @Override
+        public void systemPropertiesSet(String key, String value) {
+            mSystemProperties.set(key, value);
+        }
+
+        @Override
+        public boolean uncryptPackageFileDelete() {
+            return true;
+        }
+
+        @Override
+        public String getUncryptPackageFileName() {
+            return "mock-file.txt";
+        }
+
+        @Override
+        public FileWriter getUncryptPackageFileWriter() {
+            return mUncryptPackageFileWriter;
+        }
+
+        @Override
+        public UncryptSocket connectService() {
+            return mUncryptSocket;
+        }
+
+        @Override
+        public void threadSleep(long millis) {
+        }
+    }
+
+    RecoverySystemServiceTestable(Context context, FakeSystemProperties systemProperties,
+            PowerManager powerManager, FileWriter uncryptPackageFileWriter,
+            UncryptSocket uncryptSocket) {
+        super(new MockInjector(context, systemProperties, powerManager, uncryptPackageFileWriter,
+                uncryptSocket));
+    }
+
+    public static class FakeSystemProperties {
+        private String mCtlStart = null;
+
+        public String get(String key) {
+            if (RecoverySystemService.INIT_SERVICE_UNCRYPT.equals(key)
+                    || RecoverySystemService.INIT_SERVICE_SETUP_BCB.equals(key)
+                    || RecoverySystemService.INIT_SERVICE_CLEAR_BCB.equals(key)) {
+                return null;
+            } else {
+                throw new IllegalArgumentException("unexpected test key: " + key);
+            }
+        }
+
+        public void set(String key, String value) {
+            if ("ctl.start".equals(key)) {
+                mCtlStart = value;
+            } else {
+                throw new IllegalArgumentException("unexpected test key: " + key);
+            }
+        }
+
+        public String getCtlStart() {
+            return mCtlStart;
+        }
+    }
+}
diff --git a/services/tests/servicestests/src/com/android/server/rollback/AppDataRollbackHelperTest.java b/services/tests/servicestests/src/com/android/server/rollback/AppDataRollbackHelperTest.java
index 7986055..8cb5197 100644
--- a/services/tests/servicestests/src/com/android/server/rollback/AppDataRollbackHelperTest.java
+++ b/services/tests/servicestests/src/com/android/server/rollback/AppDataRollbackHelperTest.java
@@ -16,6 +16,7 @@
 
 package com.android.server.rollback;
 
+import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
@@ -58,8 +59,8 @@
         // All users are unlocked so we should snapshot data for them.
         doReturn(true).when(helper).isUserCredentialLocked(eq(10));
         doReturn(true).when(helper).isUserCredentialLocked(eq(11));
-        PackageRollbackInfo info = createPackageRollbackInfo("com.foo.bar", new int[]{10, 11});
-        helper.snapshotAppData(5, info);
+        PackageRollbackInfo info = createPackageRollbackInfo("com.foo.bar");
+        helper.snapshotAppData(5, info, new int[]{10, 11});
 
         assertEquals(2, info.getPendingBackups().size());
         assertEquals(10, info.getPendingBackups().get(0));
@@ -79,8 +80,8 @@
         doReturn(true).when(helper).isUserCredentialLocked(eq(11));
         when(installer.snapshotAppData(anyString(), anyInt(), anyInt(), anyInt())).thenReturn(239L);
 
-        PackageRollbackInfo info2 = createPackageRollbackInfo("com.foo.bar", new int[]{10, 11});
-        helper.snapshotAppData(7, info2);
+        PackageRollbackInfo info2 = createPackageRollbackInfo("com.foo.bar");
+        helper.snapshotAppData(7, info2, new int[]{10, 11});
         assertEquals(1, info2.getPendingBackups().size());
         assertEquals(11, info2.getPendingBackups().get(0));
 
@@ -234,22 +235,22 @@
         wasRecentlyRestored.getPendingRestores().add(
                 new RestoreInfo(73 /* userId */, 239 /* appId*/, "seInfo"));
 
-        RollbackData dataWithPendingBackup = new RollbackData(101, new File("/does/not/exist"), -1);
+        Rollback dataWithPendingBackup = new Rollback(101, new File("/does/not/exist"), -1);
         dataWithPendingBackup.info.getPackages().add(pendingBackup);
 
-        RollbackData dataWithRecentRestore = new RollbackData(17239, new File("/does/not/exist"),
+        Rollback dataWithRecentRestore = new Rollback(17239, new File("/does/not/exist"),
                 -1);
         dataWithRecentRestore.info.getPackages().add(wasRecentlyRestored);
 
-        RollbackData dataForDifferentUser = new RollbackData(17239, new File("/does/not/exist"),
+        Rollback dataForDifferentUser = new Rollback(17239, new File("/does/not/exist"),
                 -1);
         dataForDifferentUser.info.getPackages().add(ignoredInfo);
 
-        RollbackData dataForRestore = new RollbackData(17239, new File("/does/not/exist"), -1);
+        Rollback dataForRestore = new Rollback(17239, new File("/does/not/exist"), -1);
         dataForRestore.info.getPackages().add(pendingRestore);
         dataForRestore.info.getPackages().add(wasRecentlyRestored);
 
-        Set<RollbackData> changed = helper.commitPendingBackupAndRestoreForUser(37,
+        Set<Rollback> changed = helper.commitPendingBackupAndRestoreForUser(37,
                 Arrays.asList(dataWithPendingBackup, dataWithRecentRestore, dataForDifferentUser,
                     dataForRestore));
         InOrder inOrder = Mockito.inOrder(installer);
@@ -264,7 +265,7 @@
         assertEquals(-1, pendingBackup.getPendingBackups().indexOf(37));
         assertEquals(53, pendingBackup.getCeSnapshotInodes().get(37));
 
-        // Check that changed returns correct RollbackData.
+        // Check that changed returns correct Rollback.
         assertEquals(3, changed.size());
         assertTrue(changed.contains(dataWithPendingBackup));
         assertTrue(changed.contains(dataWithRecentRestore));
@@ -278,4 +279,15 @@
 
         inOrder.verifyNoMoreInteractions();
     }
+
+    @Test
+    public void snapshotAddDataSavesSnapshottedUsersToInfo() {
+        Installer installer = mock(Installer.class);
+        AppDataRollbackHelper helper = new AppDataRollbackHelper(installer);
+
+        PackageRollbackInfo info = createPackageRollbackInfo("com.foo.bar");
+        helper.snapshotAppData(5, info, new int[]{10, 11});
+
+        assertArrayEquals(info.getSnapshottedUsers().toArray(), new int[]{10, 11});
+    }
 }
diff --git a/services/tests/servicestests/src/com/android/server/timedetector/SimpleTimeZoneDetectorStrategyTest.java b/services/tests/servicestests/src/com/android/server/timedetector/SimpleTimeDetectorStrategyTest.java
similarity index 68%
rename from services/tests/servicestests/src/com/android/server/timedetector/SimpleTimeZoneDetectorStrategyTest.java
rename to services/tests/servicestests/src/com/android/server/timedetector/SimpleTimeDetectorStrategyTest.java
index d797955..8a7edf7 100644
--- a/services/tests/servicestests/src/com/android/server/timedetector/SimpleTimeZoneDetectorStrategyTest.java
+++ b/services/tests/servicestests/src/com/android/server/timedetector/SimpleTimeDetectorStrategyTest.java
@@ -23,6 +23,7 @@
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import android.app.timedetector.ManualTimeSuggestion;
 import android.app.timedetector.PhoneTimeSuggestion;
 import android.content.Intent;
 import android.icu.util.Calendar;
@@ -36,8 +37,10 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import java.time.Duration;
+
 @RunWith(AndroidJUnit4.class)
-public class SimpleTimeZoneDetectorStrategyTest {
+public class SimpleTimeDetectorStrategyTest {
 
     private static final Scenario SCENARIO_1 = new Scenario.Builder()
             .setInitialDeviceSystemClockUtc(1977, 1, 1, 12, 0, 0)
@@ -47,6 +50,8 @@
 
     private static final int ARBITRARY_PHONE_ID = 123456;
 
+    private static final long ONE_DAY_MILLIS = Duration.ofDays(1).toMillis();
+
     private Script mScript;
 
     @Before
@@ -55,7 +60,7 @@
     }
 
     @Test
-    public void testSuggestPhoneTime_nitz_timeDetectionEnabled() {
+    public void testSuggestPhoneTime_autoTimeEnabled() {
         Scenario scenario = SCENARIO_1;
         mScript.pokeFakeClocks(scenario)
                 .pokeTimeDetectionEnabled(true);
@@ -67,7 +72,20 @@
 
         mScript.simulateTimePassing(clockIncrement)
                 .simulatePhoneTimeSuggestion(timeSuggestion)
-                .verifySystemClockWasSetAndResetCallTracking(expectSystemClockMillis);
+                .verifySystemClockWasSetAndResetCallTracking(
+                        expectSystemClockMillis, true /* expectNetworkBroadcast */);
+    }
+
+    @Test
+    public void testSuggestPhoneTime_emptySuggestionIgnored() {
+        Scenario scenario = SCENARIO_1;
+        mScript.pokeFakeClocks(scenario)
+                .pokeTimeDetectionEnabled(true);
+
+        PhoneTimeSuggestion timeSuggestion = createPhoneTimeSuggestion(ARBITRARY_PHONE_ID, null);
+
+        mScript.simulatePhoneTimeSuggestion(timeSuggestion)
+                .verifySystemClockWasNotSetAndResetCallTracking();
     }
 
     @Test
@@ -91,7 +109,8 @@
 
         // Send the first time signal. It should be used.
         mScript.simulatePhoneTimeSuggestion(timeSuggestion1)
-                .verifySystemClockWasSetAndResetCallTracking(expectSystemClockMillis1);
+                .verifySystemClockWasSetAndResetCallTracking(
+                        expectSystemClockMillis1, true /* expectNetworkBroadcast */);
 
         // Now send another time signal, but one that is too similar to the last one and should be
         // ignored.
@@ -99,7 +118,8 @@
         TimestampedValue<Long> utcTime2 = new TimestampedValue<>(
                 mScript.peekElapsedRealtimeMillis(),
                 mScript.peekSystemClockMillis() + underThresholdMillis);
-        PhoneTimeSuggestion timeSuggestion2 = new PhoneTimeSuggestion(ARBITRARY_PHONE_ID, utcTime2);
+        PhoneTimeSuggestion timeSuggestion2 =
+                createPhoneTimeSuggestion(ARBITRARY_PHONE_ID, utcTime2);
         mScript.simulateTimePassing(clockIncrement)
                 .simulatePhoneTimeSuggestion(timeSuggestion2)
                 .verifySystemClockWasNotSetAndResetCallTracking();
@@ -109,18 +129,20 @@
                 mScript.peekElapsedRealtimeMillis(),
                 mScript.peekSystemClockMillis() + systemClockUpdateThresholdMillis);
 
-        PhoneTimeSuggestion timeSuggestion3 = new PhoneTimeSuggestion(ARBITRARY_PHONE_ID, utcTime3);
+        PhoneTimeSuggestion timeSuggestion3 =
+                createPhoneTimeSuggestion(ARBITRARY_PHONE_ID, utcTime3);
         mScript.simulateTimePassing(clockIncrement);
 
         long expectSystemClockMillis3 =
                 TimeDetectorStrategy.getTimeAt(utcTime3, mScript.peekElapsedRealtimeMillis());
 
         mScript.simulatePhoneTimeSuggestion(timeSuggestion3)
-                .verifySystemClockWasSetAndResetCallTracking(expectSystemClockMillis3);
+                .verifySystemClockWasSetAndResetCallTracking(
+                        expectSystemClockMillis3, true /* expectNetworkBroadcast */);
     }
 
     @Test
-    public void testSuggestPhoneTime_nitz_timeDetectionDisabled() {
+    public void testSuggestPhoneTime_autoTimeDisabled() {
         Scenario scenario = SCENARIO_1;
         mScript.pokeFakeClocks(scenario)
                 .pokeTimeDetectionEnabled(false);
@@ -132,7 +154,7 @@
     }
 
     @Test
-    public void testSuggestPhoneTime_nitz_invalidNitzReferenceTimesIgnored() {
+    public void testSuggestPhoneTime_invalidNitzReferenceTimesIgnored() {
         Scenario scenario = SCENARIO_1;
         final int systemClockUpdateThreshold = 2000;
         mScript.pokeFakeClocks(scenario)
@@ -147,7 +169,8 @@
         long expectedSystemClockMillis1 =
                 TimeDetectorStrategy.getTimeAt(utcTime1, mScript.peekElapsedRealtimeMillis());
         mScript.simulatePhoneTimeSuggestion(timeSuggestion1)
-                .verifySystemClockWasSetAndResetCallTracking(expectedSystemClockMillis1);
+                .verifySystemClockWasSetAndResetCallTracking(
+                        expectedSystemClockMillis1, true /* expectNetworkBroadcast */);
 
         // The UTC time increment should be larger than the system clock update threshold so we
         // know it shouldn't be ignored for other reasons.
@@ -158,7 +181,8 @@
         long referenceTimeBeforeLastSignalMillis = utcTime1.getReferenceTimeMillis() - 1;
         TimestampedValue<Long> utcTime2 = new TimestampedValue<>(
                 referenceTimeBeforeLastSignalMillis, validUtcTimeMillis);
-        PhoneTimeSuggestion timeSuggestion2 = new PhoneTimeSuggestion(ARBITRARY_PHONE_ID, utcTime2);
+        PhoneTimeSuggestion timeSuggestion2 =
+                createPhoneTimeSuggestion(ARBITRARY_PHONE_ID, utcTime2);
         mScript.simulatePhoneTimeSuggestion(timeSuggestion2)
                 .verifySystemClockWasNotSetAndResetCallTracking();
 
@@ -168,7 +192,8 @@
                 utcTime1.getReferenceTimeMillis() + Integer.MAX_VALUE + 1;
         TimestampedValue<Long> utcTime3 = new TimestampedValue<>(
                 referenceTimeInFutureMillis, validUtcTimeMillis);
-        PhoneTimeSuggestion timeSuggestion3 = new PhoneTimeSuggestion(ARBITRARY_PHONE_ID, utcTime3);
+        PhoneTimeSuggestion timeSuggestion3 =
+                createPhoneTimeSuggestion(ARBITRARY_PHONE_ID, utcTime3);
         mScript.simulatePhoneTimeSuggestion(timeSuggestion3)
                 .verifySystemClockWasNotSetAndResetCallTracking();
 
@@ -178,9 +203,11 @@
                 validReferenceTimeMillis, validUtcTimeMillis);
         long expectedSystemClockMillis4 =
                 TimeDetectorStrategy.getTimeAt(utcTime4, mScript.peekElapsedRealtimeMillis());
-        PhoneTimeSuggestion timeSuggestion4 = new PhoneTimeSuggestion(ARBITRARY_PHONE_ID, utcTime4);
+        PhoneTimeSuggestion timeSuggestion4 =
+                createPhoneTimeSuggestion(ARBITRARY_PHONE_ID, utcTime4);
         mScript.simulatePhoneTimeSuggestion(timeSuggestion4)
-                .verifySystemClockWasSetAndResetCallTracking(expectedSystemClockMillis4);
+                .verifySystemClockWasSetAndResetCallTracking(
+                        expectedSystemClockMillis4, true /* expectNetworkBroadcast */);
     }
 
     @Test
@@ -212,7 +239,8 @@
 
         // Turn on auto time detection.
         mScript.simulateAutoTimeDetectionToggle()
-                .verifySystemClockWasSetAndResetCallTracking(expectedSystemClockMillis1);
+                .verifySystemClockWasSetAndResetCallTracking(
+                        expectedSystemClockMillis1, true /* expectNetworkBroadcast */);
 
         // Turn off auto time detection.
         mScript.simulateAutoTimeDetectionToggle()
@@ -223,7 +251,8 @@
         TimestampedValue<Long> utcTime2 = new TimestampedValue<>(
                 mScript.peekElapsedRealtimeMillis(),
                 mScript.peekSystemClockMillis() + systemClockUpdateThreshold);
-        PhoneTimeSuggestion timeSuggestion2 = new PhoneTimeSuggestion(ARBITRARY_PHONE_ID, utcTime2);
+        PhoneTimeSuggestion timeSuggestion2 =
+                createPhoneTimeSuggestion(ARBITRARY_PHONE_ID, utcTime2);
 
         // Simulate more time passing.
         mScript.simulateTimePassing(clockIncrementMillis);
@@ -238,7 +267,99 @@
 
         // Turn on auto time detection.
         mScript.simulateAutoTimeDetectionToggle()
-                .verifySystemClockWasSetAndResetCallTracking(expectedSystemClockMillis2);
+                .verifySystemClockWasSetAndResetCallTracking(
+                        expectedSystemClockMillis2, true /* expectNetworkBroadcast */);
+    }
+
+    @Test
+    public void testSuggestManualTime_autoTimeDisabled() {
+        Scenario scenario = SCENARIO_1;
+        mScript.pokeFakeClocks(scenario)
+                .pokeTimeDetectionEnabled(false);
+
+        ManualTimeSuggestion timeSuggestion = scenario.createManualTimeSuggestionForActual();
+        final int clockIncrement = 1000;
+        long expectSystemClockMillis = scenario.getActualTimeMillis() + clockIncrement;
+
+        mScript.simulateTimePassing(clockIncrement)
+                .simulateManualTimeSuggestion(timeSuggestion)
+                .verifySystemClockWasSetAndResetCallTracking(
+                        expectSystemClockMillis, false /* expectNetworkBroadcast */);
+    }
+
+    @Test
+    public void testSuggestManualTime_retainsAutoSignal() {
+        Scenario scenario = SCENARIO_1;
+
+        // Configure the start state.
+        mScript.pokeFakeClocks(scenario)
+                .pokeTimeDetectionEnabled(true);
+
+        // Simulate a phone suggestion.
+        PhoneTimeSuggestion phoneTimeSuggestion =
+                scenario.createPhoneTimeSuggestionForActual(ARBITRARY_PHONE_ID);
+        long expectedAutoClockMillis = phoneTimeSuggestion.getUtcTime().getValue();
+        final int clockIncrement = 1000;
+
+        // Simulate the passage of time.
+        mScript.simulateTimePassing(clockIncrement);
+        expectedAutoClockMillis += clockIncrement;
+
+        mScript.simulatePhoneTimeSuggestion(phoneTimeSuggestion)
+                .verifySystemClockWasSetAndResetCallTracking(
+                        expectedAutoClockMillis, true /* expectNetworkBroadcast */);
+
+        // Simulate the passage of time.
+        mScript.simulateTimePassing(clockIncrement);
+        expectedAutoClockMillis += clockIncrement;
+
+        // Switch to manual.
+        mScript.simulateAutoTimeDetectionToggle()
+                .verifySystemClockWasNotSetAndResetCallTracking();
+
+        // Simulate the passage of time.
+        mScript.simulateTimePassing(clockIncrement);
+        expectedAutoClockMillis += clockIncrement;
+
+
+        // Simulate a manual suggestion 1 day different from the auto suggestion.
+        long manualTimeMillis = SCENARIO_1.getActualTimeMillis() + ONE_DAY_MILLIS;
+        long expectedManualClockMillis = manualTimeMillis;
+        ManualTimeSuggestion manualTimeSuggestion = createManualTimeSuggestion(manualTimeMillis);
+        mScript.simulateManualTimeSuggestion(manualTimeSuggestion)
+                .verifySystemClockWasSetAndResetCallTracking(
+                        expectedManualClockMillis, false /* expectNetworkBroadcast */);
+
+        // Simulate the passage of time.
+        mScript.simulateTimePassing(clockIncrement);
+        expectedAutoClockMillis += clockIncrement;
+
+        // Switch back to auto.
+        mScript.simulateAutoTimeDetectionToggle();
+
+        mScript.verifySystemClockWasSetAndResetCallTracking(
+                        expectedAutoClockMillis, true /* expectNetworkBroadcast */);
+
+        // Switch back to manual - nothing should happen to the clock.
+        mScript.simulateAutoTimeDetectionToggle()
+                .verifySystemClockWasNotSetAndResetCallTracking();
+    }
+
+    /**
+     * Manual suggestions should be ignored if auto time is enabled.
+     */
+    @Test
+    public void testSuggestManualTime_autoTimeEnabled() {
+        Scenario scenario = SCENARIO_1;
+        mScript.pokeFakeClocks(scenario)
+                .pokeTimeDetectionEnabled(true);
+
+        ManualTimeSuggestion timeSuggestion = scenario.createManualTimeSuggestionForActual();
+        final int clockIncrement = 1000;
+
+        mScript.simulateTimePassing(clockIncrement)
+                .simulateManualTimeSuggestion(timeSuggestion)
+                .verifySystemClockWasNotSetAndResetCallTracking();
     }
 
     /**
@@ -262,7 +383,7 @@
         }
 
         @Override
-        public boolean isTimeDetectionEnabled() {
+        public boolean isAutoTimeDetectionEnabled() {
             return mTimeDetectionEnabled;
         }
 
@@ -319,7 +440,7 @@
             mSystemClockMillis = systemClockMillis;
         }
 
-        public void pokeTimeDetectionEnabled(boolean enabled) {
+        public void pokeAutoTimeDetectionEnabled(boolean enabled) {
             mTimeDetectionEnabled = enabled;
         }
 
@@ -336,6 +457,10 @@
             mSystemClockMillis += incrementMillis;
         }
 
+        public void simulateAutoTimeZoneDetectionToggle() {
+            mTimeDetectionEnabled = !mTimeDetectionEnabled;
+        }
+
         public void verifySystemClockNotSet() {
             assertFalse(mSystemClockWasSet);
         }
@@ -372,7 +497,7 @@
         private final FakeCallback mFakeCallback;
         private final SimpleTimeDetectorStrategy mSimpleTimeDetectorStrategy;
 
-        public Script() {
+        Script() {
             mFakeCallback = new FakeCallback();
             mSimpleTimeDetectorStrategy = new SimpleTimeDetectorStrategy();
             mSimpleTimeDetectorStrategy.initialize(mFakeCallback);
@@ -380,7 +505,7 @@
         }
 
         Script pokeTimeDetectionEnabled(boolean enabled) {
-            mFakeCallback.pokeTimeDetectionEnabled(enabled);
+            mFakeCallback.pokeAutoTimeDetectionEnabled(enabled);
             return this;
         }
 
@@ -408,10 +533,14 @@
             return this;
         }
 
+        Script simulateManualTimeSuggestion(ManualTimeSuggestion timeSuggestion) {
+            mSimpleTimeDetectorStrategy.suggestManualTime(timeSuggestion);
+            return this;
+        }
+
         Script simulateAutoTimeDetectionToggle() {
-            boolean enabled = !mFakeCallback.isTimeDetectionEnabled();
-            mFakeCallback.pokeTimeDetectionEnabled(enabled);
-            mSimpleTimeDetectorStrategy.handleAutoTimeDetectionToggle(enabled);
+            mFakeCallback.simulateAutoTimeZoneDetectionToggle();
+            mSimpleTimeDetectorStrategy.handleAutoTimeDetectionChanged();
             return this;
         }
 
@@ -427,9 +556,12 @@
             return this;
         }
 
-        Script verifySystemClockWasSetAndResetCallTracking(long expectSystemClockMillis) {
+        Script verifySystemClockWasSetAndResetCallTracking(
+                long expectSystemClockMillis, boolean expectNetworkBroadcast) {
             mFakeCallback.verifySystemClockWasSet(expectSystemClockMillis);
-            mFakeCallback.verifyIntentWasBroadcast();
+            if (expectNetworkBroadcast) {
+                mFakeCallback.verifyIntentWasBroadcast();
+            }
             mFakeCallback.resetCallTracking();
             return this;
         }
@@ -465,7 +597,13 @@
         PhoneTimeSuggestion createPhoneTimeSuggestionForActual(int phoneId) {
             TimestampedValue<Long> time = new TimestampedValue<>(
                     mInitialDeviceRealtimeMillis, mActualTimeMillis);
-            return new PhoneTimeSuggestion(phoneId, time);
+            return createPhoneTimeSuggestion(phoneId, time);
+        }
+
+        ManualTimeSuggestion createManualTimeSuggestionForActual() {
+            TimestampedValue<Long> time = new TimestampedValue<>(
+                    mInitialDeviceRealtimeMillis, mActualTimeMillis);
+            return new ManualTimeSuggestion(time);
         }
 
         static class Builder {
@@ -500,6 +638,19 @@
         }
     }
 
+    private static PhoneTimeSuggestion createPhoneTimeSuggestion(int phoneId,
+            TimestampedValue<Long> utcTime) {
+        PhoneTimeSuggestion timeSuggestion = new PhoneTimeSuggestion(phoneId);
+        timeSuggestion.setUtcTime(utcTime);
+        return timeSuggestion;
+    }
+
+    private ManualTimeSuggestion createManualTimeSuggestion(long timeMillis) {
+        TimestampedValue<Long> utcTime =
+                new TimestampedValue<>(mScript.peekElapsedRealtimeMillis(), timeMillis);
+        return new ManualTimeSuggestion(utcTime);
+    }
+
     private static long createUtcTime(int year, int monthInYear, int day, int hourOfDay, int minute,
             int second) {
         Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("Etc/UTC"));
diff --git a/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorServiceTest.java b/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorServiceTest.java
index 37da018..9951e85 100644
--- a/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/timedetector/TimeDetectorServiceTest.java
@@ -17,26 +17,30 @@
 package com.android.server.timedetector;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.timedetector.ManualTimeSuggestion;
 import android.app.timedetector.PhoneTimeSuggestion;
 import android.content.Context;
 import android.content.pm.PackageManager;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.Looper;
+import android.os.Message;
 import android.util.TimestampedValue;
 
 import androidx.test.runner.AndroidJUnit4;
 
 import com.android.server.timedetector.TimeDetectorStrategy.Callback;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -51,45 +55,66 @@
     private Callback mMockCallback;
 
     private TimeDetectorService mTimeDetectorService;
+    private HandlerThread mHandlerThread;
+    private TestHandler mTestHandler;
+
 
     @Before
     public void setUp() {
         mMockContext = mock(Context.class);
+
+        // Create a thread + handler for processing the work that the service posts.
+        mHandlerThread = new HandlerThread("TimeDetectorServiceTest");
+        mHandlerThread.start();
+        mTestHandler = new TestHandler(mHandlerThread.getLooper());
+
         mMockCallback = mock(Callback.class);
         mStubbedTimeDetectorStrategy = new StubbedTimeDetectorStrategy();
 
         mTimeDetectorService = new TimeDetectorService(
-                mMockContext, mMockCallback,
+                mMockContext, mTestHandler, mMockCallback,
                 mStubbedTimeDetectorStrategy);
     }
 
-    @Test(expected=SecurityException.class)
-    public void testStubbedCall_withoutPermission() {
-        doThrow(new SecurityException("Mock"))
-                .when(mMockContext).enforceCallingPermission(anyString(), any());
-        PhoneTimeSuggestion phoneTimeSuggestion = createPhoneTimeSuggestion();
-
-        try {
-            mTimeDetectorService.suggestPhoneTime(phoneTimeSuggestion);
-        } finally {
-            verify(mMockContext).enforceCallingPermission(
-                    eq(android.Manifest.permission.SET_TIME), anyString());
-        }
+    @After
+    public void tearDown() throws Exception {
+        mHandlerThread.quit();
+        mHandlerThread.join();
     }
 
     @Test
-    public void testSuggestPhoneTime() {
+    public void testSuggestPhoneTime() throws Exception {
         doNothing().when(mMockContext).enforceCallingPermission(anyString(), any());
 
         PhoneTimeSuggestion phoneTimeSuggestion = createPhoneTimeSuggestion();
         mTimeDetectorService.suggestPhoneTime(phoneTimeSuggestion);
+        mTestHandler.assertTotalMessagesEnqueued(1);
 
-        verify(mMockContext)
-                .enforceCallingPermission(eq(android.Manifest.permission.SET_TIME), anyString());
+        verify(mMockContext).enforceCallingPermission(
+                eq(android.Manifest.permission.SET_TIME),
+                anyString());
+
+        mTestHandler.waitForEmptyQueue();
         mStubbedTimeDetectorStrategy.verifySuggestPhoneTimeCalled(phoneTimeSuggestion);
     }
 
     @Test
+    public void testSuggestManualTime() throws Exception {
+        doNothing().when(mMockContext).enforceCallingPermission(anyString(), any());
+
+        ManualTimeSuggestion manualTimeSuggestion = createManualTimeSuggestion();
+        mTimeDetectorService.suggestManualTime(manualTimeSuggestion);
+        mTestHandler.assertTotalMessagesEnqueued(1);
+
+        verify(mMockContext).enforceCallingPermission(
+                eq(android.Manifest.permission.SET_TIME),
+                anyString());
+
+        mTestHandler.waitForEmptyQueue();
+        mStubbedTimeDetectorStrategy.verifySuggestManualTimeCalled(manualTimeSuggestion);
+    }
+
+    @Test
     public void testDump() {
         when(mMockContext.checkCallingOrSelfPermission(android.Manifest.permission.DUMP))
                 .thenReturn(PackageManager.PERMISSION_GRANTED);
@@ -101,31 +126,37 @@
     }
 
     @Test
-    public void testAutoTimeDetectionToggle() {
-        when(mMockCallback.isTimeDetectionEnabled()).thenReturn(true);
+    public void testAutoTimeDetectionToggle() throws Exception {
+        mTimeDetectorService.handleAutoTimeDetectionToggle();
+        mTestHandler.assertTotalMessagesEnqueued(1);
+        mTestHandler.waitForEmptyQueue();
+        mStubbedTimeDetectorStrategy.verifyHandleAutoTimeDetectionToggleCalled();
 
         mTimeDetectorService.handleAutoTimeDetectionToggle();
-
-        mStubbedTimeDetectorStrategy.verifyHandleAutoTimeDetectionToggleCalled(true);
-
-        when(mMockCallback.isTimeDetectionEnabled()).thenReturn(false);
-
-        mTimeDetectorService.handleAutoTimeDetectionToggle();
-
-        mStubbedTimeDetectorStrategy.verifyHandleAutoTimeDetectionToggleCalled(false);
+        mTestHandler.assertTotalMessagesEnqueued(2);
+        mTestHandler.waitForEmptyQueue();
+        mStubbedTimeDetectorStrategy.verifyHandleAutoTimeDetectionToggleCalled();
     }
 
     private static PhoneTimeSuggestion createPhoneTimeSuggestion() {
         int phoneId = 1234;
+        PhoneTimeSuggestion suggestion = new PhoneTimeSuggestion(phoneId);
         TimestampedValue<Long> timeValue = new TimestampedValue<>(100L, 1_000_000L);
-        return new PhoneTimeSuggestion(phoneId, timeValue);
+        suggestion.setUtcTime(timeValue);
+        return suggestion;
+    }
+
+    private static ManualTimeSuggestion createManualTimeSuggestion() {
+        TimestampedValue<Long> timeValue = new TimestampedValue<>(100L, 1_000_000L);
+        return new ManualTimeSuggestion(timeValue);
     }
 
     private static class StubbedTimeDetectorStrategy implements TimeDetectorStrategy {
 
         // Call tracking.
         private PhoneTimeSuggestion mLastPhoneSuggestion;
-        private Boolean mLastAutoTimeDetectionToggle;
+        private ManualTimeSuggestion mLastManualSuggestion;
+        private boolean mLastAutoTimeDetectionToggleCalled;
         private boolean mDumpCalled;
 
         @Override
@@ -139,9 +170,15 @@
         }
 
         @Override
-        public void handleAutoTimeDetectionToggle(boolean enabled) {
+        public void suggestManualTime(ManualTimeSuggestion timeSuggestion) {
             resetCallTracking();
-            mLastAutoTimeDetectionToggle = enabled;
+            mLastManualSuggestion = timeSuggestion;
+        }
+
+        @Override
+        public void handleAutoTimeDetectionChanged() {
+            resetCallTracking();
+            mLastAutoTimeDetectionToggleCalled = true;
         }
 
         @Override
@@ -152,21 +189,58 @@
 
         void resetCallTracking() {
             mLastPhoneSuggestion = null;
-            mLastAutoTimeDetectionToggle = null;
+            mLastManualSuggestion = null;
+            mLastAutoTimeDetectionToggleCalled = false;
             mDumpCalled = false;
         }
 
-        void verifySuggestPhoneTimeCalled(PhoneTimeSuggestion expectedSignal) {
-            assertEquals(expectedSignal, mLastPhoneSuggestion);
+        void verifySuggestPhoneTimeCalled(PhoneTimeSuggestion expectedSuggestion) {
+            assertEquals(expectedSuggestion, mLastPhoneSuggestion);
         }
 
-        void verifyHandleAutoTimeDetectionToggleCalled(boolean expectedEnable) {
-            assertNotNull(mLastAutoTimeDetectionToggle);
-            assertEquals(expectedEnable, mLastAutoTimeDetectionToggle);
+        public void verifySuggestManualTimeCalled(ManualTimeSuggestion expectedSuggestion) {
+            assertEquals(expectedSuggestion, mLastManualSuggestion);
+        }
+
+        void verifyHandleAutoTimeDetectionToggleCalled() {
+            assertTrue(mLastAutoTimeDetectionToggleCalled);
         }
 
         void verifyDumpCalled() {
             assertTrue(mDumpCalled);
         }
     }
+
+    /**
+     * A Handler that can track posts/sends and wait for work to be completed.
+     */
+    private static class TestHandler extends Handler {
+
+        private int mMessagesSent;
+
+        TestHandler(Looper looper) {
+            super(looper);
+        }
+
+        @Override
+        public boolean sendMessageAtTime(Message msg, long uptimeMillis) {
+            mMessagesSent++;
+            return super.sendMessageAtTime(msg, uptimeMillis);
+        }
+
+        /** Asserts the number of messages posted or sent is as expected. */
+        void assertTotalMessagesEnqueued(int expected) {
+            assertEquals(expected, mMessagesSent);
+        }
+
+        /**
+         * Waits for all currently enqueued work due to be processed to be completed before
+         * returning.
+         */
+        void waitForEmptyQueue() throws InterruptedException {
+            while (!getLooper().getQueue().isIdle()) {
+                Thread.sleep(100);
+            }
+        }
+    }
 }
diff --git a/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorStrategyTest.java b/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorStrategyTest.java
new file mode 100644
index 0000000..f9f23c3
--- /dev/null
+++ b/services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorStrategyTest.java
@@ -0,0 +1,592 @@
+/*
+ * Copyright 2019 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.
+ */
+
+package com.android.server.timezonedetector;
+
+import static android.app.timezonedetector.PhoneTimeZoneSuggestion.MATCH_TYPE_EMULATOR_ZONE_ID;
+import static android.app.timezonedetector.PhoneTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_AND_OFFSET;
+import static android.app.timezonedetector.PhoneTimeZoneSuggestion.MATCH_TYPE_NETWORK_COUNTRY_ONLY;
+import static android.app.timezonedetector.PhoneTimeZoneSuggestion.MATCH_TYPE_TEST_NETWORK_OFFSET_ONLY;
+import static android.app.timezonedetector.PhoneTimeZoneSuggestion.QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS;
+import static android.app.timezonedetector.PhoneTimeZoneSuggestion.QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET;
+import static android.app.timezonedetector.PhoneTimeZoneSuggestion.QUALITY_SINGLE_ZONE;
+
+import static com.android.server.timezonedetector.TimeZoneDetectorStrategy.SCORE_HIGH;
+import static com.android.server.timezonedetector.TimeZoneDetectorStrategy.SCORE_HIGHEST;
+import static com.android.server.timezonedetector.TimeZoneDetectorStrategy.SCORE_LOW;
+import static com.android.server.timezonedetector.TimeZoneDetectorStrategy.SCORE_MEDIUM;
+import static com.android.server.timezonedetector.TimeZoneDetectorStrategy.SCORE_NONE;
+import static com.android.server.timezonedetector.TimeZoneDetectorStrategy.SCORE_USAGE_THRESHOLD;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import android.app.timezonedetector.PhoneTimeZoneSuggestion;
+import android.app.timezonedetector.PhoneTimeZoneSuggestion.MatchType;
+import android.app.timezonedetector.PhoneTimeZoneSuggestion.Quality;
+
+import com.android.server.timezonedetector.TimeZoneDetectorStrategy.QualifiedPhoneTimeZoneSuggestion;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.LinkedList;
+
+/**
+ * White-box unit tests for {@link TimeZoneDetectorStrategy}.
+ */
+public class TimeZoneDetectorStrategyTest {
+
+    /** A time zone used for initialization that does not occur elsewhere in tests. */
+    private static final String ARBITRARY_TIME_ZONE_ID = "Etc/UTC";
+    private static final int PHONE1_ID = 10000;
+    private static final int PHONE2_ID = 20000;
+
+    // Suggestion test cases are ordered so that each successive one is of the same or higher score
+    // than the previous.
+    private static final SuggestionTestCase[] TEST_CASES = new SuggestionTestCase[] {
+            newTestCase(MATCH_TYPE_NETWORK_COUNTRY_ONLY,
+                    QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS, SCORE_LOW),
+            newTestCase(MATCH_TYPE_NETWORK_COUNTRY_ONLY, QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET,
+                    SCORE_MEDIUM),
+            newTestCase(MATCH_TYPE_NETWORK_COUNTRY_AND_OFFSET,
+                    QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET, SCORE_MEDIUM),
+            newTestCase(MATCH_TYPE_NETWORK_COUNTRY_ONLY, QUALITY_SINGLE_ZONE, SCORE_HIGH),
+            newTestCase(MATCH_TYPE_NETWORK_COUNTRY_AND_OFFSET, QUALITY_SINGLE_ZONE, SCORE_HIGH),
+            newTestCase(MATCH_TYPE_TEST_NETWORK_OFFSET_ONLY,
+                    QUALITY_MULTIPLE_ZONES_WITH_SAME_OFFSET, SCORE_HIGHEST),
+            newTestCase(MATCH_TYPE_EMULATOR_ZONE_ID, QUALITY_SINGLE_ZONE, SCORE_HIGHEST),
+    };
+
+    private TimeZoneDetectorStrategy mTimeZoneDetectorStrategy;
+    private FakeTimeZoneDetectorStrategyCallback mFakeTimeZoneDetectorStrategyCallback;
+
+    @Before
+    public void setUp() {
+        mFakeTimeZoneDetectorStrategyCallback = new FakeTimeZoneDetectorStrategyCallback();
+        mTimeZoneDetectorStrategy =
+                new TimeZoneDetectorStrategy(mFakeTimeZoneDetectorStrategyCallback);
+    }
+
+    @Test
+    public void testEmptySuggestions() {
+        PhoneTimeZoneSuggestion phone1TimeZoneSuggestion = createEmptyPhone1Suggestion();
+        PhoneTimeZoneSuggestion phone2TimeZoneSuggestion = createEmptyPhone2Suggestion();
+        Script script = new Script()
+                .initializeTimeZoneDetectionEnabled(true)
+                .initializeTimeZoneSetting(ARBITRARY_TIME_ZONE_ID);
+
+        script.suggestPhoneTimeZone(phone1TimeZoneSuggestion)
+                .verifyTimeZoneNotSet();
+
+        // Assert internal service state.
+        QualifiedPhoneTimeZoneSuggestion expectedPhone1ScoredSuggestion =
+                new QualifiedPhoneTimeZoneSuggestion(phone1TimeZoneSuggestion, SCORE_NONE);
+        assertEquals(expectedPhone1ScoredSuggestion,
+                mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
+        assertNull(mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE2_ID));
+        assertEquals(expectedPhone1ScoredSuggestion,
+                mTimeZoneDetectorStrategy.findBestSuggestionForTests());
+
+        script.suggestPhoneTimeZone(phone2TimeZoneSuggestion)
+                .verifyTimeZoneNotSet();
+
+        // Assert internal service state.
+        QualifiedPhoneTimeZoneSuggestion expectedPhone2ScoredSuggestion =
+                new QualifiedPhoneTimeZoneSuggestion(phone2TimeZoneSuggestion, SCORE_NONE);
+        assertEquals(expectedPhone1ScoredSuggestion,
+                mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
+        assertEquals(expectedPhone2ScoredSuggestion,
+                mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE2_ID));
+        // Phone 1 should always beat phone 2, all other things being equal.
+        assertEquals(expectedPhone1ScoredSuggestion,
+                mTimeZoneDetectorStrategy.findBestSuggestionForTests());
+    }
+
+    @Test
+    public void testFirstPlausibleSuggestionAcceptedWhenTimeZoneUninitialized() {
+        SuggestionTestCase testCase = newTestCase(MATCH_TYPE_NETWORK_COUNTRY_ONLY,
+                QUALITY_MULTIPLE_ZONES_WITH_DIFFERENT_OFFSETS, SCORE_LOW);
+        PhoneTimeZoneSuggestion lowQualitySuggestion =
+                testCase.createSuggestion(PHONE1_ID, "America/New_York");
+
+        // The device time zone setting is left uninitialized.
+        Script script = new Script()
+                .initializeTimeZoneDetectionEnabled(true);
+
+        // The very first suggestion will be taken.
+        script.suggestPhoneTimeZone(lowQualitySuggestion)
+                .verifyTimeZoneSetAndReset(lowQualitySuggestion);
+
+        // Assert internal service state.
+        QualifiedPhoneTimeZoneSuggestion expectedScoredSuggestion =
+                new QualifiedPhoneTimeZoneSuggestion(lowQualitySuggestion, testCase.expectedScore);
+        assertEquals(expectedScoredSuggestion,
+                mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
+        assertEquals(expectedScoredSuggestion,
+                mTimeZoneDetectorStrategy.findBestSuggestionForTests());
+
+        // Another low quality suggestion will be ignored now that the setting is initialized.
+        PhoneTimeZoneSuggestion lowQualitySuggestion2 =
+                testCase.createSuggestion(PHONE1_ID, "America/Los_Angeles");
+        script.suggestPhoneTimeZone(lowQualitySuggestion2)
+                .verifyTimeZoneNotSet();
+
+        // Assert internal service state.
+        QualifiedPhoneTimeZoneSuggestion expectedScoredSuggestion2 =
+                new QualifiedPhoneTimeZoneSuggestion(lowQualitySuggestion2, testCase.expectedScore);
+        assertEquals(expectedScoredSuggestion2,
+                mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
+        assertEquals(expectedScoredSuggestion2,
+                mTimeZoneDetectorStrategy.findBestSuggestionForTests());
+    }
+
+    /**
+     * Confirms that toggling the auto time zone detection setting has the expected behavior when
+     * the strategy is "opinionated".
+     */
+    @Test
+    public void testTogglingTimeZoneDetection() {
+        Script script = new Script();
+
+        for (SuggestionTestCase testCase : TEST_CASES) {
+            // Start with the device in a known state.
+            script.initializeTimeZoneDetectionEnabled(false)
+                    .initializeTimeZoneSetting(ARBITRARY_TIME_ZONE_ID);
+
+            PhoneTimeZoneSuggestion suggestion =
+                    testCase.createSuggestion(PHONE1_ID, "Europe/London");
+            script.suggestPhoneTimeZone(suggestion);
+
+            // When time zone detection is not enabled, the time zone suggestion will not be set
+            // regardless of the score.
+            script.verifyTimeZoneNotSet();
+
+            // Assert internal service state.
+            QualifiedPhoneTimeZoneSuggestion expectedScoredSuggestion =
+                    new QualifiedPhoneTimeZoneSuggestion(suggestion, testCase.expectedScore);
+            assertEquals(expectedScoredSuggestion,
+                    mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
+            assertEquals(expectedScoredSuggestion,
+                    mTimeZoneDetectorStrategy.findBestSuggestionForTests());
+
+            // Toggling the time zone setting on should cause the device setting to be set.
+            script.timeZoneDetectionEnabled(true);
+
+            // When time zone detection is already enabled the suggestion (if it scores highly
+            // enough) should be set immediately.
+            if (testCase.expectedScore >= SCORE_USAGE_THRESHOLD) {
+                script.verifyTimeZoneSetAndReset(suggestion);
+            } else {
+                script.verifyTimeZoneNotSet();
+            }
+
+            // Assert internal service state.
+            assertEquals(expectedScoredSuggestion,
+                    mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
+            assertEquals(expectedScoredSuggestion,
+                    mTimeZoneDetectorStrategy.findBestSuggestionForTests());
+
+            // Toggling the time zone setting should off should do nothing.
+            script.timeZoneDetectionEnabled(false)
+                    .verifyTimeZoneNotSet();
+
+            // Assert internal service state.
+            assertEquals(expectedScoredSuggestion,
+                    mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
+            assertEquals(expectedScoredSuggestion,
+                    mTimeZoneDetectorStrategy.findBestSuggestionForTests());
+        }
+    }
+
+    @Test
+    public void testSuggestionsSinglePhone() {
+        Script script = new Script()
+                .initializeTimeZoneDetectionEnabled(true)
+                .initializeTimeZoneSetting(ARBITRARY_TIME_ZONE_ID);
+
+        for (SuggestionTestCase testCase : TEST_CASES) {
+            makePhone1SuggestionAndCheckState(script, testCase);
+        }
+
+        /*
+         * This is the same test as above but the test cases are in
+         * reverse order of their expected score. New suggestions always replace previous ones:
+         * there's effectively no history and so ordering shouldn't make any difference.
+         */
+
+        // Each test case will have the same or lower score than the last.
+        ArrayList<SuggestionTestCase> descendingCasesByScore =
+                new ArrayList<>(Arrays.asList(TEST_CASES));
+        Collections.reverse(descendingCasesByScore);
+
+        for (SuggestionTestCase testCase : descendingCasesByScore) {
+            makePhone1SuggestionAndCheckState(script, testCase);
+        }
+    }
+
+    private void makePhone1SuggestionAndCheckState(Script script, SuggestionTestCase testCase) {
+        // Give the next suggestion a different zone from the currently set device time zone;
+        String currentZoneId = mFakeTimeZoneDetectorStrategyCallback.getDeviceTimeZone();
+        String suggestionZoneId =
+                "Europe/London".equals(currentZoneId) ? "Europe/Paris" : "Europe/London";
+        PhoneTimeZoneSuggestion zonePhone1Suggestion =
+                testCase.createSuggestion(PHONE1_ID, suggestionZoneId);
+        QualifiedPhoneTimeZoneSuggestion expectedZonePhone1ScoredSuggestion =
+                new QualifiedPhoneTimeZoneSuggestion(zonePhone1Suggestion, testCase.expectedScore);
+
+        script.suggestPhoneTimeZone(zonePhone1Suggestion);
+        if (testCase.expectedScore >= SCORE_USAGE_THRESHOLD) {
+            script.verifyTimeZoneSetAndReset(zonePhone1Suggestion);
+        } else {
+            script.verifyTimeZoneNotSet();
+        }
+
+        // Assert internal service state.
+        assertEquals(expectedZonePhone1ScoredSuggestion,
+                mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
+        assertEquals(expectedZonePhone1ScoredSuggestion,
+                mTimeZoneDetectorStrategy.findBestSuggestionForTests());
+    }
+
+    /**
+     * Tries a set of test cases to see if the phone with the lowest ID is given preference. This
+     * test also confirms that the time zone setting would only be set if a suggestion is of
+     * sufficient quality.
+     */
+    @Test
+    public void testMultiplePhoneSuggestionScoringAndPhoneIdBias() {
+        String[] zoneIds = { "Europe/London", "Europe/Paris" };
+        PhoneTimeZoneSuggestion emptyPhone1Suggestion = createEmptyPhone1Suggestion();
+        PhoneTimeZoneSuggestion emptyPhone2Suggestion = createEmptyPhone2Suggestion();
+        QualifiedPhoneTimeZoneSuggestion expectedEmptyPhone1ScoredSuggestion =
+                new QualifiedPhoneTimeZoneSuggestion(emptyPhone1Suggestion, SCORE_NONE);
+        QualifiedPhoneTimeZoneSuggestion expectedEmptyPhone2ScoredSuggestion =
+                new QualifiedPhoneTimeZoneSuggestion(emptyPhone2Suggestion, SCORE_NONE);
+
+        Script script = new Script()
+                .initializeTimeZoneDetectionEnabled(true)
+                .initializeTimeZoneSetting(ARBITRARY_TIME_ZONE_ID)
+                // Initialize the latest suggestions as empty so we don't need to worry about nulls
+                // below for the first loop.
+                .suggestPhoneTimeZone(emptyPhone1Suggestion)
+                .suggestPhoneTimeZone(emptyPhone2Suggestion)
+                .resetState();
+
+        for (SuggestionTestCase testCase : TEST_CASES) {
+            PhoneTimeZoneSuggestion zonePhone1Suggestion =
+                    testCase.createSuggestion(PHONE1_ID, zoneIds[0]);
+            PhoneTimeZoneSuggestion zonePhone2Suggestion =
+                    testCase.createSuggestion(PHONE2_ID, zoneIds[1]);
+            QualifiedPhoneTimeZoneSuggestion expectedZonePhone1ScoredSuggestion =
+                    new QualifiedPhoneTimeZoneSuggestion(zonePhone1Suggestion,
+                            testCase.expectedScore);
+            QualifiedPhoneTimeZoneSuggestion expectedZonePhone2ScoredSuggestion =
+                    new QualifiedPhoneTimeZoneSuggestion(zonePhone2Suggestion,
+                            testCase.expectedScore);
+
+            // Start the test by making a suggestion for phone 1.
+            script.suggestPhoneTimeZone(zonePhone1Suggestion);
+            if (testCase.expectedScore >= SCORE_USAGE_THRESHOLD) {
+                script.verifyTimeZoneSetAndReset(zonePhone1Suggestion);
+            } else {
+                script.verifyTimeZoneNotSet();
+            }
+
+            // Assert internal service state.
+            assertEquals(expectedZonePhone1ScoredSuggestion,
+                    mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
+            assertEquals(expectedEmptyPhone2ScoredSuggestion,
+                    mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE2_ID));
+            assertEquals(expectedZonePhone1ScoredSuggestion,
+                    mTimeZoneDetectorStrategy.findBestSuggestionForTests());
+
+            // Phone 2 then makes an alternative suggestion with an identical score. Phone 1's
+            // suggestion should still "win" if it is above the required threshold.
+            script.suggestPhoneTimeZone(zonePhone2Suggestion);
+            script.verifyTimeZoneNotSet();
+
+            // Assert internal service state.
+            assertEquals(expectedZonePhone1ScoredSuggestion,
+                    mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
+            assertEquals(expectedZonePhone2ScoredSuggestion,
+                    mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE2_ID));
+            // Phone 1 should always beat phone 2, all other things being equal.
+            assertEquals(expectedZonePhone1ScoredSuggestion,
+                    mTimeZoneDetectorStrategy.findBestSuggestionForTests());
+
+            // Withdrawing phone 1's suggestion should leave phone 2 as the new winner. Since the
+            // zoneId is different, the time zone setting should be updated if the score is high
+            // enough.
+            script.suggestPhoneTimeZone(emptyPhone1Suggestion);
+            if (testCase.expectedScore >= SCORE_USAGE_THRESHOLD) {
+                script.verifyTimeZoneSetAndReset(zonePhone2Suggestion);
+            } else {
+                script.verifyTimeZoneNotSet();
+            }
+
+            // Assert internal service state.
+            assertEquals(expectedEmptyPhone1ScoredSuggestion,
+                    mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
+            assertEquals(expectedZonePhone2ScoredSuggestion,
+                    mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE2_ID));
+            assertEquals(expectedZonePhone2ScoredSuggestion,
+                    mTimeZoneDetectorStrategy.findBestSuggestionForTests());
+
+            // Reset the state for the next loop.
+            script.suggestPhoneTimeZone(emptyPhone2Suggestion)
+                    .verifyTimeZoneNotSet();
+            assertEquals(expectedEmptyPhone1ScoredSuggestion,
+                    mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE1_ID));
+            assertEquals(expectedEmptyPhone2ScoredSuggestion,
+                    mTimeZoneDetectorStrategy.getLatestPhoneSuggestion(PHONE2_ID));
+        }
+    }
+
+    /**
+     * The {@link TimeZoneDetectorStrategy.Callback} is left to detect whether changing the time
+     * zone is actually necessary. This test proves that the service doesn't assume it knows the
+     * current setting.
+     */
+    @Test
+    public void testTimeZoneDetectorStrategyDoesNotAssumeCurrentSetting() {
+        Script script = new Script()
+                .initializeTimeZoneDetectionEnabled(true);
+
+        SuggestionTestCase testCase =
+                newTestCase(MATCH_TYPE_NETWORK_COUNTRY_AND_OFFSET, QUALITY_SINGLE_ZONE, SCORE_HIGH);
+        PhoneTimeZoneSuggestion losAngelesSuggestion =
+                testCase.createSuggestion(PHONE1_ID, "America/Los_Angeles");
+        PhoneTimeZoneSuggestion newYorkSuggestion =
+                testCase.createSuggestion(PHONE1_ID, "America/New_York");
+
+        // Initialization.
+        script.suggestPhoneTimeZone(losAngelesSuggestion)
+                .verifyTimeZoneSetAndReset(losAngelesSuggestion);
+        // Suggest it again - it should not be set because it is already set.
+        script.suggestPhoneTimeZone(losAngelesSuggestion)
+                .verifyTimeZoneNotSet();
+
+        // Toggling time zone detection should set the device time zone only if the current setting
+        // value is different from the most recent phone suggestion.
+        script.timeZoneDetectionEnabled(false)
+                .verifyTimeZoneNotSet()
+                .timeZoneDetectionEnabled(true)
+                .verifyTimeZoneNotSet();
+
+        // Simulate a user turning auto detection off, a new suggestion being made while auto
+        // detection is off, and the user turning it on again.
+        script.timeZoneDetectionEnabled(false)
+                .suggestPhoneTimeZone(newYorkSuggestion)
+                .verifyTimeZoneNotSet();
+        // Latest suggestion should be used.
+        script.timeZoneDetectionEnabled(true)
+                .verifyTimeZoneSetAndReset(newYorkSuggestion);
+    }
+
+    private static PhoneTimeZoneSuggestion createEmptyPhone1Suggestion() {
+        return new PhoneTimeZoneSuggestion.Builder(PHONE1_ID).build();
+    }
+
+    private static PhoneTimeZoneSuggestion createEmptyPhone2Suggestion() {
+        return new PhoneTimeZoneSuggestion.Builder(PHONE2_ID).build();
+    }
+
+    class FakeTimeZoneDetectorStrategyCallback implements TimeZoneDetectorStrategy.Callback {
+
+        private boolean mTimeZoneDetectionEnabled;
+        private TestState<String> mTimeZoneId = new TestState<>();
+
+        @Override
+        public boolean isTimeZoneDetectionEnabled() {
+            return mTimeZoneDetectionEnabled;
+        }
+
+        @Override
+        public boolean isDeviceTimeZoneInitialized() {
+            return mTimeZoneId.getLatest() != null;
+        }
+
+        @Override
+        public String getDeviceTimeZone() {
+            return mTimeZoneId.getLatest();
+        }
+
+        @Override
+        public void setDeviceTimeZone(String zoneId) {
+            mTimeZoneId.set(zoneId);
+        }
+
+        void initializeTimeZoneDetectionEnabled(boolean enabled) {
+            mTimeZoneDetectionEnabled = enabled;
+        }
+
+        void initializeTimeZone(String zoneId) {
+            mTimeZoneId.init(zoneId);
+        }
+
+        void setTimeZoneDetectionEnabled(boolean enabled) {
+            mTimeZoneDetectionEnabled = enabled;
+        }
+
+        void assertTimeZoneNotSet() {
+            mTimeZoneId.assertHasNotBeenSet();
+        }
+
+        void assertTimeZoneSet(String timeZoneId) {
+            mTimeZoneId.assertHasBeenSet();
+            mTimeZoneId.assertChangeCount(1);
+            mTimeZoneId.assertLatestEquals(timeZoneId);
+        }
+
+        void commitAllChanges() {
+            mTimeZoneId.commitLatest();
+        }
+    }
+
+    /** Some piece of state that tests want to track. */
+    private static class TestState<T> {
+        private T mInitialValue;
+        private LinkedList<T> mValues = new LinkedList<>();
+
+        void init(T value) {
+            mValues.clear();
+            mInitialValue = value;
+        }
+
+        void set(T value) {
+            mValues.addFirst(value);
+        }
+
+        boolean hasBeenSet() {
+            return mValues.size() > 0;
+        }
+
+        void assertHasNotBeenSet() {
+            assertFalse(hasBeenSet());
+        }
+
+        void assertHasBeenSet() {
+            assertTrue(hasBeenSet());
+        }
+
+        void commitLatest() {
+            if (hasBeenSet()) {
+                mInitialValue = mValues.getLast();
+                mValues.clear();
+            }
+        }
+
+        void assertLatestEquals(T expected) {
+            assertEquals(expected, getLatest());
+        }
+
+        void assertChangeCount(int expectedCount) {
+            assertEquals(expectedCount, mValues.size());
+        }
+
+        public T getLatest() {
+            if (hasBeenSet()) {
+                return mValues.getFirst();
+            }
+            return mInitialValue;
+        }
+    }
+
+    /**
+     * A "fluent" class allows reuse of code in tests: initialization, simulation and verification
+     * logic.
+     */
+    private class Script {
+
+        Script initializeTimeZoneDetectionEnabled(boolean enabled) {
+            mFakeTimeZoneDetectorStrategyCallback.initializeTimeZoneDetectionEnabled(enabled);
+            return this;
+        }
+
+        Script initializeTimeZoneSetting(String zoneId) {
+            mFakeTimeZoneDetectorStrategyCallback.initializeTimeZone(zoneId);
+            return this;
+        }
+
+        Script timeZoneDetectionEnabled(boolean enabled) {
+            mFakeTimeZoneDetectorStrategyCallback.setTimeZoneDetectionEnabled(enabled);
+            mTimeZoneDetectorStrategy.handleTimeZoneDetectionChange();
+            return this;
+        }
+
+        /** Simulates the time zone detection service receiving a phone-originated suggestion. */
+        Script suggestPhoneTimeZone(PhoneTimeZoneSuggestion phoneTimeZoneSuggestion) {
+            mTimeZoneDetectorStrategy.suggestPhoneTimeZone(phoneTimeZoneSuggestion);
+            return this;
+        }
+
+        /** Simulates the user manually setting the time zone. */
+        Script manuallySetTimeZone(String timeZoneId) {
+            // Assert the test code is correct to call this method.
+            assertFalse(mFakeTimeZoneDetectorStrategyCallback.isTimeZoneDetectionEnabled());
+
+            mFakeTimeZoneDetectorStrategyCallback.initializeTimeZone(timeZoneId);
+            return this;
+        }
+
+        Script verifyTimeZoneNotSet() {
+            mFakeTimeZoneDetectorStrategyCallback.assertTimeZoneNotSet();
+            return this;
+        }
+
+        Script verifyTimeZoneSetAndReset(PhoneTimeZoneSuggestion timeZoneSuggestion) {
+            mFakeTimeZoneDetectorStrategyCallback.assertTimeZoneSet(timeZoneSuggestion.getZoneId());
+            mFakeTimeZoneDetectorStrategyCallback.commitAllChanges();
+            return this;
+        }
+
+        Script resetState() {
+            mFakeTimeZoneDetectorStrategyCallback.commitAllChanges();
+            return this;
+        }
+    }
+
+    private static class SuggestionTestCase {
+        public final int matchType;
+        public final int quality;
+        public final int expectedScore;
+
+        SuggestionTestCase(int matchType, int quality, int expectedScore) {
+            this.matchType = matchType;
+            this.quality = quality;
+            this.expectedScore = expectedScore;
+        }
+
+        private PhoneTimeZoneSuggestion createSuggestion(int phoneId, String zoneId) {
+            return new PhoneTimeZoneSuggestion.Builder(phoneId)
+                    .setZoneId(zoneId)
+                    .setMatchType(matchType)
+                    .setQuality(quality)
+                    .build();
+        }
+    }
+
+    private static SuggestionTestCase newTestCase(
+            @MatchType int matchType, @Quality int quality, int expectedScore) {
+        return new SuggestionTestCase(matchType, quality, expectedScore);
+    }
+}
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java b/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java
index 1e64543..8939375 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/SnoozeHelperTest.java
@@ -227,6 +227,26 @@
     }
 
     @Test
+    public void testUpdateAfterCancel() throws Exception {
+        // snooze a notification
+        NotificationRecord r = getNotificationRecord("pkg", 1, "one", UserHandle.SYSTEM);
+        mSnoozeHelper.snooze(r , 1000);
+
+        // cancel the notification
+        mSnoozeHelper.cancel(UserHandle.USER_SYSTEM, false);
+
+        // update the notification
+        r = getNotificationRecord("pkg", 1, "one", UserHandle.SYSTEM);
+        mSnoozeHelper.update(UserHandle.USER_SYSTEM, r);
+
+        // verify callback is called when repost (snooze is expired)
+        verify(mCallback, never()).repost(anyInt(), any(NotificationRecord.class));
+        mSnoozeHelper.repost(r.getKey(), UserHandle.USER_SYSTEM);
+        verify(mCallback, times(1)).repost(UserHandle.USER_SYSTEM, r);
+        assertFalse(r.isCanceled);
+    }
+
+    @Test
     public void testGetSnoozedByUser() throws Exception {
         NotificationRecord r = getNotificationRecord("pkg", 1, "one", UserHandle.SYSTEM);
         NotificationRecord r2 = getNotificationRecord("pkg", 2, "two", UserHandle.SYSTEM);
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeConfigTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeConfigTest.java
index dcab78e..8cd6ef9 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/ZenModeConfigTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/ZenModeConfigTest.java
@@ -98,7 +98,7 @@
         suppressedVisualEffects |= Policy.SUPPRESSED_EFFECT_AMBIENT;
 
         Policy expectedPolicy = new Policy(priorityCategories, priorityCallSenders,
-                priorityMessageSenders, suppressedVisualEffects);
+                priorityMessageSenders, suppressedVisualEffects, 0);
 
         assertEquals(expectedPolicy, config.toNotificationPolicy(zenPolicy));
     }
diff --git a/startop/view_compiler/Android.bp b/startop/view_compiler/Android.bp
index c380d29..7cc233b 100644
--- a/startop/view_compiler/Android.bp
+++ b/startop/view_compiler/Android.bp
@@ -16,7 +16,6 @@
 
 cc_defaults {
     name: "viewcompiler_defaults",
-    defaults: ["libdexfile_static_defaults"],
     header_libs: [
         "libbase_headers",
     ],
@@ -30,6 +29,7 @@
         "liblog",
         "libutils",
         "libziparchive",
+        "libz",
     ],
     cppflags: ["-std=c++17"],
     target: {
diff --git a/startop/view_compiler/dex_builder.cc b/startop/view_compiler/dex_builder.cc
index 48b44d0..50cf5a5 100644
--- a/startop/view_compiler/dex_builder.cc
+++ b/startop/view_compiler/dex_builder.cc
@@ -16,8 +16,6 @@
 
 #include "dex_builder.h"
 
-#include "dex/descriptors_names.h"
-
 #include <fstream>
 #include <memory>
 
@@ -30,8 +28,6 @@
 using ::dex::kAccPublic;
 using Op = Instruction::Op;
 
-using Opcode = ::art::Instruction::Code;
-
 const TypeDescriptor TypeDescriptor::Int() { return TypeDescriptor{"I"}; };
 const TypeDescriptor TypeDescriptor::Void() { return TypeDescriptor{"V"}; };
 
@@ -43,22 +39,31 @@
 constexpr size_t kMaxEncodedStringLength{5};
 
 // Converts invoke-* to invoke-*/range
-constexpr Opcode InvokeToInvokeRange(Opcode opcode) {
+constexpr ::dex::Opcode InvokeToInvokeRange(::dex::Opcode opcode) {
   switch (opcode) {
-    case ::art::Instruction::INVOKE_VIRTUAL:
-      return ::art::Instruction::INVOKE_VIRTUAL_RANGE;
-    case ::art::Instruction::INVOKE_DIRECT:
-      return ::art::Instruction::INVOKE_DIRECT_RANGE;
-    case ::art::Instruction::INVOKE_STATIC:
-      return ::art::Instruction::INVOKE_STATIC_RANGE;
-    case ::art::Instruction::INVOKE_INTERFACE:
-      return ::art::Instruction::INVOKE_INTERFACE_RANGE;
+    case ::dex::Opcode::OP_INVOKE_VIRTUAL:
+      return ::dex::Opcode::OP_INVOKE_VIRTUAL_RANGE;
+    case ::dex::Opcode::OP_INVOKE_DIRECT:
+      return ::dex::Opcode::OP_INVOKE_DIRECT_RANGE;
+    case ::dex::Opcode::OP_INVOKE_STATIC:
+      return ::dex::Opcode::OP_INVOKE_STATIC_RANGE;
+    case ::dex::Opcode::OP_INVOKE_INTERFACE:
+      return ::dex::Opcode::OP_INVOKE_INTERFACE_RANGE;
     default:
       LOG(FATAL) << opcode << " is not a recognized invoke opcode.";
-      UNREACHABLE();
+      __builtin_unreachable();
   }
 }
 
+std::string DotToDescriptor(const char* class_name) {
+  std::string descriptor(class_name);
+  std::replace(descriptor.begin(), descriptor.end(), '.', '/');
+  if (descriptor.length() > 0 && descriptor[0] != '[') {
+    descriptor = "L" + descriptor + ";";
+  }
+  return descriptor;
+}
+
 }  // namespace
 
 std::ostream& operator<<(std::ostream& out, const Instruction::Op& opcode) {
@@ -178,7 +183,7 @@
 }
 
 TypeDescriptor TypeDescriptor::FromClassname(const std::string& name) {
-  return TypeDescriptor{art::DotToDescriptor(name.c_str())};
+  return TypeDescriptor{DotToDescriptor(name.c_str())};
 }
 
 DexBuilder::DexBuilder() : dex_file_{std::make_shared<ir::DexFile>()} {
@@ -219,11 +224,11 @@
 
 ClassBuilder DexBuilder::MakeClass(const std::string& name) {
   auto* class_def = Alloc<ir::Class>();
-  ir::Type* type_def = GetOrAddType(art::DotToDescriptor(name.c_str()));
+  ir::Type* type_def = GetOrAddType(DotToDescriptor(name.c_str()));
   type_def->class_def = class_def;
 
   class_def->type = type_def;
-  class_def->super_class = GetOrAddType(art::DotToDescriptor("java.lang.Object"));
+  class_def->super_class = GetOrAddType(DotToDescriptor("java.lang.Object"));
   class_def->access_flags = kAccPublic;
   return ClassBuilder{this, name, class_def};
 }
@@ -378,26 +383,26 @@
 void MethodBuilder::EncodeInstruction(const Instruction& instruction) {
   switch (instruction.opcode()) {
     case Instruction::Op::kReturn:
-      return EncodeReturn(instruction, ::art::Instruction::RETURN);
+      return EncodeReturn(instruction, ::dex::Opcode::OP_RETURN);
     case Instruction::Op::kReturnObject:
-      return EncodeReturn(instruction, ::art::Instruction::RETURN_OBJECT);
+      return EncodeReturn(instruction, ::dex::Opcode::OP_RETURN_OBJECT);
     case Instruction::Op::kMove:
     case Instruction::Op::kMoveObject:
       return EncodeMove(instruction);
     case Instruction::Op::kInvokeVirtual:
-      return EncodeInvoke(instruction, art::Instruction::INVOKE_VIRTUAL);
+      return EncodeInvoke(instruction, ::dex::Opcode::OP_INVOKE_VIRTUAL);
     case Instruction::Op::kInvokeDirect:
-      return EncodeInvoke(instruction, art::Instruction::INVOKE_DIRECT);
+      return EncodeInvoke(instruction, ::dex::Opcode::OP_INVOKE_DIRECT);
     case Instruction::Op::kInvokeStatic:
-      return EncodeInvoke(instruction, art::Instruction::INVOKE_STATIC);
+      return EncodeInvoke(instruction, ::dex::Opcode::OP_INVOKE_STATIC);
     case Instruction::Op::kInvokeInterface:
-      return EncodeInvoke(instruction, art::Instruction::INVOKE_INTERFACE);
+      return EncodeInvoke(instruction, ::dex::Opcode::OP_INVOKE_INTERFACE);
     case Instruction::Op::kBindLabel:
       return BindLabel(instruction.args()[0]);
     case Instruction::Op::kBranchEqz:
-      return EncodeBranch(art::Instruction::IF_EQZ, instruction);
+      return EncodeBranch(::dex::Opcode::OP_IF_EQZ, instruction);
     case Instruction::Op::kBranchNEqz:
-      return EncodeBranch(art::Instruction::IF_NEZ, instruction);
+      return EncodeBranch(::dex::Opcode::OP_IF_NEZ, instruction);
     case Instruction::Op::kNew:
       return EncodeNew(instruction);
     case Instruction::Op::kCheckCast:
@@ -410,10 +415,10 @@
   }
 }
 
-void MethodBuilder::EncodeReturn(const Instruction& instruction, ::art::Instruction::Code opcode) {
+void MethodBuilder::EncodeReturn(const Instruction& instruction, ::dex::Opcode opcode) {
   CHECK(!instruction.dest().has_value());
   if (instruction.args().size() == 0) {
-    Encode10x(art::Instruction::RETURN_VOID);
+    Encode10x(::dex::Opcode::OP_RETURN_VOID);
   } else {
     CHECK_EQ(1, instruction.args().size());
     size_t source = RegisterValue(instruction.args()[0]);
@@ -433,27 +438,27 @@
   if (source.is_immediate()) {
     // TODO: support more registers
     CHECK_LT(RegisterValue(*instruction.dest()), 16);
-    Encode11n(art::Instruction::CONST_4, RegisterValue(*instruction.dest()), source.value());
+    Encode11n(::dex::Opcode::OP_CONST_4, RegisterValue(*instruction.dest()), source.value());
   } else if (source.is_string()) {
     constexpr size_t kMaxRegisters = 256;
     CHECK_LT(RegisterValue(*instruction.dest()), kMaxRegisters);
     CHECK_LT(source.value(), 65536);  // make sure we don't need a jumbo string
-    Encode21c(::art::Instruction::CONST_STRING, RegisterValue(*instruction.dest()), source.value());
+    Encode21c(::dex::Opcode::OP_CONST_STRING, RegisterValue(*instruction.dest()), source.value());
   } else if (source.is_variable()) {
     // For the moment, we only use this when we need to reshuffle registers for
     // an invoke instruction, meaning we are too big for the 4-bit version.
     // We'll err on the side of caution and always generate the 16-bit form of
     // the instruction.
-    Opcode opcode = instruction.opcode() == Instruction::Op::kMove
-                        ? ::art::Instruction::MOVE_16
-                        : ::art::Instruction::MOVE_OBJECT_16;
+    auto opcode = instruction.opcode() == Instruction::Op::kMove
+                        ? ::dex::Opcode::OP_MOVE_16
+                        : ::dex::Opcode::OP_MOVE_OBJECT_16;
     Encode32x(opcode, RegisterValue(*instruction.dest()), RegisterValue(source));
   } else {
     UNIMPLEMENTED(FATAL);
   }
 }
 
-void MethodBuilder::EncodeInvoke(const Instruction& instruction, ::art::Instruction::Code opcode) {
+void MethodBuilder::EncodeInvoke(const Instruction& instruction, ::dex::Opcode opcode) {
   constexpr size_t kMaxArgs = 5;
 
   // Currently, we only support up to 5 arguments.
@@ -480,8 +485,8 @@
 
     for (size_t i = 0; i < instruction.args().size(); ++i) {
       Instruction::Op move_op;
-      if (opcode == ::art::Instruction::INVOKE_VIRTUAL ||
-          opcode == ::art::Instruction::INVOKE_DIRECT) {
+      if (opcode == ::dex::Opcode::OP_INVOKE_VIRTUAL ||
+          opcode == ::dex::Opcode::OP_INVOKE_DIRECT) {
         // In this case, there is an implicit `this` argument, which is always an object.
         if (i == 0) {
           move_op = Instruction::Op::kMoveObject;
@@ -514,8 +519,8 @@
 
   // If there is a return value, add a move-result instruction
   if (instruction.dest().has_value()) {
-    Encode11x(instruction.result_is_object() ? art::Instruction::MOVE_RESULT_OBJECT
-                                             : art::Instruction::MOVE_RESULT,
+    Encode11x(instruction.result_is_object() ? ::dex::Opcode::OP_MOVE_RESULT_OBJECT
+                                             : ::dex::Opcode::OP_MOVE_RESULT,
               RegisterValue(*instruction.dest()));
   }
 
@@ -523,7 +528,7 @@
 }
 
 // Encodes a conditional branch that tests a single argument.
-void MethodBuilder::EncodeBranch(art::Instruction::Code op, const Instruction& instruction) {
+void MethodBuilder::EncodeBranch(::dex::Opcode op, const Instruction& instruction) {
   const auto& args = instruction.args();
   const auto& test_value = args[0];
   const auto& branch_target = args[1];
@@ -546,7 +551,7 @@
   const Value& type = instruction.args()[0];
   CHECK_LT(RegisterValue(*instruction.dest()), 256);
   CHECK(type.is_type());
-  Encode21c(::art::Instruction::NEW_INSTANCE, RegisterValue(*instruction.dest()), type.value());
+  Encode21c(::dex::Opcode::OP_NEW_INSTANCE, RegisterValue(*instruction.dest()), type.value());
 }
 
 void MethodBuilder::EncodeCast(const Instruction& instruction) {
@@ -558,7 +563,7 @@
   const Value& type = instruction.args()[0];
   CHECK_LT(RegisterValue(*instruction.dest()), 256);
   CHECK(type.is_type());
-  Encode21c(::art::Instruction::CHECK_CAST, RegisterValue(*instruction.dest()), type.value());
+  Encode21c(::dex::Opcode::OP_CHECK_CAST, RegisterValue(*instruction.dest()), type.value());
 }
 
 void MethodBuilder::EncodeFieldOp(const Instruction& instruction) {
@@ -569,7 +574,7 @@
       CHECK(instruction.dest()->is_variable());
       CHECK_EQ(0, instruction.args().size());
 
-      Encode21c(::art::Instruction::SGET,
+      Encode21c(::dex::Opcode::OP_SGET,
                 RegisterValue(*instruction.dest()),
                 instruction.index_argument());
       break;
@@ -579,7 +584,7 @@
       CHECK_EQ(1, args.size());
       CHECK(args[0].is_variable());
 
-      Encode21c(::art::Instruction::SPUT, RegisterValue(args[0]), instruction.index_argument());
+      Encode21c(::dex::Opcode::OP_SPUT, RegisterValue(args[0]), instruction.index_argument());
       break;
     }
     case Instruction::Op::kGetInstanceField: {
@@ -587,7 +592,7 @@
       CHECK(instruction.dest()->is_variable());
       CHECK_EQ(1, instruction.args().size());
 
-      Encode22c(::art::Instruction::IGET,
+      Encode22c(::dex::Opcode::OP_IGET,
                 RegisterValue(*instruction.dest()),
                 RegisterValue(args[0]),
                 instruction.index_argument());
@@ -599,7 +604,7 @@
       CHECK(args[0].is_variable());
       CHECK(args[1].is_variable());
 
-      Encode22c(::art::Instruction::IPUT,
+      Encode22c(::dex::Opcode::OP_IPUT,
                 RegisterValue(args[1]),
                 RegisterValue(args[0]),
                 instruction.index_argument());
diff --git a/startop/view_compiler/dex_builder.h b/startop/view_compiler/dex_builder.h
index 3924e77..eb2dc88 100644
--- a/startop/view_compiler/dex_builder.h
+++ b/startop/view_compiler/dex_builder.h
@@ -24,7 +24,9 @@
 #include <unordered_map>
 #include <vector>
 
-#include "dex/dex_instruction.h"
+#include "android-base/logging.h"
+
+#include "slicer/dex_bytecode.h"
 #include "slicer/dex_ir.h"
 #include "slicer/writer.h"
 
@@ -364,11 +366,11 @@
   // Encodes a return instruction. For instructions with no return value, the opcode field is
   // ignored. Otherwise, this specifies which return instruction will be used (return,
   // return-object, etc.)
-  void EncodeReturn(const Instruction& instruction, ::art::Instruction::Code opcode);
+  void EncodeReturn(const Instruction& instruction, ::dex::Opcode opcode);
 
   void EncodeMove(const Instruction& instruction);
-  void EncodeInvoke(const Instruction& instruction, ::art::Instruction::Code opcode);
-  void EncodeBranch(art::Instruction::Code op, const Instruction& instruction);
+  void EncodeInvoke(const Instruction& instruction, ::dex::Opcode opcode);
+  void EncodeBranch(::dex::Opcode op, const Instruction& instruction);
   void EncodeNew(const Instruction& instruction);
   void EncodeCast(const Instruction& instruction);
   void EncodeFieldOp(const Instruction& instruction);
@@ -377,17 +379,23 @@
   // https://source.android.com/devices/tech/dalvik/instruction-formats for documentation of
   // formats.
 
-  inline void Encode10x(art::Instruction::Code opcode) {
+  inline uint8_t ToBits(::dex::Opcode opcode) {
+    static_assert(sizeof(uint8_t) == sizeof(::dex::Opcode));
+    return static_cast<uint8_t>(opcode);
+  }
+
+  inline void Encode10x(::dex::Opcode opcode) {
     // 00|op
-    buffer_.push_back(opcode);
+    static_assert(sizeof(uint8_t) == sizeof(::dex::Opcode));
+    buffer_.push_back(ToBits(opcode));
   }
 
-  inline void Encode11x(art::Instruction::Code opcode, uint8_t a) {
+  inline void Encode11x(::dex::Opcode opcode, uint8_t a) {
     // aa|op
-    buffer_.push_back((a << 8) | opcode);
+    buffer_.push_back((a << 8) | ToBits(opcode));
   }
 
-  inline void Encode11n(art::Instruction::Code opcode, uint8_t a, int8_t b) {
+  inline void Encode11n(::dex::Opcode opcode, uint8_t a, int8_t b) {
     // b|a|op
 
     // Make sure the fields are in bounds (4 bits for a, 4 bits for b).
@@ -395,30 +403,30 @@
     CHECK_LE(-8, b);
     CHECK_LT(b, 8);
 
-    buffer_.push_back(((b & 0xf) << 12) | (a << 8) | opcode);
+    buffer_.push_back(((b & 0xf) << 12) | (a << 8) | ToBits(opcode));
   }
 
-  inline void Encode21c(art::Instruction::Code opcode, uint8_t a, uint16_t b) {
+  inline void Encode21c(::dex::Opcode opcode, uint8_t a, uint16_t b) {
     // aa|op|bbbb
-    buffer_.push_back((a << 8) | opcode);
+    buffer_.push_back((a << 8) | ToBits(opcode));
     buffer_.push_back(b);
   }
 
-  inline void Encode22c(art::Instruction::Code opcode, uint8_t a, uint8_t b, uint16_t c) {
+  inline void Encode22c(::dex::Opcode opcode, uint8_t a, uint8_t b, uint16_t c) {
     // b|a|op|bbbb
     CHECK(IsShortRegister(a));
     CHECK(IsShortRegister(b));
-    buffer_.push_back((b << 12) | (a << 8) | opcode);
+    buffer_.push_back((b << 12) | (a << 8) | ToBits(opcode));
     buffer_.push_back(c);
   }
 
-  inline void Encode32x(art::Instruction::Code opcode, uint16_t a, uint16_t b) {
-    buffer_.push_back(opcode);
+  inline void Encode32x(::dex::Opcode opcode, uint16_t a, uint16_t b) {
+    buffer_.push_back(ToBits(opcode));
     buffer_.push_back(a);
     buffer_.push_back(b);
   }
 
-  inline void Encode35c(art::Instruction::Code opcode, size_t a, uint16_t b, uint8_t c, uint8_t d,
+  inline void Encode35c(::dex::Opcode opcode, size_t a, uint16_t b, uint8_t c, uint8_t d,
                         uint8_t e, uint8_t f, uint8_t g) {
     // a|g|op|bbbb|f|e|d|c
 
@@ -428,14 +436,14 @@
     CHECK(IsShortRegister(e));
     CHECK(IsShortRegister(f));
     CHECK(IsShortRegister(g));
-    buffer_.push_back((a << 12) | (g << 8) | opcode);
+    buffer_.push_back((a << 12) | (g << 8) | ToBits(opcode));
     buffer_.push_back(b);
     buffer_.push_back((f << 12) | (e << 8) | (d << 4) | c);
   }
 
-  inline void Encode3rc(art::Instruction::Code opcode, size_t a, uint16_t b, uint16_t c) {
+  inline void Encode3rc(::dex::Opcode opcode, size_t a, uint16_t b, uint16_t c) {
     CHECK_LE(a, 255);
-    buffer_.push_back((a << 8) | opcode);
+    buffer_.push_back((a << 8) | ToBits(opcode));
     buffer_.push_back(b);
     buffer_.push_back(c);
   }
diff --git a/telecomm/java/android/telecom/Call.java b/telecomm/java/android/telecom/Call.java
index 60290e3..3ecf8d7 100644
--- a/telecomm/java/android/telecom/Call.java
+++ b/telecomm/java/android/telecom/Call.java
@@ -25,8 +25,11 @@
 import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.IBinder;
 import android.os.ParcelFileDescriptor;
 
+import com.android.internal.telecom.IVideoProvider;
+
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;
@@ -512,8 +515,8 @@
 
         /**
          * Indicates the call used Assisted Dialing.
-         * See also {@link Connection#PROPERTY_ASSISTED_DIALING_USED}
-         * @hide
+         *
+         * @see TelecomManager#EXTRA_USE_ASSISTED_DIALING
          */
         public static final int PROPERTY_ASSISTED_DIALING_USED = 0x00000200;
 
@@ -1181,7 +1184,8 @@
         public void onConferenceableCallsChanged(Call call, List<Call> conferenceableCalls) {}
 
         /**
-         * Invoked when a {@link Call} receives an event from its associated {@link Connection}.
+         * Invoked when a {@link Call} receives an event from its associated {@link Connection} or
+         * {@link Conference}.
          * <p>
          * Where possible, the Call should make an attempt to handle {@link Connection} events which
          * are part of the {@code android.telecom.*} namespace.  The Call should ignore any events
@@ -1189,7 +1193,8 @@
          * possible that a {@link ConnectionService} has defined its own Connection events which a
          * Call is not aware of.
          * <p>
-         * See {@link Connection#sendConnectionEvent(String, Bundle)}.
+         * See {@link Connection#sendConnectionEvent(String, Bundle)},
+         * {@link Conference#sendConferenceEvent(String, Bundle)}.
          *
          * @param call The {@code Call} receiving the event.
          * @param event The event.
@@ -2130,13 +2135,22 @@
             cannedTextResponsesChanged = true;
         }
 
-        VideoCallImpl newVideoCallImpl = parcelableCall.getVideoCallImpl(mCallingPackage,
-                mTargetSdkVersion);
-        boolean videoCallChanged = parcelableCall.isVideoCallProviderChanged() &&
-                !Objects.equals(mVideoCallImpl, newVideoCallImpl);
+        IVideoProvider previousVideoProvider = mVideoCallImpl == null ? null :
+                mVideoCallImpl.getVideoProvider();
+        IVideoProvider newVideoProvider = parcelableCall.getVideoProvider();
+
+        // parcelableCall.isVideoCallProviderChanged is only true when we have a video provider
+        // specified; so we should check if the actual IVideoProvider changes as well.
+        boolean videoCallChanged = parcelableCall.isVideoCallProviderChanged()
+                && !Objects.equals(previousVideoProvider, newVideoProvider);
         if (videoCallChanged) {
-            mVideoCallImpl = newVideoCallImpl;
+            if (mVideoCallImpl != null) {
+                mVideoCallImpl.destroy();
+            }
+            mVideoCallImpl = parcelableCall.isVideoCallProviderChanged() ?
+                    parcelableCall.getVideoCallImpl(mCallingPackage, mTargetSdkVersion) : null;
         }
+
         if (mVideoCallImpl != null) {
             mVideoCallImpl.setVideoState(getDetails().getVideoState());
         }
diff --git a/telecomm/java/android/telecom/CallScreeningService.java b/telecomm/java/android/telecom/CallScreeningService.java
index ef1c790..b91787c 100644
--- a/telecomm/java/android/telecom/CallScreeningService.java
+++ b/telecomm/java/android/telecom/CallScreeningService.java
@@ -106,8 +106,14 @@
                     SomeArgs args = (SomeArgs) msg.obj;
                     try {
                         mCallScreeningAdapter = (ICallScreeningAdapter) args.arg1;
-                        onScreenCall(
-                                Call.Details.createFromParcelableCall((ParcelableCall) args.arg2));
+                        Call.Details callDetails = Call.Details
+                                .createFromParcelableCall((ParcelableCall) args.arg2);
+                        onScreenCall(callDetails);
+                        if (callDetails.getCallDirection() == Call.Details.DIRECTION_OUTGOING) {
+                            mCallScreeningAdapter.allowCall(callDetails.getTelecomCallId());
+                        }
+                    } catch (RemoteException e) {
+                        Log.w(this, "Exception when screening call: " + e);
                     } finally {
                         args.recycle();
                     }
diff --git a/telephony/java/android/telephony/CallerInfo.java b/telecomm/java/android/telecom/CallerInfo.java
similarity index 91%
rename from telephony/java/android/telephony/CallerInfo.java
rename to telecomm/java/android/telecom/CallerInfo.java
index f87ac50..a5d25e2 100644
--- a/telephony/java/android/telephony/CallerInfo.java
+++ b/telecomm/java/android/telecom/CallerInfo.java
@@ -14,10 +14,9 @@
  * limitations under the License.
  */
 
-package android.telephony;
+package android.telecom;
 
 import android.annotation.Nullable;
-import android.annotation.SystemApi;
 import android.annotation.UnsupportedAppUsage;
 import android.content.ComponentName;
 import android.content.ContentResolver;
@@ -33,8 +32,10 @@
 import android.provider.ContactsContract.Data;
 import android.provider.ContactsContract.PhoneLookup;
 import android.provider.ContactsContract.RawContacts;
+import android.telephony.PhoneNumberUtils;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
 import android.text.TextUtils;
-import android.util.Log;
 
 import com.android.i18n.phonenumbers.NumberParseException;
 import com.android.i18n.phonenumbers.PhoneNumberUtil;
@@ -50,10 +51,9 @@
  *
  * {@hide}
  */
-@SystemApi
 public class CallerInfo {
     private static final String TAG = "CallerInfo";
-    private static final boolean VDBG = Rlog.isLoggable(TAG, Log.VERBOSE);
+    private static final boolean VDBG = Log.VERBOSE;
 
     /** @hide */
     public static final long USER_TYPE_CURRENT = 0;
@@ -215,7 +215,7 @@
         info.contactExists = false;
         info.userType = USER_TYPE_CURRENT;
 
-        if (VDBG) Rlog.v(TAG, "getCallerInfo() based on cursor...");
+        if (VDBG) Log.v(TAG, "getCallerInfo() based on cursor...");
 
         if (cursor != null) {
             if (cursor.moveToFirst()) {
@@ -263,7 +263,7 @@
                     if (contactId != 0 && !Contacts.isEnterpriseContactId(contactId)) {
                         info.contactIdOrZero = contactId;
                         if (VDBG) {
-                            Rlog.v(TAG, "==> got info.contactIdOrZero: " + info.contactIdOrZero);
+                            Log.v(TAG, "==> got info.contactIdOrZero: " + info.contactIdOrZero);
                         }
                     }
                     if (Contacts.isEnterpriseContactId(contactId)) {
@@ -271,7 +271,7 @@
                     }
                 } else {
                     // No valid columnIndex, so we can't look up person_id.
-                    Rlog.w(TAG, "Couldn't find contact_id column for " + contactRef);
+                    Log.w(TAG, "Couldn't find contact_id column for " + contactRef);
                     // Watch out: this means that anything that depends on
                     // person_id will be broken (like contact photo lookups in
                     // the in-call UI, for example.)
@@ -356,7 +356,7 @@
                 info = getCallerInfo(context, contactRef,
                         cr.query(contactRef, null, null, null, null));
             } catch (RuntimeException re) {
-                Rlog.e(TAG, "Error getting caller info.", re);
+                Log.e(TAG, re, "Error getting caller info.");
             }
         }
         return info;
@@ -376,7 +376,7 @@
      */
     @UnsupportedAppUsage
     public static CallerInfo getCallerInfo(Context context, String number) {
-        if (VDBG) Rlog.v(TAG, "getCallerInfo() based on number...");
+        if (VDBG) Log.v(TAG, "getCallerInfo() based on number...");
 
         int subId = SubscriptionManager.getDefaultSubscriptionId();
         return getCallerInfo(context, number, subId);
@@ -407,8 +407,8 @@
         // shortcut and skip the query.
         if (PhoneNumberUtils.isLocalEmergencyNumber(context, number)) {
             return new CallerInfo().markAsEmergency(context);
-        } else if (PhoneNumberUtils.isVoiceMailNumber(subId, number)) {
-            return new CallerInfo().markAsVoiceMail();
+        } else if (PhoneNumberUtils.isVoiceMailNumber(null, subId, number)) {
+            return new CallerInfo().markAsVoiceMail(context, subId);
         }
 
         Uri contactUri = Uri.withAppendedPath(PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI,
@@ -542,36 +542,20 @@
     }
 
 
-    /**
-     * Mark this CallerInfo as a voicemail call. The voicemail label
-     * is obtained from the telephony manager. Caller must hold the
-     * READ_PHONE_STATE permission otherwise the phoneNumber will be
-     * set to null.
-     * @return this instance.
-     */
-    // TODO: As in the emergency number handling, we end up writing a
-    // string in the phone number field.
-    /* package */ CallerInfo markAsVoiceMail() {
-
-        int subId = SubscriptionManager.getDefaultSubscriptionId();
-        return markAsVoiceMail(subId);
-
-    }
-
-    /* package */ CallerInfo markAsVoiceMail(int subId) {
+    /* package */ CallerInfo markAsVoiceMail(Context context, int subId) {
         mIsVoiceMail = true;
 
         try {
-            String voiceMailLabel = TelephonyManager.getDefault().getVoiceMailAlphaTag(subId);
-
-            phoneNumber = voiceMailLabel;
+            phoneNumber = context.getSystemService(TelephonyManager.class)
+                    .createForSubscriptionId(subId)
+                    .getVoiceMailAlphaTag();
         } catch (SecurityException se) {
             // Should never happen: if this process does not have
             // permission to retrieve VM tag, it should not have
             // permission to retrieve VM number and would not call
             // this method.
             // Leave phoneNumber untouched.
-            Rlog.e(TAG, "Cannot access VoiceMail.", se);
+            Log.e(TAG, se, "Cannot access VoiceMail.");
         }
         // TODO: There is no voicemail picture?
         // FIXME: FIND ANOTHER ICON
@@ -630,10 +614,10 @@
         // So instead, figure out the column to use for person_id by just
         // looking at the URI itself.
 
-        if (VDBG) Rlog.v(TAG, "- getColumnIndexForPersonId: contactRef URI = '"
+        if (VDBG) Log.v(TAG, "- getColumnIndexForPersonId: contactRef URI = '"
                         + contactRef + "'...");
         // Warning: Do not enable the following logging (due to ANR risk.)
-        // if (VDBG) Rlog.v(TAG, "- MIME type: "
+        // if (VDBG) Log.v(TAG, "- MIME type: "
         //                 + context.getContentResolver().getType(contactRef));
 
         String url = contactRef.toString();
@@ -641,25 +625,25 @@
         if (url.startsWith("content://com.android.contacts/data/phones")) {
             // Direct lookup in the Phone table.
             // MIME type: Phone.CONTENT_ITEM_TYPE (= "vnd.android.cursor.item/phone_v2")
-            if (VDBG) Rlog.v(TAG, "'data/phones' URI; using RawContacts.CONTACT_ID");
+            if (VDBG) Log.v(TAG, "'data/phones' URI; using RawContacts.CONTACT_ID");
             columnName = RawContacts.CONTACT_ID;
         } else if (url.startsWith("content://com.android.contacts/data")) {
             // Direct lookup in the Data table.
             // MIME type: Data.CONTENT_TYPE (= "vnd.android.cursor.dir/data")
-            if (VDBG) Rlog.v(TAG, "'data' URI; using Data.CONTACT_ID");
+            if (VDBG) Log.v(TAG, "'data' URI; using Data.CONTACT_ID");
             // (Note Data.CONTACT_ID and RawContacts.CONTACT_ID are equivalent.)
             columnName = Data.CONTACT_ID;
         } else if (url.startsWith("content://com.android.contacts/phone_lookup")) {
             // Lookup in the PhoneLookup table, which provides "fuzzy matching"
             // for phone numbers.
             // MIME type: PhoneLookup.CONTENT_TYPE (= "vnd.android.cursor.dir/phone_lookup")
-            if (VDBG) Rlog.v(TAG, "'phone_lookup' URI; using PhoneLookup._ID");
+            if (VDBG) Log.v(TAG, "'phone_lookup' URI; using PhoneLookup._ID");
             columnName = PhoneLookup._ID;
         } else {
-            Rlog.w(TAG, "Unexpected prefix for contactRef '" + url + "'");
+            Log.w(TAG, "Unexpected prefix for contactRef '" + url + "'");
         }
         int columnIndex = (columnName != null) ? cursor.getColumnIndex(columnName) : -1;
-        if (VDBG) Rlog.v(TAG, "==> Using column '" + columnName
+        if (VDBG) Log.v(TAG, "==> Using column '" + columnName
                         + "' (columnIndex = " + columnIndex + ") for person_id lookup...");
         return columnIndex;
     }
@@ -689,7 +673,7 @@
      * @hide
      */
     public static String getGeoDescription(Context context, String number) {
-        if (VDBG) Rlog.v(TAG, "getGeoDescription('" + number + "')...");
+        if (VDBG) Log.v(TAG, "getGeoDescription('" + number + "')...");
 
         if (TextUtils.isEmpty(number)) {
             return null;
@@ -702,18 +686,18 @@
         String countryIso = getCurrentCountryIso(context, locale);
         PhoneNumber pn = null;
         try {
-            if (VDBG) Rlog.v(TAG, "parsing '" + number
+            if (VDBG) Log.v(TAG, "parsing '" + number
                             + "' for countryIso '" + countryIso + "'...");
             pn = util.parse(number, countryIso);
-            if (VDBG) Rlog.v(TAG, "- parsed number: " + pn);
+            if (VDBG) Log.v(TAG, "- parsed number: " + pn);
         } catch (NumberParseException e) {
-            Rlog.w(TAG, "getGeoDescription: NumberParseException for incoming number '"
-                    + Rlog.pii(TAG, number) + "'");
+            Log.w(TAG, "getGeoDescription: NumberParseException for incoming number '"
+                    + Log.pii(number) + "'");
         }
 
         if (pn != null) {
             String description = geocoder.getDescriptionForNumber(pn, locale);
-            if (VDBG) Rlog.v(TAG, "- got description: '" + description + "'");
+            if (VDBG) Log.v(TAG, "- got description: '" + description + "'");
             return description;
         } else {
             return null;
@@ -733,12 +717,12 @@
             if (country != null) {
                 countryIso = country.getCountryIso();
             } else {
-                Rlog.e(TAG, "CountryDetector.detectCountry() returned null.");
+                Log.e(TAG, new Exception(), "CountryDetector.detectCountry() returned null.");
             }
         }
         if (countryIso == null) {
             countryIso = locale.getCountry();
-            Rlog.w(TAG, "No CountryDetector; falling back to countryIso based on locale: "
+            Log.w(TAG, "No CountryDetector; falling back to countryIso based on locale: "
                     + countryIso);
         }
         return countryIso;
diff --git a/telephony/java/android/telephony/CallerInfoAsyncQuery.java b/telecomm/java/android/telecom/CallerInfoAsyncQuery.java
similarity index 91%
rename from telephony/java/android/telephony/CallerInfoAsyncQuery.java
rename to telecomm/java/android/telecom/CallerInfoAsyncQuery.java
index 87a6376..f38b34e 100644
--- a/telephony/java/android/telephony/CallerInfoAsyncQuery.java
+++ b/telecomm/java/android/telecom/CallerInfoAsyncQuery.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package android.telephony;
+package android.telecom;
 
 import android.app.ActivityManager;
 import android.content.AsyncQueryHandler;
@@ -31,6 +31,8 @@
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.ContactsContract.PhoneLookup;
+import android.telephony.PhoneNumberUtils;
+import android.telephony.SubscriptionManager;
 import android.text.TextUtils;
 import java.util.ArrayList;
 import java.util.List;
@@ -100,12 +102,12 @@
      */
     static ContentResolver getCurrentProfileContentResolver(Context context) {
 
-        if (DBG) Rlog.d(LOG_TAG, "Trying to get current content resolver...");
+        if (DBG) Log.d(LOG_TAG, "Trying to get current content resolver...");
 
         final int currentUser = ActivityManager.getCurrentUser();
         final int myUser = UserManager.get(context).getUserHandle();
 
-        if (DBG) Rlog.d(LOG_TAG, "myUser=" + myUser + "currentUser=" + currentUser);
+        if (DBG) Log.d(LOG_TAG, "myUser=" + myUser + "currentUser=" + currentUser);
 
         if (myUser != currentUser) {
             final Context otherContext;
@@ -114,7 +116,7 @@
                         /* flags =*/ 0, UserHandle.of(currentUser));
                 return otherContext.getContentResolver();
             } catch (NameNotFoundException e) {
-                Rlog.e(LOG_TAG, "Can't find self package", e);
+                Log.e(LOG_TAG, e, "Can't find self package");
                 // Fall back to the primary user.
             }
         }
@@ -179,13 +181,13 @@
                     // However, if there is any code that this Handler calls (such as in
                     // super.handleMessage) that DOES place unexpected messages on the
                     // queue, then we need pass these messages on.
-                    Rlog.i(LOG_TAG, "Unexpected command (CookieWrapper is null): " + msg.what +
+                    Log.i(LOG_TAG, "Unexpected command (CookieWrapper is null): " + msg.what +
                             " ignored by CallerInfoWorkerHandler, passing onto parent.");
 
                     super.handleMessage(msg);
                 } else {
 
-                    Rlog.d(LOG_TAG, "Processing event: " + cw.event + " token (arg1): " + msg.arg1 +
+                    Log.d(LOG_TAG, "Processing event: " + cw.event + " token (arg1): " + msg.arg1 +
                         " command: " + msg.what + " query URI: " + sanitizeUriToString(args.uri));
 
                     switch (cw.event) {
@@ -226,7 +228,7 @@
                     cw.geoDescription = CallerInfo.getGeoDescription(mContext, cw.number);
                     final long duration = SystemClock.elapsedRealtime() - startTimeMillis;
                     if (duration > 500) {
-                        if (DBG) Rlog.d(LOG_TAG, "[handleGeoDescription]" +
+                        if (DBG) Log.d(LOG_TAG, "[handleGeoDescription]" +
                                 "Spends long time to retrieve Geo description: " + duration);
                     }
                 }
@@ -263,7 +265,7 @@
          */
         @Override
         protected void onQueryComplete(int token, Object cookie, Cursor cursor) {
-            Rlog.d(LOG_TAG, "##### onQueryComplete() #####   query complete for token: " + token);
+            Log.d(LOG_TAG, "##### onQueryComplete() #####   query complete for token: " + token);
 
             //get the cookie and notify the listener.
             CookieWrapper cw = (CookieWrapper) cookie;
@@ -272,7 +274,7 @@
                 // from within this code.
                 // However, if there is any code that calls this method, we should
                 // check the parameters to make sure they're viable.
-                Rlog.i(LOG_TAG, "Cookie is null, ignoring onQueryComplete() request.");
+                Log.i(LOG_TAG, "Cookie is null, ignoring onQueryComplete() request.");
                 if (cursor != null) {
                     cursor.close();
                 }
@@ -321,16 +323,16 @@
                     // comments at the top of CallerInfo class).
                     mCallerInfo = new CallerInfo().markAsEmergency(mContext);
                 } else if (cw.event == EVENT_VOICEMAIL_NUMBER) {
-                    mCallerInfo = new CallerInfo().markAsVoiceMail(cw.subId);
+                    mCallerInfo = new CallerInfo().markAsVoiceMail(mContext, cw.subId);
                 } else {
                     mCallerInfo = CallerInfo.getCallerInfo(mContext, mQueryUri, cursor);
-                    if (DBG) Rlog.d(LOG_TAG, "==> Got mCallerInfo: " + mCallerInfo);
+                    if (DBG) Log.d(LOG_TAG, "==> Got mCallerInfo: " + mCallerInfo);
 
                     CallerInfo newCallerInfo = CallerInfo.doSecondaryLookupIfNecessary(
                             mContext, cw.number, mCallerInfo);
                     if (newCallerInfo != mCallerInfo) {
                         mCallerInfo = newCallerInfo;
-                        if (DBG) Rlog.d(LOG_TAG, "#####async contact look up with numeric username"
+                        if (DBG) Log.d(LOG_TAG, "#####async contact look up with numeric username"
                                 + mCallerInfo);
                     }
 
@@ -346,7 +348,7 @@
                     // the geo description, so it would be unnecessary to query it.
                     if (ENABLE_UNKNOWN_NUMBER_GEO_DESCRIPTION) {
                         if (TextUtils.isEmpty(mCallerInfo.getName())) {
-                            if (DBG) Rlog.d(LOG_TAG, "start querying geo description");
+                            if (DBG) Log.d(LOG_TAG, "start querying geo description");
                             cw.event = EVENT_GET_GEO_DESCRIPTION;
                             startQuery(token, cw, null, null, null, null, null);
                             return;
@@ -354,7 +356,7 @@
                     }
                 }
 
-                if (DBG) Rlog.d(LOG_TAG, "constructing CallerInfo object for token: " + token);
+                if (DBG) Log.d(LOG_TAG, "constructing CallerInfo object for token: " + token);
 
                 //notify that we can clean up the queue after this.
                 CookieWrapper endMarker = new CookieWrapper();
@@ -367,14 +369,14 @@
                 mPendingListenerCallbacks.add(new Runnable() {
                     @Override
                     public void run() {
-                        if (DBG) Rlog.d(LOG_TAG, "notifying listener: "
+                        if (DBG) Log.d(LOG_TAG, "notifying listener: "
                                 + cw.listener.getClass().toString() + " for token: " + token
                                 + mCallerInfo);
                         cw.listener.onQueryComplete(token, cw.cookie, mCallerInfo);
                     }
                 });
             } else {
-                Rlog.w(LOG_TAG, "There is no listener to notify for this query.");
+                Log.w(LOG_TAG, "There is no listener to notify for this query.");
             }
 
             if (cursor != null) {
@@ -399,7 +401,7 @@
         CallerInfoAsyncQuery c = new CallerInfoAsyncQuery();
         c.allocate(context, contactRef);
 
-        if (DBG) Rlog.d(LOG_TAG, "starting query for URI: " + contactRef + " handler: " + c.toString());
+        if (DBG) Log.d(LOG_TAG, "starting query for URI: " + contactRef + " handler: " + c.toString());
 
         //create cookieWrapper, start query
         CookieWrapper cw = new CookieWrapper();
@@ -445,9 +447,9 @@
             OnQueryCompleteListener listener, Object cookie, int subId) {
 
         if (DBG) {
-            Rlog.d(LOG_TAG, "##### CallerInfoAsyncQuery startQuery()... #####");
-            Rlog.d(LOG_TAG, "- number: " + /*number*/ "xxxxxxx");
-            Rlog.d(LOG_TAG, "- cookie: " + cookie);
+            Log.d(LOG_TAG, "##### CallerInfoAsyncQuery startQuery()... #####");
+            Log.d(LOG_TAG, "- number: " + /*number*/ "xxxxxxx");
+            Log.d(LOG_TAG, "- cookie: " + cookie);
         }
 
         // Construct the URI object and query params, and start the query.
@@ -459,7 +461,7 @@
                 .build();
 
         if (DBG) {
-            Rlog.d(LOG_TAG, "==> contactRef: " + sanitizeUriToString(contactRef));
+            Log.d(LOG_TAG, "==> contactRef: " + sanitizeUriToString(contactRef));
         }
 
         CallerInfoAsyncQuery c = new CallerInfoAsyncQuery();
@@ -496,8 +498,8 @@
      */
     public void addQueryListener(int token, OnQueryCompleteListener listener, Object cookie) {
 
-        if (DBG) Rlog.d(LOG_TAG, "adding listener to query: " + sanitizeUriToString(mHandler.mQueryUri) +
-                " handler: " + mHandler.toString());
+        if (DBG) Log.d(LOG_TAG, "adding listener to query: "
+                + sanitizeUriToString(mHandler.mQueryUri) + " handler: " + mHandler.toString());
 
         //create cookieWrapper, add query request to end of queue.
         CookieWrapper cw = new CookieWrapper();
diff --git a/telecomm/java/android/telecom/Conference.java b/telecomm/java/android/telecom/Conference.java
index cd5fd97..58abf00 100644
--- a/telecomm/java/android/telecom/Conference.java
+++ b/telecomm/java/android/telecom/Conference.java
@@ -24,6 +24,7 @@
 import android.os.Bundle;
 import android.os.SystemClock;
 import android.telecom.Connection.VideoProvider;
+import android.telephony.Annotation.RilRadioTechnology;
 import android.telephony.ServiceState;
 import android.telephony.TelephonyManager;
 import android.util.ArraySet;
@@ -49,7 +50,7 @@
     public static final long CONNECT_TIME_NOT_SPECIFIED = 0;
 
     /** @hide */
-    public abstract static class Listener {
+    abstract static class Listener {
         public void onStateChanged(Conference conference, int oldState, int newState) {}
         public void onDisconnected(Conference conference, DisconnectCause disconnectCause) {}
         public void onConnectionAdded(Conference conference, Connection connection) {}
@@ -120,11 +121,17 @@
 
     /**
      * Returns the telecom internal call ID associated with this conference.
+     * <p>
+     * Note: This is ONLY used for debugging purposes so that the Telephony stack can better
+     * associate logs in Telephony with those in Telecom.
+     * The ID returned should not be used for any other purpose.
      *
      * @return The telecom call ID.
      * @hide
      */
-    public final String getTelecomCallId() {
+    @SystemApi
+    @TestApi
+    public final @NonNull String getTelecomCallId() {
         return mTelecomCallId;
     }
 
@@ -186,55 +193,6 @@
     }
 
     /**
-     * Whether the given capabilities support the specified capability.
-     *
-     * @param capabilities A capability bit field.
-     * @param capability The capability to check capabilities for.
-     * @return Whether the specified capability is supported.
-     * @hide
-     */
-    public static boolean can(int capabilities, int capability) {
-        return (capabilities & capability) != 0;
-    }
-
-    /**
-     * Whether the capabilities of this {@code Connection} supports the specified capability.
-     *
-     * @param capability The capability to check capabilities for.
-     * @return Whether the specified capability is supported.
-     * @hide
-     */
-    public boolean can(int capability) {
-        return can(mConnectionCapabilities, capability);
-    }
-
-    /**
-     * Removes the specified capability from the set of capabilities of this {@code Conference}.
-     *
-     * @param capability The capability to remove from the set.
-     * @hide
-     */
-    public void removeCapability(int capability) {
-        int newCapabilities = mConnectionCapabilities;
-        newCapabilities &= ~capability;
-
-        setConnectionCapabilities(newCapabilities);
-    }
-
-    /**
-     * Adds the specified capability to the set of capabilities of this {@code Conference}.
-     *
-     * @param capability The capability to add to the set.
-     * @hide
-     */
-    public void addCapability(int capability) {
-        int newCapabilities = mConnectionCapabilities;
-        newCapabilities |= capability;
-
-        setConnectionCapabilities(newCapabilities);
-    }
-
-    /**
      * @return The audio state of the conference, describing how its audio is currently
      *         being routed by the system. This is {@code null} if this Conference
      *         does not directly know about its audio state.
@@ -553,7 +511,7 @@
      * @return This conference.
      * @hide
      */
-    public final Conference addListener(Listener listener) {
+    final Conference addListener(Listener listener) {
         mListeners.add(listener);
         return this;
     }
@@ -565,7 +523,7 @@
      * @return This conference.
      * @hide
      */
-    public final Conference removeListener(Listener listener) {
+    final Conference removeListener(Listener listener) {
         mListeners.remove(listener);
         return this;
     }
@@ -587,20 +545,6 @@
     }
 
     /**
-     * Updates RIL voice radio technology used for current conference after its creation.
-     *
-     * @hide
-     */
-    public void updateCallRadioTechAfterCreation() {
-        final Connection primaryConnection = getPrimaryConnection();
-        if (primaryConnection != null) {
-            setCallRadioTech(primaryConnection.getCallRadioTech());
-        } else {
-            Log.w(this, "No primary connection found while updateCallRadioTechAfterCreation");
-        }
-    }
-
-    /**
      * @hide
      * @deprecated Use {@link #setConnectionTime}.
      */
@@ -668,49 +612,24 @@
      * Retrieves the connection start time of the {@link Conference}, if specified.  A value of
      * {@link #CONNECT_TIME_NOT_SPECIFIED} indicates that Telecom should determine the start time
      * of the conference.
-     *
+     * <p>
      * This is based on the value of {@link SystemClock#elapsedRealtime()} to ensure that it is not
      * impacted by wall clock changes (user initiated, network initiated, time zone change, etc).
+     * <p>
+     * Note: This is only exposed for use by the Telephony framework which needs it to copy
+     * conference start times among conference participants.  It is exposed as a system API since it
+     * has no general use other than to the Telephony framework.
      *
      * @return The elapsed time at which the {@link Conference} was connected.
      * @hide
      */
+    @SystemApi
+    @TestApi
     public final long getConnectionStartElapsedRealTime() {
         return mConnectionStartElapsedRealTime;
     }
 
     /**
-     * Sets RIL voice radio technology used for current conference.
-     *
-     * @param vrat the RIL voice radio technology used for current conference,
-     *             see {@code RIL_RADIO_TECHNOLOGY_*} in {@link android.telephony.ServiceState}.
-     *
-     * @hide
-     */
-    public final void setCallRadioTech(@ServiceState.RilRadioTechnology int vrat) {
-        putExtra(TelecomManager.EXTRA_CALL_NETWORK_TYPE,
-                ServiceState.rilRadioTechnologyToNetworkType(vrat));
-    }
-
-    /**
-     * Returns RIL voice radio technology used for current conference.
-     *
-     * @return the RIL voice radio technology used for current conference,
-     *         see {@code RIL_RADIO_TECHNOLOGY_*} in {@link android.telephony.ServiceState}.
-     *
-     * @hide
-     */
-    public final @ServiceState.RilRadioTechnology int getCallRadioTech() {
-        int voiceNetworkType = TelephonyManager.NETWORK_TYPE_UNKNOWN;
-        Bundle extras = getExtras();
-        if (extras != null) {
-            voiceNetworkType = extras.getInt(TelecomManager.EXTRA_CALL_NETWORK_TYPE,
-                    TelephonyManager.NETWORK_TYPE_UNKNOWN);
-        }
-        return ServiceState.networkTypeToRilRadioTechnology(voiceNetworkType);
-    }
-
-    /**
      * Inform this Conference that the state of its audio output has been changed externally.
      *
      * @param state The new audio state.
@@ -969,11 +888,15 @@
      * single-party call when the participant count drops to 1.  Although the dialer/phone app
      * could perform this trickery, it makes sense to do this in Telephony since a fix there will
      * ensure that bluetooth head units, auto and wearable apps all behave consistently.
+     * <p>
+     * This API is intended for use by the platform Telephony stack only.
      *
      * @param isConference {@code true} if this {@link Conference} should be treated like a
      *      conference call, {@code false} if it should be treated like a single-party call.
      * @hide
      */
+    @SystemApi
+    @TestApi
     public void setConferenceState(boolean isConference) {
         for (Listener l : mListeners) {
             l.onConferenceStateChanged(this, isConference);
@@ -983,13 +906,19 @@
     /**
      * Sets the address of this {@link Conference}.  Used when {@link #setConferenceState(boolean)}
      * is called to mark a conference temporarily as NOT a conference.
+     * <p>
+     * Note: This is a Telephony-specific implementation detail related to IMS conferences.  It is
+     * not intended for use outside of the Telephony stack.
      *
      * @param address The new address.
      * @param presentation The presentation requirements for the address.
      *        See {@link TelecomManager} for valid values.
      * @hide
      */
-    public final void setAddress(Uri address, int presentation) {
+    @SystemApi
+    @TestApi
+    public final void setAddress(@NonNull Uri address,
+            @TelecomManager.Presentation int presentation) {
         Log.d(this, "setAddress %s", address);
         mAddress = address;
         mAddressPresentation = presentation;
@@ -1055,13 +984,19 @@
      * Sets the caller display name (CNAP) of this {@link Conference}.  Used when
      * {@link #setConferenceState(boolean)} is called to mark a conference temporarily as NOT a
      * conference.
+     * <p>
+     * Note: This is a Telephony-specific implementation detail related to IMS conferences.  It is
+     * not intended for use outside of the Telephony stack.
      *
      * @param callerDisplayName The new display name.
      * @param presentation The presentation requirements for the handle.
      *        See {@link TelecomManager} for valid values.
      * @hide
      */
-    public final void setCallerDisplayName(String callerDisplayName, int presentation) {
+    @SystemApi
+    @TestApi
+    public final void setCallerDisplayName(@NonNull String callerDisplayName,
+            @TelecomManager.Presentation int presentation) {
         Log.d(this, "setCallerDisplayName %s", callerDisplayName);
         mCallerDisplayName = callerDisplayName;
         mCallerDisplayNamePresentation = presentation;
@@ -1088,10 +1023,15 @@
     }
 
     /**
-     * See {@link Connection#sendConnectionEvent(String, Bundle)}
-     * @hide
+     * Sends an event associated with this {@code Conference} with associated event extras to the
+     * {@link InCallService} (note: this is identical in concept to
+     * {@link Connection#sendConnectionEvent(String, Bundle)}).
+     * @see Connection#sendConnectionEvent(String, Bundle)
+     *
+     * @param event The connection event.
+     * @param extras Optional bundle containing extra information associated with the event.
      */
-    public void sendConnectionEvent(String event, Bundle extras) {
+    public void sendConferenceEvent(@NonNull String event, @Nullable Bundle extras) {
         for (Listener l : mListeners) {
             l.onConnectionEvent(this, event, extras);
         }
diff --git a/telecomm/java/android/telecom/ConferenceParticipant.java b/telecomm/java/android/telecom/ConferenceParticipant.java
deleted file mode 100644
index 5e4818a..0000000
--- a/telecomm/java/android/telecom/ConferenceParticipant.java
+++ /dev/null
@@ -1,348 +0,0 @@
-/*
- * Copyright (C) 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
- */
-
-package android.telecom;
-
-import android.net.Uri;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.telephony.PhoneNumberUtils;
-import android.text.TextUtils;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.telephony.PhoneConstants;
-
-/**
- * Parcelable representation of a participant's state in a conference call.
- * @hide
- */
-public class ConferenceParticipant implements Parcelable {
-
-    /**
-     * RFC5767 states that a SIP URI with an unknown number should use an address of
-     * {@code anonymous@anonymous.invalid}.  E.g. the host name is anonymous.invalid.
-     */
-    private static final String ANONYMOUS_INVALID_HOST = "anonymous.invalid";
-    /**
-     * The conference participant's handle (e.g., phone number).
-     */
-    private final Uri mHandle;
-
-    /**
-     * The display name for the participant.
-     */
-    private final String mDisplayName;
-
-    /**
-     * The endpoint Uri which uniquely identifies this conference participant.  E.g. for an IMS
-     * conference call, this is the endpoint URI for the participant on the IMS conference server.
-     */
-    private final Uri mEndpoint;
-
-    /**
-     * The state of the participant in the conference.
-     *
-     * @see android.telecom.Connection
-     */
-    private final int mState;
-
-    /**
-     * The connect time of the participant.
-     */
-    private long mConnectTime;
-
-    /**
-     * The connect elapsed time of the participant.
-     */
-    private long mConnectElapsedTime;
-
-    /**
-     * The direction of the call;
-     * {@link Call.Details#DIRECTION_INCOMING} for incoming calls, or
-     * {@link Call.Details#DIRECTION_OUTGOING} for outgoing calls.
-     */
-    private int mCallDirection;
-
-    /**
-     * Creates an instance of {@code ConferenceParticipant}.
-     *
-     * @param handle      The conference participant's handle (e.g., phone number).
-     * @param displayName The display name for the participant.
-     * @param endpoint    The enpoint Uri which uniquely identifies this conference participant.
-     * @param state       The state of the participant in the conference.
-     * @param callDirection The direction of the call (incoming/outgoing).
-     */
-    public ConferenceParticipant(Uri handle, String displayName, Uri endpoint, int state,
-            int callDirection) {
-        mHandle = handle;
-        mDisplayName = displayName;
-        mEndpoint = endpoint;
-        mState = state;
-        mCallDirection = callDirection;
-    }
-
-    /**
-     * Responsible for creating {@code ConferenceParticipant} objects for deserialized Parcels.
-     */
-    public static final @android.annotation.NonNull Parcelable.Creator<ConferenceParticipant> CREATOR =
-            new Parcelable.Creator<ConferenceParticipant>() {
-
-                @Override
-                public ConferenceParticipant createFromParcel(Parcel source) {
-                    ClassLoader classLoader = ParcelableCall.class.getClassLoader();
-                    Uri handle = source.readParcelable(classLoader);
-                    String displayName = source.readString();
-                    Uri endpoint = source.readParcelable(classLoader);
-                    int state = source.readInt();
-                    long connectTime = source.readLong();
-                    long elapsedRealTime = source.readLong();
-                    int callDirection = source.readInt();
-                    ConferenceParticipant participant =
-                            new ConferenceParticipant(handle, displayName, endpoint, state,
-                                    callDirection);
-                    participant.setConnectTime(connectTime);
-                    participant.setConnectElapsedTime(elapsedRealTime);
-                    participant.setCallDirection(callDirection);
-                    return participant;
-                }
-
-                @Override
-                public ConferenceParticipant[] newArray(int size) {
-                    return new ConferenceParticipant[size];
-                }
-            };
-
-    @Override
-    public int describeContents() {
-        return 0;
-    }
-
-    /**
-     * Determines the number presentation for a conference participant.  Per RFC5767, if the host
-     * name contains {@code anonymous.invalid} we can assume that there is no valid caller ID
-     * information for the caller, otherwise we'll assume that the URI can be shown.
-     *
-     * @return The number presentation.
-     */
-    @VisibleForTesting
-    public int getParticipantPresentation() {
-        Uri address = getHandle();
-        if (address == null) {
-            return PhoneConstants.PRESENTATION_RESTRICTED;
-        }
-
-        String number = address.getSchemeSpecificPart();
-        // If no number, bail early and set restricted presentation.
-        if (TextUtils.isEmpty(number)) {
-            return PhoneConstants.PRESENTATION_RESTRICTED;
-        }
-        // Per RFC3261, the host name portion can also potentially include extra information:
-        // E.g. sip:anonymous1@anonymous.invalid;legid=1
-        // In this case, hostName will be anonymous.invalid and there is an extra parameter for
-        // legid=1.
-        // Parameters are optional, and the address (e.g. test@test.com) will always be the first
-        // part, with any parameters coming afterwards.
-        String [] hostParts = number.split("[;]");
-        String addressPart = hostParts[0];
-
-        // Get the number portion from the address part.
-        // This will typically be formatted similar to: 6505551212@test.com
-        String [] numberParts = addressPart.split("[@]");
-
-        // If we can't parse the host name out of the URI, then there is probably other data
-        // present, and is likely a valid SIP URI.
-        if (numberParts.length != 2) {
-            return PhoneConstants.PRESENTATION_ALLOWED;
-        }
-        String hostName = numberParts[1];
-
-        // If the hostname portion of the SIP URI is the invalid host string, presentation is
-        // restricted.
-        if (hostName.equals(ANONYMOUS_INVALID_HOST)) {
-            return PhoneConstants.PRESENTATION_RESTRICTED;
-        }
-
-        return PhoneConstants.PRESENTATION_ALLOWED;
-    }
-
-    /**
-     * Writes the {@code ConferenceParticipant} to a parcel.
-     *
-     * @param dest The Parcel in which the object should be written.
-     * @param flags Additional flags about how the object should be written.
-     */
-    @Override
-    public void writeToParcel(Parcel dest, int flags) {
-        dest.writeParcelable(mHandle, 0);
-        dest.writeString(mDisplayName);
-        dest.writeParcelable(mEndpoint, 0);
-        dest.writeInt(mState);
-        dest.writeLong(mConnectTime);
-        dest.writeLong(mConnectElapsedTime);
-        dest.writeInt(mCallDirection);
-    }
-
-    /**
-     * Builds a string representation of this instance.
-     *
-     * @return String representing the conference participant.
-     */
-    @Override
-    public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("[ConferenceParticipant Handle: ");
-        sb.append(Log.pii(mHandle));
-        sb.append(" DisplayName: ");
-        sb.append(Log.pii(mDisplayName));
-        sb.append(" Endpoint: ");
-        sb.append(Log.pii(mEndpoint));
-        sb.append(" State: ");
-        sb.append(Connection.stateToString(mState));
-        sb.append(" ConnectTime: ");
-        sb.append(getConnectTime());
-        sb.append(" ConnectElapsedTime: ");
-        sb.append(getConnectElapsedTime());
-        sb.append(" Direction: ");
-        sb.append(getCallDirection() == Call.Details.DIRECTION_INCOMING ? "Incoming" : "Outgoing");
-        sb.append("]");
-        return sb.toString();
-    }
-
-    /**
-     * The conference participant's handle (e.g., phone number).
-     */
-    public Uri getHandle() {
-        return mHandle;
-    }
-
-    /**
-     * The display name for the participant.
-     */
-    public String getDisplayName() {
-        return mDisplayName;
-    }
-
-    /**
-     * The enpoint Uri which uniquely identifies this conference participant.  E.g. for an IMS
-     * conference call, this is the endpoint URI for the participant on the IMS conference server.
-     */
-    public Uri getEndpoint() {
-        return mEndpoint;
-    }
-
-    /**
-     * The state of the participant in the conference.
-     *
-     * @see android.telecom.Connection
-     */
-    public int getState() {
-        return mState;
-    }
-
-    /**
-     * The connect time of the participant to the conference.
-     */
-    public long getConnectTime() {
-        return mConnectTime;
-    }
-
-    public void setConnectTime(long connectTime) {
-        this.mConnectTime = connectTime;
-    }
-
-    /**
-     * The connect elapsed time of the participant to the conference.
-     */
-    public long getConnectElapsedTime() {
-        return mConnectElapsedTime;
-    }
-
-    public void setConnectElapsedTime(long connectElapsedTime) {
-        mConnectElapsedTime = connectElapsedTime;
-    }
-
-    /**
-     * @return The direction of the call (incoming/outgoing).
-     */
-    public @Call.Details.CallDirection int getCallDirection() {
-        return mCallDirection;
-    }
-
-    /**
-     * Sets the direction of the call.
-     * @param callDirection Whether the call is incoming or outgoing.
-     */
-    public void setCallDirection(@Call.Details.CallDirection int callDirection) {
-        mCallDirection = callDirection;
-    }
-
-    /**
-     * Attempts to build a tel: style URI from a conference participant.
-     * Conference event package data contains SIP URIs, so we try to extract the phone number and
-     * format into a typical tel: style URI.
-     *
-     * @param address The conference participant's address.
-     * @param countryIso The country ISO of the current subscription; used when formatting the
-     *                   participant phone number to E.164 format.
-     * @return The participant's address URI.
-     * @hide
-     */
-    @VisibleForTesting
-    public static Uri getParticipantAddress(Uri address, String countryIso) {
-        if (address == null) {
-            return address;
-        }
-        // Even if address is already in tel: format, still parse it and rebuild.
-        // This is to recognize tel URIs such as:
-        // tel:6505551212;phone-context=ims.mnc012.mcc034.3gppnetwork.org
-
-        // Conference event package participants are identified using SIP URIs (see RFC3261).
-        // A valid SIP uri has the format: sip:user:password@host:port;uri-parameters?headers
-        // Per RFC3261, the "user" can be a telephone number.
-        // For example: sip:1650555121;phone-context=blah.com@host.com
-        // In this case, the phone number is in the user field of the URI, and the parameters can be
-        // ignored.
-        //
-        // A SIP URI can also specify a phone number in a format similar to:
-        // sip:+1-212-555-1212@something.com;user=phone
-        // In this case, the phone number is again in user field and the parameters can be ignored.
-        // We can get the user field in these instances by splitting the string on the @, ;, or :
-        // and looking at the first found item.
-        String number = address.getSchemeSpecificPart();
-        if (TextUtils.isEmpty(number)) {
-            return address;
-        }
-
-        String numberParts[] = number.split("[@;:]");
-        if (numberParts.length == 0) {
-            return address;
-        }
-        number = numberParts[0];
-
-        // Attempt to format the number in E.164 format and use that as part of the TEL URI.
-        // RFC2806 recommends to format telephone numbers using E.164 since it is independent of
-        // how the dialing of said numbers takes place.
-        // If conversion to E.164 fails, the returned value is null.  In that case, fallback to the
-        // number which was in the CEP data.
-        String formattedNumber = null;
-        if (!TextUtils.isEmpty(countryIso)) {
-            formattedNumber = PhoneNumberUtils.formatNumberToE164(number, countryIso);
-        }
-
-        return Uri.fromParts(PhoneAccount.SCHEME_TEL,
-                formattedNumber != null ? formattedNumber : number, null);
-    }
-}
diff --git a/telecomm/java/android/telecom/Connection.java b/telecomm/java/android/telecom/Connection.java
index 4f373af..4c22ba9 100644
--- a/telecomm/java/android/telecom/Connection.java
+++ b/telecomm/java/android/telecom/Connection.java
@@ -19,6 +19,7 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.annotation.UnsupportedAppUsage;
 import android.app.Notification;
 import android.bluetooth.BluetoothDevice;
@@ -34,6 +35,7 @@
 import android.os.ParcelFileDescriptor;
 import android.os.RemoteException;
 import android.os.SystemClock;
+import android.telephony.Annotation.RilRadioTechnology;
 import android.telephony.ServiceState;
 import android.telephony.TelephonyManager;
 import android.util.ArraySet;
@@ -273,6 +275,7 @@
      * @hide
      */
     @SystemApi
+    @TestApi
     public static final int CAPABILITY_SPEED_UP_MT_AUDIO = 0x00040000;
 
     /**
@@ -310,6 +313,7 @@
      * @hide
      */
     @SystemApi
+    @TestApi
     public static final int CAPABILITY_CONFERENCE_HAS_NO_CHILDREN = 0x00200000;
 
     /**
@@ -356,6 +360,7 @@
      * @hide
      */
     @SystemApi
+    @TestApi
     public static final int PROPERTY_EMERGENCY_CALLBACK_MODE = 1<<0;
 
     /**
@@ -366,6 +371,7 @@
      * @hide
      */
     @SystemApi
+    @TestApi
     public static final int PROPERTY_GENERIC_CONFERENCE = 1<<1;
 
     /**
@@ -417,6 +423,7 @@
      * @hide
      */
     @SystemApi
+    @TestApi
     public static final int PROPERTY_IS_DOWNGRADED_CONFERENCE = 1<<6;
 
     /**
@@ -435,7 +442,10 @@
 
     /**
      * Set by the framework to indicate that a connection is using assisted dialing.
-     * @hide
+     * <p>
+     * This is used for outgoing calls.
+     *
+     * @see TelecomManager#EXTRA_USE_ASSISTED_DIALING
      */
     public static final int PROPERTY_ASSISTED_DIALING_USED = 1 << 9;
 
@@ -457,6 +467,7 @@
      * @hide
      */
     @SystemApi
+    @TestApi
     public static final int PROPERTY_REMOTELY_HOSTED = 1 << 11;
 
     //**********************************************************************************************
@@ -515,6 +526,7 @@
      * @hide
      */
     @SystemApi
+    @TestApi
     public static final String EXTRA_DISABLE_ADD_CALL =
             "android.telecom.extra.DISABLE_ADD_CALL";
 
@@ -1806,6 +1818,7 @@
      * @hide
      */
     @SystemApi
+    @TestApi
     public final @Nullable String getTelecomCallId() {
         return mTelecomCallId;
     }
@@ -1922,6 +1935,7 @@
      * @hide
      */
     @SystemApi
+    @TestApi
     public final long getConnectTimeMillis() {
         return mConnectTimeMillis;
     }
@@ -1941,32 +1955,12 @@
      * @hide
      */
     @SystemApi
+    @TestApi
     public final long getConnectElapsedTimeMillis() {
         return mConnectElapsedTimeMillis;
     }
 
     /**
-     * Returns RIL voice radio technology used for current connection.
-     * <p>
-     * Used by the Telephony {@link ConnectionService}.
-     *
-     * @return the RIL voice radio technology used for current connection,
-     *         see {@code RIL_RADIO_TECHNOLOGY_*} in {@link android.telephony.ServiceState}.
-     *
-     * @hide
-     */
-    @SystemApi
-    public final @ServiceState.RilRadioTechnology int getCallRadioTech() {
-        int voiceNetworkType = TelephonyManager.NETWORK_TYPE_UNKNOWN;
-        Bundle extras = getExtras();
-        if (extras != null) {
-            voiceNetworkType = extras.getInt(TelecomManager.EXTRA_CALL_NETWORK_TYPE,
-                    TelephonyManager.NETWORK_TYPE_UNKNOWN);
-        }
-        return ServiceState.networkTypeToRilRadioTechnology(voiceNetworkType);
-    }
-
-    /**
      * @return The status hints for this connection.
      */
     public final StatusHints getStatusHints() {
@@ -2044,6 +2038,7 @@
      * @hide
      */
     @SystemApi
+    @TestApi
     public void setTelecomCallId(@NonNull String callId) {
         mTelecomCallId = callId;
     }
@@ -2390,6 +2385,7 @@
      * @hide
      */
     @SystemApi
+    @TestApi
     public final void setConnectTimeMillis(long connectTimeMillis) {
         mConnectTimeMillis = connectTimeMillis;
     }
@@ -2405,39 +2401,12 @@
      * @hide
      */
     @SystemApi
+    @TestApi
     public final void setConnectionStartElapsedRealTime(long connectElapsedTimeMillis) {
         mConnectElapsedTimeMillis = connectElapsedTimeMillis;
     }
 
     /**
-     * Sets RIL voice radio technology used for current connection.
-     * <p>
-     * This property is set by the Telephony {@link ConnectionService}.
-     *
-     * @param vrat the RIL Voice Radio Technology used for current connection,
-     *             see {@code RIL_RADIO_TECHNOLOGY_*} in {@link android.telephony.ServiceState}.
-     *
-     * @hide
-     */
-    @SystemApi
-    public final void setCallRadioTech(@ServiceState.RilRadioTechnology int vrat) {
-        Bundle extras = getExtras();
-        if (extras == null) {
-            extras = new Bundle();
-        }
-        extras.putInt(TelecomManager.EXTRA_CALL_NETWORK_TYPE,
-                ServiceState.rilRadioTechnologyToNetworkType(vrat));
-        putExtras(extras);
-        // Propagates the call radio technology to its parent {@link android.telecom.Conference}
-        // This action only covers non-IMS CS conference calls.
-        // For IMS PS call conference call, it can be updated via its host connection
-        // {@link #Listener.onExtrasChanged} event.
-        if (getConference() != null) {
-            getConference().setCallRadioTech(vrat);
-        }
-    }
-
-    /**
      * Sets the label and icon status to display in the in-call UI.
      *
      * @param statusHints The status label and icon to set.
@@ -2501,6 +2470,7 @@
      * @hide
      */
     @SystemApi
+    @TestApi
     public final void resetConnectionTime() {
         for (Listener l : mListeners) {
             l.onConnectionTimeReset(this);
@@ -3245,6 +3215,7 @@
      * @hide
      */
     @SystemApi
+    @TestApi
     public void setPhoneAccountHandle(@NonNull PhoneAccountHandle phoneAccountHandle) {
         if (mPhoneAccountHandle != phoneAccountHandle) {
             mPhoneAccountHandle = phoneAccountHandle;
@@ -3263,6 +3234,7 @@
      * @hide
      */
     @SystemApi
+    @TestApi
     public @Nullable PhoneAccountHandle getPhoneAccountHandle() {
         return mPhoneAccountHandle;
     }
@@ -3328,6 +3300,7 @@
      * @hide
      */
     @SystemApi
+    @TestApi
     public void setCallDirection(@Call.Details.CallDirection int callDirection) {
         mCallDirection = callDirection;
     }
diff --git a/telecomm/java/android/telecom/ConnectionRequest.java b/telecomm/java/android/telecom/ConnectionRequest.java
index b428530..221f8f1 100644
--- a/telecomm/java/android/telecom/ConnectionRequest.java
+++ b/telecomm/java/android/telecom/ConnectionRequest.java
@@ -16,6 +16,10 @@
 
 package android.telecom;
 
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.Parcel;
@@ -32,6 +36,7 @@
      * Builder class for {@link ConnectionRequest}
      * @hide
      */
+    @TestApi // For convenience in CTS tests
     public static final class Builder {
         private PhoneAccountHandle mAccountHandle;
         private Uri mAddress;
@@ -48,7 +53,7 @@
          * Sets the phone account handle for the resulting {@link ConnectionRequest}
          * @param accountHandle The accountHandle which should be used to place the call.
          */
-        public Builder setAccountHandle(PhoneAccountHandle accountHandle) {
+        public @NonNull Builder setAccountHandle(@NonNull PhoneAccountHandle accountHandle) {
             this.mAccountHandle = accountHandle;
             return this;
         }
@@ -58,7 +63,7 @@
          * @param address The address(e.g., phone number) to which the {@link Connection} is to
          *                connect.
          */
-        public Builder setAddress(Uri address) {
+        public @NonNull Builder setAddress(@NonNull Uri address) {
             this.mAddress = address;
             return this;
         }
@@ -67,7 +72,7 @@
          * Sets the extras bundle for the resulting {@link ConnectionRequest}
          * @param extras Application-specific extra data.
          */
-        public Builder setExtras(Bundle extras) {
+        public @NonNull Builder setExtras(@NonNull Bundle extras) {
             this.mExtras = extras;
             return this;
         }
@@ -76,7 +81,7 @@
          * Sets the video state for the resulting {@link ConnectionRequest}
          * @param videoState Determines the video state for the connection.
          */
-        public Builder setVideoState(int videoState) {
+        public @NonNull Builder setVideoState(int videoState) {
             this.mVideoState = videoState;
             return this;
         }
@@ -85,7 +90,7 @@
          * Sets the Telecom call ID for the resulting {@link ConnectionRequest}
          * @param telecomCallId The telecom call ID.
          */
-        public Builder setTelecomCallId(String telecomCallId) {
+        public @NonNull Builder setTelecomCallId(@NonNull String telecomCallId) {
             this.mTelecomCallId = telecomCallId;
             return this;
         }
@@ -97,7 +102,7 @@
          *                                 its own incoming call UI for an incoming call.  When
          *                                 {@code false}, Telecom shows the incoming call UI.
          */
-        public Builder setShouldShowIncomingCallUi(boolean shouldShowIncomingCallUi) {
+        public @NonNull Builder setShouldShowIncomingCallUi(boolean shouldShowIncomingCallUi) {
             this.mShouldShowIncomingCallUi = shouldShowIncomingCallUi;
             return this;
         }
@@ -107,7 +112,8 @@
          * resulting {@link ConnectionRequest}
          * @param rttPipeFromInCall The data pipe to read from.
          */
-        public Builder setRttPipeFromInCall(ParcelFileDescriptor rttPipeFromInCall) {
+        public @NonNull Builder setRttPipeFromInCall(
+                @NonNull ParcelFileDescriptor rttPipeFromInCall) {
             this.mRttPipeFromInCall = rttPipeFromInCall;
             return this;
         }
@@ -117,12 +123,16 @@
          * resulting {@link ConnectionRequest}
          * @param rttPipeToInCall The data pipe to write to.
          */
-        public Builder setRttPipeToInCall(ParcelFileDescriptor rttPipeToInCall) {
+        public @NonNull Builder setRttPipeToInCall(@NonNull ParcelFileDescriptor rttPipeToInCall) {
             this.mRttPipeToInCall = rttPipeToInCall;
             return this;
         }
 
-        public ConnectionRequest build() {
+        /**
+         * Build the {@link ConnectionRequest}
+         * @return Result of the builder
+         */
+        public @NonNull ConnectionRequest build() {
             return new ConnectionRequest(
                     mAccountHandle,
                     mAddress,
@@ -261,7 +271,9 @@
      * @return The Telecom ID.
      * @hide
      */
-    public String getTelecomCallId() {
+    @SystemApi
+    @TestApi
+    public @Nullable String getTelecomCallId() {
         return mTelecomCallId;
     }
 
diff --git a/telecomm/java/android/telecom/ConnectionService.java b/telecomm/java/android/telecom/ConnectionService.java
index 0abd9fc..812b805 100644
--- a/telecomm/java/android/telecom/ConnectionService.java
+++ b/telecomm/java/android/telecom/ConnectionService.java
@@ -16,7 +16,11 @@
 
 package android.telecom;
 
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.RequiresPermission;
 import android.annotation.SdkConstant;
+import android.annotation.SystemApi;
 import android.app.Service;
 import android.content.ComponentName;
 import android.content.Intent;
@@ -2106,15 +2110,21 @@
 
     /**
      * Adds a connection created by the {@link ConnectionService} and informs telecom of the new
-     * connection.
+     * connection, as well as adding that connection to the specified conference.
+     * <p>
+     * Note: This API is intended ONLY for use by the Telephony stack to provide an easy way to add
+     * IMS conference participants to be added to a conference in a single step; this helps ensure
+     * UI updates happen atomically, rather than adding the connection and then adding it to
+     * the conference in another step.
      *
      * @param phoneAccountHandle The phone account handle for the connection.
      * @param connection The connection to add.
      * @param conference The parent conference of the new connection.
      * @hide
      */
-    public final void addExistingConnection(PhoneAccountHandle phoneAccountHandle,
-            Connection connection, Conference conference) {
+    @SystemApi
+    public final void addExistingConnection(@NonNull PhoneAccountHandle phoneAccountHandle,
+            @NonNull Connection connection, @NonNull Conference conference) {
 
         String id = addExistingConnectionInternal(phoneAccountHandle, connection);
         if (id != null) {
diff --git a/telecomm/java/android/telecom/DisconnectCause.java b/telecomm/java/android/telecom/DisconnectCause.java
index ae92464..bebbbd0 100644
--- a/telecomm/java/android/telecom/DisconnectCause.java
+++ b/telecomm/java/android/telecom/DisconnectCause.java
@@ -97,6 +97,14 @@
      */
     public static final String REASON_EMULATING_SINGLE_CALL = "EMULATING_SINGLE_CALL";
 
+    /**
+     * This reason is set when a call is ended in order to place an emergency call when a
+     * {@link PhoneAccount} doesn't support holding an ongoing call to place an emergency call. This
+     * reason string should only be associated with the {@link #LOCAL} disconnect code returned from
+     * {@link #getCode()}.
+     */
+    public static final String REASON_EMERGENCY_CALL_PLACED = "REASON_EMERGENCY_CALL_PLACED";
+
     private int mDisconnectCode;
     private CharSequence mDisconnectLabel;
     private CharSequence mDisconnectDescription;
diff --git a/telecomm/java/android/telecom/Logging/Session.java b/telecomm/java/android/telecom/Logging/Session.java
index 95a47e1..d82e93f 100644
--- a/telecomm/java/android/telecom/Logging/Session.java
+++ b/telecomm/java/android/telecom/Logging/Session.java
@@ -237,7 +237,10 @@
     // keep track of calls and bail if we hit the recursion limit
     private String getFullSessionId(int parentCount) {
         if (parentCount >= SESSION_RECURSION_LIMIT) {
-            Log.w(LOG_TAG, "getFullSessionId: Hit recursion limit!");
+            // Don't use Telecom's Log.w here or it will cause infinite recursion because it will
+            // try to add session information to this logging statement, which will cause it to hit
+            // this condition again and so on...
+            android.util.Slog.w(LOG_TAG, "getFullSessionId: Hit recursion limit!");
             return TRUNCATE_STRING + mSessionId;
         }
         // Cache mParentSession locally to prevent a concurrency problem where
@@ -265,7 +268,11 @@
         Session topNode = this;
         while (topNode.getParentSession() != null) {
             if (currParentCount >= SESSION_RECURSION_LIMIT) {
-                Log.w(LOG_TAG, "getRootSession: Hit recursion limit from " + callingMethod);
+                // Don't use Telecom's Log.w here or it will cause infinite recursion because it
+                // will try to add session information to this logging statement, which will cause
+                // it to hit this condition again and so on...
+                android.util.Slog.w(LOG_TAG, "getRootSession: Hit recursion limit from "
+                        + callingMethod);
                 break;
             }
             topNode = topNode.getParentSession();
@@ -289,7 +296,10 @@
     private void printSessionTree(int tabI, StringBuilder sb, int currChildCount) {
         // Prevent infinite recursion.
         if (currChildCount >= SESSION_RECURSION_LIMIT) {
-            Log.w(LOG_TAG, "printSessionTree: Hit recursion limit!");
+            // Don't use Telecom's Log.w here or it will cause infinite recursion because it will
+            // try to add session information to this logging statement, which will cause it to hit
+            // this condition again and so on...
+            android.util.Slog.w(LOG_TAG, "printSessionTree: Hit recursion limit!");
             sb.append(TRUNCATE_STRING);
             return;
         }
@@ -315,7 +325,10 @@
     private synchronized void getFullMethodPath(StringBuilder sb, boolean truncatePath,
             int parentCount) {
         if (parentCount >= SESSION_RECURSION_LIMIT) {
-            Log.w(LOG_TAG, "getFullMethodPath: Hit recursion limit!");
+            // Don't use Telecom's Log.w here or it will cause infinite recursion because it will
+            // try to add session information to this logging statement, which will cause it to hit
+            // this condition again and so on...
+            android.util.Slog.w(LOG_TAG, "getFullMethodPath: Hit recursion limit!");
             sb.append(TRUNCATE_STRING);
             return;
         }
diff --git a/telecomm/java/android/telecom/Logging/SessionManager.java b/telecomm/java/android/telecom/Logging/SessionManager.java
index 49c3a72..ac30058 100644
--- a/telecomm/java/android/telecom/Logging/SessionManager.java
+++ b/telecomm/java/android/telecom/Logging/SessionManager.java
@@ -202,7 +202,18 @@
         return createSubsession(false);
     }
 
-    private synchronized Session createSubsession(boolean isStartedFromActiveSession) {
+    /**
+     * Creates a new subsession based on an existing session. Will not be started until
+     * {@link #continueSession(Session, String)} or {@link #cancelSubsession(Session)} is called.
+     * <p>
+     * Only public for testing!
+     * @param isStartedFromActiveSession true if this subsession is being created for a task on the
+     *     same thread, false if it is being created for a related task on another thread.
+     * @return a new {@link Session}, call {@link #continueSession(Session, String)} to continue the
+     * session and {@link #endSession()} when done with this subsession.
+     */
+    @VisibleForTesting
+    public synchronized Session createSubsession(boolean isStartedFromActiveSession) {
         int threadId = getCallingThreadId();
         Session threadSession = mSessionMapper.get(threadId);
         if (threadSession == null) {
diff --git a/telecomm/java/android/telecom/ParcelableCall.java b/telecomm/java/android/telecom/ParcelableCall.java
index aa50991..fdc3243 100644
--- a/telecomm/java/android/telecom/ParcelableCall.java
+++ b/telecomm/java/android/telecom/ParcelableCall.java
@@ -21,6 +21,7 @@
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
+import android.os.IBinder;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.os.RemoteException;
@@ -225,6 +226,10 @@
         return mVideoCall;
     }
 
+    public IVideoProvider getVideoProvider() {
+        return mVideoCallProvider;
+    }
+
     public boolean getIsRttCallChanged() {
         return mIsRttCallChanged;
     }
diff --git a/telecomm/java/android/telecom/Phone.java b/telecomm/java/android/telecom/Phone.java
index 2ecdb30..61a639a1 100644
--- a/telecomm/java/android/telecom/Phone.java
+++ b/telecomm/java/android/telecom/Phone.java
@@ -152,13 +152,20 @@
             return;
         }
 
-        Call call = new Call(this, parcelableCall.getId(), mInCallAdapter,
-                parcelableCall.getState(), mCallingPackage, mTargetSdkVersion);
-        mCallByTelecomCallId.put(parcelableCall.getId(), call);
-        mCalls.add(call);
-        checkCallTree(parcelableCall);
-        call.internalUpdate(parcelableCall, mCallByTelecomCallId);
-        fireCallAdded(call);
+        Call call = mCallByTelecomCallId.get(parcelableCall.getId());
+        if (call == null) {
+            call = new Call(this, parcelableCall.getId(), mInCallAdapter,
+                    parcelableCall.getState(), mCallingPackage, mTargetSdkVersion);
+            mCallByTelecomCallId.put(parcelableCall.getId(), call);
+            mCalls.add(call);
+            checkCallTree(parcelableCall);
+            call.internalUpdate(parcelableCall, mCallByTelecomCallId);
+            fireCallAdded(call);
+        } else {
+            Log.w(this, "Call %s added, but it was already present", call.internalGetCallId());
+            checkCallTree(parcelableCall);
+            call.internalUpdate(parcelableCall, mCallByTelecomCallId);
+        }
     }
 
     final void internalRemoveCall(Call call) {
@@ -190,7 +197,11 @@
         } else {
             // This call may have come out of audio processing. Try adding it if our target sdk
             // version is low enough.
-            if (mTargetSdkVersion < SDK_VERSION_R) {
+            // The only two allowable states coming out of audio processing are ACTIVE and
+            // SIMULATED_RINGING.
+            if (mTargetSdkVersion < SDK_VERSION_R && (parcelableCall.getState() == Call.STATE_ACTIVE
+                    || parcelableCall.getState() == Call.STATE_SIMULATED_RINGING)) {
+                Log.i(this, "adding call during update for sdk compatibility");
                 internalAddCall(parcelableCall);
             }
         }
diff --git a/telecomm/java/android/telecom/PhoneAccount.java b/telecomm/java/android/telecom/PhoneAccount.java
index 1b783b7..bb858cb 100644
--- a/telecomm/java/android/telecom/PhoneAccount.java
+++ b/telecomm/java/android/telecom/PhoneAccount.java
@@ -16,7 +16,9 @@
 
 package android.telecom;
 
+import android.annotation.NonNull;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.content.Intent;
 import android.graphics.drawable.Icon;
 import android.net.Uri;
@@ -592,12 +594,17 @@
          * only be one {@link PhoneAccount} with a non-empty group number registered to Telecom at a
          * time. By default, there is no group Id for a {@link PhoneAccount} (an empty String). Only
          * grouped {@link PhoneAccount}s with the same {@link ConnectionService} can be replaced.
+         * <p>
+         * Note: This is an API specific to the Telephony stack.
+         *
          * @param groupId The group Id of the {@link PhoneAccount} that will replace any other
          * registered {@link PhoneAccount} in Telecom with the same Group Id.
          * @return The builder
          * @hide
          */
-        public Builder setGroupId(String groupId) {
+        @SystemApi
+        @TestApi
+        public @NonNull Builder setGroupId(@NonNull String groupId) {
             if (groupId != null) {
                 mGroupId = groupId;
             } else {
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java
index 12066c4..20862c5 100644
--- a/telecomm/java/android/telecom/TelecomManager.java
+++ b/telecomm/java/android/telecom/TelecomManager.java
@@ -14,8 +14,11 @@
 
 package android.telecom;
 
+import static android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE;
+
 import android.Manifest;
 import android.annotation.IntDef;
+import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.RequiresPermission;
 import android.annotation.SuppressAutoDoc;
@@ -33,6 +36,7 @@
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.UserHandle;
+import android.telephony.Annotation.CallState;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 import android.text.TextUtils;
@@ -695,7 +699,17 @@
     /**
      * The boolean indicated by this extra controls whether or not a call is eligible to undergo
      * assisted dialing. This extra is stored under {@link #EXTRA_OUTGOING_CALL_EXTRAS}.
-     * @hide
+     * <p>
+     * The call initiator can use this extra to indicate that a call used assisted dialing to help
+     * place the call.  This is most commonly used by a Dialer app which provides the ability to
+     * automatically add dialing prefixes when placing international calls.
+     * <p>
+     * Setting this extra on the outgoing call extras will cause the
+     * {@link Connection#PROPERTY_ASSISTED_DIALING_USED} property and
+     * {@link Call.Details#PROPERTY_ASSISTED_DIALING_USED} property to be set on the
+     * {@link Connection}/{@link Call} in question.  When the call is logged to the call log, the
+     * {@link android.provider.CallLog.Calls#FEATURES_ASSISTED_DIALING_USED} call feature is set to
+     * indicate that assisted dialing was used for the call.
      */
     public static final String EXTRA_USE_ASSISTED_DIALING =
             "android.telecom.extra.USE_ASSISTED_DIALING";
@@ -737,6 +751,14 @@
      */
     public static final int PRESENTATION_PAYPHONE = 4;
 
+    /** @hide */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(
+            prefix = { "PRESENTATION_" },
+            value = {PRESENTATION_ALLOWED, PRESENTATION_RESTRICTED, PRESENTATION_UNKNOWN,
+            PRESENTATION_PAYPHONE})
+    public @interface Presentation {}
+
     private static final String TAG = "TelecomManager";
 
     private final Context mContext;
@@ -882,9 +904,8 @@
      *                       queried for.
      * @return The phone account handle of the current sim call manager.
      * @see SubscriptionManager#getActiveSubscriptionInfoList()
-     * @hide
      */
-    public PhoneAccountHandle getSimCallManagerForSubscription(int subscriptionId) {
+    public @Nullable PhoneAccountHandle getSimCallManagerForSubscription(int subscriptionId) {
         try {
             if (isServiceConnected()) {
                 return getTelecomService().getSimCallManager(subscriptionId);
@@ -946,7 +967,7 @@
      */
     @SystemApi
     @RequiresPermission(anyOf = {
-            android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
+            READ_PRIVILEGED_PHONE_STATE,
             android.Manifest.permission.READ_PHONE_STATE
     })
     public List<PhoneAccountHandle> getPhoneAccountsSupportingScheme(String uriScheme) {
@@ -1008,12 +1029,16 @@
      * by the user.
      *
      * @param includeDisabledAccounts When {@code true}, disabled phone accounts will be included,
-     *                                when {@code false}, only
+     *                                when {@code false}, only enabled phone accounts will be
+     *                                included.
      * @return A list of {@code PhoneAccountHandle} objects.
      * @hide
      */
-    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 119305590)
-    public List<PhoneAccountHandle> getCallCapablePhoneAccounts(boolean includeDisabledAccounts) {
+    @SystemApi
+    @TestApi
+    @RequiresPermission(READ_PRIVILEGED_PHONE_STATE)
+    public @NonNull List<PhoneAccountHandle> getCallCapablePhoneAccounts(
+            boolean includeDisabledAccounts) {
         try {
             if (isServiceConnected()) {
                 return getTelecomService().getCallCapablePhoneAccounts(
@@ -1233,6 +1258,28 @@
     }
 
     /**
+     * Used to determine the currently selected default dialer package for a specific user.
+     *
+     * @param userId the user id to query the default dialer package for.
+     * @return package name for the default dialer package or null if no package has been
+     *         selected as the default dialer.
+     * @hide
+     */
+    @SystemApi
+    @TestApi
+    @RequiresPermission(READ_PRIVILEGED_PHONE_STATE)
+    public @Nullable String getDefaultDialerPackage(int userId) {
+        try {
+            if (isServiceConnected()) {
+                return getTelecomService().getDefaultDialerPackageForUser(userId);
+            }
+        } catch (RemoteException e) {
+            Log.e(TAG, "RemoteException attempting to get the default dialer package name.", e);
+        }
+        return null;
+    }
+
+    /**
      * Used to set the default dialer package.
      *
      * @param packageName to set the default dialer to, or {@code null} if the system provided
@@ -1412,7 +1459,7 @@
      * @hide
      */
     @SystemApi
-    public @TelephonyManager.CallState int getCallState() {
+    public @CallState int getCallState() {
         try {
             if (isServiceConnected()) {
                 return getTelecomService().getCallState();
@@ -1431,7 +1478,7 @@
      */
     @SystemApi
     @RequiresPermission(anyOf = {
-            android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
+            READ_PRIVILEGED_PHONE_STATE,
             android.Manifest.permission.READ_PHONE_STATE
     })
     public boolean isRinging() {
@@ -1561,7 +1608,7 @@
      * Returns whether TTY is supported on this device.
      */
     @RequiresPermission(anyOf = {
-            android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
+            READ_PRIVILEGED_PHONE_STATE,
             android.Manifest.permission.READ_PHONE_STATE
     })
     public boolean isTtySupported() {
@@ -1587,7 +1634,7 @@
      */
     @SystemApi
     @TestApi
-    @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
+    @RequiresPermission(READ_PRIVILEGED_PHONE_STATE)
     public @TtyMode int getCurrentTtyMode() {
         try {
             if (isServiceConnected()) {
diff --git a/telecomm/java/android/telecom/VideoCallImpl.java b/telecomm/java/android/telecom/VideoCallImpl.java
index cb74012..4a1aa0a 100644
--- a/telecomm/java/android/telecom/VideoCallImpl.java
+++ b/telecomm/java/android/telecom/VideoCallImpl.java
@@ -32,6 +32,8 @@
 import com.android.internal.telecom.IVideoCallback;
 import com.android.internal.telecom.IVideoProvider;
 
+import java.util.NoSuchElementException;
+
 /**
  * Implementation of a Video Call, which allows InCallUi to communicate commands to the underlying
  * {@link Connection.VideoProvider}, and direct callbacks from the
@@ -53,7 +55,11 @@
     private IBinder.DeathRecipient mDeathRecipient = new IBinder.DeathRecipient() {
         @Override
         public void binderDied() {
-            mVideoProvider.asBinder().unlinkToDeath(this, 0);
+            try {
+                mVideoProvider.asBinder().unlinkToDeath(this, 0);
+            } catch (NoSuchElementException nse) {
+                // Already unlinked in destroy below.
+            }
         }
     };
 
@@ -222,6 +228,11 @@
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 127403196)
     public void destroy() {
         unregisterCallback(mCallback);
+        try {
+            mVideoProvider.asBinder().unlinkToDeath(mDeathRecipient, 0);
+        } catch (NoSuchElementException nse) {
+            // Already unlinked in binderDied above.
+        }
     }
 
     /** {@inheritDoc} */
@@ -353,4 +364,12 @@
     public void setVideoState(int videoState) {
         mVideoState = videoState;
     }
+
+    /**
+     * Get the video provider binder.
+     * @return the video provider binder.
+     */
+    public IVideoProvider getVideoProvider() {
+        return mVideoProvider;
+    }
 }
diff --git a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
index 6a1b78f..33fdb9c 100644
--- a/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
+++ b/telecomm/java/com/android/internal/telecom/ITelecomService.aidl
@@ -146,6 +146,11 @@
     String getDefaultDialerPackage();
 
     /**
+     * @see TelecomServiceImpl#getDefaultDialerPackage
+     */
+    String getDefaultDialerPackageForUser(int userId);
+
+    /**
      * @see TelecomServiceImpl#getSystemDialerPackage
      */
     String getSystemDialerPackage();
diff --git a/telephony/java/com/android/internal/telephony/GsmAlphabet.java b/telephony/common/com/android/internal/telephony/GsmAlphabet.java
similarity index 99%
rename from telephony/java/com/android/internal/telephony/GsmAlphabet.java
rename to telephony/common/com/android/internal/telephony/GsmAlphabet.java
index a75096f..79d3660 100644
--- a/telephony/java/com/android/internal/telephony/GsmAlphabet.java
+++ b/telephony/common/com/android/internal/telephony/GsmAlphabet.java
@@ -16,19 +16,17 @@
 
 package com.android.internal.telephony;
 
+import android.annotation.UnsupportedAppUsage;
 import android.content.res.Resources;
+import android.os.Build;
+import android.telephony.Rlog;
 import android.text.TextUtils;
 import android.util.SparseIntArray;
 
-import android.annotation.UnsupportedAppUsage;
-import android.os.Build;
-import android.telephony.Rlog;
+import com.android.internal.R;
 
 import java.nio.ByteBuffer;
 import java.nio.charset.Charset;
-import com.android.internal.telephony.SmsConstants;
-import com.android.internal.R;
-
 import java.util.ArrayList;
 import java.util.List;
 
@@ -42,8 +40,6 @@
 public class GsmAlphabet {
     private static final String TAG = "GSM";
 
-    private GsmAlphabet() { }
-
     /**
      * This escapes extended characters, and when present indicates that the
      * following character should be looked up in the "extended" table.
@@ -83,6 +79,11 @@
      * data.
      */
     public static class TextEncodingDetails {
+
+        @UnsupportedAppUsage
+        public TextEncodingDetails() {
+        }
+
         /**
          *The number of SMS's required to encode the text.
          */
diff --git a/telephony/common/com/android/internal/telephony/SmsApplication.java b/telephony/common/com/android/internal/telephony/SmsApplication.java
index 5dcc751..9da45da 100644
--- a/telephony/common/com/android/internal/telephony/SmsApplication.java
+++ b/telephony/common/com/android/internal/telephony/SmsApplication.java
@@ -47,6 +47,8 @@
 import com.android.internal.logging.MetricsLogger;
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
@@ -56,6 +58,8 @@
 import java.util.concurrent.TimeoutException;
 import java.util.function.Consumer;
 
+
+
 /**
  * Class for managing the primary application that we will deliver SMS/MMS messages to
  *
@@ -90,6 +94,7 @@
         /**
          * Name of this SMS app for display.
          */
+        @UnsupportedAppUsage
         private String mApplicationName;
 
         /**
@@ -190,7 +195,7 @@
      * @return
      */
     private static int getIncomingUserId(Context context) {
-        int contextUserId = context.getUserId();
+        int contextUserId = UserHandle.myUserId();
         final int callingUid = Binder.getCallingUid();
         if (DEBUG_MULTIUSER) {
             Log.i(LOG_TAG, "getIncomingUserHandle caller=" + callingUid + ", myuid="
@@ -223,6 +228,7 @@
      * Implement ACTION_SENDTO intent.
      * Support smsto Uri scheme.
      */
+    @UnsupportedAppUsage
     public static Collection<SmsApplicationData> getApplicationCollection(Context context) {
         return getApplicationCollectionAsUser(context, getIncomingUserId(context));
     }
@@ -578,6 +584,7 @@
      * Sets the specified package as the default SMS/MMS application. The caller of this method
      * needs to have permission to set AppOps and write to secure settings.
      */
+    @UnsupportedAppUsage
     public static void setDefaultApplication(String packageName, Context context) {
         setDefaultApplicationAsUser(packageName, context, getIncomingUserId(context));
     }
@@ -825,6 +832,7 @@
         sSmsPackageMonitor.register(context, context.getMainLooper(), UserHandle.ALL, false);
     }
 
+    @UnsupportedAppUsage
     private static void configurePreferredActivity(PackageManager packageManager,
             ComponentName componentName, int userId) {
         // Add the four activity preferences we want to direct to this app.
@@ -867,6 +875,7 @@
      * Returns SmsApplicationData for this package if this package is capable of being set as the
      * default SMS application.
      */
+    @UnsupportedAppUsage
     public static SmsApplicationData getSmsApplicationData(String packageName, Context context) {
         Collection<SmsApplicationData> applications = getApplicationCollection(context);
         return getApplicationForPackage(applications, packageName);
@@ -878,6 +887,7 @@
      * @param updateIfNeeded update the default app if there is no valid default app configured.
      * @return component name of the app and class to deliver SMS messages to
      */
+    @UnsupportedAppUsage
     public static ComponentName getDefaultSmsApplication(Context context, boolean updateIfNeeded) {
         return getDefaultSmsApplicationAsUser(context, updateIfNeeded, getIncomingUserId(context));
     }
@@ -912,6 +922,7 @@
      * @param updateIfNeeded update the default app if there is no valid default app configured.
      * @return component name of the app and class to deliver MMS messages to
      */
+    @UnsupportedAppUsage
     public static ComponentName getDefaultMmsApplication(Context context, boolean updateIfNeeded) {
         int userId = getIncomingUserId(context);
         final long token = Binder.clearCallingIdentity();
@@ -935,6 +946,7 @@
      * @param updateIfNeeded update the default app if there is no valid default app configured.
      * @return component name of the app and class to direct Respond Via Message intent to
      */
+    @UnsupportedAppUsage
     public static ComponentName getDefaultRespondViaMessageApplication(Context context,
             boolean updateIfNeeded) {
         int userId = getIncomingUserId(context);
@@ -1035,6 +1047,7 @@
      * <p>
      * Caller must pass in the correct user context if calling from a singleton service.
      */
+    @UnsupportedAppUsage
     public static boolean shouldWriteMessageForPackage(String packageName, Context context) {
         return !isDefaultSmsApplication(context, packageName);
     }
@@ -1046,6 +1059,7 @@
      * @param packageName the name of the package to be checked
      * @return true if the package is default sms app or bluetooth
      */
+    @UnsupportedAppUsage
     public static boolean isDefaultSmsApplication(Context context, String packageName) {
         if (packageName == null) {
             return false;
diff --git a/telephony/java/com/android/internal/telephony/SmsConstants.java b/telephony/common/com/android/internal/telephony/SmsConstants.java
similarity index 100%
rename from telephony/java/com/android/internal/telephony/SmsConstants.java
rename to telephony/common/com/android/internal/telephony/SmsConstants.java
diff --git a/telephony/common/com/android/internal/telephony/SmsNumberUtils.java b/telephony/common/com/android/internal/telephony/SmsNumberUtils.java
index 0d33af6..367aad1 100644
--- a/telephony/common/com/android/internal/telephony/SmsNumberUtils.java
+++ b/telephony/common/com/android/internal/telephony/SmsNumberUtils.java
@@ -359,15 +359,41 @@
         return NP_NONE;
     }
 
+    /**
+     * This function checks if the passed in string conforms to the NANP format
+     * i.e. NXX-NXX-XXXX, N is any digit 2-9 and X is any digit 0-9
+     */
     private static boolean isNANP(String number) {
+        boolean retVal = false;
+
         if (number.length() == NANP_MEDIUM_LENGTH
             || (number.length() == NANP_LONG_LENGTH  && number.startsWith(NANP_NDD))) {
+
             if (number.length() == NANP_LONG_LENGTH) {
                 number = number.substring(1);
             }
-            return (PhoneNumberUtils.isNanp(number));
+
+            if (isTwoToNine(number.charAt(0)) &&
+                isTwoToNine(number.charAt(3))) {
+                retVal = true;
+                for (int i=1; i<NANP_MEDIUM_LENGTH; i++ ) {
+                    char c=number.charAt(i);
+                    if (!PhoneNumberUtils.isISODigit(c)) {
+                        retVal = false;
+                        break;
+                    }
+                 }
+             }
         }
-        return false;
+        return retVal;
+    }
+
+    private static boolean isTwoToNine (char c) {
+        if (c >= '2' && c <= '9') {
+            return true;
+        } else {
+            return false;
+        }
     }
 
     /**
@@ -573,9 +599,9 @@
         int networkType = -1;
         int phoneType = telephonyManager.getPhoneType();
 
-        if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
+        if (phoneType == TelephonyManager.PHONE_TYPE_GSM) {
             networkType = GSM_UMTS_NETWORK;
-        } else if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+        } else if (phoneType == TelephonyManager.PHONE_TYPE_CDMA) {
             if (isInternationalRoaming(telephonyManager)) {
                 networkType = CDMA_ROAMING_NETWORK;
             } else {
diff --git a/telephony/common/com/google/android/mms/pdu/PduPersister.java b/telephony/common/com/google/android/mms/pdu/PduPersister.java
index 93f3065..b237705 100755
--- a/telephony/common/com/google/android/mms/pdu/PduPersister.java
+++ b/telephony/common/com/google/android/mms/pdu/PduPersister.java
@@ -291,15 +291,11 @@
     @UnsupportedAppUsage
     private final ContentResolver mContentResolver;
     private final DrmManagerClient mDrmManagerClient;
-    @UnsupportedAppUsage
-    private final TelephonyManager mTelephonyManager;
 
     private PduPersister(Context context) {
         mContext = context;
         mContentResolver = context.getContentResolver();
         mDrmManagerClient = new DrmManagerClient(context);
-        mTelephonyManager = (TelephonyManager)context
-                .getSystemService(Context.TELEPHONY_SERVICE);
      }
 
     /** Get(or create if not exist) an instance of PduPersister */
@@ -1453,7 +1449,8 @@
         if (excludeMyNumber) {
             // Build a list of my phone numbers from the various sims.
             for (int subid : subscriptionManager.getActiveSubscriptionIdList()) {
-                final String myNumber = mTelephonyManager.getLine1Number(subid);
+                final String myNumber = mContext.getSystemService(TelephonyManager.class).
+                        createForSubscriptionId(subid).getLine1Number();
                 if (myNumber != null) {
                     myPhoneNumbers.add(myNumber);
                 }
@@ -1548,6 +1545,7 @@
     public void release() {
         Uri uri = Uri.parse(TEMPORARY_DRM_OBJECT_URI);
         SqliteWrapper.delete(mContext, mContentResolver, uri, null, null);
+        mDrmManagerClient.release();
     }
 
     /**
diff --git a/core/java/android/service/carrier/CarrierIdentifier.aidl b/telephony/java/android/service/carrier/CarrierIdentifier.aidl
similarity index 100%
rename from core/java/android/service/carrier/CarrierIdentifier.aidl
rename to telephony/java/android/service/carrier/CarrierIdentifier.aidl
diff --git a/core/java/android/service/carrier/CarrierIdentifier.java b/telephony/java/android/service/carrier/CarrierIdentifier.java
similarity index 100%
rename from core/java/android/service/carrier/CarrierIdentifier.java
rename to telephony/java/android/service/carrier/CarrierIdentifier.java
diff --git a/core/java/android/service/carrier/CarrierService.java b/telephony/java/android/service/carrier/CarrierService.java
similarity index 98%
rename from core/java/android/service/carrier/CarrierService.java
rename to telephony/java/android/service/carrier/CarrierService.java
index 9184d6d..eefc1b7 100644
--- a/core/java/android/service/carrier/CarrierService.java
+++ b/telephony/java/android/service/carrier/CarrierService.java
@@ -22,7 +22,7 @@
 import android.os.IBinder;
 import android.os.PersistableBundle;
 import android.os.ResultReceiver;
-import android.os.telephony.TelephonyRegistryManager;
+import android.telephony.TelephonyRegistryManager;
 import android.util.Log;
 
 /**
diff --git a/core/java/android/service/carrier/ICarrierService.aidl b/telephony/java/android/service/carrier/ICarrierService.aidl
similarity index 100%
rename from core/java/android/service/carrier/ICarrierService.aidl
rename to telephony/java/android/service/carrier/ICarrierService.aidl
diff --git a/core/java/android/service/euicc/DownloadSubscriptionResult.aidl b/telephony/java/android/service/euicc/DownloadSubscriptionResult.aidl
similarity index 100%
rename from core/java/android/service/euicc/DownloadSubscriptionResult.aidl
rename to telephony/java/android/service/euicc/DownloadSubscriptionResult.aidl
diff --git a/core/java/android/service/euicc/DownloadSubscriptionResult.java b/telephony/java/android/service/euicc/DownloadSubscriptionResult.java
similarity index 100%
rename from core/java/android/service/euicc/DownloadSubscriptionResult.java
rename to telephony/java/android/service/euicc/DownloadSubscriptionResult.java
diff --git a/core/java/android/service/euicc/EuiccProfileInfo.aidl b/telephony/java/android/service/euicc/EuiccProfileInfo.aidl
similarity index 100%
rename from core/java/android/service/euicc/EuiccProfileInfo.aidl
rename to telephony/java/android/service/euicc/EuiccProfileInfo.aidl
diff --git a/core/java/android/service/euicc/EuiccProfileInfo.java b/telephony/java/android/service/euicc/EuiccProfileInfo.java
similarity index 100%
rename from core/java/android/service/euicc/EuiccProfileInfo.java
rename to telephony/java/android/service/euicc/EuiccProfileInfo.java
diff --git a/core/java/android/service/euicc/EuiccService.java b/telephony/java/android/service/euicc/EuiccService.java
similarity index 94%
rename from core/java/android/service/euicc/EuiccService.java
rename to telephony/java/android/service/euicc/EuiccService.java
index 12c2580..bc6a9e8 100644
--- a/core/java/android/service/euicc/EuiccService.java
+++ b/telephony/java/android/service/euicc/EuiccService.java
@@ -21,6 +21,7 @@
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.SdkConstant;
 import android.annotation.SystemApi;
 import android.app.Service;
 import android.content.Intent;
@@ -104,6 +105,26 @@
             "android.service.euicc.action.BIND_CARRIER_PROVISIONING_SERVICE";
 
     /**
+     * Intent action sent by the LPA to launch a carrier app Activity for eSIM activation, e.g. a
+     * carrier login screen. Carrier apps wishing to support this activation method must implement
+     * an Activity that responds to this intent action. Upon completion, the Activity must return
+     * one of the following results to the LPA:
+     *
+     * <p>{@code Activity.RESULT_CANCELED}: The LPA should treat this as an back button and abort
+     * the activation flow.
+     * <p>{@code Activity.RESULT_OK}: The LPA should try to get an activation code from the carrier
+     * app by binding to the carrier app service implementing
+     * {@link #ACTION_BIND_CARRIER_PROVISIONING_SERVICE}.
+     * <p>{@code Activity.RESULT_OK} with
+     * {@link android.telephony.euicc.EuiccManager#EXTRA_USE_QR_SCANNER} set to true: The LPA should
+     * start a QR scanner for the user to scan an eSIM profile QR code.
+     * <p>For other results: The LPA should treat this as an error.
+     **/
+    @SdkConstant(SdkConstant.SdkConstantType.ACTIVITY_INTENT_ACTION)
+    public static final String ACTION_START_CARRIER_ACTIVATION =
+            "android.service.euicc.action.START_CARRIER_ACTIVATION";
+
+    /**
      * @see android.telephony.euicc.EuiccManager#ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS
      * The difference is this one is used by system to bring up the LUI.
      */
@@ -138,6 +159,15 @@
     public static final String ACTION_RENAME_SUBSCRIPTION_PRIVILEGED =
             "android.service.euicc.action.RENAME_SUBSCRIPTION_PRIVILEGED";
 
+    /**
+     * @see android.telephony.euicc.EuiccManager#ACTION_START_EUICC_ACTIVATION. This is
+     * a protected intent that can only be sent by the system, and requires the
+     * {@link android.Manifest.permission#BIND_EUICC_SERVICE} permission.
+     */
+    @SdkConstant(SdkConstant.SdkConstantType.ACTIVITY_INTENT_ACTION)
+    public static final String ACTION_START_EUICC_ACTIVATION =
+            "android.service.euicc.action.START_EUICC_ACTIVATION";
+
     // LUI resolution actions. These are called by the platform to resolve errors in situations that
     // require user interaction.
     // TODO(b/33075886): Define extras for any input parameters to these dialogs once they are
@@ -516,7 +546,7 @@
      * @see android.telephony.euicc.EuiccManager#eraseSubscriptions
      *
      * @deprecated From R, callers should specify a flag for specific set of subscriptions to erase
-     * and use {@link #onEraseSubscriptionsWithOptions(int, int)} instead
+     * and use {@link #onEraseSubscriptions(int, int)} instead
      */
     @Deprecated
     public abstract int onEraseSubscriptions(int slotId);
@@ -533,7 +563,7 @@
      *     constants or any implementation-specific code starting with {@link #RESULT_FIRST_USER}.
      * @see android.telephony.euicc.EuiccManager#eraseSubscriptionsWithOptions
      */
-    public int onEraseSubscriptionsWithOptions(int slotIndex, @ResetOption int options) {
+    public int onEraseSubscriptions(int slotIndex, @ResetOption int options) {
         throw new UnsupportedOperationException(
                 "This method must be overridden to enable the ResetOption parameter");
     }
@@ -779,8 +809,7 @@
             mExecutor.execute(new Runnable() {
                 @Override
                 public void run() {
-                    int result = EuiccService.this.onEraseSubscriptionsWithOptions(
-                            slotIndex, options);
+                    int result = EuiccService.this.onEraseSubscriptions(slotIndex, options);
                     try {
                         callback.onComplete(result);
                     } catch (RemoteException e) {
diff --git a/core/java/android/service/euicc/GetDefaultDownloadableSubscriptionListResult.aidl b/telephony/java/android/service/euicc/GetDefaultDownloadableSubscriptionListResult.aidl
similarity index 100%
rename from core/java/android/service/euicc/GetDefaultDownloadableSubscriptionListResult.aidl
rename to telephony/java/android/service/euicc/GetDefaultDownloadableSubscriptionListResult.aidl
diff --git a/core/java/android/service/euicc/GetDefaultDownloadableSubscriptionListResult.java b/telephony/java/android/service/euicc/GetDefaultDownloadableSubscriptionListResult.java
similarity index 100%
rename from core/java/android/service/euicc/GetDefaultDownloadableSubscriptionListResult.java
rename to telephony/java/android/service/euicc/GetDefaultDownloadableSubscriptionListResult.java
diff --git a/core/java/android/service/euicc/GetDownloadableSubscriptionMetadataResult.aidl b/telephony/java/android/service/euicc/GetDownloadableSubscriptionMetadataResult.aidl
similarity index 100%
rename from core/java/android/service/euicc/GetDownloadableSubscriptionMetadataResult.aidl
rename to telephony/java/android/service/euicc/GetDownloadableSubscriptionMetadataResult.aidl
diff --git a/core/java/android/service/euicc/GetDownloadableSubscriptionMetadataResult.java b/telephony/java/android/service/euicc/GetDownloadableSubscriptionMetadataResult.java
similarity index 100%
rename from core/java/android/service/euicc/GetDownloadableSubscriptionMetadataResult.java
rename to telephony/java/android/service/euicc/GetDownloadableSubscriptionMetadataResult.java
diff --git a/core/java/android/service/euicc/GetEuiccProfileInfoListResult.aidl b/telephony/java/android/service/euicc/GetEuiccProfileInfoListResult.aidl
similarity index 100%
rename from core/java/android/service/euicc/GetEuiccProfileInfoListResult.aidl
rename to telephony/java/android/service/euicc/GetEuiccProfileInfoListResult.aidl
diff --git a/core/java/android/service/euicc/GetEuiccProfileInfoListResult.java b/telephony/java/android/service/euicc/GetEuiccProfileInfoListResult.java
similarity index 100%
rename from core/java/android/service/euicc/GetEuiccProfileInfoListResult.java
rename to telephony/java/android/service/euicc/GetEuiccProfileInfoListResult.java
diff --git a/core/java/android/service/euicc/IDeleteSubscriptionCallback.aidl b/telephony/java/android/service/euicc/IDeleteSubscriptionCallback.aidl
similarity index 100%
rename from core/java/android/service/euicc/IDeleteSubscriptionCallback.aidl
rename to telephony/java/android/service/euicc/IDeleteSubscriptionCallback.aidl
diff --git a/core/java/android/service/euicc/IDownloadSubscriptionCallback.aidl b/telephony/java/android/service/euicc/IDownloadSubscriptionCallback.aidl
similarity index 100%
rename from core/java/android/service/euicc/IDownloadSubscriptionCallback.aidl
rename to telephony/java/android/service/euicc/IDownloadSubscriptionCallback.aidl
diff --git a/core/java/android/service/euicc/IEraseSubscriptionsCallback.aidl b/telephony/java/android/service/euicc/IEraseSubscriptionsCallback.aidl
similarity index 100%
rename from core/java/android/service/euicc/IEraseSubscriptionsCallback.aidl
rename to telephony/java/android/service/euicc/IEraseSubscriptionsCallback.aidl
diff --git a/core/java/android/service/euicc/IEuiccService.aidl b/telephony/java/android/service/euicc/IEuiccService.aidl
similarity index 100%
rename from core/java/android/service/euicc/IEuiccService.aidl
rename to telephony/java/android/service/euicc/IEuiccService.aidl
diff --git a/core/java/android/service/euicc/IGetDefaultDownloadableSubscriptionListCallback.aidl b/telephony/java/android/service/euicc/IGetDefaultDownloadableSubscriptionListCallback.aidl
similarity index 100%
rename from core/java/android/service/euicc/IGetDefaultDownloadableSubscriptionListCallback.aidl
rename to telephony/java/android/service/euicc/IGetDefaultDownloadableSubscriptionListCallback.aidl
diff --git a/core/java/android/service/euicc/IGetDownloadableSubscriptionMetadataCallback.aidl b/telephony/java/android/service/euicc/IGetDownloadableSubscriptionMetadataCallback.aidl
similarity index 100%
rename from core/java/android/service/euicc/IGetDownloadableSubscriptionMetadataCallback.aidl
rename to telephony/java/android/service/euicc/IGetDownloadableSubscriptionMetadataCallback.aidl
diff --git a/core/java/android/service/euicc/IGetEidCallback.aidl b/telephony/java/android/service/euicc/IGetEidCallback.aidl
similarity index 100%
rename from core/java/android/service/euicc/IGetEidCallback.aidl
rename to telephony/java/android/service/euicc/IGetEidCallback.aidl
diff --git a/core/java/android/service/euicc/IGetEuiccInfoCallback.aidl b/telephony/java/android/service/euicc/IGetEuiccInfoCallback.aidl
similarity index 100%
rename from core/java/android/service/euicc/IGetEuiccInfoCallback.aidl
rename to telephony/java/android/service/euicc/IGetEuiccInfoCallback.aidl
diff --git a/core/java/android/service/euicc/IGetEuiccProfileInfoListCallback.aidl b/telephony/java/android/service/euicc/IGetEuiccProfileInfoListCallback.aidl
similarity index 100%
rename from core/java/android/service/euicc/IGetEuiccProfileInfoListCallback.aidl
rename to telephony/java/android/service/euicc/IGetEuiccProfileInfoListCallback.aidl
diff --git a/core/java/android/service/euicc/IGetOtaStatusCallback.aidl b/telephony/java/android/service/euicc/IGetOtaStatusCallback.aidl
similarity index 100%
rename from core/java/android/service/euicc/IGetOtaStatusCallback.aidl
rename to telephony/java/android/service/euicc/IGetOtaStatusCallback.aidl
diff --git a/core/java/android/service/euicc/IOtaStatusChangedCallback.aidl b/telephony/java/android/service/euicc/IOtaStatusChangedCallback.aidl
similarity index 100%
rename from core/java/android/service/euicc/IOtaStatusChangedCallback.aidl
rename to telephony/java/android/service/euicc/IOtaStatusChangedCallback.aidl
diff --git a/core/java/android/service/euicc/IRetainSubscriptionsForFactoryResetCallback.aidl b/telephony/java/android/service/euicc/IRetainSubscriptionsForFactoryResetCallback.aidl
similarity index 100%
rename from core/java/android/service/euicc/IRetainSubscriptionsForFactoryResetCallback.aidl
rename to telephony/java/android/service/euicc/IRetainSubscriptionsForFactoryResetCallback.aidl
diff --git a/core/java/android/service/euicc/ISwitchToSubscriptionCallback.aidl b/telephony/java/android/service/euicc/ISwitchToSubscriptionCallback.aidl
similarity index 100%
rename from core/java/android/service/euicc/ISwitchToSubscriptionCallback.aidl
rename to telephony/java/android/service/euicc/ISwitchToSubscriptionCallback.aidl
diff --git a/core/java/android/service/euicc/IUpdateSubscriptionNicknameCallback.aidl b/telephony/java/android/service/euicc/IUpdateSubscriptionNicknameCallback.aidl
similarity index 100%
rename from core/java/android/service/euicc/IUpdateSubscriptionNicknameCallback.aidl
rename to telephony/java/android/service/euicc/IUpdateSubscriptionNicknameCallback.aidl
diff --git a/telephony/java/android/telephony/AccessNetworkConstants.java b/telephony/java/android/telephony/AccessNetworkConstants.java
index afa35b4..a0aa60b 100644
--- a/telephony/java/android/telephony/AccessNetworkConstants.java
+++ b/telephony/java/android/telephony/AccessNetworkConstants.java
@@ -45,6 +45,7 @@
      * @hide
      */
     @SystemApi
+    @TestApi
     public static final int TRANSPORT_TYPE_INVALID = -1;
 
     /**
diff --git a/telephony/java/android/telephony/Annotation.java b/telephony/java/android/telephony/Annotation.java
new file mode 100644
index 0000000..72f758e
--- /dev/null
+++ b/telephony/java/android/telephony/Annotation.java
@@ -0,0 +1,512 @@
+package android.telephony;
+
+import android.annotation.IntDef;
+import android.telephony.data.ApnSetting;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * Telephony Annotations.
+ * Telephony sdk is a mainline module and others cannot reference hidden @IntDef. Moving some
+ * telephony annotations to a separate class to allow others statically link to it.
+ *
+ * @hide
+ */
+public class Annotation {
+    @IntDef(prefix = {"DATA_"}, value = {
+            TelephonyManager.DATA_ACTIVITY_NONE,
+            TelephonyManager.DATA_ACTIVITY_IN,
+            TelephonyManager.DATA_ACTIVITY_OUT,
+            TelephonyManager.DATA_ACTIVITY_INOUT,
+            TelephonyManager.DATA_ACTIVITY_DORMANT,
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface DataActivityType {
+    }
+
+    @IntDef(prefix = {"DATA_"}, value = {
+            TelephonyManager.DATA_UNKNOWN,
+            TelephonyManager.DATA_DISCONNECTED,
+            TelephonyManager.DATA_CONNECTING,
+            TelephonyManager.DATA_CONNECTED,
+            TelephonyManager.DATA_SUSPENDED,
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface DataState {
+    }
+
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(prefix = {"RADIO_POWER_"},
+            value = {
+                    TelephonyManager.RADIO_POWER_OFF,
+                    TelephonyManager.RADIO_POWER_ON,
+                    TelephonyManager.RADIO_POWER_UNAVAILABLE,
+            })
+    public @interface RadioPowerState {
+    }
+
+    @IntDef({
+            TelephonyManager.SIM_ACTIVATION_STATE_UNKNOWN,
+            TelephonyManager.SIM_ACTIVATION_STATE_ACTIVATING,
+            TelephonyManager.SIM_ACTIVATION_STATE_ACTIVATED,
+            TelephonyManager.SIM_ACTIVATION_STATE_DEACTIVATED,
+            TelephonyManager.SIM_ACTIVATION_STATE_RESTRICTED
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface SimActivationState {
+    }
+
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(prefix = {"SRVCC_STATE_"},
+            value = {
+                    TelephonyManager.SRVCC_STATE_HANDOVER_NONE,
+                    TelephonyManager.SRVCC_STATE_HANDOVER_STARTED,
+                    TelephonyManager.SRVCC_STATE_HANDOVER_COMPLETED,
+                    TelephonyManager.SRVCC_STATE_HANDOVER_FAILED,
+                    TelephonyManager.SRVCC_STATE_HANDOVER_CANCELED})
+    public @interface SrvccState {
+    }
+
+    @IntDef(prefix = {"CALL_STATE_"}, value = {
+            TelephonyManager.CALL_STATE_IDLE,
+            TelephonyManager.CALL_STATE_RINGING,
+            TelephonyManager.CALL_STATE_OFFHOOK
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface CallState {
+    }
+
+    @IntDef({
+            TelephonyManager.NETWORK_TYPE_UNKNOWN,
+            TelephonyManager.NETWORK_TYPE_GPRS,
+            TelephonyManager.NETWORK_TYPE_EDGE,
+            TelephonyManager.NETWORK_TYPE_UMTS,
+            TelephonyManager.NETWORK_TYPE_CDMA,
+            TelephonyManager.NETWORK_TYPE_EVDO_0,
+            TelephonyManager.NETWORK_TYPE_EVDO_A,
+            TelephonyManager.NETWORK_TYPE_1xRTT,
+            TelephonyManager.NETWORK_TYPE_HSDPA,
+            TelephonyManager.NETWORK_TYPE_HSUPA,
+            TelephonyManager.NETWORK_TYPE_HSPA,
+            TelephonyManager.NETWORK_TYPE_IDEN,
+            TelephonyManager.NETWORK_TYPE_EVDO_B,
+            TelephonyManager.NETWORK_TYPE_LTE,
+            TelephonyManager.NETWORK_TYPE_EHRPD,
+            TelephonyManager.NETWORK_TYPE_HSPAP,
+            TelephonyManager.NETWORK_TYPE_GSM,
+            TelephonyManager.NETWORK_TYPE_TD_SCDMA,
+            TelephonyManager.NETWORK_TYPE_IWLAN,
+            TelephonyManager.NETWORK_TYPE_LTE_CA,
+            TelephonyManager.NETWORK_TYPE_NR,
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface NetworkType {
+    }
+
+    @IntDef(flag = true, prefix = {"TYPE_"}, value = {
+            ApnSetting.TYPE_DEFAULT,
+            ApnSetting.TYPE_MMS,
+            ApnSetting.TYPE_SUPL,
+            ApnSetting.TYPE_DUN,
+            ApnSetting.TYPE_HIPRI,
+            ApnSetting.TYPE_FOTA,
+            ApnSetting.TYPE_IMS,
+            ApnSetting.TYPE_CBS,
+            ApnSetting.TYPE_IA,
+            ApnSetting.TYPE_EMERGENCY,
+            ApnSetting.TYPE_MCX
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface ApnType {
+    }
+
+    @IntDef(value = {
+            DataFailCause.NONE,
+            DataFailCause.OPERATOR_BARRED,
+            DataFailCause.NAS_SIGNALLING,
+            DataFailCause.LLC_SNDCP,
+            DataFailCause.INSUFFICIENT_RESOURCES,
+            DataFailCause.MISSING_UNKNOWN_APN,
+            DataFailCause.UNKNOWN_PDP_ADDRESS_TYPE,
+            DataFailCause.USER_AUTHENTICATION,
+            DataFailCause.ACTIVATION_REJECT_GGSN,
+            DataFailCause.ACTIVATION_REJECT_UNSPECIFIED,
+            DataFailCause.SERVICE_OPTION_NOT_SUPPORTED,
+            DataFailCause.SERVICE_OPTION_NOT_SUBSCRIBED,
+            DataFailCause.SERVICE_OPTION_OUT_OF_ORDER,
+            DataFailCause.NSAPI_IN_USE,
+            DataFailCause.REGULAR_DEACTIVATION,
+            DataFailCause.QOS_NOT_ACCEPTED,
+            DataFailCause.NETWORK_FAILURE,
+            DataFailCause.UMTS_REACTIVATION_REQ,
+            DataFailCause.FEATURE_NOT_SUPP,
+            DataFailCause.TFT_SEMANTIC_ERROR,
+            DataFailCause.TFT_SYTAX_ERROR,
+            DataFailCause.UNKNOWN_PDP_CONTEXT,
+            DataFailCause.FILTER_SEMANTIC_ERROR,
+            DataFailCause.FILTER_SYTAX_ERROR,
+            DataFailCause.PDP_WITHOUT_ACTIVE_TFT,
+            DataFailCause.ACTIVATION_REJECTED_BCM_VIOLATION,
+            DataFailCause.ONLY_IPV4_ALLOWED,
+            DataFailCause.ONLY_IPV6_ALLOWED,
+            DataFailCause.ONLY_SINGLE_BEARER_ALLOWED,
+            DataFailCause.ESM_INFO_NOT_RECEIVED,
+            DataFailCause.PDN_CONN_DOES_NOT_EXIST,
+            DataFailCause.MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED,
+            DataFailCause.COLLISION_WITH_NETWORK_INITIATED_REQUEST,
+            DataFailCause.ONLY_IPV4V6_ALLOWED,
+            DataFailCause.ONLY_NON_IP_ALLOWED,
+            DataFailCause.UNSUPPORTED_QCI_VALUE,
+            DataFailCause.BEARER_HANDLING_NOT_SUPPORTED,
+            DataFailCause.ACTIVE_PDP_CONTEXT_MAX_NUMBER_REACHED,
+            DataFailCause.UNSUPPORTED_APN_IN_CURRENT_PLMN,
+            DataFailCause.INVALID_TRANSACTION_ID,
+            DataFailCause.MESSAGE_INCORRECT_SEMANTIC,
+            DataFailCause.INVALID_MANDATORY_INFO,
+            DataFailCause.MESSAGE_TYPE_UNSUPPORTED,
+            DataFailCause.MSG_TYPE_NONCOMPATIBLE_STATE,
+            DataFailCause.UNKNOWN_INFO_ELEMENT,
+            DataFailCause.CONDITIONAL_IE_ERROR,
+            DataFailCause.MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE,
+            DataFailCause.PROTOCOL_ERRORS,
+            DataFailCause.APN_TYPE_CONFLICT,
+            DataFailCause.INVALID_PCSCF_ADDR,
+            DataFailCause.INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN,
+            DataFailCause.EMM_ACCESS_BARRED,
+            DataFailCause.EMERGENCY_IFACE_ONLY,
+            DataFailCause.IFACE_MISMATCH,
+            DataFailCause.COMPANION_IFACE_IN_USE,
+            DataFailCause.IP_ADDRESS_MISMATCH,
+            DataFailCause.IFACE_AND_POL_FAMILY_MISMATCH,
+            DataFailCause.EMM_ACCESS_BARRED_INFINITE_RETRY,
+            DataFailCause.AUTH_FAILURE_ON_EMERGENCY_CALL,
+            DataFailCause.INVALID_DNS_ADDR,
+            DataFailCause.INVALID_PCSCF_OR_DNS_ADDRESS,
+            DataFailCause.CALL_PREEMPT_BY_EMERGENCY_APN,
+            DataFailCause.UE_INITIATED_DETACH_OR_DISCONNECT,
+            DataFailCause.MIP_FA_REASON_UNSPECIFIED,
+            DataFailCause.MIP_FA_ADMIN_PROHIBITED,
+            DataFailCause.MIP_FA_INSUFFICIENT_RESOURCES,
+            DataFailCause.MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE,
+            DataFailCause.MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE,
+            DataFailCause.MIP_FA_REQUESTED_LIFETIME_TOO_LONG,
+            DataFailCause.MIP_FA_MALFORMED_REQUEST,
+            DataFailCause.MIP_FA_MALFORMED_REPLY,
+            DataFailCause.MIP_FA_ENCAPSULATION_UNAVAILABLE,
+            DataFailCause.MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE,
+            DataFailCause.MIP_FA_REVERSE_TUNNEL_UNAVAILABLE,
+            DataFailCause.MIP_FA_REVERSE_TUNNEL_IS_MANDATORY,
+            DataFailCause.MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED,
+            DataFailCause.MIP_FA_MISSING_NAI,
+            DataFailCause.MIP_FA_MISSING_HOME_AGENT,
+            DataFailCause.MIP_FA_MISSING_HOME_ADDRESS,
+            DataFailCause.MIP_FA_UNKNOWN_CHALLENGE,
+            DataFailCause.MIP_FA_MISSING_CHALLENGE,
+            DataFailCause.MIP_FA_STALE_CHALLENGE,
+            DataFailCause.MIP_HA_REASON_UNSPECIFIED,
+            DataFailCause.MIP_HA_ADMIN_PROHIBITED,
+            DataFailCause.MIP_HA_INSUFFICIENT_RESOURCES,
+            DataFailCause.MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE,
+            DataFailCause.MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE,
+            DataFailCause.MIP_HA_REGISTRATION_ID_MISMATCH,
+            DataFailCause.MIP_HA_MALFORMED_REQUEST,
+            DataFailCause.MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS,
+            DataFailCause.MIP_HA_REVERSE_TUNNEL_UNAVAILABLE,
+            DataFailCause.MIP_HA_REVERSE_TUNNEL_IS_MANDATORY,
+            DataFailCause.MIP_HA_ENCAPSULATION_UNAVAILABLE,
+            DataFailCause.CLOSE_IN_PROGRESS,
+            DataFailCause.NETWORK_INITIATED_TERMINATION,
+            DataFailCause.MODEM_APP_PREEMPTED,
+            DataFailCause.PDN_IPV4_CALL_DISALLOWED,
+            DataFailCause.PDN_IPV4_CALL_THROTTLED,
+            DataFailCause.PDN_IPV6_CALL_DISALLOWED,
+            DataFailCause.PDN_IPV6_CALL_THROTTLED,
+            DataFailCause.MODEM_RESTART,
+            DataFailCause.PDP_PPP_NOT_SUPPORTED,
+            DataFailCause.UNPREFERRED_RAT,
+            DataFailCause.PHYSICAL_LINK_CLOSE_IN_PROGRESS,
+            DataFailCause.APN_PENDING_HANDOVER,
+            DataFailCause.PROFILE_BEARER_INCOMPATIBLE,
+            DataFailCause.SIM_CARD_CHANGED,
+            DataFailCause.LOW_POWER_MODE_OR_POWERING_DOWN,
+            DataFailCause.APN_DISABLED,
+            DataFailCause.MAX_PPP_INACTIVITY_TIMER_EXPIRED,
+            DataFailCause.IPV6_ADDRESS_TRANSFER_FAILED,
+            DataFailCause.TRAT_SWAP_FAILED,
+            DataFailCause.EHRPD_TO_HRPD_FALLBACK,
+            DataFailCause.MIP_CONFIG_FAILURE,
+            DataFailCause.PDN_INACTIVITY_TIMER_EXPIRED,
+            DataFailCause.MAX_IPV4_CONNECTIONS,
+            DataFailCause.MAX_IPV6_CONNECTIONS,
+            DataFailCause.APN_MISMATCH,
+            DataFailCause.IP_VERSION_MISMATCH,
+            DataFailCause.DUN_CALL_DISALLOWED,
+            DataFailCause.INTERNAL_EPC_NONEPC_TRANSITION,
+            DataFailCause.INTERFACE_IN_USE,
+            DataFailCause.APN_DISALLOWED_ON_ROAMING,
+            DataFailCause.APN_PARAMETERS_CHANGED,
+            DataFailCause.NULL_APN_DISALLOWED,
+            DataFailCause.THERMAL_MITIGATION,
+            DataFailCause.DATA_SETTINGS_DISABLED,
+            DataFailCause.DATA_ROAMING_SETTINGS_DISABLED,
+            DataFailCause.DDS_SWITCHED,
+            DataFailCause.FORBIDDEN_APN_NAME,
+            DataFailCause.DDS_SWITCH_IN_PROGRESS,
+            DataFailCause.CALL_DISALLOWED_IN_ROAMING,
+            DataFailCause.NON_IP_NOT_SUPPORTED,
+            DataFailCause.PDN_NON_IP_CALL_THROTTLED,
+            DataFailCause.PDN_NON_IP_CALL_DISALLOWED,
+            DataFailCause.CDMA_LOCK,
+            DataFailCause.CDMA_INTERCEPT,
+            DataFailCause.CDMA_REORDER,
+            DataFailCause.CDMA_RELEASE_DUE_TO_SO_REJECTION,
+            DataFailCause.CDMA_INCOMING_CALL,
+            DataFailCause.CDMA_ALERT_STOP,
+            DataFailCause.CHANNEL_ACQUISITION_FAILURE,
+            DataFailCause.MAX_ACCESS_PROBE,
+            DataFailCause.CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION,
+            DataFailCause.NO_RESPONSE_FROM_BASE_STATION,
+            DataFailCause.REJECTED_BY_BASE_STATION,
+            DataFailCause.CONCURRENT_SERVICES_INCOMPATIBLE,
+            DataFailCause.NO_CDMA_SERVICE,
+            DataFailCause.RUIM_NOT_PRESENT,
+            DataFailCause.CDMA_RETRY_ORDER,
+            DataFailCause.ACCESS_BLOCK,
+            DataFailCause.ACCESS_BLOCK_ALL,
+            DataFailCause.IS707B_MAX_ACCESS_PROBES,
+            DataFailCause.THERMAL_EMERGENCY,
+            DataFailCause.CONCURRENT_SERVICES_NOT_ALLOWED,
+            DataFailCause.INCOMING_CALL_REJECTED,
+            DataFailCause.NO_SERVICE_ON_GATEWAY,
+            DataFailCause.NO_GPRS_CONTEXT,
+            DataFailCause.ILLEGAL_MS,
+            DataFailCause.ILLEGAL_ME,
+            DataFailCause.GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED,
+            DataFailCause.GPRS_SERVICES_NOT_ALLOWED,
+            DataFailCause.MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK,
+            DataFailCause.IMPLICITLY_DETACHED,
+            DataFailCause.PLMN_NOT_ALLOWED,
+            DataFailCause.LOCATION_AREA_NOT_ALLOWED,
+            DataFailCause.GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN,
+            DataFailCause.PDP_DUPLICATE,
+            DataFailCause.UE_RAT_CHANGE,
+            DataFailCause.CONGESTION,
+            DataFailCause.NO_PDP_CONTEXT_ACTIVATED,
+            DataFailCause.ACCESS_CLASS_DSAC_REJECTION,
+            DataFailCause.PDP_ACTIVATE_MAX_RETRY_FAILED,
+            DataFailCause.RADIO_ACCESS_BEARER_FAILURE,
+            DataFailCause.ESM_UNKNOWN_EPS_BEARER_CONTEXT,
+            DataFailCause.DRB_RELEASED_BY_RRC,
+            DataFailCause.CONNECTION_RELEASED,
+            DataFailCause.EMM_DETACHED,
+            DataFailCause.EMM_ATTACH_FAILED,
+            DataFailCause.EMM_ATTACH_STARTED,
+            DataFailCause.LTE_NAS_SERVICE_REQUEST_FAILED,
+            DataFailCause.DUPLICATE_BEARER_ID,
+            DataFailCause.ESM_COLLISION_SCENARIOS,
+            DataFailCause.ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK,
+            DataFailCause.ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER,
+            DataFailCause.ESM_BAD_OTA_MESSAGE,
+            DataFailCause.ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL,
+            DataFailCause.ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT,
+            DataFailCause.DS_EXPLICIT_DEACTIVATION,
+            DataFailCause.ESM_LOCAL_CAUSE_NONE,
+            DataFailCause.LTE_THROTTLING_NOT_REQUIRED,
+            DataFailCause.ACCESS_CONTROL_LIST_CHECK_FAILURE,
+            DataFailCause.SERVICE_NOT_ALLOWED_ON_PLMN,
+            DataFailCause.EMM_T3417_EXPIRED,
+            DataFailCause.EMM_T3417_EXT_EXPIRED,
+            DataFailCause.RRC_UPLINK_DATA_TRANSMISSION_FAILURE,
+            DataFailCause.RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER,
+            DataFailCause.RRC_UPLINK_CONNECTION_RELEASE,
+            DataFailCause.RRC_UPLINK_RADIO_LINK_FAILURE,
+            DataFailCause.RRC_UPLINK_ERROR_REQUEST_FROM_NAS,
+            DataFailCause.RRC_CONNECTION_ACCESS_STRATUM_FAILURE,
+            DataFailCause.RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS,
+            DataFailCause.RRC_CONNECTION_ACCESS_BARRED,
+            DataFailCause.RRC_CONNECTION_CELL_RESELECTION,
+            DataFailCause.RRC_CONNECTION_CONFIG_FAILURE,
+            DataFailCause.RRC_CONNECTION_TIMER_EXPIRED,
+            DataFailCause.RRC_CONNECTION_LINK_FAILURE,
+            DataFailCause.RRC_CONNECTION_CELL_NOT_CAMPED,
+            DataFailCause.RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE,
+            DataFailCause.RRC_CONNECTION_REJECT_BY_NETWORK,
+            DataFailCause.RRC_CONNECTION_NORMAL_RELEASE,
+            DataFailCause.RRC_CONNECTION_RADIO_LINK_FAILURE,
+            DataFailCause.RRC_CONNECTION_REESTABLISHMENT_FAILURE,
+            DataFailCause.RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER,
+            DataFailCause.RRC_CONNECTION_ABORT_REQUEST,
+            DataFailCause.RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR,
+            DataFailCause.NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH,
+            DataFailCause.NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH,
+            DataFailCause.ESM_PROCEDURE_TIME_OUT,
+            DataFailCause.INVALID_CONNECTION_ID,
+            DataFailCause.MAXIMIUM_NSAPIS_EXCEEDED,
+            DataFailCause.INVALID_PRIMARY_NSAPI,
+            DataFailCause.CANNOT_ENCODE_OTA_MESSAGE,
+            DataFailCause.RADIO_ACCESS_BEARER_SETUP_FAILURE,
+            DataFailCause.PDP_ESTABLISH_TIMEOUT_EXPIRED,
+            DataFailCause.PDP_MODIFY_TIMEOUT_EXPIRED,
+            DataFailCause.PDP_INACTIVE_TIMEOUT_EXPIRED,
+            DataFailCause.PDP_LOWERLAYER_ERROR,
+            DataFailCause.PDP_MODIFY_COLLISION,
+            DataFailCause.MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED,
+            DataFailCause.NAS_REQUEST_REJECTED_BY_NETWORK,
+            DataFailCause.RRC_CONNECTION_INVALID_REQUEST,
+            DataFailCause.RRC_CONNECTION_TRACKING_AREA_ID_CHANGED,
+            DataFailCause.RRC_CONNECTION_RF_UNAVAILABLE,
+            DataFailCause.RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE,
+            DataFailCause.RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE,
+            DataFailCause.RRC_CONNECTION_ABORTED_AFTER_HANDOVER,
+            DataFailCause.RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE,
+            DataFailCause.RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE,
+            DataFailCause.IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER,
+            DataFailCause.IMEI_NOT_ACCEPTED,
+            DataFailCause.EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED,
+            DataFailCause.EPS_SERVICES_NOT_ALLOWED_IN_PLMN,
+            DataFailCause.MSC_TEMPORARILY_NOT_REACHABLE,
+            DataFailCause.CS_DOMAIN_NOT_AVAILABLE,
+            DataFailCause.ESM_FAILURE,
+            DataFailCause.MAC_FAILURE,
+            DataFailCause.SYNCHRONIZATION_FAILURE,
+            DataFailCause.UE_SECURITY_CAPABILITIES_MISMATCH,
+            DataFailCause.SECURITY_MODE_REJECTED,
+            DataFailCause.UNACCEPTABLE_NON_EPS_AUTHENTICATION,
+            DataFailCause.CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED,
+            DataFailCause.NO_EPS_BEARER_CONTEXT_ACTIVATED,
+            DataFailCause.INVALID_EMM_STATE,
+            DataFailCause.NAS_LAYER_FAILURE,
+            DataFailCause.MULTIPLE_PDP_CALL_NOT_ALLOWED,
+            DataFailCause.EMBMS_NOT_ENABLED,
+            DataFailCause.IRAT_HANDOVER_FAILED,
+            DataFailCause.EMBMS_REGULAR_DEACTIVATION,
+            DataFailCause.TEST_LOOPBACK_REGULAR_DEACTIVATION,
+            DataFailCause.LOWER_LAYER_REGISTRATION_FAILURE,
+            DataFailCause.DATA_PLAN_EXPIRED,
+            DataFailCause.UMTS_HANDOVER_TO_IWLAN,
+            DataFailCause.EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY,
+            DataFailCause.EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE,
+            DataFailCause.EVDO_HDR_CHANGED,
+            DataFailCause.EVDO_HDR_EXITED,
+            DataFailCause.EVDO_HDR_NO_SESSION,
+            DataFailCause.EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL,
+            DataFailCause.EVDO_HDR_CONNECTION_SETUP_TIMEOUT,
+            DataFailCause.FAILED_TO_ACQUIRE_COLOCATED_HDR,
+            DataFailCause.OTASP_COMMIT_IN_PROGRESS,
+            DataFailCause.NO_HYBRID_HDR_SERVICE,
+            DataFailCause.HDR_NO_LOCK_GRANTED,
+            DataFailCause.DBM_OR_SMS_IN_PROGRESS,
+            DataFailCause.HDR_FADE,
+            DataFailCause.HDR_ACCESS_FAILURE,
+            DataFailCause.UNSUPPORTED_1X_PREV,
+            DataFailCause.LOCAL_END,
+            DataFailCause.NO_SERVICE,
+            DataFailCause.FADE,
+            DataFailCause.NORMAL_RELEASE,
+            DataFailCause.ACCESS_ATTEMPT_ALREADY_IN_PROGRESS,
+            DataFailCause.REDIRECTION_OR_HANDOFF_IN_PROGRESS,
+            DataFailCause.EMERGENCY_MODE,
+            DataFailCause.PHONE_IN_USE,
+            DataFailCause.INVALID_MODE,
+            DataFailCause.INVALID_SIM_STATE,
+            DataFailCause.NO_COLLOCATED_HDR,
+            DataFailCause.UE_IS_ENTERING_POWERSAVE_MODE,
+            DataFailCause.DUAL_SWITCH,
+            DataFailCause.PPP_TIMEOUT,
+            DataFailCause.PPP_AUTH_FAILURE,
+            DataFailCause.PPP_OPTION_MISMATCH,
+            DataFailCause.PPP_PAP_FAILURE,
+            DataFailCause.PPP_CHAP_FAILURE,
+            DataFailCause.PPP_CLOSE_IN_PROGRESS,
+            DataFailCause.LIMITED_TO_IPV4,
+            DataFailCause.LIMITED_TO_IPV6,
+            DataFailCause.VSNCP_TIMEOUT,
+            DataFailCause.VSNCP_GEN_ERROR,
+            DataFailCause.VSNCP_APN_UNATHORIZED,
+            DataFailCause.VSNCP_PDN_LIMIT_EXCEEDED,
+            DataFailCause.VSNCP_NO_PDN_GATEWAY_ADDRESS,
+            DataFailCause.VSNCP_PDN_GATEWAY_UNREACHABLE,
+            DataFailCause.VSNCP_PDN_GATEWAY_REJECT,
+            DataFailCause.VSNCP_INSUFFICIENT_PARAMETERS,
+            DataFailCause.VSNCP_RESOURCE_UNAVAILABLE,
+            DataFailCause.VSNCP_ADMINISTRATIVELY_PROHIBITED,
+            DataFailCause.VSNCP_PDN_ID_IN_USE,
+            DataFailCause.VSNCP_SUBSCRIBER_LIMITATION,
+            DataFailCause.VSNCP_PDN_EXISTS_FOR_THIS_APN,
+            DataFailCause.VSNCP_RECONNECT_NOT_ALLOWED,
+            DataFailCause.IPV6_PREFIX_UNAVAILABLE,
+            DataFailCause.HANDOFF_PREFERENCE_CHANGED,
+            DataFailCause.OEM_DCFAILCAUSE_1,
+            DataFailCause.OEM_DCFAILCAUSE_2,
+            DataFailCause.OEM_DCFAILCAUSE_3,
+            DataFailCause.OEM_DCFAILCAUSE_4,
+            DataFailCause.OEM_DCFAILCAUSE_5,
+            DataFailCause.OEM_DCFAILCAUSE_6,
+            DataFailCause.OEM_DCFAILCAUSE_7,
+            DataFailCause.OEM_DCFAILCAUSE_8,
+            DataFailCause.OEM_DCFAILCAUSE_9,
+            DataFailCause.OEM_DCFAILCAUSE_10,
+            DataFailCause.OEM_DCFAILCAUSE_11,
+            DataFailCause.OEM_DCFAILCAUSE_12,
+            DataFailCause.OEM_DCFAILCAUSE_13,
+            DataFailCause.OEM_DCFAILCAUSE_14,
+            DataFailCause.OEM_DCFAILCAUSE_15,
+            DataFailCause.REGISTRATION_FAIL,
+            DataFailCause.GPRS_REGISTRATION_FAIL,
+            DataFailCause.SIGNAL_LOST,
+            DataFailCause.PREF_RADIO_TECH_CHANGED,
+            DataFailCause.RADIO_POWER_OFF,
+            DataFailCause.TETHERED_CALL_ACTIVE,
+            DataFailCause.ERROR_UNSPECIFIED,
+            DataFailCause.UNKNOWN,
+            DataFailCause.RADIO_NOT_AVAILABLE,
+            DataFailCause.UNACCEPTABLE_NETWORK_PARAMETER,
+            DataFailCause.CONNECTION_TO_DATACONNECTIONAC_BROKEN,
+            DataFailCause.LOST_CONNECTION,
+            DataFailCause.RESET_BY_FRAMEWORK
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface DataFailureCause {
+    }
+
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(prefix = {"PRECISE_CALL_STATE_"},
+            value = {
+            PreciseCallState.PRECISE_CALL_STATE_NOT_VALID,
+            PreciseCallState.PRECISE_CALL_STATE_IDLE,
+            PreciseCallState.PRECISE_CALL_STATE_ACTIVE,
+            PreciseCallState.PRECISE_CALL_STATE_HOLDING,
+            PreciseCallState.PRECISE_CALL_STATE_DIALING,
+            PreciseCallState.PRECISE_CALL_STATE_ALERTING,
+            PreciseCallState. PRECISE_CALL_STATE_INCOMING,
+            PreciseCallState.PRECISE_CALL_STATE_WAITING,
+            PreciseCallState.PRECISE_CALL_STATE_DISCONNECTED,
+            PreciseCallState.PRECISE_CALL_STATE_DISCONNECTING})
+    public @interface PreciseCallStates {}
+
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(prefix = {"RIL_RADIO_TECHNOLOGY_" }, value = {
+            ServiceState.RIL_RADIO_TECHNOLOGY_UNKNOWN,
+            ServiceState.RIL_RADIO_TECHNOLOGY_GPRS,
+            ServiceState.RIL_RADIO_TECHNOLOGY_EDGE,
+            ServiceState.RIL_RADIO_TECHNOLOGY_UMTS,
+            ServiceState.RIL_RADIO_TECHNOLOGY_IS95A,
+            ServiceState.RIL_RADIO_TECHNOLOGY_IS95B,
+            ServiceState.RIL_RADIO_TECHNOLOGY_1xRTT,
+            ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_0,
+            ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_A,
+            ServiceState.RIL_RADIO_TECHNOLOGY_HSDPA,
+            ServiceState.RIL_RADIO_TECHNOLOGY_HSUPA,
+            ServiceState.RIL_RADIO_TECHNOLOGY_HSPA,
+            ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_B,
+            ServiceState.RIL_RADIO_TECHNOLOGY_EHRPD,
+            ServiceState.RIL_RADIO_TECHNOLOGY_LTE,
+            ServiceState.RIL_RADIO_TECHNOLOGY_HSPAP,
+            ServiceState.RIL_RADIO_TECHNOLOGY_GSM,
+            ServiceState.RIL_RADIO_TECHNOLOGY_TD_SCDMA,
+            ServiceState.RIL_RADIO_TECHNOLOGY_IWLAN,
+            ServiceState.RIL_RADIO_TECHNOLOGY_LTE_CA,
+            ServiceState.RIL_RADIO_TECHNOLOGY_NR})
+    public @interface RilRadioTechnology {}
+}
diff --git a/telephony/java/android/telephony/CallAttributes.java b/telephony/java/android/telephony/CallAttributes.java
index 1c03d80..cd830ad 100644
--- a/telephony/java/android/telephony/CallAttributes.java
+++ b/telephony/java/android/telephony/CallAttributes.java
@@ -21,8 +21,8 @@
 import android.annotation.SystemApi;
 import android.os.Parcel;
 import android.os.Parcelable;
-import android.telephony.TelephonyManager.NetworkType;
 
+import android.telephony.Annotation.NetworkType;
 import java.util.Objects;
 
 /**
diff --git a/telephony/java/android/telephony/CallQuality.java b/telephony/java/android/telephony/CallQuality.java
index 028280c..e01deb2 100644
--- a/telephony/java/android/telephony/CallQuality.java
+++ b/telephony/java/android/telephony/CallQuality.java
@@ -20,6 +20,7 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.os.Parcel;
 import android.os.Parcelable;
 
@@ -40,6 +41,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public final class CallQuality implements Parcelable {
 
     // Constants representing the call quality level (see #CallQuality);
diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java
index e458ae6..c83ce6a 100644
--- a/telephony/java/android/telephony/CarrierConfigManager.java
+++ b/telephony/java/android/telephony/CarrierConfigManager.java
@@ -809,7 +809,9 @@
     /**
      * The default flag specifying whether ETWS/CMAS test setting is forcibly disabled in
      * Settings->More->Emergency broadcasts menu even though developer options is turned on.
+     * @deprecated moved to cellbroadcastreceiver resource show_test_settings
      */
+    @Deprecated
     public static final String KEY_CARRIER_FORCE_DISABLE_ETWS_CMAS_TEST_BOOL =
             "carrier_force_disable_etws_cmas_test_bool";
 
@@ -828,13 +830,6 @@
             "disable_severe_when_extreme_disabled_bool";
 
     /**
-     * The message expiration time in milliseconds for duplicate detection purposes.
-     * @hide
-     */
-    public static final String KEY_MESSAGE_EXPIRATION_TIME_LONG =
-            "message_expiration_time_long";
-
-    /**
      * The data call retry configuration for different types of APN.
      * @hide
      */
@@ -1706,7 +1701,6 @@
     /**
      * Determines whether the carrier app needed to be involved when users try to finish setting up
      * the SIM card to get network service.
-     * @hide
      */
     public static final String KEY_CARRIER_APP_REQUIRED_DURING_SIM_SETUP_BOOL =
             "carrier_app_required_during_setup_bool";
@@ -1750,6 +1744,15 @@
             "allow_emergency_video_calls_bool";
 
     /**
+     * Flag indicating whether or not an ongoing call will be held when an outgoing emergency call
+     * is placed. If true, ongoing calls will be put on hold when an emergency call is placed. If
+     * false, placing an emergency call will trigger the disconnect of all ongoing calls before
+     * the emergency call is placed.
+     */
+    public static final String KEY_ALLOW_HOLD_CALL_DURING_EMERGENCY_BOOL =
+            "allow_hold_call_during_emergency_bool";
+
+    /**
      * Flag indicating whether the carrier supports RCS presence indication for
      * User Capability Exchange (UCE).  When presence is supported, the device should use the
      * {@link android.provider.ContactsContract.Data#CARRIER_PRESENCE} bit mask and set the
@@ -2287,6 +2290,77 @@
             "use_only_rsrp_for_lte_signal_bar_bool";
 
     /**
+     * List of 4 customized 5G SS reference signal received power (SSRSRP) thresholds.
+     *
+     * Reference: 3GPP TS 38.215
+     *
+     * 4 threshold integers must be within the boundaries [-140 dB, -44 dB], and the levels are:
+     *     "NONE: [-140, threshold1]"
+     *     "POOR: (threshold1, threshold2]"
+     *     "MODERATE: (threshold2, threshold3]"
+     *     "GOOD:  (threshold3, threshold4]"
+     *     "EXCELLENT:  (threshold4, -44]"
+     *
+     * This key is considered invalid if the format is violated. If the key is invalid or
+     * not configured, a default value set will apply.
+     */
+    public static final String KEY_5G_NR_SSRSRP_THRESHOLDS_INT_ARRAY =
+            "5g_nr_ssrsrp_thresholds_int_array";
+
+    /**
+     * List of 4 customized 5G SS reference signal received quality (SSRSRQ) thresholds.
+     *
+     * Reference: 3GPP TS 38.215
+     *
+     * 4 threshold integers must be within the boundaries [-20 dB, -3 dB], and the levels are:
+     *     "NONE: [-23, threshold1]"
+     *     "POOR: (threshold1, threshold2]"
+     *     "MODERATE: (threshold2, threshold3]"
+     *     "GOOD:  (threshold3, threshold4]"
+     *     "EXCELLENT:  (threshold4, -3]"
+     *
+     * This key is considered invalid if the format is violated. If the key is invalid or
+     * not configured, a default value set will apply.
+     */
+    public static final String KEY_5G_NR_SSRSRQ_THRESHOLDS_INT_ARRAY =
+            "5g_nr_ssrsrq_thresholds_int_array";
+
+    /**
+     * List of 4 customized 5G SS signal-to-noise and interference ratio (SSSINR) thresholds.
+     *
+     * Reference: 3GPP TS 38.215,
+     *            3GPP TS 38.133 10.1.16.1
+     *
+     * 4 threshold integers must be within the boundaries [-23 dB, 40 dB], and the levels are:
+     *     "NONE: [-23, threshold1]"
+     *     "POOR: (threshold1, threshold2]"
+     *     "MODERATE: (threshold2, threshold3]"
+     *     "GOOD:  (threshold3, threshold4]"
+     *     "EXCELLENT:  (threshold4, 40]"
+     *
+     * This key is considered invalid if the format is violated. If the key is invalid or
+     * not configured, a default value set will apply.
+     */
+    public static final String KEY_5G_NR_SSSINR_THRESHOLDS_INT_ARRAY =
+            "5g_nr_sssinr_thresholds_int_array";
+
+    /**
+     * Bit-field integer to determine whether to use SS reference signal received power (SSRSRP),
+     * SS reference signal received quality (SSRSRQ), or/and SS signal-to-noise and interference
+     * ratio (SSSINR) for the number of 5G NR signal bars. If multiple measures are set bit, the
+     * parameter whose value is smallest is used to indicate the signal bar.
+     *
+     *  SSRSRP = 1 << 0,
+     *  SSRSRQ = 1 << 1,
+     *  SSSINR = 1 << 2,
+     *
+     *  Reference: 3GPP TS 38.215,
+     *             3GPP TS 38.133 10.1.16.1
+     */
+    public static final String KEY_PARAMETERS_USE_FOR_5G_NR_SIGNAL_BAR_INT =
+            "parameters_use_for_5g_nr_signal_bar_int";
+
+    /**
      * Key identifying if voice call barring notification is required to be shown to the user.
      * @hide
      */
@@ -2833,6 +2907,16 @@
             "always_show_primary_signal_bar_in_opportunistic_network_boolean";
 
     /**
+     * Upon data switching between subscriptions within a carrier group, if switch depends on
+     * validation result, this value defines customized value of how long we wait for validation
+     * success before we fail and revoke the switch.
+     * Time out is in milliseconds.
+     * @hide
+     */
+    public static final String KEY_DATA_SWITCH_VALIDATION_TIMEOUT_LONG =
+            "data_switch_validation_timeout_long";
+
+    /**
      * GPS configs. See android.hardware.gnss@1.0 IGnssConfiguration.
      * @hide
      */
@@ -3306,7 +3390,6 @@
         sDefaults.putBoolean(KEY_BROADCAST_EMERGENCY_CALL_STATE_CHANGES_BOOL, false);
         sDefaults.putBoolean(KEY_ALWAYS_SHOW_EMERGENCY_ALERT_ONOFF_BOOL, false);
         sDefaults.putBoolean(KEY_DISABLE_SEVERE_WHEN_EXTREME_DISABLED_BOOL, true);
-        sDefaults.putLong(KEY_MESSAGE_EXPIRATION_TIME_LONG, 86400000L);
         sDefaults.putStringArray(KEY_CARRIER_DATA_CALL_RETRY_CONFIG_STRINGS, new String[]{
                 "default:default_randomization=2000,5000,10000,20000,40000,80000:5000,160000:5000,"
                         + "320000:5000,640000:5000,1280000:5000,1800000:5000",
@@ -3426,6 +3509,7 @@
         sDefaults.putString(KEY_MMS_USER_AGENT_STRING, "");
         sDefaults.putBoolean(KEY_ALLOW_NON_EMERGENCY_CALLS_IN_ECM_BOOL, true);
         sDefaults.putInt(KEY_EMERGENCY_SMS_MODE_TIMER_MS_INT, 0);
+        sDefaults.putBoolean(KEY_ALLOW_HOLD_CALL_DURING_EMERGENCY_BOOL, true);
         sDefaults.putBoolean(KEY_USE_RCS_PRESENCE_BOOL, false);
         sDefaults.putBoolean(KEY_USE_RCS_SIP_OPTIONS_BOOL, false);
         sDefaults.putBoolean(KEY_FORCE_IMEI_BOOL, false);
@@ -3613,6 +3697,7 @@
         sDefaults.putIntArray(KEY_DISCONNECT_CAUSE_PLAY_BUSYTONE_INT_ARRAY,
                 new int[] {4 /* BUSY */});
         sDefaults.putBoolean(KEY_PREVENT_CLIR_ACTIVATION_AND_DEACTIVATION_CODE_BOOL, false);
+        sDefaults.putLong(KEY_DATA_SWITCH_VALIDATION_TIMEOUT_LONG, 2000);
     }
 
     /**
diff --git a/telephony/java/com/android/internal/telephony/CbGeoUtils.java b/telephony/java/android/telephony/CbGeoUtils.java
similarity index 94%
rename from telephony/java/com/android/internal/telephony/CbGeoUtils.java
rename to telephony/java/android/telephony/CbGeoUtils.java
index 0b73252..f4ce6e7 100644
--- a/telephony/java/com/android/internal/telephony/CbGeoUtils.java
+++ b/telephony/java/android/telephony/CbGeoUtils.java
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package com.android.internal.telephony;
+package android.telephony;
 
 import android.annotation.NonNull;
-import android.telephony.Rlog;
+import android.annotation.SystemApi;
 import android.text.TextUtils;
 
 import java.util.ArrayList;
@@ -30,8 +30,17 @@
  * The coordinates used by this utils class are latitude and longitude, but some algorithms in this
  * class only use them as coordinates on plane, so the calculation will be inaccurate. So don't use
  * this class for anything other then geo-targeting of cellbroadcast messages.
+ * @hide
  */
+@SystemApi
 public class CbGeoUtils {
+
+    /**
+     * This class is never instantiated
+     * @hide
+     */
+    private CbGeoUtils() {}
+
     /** Geometric interface. */
     public interface Geometry {
         /**
@@ -39,27 +48,36 @@
          * @param p point in latitude, longitude format.
          * @return {@code True} if the given point is inside the geometry.
          */
-        boolean contains(LatLng p);
+        boolean contains(@NonNull LatLng p);
     }
 
     /**
      * Tolerance for determining if the value is 0. If the absolute value of a value is less than
      * this tolerance, it will be treated as 0.
+     * @hide
      */
     public static final double EPS = 1e-7;
 
-    /** The radius of earth. */
+    /**
+     * The radius of earth.
+     * @hide
+     */
     public static final int EARTH_RADIUS_METER = 6371 * 1000;
 
     private static final String TAG = "CbGeoUtils";
 
-    /** The TLV tags of WAC, defined in ATIS-0700041 5.2.3 WAC tag coding. */
+    // The TLV tags of WAC, defined in ATIS-0700041 5.2.3 WAC tag coding.
+    /** @hide */
     public static final int GEO_FENCING_MAXIMUM_WAIT_TIME = 0x01;
+    /** @hide */
     public static final int GEOMETRY_TYPE_POLYGON = 0x02;
+    /** @hide */
     public static final int GEOMETRY_TYPE_CIRCLE = 0x03;
 
-    /** The identifier of geometry in the encoded string. */
+    // The identifier of geometry in the encoded string.
+    /** @hide */
     private static final String CIRCLE_SYMBOL = "circle";
+    /** @hide */
     private static final String POLYGON_SYMBOL = "polygon";
 
     /** Point represent by (latitude, longitude). */
@@ -81,7 +99,8 @@
          * @param p the point use to calculate the subtraction result.
          * @return the result of this point subtract the given point {@code p}.
          */
-        public LatLng subtract(LatLng p) {
+        @NonNull
+        public LatLng subtract(@NonNull LatLng p) {
             return new LatLng(lat - p.lat, lng - p.lng);
         }
 
@@ -90,7 +109,7 @@
          * @param p the point use to calculate the distance.
          * @return the distance in meter.
          */
-        public double distance(LatLng p) {
+        public double distance(@NonNull LatLng p) {
             double dlat = Math.sin(0.5 * Math.toRadians(lat - p.lat));
             double dlng = Math.sin(0.5 * Math.toRadians(lng - p.lng));
             double x = dlat * dlat
@@ -106,6 +125,7 @@
 
     /**
      * The class represents a simple polygon with at least 3 points.
+     * @hide
      */
     public static class Polygon implements Geometry {
         /**
@@ -239,7 +259,10 @@
         }
     }
 
-    /** The class represents a circle. */
+    /**
+     * The class represents a circle.
+     * @hide
+     */
     public static class Circle implements Geometry {
         private final LatLng mCenter;
         private final double mRadiusMeter;
@@ -266,6 +289,7 @@
     /**
      * Parse the geometries from the encoded string {@code str}. The string must follow the
      * geometry encoding specified by {@link android.provider.Telephony.CellBroadcasts#GEOMETRIES}.
+     * @hide
      */
     @NonNull
     public static List<Geometry> parseGeometriesFromString(@NonNull String str) {
@@ -297,6 +321,7 @@
      *
      * @param geometries the list of geometry objects need to be encoded.
      * @return the encoded string.
+     * @hide
      */
     @NonNull
     public static String encodeGeometriesToString(List<Geometry> geometries) {
@@ -313,6 +338,7 @@
      * {@link android.provider.Telephony.CellBroadcasts#GEOMETRIES}.
      * @param geometry the geometry object need to be encoded.
      * @return the encoded string.
+     * @hide
      */
     @NonNull
     private static String encodeGeometryToString(@NonNull Geometry geometry) {
@@ -351,6 +377,7 @@
      *
      * @param str encoded lat/lng string.
      * @Return {@link LatLng} object.
+     * @hide
      */
     @NonNull
     public static LatLng parseLatLngFromString(@NonNull String str) {
@@ -361,6 +388,7 @@
     /**
      * @Return the sign of the given value {@code value} with the specified tolerance. Return 1
      * means the sign is positive, -1 means negative, 0 means the value will be treated as 0.
+     * @hide
      */
     public static int sign(double value) {
         if (value > EPS) return 1;
diff --git a/telephony/java/android/telephony/CellBroadcastService.java b/telephony/java/android/telephony/CellBroadcastService.java
index cb342c6..f841df2 100644
--- a/telephony/java/android/telephony/CellBroadcastService.java
+++ b/telephony/java/android/telephony/CellBroadcastService.java
@@ -22,9 +22,14 @@
 import android.annotation.SystemApi;
 import android.app.Service;
 import android.content.Intent;
+import android.os.Bundle;
 import android.os.IBinder;
+import android.os.RemoteCallback;
 import android.telephony.cdma.CdmaSmsCbProgramData;
 
+import java.util.List;
+import java.util.function.Consumer;
+
 /**
  * A service which exposes the cell broadcast handling module to the system.
  * <p>
@@ -48,6 +53,7 @@
  *   </service>
  * </manifest>
  * }</pre>
+ *
  * @hide
  */
 @SystemApi
@@ -64,21 +70,38 @@
 
     /**
      * Handle a GSM cell broadcast SMS message forwarded from the system.
+     *
      * @param slotIndex the index of the slot which received the message
-     * @param message the SMS PDU
+     * @param message   the SMS PDU
      */
     public abstract void onGsmCellBroadcastSms(int slotIndex, @NonNull byte[] message);
 
     /**
      * Handle a CDMA cell broadcast SMS message forwarded from the system.
-     * @param slotIndex the index of the slot which received the message
-     * @param bearerData the CDMA SMS bearer data
+     *
+     * @param slotIndex       the index of the slot which received the message
+     * @param bearerData      the CDMA SMS bearer data
      * @param serviceCategory the CDMA SCPT service category
      */
     public abstract void onCdmaCellBroadcastSms(int slotIndex, @NonNull byte[] bearerData,
             @CdmaSmsCbProgramData.Category int serviceCategory);
 
     /**
+     * Handle a CDMA cell broadcast SMS message forwarded from the system.
+     *
+     * @param slotIndex          the index of the slot which received the message
+     * @param smsCbProgramData   the SMS CB program data of the message
+     * @param originatingAddress the originating address of the message, as a non-separated dial
+     *                           string
+     * @param callback           a callback to run after each cell broadcast receiver has handled
+     *                           the SCP message. The bundle will contain a non-separated
+     *                           dial string as and an ArrayList of {@link CdmaSmsCbProgramResults}.
+     */
+    public abstract void onCdmaScpMessage(int slotIndex,
+            @NonNull List<CdmaSmsCbProgramData> smsCbProgramData,
+            @NonNull String originatingAddress, @NonNull Consumer<Bundle> callback);
+
+    /**
      * If overriding this method, call through to the super method for any unknown actions.
      * {@inheritDoc}
      */
@@ -92,13 +115,15 @@
     /**
      * A wrapper around ICellBroadcastService that forwards calls to implementations of
      * {@link CellBroadcastService}.
+     *
      * @hide
      */
     public class ICellBroadcastServiceWrapper extends ICellBroadcastService.Stub {
         /**
          * Handle a GSM cell broadcast SMS.
+         *
          * @param slotIndex the index of the slot which received the broadcast
-         * @param message the SMS message PDU
+         * @param message   the SMS message PDU
          */
         @Override
         public void handleGsmCellBroadcastSms(int slotIndex, byte[] message) {
@@ -107,8 +132,9 @@
 
         /**
          * Handle a CDMA cell broadcast SMS.
-         * @param slotIndex the index of the slot which received the broadcast
-         * @param bearerData the CDMA SMS bearer data
+         *
+         * @param slotIndex       the index of the slot which received the broadcast
+         * @param bearerData      the CDMA SMS bearer data
          * @param serviceCategory the CDMA SCPT service category
          */
         @Override
@@ -117,5 +143,25 @@
             CellBroadcastService.this.onCdmaCellBroadcastSms(slotIndex, bearerData,
                     serviceCategory);
         }
+
+        /**
+         * Handle a CDMA Service Category Program message.
+         *
+         * @param slotIndex          the index of the slot which received the message
+         * @param smsCbProgramData   the SMS CB program data of the message
+         * @param originatingAddress the originating address of the message
+         * @param callback           a callback to run after each cell broadcast receiver has
+         *                           handled the SCP message
+         */
+        @Override
+        public void handleCdmaScpMessage(int slotIndex,
+                List<CdmaSmsCbProgramData> smsCbProgramData, String originatingAddress,
+                RemoteCallback callback) {
+            Consumer<Bundle> consumer = bundle -> {
+                callback.sendResult(bundle);
+            };
+            CellBroadcastService.this.onCdmaScpMessage(slotIndex, smsCbProgramData,
+                    originatingAddress, consumer);
+        }
     }
 }
diff --git a/telephony/java/android/telephony/CellIdentityNr.java b/telephony/java/android/telephony/CellIdentityNr.java
index 6df60ba..edc838c 100644
--- a/telephony/java/android/telephony/CellIdentityNr.java
+++ b/telephony/java/android/telephony/CellIdentityNr.java
@@ -62,6 +62,12 @@
     }
 
     /** @hide */
+    public CellIdentityNr(android.hardware.radio.V1_4.CellIdentityNr cid) {
+        this(cid.pci, cid.tac, cid.nrarfcn, cid.mcc, cid.mnc, cid.nci, cid.operatorNames.alphaLong,
+                cid.operatorNames.alphaShort);
+    }
+
+    /** @hide */
     public CellIdentityNr sanitizeLocationInfo() {
         return new CellIdentityNr(CellInfo.UNAVAILABLE, CellInfo.UNAVAILABLE, CellInfo.UNAVAILABLE,
                 mMccStr, mMncStr, CellInfo.UNAVAILABLE, mAlphaLong, mAlphaShort);
diff --git a/telephony/java/android/telephony/CellInfo.java b/telephony/java/android/telephony/CellInfo.java
index 18687d4..ae45307 100644
--- a/telephony/java/android/telephony/CellInfo.java
+++ b/telephony/java/android/telephony/CellInfo.java
@@ -374,6 +374,7 @@
             case Info.hidl_discriminator.lte: return new CellInfoLte(ci, timeStamp);
             case Info.hidl_discriminator.wcdma: return new CellInfoWcdma(ci, timeStamp);
             case Info.hidl_discriminator.tdscdma: return new CellInfoTdscdma(ci, timeStamp);
+            case Info.hidl_discriminator.nr: return new CellInfoNr(ci, timeStamp);
             default: return null;
         }
     }
diff --git a/telephony/java/android/telephony/CellInfoNr.java b/telephony/java/android/telephony/CellInfoNr.java
index cea8323..8b41b8b 100644
--- a/telephony/java/android/telephony/CellInfoNr.java
+++ b/telephony/java/android/telephony/CellInfoNr.java
@@ -45,6 +45,14 @@
         mCellSignalStrength = other.mCellSignalStrength;
     }
 
+    /** @hide */
+    public CellInfoNr(android.hardware.radio.V1_4.CellInfo ci, long timeStamp) {
+        super(ci, timeStamp);
+        final android.hardware.radio.V1_4.CellInfoNr cil = ci.info.nr();
+        mCellIdentity = new CellIdentityNr(cil.cellidentity);
+        mCellSignalStrength = new CellSignalStrengthNr(cil.signalStrength);
+    }
+
     /**
      * @return a {@link CellIdentityNr} instance.
      */
diff --git a/telephony/java/android/telephony/DataFailCause.java b/telephony/java/android/telephony/DataFailCause.java
index ca264f7..246bec7 100644
--- a/telephony/java/android/telephony/DataFailCause.java
+++ b/telephony/java/android/telephony/DataFailCause.java
@@ -21,6 +21,7 @@
 import android.content.Context;
 import android.os.PersistableBundle;
 
+import android.telephony.Annotation.DataFailureCause;
 import com.android.internal.util.ArrayUtils;
 
 import java.lang.annotation.Retention;
@@ -968,355 +969,6 @@
      */
     public static final int HANDOVER_FAILED = 0x10006;
 
-    /** @hide */
-    @IntDef(value = {
-            NONE,
-            OPERATOR_BARRED,
-            NAS_SIGNALLING,
-            LLC_SNDCP,
-            INSUFFICIENT_RESOURCES,
-            MISSING_UNKNOWN_APN,
-            UNKNOWN_PDP_ADDRESS_TYPE,
-            USER_AUTHENTICATION,
-            ACTIVATION_REJECT_GGSN,
-            ACTIVATION_REJECT_UNSPECIFIED,
-            SERVICE_OPTION_NOT_SUPPORTED,
-            SERVICE_OPTION_NOT_SUBSCRIBED,
-            SERVICE_OPTION_OUT_OF_ORDER,
-            NSAPI_IN_USE,
-            REGULAR_DEACTIVATION,
-            QOS_NOT_ACCEPTED,
-            NETWORK_FAILURE,
-            UMTS_REACTIVATION_REQ,
-            FEATURE_NOT_SUPP,
-            TFT_SEMANTIC_ERROR,
-            TFT_SYTAX_ERROR,
-            UNKNOWN_PDP_CONTEXT,
-            FILTER_SEMANTIC_ERROR,
-            FILTER_SYTAX_ERROR,
-            PDP_WITHOUT_ACTIVE_TFT,
-            ACTIVATION_REJECTED_BCM_VIOLATION,
-            ONLY_IPV4_ALLOWED,
-            ONLY_IPV6_ALLOWED,
-            ONLY_SINGLE_BEARER_ALLOWED,
-            ESM_INFO_NOT_RECEIVED,
-            PDN_CONN_DOES_NOT_EXIST,
-            MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED,
-            COLLISION_WITH_NETWORK_INITIATED_REQUEST,
-            ONLY_IPV4V6_ALLOWED,
-            ONLY_NON_IP_ALLOWED,
-            UNSUPPORTED_QCI_VALUE,
-            BEARER_HANDLING_NOT_SUPPORTED,
-            ACTIVE_PDP_CONTEXT_MAX_NUMBER_REACHED,
-            UNSUPPORTED_APN_IN_CURRENT_PLMN,
-            INVALID_TRANSACTION_ID,
-            MESSAGE_INCORRECT_SEMANTIC,
-            INVALID_MANDATORY_INFO,
-            MESSAGE_TYPE_UNSUPPORTED,
-            MSG_TYPE_NONCOMPATIBLE_STATE,
-            UNKNOWN_INFO_ELEMENT,
-            CONDITIONAL_IE_ERROR,
-            MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE,
-            PROTOCOL_ERRORS,
-            APN_TYPE_CONFLICT,
-            INVALID_PCSCF_ADDR,
-            INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN,
-            EMM_ACCESS_BARRED,
-            EMERGENCY_IFACE_ONLY,
-            IFACE_MISMATCH,
-            COMPANION_IFACE_IN_USE,
-            IP_ADDRESS_MISMATCH,
-            IFACE_AND_POL_FAMILY_MISMATCH,
-            EMM_ACCESS_BARRED_INFINITE_RETRY,
-            AUTH_FAILURE_ON_EMERGENCY_CALL,
-            INVALID_DNS_ADDR,
-            INVALID_PCSCF_OR_DNS_ADDRESS,
-            CALL_PREEMPT_BY_EMERGENCY_APN,
-            UE_INITIATED_DETACH_OR_DISCONNECT,
-            MIP_FA_REASON_UNSPECIFIED,
-            MIP_FA_ADMIN_PROHIBITED,
-            MIP_FA_INSUFFICIENT_RESOURCES,
-            MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE,
-            MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE,
-            MIP_FA_REQUESTED_LIFETIME_TOO_LONG,
-            MIP_FA_MALFORMED_REQUEST,
-            MIP_FA_MALFORMED_REPLY,
-            MIP_FA_ENCAPSULATION_UNAVAILABLE,
-            MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE,
-            MIP_FA_REVERSE_TUNNEL_UNAVAILABLE,
-            MIP_FA_REVERSE_TUNNEL_IS_MANDATORY,
-            MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED,
-            MIP_FA_MISSING_NAI,
-            MIP_FA_MISSING_HOME_AGENT,
-            MIP_FA_MISSING_HOME_ADDRESS,
-            MIP_FA_UNKNOWN_CHALLENGE,
-            MIP_FA_MISSING_CHALLENGE,
-            MIP_FA_STALE_CHALLENGE,
-            MIP_HA_REASON_UNSPECIFIED,
-            MIP_HA_ADMIN_PROHIBITED,
-            MIP_HA_INSUFFICIENT_RESOURCES,
-            MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE,
-            MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE,
-            MIP_HA_REGISTRATION_ID_MISMATCH,
-            MIP_HA_MALFORMED_REQUEST,
-            MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS,
-            MIP_HA_REVERSE_TUNNEL_UNAVAILABLE,
-            MIP_HA_REVERSE_TUNNEL_IS_MANDATORY,
-            MIP_HA_ENCAPSULATION_UNAVAILABLE,
-            CLOSE_IN_PROGRESS,
-            NETWORK_INITIATED_TERMINATION,
-            MODEM_APP_PREEMPTED,
-            PDN_IPV4_CALL_DISALLOWED,
-            PDN_IPV4_CALL_THROTTLED,
-            PDN_IPV6_CALL_DISALLOWED,
-            PDN_IPV6_CALL_THROTTLED,
-            MODEM_RESTART,
-            PDP_PPP_NOT_SUPPORTED,
-            UNPREFERRED_RAT,
-            PHYSICAL_LINK_CLOSE_IN_PROGRESS,
-            APN_PENDING_HANDOVER,
-            PROFILE_BEARER_INCOMPATIBLE,
-            SIM_CARD_CHANGED,
-            LOW_POWER_MODE_OR_POWERING_DOWN,
-            APN_DISABLED,
-            MAX_PPP_INACTIVITY_TIMER_EXPIRED,
-            IPV6_ADDRESS_TRANSFER_FAILED,
-            TRAT_SWAP_FAILED,
-            EHRPD_TO_HRPD_FALLBACK,
-            MIP_CONFIG_FAILURE,
-            PDN_INACTIVITY_TIMER_EXPIRED,
-            MAX_IPV4_CONNECTIONS,
-            MAX_IPV6_CONNECTIONS,
-            APN_MISMATCH,
-            IP_VERSION_MISMATCH,
-            DUN_CALL_DISALLOWED,
-            INTERNAL_EPC_NONEPC_TRANSITION,
-            INTERFACE_IN_USE,
-            APN_DISALLOWED_ON_ROAMING,
-            APN_PARAMETERS_CHANGED,
-            NULL_APN_DISALLOWED,
-            THERMAL_MITIGATION,
-            DATA_SETTINGS_DISABLED,
-            DATA_ROAMING_SETTINGS_DISABLED,
-            DDS_SWITCHED,
-            FORBIDDEN_APN_NAME,
-            DDS_SWITCH_IN_PROGRESS,
-            CALL_DISALLOWED_IN_ROAMING,
-            NON_IP_NOT_SUPPORTED,
-            PDN_NON_IP_CALL_THROTTLED,
-            PDN_NON_IP_CALL_DISALLOWED,
-            CDMA_LOCK,
-            CDMA_INTERCEPT,
-            CDMA_REORDER,
-            CDMA_RELEASE_DUE_TO_SO_REJECTION,
-            CDMA_INCOMING_CALL,
-            CDMA_ALERT_STOP,
-            CHANNEL_ACQUISITION_FAILURE,
-            MAX_ACCESS_PROBE,
-            CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION,
-            NO_RESPONSE_FROM_BASE_STATION,
-            REJECTED_BY_BASE_STATION,
-            CONCURRENT_SERVICES_INCOMPATIBLE,
-            NO_CDMA_SERVICE,
-            RUIM_NOT_PRESENT,
-            CDMA_RETRY_ORDER,
-            ACCESS_BLOCK,
-            ACCESS_BLOCK_ALL,
-            IS707B_MAX_ACCESS_PROBES,
-            THERMAL_EMERGENCY,
-            CONCURRENT_SERVICES_NOT_ALLOWED,
-            INCOMING_CALL_REJECTED,
-            NO_SERVICE_ON_GATEWAY,
-            NO_GPRS_CONTEXT,
-            ILLEGAL_MS,
-            ILLEGAL_ME,
-            GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED,
-            GPRS_SERVICES_NOT_ALLOWED,
-            MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK,
-            IMPLICITLY_DETACHED,
-            PLMN_NOT_ALLOWED,
-            LOCATION_AREA_NOT_ALLOWED,
-            GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN,
-            PDP_DUPLICATE,
-            UE_RAT_CHANGE,
-            CONGESTION,
-            NO_PDP_CONTEXT_ACTIVATED,
-            ACCESS_CLASS_DSAC_REJECTION,
-            PDP_ACTIVATE_MAX_RETRY_FAILED,
-            RADIO_ACCESS_BEARER_FAILURE,
-            ESM_UNKNOWN_EPS_BEARER_CONTEXT,
-            DRB_RELEASED_BY_RRC,
-            CONNECTION_RELEASED,
-            EMM_DETACHED,
-            EMM_ATTACH_FAILED,
-            EMM_ATTACH_STARTED,
-            LTE_NAS_SERVICE_REQUEST_FAILED,
-            DUPLICATE_BEARER_ID,
-            ESM_COLLISION_SCENARIOS,
-            ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK,
-            ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER,
-            ESM_BAD_OTA_MESSAGE,
-            ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL,
-            ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT,
-            DS_EXPLICIT_DEACTIVATION,
-            ESM_LOCAL_CAUSE_NONE,
-            LTE_THROTTLING_NOT_REQUIRED,
-            ACCESS_CONTROL_LIST_CHECK_FAILURE,
-            SERVICE_NOT_ALLOWED_ON_PLMN,
-            EMM_T3417_EXPIRED,
-            EMM_T3417_EXT_EXPIRED,
-            RRC_UPLINK_DATA_TRANSMISSION_FAILURE,
-            RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER,
-            RRC_UPLINK_CONNECTION_RELEASE,
-            RRC_UPLINK_RADIO_LINK_FAILURE,
-            RRC_UPLINK_ERROR_REQUEST_FROM_NAS,
-            RRC_CONNECTION_ACCESS_STRATUM_FAILURE,
-            RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS,
-            RRC_CONNECTION_ACCESS_BARRED,
-            RRC_CONNECTION_CELL_RESELECTION,
-            RRC_CONNECTION_CONFIG_FAILURE,
-            RRC_CONNECTION_TIMER_EXPIRED,
-            RRC_CONNECTION_LINK_FAILURE,
-            RRC_CONNECTION_CELL_NOT_CAMPED,
-            RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE,
-            RRC_CONNECTION_REJECT_BY_NETWORK,
-            RRC_CONNECTION_NORMAL_RELEASE,
-            RRC_CONNECTION_RADIO_LINK_FAILURE,
-            RRC_CONNECTION_REESTABLISHMENT_FAILURE,
-            RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER,
-            RRC_CONNECTION_ABORT_REQUEST,
-            RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR,
-            NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH,
-            NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH,
-            ESM_PROCEDURE_TIME_OUT,
-            INVALID_CONNECTION_ID,
-            MAXIMIUM_NSAPIS_EXCEEDED,
-            INVALID_PRIMARY_NSAPI,
-            CANNOT_ENCODE_OTA_MESSAGE,
-            RADIO_ACCESS_BEARER_SETUP_FAILURE,
-            PDP_ESTABLISH_TIMEOUT_EXPIRED,
-            PDP_MODIFY_TIMEOUT_EXPIRED,
-            PDP_INACTIVE_TIMEOUT_EXPIRED,
-            PDP_LOWERLAYER_ERROR,
-            PDP_MODIFY_COLLISION,
-            MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED,
-            NAS_REQUEST_REJECTED_BY_NETWORK,
-            RRC_CONNECTION_INVALID_REQUEST,
-            RRC_CONNECTION_TRACKING_AREA_ID_CHANGED,
-            RRC_CONNECTION_RF_UNAVAILABLE,
-            RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE,
-            RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE,
-            RRC_CONNECTION_ABORTED_AFTER_HANDOVER,
-            RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE,
-            RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE,
-            IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER,
-            IMEI_NOT_ACCEPTED,
-            EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED,
-            EPS_SERVICES_NOT_ALLOWED_IN_PLMN,
-            MSC_TEMPORARILY_NOT_REACHABLE,
-            CS_DOMAIN_NOT_AVAILABLE,
-            ESM_FAILURE,
-            MAC_FAILURE,
-            SYNCHRONIZATION_FAILURE,
-            UE_SECURITY_CAPABILITIES_MISMATCH,
-            SECURITY_MODE_REJECTED,
-            UNACCEPTABLE_NON_EPS_AUTHENTICATION,
-            CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED,
-            NO_EPS_BEARER_CONTEXT_ACTIVATED,
-            INVALID_EMM_STATE,
-            NAS_LAYER_FAILURE,
-            MULTIPLE_PDP_CALL_NOT_ALLOWED,
-            EMBMS_NOT_ENABLED,
-            IRAT_HANDOVER_FAILED,
-            EMBMS_REGULAR_DEACTIVATION,
-            TEST_LOOPBACK_REGULAR_DEACTIVATION,
-            LOWER_LAYER_REGISTRATION_FAILURE,
-            DATA_PLAN_EXPIRED,
-            UMTS_HANDOVER_TO_IWLAN,
-            EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY,
-            EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE,
-            EVDO_HDR_CHANGED,
-            EVDO_HDR_EXITED,
-            EVDO_HDR_NO_SESSION,
-            EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL,
-            EVDO_HDR_CONNECTION_SETUP_TIMEOUT,
-            FAILED_TO_ACQUIRE_COLOCATED_HDR,
-            OTASP_COMMIT_IN_PROGRESS,
-            NO_HYBRID_HDR_SERVICE,
-            HDR_NO_LOCK_GRANTED,
-            DBM_OR_SMS_IN_PROGRESS,
-            HDR_FADE,
-            HDR_ACCESS_FAILURE,
-            UNSUPPORTED_1X_PREV,
-            LOCAL_END,
-            NO_SERVICE,
-            FADE,
-            NORMAL_RELEASE,
-            ACCESS_ATTEMPT_ALREADY_IN_PROGRESS,
-            REDIRECTION_OR_HANDOFF_IN_PROGRESS,
-            EMERGENCY_MODE,
-            PHONE_IN_USE,
-            INVALID_MODE,
-            INVALID_SIM_STATE,
-            NO_COLLOCATED_HDR,
-            UE_IS_ENTERING_POWERSAVE_MODE,
-            DUAL_SWITCH,
-            PPP_TIMEOUT,
-            PPP_AUTH_FAILURE,
-            PPP_OPTION_MISMATCH,
-            PPP_PAP_FAILURE,
-            PPP_CHAP_FAILURE,
-            PPP_CLOSE_IN_PROGRESS,
-            LIMITED_TO_IPV4,
-            LIMITED_TO_IPV6,
-            VSNCP_TIMEOUT,
-            VSNCP_GEN_ERROR,
-            VSNCP_APN_UNATHORIZED,
-            VSNCP_PDN_LIMIT_EXCEEDED,
-            VSNCP_NO_PDN_GATEWAY_ADDRESS,
-            VSNCP_PDN_GATEWAY_UNREACHABLE,
-            VSNCP_PDN_GATEWAY_REJECT,
-            VSNCP_INSUFFICIENT_PARAMETERS,
-            VSNCP_RESOURCE_UNAVAILABLE,
-            VSNCP_ADMINISTRATIVELY_PROHIBITED,
-            VSNCP_PDN_ID_IN_USE,
-            VSNCP_SUBSCRIBER_LIMITATION,
-            VSNCP_PDN_EXISTS_FOR_THIS_APN,
-            VSNCP_RECONNECT_NOT_ALLOWED,
-            IPV6_PREFIX_UNAVAILABLE,
-            HANDOFF_PREFERENCE_CHANGED,
-            OEM_DCFAILCAUSE_1,
-            OEM_DCFAILCAUSE_2,
-            OEM_DCFAILCAUSE_3,
-            OEM_DCFAILCAUSE_4,
-            OEM_DCFAILCAUSE_5,
-            OEM_DCFAILCAUSE_6,
-            OEM_DCFAILCAUSE_7,
-            OEM_DCFAILCAUSE_8,
-            OEM_DCFAILCAUSE_9,
-            OEM_DCFAILCAUSE_10,
-            OEM_DCFAILCAUSE_11,
-            OEM_DCFAILCAUSE_12,
-            OEM_DCFAILCAUSE_13,
-            OEM_DCFAILCAUSE_14,
-            OEM_DCFAILCAUSE_15,
-            REGISTRATION_FAIL,
-            GPRS_REGISTRATION_FAIL,
-            SIGNAL_LOST,
-            PREF_RADIO_TECH_CHANGED,
-            RADIO_POWER_OFF,
-            TETHERED_CALL_ACTIVE,
-            ERROR_UNSPECIFIED,
-            UNKNOWN,
-            RADIO_NOT_AVAILABLE,
-            UNACCEPTABLE_NETWORK_PARAMETER,
-            CONNECTION_TO_DATACONNECTIONAC_BROKEN,
-            LOST_CONNECTION,
-            RESET_BY_FRAMEWORK
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface FailCause{}
-
     private static final Map<Integer, String> sFailCauseMap;
     static {
         sFailCauseMap = new HashMap<>();
@@ -1737,7 +1389,8 @@
      *
      * @hide
      */
-    public static boolean isRadioRestartFailure(@NonNull Context context, @FailCause int cause,
+    public static boolean isRadioRestartFailure(@NonNull Context context,
+                                                @DataFailureCause int cause,
                                                 int subId) {
         CarrierConfigManager configManager = (CarrierConfigManager)
                 context.getSystemService(Context.CARRIER_CONFIG_SERVICE);
@@ -1765,7 +1418,8 @@
     }
 
     /** @hide */
-    public static boolean isPermanentFailure(@NonNull Context context, @FailCause int failCause,
+    public static boolean isPermanentFailure(@NonNull Context context,
+                                             @DataFailureCause int failCause,
                                              int subId) {
         synchronized (sPermanentFailureCache) {
 
@@ -1825,7 +1479,7 @@
     }
 
     /** @hide */
-    public static boolean isEventLoggable(@FailCause int dataFailCause) {
+    public static boolean isEventLoggable(@DataFailureCause int dataFailCause) {
         return (dataFailCause == OPERATOR_BARRED) || (dataFailCause == INSUFFICIENT_RESOURCES)
                 || (dataFailCause == UNKNOWN_PDP_ADDRESS_TYPE)
                 || (dataFailCause == USER_AUTHENTICATION)
@@ -1845,13 +1499,13 @@
     }
 
     /** @hide */
-    public static String toString(@FailCause int dataFailCause) {
+    public static String toString(@DataFailureCause int dataFailCause) {
         int cause = getFailCause(dataFailCause);
         return (cause == UNKNOWN) ? "UNKNOWN(" + dataFailCause + ")" : sFailCauseMap.get(cause);
     }
 
     /** @hide */
-    public static int getFailCause(@FailCause int failCause) {
+    public static int getFailCause(@DataFailureCause int failCause) {
         if (sFailCauseMap.containsKey(failCause)) {
             return failCause;
         } else {
diff --git a/telephony/java/android/telephony/DataSpecificRegistrationInfo.java b/telephony/java/android/telephony/DataSpecificRegistrationInfo.java
index 407ced7..270eafe 100644
--- a/telephony/java/android/telephony/DataSpecificRegistrationInfo.java
+++ b/telephony/java/android/telephony/DataSpecificRegistrationInfo.java
@@ -203,9 +203,12 @@
     }
 
     /**
+     * Get whether network has configured carrier aggregation or not.
+     *
      * @return {@code true} if using carrier aggregation.
      * @hide
      */
+    @SystemApi
     public boolean isUsingCarrierAggregation() {
         return mIsUsingCarrierAggregation;
     }
diff --git a/telephony/java/android/telephony/DisconnectCause.java b/telephony/java/android/telephony/DisconnectCause.java
index aa7e21a..04ec4b6 100644
--- a/telephony/java/android/telephony/DisconnectCause.java
+++ b/telephony/java/android/telephony/DisconnectCause.java
@@ -16,6 +16,7 @@
 
 package android.telephony;
 
+import android.annotation.NonNull;
 import android.annotation.SystemApi;
 import android.annotation.UnsupportedAppUsage;
 
@@ -353,6 +354,12 @@
      */
     public static final int WFC_SERVICE_NOT_AVAILABLE_IN_THIS_LOCATION = 79;
 
+    /**
+     * Indicates that an emergency call was placed, which caused the existing connection to be
+     * hung up.
+     */
+    public static final int OUTGOING_EMERGENCY_CALL_PLACED = 80;
+
     //*********************************************************************************************
     // When adding a disconnect type:
     // 1) Update toString() with the newly added disconnect type.
@@ -369,7 +376,7 @@
      * @hide
      */
     @UnsupportedAppUsage
-    public static String toString(int cause) {
+    public static @NonNull String toString(int cause) {
         switch (cause) {
         case NOT_DISCONNECTED:
             return "NOT_DISCONNECTED";
@@ -527,6 +534,8 @@
             return "EMERGENCY_CALL_OVER_WFC_NOT_AVAILABLE";
         case WFC_SERVICE_NOT_AVAILABLE_IN_THIS_LOCATION:
             return "WFC_SERVICE_NOT_AVAILABLE_IN_THIS_LOCATION";
+        case OUTGOING_EMERGENCY_CALL_PLACED:
+            return "OUTGOING_EMERGENCY_CALL_PLACED";
         default:
             return "INVALID: " + cause;
         }
diff --git a/telephony/java/android/telephony/ICellBroadcastService.aidl b/telephony/java/android/telephony/ICellBroadcastService.aidl
index bcd6cc5..11263d9 100644
--- a/telephony/java/android/telephony/ICellBroadcastService.aidl
+++ b/telephony/java/android/telephony/ICellBroadcastService.aidl
@@ -16,6 +16,9 @@
 
 package android.telephony;
 
+import android.os.RemoteCallback;
+import android.telephony.cdma.CdmaSmsCbProgramData;
+
 /**
  * Service bound to by the system to allow custom handling of cell broadcast messages.
  * <p>
@@ -29,4 +32,8 @@
 
     /** @see android.telephony.CellBroadcastService#onCdmaCellBroadcastSms */
     oneway void handleCdmaCellBroadcastSms(int slotId, in byte[] bearerData, int serviceCategory);
+
+    /** @see android.telephony.CellBroadcastService#onCdmaScpMessage */
+    oneway void handleCdmaScpMessage(int slotId, in List<CdmaSmsCbProgramData> programData,
+            String originatingAddress, in RemoteCallback callback);
 }
diff --git a/telephony/java/android/telephony/ICellInfoCallback.aidl b/telephony/java/android/telephony/ICellInfoCallback.aidl
index ee3c1b1..60732a3 100644
--- a/telephony/java/android/telephony/ICellInfoCallback.aidl
+++ b/telephony/java/android/telephony/ICellInfoCallback.aidl
@@ -16,7 +16,6 @@
 
 package android.telephony;
 
-import android.os.ParcelableException;
 import android.telephony.CellInfo;
 
 import java.util.List;
@@ -28,5 +27,5 @@
 oneway interface ICellInfoCallback
 {
     void onCellInfo(in List<CellInfo> state);
-    void onError(in int errorCode, in ParcelableException detail);
+    void onError(in int errorCode, in String exceptionName, in String message);
 }
diff --git a/telephony/java/android/telephony/ImsManager.java b/telephony/java/android/telephony/ImsManager.java
new file mode 100644
index 0000000..02d8be3
--- /dev/null
+++ b/telephony/java/android/telephony/ImsManager.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package android.telephony.ims;
+
+import android.annotation.SystemService;
+import android.content.Context;
+import android.telephony.SubscriptionManager;
+
+/**
+ * Provides access to information about Telephony IMS services on the device.
+ *
+ * @hide
+ */
+@SystemService(Context.TELEPHONY_IMS_SERVICE)
+public class ImsManager {
+
+    private Context mContext;
+
+    public ImsManager(Context context) {
+        mContext = context;
+    }
+
+    /**
+     * Create an instance of ImsRcsManager for the subscription id specified.
+     *
+     * @param subscriptionId The ID of the subscription that this ImsRcsManager will use.
+     * @throws IllegalArgumentException if the subscription is invalid.
+     * @return a ImsRcsManager instance with the specific subscription ID.
+     */
+    public ImsRcsManager getImsRcsManager(int subscriptionId) {
+        if (!SubscriptionManager.isValidSubscriptionId(subscriptionId)) {
+            throw new IllegalArgumentException("Invalid subscription ID: " + subscriptionId);
+        }
+
+        return new ImsRcsManager(mContext, subscriptionId);
+    }
+
+    /**
+     * Create an instance of ImsMmTelManager for the subscription id specified.
+     *
+     * @param subscriptionId The ID of the subscription that this ImsMmTelManager will use.
+     * @throws IllegalArgumentException if the subscription is invalid.
+     * @return a ImsMmTelManager instance with the specific subscription ID.
+     */
+    public ImsMmTelManager getImsMmTelManager(int subscriptionId) {
+        if (!SubscriptionManager.isValidSubscriptionId(subscriptionId)) {
+            throw new IllegalArgumentException("Invalid subscription ID: " + subscriptionId);
+        }
+
+        return new ImsMmTelManager(subscriptionId);
+    }
+}
diff --git a/telephony/java/android/telephony/ImsiEncryptionInfo.java b/telephony/java/android/telephony/ImsiEncryptionInfo.java
index ef2f121..75a79d6 100644
--- a/telephony/java/android/telephony/ImsiEncryptionInfo.java
+++ b/telephony/java/android/telephony/ImsiEncryptionInfo.java
@@ -15,9 +15,11 @@
  */
 package android.telephony;
 
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.SystemApi;
 import android.os.Parcel;
 import android.os.Parcelable;
-import java.util.Date;
 import android.util.Log;
 
 import java.security.KeyFactory;
@@ -25,18 +27,18 @@
 import java.security.PublicKey;
 import java.security.spec.InvalidKeySpecException;
 import java.security.spec.X509EncodedKeySpec;
+import java.util.Date;
 
 /**
  * Class to represent information sent by the carrier, which will be used to encrypt
  * the IMSI + IMPI. The ecryption is being done by WLAN, and the modem.
- *
  * @hide
  */
+@SystemApi
 public final class ImsiEncryptionInfo implements Parcelable {
 
     private static final String LOG_TAG = "ImsiEncryptionInfo";
 
-
     private final String mcc;
     private final String mnc;
     private final PublicKey publicKey;
@@ -45,11 +47,13 @@
     //Date-Time in UTC when the key will expire.
     private final Date expirationTime;
 
+    /** @hide */
     public ImsiEncryptionInfo(String mcc, String mnc, int keyType, String keyIdentifier,
                               byte[] key, Date expirationTime) {
         this(mcc, mnc, keyType, keyIdentifier, makeKeyObject(key), expirationTime);
     }
 
+    /** @hide */
     public ImsiEncryptionInfo(String mcc, String mnc, int keyType, String keyIdentifier,
                               PublicKey publicKey, Date expirationTime) {
         // todo need to validate that ImsiEncryptionInfo is being created with the correct params.
@@ -63,6 +67,7 @@
         this.expirationTime = expirationTime;
     }
 
+    /** @hide */
     public ImsiEncryptionInfo(Parcel in) {
         int length = in.readInt();
         byte b[] = new byte[length];
@@ -75,26 +80,40 @@
         expirationTime = new Date(in.readLong());
     }
 
+    /** @hide */
     public String getMnc() {
         return this.mnc;
     }
 
+    /** @hide */
     public String getMcc() {
         return this.mcc;
     }
 
+    /**
+     * Returns key identifier, a string that helps the authentication server to locate the
+     * private key to decrypt the permanent identity, or {@code null} when uavailable.
+     */
+    @Nullable
     public String getKeyIdentifier() {
         return this.keyIdentifier;
     }
 
+    /** @hide */
     public int getKeyType() {
         return this.keyType;
     }
 
+    /**
+     * Returns the carrier public key that is used for the IMSI encryption,
+     * or {@code null} when uavailable.
+     */
+    @Nullable
     public PublicKey getPublicKey() {
         return this.publicKey;
     }
 
+    /** @hide */
     public Date getExpirationTime() {
         return this.expirationTime;
     }
@@ -115,7 +134,7 @@
         return 0;
     }
 
-    public static final @android.annotation.NonNull Parcelable.Creator<ImsiEncryptionInfo> CREATOR =
+    public static final @NonNull Parcelable.Creator<ImsiEncryptionInfo> CREATOR =
             new Parcelable.Creator<ImsiEncryptionInfo>() {
                 @Override
                 public ImsiEncryptionInfo createFromParcel(Parcel in) {
@@ -129,7 +148,7 @@
             };
 
     @Override
-    public void writeToParcel(Parcel dest, int flags) {
+    public void writeToParcel(@NonNull Parcel dest, int flags) {
         byte[] b = publicKey.getEncoded();
         dest.writeInt(b.length);
         dest.writeByteArray(b);
diff --git a/telephony/java/android/telephony/NetworkRegistrationInfo.java b/telephony/java/android/telephony/NetworkRegistrationInfo.java
index a76b8da..bbf746fc 100644
--- a/telephony/java/android/telephony/NetworkRegistrationInfo.java
+++ b/telephony/java/android/telephony/NetworkRegistrationInfo.java
@@ -24,8 +24,8 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.telephony.AccessNetworkConstants.TransportType;
-import android.telephony.TelephonyManager.NetworkType;
 
+import android.telephony.Annotation.NetworkType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
@@ -323,9 +323,12 @@
     public @Domain int getDomain() { return mDomain; }
 
     /**
+     * Get the 5G NR connection state.
+     *
      * @return the 5G NR connection state.
      * @hide
      */
+    @SystemApi
     public @NRState int getNrState() {
         return mNrState;
     }
diff --git a/telephony/java/android/telephony/PhoneNumberUtils.java b/telephony/java/android/telephony/PhoneNumberUtils.java
index af3ba5e..4a1bc1f 100644
--- a/telephony/java/android/telephony/PhoneNumberUtils.java
+++ b/telephony/java/android/telephony/PhoneNumberUtils.java
@@ -16,12 +16,12 @@
 
 package android.telephony;
 
-import com.android.i18n.phonenumbers.NumberParseException;
-import com.android.i18n.phonenumbers.PhoneNumberUtil;
-import com.android.i18n.phonenumbers.PhoneNumberUtil.PhoneNumberFormat;
-import com.android.i18n.phonenumbers.Phonenumber.PhoneNumber;
+import static com.android.internal.telephony.TelephonyProperties.PROPERTY_OPERATOR_IDP_STRING;
 
 import android.annotation.IntDef;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.SystemApi;
 import android.annotation.TestApi;
 import android.annotation.UnsupportedAppUsage;
 import android.content.Context;
@@ -42,7 +42,10 @@
 import android.text.style.TtsSpan;
 import android.util.SparseIntArray;
 
-import static com.android.internal.telephony.TelephonyProperties.PROPERTY_OPERATOR_IDP_STRING;
+import com.android.i18n.phonenumbers.NumberParseException;
+import com.android.i18n.phonenumbers.PhoneNumberUtil;
+import com.android.i18n.phonenumbers.PhoneNumberUtil.PhoneNumberFormat;
+import com.android.i18n.phonenumbers.Phonenumber.PhoneNumber;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -2247,8 +2250,10 @@
      * to read the VM number.
      * @hide
      */
-    @UnsupportedAppUsage
-    public static boolean isVoiceMailNumber(Context context, int subId, String number) {
+    @SystemApi
+    @TestApi
+    public static boolean isVoiceMailNumber(@NonNull Context context, int subId,
+            @Nullable String number) {
         String vmNumber, mdn;
         try {
             final TelephonyManager tm;
@@ -2734,8 +2739,9 @@
      * @param number
      * @return true if number contains @
      */
-    @UnsupportedAppUsage
-    public static boolean isUriNumber(String number) {
+    @SystemApi
+    @TestApi
+    public static boolean isUriNumber(@Nullable String number) {
         // Note we allow either "@" or "%40" to indicate a URI, in case
         // the passed-in string is URI-escaped.  (Neither "@" nor "%40"
         // will ever be found in a legal PSTN number.)
@@ -2752,8 +2758,9 @@
      *
      * @hide
      */
-    @UnsupportedAppUsage
-    public static String getUsernameFromUriNumber(String number) {
+    @SystemApi
+    @TestApi
+    public static @NonNull String getUsernameFromUriNumber(@NonNull String number) {
         // The delimiter between username and domain name can be
         // either "@" or "%40" (the URI-escaped equivalent.)
         int delimiterIndex = number.indexOf('@');
diff --git a/telephony/java/android/telephony/PhysicalChannelConfig.java b/telephony/java/android/telephony/PhysicalChannelConfig.java
index e1763ab..4273f5a 100644
--- a/telephony/java/android/telephony/PhysicalChannelConfig.java
+++ b/telephony/java/android/telephony/PhysicalChannelConfig.java
@@ -19,8 +19,8 @@
 import android.annotation.IntDef;
 import android.os.Parcel;
 import android.os.Parcelable;
-import android.telephony.TelephonyManager.NetworkType;
 
+import android.telephony.Annotation.NetworkType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.Arrays;
diff --git a/telephony/java/android/telephony/PreciseCallState.java b/telephony/java/android/telephony/PreciseCallState.java
index 701a375..9f75332 100644
--- a/telephony/java/android/telephony/PreciseCallState.java
+++ b/telephony/java/android/telephony/PreciseCallState.java
@@ -23,6 +23,7 @@
 import android.annotation.UnsupportedAppUsage;
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.telephony.Annotation.PreciseCallStates;
 import android.telephony.DisconnectCause;
 import android.telephony.PreciseDisconnectCause;
 
@@ -41,29 +42,13 @@
  *   <li>Precise background call state.
  * </ul>
  *
- * @see android.telephony.TelephonyManager.CallState which contains generic call states.
+ * @see android.telephony.Annotation.CallState which contains generic call states.
  *
  * @hide
  */
 @SystemApi
 public final class PreciseCallState implements Parcelable {
 
-    /** @hide */
-    @Retention(RetentionPolicy.SOURCE)
-    @IntDef(prefix = {"PRECISE_CALL_STATE_"},
-            value = {
-                    PRECISE_CALL_STATE_NOT_VALID,
-                    PRECISE_CALL_STATE_IDLE,
-                    PRECISE_CALL_STATE_ACTIVE,
-                    PRECISE_CALL_STATE_HOLDING,
-                    PRECISE_CALL_STATE_DIALING,
-                    PRECISE_CALL_STATE_ALERTING,
-                    PRECISE_CALL_STATE_INCOMING,
-                    PRECISE_CALL_STATE_WAITING,
-                    PRECISE_CALL_STATE_DISCONNECTED,
-                    PRECISE_CALL_STATE_DISCONNECTING})
-    public @interface State {}
-
     /** Call state is not valid (Not received a call state). */
     public static final int PRECISE_CALL_STATE_NOT_VALID =      -1;
     /** Call state: No activity. */
@@ -85,9 +70,9 @@
     /** Call state: Disconnecting. */
     public static final int PRECISE_CALL_STATE_DISCONNECTING =  8;
 
-    private @State int mRingingCallState = PRECISE_CALL_STATE_NOT_VALID;
-    private @State int mForegroundCallState = PRECISE_CALL_STATE_NOT_VALID;
-    private @State int mBackgroundCallState = PRECISE_CALL_STATE_NOT_VALID;
+    private @PreciseCallStates int mRingingCallState = PRECISE_CALL_STATE_NOT_VALID;
+    private @PreciseCallStates int mForegroundCallState = PRECISE_CALL_STATE_NOT_VALID;
+    private @PreciseCallStates int mBackgroundCallState = PRECISE_CALL_STATE_NOT_VALID;
     private int mDisconnectCause = DisconnectCause.NOT_VALID;
     private int mPreciseDisconnectCause = PreciseDisconnectCause.NOT_VALID;
 
@@ -97,8 +82,9 @@
      * @hide
      */
     @UnsupportedAppUsage
-    public PreciseCallState(@State int ringingCall, @State int foregroundCall,
-                            @State int backgroundCall, int disconnectCause,
+    public PreciseCallState(@PreciseCallStates int ringingCall,
+                            @PreciseCallStates int foregroundCall,
+                            @PreciseCallStates int backgroundCall, int disconnectCause,
                             int preciseDisconnectCause) {
         mRingingCallState = ringingCall;
         mForegroundCallState = foregroundCall;
@@ -131,21 +117,21 @@
     /**
      * Returns the precise ringing call state.
      */
-    public @State int getRingingCallState() {
+    public @PreciseCallStates int getRingingCallState() {
         return mRingingCallState;
     }
 
     /**
      * Returns the precise foreground call state.
      */
-    public @State int getForegroundCallState() {
+    public @PreciseCallStates int getForegroundCallState() {
         return mForegroundCallState;
     }
 
     /**
      * Returns the precise background call state.
      */
-    public @State int getBackgroundCallState() {
+    public @PreciseCallStates int getBackgroundCallState() {
         return mBackgroundCallState;
     }
 
diff --git a/telephony/java/android/telephony/PreciseDataConnectionState.java b/telephony/java/android/telephony/PreciseDataConnectionState.java
index 90d443a..257d634 100644
--- a/telephony/java/android/telephony/PreciseDataConnectionState.java
+++ b/telephony/java/android/telephony/PreciseDataConnectionState.java
@@ -23,6 +23,10 @@
 import android.net.LinkProperties;
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.telephony.Annotation.ApnType;
+import android.telephony.Annotation.DataFailureCause;
+import android.telephony.Annotation.DataState;
+import android.telephony.Annotation.NetworkType;
 import android.telephony.data.ApnSetting;
 
 import java.util.Objects;
@@ -47,10 +51,10 @@
 @SystemApi
 public final class PreciseDataConnectionState implements Parcelable {
 
-    private @TelephonyManager.DataState int mState = TelephonyManager.DATA_UNKNOWN;
-    private @TelephonyManager.NetworkType int mNetworkType = TelephonyManager.NETWORK_TYPE_UNKNOWN;
-    private @DataFailCause.FailCause int mFailCause = DataFailCause.NONE;
-    private @ApnSetting.ApnType int mAPNTypes = ApnSetting.TYPE_NONE;
+    private @DataState int mState = TelephonyManager.DATA_UNKNOWN;
+    private @NetworkType int mNetworkType = TelephonyManager.NETWORK_TYPE_UNKNOWN;
+    private @DataFailureCause int mFailCause = DataFailCause.NONE;
+    private @ApnType int mAPNTypes = ApnSetting.TYPE_NONE;
     private String mAPN = "";
     private LinkProperties mLinkProperties = null;
 
@@ -60,11 +64,11 @@
      * @hide
      */
     @UnsupportedAppUsage
-    public PreciseDataConnectionState(@TelephonyManager.DataState int state,
-                                      @TelephonyManager.NetworkType int networkType,
-                                      @ApnSetting.ApnType int apnTypes, String apn,
+    public PreciseDataConnectionState(@DataState int state,
+                                      @NetworkType int networkType,
+                                      @ApnType int apnTypes, String apn,
                                       LinkProperties linkProperties,
-                                      @DataFailCause.FailCause int failCause) {
+                                      @DataFailureCause int failCause) {
         mState = state;
         mNetworkType = networkType;
         mAPNTypes = apnTypes;
@@ -99,7 +103,7 @@
      * Returns the state of data connection that supported the apn types returned by
      * {@link #getDataConnectionApnTypeBitMask()}
      */
-    public @TelephonyManager.DataState int getDataConnectionState() {
+    public @DataState int getDataConnectionState() {
         return mState;
     }
 
@@ -107,7 +111,7 @@
      * Returns the network type associated with this data connection.
      * @hide
      */
-    public @TelephonyManager.NetworkType int getDataConnectionNetworkType() {
+    public @NetworkType int getDataConnectionNetworkType() {
         return mNetworkType;
     }
 
@@ -115,7 +119,7 @@
      * Returns the data connection APN types supported by this connection and triggers
      * {@link PreciseDataConnectionState} change.
      */
-    public @ApnSetting.ApnType int getDataConnectionApnTypeBitMask() {
+    public @ApnType int getDataConnectionApnTypeBitMask() {
         return mAPNTypes;
     }
 
@@ -139,7 +143,7 @@
     /**
      * Returns data connection fail cause, in case there was a failure.
      */
-    public @DataFailCause.FailCause int getDataConnectionFailCause() {
+    public @Annotation.DataFailureCause int getDataConnectionFailCause() {
         return mFailCause;
     }
 
diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java
index a985a6b..1e601cf 100644
--- a/telephony/java/android/telephony/ServiceState.java
+++ b/telephony/java/android/telephony/ServiceState.java
@@ -29,6 +29,8 @@
 import android.os.Parcelable;
 import android.telephony.AccessNetworkConstants.AccessNetworkType;
 import android.telephony.AccessNetworkConstants.TransportType;
+import android.telephony.Annotation.NetworkType;
+import android.telephony.Annotation.RilRadioTechnology;
 import android.telephony.NetworkRegistrationInfo.Domain;
 import android.telephony.NetworkRegistrationInfo.NRState;
 import android.text.TextUtils;
@@ -154,32 +156,6 @@
      */
     public static final int DUPLEX_MODE_TDD = 2;
 
-    /** @hide */
-    @Retention(RetentionPolicy.SOURCE)
-    @IntDef(prefix = { "RIL_RADIO_TECHNOLOGY_" },
-            value = {
-                    RIL_RADIO_TECHNOLOGY_UNKNOWN,
-                    RIL_RADIO_TECHNOLOGY_GPRS,
-                    RIL_RADIO_TECHNOLOGY_EDGE,
-                    RIL_RADIO_TECHNOLOGY_UMTS,
-                    RIL_RADIO_TECHNOLOGY_IS95A,
-                    RIL_RADIO_TECHNOLOGY_IS95B,
-                    RIL_RADIO_TECHNOLOGY_1xRTT,
-                    RIL_RADIO_TECHNOLOGY_EVDO_0,
-                    RIL_RADIO_TECHNOLOGY_EVDO_A,
-                    RIL_RADIO_TECHNOLOGY_HSDPA,
-                    RIL_RADIO_TECHNOLOGY_HSUPA,
-                    RIL_RADIO_TECHNOLOGY_HSPA,
-                    RIL_RADIO_TECHNOLOGY_EVDO_B,
-                    RIL_RADIO_TECHNOLOGY_EHRPD,
-                    RIL_RADIO_TECHNOLOGY_LTE,
-                    RIL_RADIO_TECHNOLOGY_HSPAP,
-                    RIL_RADIO_TECHNOLOGY_GSM,
-                    RIL_RADIO_TECHNOLOGY_TD_SCDMA,
-                    RIL_RADIO_TECHNOLOGY_IWLAN,
-                    RIL_RADIO_TECHNOLOGY_LTE_CA,
-                    RIL_RADIO_TECHNOLOGY_NR})
-    public @interface RilRadioTechnology {}
     /**
      * Available radio technologies for GSM, UMTS and CDMA.
      * Duplicates the constants from hardware/radio/include/ril.h
@@ -987,6 +963,9 @@
             case RIL_RADIO_TECHNOLOGY_LTE_CA:
                 rtString = "LTE_CA";
                 break;
+            case RIL_RADIO_TECHNOLOGY_NR:
+                rtString = "LTE_NR";
+                break;
             default:
                 rtString = "Unexpected";
                 Rlog.w(LOG_TAG, "Unexpected radioTechnology=" + rt);
@@ -1405,9 +1384,12 @@
     }
 
     /**
+     * Get the 5G NR frequency range the device is currently registered.
+     *
      * @return the frequency range of 5G NR.
      * @hide
      */
+    @SystemApi
     public @FrequencyRange int getNrFrequencyRange() {
         return mNrFrequencyRange;
     }
@@ -1485,44 +1467,44 @@
     /** @hide */
     public static int rilRadioTechnologyToNetworkType(@RilRadioTechnology int rat) {
         switch(rat) {
-            case ServiceState.RIL_RADIO_TECHNOLOGY_GPRS:
+            case RIL_RADIO_TECHNOLOGY_GPRS:
                 return TelephonyManager.NETWORK_TYPE_GPRS;
-            case ServiceState.RIL_RADIO_TECHNOLOGY_EDGE:
+            case RIL_RADIO_TECHNOLOGY_EDGE:
                 return TelephonyManager.NETWORK_TYPE_EDGE;
-            case ServiceState.RIL_RADIO_TECHNOLOGY_UMTS:
+            case RIL_RADIO_TECHNOLOGY_UMTS:
                 return TelephonyManager.NETWORK_TYPE_UMTS;
-            case ServiceState.RIL_RADIO_TECHNOLOGY_HSDPA:
+            case RIL_RADIO_TECHNOLOGY_HSDPA:
                 return TelephonyManager.NETWORK_TYPE_HSDPA;
-            case ServiceState.RIL_RADIO_TECHNOLOGY_HSUPA:
+            case RIL_RADIO_TECHNOLOGY_HSUPA:
                 return TelephonyManager.NETWORK_TYPE_HSUPA;
-            case ServiceState.RIL_RADIO_TECHNOLOGY_HSPA:
+            case RIL_RADIO_TECHNOLOGY_HSPA:
                 return TelephonyManager.NETWORK_TYPE_HSPA;
-            case ServiceState.RIL_RADIO_TECHNOLOGY_IS95A:
-            case ServiceState.RIL_RADIO_TECHNOLOGY_IS95B:
+            case RIL_RADIO_TECHNOLOGY_IS95A:
+            case RIL_RADIO_TECHNOLOGY_IS95B:
                 return TelephonyManager.NETWORK_TYPE_CDMA;
-            case ServiceState.RIL_RADIO_TECHNOLOGY_1xRTT:
+            case RIL_RADIO_TECHNOLOGY_1xRTT:
                 return TelephonyManager.NETWORK_TYPE_1xRTT;
-            case ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_0:
+            case RIL_RADIO_TECHNOLOGY_EVDO_0:
                 return TelephonyManager.NETWORK_TYPE_EVDO_0;
-            case ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_A:
+            case RIL_RADIO_TECHNOLOGY_EVDO_A:
                 return TelephonyManager.NETWORK_TYPE_EVDO_A;
-            case ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_B:
+            case RIL_RADIO_TECHNOLOGY_EVDO_B:
                 return TelephonyManager.NETWORK_TYPE_EVDO_B;
-            case ServiceState.RIL_RADIO_TECHNOLOGY_EHRPD:
+            case RIL_RADIO_TECHNOLOGY_EHRPD:
                 return TelephonyManager.NETWORK_TYPE_EHRPD;
-            case ServiceState.RIL_RADIO_TECHNOLOGY_LTE:
+            case RIL_RADIO_TECHNOLOGY_LTE:
                 return TelephonyManager.NETWORK_TYPE_LTE;
-            case ServiceState.RIL_RADIO_TECHNOLOGY_HSPAP:
+            case RIL_RADIO_TECHNOLOGY_HSPAP:
                 return TelephonyManager.NETWORK_TYPE_HSPAP;
-            case ServiceState.RIL_RADIO_TECHNOLOGY_GSM:
+            case RIL_RADIO_TECHNOLOGY_GSM:
                 return TelephonyManager.NETWORK_TYPE_GSM;
-            case ServiceState.RIL_RADIO_TECHNOLOGY_TD_SCDMA:
+            case RIL_RADIO_TECHNOLOGY_TD_SCDMA:
                 return TelephonyManager.NETWORK_TYPE_TD_SCDMA;
-            case ServiceState.RIL_RADIO_TECHNOLOGY_IWLAN:
+            case RIL_RADIO_TECHNOLOGY_IWLAN:
                 return TelephonyManager.NETWORK_TYPE_IWLAN;
-            case ServiceState.RIL_RADIO_TECHNOLOGY_LTE_CA:
+            case RIL_RADIO_TECHNOLOGY_LTE_CA:
                 return TelephonyManager.NETWORK_TYPE_LTE_CA;
-            case ServiceState.RIL_RADIO_TECHNOLOGY_NR:
+            case RIL_RADIO_TECHNOLOGY_NR:
                 return TelephonyManager.NETWORK_TYPE_NR;
             default:
                 return TelephonyManager.NETWORK_TYPE_UNKNOWN;
@@ -1553,6 +1535,7 @@
                 return AccessNetworkType.CDMA2000;
             case RIL_RADIO_TECHNOLOGY_LTE:
             case RIL_RADIO_TECHNOLOGY_LTE_CA:
+            case RIL_RADIO_TECHNOLOGY_NR:
                 return AccessNetworkType.EUTRAN;
             case RIL_RADIO_TECHNOLOGY_IWLAN:
                 return AccessNetworkType.IWLAN;
@@ -1566,43 +1549,45 @@
     public static int networkTypeToRilRadioTechnology(int networkType) {
         switch(networkType) {
             case TelephonyManager.NETWORK_TYPE_GPRS:
-                return ServiceState.RIL_RADIO_TECHNOLOGY_GPRS;
+                return RIL_RADIO_TECHNOLOGY_GPRS;
             case TelephonyManager.NETWORK_TYPE_EDGE:
-                return ServiceState.RIL_RADIO_TECHNOLOGY_EDGE;
+                return RIL_RADIO_TECHNOLOGY_EDGE;
             case TelephonyManager.NETWORK_TYPE_UMTS:
-                return ServiceState.RIL_RADIO_TECHNOLOGY_UMTS;
+                return RIL_RADIO_TECHNOLOGY_UMTS;
             case TelephonyManager.NETWORK_TYPE_HSDPA:
-                return ServiceState.RIL_RADIO_TECHNOLOGY_HSDPA;
+                return RIL_RADIO_TECHNOLOGY_HSDPA;
             case TelephonyManager.NETWORK_TYPE_HSUPA:
-                return ServiceState.RIL_RADIO_TECHNOLOGY_HSUPA;
+                return RIL_RADIO_TECHNOLOGY_HSUPA;
             case TelephonyManager.NETWORK_TYPE_HSPA:
-                return ServiceState.RIL_RADIO_TECHNOLOGY_HSPA;
+                return RIL_RADIO_TECHNOLOGY_HSPA;
             case TelephonyManager.NETWORK_TYPE_CDMA:
-                return ServiceState.RIL_RADIO_TECHNOLOGY_IS95A;
+                return RIL_RADIO_TECHNOLOGY_IS95A;
             case TelephonyManager.NETWORK_TYPE_1xRTT:
-                return ServiceState.RIL_RADIO_TECHNOLOGY_1xRTT;
+                return RIL_RADIO_TECHNOLOGY_1xRTT;
             case TelephonyManager.NETWORK_TYPE_EVDO_0:
-                return ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_0;
+                return RIL_RADIO_TECHNOLOGY_EVDO_0;
             case TelephonyManager.NETWORK_TYPE_EVDO_A:
-                return ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_A;
+                return RIL_RADIO_TECHNOLOGY_EVDO_A;
             case TelephonyManager.NETWORK_TYPE_EVDO_B:
-                return ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_B;
+                return RIL_RADIO_TECHNOLOGY_EVDO_B;
             case TelephonyManager.NETWORK_TYPE_EHRPD:
-                return ServiceState.RIL_RADIO_TECHNOLOGY_EHRPD;
+                return RIL_RADIO_TECHNOLOGY_EHRPD;
             case TelephonyManager.NETWORK_TYPE_LTE:
-                return ServiceState.RIL_RADIO_TECHNOLOGY_LTE;
+                return RIL_RADIO_TECHNOLOGY_LTE;
             case TelephonyManager.NETWORK_TYPE_HSPAP:
-                return ServiceState.RIL_RADIO_TECHNOLOGY_HSPAP;
+                return RIL_RADIO_TECHNOLOGY_HSPAP;
             case TelephonyManager.NETWORK_TYPE_GSM:
-                return ServiceState.RIL_RADIO_TECHNOLOGY_GSM;
+                return RIL_RADIO_TECHNOLOGY_GSM;
             case TelephonyManager.NETWORK_TYPE_TD_SCDMA:
-                return ServiceState.RIL_RADIO_TECHNOLOGY_TD_SCDMA;
+                return RIL_RADIO_TECHNOLOGY_TD_SCDMA;
             case TelephonyManager.NETWORK_TYPE_IWLAN:
-                return ServiceState.RIL_RADIO_TECHNOLOGY_IWLAN;
+                return RIL_RADIO_TECHNOLOGY_IWLAN;
             case TelephonyManager.NETWORK_TYPE_LTE_CA:
-                return ServiceState.RIL_RADIO_TECHNOLOGY_LTE_CA;
+                return RIL_RADIO_TECHNOLOGY_LTE_CA;
+            case TelephonyManager.NETWORK_TYPE_NR:
+                return RIL_RADIO_TECHNOLOGY_NR;
             default:
-                return ServiceState.RIL_RADIO_TECHNOLOGY_UNKNOWN;
+                return RIL_RADIO_TECHNOLOGY_UNKNOWN;
         }
     }
 
@@ -1617,7 +1602,7 @@
      * @hide
      */
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
-    public @TelephonyManager.NetworkType int getDataNetworkType() {
+    public @NetworkType int getDataNetworkType() {
         final NetworkRegistrationInfo iwlanRegInfo = getNetworkRegistrationInfo(
                 NetworkRegistrationInfo.DOMAIN_PS, AccessNetworkConstants.TRANSPORT_TYPE_WLAN);
         final NetworkRegistrationInfo wwanRegInfo = getNetworkRegistrationInfo(
@@ -1644,7 +1629,7 @@
 
     /** @hide */
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
-    public @TelephonyManager.NetworkType int getVoiceNetworkType() {
+    public @NetworkType int getVoiceNetworkType() {
         final NetworkRegistrationInfo regState = getNetworkRegistrationInfo(
                 NetworkRegistrationInfo.DOMAIN_CS, AccessNetworkConstants.TRANSPORT_TYPE_WWAN);
         if (regState != null) {
@@ -1691,7 +1676,8 @@
                 || radioTechnology == RIL_RADIO_TECHNOLOGY_GSM
                 || radioTechnology == RIL_RADIO_TECHNOLOGY_TD_SCDMA
                 || radioTechnology == RIL_RADIO_TECHNOLOGY_IWLAN
-                || radioTechnology == RIL_RADIO_TECHNOLOGY_LTE_CA;
+                || radioTechnology == RIL_RADIO_TECHNOLOGY_LTE_CA
+                || radioTechnology == RIL_RADIO_TECHNOLOGY_NR;
 
     }
 
@@ -1967,8 +1953,11 @@
     /**
      * The current registered raw data network operator name in long alphanumeric format.
      *
+     * @return long raw name of operator, null if unregistered or unknown
      * @hide
      */
+    @Nullable
+    @SystemApi
     public String getOperatorAlphaLongRaw() {
         return mOperatorAlphaLongRaw;
     }
@@ -1983,8 +1972,11 @@
     /**
      * The current registered raw data network operator name in short alphanumeric format.
      *
+     * @return short raw name of operator, null if unregistered or unknown
      * @hide
      */
+    @Nullable
+    @SystemApi
     public String getOperatorAlphaShortRaw() {
         return mOperatorAlphaShortRaw;
     }
diff --git a/telephony/java/android/telephony/SmsCbLocation.java b/telephony/java/android/telephony/SmsCbLocation.java
index adf7154..663e8e2 100644
--- a/telephony/java/android/telephony/SmsCbLocation.java
+++ b/telephony/java/android/telephony/SmsCbLocation.java
@@ -65,9 +65,12 @@
     /**
      * Construct a location object for the PLMN, LAC, and Cell ID. This class is immutable, so
      * the same object can be reused for multiple broadcasts.
-     * @hide
+     *
+     * @param plmn the MCC/MNC of the network
+     * @param lac the GSM location area code, or UMTS service area code
+     * @param cid the GSM or UMTS cell ID
      */
-    public SmsCbLocation(String plmn, int lac, int cid) {
+    public SmsCbLocation(@NonNull String plmn, int lac, int cid) {
         mPlmn = plmn;
         mLac = lac;
         mCid = cid;
diff --git a/telephony/java/android/telephony/SmsCbMessage.java b/telephony/java/android/telephony/SmsCbMessage.java
index dc991b9..737ead1 100644
--- a/telephony/java/android/telephony/SmsCbMessage.java
+++ b/telephony/java/android/telephony/SmsCbMessage.java
@@ -25,9 +25,7 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.provider.Telephony.CellBroadcasts;
-
-import com.android.internal.telephony.CbGeoUtils;
-import com.android.internal.telephony.CbGeoUtils.Geometry;
+import android.telephony.CbGeoUtils.Geometry;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -140,8 +138,8 @@
     public @interface MessagePriority {}
 
     /**
-     * ATIS-0700041 Section 5.2.8 WAC Geo-Fencing Maximum Wait Time Table 12.
-     * @hide
+     * Integer indicating that the maximum wait time is not set.
+     * Based on ATIS-0700041 Section 5.2.8 WAC Geo-Fencing Maximum Wait Time Table 12.
      */
     public static final int MAXIMUM_WAIT_TIME_NOT_SET = 255;
 
@@ -211,6 +209,7 @@
 
     /**
      * Create a new SmsCbMessage with the specified data.
+     * @hide
      */
     public SmsCbMessage(int messageFormat, int geographicalScope, int serialNumber,
             @NonNull SmsCbLocation location, int serviceCategory, @Nullable String language,
@@ -223,14 +222,14 @@
     }
 
     /**
-     * Create a new {@link SmsCbMessage} with the warning area coordinates information.
-     * @hide
+     * Create a new {@link SmsCbMessage} with the specified data, including warning area
+     * coordinates information.
      */
     public SmsCbMessage(int messageFormat, int geographicalScope, int serialNumber,
-            SmsCbLocation location, int serviceCategory, String language, String body,
-            int priority, SmsCbEtwsInfo etwsWarningInfo, SmsCbCmasInfo cmasWarningInfo,
-            int maximumWaitTimeSec, List<Geometry> geometries, long receivedTimeMillis,
-            int slotIndex) {
+            @NonNull SmsCbLocation location, int serviceCategory, @Nullable String language,
+            @Nullable String body, int priority, @Nullable SmsCbEtwsInfo etwsWarningInfo,
+            @Nullable SmsCbCmasInfo cmasWarningInfo, int maximumWaitTimeSec,
+            @Nullable List<Geometry> geometries, long receivedTimeMillis, int slotIndex) {
         mMessageFormat = messageFormat;
         mGeographicalScope = geographicalScope;
         mSerialNumber = serialNumber;
@@ -414,9 +413,8 @@
     /**
      * Get the Geo-Fencing Maximum Wait Time.
      * @return the time in second.
-     * @hide
      */
-    public int getMaximumWaitingTime() {
+    public int getMaximumWaitingDuration() {
         return mMaximumWaitTimeSec;
     }
 
diff --git a/telephony/java/android/telephony/SmsManager.java b/telephony/java/android/telephony/SmsManager.java
index 3157e12..daeacf8 100644
--- a/telephony/java/android/telephony/SmsManager.java
+++ b/telephony/java/android/telephony/SmsManager.java
@@ -28,7 +28,6 @@
 import android.app.ActivityThread;
 import android.app.PendingIntent;
 import android.content.Context;
-import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.database.CursorWindow;
 import android.net.Uri;
@@ -37,7 +36,6 @@
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.os.ServiceManager;
-import android.provider.Telephony;
 import android.text.TextUtils;
 import android.util.ArrayMap;
 import android.util.Log;
@@ -289,12 +287,6 @@
      */
     public static final int SMS_MESSAGE_PERIOD_NOT_SPECIFIED = -1;
 
-    /**
-     * Extra key passed into a PendingIntent when the SMS operation failed due to there being no
-     * default set.
-     */
-    private static final String NO_DEFAULT_EXTRA = "noDefault";
-
     // result of asking the user for a subscription to perform an operation.
     private interface SubscriptionResolverResult {
         void onSuccess(int subId);
@@ -335,9 +327,59 @@
      *  <code>RESULT_ERROR_RADIO_OFF</code><br>
      *  <code>RESULT_ERROR_NULL_PDU</code><br>
      *  <code>RESULT_ERROR_NO_SERVICE</code><br>
-     *  For <code>RESULT_ERROR_GENERIC_FAILURE</code> the sentIntent may include
-     *  the extra "errorCode" containing a radio technology specific value,
-     *  generally only useful for troubleshooting.<br>
+     *  <code>RESULT_ERROR_NO_SERVICE</code><br>
+     *  <code>RESULT_ERROR_LIMIT_EXCEEDED</code><br>
+     *  <code>RESULT_ERROR_FDN_CHECK_FAILURE</code><br>
+     *  <code>RESULT_ERROR_SHORT_CODE_NOT_ALLOWED</code><br>
+     *  <code>RESULT_ERROR_SHORT_CODE_NEVER_ALLOWED</code><br>
+     *  <code>RESULT_RADIO_NOT_AVAILABLE</code><br>
+     *  <code>RESULT_NETWORK_REJECT</code><br>
+     *  <code>RESULT_INVALID_ARGUMENTS</code><br>
+     *  <code>RESULT_INVALID_STATE</code><br>
+     *  <code>RESULT_NO_MEMORY</code><br>
+     *  <code>RESULT_INVALID_SMS_FORMAT</code><br>
+     *  <code>RESULT_SYSTEM_ERROR</code><br>
+     *  <code>RESULT_MODEM_ERROR</code><br>
+     *  <code>RESULT_NETWORK_ERROR</code><br>
+     *  <code>RESULT_ENCODING_ERROR</code><br>
+     *  <code>RESULT_INVALID_SMSC_ADDRESS</code><br>
+     *  <code>RESULT_OPERATION_NOT_ALLOWED</code><br>
+     *  <code>RESULT_INTERNAL_ERROR</code><br>
+     *  <code>RESULT_NO_RESOURCES</code><br>
+     *  <code>RESULT_CANCELLED</code><br>
+     *  <code>RESULT_REQUEST_NOT_SUPPORTED</code><br>
+     *  <code>RESULT_NO_BLUETOOTH_SERVICE</code><br>
+     *  <code>RESULT_INVALID_BLUETOOTH_ADDRESS</code><br>
+     *  <code>RESULT_BLUETOOTH_DISCONNECTED</code><br>
+     *  <code>RESULT_UNEXPECTED_EVENT_STOP_SENDING</code><br>
+     *  <code>RESULT_SMS_BLOCKED_DURING_EMERGENCY</code><br>
+     *  <code>RESULT_SMS_SEND_RETRY_FAILED</code><br>
+     *  <code>RESULT_REMOTE_EXCEPTION</code><br>
+     *  <code>RESULT_NO_DEFAULT_SMS_APP</code><br>
+     *  <code>RESULT_RIL_RADIO_NOT_AVAILABLE</code><br>
+     *  <code>RESULT_RIL_SMS_SEND_FAIL_RETRY</code><br>
+     *  <code>RESULT_RIL_NETWORK_REJECT</code><br>
+     *  <code>RESULT_RIL_INVALID_STATE</code><br>
+     *  <code>RESULT_RIL_INVALID_ARGUMENTS</code><br>
+     *  <code>RESULT_RIL_NO_MEMORY</code><br>
+     *  <code>RESULT_RIL_REQUEST_RATE_LIMITED</code><br>
+     *  <code>RESULT_RIL_INVALID_SMS_FORMAT</code><br>
+     *  <code>RESULT_RIL_SYSTEM_ERR</code><br>
+     *  <code>RESULT_RIL_ENCODING_ERR</code><br>
+     *  <code>RESULT_RIL_INVALID_SMSC_ADDRESS</code><br>
+     *  <code>RESULT_RIL_MODEM_ERR</code><br>
+     *  <code>RESULT_RIL_NETWORK_ERR</code><br>
+     *  <code>RESULT_RIL_INTERNAL_ERR</code><br>
+     *  <code>RESULT_RIL_REQUEST_NOT_SUPPORTED</code><br>
+     *  <code>RESULT_RIL_INVALID_MODEM_STATE</code><br>
+     *  <code>RESULT_RIL_NETWORK_NOT_READY</code><br>
+     *  <code>RESULT_RIL_OPERATION_NOT_ALLOWED</code><br>
+     *  <code>RESULT_RIL_NO_RESOURCES</code><br>
+     *  <code>RESULT_RIL_CANCELLED</code><br>
+     *  <code>RESULT_RIL_SIM_ABSENT</code><br>
+     *  For <code>RESULT_ERROR_GENERIC_FAILURE</code> or any of the RESULT_RIL errors,
+     *  the sentIntent may include the extra "errorCode" containing a radio technology specific
+     *  value, generally only useful for troubleshooting.<br>
      *  The per-application based SMS control checks sentIntent. If sentIntent
      *  is NULL the caller will be checked against all unknown applications,
      *  which cause smaller number of SMS to be sent in checking period.
@@ -377,9 +419,60 @@
      *  <code>RESULT_ERROR_GENERIC_FAILURE</code><br>
      *  <code>RESULT_ERROR_RADIO_OFF</code><br>
      *  <code>RESULT_ERROR_NULL_PDU</code><br>
-     *  For <code>RESULT_ERROR_GENERIC_FAILURE</code> the sentIntent may include
-     *  the extra "errorCode" containing a radio technology specific value,
-     *  generally only useful for troubleshooting.<br>
+     *  <code>RESULT_ERROR_NO_SERVICE</code><br>
+     *  <code>RESULT_ERROR_NO_SERVICE</code><br>
+     *  <code>RESULT_ERROR_LIMIT_EXCEEDED</code><br>
+     *  <code>RESULT_ERROR_FDN_CHECK_FAILURE</code><br>
+     *  <code>RESULT_ERROR_SHORT_CODE_NOT_ALLOWED</code><br>
+     *  <code>RESULT_ERROR_SHORT_CODE_NEVER_ALLOWED</code><br>
+     *  <code>RESULT_RADIO_NOT_AVAILABLE</code><br>
+     *  <code>RESULT_NETWORK_REJECT</code><br>
+     *  <code>RESULT_INVALID_ARGUMENTS</code><br>
+     *  <code>RESULT_INVALID_STATE</code><br>
+     *  <code>RESULT_NO_MEMORY</code><br>
+     *  <code>RESULT_INVALID_SMS_FORMAT</code><br>
+     *  <code>RESULT_SYSTEM_ERROR</code><br>
+     *  <code>RESULT_MODEM_ERROR</code><br>
+     *  <code>RESULT_NETWORK_ERROR</code><br>
+     *  <code>RESULT_ENCODING_ERROR</code><br>
+     *  <code>RESULT_INVALID_SMSC_ADDRESS</code><br>
+     *  <code>RESULT_OPERATION_NOT_ALLOWED</code><br>
+     *  <code>RESULT_INTERNAL_ERROR</code><br>
+     *  <code>RESULT_NO_RESOURCES</code><br>
+     *  <code>RESULT_CANCELLED</code><br>
+     *  <code>RESULT_REQUEST_NOT_SUPPORTED</code><br>
+     *  <code>RESULT_NO_BLUETOOTH_SERVICE</code><br>
+     *  <code>RESULT_INVALID_BLUETOOTH_ADDRESS</code><br>
+     *  <code>RESULT_BLUETOOTH_DISCONNECTED</code><br>
+     *  <code>RESULT_UNEXPECTED_EVENT_STOP_SENDING</code><br>
+     *  <code>RESULT_SMS_BLOCKED_DURING_EMERGENCY</code><br>
+     *  <code>RESULT_SMS_SEND_RETRY_FAILED</code><br>
+     *  <code>RESULT_REMOTE_EXCEPTION</code><br>
+     *  <code>RESULT_NO_DEFAULT_SMS_APP</code><br>
+     *  <code>RESULT_RIL_RADIO_NOT_AVAILABLE</code><br>
+     *  <code>RESULT_RIL_SMS_SEND_FAIL_RETRY</code><br>
+     *  <code>RESULT_RIL_NETWORK_REJECT</code><br>
+     *  <code>RESULT_RIL_INVALID_STATE</code><br>
+     *  <code>RESULT_RIL_INVALID_ARGUMENTS</code><br>
+     *  <code>RESULT_RIL_NO_MEMORY</code><br>
+     *  <code>RESULT_RIL_REQUEST_RATE_LIMITED</code><br>
+     *  <code>RESULT_RIL_INVALID_SMS_FORMAT</code><br>
+     *  <code>RESULT_RIL_SYSTEM_ERR</code><br>
+     *  <code>RESULT_RIL_ENCODING_ERR</code><br>
+     *  <code>RESULT_RIL_INVALID_SMSC_ADDRESS</code><br>
+     *  <code>RESULT_RIL_MODEM_ERR</code><br>
+     *  <code>RESULT_RIL_NETWORK_ERR</code><br>
+     *  <code>RESULT_RIL_INTERNAL_ERR</code><br>
+     *  <code>RESULT_RIL_REQUEST_NOT_SUPPORTED</code><br>
+     *  <code>RESULT_RIL_INVALID_MODEM_STATE</code><br>
+     *  <code>RESULT_RIL_NETWORK_NOT_READY</code><br>
+     *  <code>RESULT_RIL_OPERATION_NOT_ALLOWED</code><br>
+     *  <code>RESULT_RIL_NO_RESOURCES</code><br>
+     *  <code>RESULT_RIL_CANCELLED</code><br>
+     *  <code>RESULT_RIL_SIM_ABSENT</code><br>
+     *  For <code>RESULT_ERROR_GENERIC_FAILURE</code> or any of the RESULT_RIL errors,
+     *  the sentIntent may include the extra "errorCode" containing a radio technology specific
+     *  value, generally only useful for troubleshooting.<br>
      *  The per-application based SMS control checks sentIntent. If sentIntent
      *  is NULL the caller will be checked against all unknown applications,
      *  which cause smaller number of SMS to be sent in checking period.
@@ -427,7 +520,6 @@
             throw new IllegalArgumentException("Invalid message body");
         }
 
-        final Context context = ActivityThread.currentApplication().getApplicationContext();
         // We will only show the SMS disambiguation dialog in the case that the message is being
         // persisted. This is for two reasons:
         // 1) Messages that are not persisted are sent by carrier/OEM apps for a specific
@@ -450,13 +542,13 @@
                     } catch (RemoteException e) {
                         Log.e(TAG, "sendTextMessageInternal: Couldn't send SMS, exception - "
                                 + e.getMessage());
-                        notifySmsGenericError(sentIntent);
+                        notifySmsError(sentIntent, RESULT_REMOTE_EXCEPTION);
                     }
                 }
 
                 @Override
                 public void onFailure() {
-                    notifySmsErrorNoDefaultSet(context, sentIntent);
+                    notifySmsError(sentIntent, RESULT_NO_DEFAULT_SMS_APP);
                 }
             });
         } else {
@@ -470,7 +562,7 @@
             } catch (RemoteException e) {
                 Log.e(TAG, "sendTextMessageInternal (no persist): Couldn't send SMS, exception - "
                         + e.getMessage());
-                notifySmsGenericError(sentIntent);
+                notifySmsError(sentIntent, RESULT_REMOTE_EXCEPTION);
             }
         }
     }
@@ -536,7 +628,6 @@
 
         final int finalPriority = priority;
         final int finalValidity = validityPeriod;
-        final Context context = ActivityThread.currentApplication().getApplicationContext();
         // We will only show the SMS disambiguation dialog in the case that the message is being
         // persisted. This is for two reasons:
         // 1) Messages that are not persisted are sent by carrier/OEM apps for a specific
@@ -563,13 +654,13 @@
                     } catch (RemoteException e) {
                         Log.e(TAG, "sendTextMessageInternal: Couldn't send SMS, exception - "
                                 + e.getMessage());
-                        notifySmsGenericError(sentIntent);
+                        notifySmsError(sentIntent, RESULT_REMOTE_EXCEPTION);
                     }
                 }
 
                 @Override
                 public void onFailure() {
-                    notifySmsErrorNoDefaultSet(context, sentIntent);
+                    notifySmsError(sentIntent, RESULT_NO_DEFAULT_SMS_APP);
                 }
             });
         } else {
@@ -585,7 +676,7 @@
             } catch (RemoteException e) {
                 Log.e(TAG, "sendTextMessageInternal(no persist): Couldn't send SMS, exception - "
                         + e.getMessage());
-                notifySmsGenericError(sentIntent);
+                notifySmsError(sentIntent, RESULT_REMOTE_EXCEPTION);
             }
         }
     }
@@ -667,7 +758,7 @@
         } catch (RemoteException ex) {
             try {
                 if (receivedIntent != null) {
-                    receivedIntent.send(Telephony.Sms.Intents.RESULT_SMS_GENERIC_ERROR);
+                    receivedIntent.send(RESULT_REMOTE_EXCEPTION);
                 }
             } catch (PendingIntent.CanceledException cx) {
                 // Don't worry about it, we do not need to notify the caller if this is the case.
@@ -723,12 +814,63 @@
      *   broadcast when the corresponding message part has been sent.
      *   The result code will be <code>Activity.RESULT_OK</code> for success,
      *   or one of these errors:<br>
-     *   <code>RESULT_ERROR_GENERIC_FAILURE</code><br>
-     *   <code>RESULT_ERROR_RADIO_OFF</code><br>
-     *   <code>RESULT_ERROR_NULL_PDU</code><br>
-     *   For <code>RESULT_ERROR_GENERIC_FAILURE</code> each sentIntent may include
-     *   the extra "errorCode" containing a radio technology specific value,
-     *   generally only useful for troubleshooting.<br>
+     *  <code>RESULT_ERROR_GENERIC_FAILURE</code><br>
+     *  <code>RESULT_ERROR_RADIO_OFF</code><br>
+     *  <code>RESULT_ERROR_NULL_PDU</code><br>
+     *  <code>RESULT_ERROR_NO_SERVICE</code><br>
+     *  <code>RESULT_ERROR_NO_SERVICE</code><br>
+     *  <code>RESULT_ERROR_LIMIT_EXCEEDED</code><br>
+     *  <code>RESULT_ERROR_FDN_CHECK_FAILURE</code><br>
+     *  <code>RESULT_ERROR_SHORT_CODE_NOT_ALLOWED</code><br>
+     *  <code>RESULT_ERROR_SHORT_CODE_NEVER_ALLOWED</code><br>
+     *  <code>RESULT_RADIO_NOT_AVAILABLE</code><br>
+     *  <code>RESULT_NETWORK_REJECT</code><br>
+     *  <code>RESULT_INVALID_ARGUMENTS</code><br>
+     *  <code>RESULT_INVALID_STATE</code><br>
+     *  <code>RESULT_NO_MEMORY</code><br>
+     *  <code>RESULT_INVALID_SMS_FORMAT</code><br>
+     *  <code>RESULT_SYSTEM_ERROR</code><br>
+     *  <code>RESULT_MODEM_ERROR</code><br>
+     *  <code>RESULT_NETWORK_ERROR</code><br>
+     *  <code>RESULT_ENCODING_ERROR</code><br>
+     *  <code>RESULT_INVALID_SMSC_ADDRESS</code><br>
+     *  <code>RESULT_OPERATION_NOT_ALLOWED</code><br>
+     *  <code>RESULT_INTERNAL_ERROR</code><br>
+     *  <code>RESULT_NO_RESOURCES</code><br>
+     *  <code>RESULT_CANCELLED</code><br>
+     *  <code>RESULT_REQUEST_NOT_SUPPORTED</code><br>
+     *  <code>RESULT_NO_BLUETOOTH_SERVICE</code><br>
+     *  <code>RESULT_INVALID_BLUETOOTH_ADDRESS</code><br>
+     *  <code>RESULT_BLUETOOTH_DISCONNECTED</code><br>
+     *  <code>RESULT_UNEXPECTED_EVENT_STOP_SENDING</code><br>
+     *  <code>RESULT_SMS_BLOCKED_DURING_EMERGENCY</code><br>
+     *  <code>RESULT_SMS_SEND_RETRY_FAILED</code><br>
+     *  <code>RESULT_REMOTE_EXCEPTION</code><br>
+     *  <code>RESULT_NO_DEFAULT_SMS_APP</code><br>
+     *  <code>RESULT_RIL_RADIO_NOT_AVAILABLE</code><br>
+     *  <code>RESULT_RIL_SMS_SEND_FAIL_RETRY</code><br>
+     *  <code>RESULT_RIL_NETWORK_REJECT</code><br>
+     *  <code>RESULT_RIL_INVALID_STATE</code><br>
+     *  <code>RESULT_RIL_INVALID_ARGUMENTS</code><br>
+     *  <code>RESULT_RIL_NO_MEMORY</code><br>
+     *  <code>RESULT_RIL_REQUEST_RATE_LIMITED</code><br>
+     *  <code>RESULT_RIL_INVALID_SMS_FORMAT</code><br>
+     *  <code>RESULT_RIL_SYSTEM_ERR</code><br>
+     *  <code>RESULT_RIL_ENCODING_ERR</code><br>
+     *  <code>RESULT_RIL_INVALID_SMSC_ADDRESS</code><br>
+     *  <code>RESULT_RIL_MODEM_ERR</code><br>
+     *  <code>RESULT_RIL_NETWORK_ERR</code><br>
+     *  <code>RESULT_RIL_INTERNAL_ERR</code><br>
+     *  <code>RESULT_RIL_REQUEST_NOT_SUPPORTED</code><br>
+     *  <code>RESULT_RIL_INVALID_MODEM_STATE</code><br>
+     *  <code>RESULT_RIL_NETWORK_NOT_READY</code><br>
+     *  <code>RESULT_RIL_OPERATION_NOT_ALLOWED</code><br>
+     *  <code>RESULT_RIL_NO_RESOURCES</code><br>
+     *  <code>RESULT_RIL_CANCELLED</code><br>
+     *  <code>RESULT_RIL_SIM_ABSENT</code><br>
+     *  For <code>RESULT_ERROR_GENERIC_FAILURE</code> or any of the RESULT_RIL errors,
+     *  the sentIntent may include the extra "errorCode" containing a radio technology specific
+     *  value, generally only useful for troubleshooting.<br>
      *   The per-application based SMS control checks sentIntent. If sentIntent
      *   is NULL the caller will be checked against all unknown applications,
      *   which cause smaller number of SMS to be sent in checking period.
@@ -765,10 +907,12 @@
      * {@link ActivityThread#currentPackageName()} is null.
      * @hide
      */
-    public void sendMultipartTextMessageExternal(
-            String destinationAddress, String scAddress, ArrayList<String> parts,
-            ArrayList<PendingIntent> sentIntents, ArrayList<PendingIntent> deliveryIntents,
-            String packageName) {
+    @SystemApi
+    @TestApi
+    public void sendMultipartTextMessage(
+            @NonNull String destinationAddress, @NonNull String scAddress,
+            @NonNull List<String> parts, @Nullable List<PendingIntent> sentIntents,
+            @Nullable List<PendingIntent> deliveryIntents, @NonNull String packageName) {
         sendMultipartTextMessageInternal(destinationAddress, scAddress, parts, sentIntents,
                 deliveryIntents, true /* persistMessage*/,
                 ActivityThread.currentPackageName() == null
@@ -787,7 +931,6 @@
         }
 
         if (parts.size() > 1) {
-            final Context context = ActivityThread.currentApplication().getApplicationContext();
             // We will only show the SMS disambiguation dialog in the case that the message is being
             // persisted. This is for two reasons:
             // 1) Messages that are not persisted are sent by carrier/OEM apps for a specific
@@ -810,13 +953,13 @@
                         } catch (RemoteException e) {
                             Log.e(TAG, "sendMultipartTextMessageInternal: Couldn't send SMS - "
                                     + e.getMessage());
-                            notifySmsGenericError(sentIntents);
+                            notifySmsError(sentIntents, RESULT_REMOTE_EXCEPTION);
                         }
                     }
 
                     @Override
                     public void onFailure() {
-                        notifySmsErrorNoDefaultSet(context, sentIntents);
+                        notifySmsError(sentIntents, RESULT_NO_DEFAULT_SMS_APP);
                     }
                 });
             } else {
@@ -831,7 +974,7 @@
                 } catch (RemoteException e) {
                     Log.e(TAG, "sendMultipartTextMessageInternal: Couldn't send SMS - "
                             + e.getMessage());
-                    notifySmsGenericError(sentIntents);
+                    notifySmsError(sentIntents, RESULT_REMOTE_EXCEPTION);
                 }
             }
         } else {
@@ -910,12 +1053,63 @@
      *   broadcast when the corresponding message part has been sent.
      *   The result code will be <code>Activity.RESULT_OK</code> for success,
      *   or one of these errors:<br>
-     *   <code>RESULT_ERROR_GENERIC_FAILURE</code><br>
-     *   <code>RESULT_ERROR_RADIO_OFF</code><br>
-     *   <code>RESULT_ERROR_NULL_PDU</code><br>
-     *   For <code>RESULT_ERROR_GENERIC_FAILURE</code> each sentIntent may include
-     *   the extra "errorCode" containing a radio technology specific value,
-     *   generally only useful for troubleshooting.<br>
+     *  <code>RESULT_ERROR_GENERIC_FAILURE</code><br>
+     *  <code>RESULT_ERROR_RADIO_OFF</code><br>
+     *  <code>RESULT_ERROR_NULL_PDU</code><br>
+     *  <code>RESULT_ERROR_NO_SERVICE</code><br>
+     *  <code>RESULT_ERROR_NO_SERVICE</code><br>
+     *  <code>RESULT_ERROR_LIMIT_EXCEEDED</code><br>
+     *  <code>RESULT_ERROR_FDN_CHECK_FAILURE</code><br>
+     *  <code>RESULT_ERROR_SHORT_CODE_NOT_ALLOWED</code><br>
+     *  <code>RESULT_ERROR_SHORT_CODE_NEVER_ALLOWED</code><br>
+     *  <code>RESULT_RADIO_NOT_AVAILABLE</code><br>
+     *  <code>RESULT_NETWORK_REJECT</code><br>
+     *  <code>RESULT_INVALID_ARGUMENTS</code><br>
+     *  <code>RESULT_INVALID_STATE</code><br>
+     *  <code>RESULT_NO_MEMORY</code><br>
+     *  <code>RESULT_INVALID_SMS_FORMAT</code><br>
+     *  <code>RESULT_SYSTEM_ERROR</code><br>
+     *  <code>RESULT_MODEM_ERROR</code><br>
+     *  <code>RESULT_NETWORK_ERROR</code><br>
+     *  <code>RESULT_ENCODING_ERROR</code><br>
+     *  <code>RESULT_INVALID_SMSC_ADDRESS</code><br>
+     *  <code>RESULT_OPERATION_NOT_ALLOWED</code><br>
+     *  <code>RESULT_INTERNAL_ERROR</code><br>
+     *  <code>RESULT_NO_RESOURCES</code><br>
+     *  <code>RESULT_CANCELLED</code><br>
+     *  <code>RESULT_REQUEST_NOT_SUPPORTED</code><br>
+     *  <code>RESULT_NO_BLUETOOTH_SERVICE</code><br>
+     *  <code>RESULT_INVALID_BLUETOOTH_ADDRESS</code><br>
+     *  <code>RESULT_BLUETOOTH_DISCONNECTED</code><br>
+     *  <code>RESULT_UNEXPECTED_EVENT_STOP_SENDING</code><br>
+     *  <code>RESULT_SMS_BLOCKED_DURING_EMERGENCY</code><br>
+     *  <code>RESULT_SMS_SEND_RETRY_FAILED</code><br>
+     *  <code>RESULT_REMOTE_EXCEPTION</code><br>
+     *  <code>RESULT_NO_DEFAULT_SMS_APP</code><br>
+     *  <code>RESULT_RIL_RADIO_NOT_AVAILABLE</code><br>
+     *  <code>RESULT_RIL_SMS_SEND_FAIL_RETRY</code><br>
+     *  <code>RESULT_RIL_NETWORK_REJECT</code><br>
+     *  <code>RESULT_RIL_INVALID_STATE</code><br>
+     *  <code>RESULT_RIL_INVALID_ARGUMENTS</code><br>
+     *  <code>RESULT_RIL_NO_MEMORY</code><br>
+     *  <code>RESULT_RIL_REQUEST_RATE_LIMITED</code><br>
+     *  <code>RESULT_RIL_INVALID_SMS_FORMAT</code><br>
+     *  <code>RESULT_RIL_SYSTEM_ERR</code><br>
+     *  <code>RESULT_RIL_ENCODING_ERR</code><br>
+     *  <code>RESULT_RIL_INVALID_SMSC_ADDRESS</code><br>
+     *  <code>RESULT_RIL_MODEM_ERR</code><br>
+     *  <code>RESULT_RIL_NETWORK_ERR</code><br>
+     *  <code>RESULT_RIL_INTERNAL_ERR</code><br>
+     *  <code>RESULT_RIL_REQUEST_NOT_SUPPORTED</code><br>
+     *  <code>RESULT_RIL_INVALID_MODEM_STATE</code><br>
+     *  <code>RESULT_RIL_NETWORK_NOT_READY</code><br>
+     *  <code>RESULT_RIL_OPERATION_NOT_ALLOWED</code><br>
+     *  <code>RESULT_RIL_NO_RESOURCES</code><br>
+     *  <code>RESULT_RIL_CANCELLED</code><br>
+     *  <code>RESULT_RIL_SIM_ABSENT</code><br>
+     *  For <code>RESULT_ERROR_GENERIC_FAILURE</code> or any of the RESULT_RIL errors,
+     *  the sentIntent may include the extra "errorCode" containing a radio technology specific
+     *  value, generally only useful for troubleshooting.<br>
      *   The per-application based SMS control checks sentIntent. If sentIntent
      *   is NULL the caller will be checked against all unknown applications,
      *   which cause smaller number of SMS to be sent in checking period.
@@ -977,7 +1171,6 @@
         if (parts.size() > 1) {
             final int finalPriority = priority;
             final int finalValidity = validityPeriod;
-            final Context context = ActivityThread.currentApplication().getApplicationContext();
             if (persistMessage) {
                 resolveSubscriptionForOperation(new SubscriptionResolverResult() {
                     @Override
@@ -993,13 +1186,13 @@
                         } catch (RemoteException e) {
                             Log.e(TAG, "sendMultipartTextMessageInternal: Couldn't send SMS - "
                                     + e.getMessage());
-                            notifySmsGenericError(sentIntents);
+                            notifySmsError(sentIntents, RESULT_REMOTE_EXCEPTION);
                         }
                     }
 
                     @Override
                     public void onFailure() {
-                        notifySmsErrorNoDefaultSet(context, sentIntents);
+                        notifySmsError(sentIntents, RESULT_NO_DEFAULT_SMS_APP);
                     }
                 });
             } else {
@@ -1015,7 +1208,7 @@
                 } catch (RemoteException e) {
                     Log.e(TAG, "sendMultipartTextMessageInternal (no persist): Couldn't send SMS - "
                             + e.getMessage());
-                    notifySmsGenericError(sentIntents);
+                    notifySmsError(sentIntents, RESULT_REMOTE_EXCEPTION);
                 }
             }
         } else {
@@ -1060,9 +1253,60 @@
      *  <code>RESULT_ERROR_GENERIC_FAILURE</code><br>
      *  <code>RESULT_ERROR_RADIO_OFF</code><br>
      *  <code>RESULT_ERROR_NULL_PDU</code><br>
-     *  For <code>RESULT_ERROR_GENERIC_FAILURE</code> the sentIntent may include
-     *  the extra "errorCode" containing a radio technology specific value,
-     *  generally only useful for troubleshooting.<br>
+     *  <code>RESULT_ERROR_NO_SERVICE</code><br>
+     *  <code>RESULT_ERROR_NO_SERVICE</code><br>
+     *  <code>RESULT_ERROR_LIMIT_EXCEEDED</code><br>
+     *  <code>RESULT_ERROR_FDN_CHECK_FAILURE</code><br>
+     *  <code>RESULT_ERROR_SHORT_CODE_NOT_ALLOWED</code><br>
+     *  <code>RESULT_ERROR_SHORT_CODE_NEVER_ALLOWED</code><br>
+     *  <code>RESULT_RADIO_NOT_AVAILABLE</code><br>
+     *  <code>RESULT_NETWORK_REJECT</code><br>
+     *  <code>RESULT_INVALID_ARGUMENTS</code><br>
+     *  <code>RESULT_INVALID_STATE</code><br>
+     *  <code>RESULT_NO_MEMORY</code><br>
+     *  <code>RESULT_INVALID_SMS_FORMAT</code><br>
+     *  <code>RESULT_SYSTEM_ERROR</code><br>
+     *  <code>RESULT_MODEM_ERROR</code><br>
+     *  <code>RESULT_NETWORK_ERROR</code><br>
+     *  <code>RESULT_ENCODING_ERROR</code><br>
+     *  <code>RESULT_INVALID_SMSC_ADDRESS</code><br>
+     *  <code>RESULT_OPERATION_NOT_ALLOWED</code><br>
+     *  <code>RESULT_INTERNAL_ERROR</code><br>
+     *  <code>RESULT_NO_RESOURCES</code><br>
+     *  <code>RESULT_CANCELLED</code><br>
+     *  <code>RESULT_REQUEST_NOT_SUPPORTED</code><br>
+     *  <code>RESULT_NO_BLUETOOTH_SERVICE</code><br>
+     *  <code>RESULT_INVALID_BLUETOOTH_ADDRESS</code><br>
+     *  <code>RESULT_BLUETOOTH_DISCONNECTED</code><br>
+     *  <code>RESULT_UNEXPECTED_EVENT_STOP_SENDING</code><br>
+     *  <code>RESULT_SMS_BLOCKED_DURING_EMERGENCY</code><br>
+     *  <code>RESULT_SMS_SEND_RETRY_FAILED</code><br>
+     *  <code>RESULT_REMOTE_EXCEPTION</code><br>
+     *  <code>RESULT_NO_DEFAULT_SMS_APP</code><br>
+     *  <code>RESULT_RIL_RADIO_NOT_AVAILABLE</code><br>
+     *  <code>RESULT_RIL_SMS_SEND_FAIL_RETRY</code><br>
+     *  <code>RESULT_RIL_NETWORK_REJECT</code><br>
+     *  <code>RESULT_RIL_INVALID_STATE</code><br>
+     *  <code>RESULT_RIL_INVALID_ARGUMENTS</code><br>
+     *  <code>RESULT_RIL_NO_MEMORY</code><br>
+     *  <code>RESULT_RIL_REQUEST_RATE_LIMITED</code><br>
+     *  <code>RESULT_RIL_INVALID_SMS_FORMAT</code><br>
+     *  <code>RESULT_RIL_SYSTEM_ERR</code><br>
+     *  <code>RESULT_RIL_ENCODING_ERR</code><br>
+     *  <code>RESULT_RIL_INVALID_SMSC_ADDRESS</code><br>
+     *  <code>RESULT_RIL_MODEM_ERR</code><br>
+     *  <code>RESULT_RIL_NETWORK_ERR</code><br>
+     *  <code>RESULT_RIL_INTERNAL_ERR</code><br>
+     *  <code>RESULT_RIL_REQUEST_NOT_SUPPORTED</code><br>
+     *  <code>RESULT_RIL_INVALID_MODEM_STATE</code><br>
+     *  <code>RESULT_RIL_NETWORK_NOT_READY</code><br>
+     *  <code>RESULT_RIL_OPERATION_NOT_ALLOWED</code><br>
+     *  <code>RESULT_RIL_NO_RESOURCES</code><br>
+     *  <code>RESULT_RIL_CANCELLED</code><br>
+     *  <code>RESULT_RIL_SIM_ABSENT</code><br>
+     *  For <code>RESULT_ERROR_GENERIC_FAILURE</code> or any of the RESULT_RIL errors,
+     *  the sentIntent may include the extra "errorCode" containing a radio technology specific
+     *  value, generally only useful for troubleshooting.<br>
      *  The per-application based SMS control checks sentIntent. If sentIntent
      *  is NULL the caller will be checked against all unknown applications,
      *  which cause smaller number of SMS to be sent in checking period.
@@ -1083,7 +1327,6 @@
             throw new IllegalArgumentException("Invalid message data");
         }
 
-        final Context context = ActivityThread.currentApplication().getApplicationContext();
         resolveSubscriptionForOperation(new SubscriptionResolverResult() {
             @Override
             public void onSuccess(int subId) {
@@ -1094,12 +1337,12 @@
                             sentIntent, deliveryIntent);
                 } catch (RemoteException e) {
                     Log.e(TAG, "sendDataMessage: Couldn't send SMS - Exception: " + e.getMessage());
-                    notifySmsGenericError(sentIntent);
+                    notifySmsError(sentIntent, RESULT_REMOTE_EXCEPTION);
                 }
             }
             @Override
             public void onFailure() {
-                notifySmsErrorNoDefaultSet(context, sentIntent);
+                notifySmsError(sentIntent, RESULT_NO_DEFAULT_SMS_APP);
             }
         });
     }
@@ -1304,53 +1547,20 @@
         return binder;
     }
 
-    private static void notifySmsErrorNoDefaultSet(Context context, PendingIntent pendingIntent) {
+    private static void notifySmsError(PendingIntent pendingIntent, int error) {
         if (pendingIntent != null) {
-            Intent errorMessage = new Intent();
-            errorMessage.putExtra(NO_DEFAULT_EXTRA, true);
             try {
-                pendingIntent.send(context, RESULT_ERROR_GENERIC_FAILURE, errorMessage);
+                pendingIntent.send(error);
             } catch (PendingIntent.CanceledException e) {
                 // Don't worry about it, we do not need to notify the caller if this is the case.
             }
         }
     }
 
-    private static void notifySmsErrorNoDefaultSet(Context context,
-            List<PendingIntent> pendingIntents) {
+    private static void notifySmsError(List<PendingIntent> pendingIntents, int error) {
         if (pendingIntents != null) {
             for (PendingIntent pendingIntent : pendingIntents) {
-                Intent errorMessage = new Intent();
-                errorMessage.putExtra(NO_DEFAULT_EXTRA, true);
-                try {
-                    pendingIntent.send(context, RESULT_ERROR_GENERIC_FAILURE, errorMessage);
-                } catch (PendingIntent.CanceledException e) {
-                    // Don't worry about it, we do not need to notify the caller if this is the
-                    // case.
-                }
-            }
-        }
-    }
-
-    private static void notifySmsGenericError(PendingIntent pendingIntent) {
-        if (pendingIntent != null) {
-            try {
-                pendingIntent.send(RESULT_ERROR_GENERIC_FAILURE);
-            } catch (PendingIntent.CanceledException e) {
-                // Don't worry about it, we do not need to notify the caller if this is the case.
-            }
-        }
-    }
-
-    private static void notifySmsGenericError(List<PendingIntent> pendingIntents) {
-        if (pendingIntents != null) {
-            for (PendingIntent pendingIntent : pendingIntents) {
-                try {
-                    pendingIntent.send(RESULT_ERROR_GENERIC_FAILURE);
-                } catch (PendingIntent.CanceledException e) {
-                    // Don't worry about it, we do not need to notify the caller if this is the
-                    // case.
-                }
+                notifySmsError(pendingIntent, error);
             }
         }
     }
@@ -1797,19 +2007,19 @@
     // see SmsMessage.getStatusOnIcc
 
     /** Free space (TS 51.011 10.5.3 / 3GPP2 C.S0023 3.4.27). */
-    static public final int STATUS_ON_ICC_FREE      = 0;
+    public static final int STATUS_ON_ICC_FREE      = 0;
 
     /** Received and read (TS 51.011 10.5.3 / 3GPP2 C.S0023 3.4.27). */
-    static public final int STATUS_ON_ICC_READ      = 1;
+    public static final int STATUS_ON_ICC_READ      = 1;
 
     /** Received and unread (TS 51.011 10.5.3 / 3GPP2 C.S0023 3.4.27). */
-    static public final int STATUS_ON_ICC_UNREAD    = 3;
+    public static final int STATUS_ON_ICC_UNREAD    = 3;
 
     /** Stored and sent (TS 51.011 10.5.3 / 3GPP2 C.S0023 3.4.27). */
-    static public final int STATUS_ON_ICC_SENT      = 5;
+    public static final int STATUS_ON_ICC_SENT      = 5;
 
     /** Stored and unsent (TS 51.011 10.5.3 / 3GPP2 C.S0023 3.4.27). */
-    static public final int STATUS_ON_ICC_UNSENT    = 7;
+    public static final int STATUS_ON_ICC_UNSENT    = 7;
 
     // SMS send failure result codes
 
@@ -1845,126 +2055,263 @@
 
     /**
      * No error.
-     * @hide
      */
-    @SystemApi
-    static public final int RESULT_ERROR_NONE    = 0;
+    public static final int RESULT_ERROR_NONE    = 0;
+
     /** Generic failure cause */
-    static public final int RESULT_ERROR_GENERIC_FAILURE    = 1;
+    public static final int RESULT_ERROR_GENERIC_FAILURE    = 1;
+
     /** Failed because radio was explicitly turned off */
-    static public final int RESULT_ERROR_RADIO_OFF          = 2;
+    public static final int RESULT_ERROR_RADIO_OFF          = 2;
+
     /** Failed because no pdu provided */
-    static public final int RESULT_ERROR_NULL_PDU           = 3;
+    public static final int RESULT_ERROR_NULL_PDU           = 3;
+
     /** Failed because service is currently unavailable */
-    static public final int RESULT_ERROR_NO_SERVICE         = 4;
+    public static final int RESULT_ERROR_NO_SERVICE         = 4;
+
     /** Failed because we reached the sending queue limit. */
-    static public final int RESULT_ERROR_LIMIT_EXCEEDED     = 5;
+    public static final int RESULT_ERROR_LIMIT_EXCEEDED     = 5;
+
     /**
      * Failed because FDN is enabled.
-     * @hide
      */
-    @SystemApi
-    static public final int RESULT_ERROR_FDN_CHECK_FAILURE  = 6;
+    public static final int RESULT_ERROR_FDN_CHECK_FAILURE  = 6;
+
     /** Failed because user denied the sending of this short code. */
-    static public final int RESULT_ERROR_SHORT_CODE_NOT_ALLOWED = 7;
+    public static final int RESULT_ERROR_SHORT_CODE_NOT_ALLOWED = 7;
+
     /** Failed because the user has denied this app ever send premium short codes. */
-    static public final int RESULT_ERROR_SHORT_CODE_NEVER_ALLOWED = 8;
+    public static final int RESULT_ERROR_SHORT_CODE_NEVER_ALLOWED = 8;
+
     /**
      * Failed because the radio was not available
-     * @hide
      */
-    @SystemApi
-    static public final int RESULT_RADIO_NOT_AVAILABLE = 9;
+    public static final int RESULT_RADIO_NOT_AVAILABLE = 9;
+
     /**
      * Failed because of network rejection
-     * @hide
      */
-    @SystemApi
-    static public final int RESULT_NETWORK_REJECT = 10;
+    public static final int RESULT_NETWORK_REJECT = 10;
+
     /**
      * Failed because of invalid arguments
-     * @hide
      */
-    @SystemApi
-    static public final int RESULT_INVALID_ARGUMENTS = 11;
+    public static final int RESULT_INVALID_ARGUMENTS = 11;
+
     /**
      * Failed because of an invalid state
-     * @hide
      */
-    @SystemApi
-    static public final int RESULT_INVALID_STATE = 12;
+    public static final int RESULT_INVALID_STATE = 12;
+
     /**
      * Failed because there is no memory
-     * @hide
      */
-    @SystemApi
-    static public final int RESULT_NO_MEMORY = 13;
+    public static final int RESULT_NO_MEMORY = 13;
+
     /**
      * Failed because the sms format is not valid
-     * @hide
      */
-    @SystemApi
-    static public final int RESULT_INVALID_SMS_FORMAT = 14;
+    public static final int RESULT_INVALID_SMS_FORMAT = 14;
+
     /**
      * Failed because of a system error
-     * @hide
      */
-    @SystemApi
-    static public final int RESULT_SYSTEM_ERROR = 15;
+    public static final int RESULT_SYSTEM_ERROR = 15;
+
     /**
      * Failed because of a modem error
-     * @hide
      */
-    @SystemApi
-    static public final int RESULT_MODEM_ERROR = 16;
+    public static final int RESULT_MODEM_ERROR = 16;
+
     /**
      * Failed because of a network error
-     * @hide
      */
-    @SystemApi
-    static public final int RESULT_NETWORK_ERROR = 17;
+    public static final int RESULT_NETWORK_ERROR = 17;
+
     /**
      * Failed because of an encoding error
-     * @hide
      */
-    @SystemApi
-    static public final int RESULT_ENCODING_ERROR = 18;
+    public static final int RESULT_ENCODING_ERROR = 18;
+
     /**
      * Failed because of an invalid smsc address
-     * @hide
      */
-    @SystemApi
-    static public final int RESULT_INVALID_SMSC_ADDRESS = 19;
+    public static final int RESULT_INVALID_SMSC_ADDRESS = 19;
+
     /**
      * Failed because the operation is not allowed
-     * @hide
      */
-    @SystemApi
-    static public final int RESULT_OPERATION_NOT_ALLOWED = 20;
+    public static final int RESULT_OPERATION_NOT_ALLOWED = 20;
+
     /**
      * Failed because of an internal error
-     * @hide
      */
-    @SystemApi
-    static public final int RESULT_INTERNAL_ERROR = 21;
+    public static final int RESULT_INTERNAL_ERROR = 21;
+
     /**
      * Failed because there are no resources
-     * @hide
      */
-    @SystemApi
-    static public final int RESULT_NO_RESOURCES = 22;
+    public static final int RESULT_NO_RESOURCES = 22;
+
     /**
      * Failed because the operation was cancelled
-     * @hide
      */
-    @SystemApi
-    static public final int RESULT_CANCELLED = 23;
+    public static final int RESULT_CANCELLED = 23;
+
     /**
      * Failed because the request is not supported
-     * @hide
      */
-    @SystemApi
-    static public final int RESULT_REQUEST_NOT_SUPPORTED = 24;
+    public static final int RESULT_REQUEST_NOT_SUPPORTED = 24;
+
+    /**
+     * Failed sending via bluetooth because the bluetooth service is not available
+     */
+    public static final int RESULT_NO_BLUETOOTH_SERVICE = 25;
+
+    /**
+     * Failed sending via bluetooth because the bluetooth device address is invalid
+     */
+    public static final int RESULT_INVALID_BLUETOOTH_ADDRESS = 26;
+
+    /**
+     * Failed sending via bluetooth because bluetooth disconnected
+     */
+    public static final int RESULT_BLUETOOTH_DISCONNECTED = 27;
+
+    /**
+     * Failed sending because the user denied or canceled the dialog displayed for a premium
+     * shortcode sms or rate-limited sms.
+     */
+    public static final int RESULT_UNEXPECTED_EVENT_STOP_SENDING = 28;
+
+    /**
+     * Failed sending during an emergency call
+     */
+    public static final int RESULT_SMS_BLOCKED_DURING_EMERGENCY = 29;
+
+    /**
+     * Failed to send an sms retry
+     */
+    public static final int RESULT_SMS_SEND_RETRY_FAILED = 30;
+
+    /**
+     * Set by BroadcastReceiver to indicate a remote exception while handling a message.
+     */
+    public static final int RESULT_REMOTE_EXCEPTION = 31;
+
+    /**
+     * Set by BroadcastReceiver to indicate there's no default sms app.
+     */
+    public static final int RESULT_NO_DEFAULT_SMS_APP = 32;
+
+    // Radio Error results
+
+    /**
+     * The radio did not start or is resetting.
+     */
+    public static final int RESULT_RIL_RADIO_NOT_AVAILABLE = 100;
+
+    /**
+     * The radio failed to send the sms and needs to retry.
+     */
+    public static final int RESULT_RIL_SMS_SEND_FAIL_RETRY = 101;
+
+    /**
+     * The sms request was rejected by the network.
+     */
+    public static final int RESULT_RIL_NETWORK_REJECT = 102;
+
+    /**
+     * The radio returned an unexpected request for the current state.
+     */
+    public static final int RESULT_RIL_INVALID_STATE = 103;
+
+    /**
+     * The radio received invalid arguments in the request.
+     */
+    public static final int RESULT_RIL_INVALID_ARGUMENTS = 104;
+
+    /**
+     * The radio didn't have sufficient memory to process the request.
+     */
+    public static final int RESULT_RIL_NO_MEMORY = 105;
+
+    /**
+     * The radio denied the operation due to overly-frequent requests.
+     */
+    public static final int RESULT_RIL_REQUEST_RATE_LIMITED = 106;
+
+    /**
+     * The radio returned an error indicating invalid sms format.
+     */
+    public static final int RESULT_RIL_INVALID_SMS_FORMAT = 107;
+
+    /**
+     * The radio encountered a platform or system error.
+     */
+    public static final int RESULT_RIL_SYSTEM_ERR = 108;
+
+    /**
+     * The SMS message was not encoded properly.
+     */
+    public static final int RESULT_RIL_ENCODING_ERR = 109;
+
+    /**
+     * The specified SMSC address was invalid.
+     */
+    public static final int RESULT_RIL_INVALID_SMSC_ADDRESS = 110;
+
+    /**
+     * The vendor RIL received an unexpected or incorrect response.
+     */
+    public static final int RESULT_RIL_MODEM_ERR = 111;
+
+    /**
+     * The radio received an error from the network.
+     */
+    public static final int RESULT_RIL_NETWORK_ERR = 112;
+
+    /**
+     * The modem encountered an unexpected error scenario while handling the request.
+     */
+    public static final int RESULT_RIL_INTERNAL_ERR = 113;
+
+    /**
+     * The request was not supported by the radio.
+     */
+    public static final int RESULT_RIL_REQUEST_NOT_SUPPORTED = 114;
+
+    /**
+     * The radio cannot process the request in the current modem state.
+     */
+    public static final int RESULT_RIL_INVALID_MODEM_STATE = 115;
+
+    /**
+     * The network is not ready to perform the request.
+     */
+    public static final int RESULT_RIL_NETWORK_NOT_READY = 116;
+
+    /**
+     * The radio reports the request is not allowed.
+     */
+    public static final int RESULT_RIL_OPERATION_NOT_ALLOWED = 117;
+
+    /**
+     * There are not sufficient resources to process the request.
+     */
+    public static final int RESULT_RIL_NO_RESOURCES = 118;
+
+    /**
+     * The request has been cancelled.
+     */
+    public static final int RESULT_RIL_CANCELLED = 119;
+
+    /**
+     * The radio failed to set the location where the CDMA subscription
+     * can be retrieved because the SIM or RUIM is absent.
+     */
+    public static final int RESULT_RIL_SIM_ABSENT = 120;
 
     /**
      * Send an MMS message
diff --git a/telephony/java/android/telephony/SubscriptionInfo.java b/telephony/java/android/telephony/SubscriptionInfo.java
index 36e8123..58f2858 100644
--- a/telephony/java/android/telephony/SubscriptionInfo.java
+++ b/telephony/java/android/telephony/SubscriptionInfo.java
@@ -551,7 +551,6 @@
      *
      * @param context Context of the application to check.
      * @return whether the app is authorized to manage this subscription per its metadata.
-     * @throws UnsupportedOperationException if this subscription is not embedded.
      * @hide
      * @deprecated - Do not use.
      */
@@ -567,15 +566,11 @@
      * @param context Any context.
      * @param packageName Package name of the app to check.
      * @return whether the app is authorized to manage this subscription per its metadata.
-     * @throws UnsupportedOperationException if this subscription is not embedded.
      * @hide
      * @deprecated - Do not use.
      */
     @Deprecated
     public boolean canManageSubscription(Context context, String packageName) {
-        if (!isEmbedded()) {
-            throw new UnsupportedOperationException("Not an embedded subscription");
-        }
         List<UiccAccessRule> allAccessRules = getAllAccessRules();
         if (allAccessRules == null) {
             return false;
@@ -585,7 +580,8 @@
         try {
             packageInfo = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES);
         } catch (PackageManager.NameNotFoundException e) {
-            throw new IllegalArgumentException("Unknown package: " + packageName, e);
+            Log.d("SubscriptionInfo", "canManageSubscription: Unknown package: " + packageName, e);
+            return false;
         }
         for (UiccAccessRule rule : allAccessRules) {
             if (rule.getCarrierPrivilegeStatus(packageInfo)
@@ -606,9 +602,6 @@
      */
     @SystemApi
     public @Nullable List<UiccAccessRule> getAccessRules() {
-        if (!isEmbedded()) {
-            throw new UnsupportedOperationException("Not an embedded subscription");
-        }
         if (mNativeAccessRules == null) return null;
         return Arrays.asList(mNativeAccessRules);
     }
@@ -619,11 +612,10 @@
      * @hide
      */
     public @Nullable List<UiccAccessRule> getAllAccessRules() {
-        if (!isEmbedded()) {
-            throw new UnsupportedOperationException("Not an embedded subscription");
-        }
         List<UiccAccessRule> merged = new ArrayList<>();
-        if (mNativeAccessRules != null) merged.addAll(getAccessRules());
+        if (mNativeAccessRules != null) {
+            merged.addAll(getAccessRules());
+        }
         if (mCarrierConfigAccessRules != null) {
             merged.addAll(Arrays.asList(mCarrierConfigAccessRules));
         }
diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java
index 2d39c85..3e51ff6 100644
--- a/telephony/java/android/telephony/SubscriptionManager.java
+++ b/telephony/java/android/telephony/SubscriptionManager.java
@@ -31,6 +31,7 @@
 import android.annotation.SuppressAutoDoc;
 import android.annotation.SystemApi;
 import android.annotation.SystemService;
+import android.annotation.TestApi;
 import android.annotation.UnsupportedAppUsage;
 import android.app.BroadcastOptions;
 import android.app.PendingIntent;
@@ -48,21 +49,22 @@
 import android.os.Binder;
 import android.os.Build;
 import android.os.Handler;
+import android.os.HandlerExecutor;
 import android.os.Looper;
 import android.os.Message;
 import android.os.ParcelUuid;
 import android.os.Process;
 import android.os.RemoteException;
 import android.os.ServiceManager;
+import android.telephony.Annotation.NetworkType;
 import android.telephony.euicc.EuiccManager;
 import android.telephony.ims.ImsMmTelManager;
 import android.util.DisplayMetrics;
 import android.util.Log;
+import android.util.Pair;
 
-import com.android.internal.telephony.IOnSubscriptionsChangedListener;
 import com.android.internal.telephony.ISetOpportunisticDataCallback;
 import com.android.internal.telephony.ISub;
-import com.android.internal.telephony.ITelephonyRegistry;
 import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.util.Preconditions;
 
@@ -75,6 +77,7 @@
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.Executor;
 import java.util.concurrent.TimeUnit;
 import java.util.function.Consumer;
@@ -157,6 +160,7 @@
      */
     @NonNull
     @SystemApi
+    @TestApi
     public static final Uri WFC_ENABLED_CONTENT_URI = Uri.withAppendedPath(CONTENT_URI, "wfc");
 
     /**
@@ -176,6 +180,7 @@
      */
     @NonNull
     @SystemApi
+    @TestApi
     public static final Uri ADVANCED_CALLING_ENABLED_CONTENT_URI = Uri.withAppendedPath(
             CONTENT_URI, "advanced_calling");
 
@@ -194,6 +199,7 @@
      */
     @NonNull
     @SystemApi
+    @TestApi
     public static final Uri WFC_MODE_CONTENT_URI = Uri.withAppendedPath(CONTENT_URI, "wfc_mode");
 
     /**
@@ -211,6 +217,7 @@
      */
     @NonNull
     @SystemApi
+    @TestApi
     public static final Uri WFC_ROAMING_MODE_CONTENT_URI = Uri.withAppendedPath(
             CONTENT_URI, "wfc_roaming_mode");
 
@@ -230,6 +237,7 @@
      */
     @NonNull
     @SystemApi
+    @TestApi
     public static final Uri VT_ENABLED_CONTENT_URI = Uri.withAppendedPath(
             CONTENT_URI, "vt_enabled");
 
@@ -248,6 +256,7 @@
      */
     @NonNull
     @SystemApi
+    @TestApi
     public static final Uri WFC_ROAMING_ENABLED_CONTENT_URI = Uri.withAppendedPath(
             CONTENT_URI, "wfc_roaming_enabled");
 
@@ -903,6 +912,11 @@
     private final Context mContext;
     private volatile INetworkPolicyManager mNetworkPolicy;
 
+    // Cache of Resource that has been created in getResourcesForSubId. Key is a Pair containing
+    // the Context and subId.
+    private static final Map<Pair<Context, Integer>, Resources> sResourcesCache =
+            new ConcurrentHashMap<>();
+
     /**
      * A listener class for monitoring changes to {@link SubscriptionInfo} records.
      * <p>
@@ -923,20 +937,24 @@
             OnSubscriptionsChangedListenerHandler(Looper looper) {
                 super(looper);
             }
-
-            @Override
-            public void handleMessage(Message msg) {
-                if (DBG) {
-                    log("handleMessage: invoke the overriden onSubscriptionsChanged()");
-                }
-                OnSubscriptionsChangedListener.this.onSubscriptionsChanged();
-            }
         }
 
-        private final Handler mHandler;
+        /**
+         * Posted executor callback on the handler associated with a given looper.
+         * The looper can be the calling thread's looper or the looper passed from the
+         * constructor {@link #OnSubscriptionsChangedListener(Looper)}.
+         */
+        private final HandlerExecutor mExecutor;
+
+        /**
+         * @hide
+         */
+        public HandlerExecutor getHandlerExecutor() {
+            return mExecutor;
+        }
 
         public OnSubscriptionsChangedListener() {
-            mHandler = new OnSubscriptionsChangedListenerHandler();
+            mExecutor = new HandlerExecutor(new OnSubscriptionsChangedListenerHandler());
         }
 
         /**
@@ -945,7 +963,7 @@
          * @hide
          */
         public OnSubscriptionsChangedListener(Looper looper) {
-            mHandler = new OnSubscriptionsChangedListenerHandler(looper);
+            mExecutor = new HandlerExecutor(new OnSubscriptionsChangedListenerHandler(looper));
         }
 
         /**
@@ -957,18 +975,6 @@
             if (DBG) log("onSubscriptionsChanged: NOT OVERRIDDEN");
         }
 
-        /**
-         * The callback methods need to be called on the handler thread where
-         * this object was created.  If the binder did that for us it'd be nice.
-         */
-        IOnSubscriptionsChangedListener callback = new IOnSubscriptionsChangedListener.Stub() {
-            @Override
-            public void onSubscriptionsChanged() {
-                if (DBG) log("callback: received, sendEmptyMessage(0) to handler");
-                mHandler.sendEmptyMessage(0);
-            }
-        };
-
         private void log(String s) {
             Rlog.d(LOG_TAG, s);
         }
@@ -1010,21 +1016,19 @@
      *                 onSubscriptionsChanged overridden.
      */
     public void addOnSubscriptionsChangedListener(OnSubscriptionsChangedListener listener) {
+        if (listener == null) return;
         String pkgName = mContext != null ? mContext.getOpPackageName() : "<unknown>";
         if (DBG) {
             logd("register OnSubscriptionsChangedListener pkgName=" + pkgName
                     + " listener=" + listener);
         }
-        try {
-            // We use the TelephonyRegistry as it runs in the system and thus is always
-            // available. Where as SubscriptionController could crash and not be available
-            ITelephonyRegistry tr = ITelephonyRegistry.Stub.asInterface(ServiceManager.getService(
-                    "telephony.registry"));
-            if (tr != null) {
-                tr.addOnSubscriptionsChangedListener(pkgName, listener.callback);
-            }
-        } catch (RemoteException ex) {
-            Log.e(LOG_TAG, "Remote exception ITelephonyRegistry " + ex);
+        // We use the TelephonyRegistry as it runs in the system and thus is always
+        // available. Where as SubscriptionController could crash and not be available
+        TelephonyRegistryManager telephonyRegistryManager = (TelephonyRegistryManager)
+                mContext.getSystemService(Context.TELEPHONY_REGISTRY_SERVICE);
+        if (telephonyRegistryManager != null) {
+            telephonyRegistryManager.addOnSubscriptionsChangedListener(listener,
+                    listener.mExecutor);
         }
     }
 
@@ -1036,21 +1040,18 @@
      * @param listener that is to be unregistered.
      */
     public void removeOnSubscriptionsChangedListener(OnSubscriptionsChangedListener listener) {
+        if (listener == null) return;
         String pkgForDebug = mContext != null ? mContext.getOpPackageName() : "<unknown>";
         if (DBG) {
             logd("unregister OnSubscriptionsChangedListener pkgForDebug=" + pkgForDebug
                     + " listener=" + listener);
         }
-        try {
-            // We use the TelephonyRegistry as it runs in the system and thus is always
-            // available where as SubscriptionController could crash and not be available
-            ITelephonyRegistry tr = ITelephonyRegistry.Stub.asInterface(ServiceManager.getService(
-                    "telephony.registry"));
-            if (tr != null) {
-                tr.removeOnSubscriptionsChangedListener(pkgForDebug, listener.callback);
-            }
-        } catch (RemoteException ex) {
-            Log.e(LOG_TAG, "Remote exception ITelephonyRegistry " + ex);
+        // We use the TelephonyRegistry as it runs in the system and thus is always
+        // available where as SubscriptionController could crash and not be available
+        TelephonyRegistryManager telephonyRegistryManager = (TelephonyRegistryManager)
+                mContext.getSystemService(Context.TELEPHONY_REGISTRY_SERVICE);
+        if (telephonyRegistryManager != null) {
+            telephonyRegistryManager.removeOnSubscriptionsChangedListener(listener);
         }
     }
 
@@ -1069,7 +1070,6 @@
      * for #onOpportunisticSubscriptionsChanged to be invoked.
      */
     public static class OnOpportunisticSubscriptionsChangedListener {
-        private Executor mExecutor;
         /**
          * Callback invoked when there is any change to any SubscriptionInfo. Typically
          * this method would invoke {@link #getActiveSubscriptionInfoList}
@@ -1078,27 +1078,6 @@
             if (DBG) log("onOpportunisticSubscriptionsChanged: NOT OVERRIDDEN");
         }
 
-        private void setExecutor(Executor executor) {
-            mExecutor = executor;
-        }
-
-        /**
-         * The callback methods need to be called on the handler thread where
-         * this object was created.  If the binder did that for us it'd be nice.
-         */
-        IOnSubscriptionsChangedListener callback = new IOnSubscriptionsChangedListener.Stub() {
-            @Override
-            public void onSubscriptionsChanged() {
-                final long identity = Binder.clearCallingIdentity();
-                try {
-                    if (DBG) log("onOpportunisticSubscriptionsChanged callback received.");
-                    mExecutor.execute(() -> onOpportunisticSubscriptionsChanged());
-                } finally {
-                    Binder.restoreCallingIdentity(identity);
-                }
-            }
-        };
-
         private void log(String s) {
             Rlog.d(LOG_TAG, s);
         }
@@ -1125,18 +1104,13 @@
                     + " listener=" + listener);
         }
 
-        listener.setExecutor(executor);
-
-        try {
-            // We use the TelephonyRegistry as it runs in the system and thus is always
-            // available. Where as SubscriptionController could crash and not be available
-            ITelephonyRegistry tr = ITelephonyRegistry.Stub.asInterface(ServiceManager.getService(
-                    "telephony.registry"));
-            if (tr != null) {
-                tr.addOnOpportunisticSubscriptionsChangedListener(pkgName, listener.callback);
-            }
-        } catch (RemoteException ex) {
-            Log.e(LOG_TAG, "Remote exception ITelephonyRegistry " + ex);
+        // We use the TelephonyRegistry as it runs in the system and thus is always
+        // available where as SubscriptionController could crash and not be available
+        TelephonyRegistryManager telephonyRegistryManager = (TelephonyRegistryManager)
+                mContext.getSystemService(Context.TELEPHONY_REGISTRY_SERVICE);
+        if (telephonyRegistryManager != null) {
+            telephonyRegistryManager.addOnOpportunisticSubscriptionsChangedListener(
+                    listener, executor);
         }
     }
 
@@ -1156,16 +1130,10 @@
             logd("unregister OnOpportunisticSubscriptionsChangedListener pkgForDebug="
                     + pkgForDebug + " listener=" + listener);
         }
-        try {
-            // We use the TelephonyRegistry as it runs in the system and thus is always
-            // available where as SubscriptionController could crash and not be available
-            ITelephonyRegistry tr = ITelephonyRegistry.Stub.asInterface(ServiceManager.getService(
-                    "telephony.registry"));
-            if (tr != null) {
-                tr.removeOnSubscriptionsChangedListener(pkgForDebug, listener.callback);
-            }
-        } catch (RemoteException ex) {
-            Log.e(LOG_TAG, "Remote exception ITelephonyRegistry " + ex);
+        TelephonyRegistryManager telephonyRegistryManager = (TelephonyRegistryManager)
+                mContext.getSystemService(Context.TELEPHONY_REGISTRY_SERVICE);
+        if (telephonyRegistryManager != null) {
+            telephonyRegistryManager.removeOnOpportunisticSubscriptionsChangedListener(listener);
         }
     }
 
@@ -1867,13 +1835,27 @@
         return subId;
     }
 
-    /** @hide */
-    public void setDefaultVoiceSubId(int subId) {
-        if (VDBG) logd("setDefaultVoiceSubId sub id = " + subId);
+    /**
+     * Sets the system's default voice subscription id.
+     *
+     * On a data-only device, this is a no-op.
+     *
+     * May throw a {@link RuntimeException} if the provided subscription id is equal to
+     * {@link SubscriptionManager#DEFAULT_SUBSCRIPTION_ID}
+     *
+     * @param subscriptionId A valid subscription ID to set as the system default, or
+     *                       {@link SubscriptionManager#INVALID_SUBSCRIPTION_ID}
+     * @hide
+     */
+    @SystemApi
+    @TestApi
+    @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
+    public void setDefaultVoiceSubscriptionId(int subscriptionId) {
+        if (VDBG) logd("setDefaultVoiceSubId sub id = " + subscriptionId);
         try {
             ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub"));
             if (iSub != null) {
-                iSub.setDefaultVoiceSubId(subId);
+                iSub.setDefaultVoiceSubId(subscriptionId);
             }
         } catch (RemoteException ex) {
             // ignore it
@@ -1881,6 +1863,15 @@
     }
 
     /**
+     * Same as {@link #setDefaultVoiceSubscriptionId(int)}, but preserved for backwards
+     * compatibility.
+     * @hide
+     */
+    public void setDefaultVoiceSubId(int subId) {
+        setDefaultVoiceSubscriptionId(subId);
+    }
+
+    /**
      * Return the SubscriptionInfo for default voice subscription.
      *
      * Will return null on data only devices, or on error.
@@ -2100,13 +2091,13 @@
     /** @hide */
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
     public static boolean isValidSlotIndex(int slotIndex) {
-        return slotIndex >= 0 && slotIndex < TelephonyManager.getDefault().getSupportedModemCount();
+        return slotIndex >= 0 && slotIndex < TelephonyManager.getDefault().getActiveModemCount();
     }
 
     /** @hide */
     @UnsupportedAppUsage
     public static boolean isValidPhoneId(int phoneId) {
-        return phoneId >= 0 && phoneId < TelephonyManager.getDefault().getSupportedModemCount();
+        return phoneId >= 0 && phoneId < TelephonyManager.getDefault().getActiveModemCount();
     }
 
     /** @hide */
@@ -2320,8 +2311,20 @@
      * @return Resources associated with Subscription.
      * @hide
      */
+    @NonNull
     public static Resources getResourcesForSubId(Context context, int subId,
             boolean useRootLocale) {
+        // Check if resources for this context and subId already exist in the resource cache.
+        // Resources that use the root locale are not cached.
+        Pair<Context, Integer> cacheKey = null;
+        if (isValidSubscriptionId(subId) && !useRootLocale) {
+            cacheKey = Pair.create(context, subId);
+            if (sResourcesCache.containsKey(cacheKey)) {
+                // Cache hit. Use cached Resources.
+                return sResourcesCache.get(cacheKey);
+            }
+        }
+
         final SubscriptionInfo subInfo =
                 SubscriptionManager.from(context).getActiveSubscriptionInfo(subId);
 
@@ -2341,7 +2344,13 @@
         DisplayMetrics metrics = context.getResources().getDisplayMetrics();
         DisplayMetrics newMetrics = new DisplayMetrics();
         newMetrics.setTo(metrics);
-        return new Resources(context.getResources().getAssets(), newMetrics, newConfig);
+        Resources res = new Resources(context.getResources().getAssets(), newMetrics, newConfig);
+
+        if (cacheKey != null) {
+            // Save the newly created Resources in the resource cache.
+            sResourcesCache.put(cacheKey, res);
+        }
+        return res;
     }
 
     /**
@@ -2599,7 +2608,6 @@
      *
      * @param info The subscription to check.
      * @return whether the app is authorized to manage this subscription per its metadata.
-     * @throws IllegalArgumentException if this subscription is not embedded.
      */
     public boolean canManageSubscription(SubscriptionInfo info) {
         return canManageSubscription(info, mContext.getPackageName());
@@ -2615,14 +2623,10 @@
      * @param info The subscription to check.
      * @param packageName Package name of the app to check.
      * @return whether the app is authorized to manage this subscription per its access rules.
-     * @throws IllegalArgumentException if this subscription is not embedded.
      * @hide
      */
     public boolean canManageSubscription(SubscriptionInfo info, String packageName) {
-        if (!info.isEmbedded()) {
-            throw new IllegalArgumentException("Not an embedded subscription");
-        }
-        if (info.getAllAccessRules() == null) {
+        if (info == null || info.getAllAccessRules() == null) {
             return false;
         }
         PackageManager packageManager = mContext.getPackageManager();
@@ -2630,7 +2634,8 @@
         try {
             packageInfo = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES);
         } catch (PackageManager.NameNotFoundException e) {
-            throw new IllegalArgumentException("Unknown package: " + packageName, e);
+            logd("Unknown package: " + packageName);
+            return false;
         }
         for (UiccAccessRule rule : info.getAllAccessRules()) {
             if (rule.getCarrierPrivilegeStatus(packageInfo)
@@ -2966,6 +2971,7 @@
      * permission or had carrier privilege permission on the subscription.
      * {@link TelephonyManager#hasCarrierPrivileges()}
      *
+     * @throws IllegalStateException if Telephony service is in bad state.
      * @throws SecurityException if the caller doesn't meet the requirements
      *             outlined above.
      *
@@ -3023,7 +3029,7 @@
         // to the caller.
         boolean hasCarrierPrivilegePermission = TelephonyManager.from(mContext)
                 .hasCarrierPrivileges(info.getSubscriptionId())
-                || (info.isEmbedded() && canManageSubscription(info));
+                || canManageSubscription(info);
         return hasCarrierPrivilegePermission;
     }
 
@@ -3201,13 +3207,14 @@
     }
 
     /**
-     * Get active data subscription id.
+     * Get active data subscription id. Active data subscription refers to the subscription
+     * currently chosen to provide cellular internet connection to the user. This may be
+     * different from getDefaultDataSubscriptionId(). Eg. Opportunistics data
+     *
      * See {@link PhoneStateListener#onActiveDataSubscriptionIdChanged(int)} for the details.
      *
-     * @return Active data subscription id
-     *
-     * //TODO: Refactor this API in b/134702460
-     * @hide
+     * @return Active data subscription id if any is chosen, or
+     * SubscriptionManager.INVALID_SUBSCRIPTION_ID if not.
      */
     public static int getActiveDataSubscriptionId() {
         try {
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 72e5901..72e76ee 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -38,6 +38,7 @@
 import android.annotation.WorkerThread;
 import android.app.ActivityThread;
 import android.app.PendingIntent;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.net.ConnectivityManager;
@@ -63,8 +64,13 @@
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
+import android.telephony.Annotation.ApnType;
+import android.telephony.Annotation.CallState;
+import android.telephony.Annotation.DataState;
+import android.telephony.Annotation.NetworkType;
+import android.telephony.Annotation.RadioPowerState;
+import android.telephony.Annotation.SimActivationState;
 import android.telephony.VisualVoicemailService.VisualVoicemailTask;
-import android.telephony.data.ApnSetting;
 import android.telephony.emergency.EmergencyNumber;
 import android.telephony.emergency.EmergencyNumber.EmergencyServiceCategories;
 import android.telephony.ims.ImsMmTelManager;
@@ -80,7 +86,6 @@
 
 import com.android.ims.internal.IImsServiceFeatureCallback;
 import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.telecom.ITelecomService;
 import com.android.internal.telephony.CellNetworkScanResult;
 import com.android.internal.telephony.INumberVerificationCallback;
 import com.android.internal.telephony.IOns;
@@ -92,6 +97,7 @@
 import com.android.internal.telephony.OperatorInfo;
 import com.android.internal.telephony.PhoneConstants;
 import com.android.internal.telephony.RILConstants;
+import com.android.internal.telephony.SmsApplication;
 import com.android.internal.telephony.TelephonyProperties;
 
 import dalvik.system.VMRuntime;
@@ -193,12 +199,29 @@
     /** @hide */
     static public final int OTASP_SIM_UNPROVISIONED = 5;
 
-    /** @hide */
+    /**
+     * Used in carrier Wi-Fi for IMSI + IMPI encryption, this indicates a public key that's
+     * available for use in ePDG links.
+     *
+     * @hide
+     */
+    @SystemApi
     static public final int KEY_TYPE_EPDG = 1;
 
-    /** @hide */
+    /**
+     * Used in carrier Wi-Fi for IMSI + IMPI encryption, this indicates a public key that's
+     * available for use in WLAN links.
+     *
+     * @hide
+     */
+    @SystemApi
     static public final int KEY_TYPE_WLAN = 2;
 
+    /** @hide */
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(prefix = {"KEY_TYPE_"}, value = {KEY_TYPE_EPDG, KEY_TYPE_WLAN})
+    public @interface KeyType {}
+
     /**
      * No Single Radio Voice Call Continuity (SRVCC) handover is active.
      * See TS 23.216 for more information.
@@ -254,17 +277,6 @@
      */
     public static final int UNINITIALIZED_CARD_ID = -2;
 
-    /** @hide */
-    @Retention(RetentionPolicy.SOURCE)
-    @IntDef(prefix = {"SRVCC_STATE_"},
-            value = {
-                    SRVCC_STATE_HANDOVER_NONE,
-                    SRVCC_STATE_HANDOVER_STARTED,
-                    SRVCC_STATE_HANDOVER_COMPLETED,
-                    SRVCC_STATE_HANDOVER_FAILED,
-                    SRVCC_STATE_HANDOVER_CANCELED})
-    public @interface SrvccState {}
-
     private final Context mContext;
     private final int mSubId;
     @UnsupportedAppUsage
@@ -277,6 +289,8 @@
      *  TSTS - Triple SIM Triple Standby
      **/
     /** @hide */
+    @UnsupportedAppUsage(implicitMember =
+            "values()[Landroid/telephony/TelephonyManager$MultiSimVariants;")
     public enum MultiSimVariants {
         @UnsupportedAppUsage
         DSDS,
@@ -435,6 +449,25 @@
                 getActiveModemCount());
     }
 
+    /**
+     * Gets the maximum number of SIMs that can be active, based on the device's multisim
+     * configuration.
+     * @return 1 for single-SIM, DSDS, and TSTS devices. 2 for DSDA devices.
+     * @hide
+     */
+    @SystemApi
+    public int getMaxNumberOfSimultaneouslyActiveSims() {
+        switch (getMultiSimConfiguration()) {
+            case UNKNOWN:
+            case DSDS:
+            case TSTS:
+                return 1;
+            case DSDA:
+                return 2;
+        }
+        return 1;
+    }
+
     /** {@hide} */
     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
     public static TelephonyManager from(Context context) {
@@ -460,7 +493,7 @@
      */
     @Nullable
     public TelephonyManager createForPhoneAccountHandle(PhoneAccountHandle phoneAccountHandle) {
-        int subId = getSubIdForPhoneAccountHandle(phoneAccountHandle);
+        int subId = getSubscriptionId(phoneAccountHandle);
         if (!SubscriptionManager.isValidSubscriptionId(subId)) {
             return null;
         }
@@ -1616,12 +1649,11 @@
      * Returns the software version number for the device, for example,
      * the IMEI/SV for GSM phones. Return null if the software version is
      * not available.
-     *
-     * <p>Requires Permission: {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
-     * or that the calling app has carrier privileges (see {@link #hasCarrierPrivileges}).
+     * <p>
+     * Requires Permission: {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}.
      */
-    @SuppressAutoDoc // Blocked by b/72967236 - no support for carrier privileges
     @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
+    @Nullable
     public String getDeviceSoftwareVersion() {
         return getDeviceSoftwareVersion(getSlotIndex());
     }
@@ -1630,12 +1662,16 @@
      * Returns the software version number for the device, for example,
      * the IMEI/SV for GSM phones. Return null if the software version is
      * not available.
+     * <p>
+     * Requires Permission: READ_PRIVILEGED_PHONE_STATE.
      *
      * @param slotIndex of which deviceID is returned
+     *
+     * @hide
      */
-    /** {@hide} */
-    @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
-    @UnsupportedAppUsage
+    @SystemApi
+    @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
+    @Nullable
     public String getDeviceSoftwareVersion(int slotIndex) {
         ITelephony telephony = getITelephony();
         if (telephony == null) return null;
@@ -1655,8 +1691,8 @@
      *
      * <p>Requires Permission: READ_PRIVILEGED_PHONE_STATE, for the calling app to be the device or
      * profile owner and have the READ_PHONE_STATE permission, or that the calling app has carrier
-     * privileges (see {@link #hasCarrierPrivileges}). The profile owner is an app that owns a
-     * managed profile on the device; for more details see <a
+     * privileges (see {@link #hasCarrierPrivileges}) on any active subscription. The profile owner
+     * is an app that owns a managed profile on the device; for more details see <a
      * href="https://developer.android.com/work/managed-profiles">Work profiles</a>. Profile owner
      * access is deprecated and will be removed in a future release.
      *
@@ -1696,8 +1732,8 @@
      *
      * <p>Requires Permission: READ_PRIVILEGED_PHONE_STATE, for the calling app to be the device or
      * profile owner and have the READ_PHONE_STATE permission, or that the calling app has carrier
-     * privileges (see {@link #hasCarrierPrivileges}). The profile owner is an app that owns a
-     * managed profile on the device; for more details see <a
+     * privileges (see {@link #hasCarrierPrivileges}) on any active subscription. The profile owner
+     * is an app that owns a managed profile on the device; for more details see <a
      * href="https://developer.android.com/work/managed-profiles">Work profiles</a>. Profile owner
      * access is deprecated and will be removed in a future release.
      *
@@ -1756,7 +1792,8 @@
      *     <li>The caller holds the READ_PRIVILEGED_PHONE_STATE permission.</li>
      *     <li>If the caller is the device or profile owner, the caller holds the
      *     {@link Manifest.permission#READ_PHONE_STATE} permission.</li>
-     *     <li>The caller has carrier privileges (see {@link #hasCarrierPrivileges()}.</li>
+     *     <li>The caller has carrier privileges (see {@link #hasCarrierPrivileges()} on any
+     *     active subscription.</li>
      *     <li>The caller is the default SMS app for the device.</li>
      * </ul>
      * <p>The profile owner is an app that owns a managed profile on the device; for more details
@@ -1825,8 +1862,8 @@
      *
      * <p>Requires Permission: READ_PRIVILEGED_PHONE_STATE, for the calling app to be the device or
      * profile owner and have the READ_PHONE_STATE permission, or that the calling app has carrier
-     * privileges (see {@link #hasCarrierPrivileges}). The profile owner is an app that owns a
-     * managed profile on the device; for more details see <a
+     * privileges (see {@link #hasCarrierPrivileges}) on any active subscription. The profile owner
+     * is an app that owns a managed profile on the device; for more details see <a
      * href="https://developer.android.com/work/managed-profiles">Work profiles</a>. Profile owner
      * access is deprecated and will be removed in a future release.
      *
@@ -1852,8 +1889,8 @@
      *
      * <p>Requires Permission: READ_PRIVILEGED_PHONE_STATE, for the calling app to be the device or
      * profile owner and have the READ_PHONE_STATE permission, or that the calling app has carrier
-     * privileges (see {@link #hasCarrierPrivileges}). The profile owner is an app that owns a
-     * managed profile on the device; for more details see <a
+     * privileges (see {@link #hasCarrierPrivileges}) on any active subscription. The profile owner
+     * is an app that owns a managed profile on the device; for more details see <a
      * href="https://developer.android.com/work/managed-profiles">Work profiles</a>. Profile owner
      * access is deprecated and will be removed in a future release.
      *
@@ -2588,33 +2625,6 @@
     /** Max network type number. Update as new types are added. Don't add negative types. {@hide} */
     public static final int MAX_NETWORK_TYPE = NETWORK_TYPE_NR;
 
-    /** @hide */
-    @IntDef({
-            NETWORK_TYPE_UNKNOWN,
-            NETWORK_TYPE_GPRS,
-            NETWORK_TYPE_EDGE,
-            NETWORK_TYPE_UMTS,
-            NETWORK_TYPE_CDMA,
-            NETWORK_TYPE_EVDO_0,
-            NETWORK_TYPE_EVDO_A,
-            NETWORK_TYPE_1xRTT,
-            NETWORK_TYPE_HSDPA,
-            NETWORK_TYPE_HSUPA,
-            NETWORK_TYPE_HSPA,
-            NETWORK_TYPE_IDEN,
-            NETWORK_TYPE_EVDO_B,
-            NETWORK_TYPE_LTE,
-            NETWORK_TYPE_EHRPD,
-            NETWORK_TYPE_HSPAP,
-            NETWORK_TYPE_GSM,
-            NETWORK_TYPE_TD_SCDMA,
-            NETWORK_TYPE_IWLAN,
-            NETWORK_TYPE_LTE_CA,
-            NETWORK_TYPE_NR,
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface NetworkType{}
-
     /**
      * Return the current data network type.
      *
@@ -2791,6 +2801,8 @@
     /** Class of broadly defined "4G" networks. {@hide} */
     @UnsupportedAppUsage
     public static final int NETWORK_CLASS_4_G = 3;
+    /** Class of broadly defined "5G" networks. {@hide} */
+    public static final int NETWORK_CLASS_5_G = 4;
 
     /**
      * Return general class of network type, such as "3G" or "4G". In cases
@@ -2823,6 +2835,8 @@
             case NETWORK_TYPE_IWLAN:
             case NETWORK_TYPE_LTE_CA:
                 return NETWORK_CLASS_4_G;
+            case NETWORK_TYPE_NR:
+                return NETWORK_CLASS_5_G;
             default:
                 return NETWORK_CLASS_UNKNOWN;
         }
@@ -3817,25 +3831,27 @@
     }
 
     /**
-     * Returns Carrier specific information that will be used to encrypt the IMSI and IMPI.
-     * This includes the public key and the key identifier. For multi-sim devices, if no subId
-     * has been specified, we will return the value for the dafault data sim.
-     * Return null if it is unavailable.
+     * Returns carrier specific information that will be used to encrypt the IMSI and IMPI,
+     * including the public key and the key identifier; or {@code null} if not available.
      * <p>
-     * Requires Permission:
-     *   {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
-     * @param keyType whether the key is being used for wlan or epdg. Valid key types are
-     *        {@link TelephonyManager#KEY_TYPE_EPDG} or
-     *        {@link TelephonyManager#KEY_TYPE_WLAN}.
+     * For a multi-sim device, the dafault data sim is used if not specified.
+     * <p>
+     * Requires Permission: READ_PRIVILEGED_PHONE_STATE.
+     *
+     * @param keyType whether the key is being used for EPDG or WLAN. Valid values are
+     *        {@link #KEY_TYPE_EPDG} or {@link #KEY_TYPE_WLAN}.
      * @return ImsiEncryptionInfo Carrier specific information that will be used to encrypt the
      *         IMSI and IMPI. This includes the public key and the key identifier. This information
-     *         will be stored in the device keystore. The system will return a null when no key was
-     *         found, and the carrier does not require a key. The system will throw
-     *         IllegalArgumentException when an invalid key is sent or when key is required but
+     *         will be stored in the device keystore. {@code null} will be returned when no key is
+     *         found, and the carrier does not require a key.
+     * @throws IllegalArgumentException when an invalid key is found or when key is required but
      *         not found.
      * @hide
      */
-    public ImsiEncryptionInfo getCarrierInfoForImsiEncryption(int keyType) {
+    @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
+    @SystemApi
+    @Nullable
+    public ImsiEncryptionInfo getCarrierInfoForImsiEncryption(@KeyType int keyType) {
         try {
             IPhoneSubInfo info = getSubscriberInfo();
             if (info == null) {
@@ -3863,14 +3879,21 @@
     }
 
     /**
-     * Resets the Carrier Keys in the database. This involves 2 steps:
+     * Resets the carrier keys used to encrypt the IMSI and IMPI.
+     * <p>
+     * This involves 2 steps:
      *  1. Delete the keys from the database.
      *  2. Send an intent to download new Certificates.
      * <p>
-     * Requires Permission:
-     *   {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}
+     * For a multi-sim device, the dafault data sim is used if not specified.
+     * <p>
+     * Requires Permission: MODIFY_PHONE_STATE.
+     *
+     * @see #getCarrierInfoForImsiEncryption
      * @hide
      */
+    @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
+    @SystemApi
     public void resetCarrierKeysForImsiEncryption() {
         try {
             IPhoneSubInfo info = getSubscriberInfo();
@@ -3897,7 +3920,7 @@
      * @return true if the digit at position keyType is 1, else false.
      * @hide
      */
-    private static boolean isKeyEnabled(int keyAvailability, int keyType) {
+    private static boolean isKeyEnabled(int keyAvailability, @KeyType int keyType) {
         int returnValue = (keyAvailability >> (keyType - 1)) & 1;
         return (returnValue == 1) ? true : false;
     }
@@ -3906,7 +3929,7 @@
      * If Carrier requires Imsi to be encrypted.
      * @hide
      */
-    private boolean isImsiEncryptionRequired(int subId, int keyType) {
+    private boolean isImsiEncryptionRequired(int subId, @KeyType int keyType) {
         CarrierConfigManager configManager =
                 (CarrierConfigManager) mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE);
         if (configManager == null) {
@@ -4105,6 +4128,7 @@
      * @hide
      * nobody seems to call this.
      */
+    @UnsupportedAppUsage
     @TestApi
     @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
     public String getLine1AlphaTag() {
@@ -4612,17 +4636,6 @@
     @SystemApi
     public static final int SIM_ACTIVATION_STATE_RESTRICTED = 4;
 
-    /** @hide */
-    @IntDef({
-            SIM_ACTIVATION_STATE_UNKNOWN,
-            SIM_ACTIVATION_STATE_ACTIVATING,
-            SIM_ACTIVATION_STATE_ACTIVATED,
-            SIM_ACTIVATION_STATE_DEACTIVATED,
-            SIM_ACTIVATION_STATE_RESTRICTED
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface SimActivationState{}
-
      /**
       * Sets the voice activation state
       *
@@ -5007,15 +5020,6 @@
      */
     public static final int CALL_STATE_OFFHOOK = 2;
 
-    /** @hide */
-    @IntDef(prefix = { "CALL_STATE_" }, value = {
-            CALL_STATE_IDLE,
-            CALL_STATE_RINGING,
-            CALL_STATE_OFFHOOK
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface CallState{}
-
     /**
      * Returns the state of all calls on the device.
      * <p>
@@ -5029,13 +5033,11 @@
      * @return the current call state.
      */
     public @CallState int getCallState() {
-        try {
-            ITelecomService telecom = getTelecomService();
-            if (telecom != null) {
-                return telecom.getCallState();
+        if (mContext != null) {
+            TelecomManager telecomManager = mContext.getSystemService(TelecomManager.class);
+            if (telecomManager != null) {
+                return telecomManager.getCallState();
             }
-        } catch (RemoteException e) {
-            Log.e(TAG, "Error calling ITelecomService#getCallState", e);
         }
         return CALL_STATE_IDLE;
     }
@@ -5205,13 +5207,6 @@
         return ITelephony.Stub.asInterface(ServiceManager.getService(Context.TELEPHONY_SERVICE));
     }
 
-    /**
-    * @hide
-    */
-    private ITelecomService getTelecomService() {
-        return ITelecomService.Stub.asInterface(ServiceManager.getService(TELECOM_SERVICE));
-    }
-
     private ITelephonyRegistry getTelephonyRegistry() {
         return ITelephonyRegistry.Stub.asInterface(ServiceManager.getService("telephony.registry"));
     }
@@ -5542,19 +5537,20 @@
             telephony.requestCellInfoUpdate(
                     getSubId(),
                     new ICellInfoCallback.Stub() {
+                        @Override
                         public void onCellInfo(List<CellInfo> cellInfo) {
                             Binder.withCleanCallingIdentity(() ->
                                     executor.execute(() -> callback.onCellInfo(cellInfo)));
                         }
 
-                        public void onError(int errorCode, android.os.ParcelableException detail) {
+                        @Override
+                        public void onError(int errorCode, String exceptionName, String message) {
                             Binder.withCleanCallingIdentity(() ->
                                     executor.execute(() -> callback.onError(
                                             errorCode,
-                                            detail == null ? null : detail.getCause())));
+                                            createThrowableByClassName(exceptionName, message))));
                         }
                     }, getOpPackageName());
-
         } catch (RemoteException ex) {
         }
     }
@@ -5583,22 +5579,36 @@
             telephony.requestCellInfoUpdateWithWorkSource(
                     getSubId(),
                     new ICellInfoCallback.Stub() {
+                        @Override
                         public void onCellInfo(List<CellInfo> cellInfo) {
                             Binder.withCleanCallingIdentity(() ->
                                     executor.execute(() -> callback.onCellInfo(cellInfo)));
                         }
 
-                        public void onError(int errorCode, android.os.ParcelableException detail) {
+                        @Override
+                        public void onError(int errorCode, String exceptionName, String message) {
                             Binder.withCleanCallingIdentity(() ->
                                     executor.execute(() -> callback.onError(
                                             errorCode,
-                                            detail == null ? null : detail.getCause())));
+                                            createThrowableByClassName(exceptionName, message))));
                         }
                     }, getOpPackageName(), workSource);
         } catch (RemoteException ex) {
         }
     }
 
+    private static Throwable createThrowableByClassName(String className, String message) {
+        if (className == null) {
+            return null;
+        }
+        try {
+            Class<?> c = Class.forName(className);
+            return (Throwable) c.getConstructor(String.class).newInstance(message);
+        } catch (ReflectiveOperationException | ClassCastException e) {
+        }
+        return new RuntimeException(className + ": " + message);
+    }
+
     /**
      * Sets the minimum time in milli-seconds between {@link PhoneStateListener#onCellInfoChanged
      * PhoneStateListener.onCellInfoChanged} will be invoked.
@@ -7574,20 +7584,20 @@
      * {@link CarrierConfigManager#KEY_EMERGENCY_SMS_MODE_TIMER_MS_INT}. If
      * the carrier does not support this mode, this function will always return false.
      *
-     * @return true if this device is in emergency SMS mode, false otherwise.
+     * @return {@code true} if this device is in emergency SMS mode, {@code false} otherwise.
      *
      * @hide
      */
+    @SystemApi
     @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
     public boolean isInEmergencySmsMode() {
-
         try {
             ITelephony telephony = getITelephony();
             if (telephony != null) {
                 return telephony.isInEmergencySmsMode();
             }
         } catch (RemoteException ex) {
-            Rlog.e(TAG, "getNetworkSelectionMode RemoteException", ex);
+            Rlog.e(TAG, "isInEmergencySmsMode RemoteException", ex);
         }
         return false;
     }
@@ -7672,12 +7682,16 @@
 
     /**
      * Check whether DUN APN is required for tethering.
+     * <p>
+     * Requires Permission: READ_PRIVILEGED_PHONE_STATE.
      *
      * @return {@code true} if DUN APN is required for tethering.
      * @hide
      */
-    public boolean getTetherApnRequired() {
-        return getTetherApnRequired(getSubId(SubscriptionManager.getActiveDataSubscriptionId()));
+    @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
+    @SystemApi
+    public boolean isTetheringApnRequired() {
+        return isTetheringApnRequired(getSubId(SubscriptionManager.getActiveDataSubscriptionId()));
     }
 
     /**
@@ -7687,11 +7701,11 @@
      * @return {@code true} if DUN APN is required for tethering.
      * @hide
      */
-    public boolean getTetherApnRequired(int subId) {
+    public boolean isTetheringApnRequired(int subId) {
         try {
             ITelephony telephony = getITelephony();
             if (telephony != null)
-                return telephony.getTetherApnRequiredForSubscriber(subId);
+                return telephony.isTetheringApnRequiredForSubscriber(subId);
         } catch (RemoteException ex) {
             Rlog.e(TAG, "hasMatchedTetherApnSetting RemoteException", ex);
         } catch (NullPointerException ex) {
@@ -7945,6 +7959,7 @@
 
     /** @hide */
     @SystemApi
+    @TestApi
     public List<String> getCarrierPackageNamesForIntent(Intent intent) {
         return getCarrierPackageNamesForIntentAndPhone(intent, getPhoneId());
     }
@@ -8358,15 +8373,6 @@
         return false;
     }
 
-    /** @hide */
-    @Retention(RetentionPolicy.SOURCE)
-    @IntDef(prefix = {"RADIO_POWER_"},
-            value = {RADIO_POWER_OFF,
-                    RADIO_POWER_ON,
-                    RADIO_POWER_UNAVAILABLE,
-            })
-    public @interface RadioPowerState {}
-
     /**
      * Radio explicitly powered off (e.g, airplane mode).
      * @hide
@@ -8817,7 +8823,10 @@
     @Deprecated
     public boolean isTtyModeSupported() {
         try {
-            TelecomManager telecomManager = TelecomManager.from(mContext);
+            TelecomManager telecomManager = null;
+            if (mContext != null) {
+                telecomManager = mContext.getSystemService(TelecomManager.class);
+            }
             if (telecomManager != null) {
                 return telecomManager.isTtySupported();
             }
@@ -9331,6 +9340,21 @@
     }
 
     /**
+     * Gets the default Respond Via Message application
+     * @param context context from the calling app
+     * @param updateIfNeeded update the default app if there is no valid default app configured.
+     * @return component name of the app and class to direct Respond Via Message intent to, or
+     * {@code null} if the functionality is not supported.
+     * @hide
+     */
+    @SystemApi
+    @TestApi
+    public static @Nullable ComponentName getDefaultRespondViaMessageApplication(
+            @NonNull Context context, boolean updateIfNeeded) {
+        return SmsApplication.getDefaultRespondViaMessageApplication(context, updateIfNeeded);
+    }
+
+    /**
      * Set the alphabetic name of current registered operator.
      * @param name the alphabetic name of current registered operator.
      * @hide
@@ -9432,7 +9456,7 @@
      * @hide
      */
     @UnsupportedAppUsage
-    public int getSubIdForPhoneAccount(PhoneAccount phoneAccount) {
+    public int getSubIdForPhoneAccount(@Nullable PhoneAccount phoneAccount) {
         int retval = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
         try {
             ITelephony service = getITelephony();
@@ -9476,7 +9500,7 @@
      *         permission.
      */
     @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
-    public int getSubIdForPhoneAccountHandle(@NonNull PhoneAccountHandle phoneAccountHandle) {
+    public int getSubscriptionId(@NonNull PhoneAccountHandle phoneAccountHandle) {
         int retval = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
         try {
             ITelephony service = getITelephony();
@@ -9485,25 +9509,44 @@
                         phoneAccountHandle, mContext.getOpPackageName());
             }
         } catch (RemoteException ex) {
-            Log.e(TAG, "getSubIdForPhoneAccountHandle RemoteException", ex);
+            Log.e(TAG, "getSubscriptionId RemoteException", ex);
             ex.rethrowAsRuntimeException();
         }
         return retval;
     }
 
     /**
-     * Resets Telephony and IMS settings back to factory defaults.
+     * Resets telephony manager settings back to factory defaults.
      *
      * @hide
      */
-    @SystemApi
-    @RequiresPermission(Manifest.permission.CONNECTIVITY_INTERNAL)
     public void factoryReset(int subId) {
         try {
             Log.d(TAG, "factoryReset: subId=" + subId);
             ITelephony telephony = getITelephony();
-            if (telephony != null)
+            if (telephony != null) {
                 telephony.factoryReset(subId);
+            }
+        } catch (RemoteException e) {
+        }
+    }
+
+
+    /**
+     * Resets Telephony and IMS settings back to factory defaults only for the subscription
+     * associated with this instance.
+     * @see #createForSubscriptionId(int)
+     * @hide
+     */
+    @SystemApi
+    @RequiresPermission(Manifest.permission.CONNECTIVITY_INTERNAL)
+    public void resetSettings() {
+        try {
+            Log.d(TAG, "resetSettings: subId=" + getSubId());
+            ITelephony telephony = getITelephony();
+            if (telephony != null) {
+                telephony.factoryReset(getSubId());
+            }
         } catch (RemoteException e) {
         }
     }
@@ -10588,6 +10631,7 @@
      *
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public int getCarrierIdListVersion() {
         try {
@@ -10856,14 +10900,66 @@
     }
 
     /**
-     * Broadcast intent action for Ota emergency number database installation complete.
+     * Indicates Emergency number database version is invalid.
      *
      * @hide
      */
-    @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
+    @TestApi
     @SystemApi
-    public static final String ACTION_OTA_EMERGENCY_NUMBER_DB_INSTALLED =
-            "android.telephony.action.OTA_EMERGENCY_NUMBER_DB_INSTALLED";
+    public static final int INVALID_EMERGENCY_NUMBER_DB_VERSION = -1;
+
+    /**
+     * Notify Telephony for OTA emergency number database installation complete.
+     *
+     * <p> Requires permission:
+     * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}
+     *
+     * @hide
+     */
+    @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
+    @SystemApi
+    public void notifyOtaEmergencyNumberDbInstalled() {
+        try {
+            ITelephony telephony = getITelephony();
+            if (telephony != null) {
+                telephony.notifyOtaEmergencyNumberDbInstalled();
+            } else {
+                throw new IllegalStateException("telephony service is null.");
+            }
+        } catch (RemoteException ex) {
+            Log.e(TAG, "notifyOtaEmergencyNumberDatabaseInstalled RemoteException", ex);
+            ex.rethrowAsRuntimeException();
+        }
+    }
+
+    /**
+     * Override the file path for testing OTA emergency number database in a file partition.
+     *
+     * @param otaFilePath The test OTA emergency number database file path;
+     *                    if "RESET", recover the original database file partition.
+     *                    Format: <root file folder>@<file path>
+     *
+     * <p> Requires permission:
+     * {@link android.Manifest.permission#READ_ACTIVE_EMERGENCY_SESSION}
+     *
+     * @hide
+     */
+    @RequiresPermission(android.Manifest.permission.READ_ACTIVE_EMERGENCY_SESSION)
+    @SystemApi
+    @TestApi
+    public void updateTestOtaEmergencyNumberDbFilePath(@NonNull String otaFilePath) {
+        try {
+            ITelephony telephony = getITelephony();
+            if (telephony != null) {
+                telephony.updateTestOtaEmergencyNumberDbFilePath(otaFilePath);
+            } else {
+                throw new IllegalStateException("telephony service is null.");
+            }
+        } catch (RemoteException ex) {
+            Log.e(TAG, "notifyOtaEmergencyNumberDatabaseInstalled RemoteException", ex);
+            ex.rethrowAsRuntimeException();
+        }
+    }
 
     /**
      * Returns whether {@link TelephonyManager#ACTION_EMERGENCY_ASSISTANCE emergency assistance} is
@@ -11060,6 +11156,29 @@
         return false;
     }
 
+    /**
+     * A test API to return the emergency number db version.
+     *
+     * <p>Requires Permission:
+     *   {@link android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE READ_PRIVILEGED_PHONE_STATE}
+     *
+     * @hide
+     */
+    @TestApi
+    @SystemApi
+    public int getEmergencyNumberDbVersion() {
+        try {
+            ITelephony telephony = getITelephony();
+            if (telephony != null) {
+                return telephony.getEmergencyNumberDbVersion(getSubId());
+            }
+        } catch (RemoteException ex) {
+            Log.e(TAG, "getEmergencyNumberDbVersion RemoteException", ex);
+            ex.rethrowAsRuntimeException();
+        }
+        return INVALID_EMERGENCY_NUMBER_DB_VERSION;
+    }
+
     /** @hide */
     @Retention(RetentionPolicy.SOURCE)
     @IntDef(prefix = {"SET_OPPORTUNISTIC_SUB"}, value = {
@@ -11476,6 +11595,7 @@
      *
      * @hide
      */
+    @UnsupportedAppUsage
     @TestApi
     public Pair<Integer, Integer> getRadioHalVersion() {
         try {
@@ -11513,7 +11633,7 @@
      */
     @SystemApi
     @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
-    public boolean isDataEnabledForApn(@ApnSetting.ApnType int apnType) {
+    public boolean isDataEnabledForApn(@ApnType int apnType) {
         String pkgForDebug = mContext != null ? mContext.getOpPackageName() : "<unknown>";
         try {
             ITelephony service = getITelephony();
@@ -11534,7 +11654,7 @@
      *
      * @hide
      */
-    public boolean isApnMetered(@ApnSetting.ApnType int apnType) {
+    public boolean isApnMetered(@ApnType int apnType) {
         try {
             ITelephony service = getITelephony();
             if (service != null) {
diff --git a/telephony/java/android/telephony/cdma/CdmaSmsCbProgramData.aidl b/telephony/java/android/telephony/cdma/CdmaSmsCbProgramData.aidl
new file mode 100644
index 0000000..a648a0e
--- /dev/null
+++ b/telephony/java/android/telephony/cdma/CdmaSmsCbProgramData.aidl
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+/** @hide */
+package android.telephony.cdma;
+
+parcelable CdmaSmsCbProgramData;
+
diff --git a/telephony/java/android/telephony/data/ApnSetting.java b/telephony/java/android/telephony/data/ApnSetting.java
index e65e032..60774e7 100644
--- a/telephony/java/android/telephony/data/ApnSetting.java
+++ b/telephony/java/android/telephony/data/ApnSetting.java
@@ -26,6 +26,8 @@
 import android.os.Parcelable;
 import android.provider.Telephony;
 import android.provider.Telephony.Carriers;
+import android.telephony.Annotation.ApnType;
+import android.telephony.Annotation.NetworkType;
 import android.telephony.Rlog;
 import android.telephony.ServiceState;
 import android.telephony.TelephonyManager;
@@ -109,23 +111,6 @@
     /** APN type for MCX (Mission Critical Service) where X can be PTT/Video/Data */
     public static final int TYPE_MCX = ApnTypes.MCX;
 
-    /** @hide */
-    @IntDef(flag = true, prefix = { "TYPE_" }, value = {
-        TYPE_DEFAULT,
-        TYPE_MMS,
-        TYPE_SUPL,
-        TYPE_DUN,
-        TYPE_HIPRI,
-        TYPE_FOTA,
-        TYPE_IMS,
-        TYPE_CBS,
-        TYPE_IA,
-        TYPE_EMERGENCY,
-        TYPE_MCX
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface ApnType {}
-
     // Possible values for authentication types.
     /** No authentication type. */
     public static final int AUTH_TYPE_NONE = 0;
@@ -1430,7 +1415,7 @@
      *
      * @hide
      */
-    public boolean canSupportNetworkType(@TelephonyManager.NetworkType int networkType) {
+    public boolean canSupportNetworkType(@NetworkType int networkType) {
         // Do a special checking for GSM. In reality, GSM is a voice only network type and can never
         // be used for data. We allow it here because in some DSDS corner cases, on the non-DDS
         // sub, modem reports data rat unknown. In that case if voice is GSM and this APN supports
@@ -1959,8 +1944,9 @@
          * {@link ApnSetting} built from this builder otherwise.
          */
         public ApnSetting build() {
-            if ((mApnTypeBitmask & TYPE_ALL) == 0 || TextUtils.isEmpty(mApnName)
-                || TextUtils.isEmpty(mEntryName)) {
+            if ((mApnTypeBitmask & (TYPE_DEFAULT | TYPE_MMS | TYPE_SUPL | TYPE_DUN | TYPE_HIPRI |
+                    TYPE_FOTA | TYPE_IMS | TYPE_CBS | TYPE_IA | TYPE_EMERGENCY | TYPE_MCX)) == 0
+                || TextUtils.isEmpty(mApnName) || TextUtils.isEmpty(mEntryName)) {
                 return null;
             }
             return new ApnSetting(this);
diff --git a/telephony/java/android/telephony/data/DataCallResponse.java b/telephony/java/android/telephony/data/DataCallResponse.java
index 9170e88..49625bb 100644
--- a/telephony/java/android/telephony/data/DataCallResponse.java
+++ b/telephony/java/android/telephony/data/DataCallResponse.java
@@ -24,8 +24,8 @@
 import android.net.LinkAddress;
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.telephony.Annotation.DataFailureCause;
 import android.telephony.DataFailCause;
-import android.telephony.DataFailCause.FailCause;
 import android.telephony.data.ApnSetting.ProtocolType;
 
 import com.android.internal.annotations.VisibleForTesting;
@@ -67,7 +67,7 @@
     /** Indicates the data connection is active with physical link up. */
     public static final int LINK_STATUS_ACTIVE = 2;
 
-    private final @FailCause int mCause;
+    private final @DataFailureCause int mCause;
     private final int mSuggestedRetryTime;
     private final int mId;
     private final @LinkStatus int mLinkStatus;
@@ -103,7 +103,7 @@
      *
      * @removed Use the {@link Builder()} instead.
      */
-    public DataCallResponse(@FailCause int cause, int suggestedRetryTime, int id,
+    public DataCallResponse(@DataFailureCause int cause, int suggestedRetryTime, int id,
                             @LinkStatus int linkStatus,
                             @ProtocolType int protocolType, @Nullable String interfaceName,
                             @Nullable List<LinkAddress> addresses,
@@ -150,7 +150,7 @@
     /**
      * @return Data call fail cause. {@link DataFailCause#NONE} indicates no error.
      */
-    @FailCause
+    @DataFailureCause
     public int getCause() { return mCause; }
 
     /**
@@ -314,7 +314,7 @@
      * </code></pre>
      */
     public static final class Builder {
-        private @FailCause int mCause;
+        private @DataFailureCause int mCause;
 
         private int mSuggestedRetryTime;
 
@@ -348,7 +348,7 @@
          * @param cause Data call fail cause. {@link DataFailCause#NONE} indicates no error.
          * @return The same instance of the builder.
          */
-        public @NonNull Builder setCause(@FailCause int cause) {
+        public @NonNull Builder setCause(@DataFailureCause int cause) {
             mCause = cause;
             return this;
         }
diff --git a/telephony/java/android/telephony/data/DataProfile.java b/telephony/java/android/telephony/data/DataProfile.java
index 0d79ec9..30c209b 100644
--- a/telephony/java/android/telephony/data/DataProfile.java
+++ b/telephony/java/android/telephony/data/DataProfile.java
@@ -25,8 +25,8 @@
 import android.os.Build;
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.telephony.Annotation.ApnType;
 import android.telephony.TelephonyManager.NetworkTypeBitMask;
-import android.telephony.data.ApnSetting.ApnType;
 import android.telephony.data.ApnSetting.AuthType;
 import android.text.TextUtils;
 
diff --git a/telephony/java/android/telephony/data/QualifiedNetworksService.java b/telephony/java/android/telephony/data/QualifiedNetworksService.java
index 0e1751d..e793979 100644
--- a/telephony/java/android/telephony/data/QualifiedNetworksService.java
+++ b/telephony/java/android/telephony/data/QualifiedNetworksService.java
@@ -27,8 +27,8 @@
 import android.os.Message;
 import android.os.RemoteException;
 import android.telephony.AccessNetworkConstants.AccessNetworkType;
+import android.telephony.Annotation.ApnType;
 import android.telephony.Rlog;
-import android.telephony.data.ApnSetting.ApnType;
 import android.util.SparseArray;
 
 import com.android.internal.annotations.VisibleForTesting;
@@ -133,7 +133,7 @@
          * service.
          *
          * @param apnTypes APN types of the qualified networks. This must be a bitmask combination
-         * of {@link ApnSetting.ApnType}.
+         * of {@link ApnType}.
          * @param qualifiedNetworkTypes List of network types which are qualified for data
          * connection setup for {@link @apnType} in the preferred order. Each element in the list
          * is a {@link AccessNetworkType}. An empty list indicates no networks are qualified
diff --git a/telephony/java/android/telephony/euicc/EuiccManager.java b/telephony/java/android/telephony/euicc/EuiccManager.java
index 0025c7a..cb66a96 100644
--- a/telephony/java/android/telephony/euicc/EuiccManager.java
+++ b/telephony/java/android/telephony/euicc/EuiccManager.java
@@ -189,6 +189,29 @@
             "android.telephony.euicc.action.RENAME_SUBSCRIPTION_PRIVILEGED";
 
     /**
+     * Intent action sent by a carrier app to launch the eSIM activation flow provided by the LPA UI
+     * (LUI). The carrier app must send this intent with one of the following:
+     *
+     * <p>{@link #EXTRA_USE_QR_SCANNER} not set or set to false: The LPA should try to get an
+     * activation code from the carrier app by binding to the carrier app service implementing
+     * {@link android.service.euicc.EuiccService#ACTION_BIND_CARRIER_PROVISIONING_SERVICE}.
+     * <p>{@link #EXTRA_USE_QR_SCANNER} set to true: The LPA should launch a QR scanner for the user
+     * to scan an eSIM profile QR code.
+     *
+     * <p>Upon completion, the LPA should return one of the following results to the carrier app:
+     *
+     * <p>{@code Activity.RESULT_OK}: The LPA has succeeded in downloading the new eSIM profile.
+     * <p>{@code Activity.RESULT_CANCELED}: The carrier app should treat this as if the user pressed
+     * the back button.
+     * <p>Anything else: The carrier app should treat this as an error.
+     *
+     * <p>LPA needs to check if caller's package name is allowed to perform this action.
+     **/
+    @SdkConstant(SdkConstant.SdkConstantType.ACTIVITY_INTENT_ACTION)
+    public static final String ACTION_START_EUICC_ACTIVATION =
+            "android.telephony.euicc.action.START_EUICC_ACTIVATION";
+
+    /**
      * Result code for an operation indicating that the operation succeeded.
      */
     public static final int EMBEDDED_SUBSCRIPTION_RESULT_OK = 0;
@@ -342,10 +365,20 @@
      *
      * @hide
      */
-    // TODO: Make this a @SystemApi.
+    @SystemApi
     public static final String EXTRA_PHYSICAL_SLOT_ID =
             "android.telephony.euicc.extra.PHYSICAL_SLOT_ID";
 
+
+    /**
+     * Key for an extra set on actions {@link #ACTION_START_EUICC_ACTIVATION} providing a boolean
+     * value of whether to start eSIM activation with QR scanner.
+     *
+     * <p>Expected type of the extra data: boolean
+     **/
+    public static final String EXTRA_USE_QR_SCANNER =
+            "android.telephony.euicc.extra.USE_QR_SCANNER";
+
     /**
      * Optional meta-data attribute for a carrier app providing an icon to use to represent the
      * carrier. If not provided, the app's launcher icon will be used as a fallback.
@@ -830,7 +863,7 @@
      * @param callbackIntent a PendingIntent to launch when the operation completes.
      *
      * @deprecated From R, callers should specify a flag for specific set of subscriptions to erase
-     * and use {@link #eraseSubscriptionsWithOptions(int, PendingIntent)} instead
+     * and use {@link #eraseSubscriptions(int, PendingIntent)} instead
      *
      * @hide
      */
@@ -862,7 +895,7 @@
      */
     @SystemApi
     @RequiresPermission(Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS)
-    public void eraseSubscriptionsWithOptions(
+    public void eraseSubscriptions(
             @ResetOption int options, @NonNull PendingIntent callbackIntent) {
         if (!isEnabled()) {
             sendUnavailableError(callbackIntent);
diff --git a/telephony/java/android/telephony/ims/ImsCallForwardInfo.java b/telephony/java/android/telephony/ims/ImsCallForwardInfo.java
index 79cdfef..9f09d7a 100644
--- a/telephony/java/android/telephony/ims/ImsCallForwardInfo.java
+++ b/telephony/java/android/telephony/ims/ImsCallForwardInfo.java
@@ -19,6 +19,7 @@
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.annotation.UnsupportedAppUsage;
 import android.os.Parcel;
 import android.os.Parcelable;
@@ -32,6 +33,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public final class ImsCallForwardInfo implements Parcelable {
 
     /**
diff --git a/telephony/java/android/telephony/ims/ImsCallProfile.java b/telephony/java/android/telephony/ims/ImsCallProfile.java
index 77ee205..b0ff5dc 100644
--- a/telephony/java/android/telephony/ims/ImsCallProfile.java
+++ b/telephony/java/android/telephony/ims/ImsCallProfile.java
@@ -19,6 +19,7 @@
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.annotation.UnsupportedAppUsage;
 import android.os.Bundle;
 import android.os.Parcel;
@@ -45,6 +46,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public final class ImsCallProfile implements Parcelable {
     private static final String TAG = "ImsCallProfile";
 
@@ -309,6 +311,37 @@
     public @CallRestrictCause int mRestrictCause = CALL_RESTRICT_CAUSE_NONE;
 
     /**
+     * The VERSTAT for an incoming call's phone number.
+     */
+    private @VerificationStatus int mCallerNumberVerificationStatus;
+
+    /**
+     * Indicates that the network could not perform verification.
+     */
+    public static final int VERIFICATION_STATUS_NOT_VERIFIED = 0;
+
+    /**
+     * Indicates that verification by the network passed.  This indicates there is a high likelihood
+     * that the call originated from a valid source.
+     */
+    public static final int VERIFICATION_STATUS_PASSED = 1;
+
+    /**
+     * Indicates that verification by the network failed.  This indicates there is a high likelihood
+     * that the call did not originate from a valid source.
+     */
+    public static final int VERIFICATION_STATUS_FAILED = 2;
+
+    /**@hide*/
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef(prefix = "VERIFICATION_STATUS_", value = {
+            VERIFICATION_STATUS_NOT_VERIFIED,
+            VERIFICATION_STATUS_PASSED,
+            VERIFICATION_STATUS_FAILED
+    })
+    public @interface VerificationStatus {}
+
+    /**
      * The emergency service categories, only valid if {@link #getServiceType} returns
      * {@link #SERVICE_TYPE_EMERGENCY}
      *
@@ -539,6 +572,29 @@
         mMediaProfile = profile.mMediaProfile;
     }
 
+    /**
+     * Sets the verification status for the phone number of an incoming call as identified in
+     * ATIS-1000082.
+     * <p>
+     * The ImsService should parse the verstat information from the SIP INVITE headers for the call
+     * to determine this information.  It is typically found in the P-Asserted-Identity OR From
+     * header fields.
+     * @param callerNumberVerificationStatus the new verification status.
+     */
+    public void setCallerNumberVerificationStatus(
+            @VerificationStatus int callerNumberVerificationStatus) {
+        mCallerNumberVerificationStatus = callerNumberVerificationStatus;
+    }
+
+    /**
+     * Gets the verification status for the phone number of an incoming call as identified in
+     * ATIS-1000082.
+     * @return the verification status.
+     */
+    public @VerificationStatus int getCallerNumberVerificationStatus() {
+        return mCallerNumberVerificationStatus;
+    }
+
     @NonNull
     @Override
     public String toString() {
@@ -551,7 +607,8 @@
                 + ", emergencyCallRouting=" + mEmergencyCallRouting
                 + ", emergencyCallTesting=" + mEmergencyCallTesting
                 + ", hasKnownUserIntentEmergency=" + mHasKnownUserIntentEmergency
-                + ", mRestrictCause=" + mRestrictCause + " }";
+                + ", mRestrictCause=" + mRestrictCause
+                + ", mCallerNumberVerstat= " + mCallerNumberVerificationStatus + " }";
     }
 
     @Override
@@ -572,6 +629,7 @@
         out.writeBoolean(mEmergencyCallTesting);
         out.writeBoolean(mHasKnownUserIntentEmergency);
         out.writeInt(mRestrictCause);
+        out.writeInt(mCallerNumberVerificationStatus);
     }
 
     private void readFromParcel(Parcel in) {
@@ -585,6 +643,7 @@
         mEmergencyCallTesting = in.readBoolean();
         mHasKnownUserIntentEmergency = in.readBoolean();
         mRestrictCause = in.readInt();
+        mCallerNumberVerificationStatus = in.readInt();
     }
 
     public static final @android.annotation.NonNull Creator<ImsCallProfile> CREATOR = new Creator<ImsCallProfile>() {
diff --git a/telephony/java/android/telephony/ims/ImsCallSessionListener.java b/telephony/java/android/telephony/ims/ImsCallSessionListener.java
index a09844d..e11886f 100644
--- a/telephony/java/android/telephony/ims/ImsCallSessionListener.java
+++ b/telephony/java/android/telephony/ims/ImsCallSessionListener.java
@@ -18,6 +18,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.os.RemoteException;
 import android.telephony.CallQuality;
 import android.telephony.ims.aidl.IImsCallSessionListener;
@@ -36,6 +37,7 @@
 // TODO: APIs in here do not conform to API guidelines yet. This can be changed if
 // ImsCallSessionListenerConverter is also changed.
 @SystemApi
+@TestApi
 public class ImsCallSessionListener {
 
     private final IImsCallSessionListener mListener;
diff --git a/telephony/java/android/telephony/ims/ImsConferenceState.java b/telephony/java/android/telephony/ims/ImsConferenceState.java
index 6f062f4..8d2049b 100644
--- a/telephony/java/android/telephony/ims/ImsConferenceState.java
+++ b/telephony/java/android/telephony/ims/ImsConferenceState.java
@@ -18,12 +18,14 @@
 
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.os.Bundle;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.telecom.Call;
 import android.telecom.Connection;
-import android.telecom.Log;
+import android.telephony.Rlog;
+import android.util.Log;
 
 import java.util.HashMap;
 import java.util.Iterator;
@@ -36,7 +38,9 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public final class ImsConferenceState implements Parcelable {
+    private static final String TAG = "ImsConferenceState";
     /**
      * conference-info : user
      */
@@ -192,7 +196,7 @@
                 sb.append("<");
                 while (iterator.hasNext()) {
                     Entry<String, Bundle> entry = iterator.next();
-                    sb.append(Log.pii(entry.getKey()));
+                    sb.append(Rlog.pii(TAG, entry.getKey()));
                     sb.append(": ");
                     Bundle participantData = entry.getValue();
 
@@ -200,7 +204,7 @@
                         sb.append(key);
                         sb.append("=");
                         if (ENDPOINT.equals(key) || USER.equals(key)) {
-                            sb.append(Log.pii(participantData.get(key)));
+                            sb.append(Rlog.pii(TAG, participantData.get(key)));
                         } else {
                             sb.append(participantData.get(key));
                         }
diff --git a/telephony/java/android/telephony/ims/ImsException.java b/telephony/java/android/telephony/ims/ImsException.java
index 6187e67..39af2e7 100644
--- a/telephony/java/android/telephony/ims/ImsException.java
+++ b/telephony/java/android/telephony/ims/ImsException.java
@@ -19,6 +19,7 @@
 import android.annotation.IntDef;
 import android.annotation.Nullable;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.content.pm.PackageManager;
 import android.telephony.SubscriptionManager;
 import android.text.TextUtils;
@@ -32,6 +33,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public final class ImsException extends Exception {
 
     /**
diff --git a/telephony/java/android/telephony/ims/ImsExternalCallState.java b/telephony/java/android/telephony/ims/ImsExternalCallState.java
index eb2ebca..dcb9c9d 100644
--- a/telephony/java/android/telephony/ims/ImsExternalCallState.java
+++ b/telephony/java/android/telephony/ims/ImsExternalCallState.java
@@ -20,10 +20,10 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.net.Uri;
 import android.os.Parcel;
 import android.os.Parcelable;
-import android.telecom.Log;
 import android.telephony.Rlog;
 
 import java.lang.annotation.Retention;
@@ -34,6 +34,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public final class ImsExternalCallState implements Parcelable {
 
     private static final String TAG = "ImsExternalCallState";
@@ -217,8 +218,8 @@
     @Override
     public String toString() {
         return "ImsExternalCallState { mCallId = " + mCallId +
-                ", mAddress = " + Log.pii(mAddress) +
-                ", mLocalAddress = " + Log.pii(mLocalAddress) +
+                ", mAddress = " + Rlog.pii(TAG, mAddress) +
+                ", mLocalAddress = " + Rlog.pii(TAG, mLocalAddress) +
                 ", mIsPullable = " + mIsPullable +
                 ", mCallState = " + mCallState +
                 ", mCallType = " + mCallType +
diff --git a/telephony/java/android/telephony/ims/ImsMmTelManager.java b/telephony/java/android/telephony/ims/ImsMmTelManager.java
index 7cafa1e..5fd0af5 100644
--- a/telephony/java/android/telephony/ims/ImsMmTelManager.java
+++ b/telephony/java/android/telephony/ims/ImsMmTelManager.java
@@ -24,6 +24,7 @@
 import android.annotation.Nullable;
 import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.content.Context;
 import android.os.Binder;
 import android.os.RemoteException;
@@ -58,6 +59,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public class ImsMmTelManager implements RegistrationManager {
 
     /**
@@ -254,8 +256,8 @@
      * the {@link ImsService} associated with the subscription is not available. This can happen if
      * the service crashed, for example. See {@link ImsException#getCode()} for a more detailed
      * reason.
-     * @deprecated Use {@link #registerImsRegistrationCallback(
-     * RegistrationManager.RegistrationCallback, Executor)} instead.
+     * @deprecated Use {@link RegistrationManager#registerImsRegistrationCallback(Executor,
+     * RegistrationManager.RegistrationCallback)} instead.
      */
     @Deprecated
     @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
@@ -285,9 +287,8 @@
     /**{@inheritDoc}*/
     @Override
     @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
-    public void registerImsRegistrationCallback(
-            @NonNull RegistrationManager.RegistrationCallback c,
-            @NonNull @CallbackExecutor Executor executor) throws ImsException {
+    public void registerImsRegistrationCallback(@NonNull @CallbackExecutor Executor executor,
+            @NonNull RegistrationManager.RegistrationCallback c) throws ImsException {
         if (c == null) {
             throw new IllegalArgumentException("Must include a non-null RegistrationCallback.");
         }
@@ -348,8 +349,8 @@
     /**{@inheritDoc}*/
     @Override
     @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
-    public void getRegistrationState(@NonNull @ImsRegistrationState Consumer<Integer> stateCallback,
-            @NonNull @CallbackExecutor Executor executor) {
+    public void getRegistrationState(@NonNull @CallbackExecutor Executor executor,
+            @NonNull @ImsRegistrationState Consumer<Integer> stateCallback) {
         if (stateCallback == null) {
             throw new IllegalArgumentException("Must include a non-null callback.");
         }
@@ -371,9 +372,9 @@
     /**{@inheritDoc}*/
     @Override
     @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
-    public void getRegistrationTransportType(
-            @NonNull @AccessNetworkConstants.TransportType Consumer<Integer> transportTypeCallback,
-            @NonNull @CallbackExecutor Executor executor) {
+    public void getRegistrationTransportType(@NonNull @CallbackExecutor Executor executor,
+            @NonNull @AccessNetworkConstants.TransportType
+                    Consumer<Integer> transportTypeCallback) {
         if (transportTypeCallback == null) {
             throw new IllegalArgumentException("Must include a non-null callback.");
         }
@@ -607,17 +608,17 @@
      * {@link CarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED} broadcast for this subscription.
      * @param capability The capability that is being queried for support on the carrier network.
      * @param transportType The transport type of the capability to check support for.
+     * @param executor The executor that the callback will be called with.
      * @param callback A consumer containing a Boolean result specifying whether or not the
      *                 capability is supported on this carrier network for the transport specified.
-     * @param executor The executor that the callback will be called with.
      * @throws ImsException if the subscription is no longer valid or the IMS service is not
      * available.
      */
     @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
     public void isSupported(@MmTelFeature.MmTelCapabilities.MmTelCapability int capability,
             @AccessNetworkConstants.TransportType int transportType,
-            @NonNull Consumer<Boolean> callback,
-            @NonNull @CallbackExecutor Executor executor) throws ImsException {
+            @NonNull @CallbackExecutor Executor executor,
+            @NonNull Consumer<Boolean> callback) throws ImsException {
         if (callback == null) {
             throw new IllegalArgumentException("Must include a non-null Consumer.");
         }
@@ -978,25 +979,25 @@
 
     /**
      * Get the status of the MmTel Feature registered on this subscription.
+     * @param executor The executor that will be used to call the callback.
      * @param callback A callback containing an Integer describing the current state of the
      *                 MmTel feature, Which will be one of the following:
      *                 {@link ImsFeature#STATE_UNAVAILABLE},
      *                {@link ImsFeature#STATE_INITIALIZING},
      *                {@link ImsFeature#STATE_READY}. Will be called using the executor
      *                 specified when the service state has been retrieved from the IMS service.
-     * @param executor The executor that will be used to call the callback.
      * @throws ImsException if the IMS service associated with this subscription is not available or
      * the IMS service is not available.
      */
     @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
-    public void getFeatureState(@NonNull @ImsFeature.ImsState Consumer<Integer> callback,
-            @NonNull @CallbackExecutor Executor executor) throws ImsException {
-        if (callback == null) {
-            throw new IllegalArgumentException("Must include a non-null Consumer.");
-        }
+    public void getFeatureState(@NonNull @CallbackExecutor Executor executor,
+            @NonNull @ImsFeature.ImsState Consumer<Integer> callback) throws ImsException {
         if (executor == null) {
             throw new IllegalArgumentException("Must include a non-null Executor.");
         }
+        if (callback == null) {
+            throw new IllegalArgumentException("Must include a non-null Consumer.");
+        }
         try {
             getITelephony().getImsMmTelFeatureState(mSubId, new IIntegerConsumer.Stub() {
                 @Override
diff --git a/telephony/java/android/telephony/ims/ImsRcsManager.java b/telephony/java/android/telephony/ims/ImsRcsManager.java
index 25bd1ca..21707b0 100644
--- a/telephony/java/android/telephony/ims/ImsRcsManager.java
+++ b/telephony/java/android/telephony/ims/ImsRcsManager.java
@@ -22,11 +22,15 @@
 import android.annotation.RequiresPermission;
 import android.content.Context;
 import android.os.Binder;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.os.ServiceManager;
 import android.telephony.AccessNetworkConstants;
-import android.telephony.SubscriptionManager;
 import android.telephony.ims.aidl.IImsCapabilityCallback;
+import android.telephony.ims.aidl.IImsRcsController;
 import android.telephony.ims.feature.ImsFeature;
 import android.telephony.ims.feature.RcsFeature;
+import android.util.Log;
 
 import java.util.concurrent.Executor;
 import java.util.function.Consumer;
@@ -35,10 +39,11 @@
  * Manager for interfacing with the framework RCS services, including the User Capability Exchange
  * (UCE) service, as well as managing user settings.
  *
- * Use {@link #createForSubscriptionId(Context, int)} to create an instance of this manager.
+ * Use {@link ImsManager#getImsRcsManager(int)} to create an instance of this manager.
  * @hide
  */
 public class ImsRcsManager implements RegistrationManager {
+    private static final String TAG = "ImsRcsManager";
 
     /**
      * Receives RCS availability status updates from the ImsService.
@@ -112,37 +117,30 @@
     private final int mSubId;
     private final Context mContext;
 
-
     /**
-     * Create an instance of ImsRcsManager for the subscription id specified.
-     *
-     * @param context The context to create this ImsRcsManager instance within.
-     * @param subscriptionId The ID of the subscription that this ImsRcsManager will use.
-     * @see android.telephony.SubscriptionManager#getActiveSubscriptionInfoList()
-     * @throws IllegalArgumentException if the subscription is invalid.
+     * Use {@link ImsManager#getImsRcsManager(int)} to create an instance of this class.
      * @hide
      */
-    public static ImsRcsManager createForSubscriptionId(Context context, int subscriptionId) {
-        if (!SubscriptionManager.isValidSubscriptionId(subscriptionId)) {
-            throw new IllegalArgumentException("Invalid subscription ID");
-        }
-
-        return new ImsRcsManager(context, subscriptionId);
+    public ImsRcsManager(Context context, int subId) {
+        mSubId = subId;
+        mContext = context;
     }
 
     /**
-     * Use {@link #createForSubscriptionId(Context, int)} to create an instance of this class.
+     * @return A {@link RcsUceAdapter} used for User Capability Exchange (UCE) operations for
+     * this subscription.
+     * @hide
      */
-    private ImsRcsManager(Context context, int subId) {
-        mContext = context;
-        mSubId = subId;
+    @NonNull
+    public RcsUceAdapter getUceAdapter() {
+        return new RcsUceAdapter(mSubId);
     }
 
     /**{@inheritDoc}*/
     @Override
     public void registerImsRegistrationCallback(
-            @NonNull RegistrationManager.RegistrationCallback c,
-            @NonNull @CallbackExecutor Executor executor)
+            @NonNull @CallbackExecutor Executor executor,
+            @NonNull RegistrationCallback c)
             throws ImsException {
         if (c == null) {
             throw new IllegalArgumentException("Must include a non-null RegistrationCallback.");
@@ -168,8 +166,8 @@
 
     /**{@inheritDoc}*/
     @Override
-    public void getRegistrationState(@NonNull @ImsRegistrationState Consumer<Integer> stateCallback,
-            @NonNull @CallbackExecutor Executor executor) {
+    public void getRegistrationState(@NonNull @CallbackExecutor Executor executor,
+            @NonNull @ImsRegistrationState Consumer<Integer> stateCallback) {
         if (stateCallback == null) {
             throw new IllegalArgumentException("Must include a non-null stateCallback.");
         }
@@ -182,9 +180,9 @@
 
     /**{@inheritDoc}*/
     @Override
-    public void getRegistrationTransportType(
-            @NonNull @AccessNetworkConstants.TransportType Consumer<Integer> transportTypeCallback,
-            @NonNull @CallbackExecutor Executor executor) {
+    public void getRegistrationTransportType(@NonNull @CallbackExecutor Executor executor,
+            @NonNull @AccessNetworkConstants.TransportType
+                    Consumer<Integer> transportTypeCallback) {
         if (transportTypeCallback == null) {
             throw new IllegalArgumentException("Must include a non-null transportTypeCallback.");
         }
@@ -225,9 +223,22 @@
         if (executor == null) {
             throw new IllegalArgumentException("Must include a non-null Executor.");
         }
+
+        IImsRcsController imsRcsController = getIImsRcsController();
+        if (imsRcsController == null) {
+            Log.e(TAG, "Register availability callback: IImsRcsController is null");
+            throw new ImsException("Can not find remote IMS service",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
+
         c.setExecutor(executor);
-        throw new UnsupportedOperationException("registerRcsAvailabilityCallback is not"
-                + "supported.");
+        try {
+            imsRcsController.registerRcsAvailabilityCallback(c.getBinder());
+        } catch (RemoteException e) {
+            Log.e(TAG, "Error calling IImsRcsController#registerRcsAvailabilityCallback", e);
+            throw new ImsException("Remote IMS Service is not available",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
     }
 
     /**
@@ -238,14 +249,31 @@
      * inactive subscription, it will result in a no-op.
      * @param c The RCS {@link AvailabilityCallback} to be removed.
      * @see #registerRcsAvailabilityCallback(Executor, AvailabilityCallback)
+     * @throws ImsException if the IMS service is not available when calling this method
+     * {@link ImsRcsController#unregisterRcsAvailabilityCallback()}.
+     * See {@link ImsException#getCode()} for more information on the error codes.
      */
     @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
-    public void unregisterRcsAvailabilityCallback(@NonNull AvailabilityCallback c) {
+    public void unregisterRcsAvailabilityCallback(@NonNull AvailabilityCallback c)
+            throws ImsException {
         if (c == null) {
             throw new IllegalArgumentException("Must include a non-null AvailabilityCallback.");
         }
-        throw new UnsupportedOperationException("unregisterRcsAvailabilityCallback is not"
-                + "supported.");
+
+        IImsRcsController imsRcsController = getIImsRcsController();
+        if (imsRcsController == null) {
+            Log.e(TAG, "Unregister availability callback: IImsRcsController is null");
+            throw new ImsException("Can not find remote IMS service",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
+
+        try {
+            imsRcsController.unregisterRcsAvailabilityCallback(c.getBinder());
+        } catch (RemoteException e) {
+            Log.e(TAG, "Error calling IImsRcsController#unregisterRcsAvailabilityCallback", e);
+            throw new ImsException("Remote IMS Service is not available",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
     }
 
     /**
@@ -260,10 +288,27 @@
      * rather the subscription is capable of this service over IMS.
      * @see #isAvailable(int)
      * @see android.telephony.CarrierConfigManager#KEY_USE_RCS_PRESENCE_BOOL
+     * @throws ImsException if the IMS service is not available when calling this method
+     * {@link ImsRcsController#isCapable(int, int)}.
+     * See {@link ImsException#getCode()} for more information on the error codes.
      */
     @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
-    public boolean isCapable(@RcsFeature.RcsImsCapabilities.RcsImsCapabilityFlag int capability) {
-        throw new UnsupportedOperationException("isCapable is not supported.");
+    public boolean isCapable(@RcsFeature.RcsImsCapabilities.RcsImsCapabilityFlag int capability)
+            throws ImsException {
+        IImsRcsController imsRcsController = getIImsRcsController();
+        if (imsRcsController == null) {
+            Log.e(TAG, "isCapable: IImsRcsController is null");
+            throw new ImsException("Can not find remote IMS service",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
+
+        try {
+            return imsRcsController.isCapable(mSubId, capability);
+        } catch (RemoteException e) {
+            Log.e(TAG, "Error calling IImsRcsController#isCapable", e);
+            throw new ImsException("Remote IMS Service is not available",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
     }
 
     /**
@@ -277,18 +322,31 @@
      * false otherwise. If the capability is available, IMS is registered and the service is
      * currently available over IMS.
      * @see #isCapable(int)
+     * @throws ImsException if the IMS service is not available when calling this method
+     * {@link ImsRcsController#isAvailable(int, int)}.
+     * See {@link ImsException#getCode()} for more information on the error codes.
      */
     @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
-    public boolean isAvailable(@RcsFeature.RcsImsCapabilities.RcsImsCapabilityFlag int capability) {
-        throw new UnsupportedOperationException("isAvailable is not supported.");
+    public boolean isAvailable(@RcsFeature.RcsImsCapabilities.RcsImsCapabilityFlag int capability)
+            throws ImsException {
+        IImsRcsController imsRcsController = getIImsRcsController();
+        if (imsRcsController == null) {
+            Log.e(TAG, "isAvailable: IImsRcsController is null");
+            throw new ImsException("Can not find remote IMS service",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
+
+        try {
+            return imsRcsController.isAvailable(mSubId, capability);
+        } catch (RemoteException e) {
+            Log.e(TAG, "Error calling IImsRcsController#isAvailable", e);
+            throw new ImsException("Remote IMS Service is not available",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
     }
 
-    /**
-     * @return A new {@link RcsUceAdapter} used for User Capability Exchange (UCE) operations for
-     * this subscription.
-     */
-    @NonNull
-    public RcsUceAdapter getUceAdapter() {
-        return new RcsUceAdapter(mSubId);
+    private IImsRcsController getIImsRcsController() {
+        IBinder binder = ServiceManager.getService(Context.TELEPHONY_IMS_SERVICE);
+        return IImsRcsController.Stub.asInterface(binder);
     }
 }
diff --git a/telephony/java/android/telephony/ims/ImsReasonInfo.java b/telephony/java/android/telephony/ims/ImsReasonInfo.java
index 1e0d9a78..9f7ec22 100644
--- a/telephony/java/android/telephony/ims/ImsReasonInfo.java
+++ b/telephony/java/android/telephony/ims/ImsReasonInfo.java
@@ -19,6 +19,7 @@
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.annotation.UnsupportedAppUsage;
 import android.os.Parcel;
 import android.os.Parcelable;
@@ -32,6 +33,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public final class ImsReasonInfo implements Parcelable {
 
     /**
diff --git a/telephony/java/android/telephony/ims/ImsService.java b/telephony/java/android/telephony/ims/ImsService.java
index e6777c17..62bc2ae 100644
--- a/telephony/java/android/telephony/ims/ImsService.java
+++ b/telephony/java/android/telephony/ims/ImsService.java
@@ -17,6 +17,7 @@
 package android.telephony.ims;
 
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.app.Service;
 import android.content.Intent;
 import android.os.IBinder;
@@ -90,6 +91,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public class ImsService extends Service {
 
     private static final String LOG_TAG = "ImsService";
diff --git a/telephony/java/android/telephony/ims/ImsSsData.java b/telephony/java/android/telephony/ims/ImsSsData.java
index ec2ff6c..6b72859 100644
--- a/telephony/java/android/telephony/ims/ImsSsData.java
+++ b/telephony/java/android/telephony/ims/ImsSsData.java
@@ -19,6 +19,7 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.telephony.Rlog;
@@ -35,6 +36,7 @@
  * {@hide}
  */
 @SystemApi
+@TestApi
 public final class ImsSsData implements Parcelable {
 
     private static final String TAG = ImsSsData.class.getCanonicalName();
diff --git a/telephony/java/android/telephony/ims/ImsSsInfo.java b/telephony/java/android/telephony/ims/ImsSsInfo.java
index 0510a00..77bd984 100644
--- a/telephony/java/android/telephony/ims/ImsSsInfo.java
+++ b/telephony/java/android/telephony/ims/ImsSsInfo.java
@@ -20,6 +20,7 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.annotation.UnsupportedAppUsage;
 import android.os.Parcel;
 import android.os.Parcelable;
@@ -37,6 +38,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public final class ImsSsInfo implements Parcelable {
 
     /**@hide*/
diff --git a/telephony/java/android/telephony/ims/ImsStreamMediaProfile.java b/telephony/java/android/telephony/ims/ImsStreamMediaProfile.java
index c1f059e..b7ab0a0 100644
--- a/telephony/java/android/telephony/ims/ImsStreamMediaProfile.java
+++ b/telephony/java/android/telephony/ims/ImsStreamMediaProfile.java
@@ -18,6 +18,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.annotation.UnsupportedAppUsage;
 import android.os.Parcel;
 import android.os.Parcelable;
@@ -29,6 +30,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public final class ImsStreamMediaProfile implements Parcelable {
     private static final String TAG = "ImsStreamMediaProfile";
 
diff --git a/telephony/java/android/telephony/ims/ImsSuppServiceNotification.java b/telephony/java/android/telephony/ims/ImsSuppServiceNotification.java
index 1630368..f67f68e 100644
--- a/telephony/java/android/telephony/ims/ImsSuppServiceNotification.java
+++ b/telephony/java/android/telephony/ims/ImsSuppServiceNotification.java
@@ -19,6 +19,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.os.Parcel;
 import android.os.Parcelable;
 
@@ -31,6 +32,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public final class ImsSuppServiceNotification implements Parcelable {
     private static final String TAG = "ImsSuppServiceNotification";
 
diff --git a/telephony/java/android/telephony/ims/ImsUtListener.java b/telephony/java/android/telephony/ims/ImsUtListener.java
index 1a21d0a..bc124044 100644
--- a/telephony/java/android/telephony/ims/ImsUtListener.java
+++ b/telephony/java/android/telephony/ims/ImsUtListener.java
@@ -18,6 +18,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.telephony.ims.stub.ImsUtImplBase;
@@ -33,6 +34,7 @@
 // DO NOT remove or change the existing APIs, only add new ones to this Base implementation or you
 // will break other implementations of ImsUt maintained by other ImsServices.
 @SystemApi
+@TestApi
 public class ImsUtListener {
 
     /**
diff --git a/telephony/java/android/telephony/ims/ImsVideoCallProvider.java b/telephony/java/android/telephony/ims/ImsVideoCallProvider.java
index 1772401..270e693 100644
--- a/telephony/java/android/telephony/ims/ImsVideoCallProvider.java
+++ b/telephony/java/android/telephony/ims/ImsVideoCallProvider.java
@@ -17,6 +17,7 @@
 package android.telephony.ims;
 
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.annotation.UnsupportedAppUsage;
 import android.net.Uri;
 import android.os.Handler;
@@ -36,6 +37,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public abstract class ImsVideoCallProvider {
     private static final int MSG_SET_CALLBACK = 1;
     private static final int MSG_SET_CAMERA = 2;
diff --git a/telephony/java/android/telephony/ims/ProvisioningManager.java b/telephony/java/android/telephony/ims/ProvisioningManager.java
index effdf48..e16085e 100644
--- a/telephony/java/android/telephony/ims/ProvisioningManager.java
+++ b/telephony/java/android/telephony/ims/ProvisioningManager.java
@@ -23,6 +23,7 @@
 import android.annotation.RequiresPermission;
 import android.annotation.StringDef;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.annotation.WorkerThread;
 import android.content.Context;
 import android.content.pm.IPackageManager;
@@ -59,6 +60,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public class ProvisioningManager {
 
     /**@hide*/
diff --git a/telephony/java/android/telephony/ims/RcsUceAdapter.java b/telephony/java/android/telephony/ims/RcsUceAdapter.java
index a6a7a84..b47bcb9 100644
--- a/telephony/java/android/telephony/ims/RcsUceAdapter.java
+++ b/telephony/java/android/telephony/ims/RcsUceAdapter.java
@@ -23,6 +23,13 @@
 import android.annotation.RequiresPermission;
 import android.content.Context;
 import android.net.Uri;
+import android.os.Binder;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.telephony.ims.aidl.IImsRcsController;
+import android.telephony.ims.aidl.IRcsUceControllerCallback;
+import android.util.Log;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -36,6 +43,7 @@
  * @hide
  */
 public class RcsUceAdapter {
+    private static final String TAG = "RcsUceAdapter";
 
     /**
      * An unknown error has caused the request to fail.
@@ -188,7 +196,6 @@
 
     /**
      * Not to be instantiated directly, use
-     * {@link ImsRcsManager#createForSubscriptionId(Context, int)} and
      * {@link ImsRcsManager#getUceAdapter()} to instantiate this manager class.
      */
     RcsUceAdapter(int subId) {
@@ -218,7 +225,45 @@
     public void requestCapabilities(@CallbackExecutor Executor executor,
             @NonNull List<Uri> contactNumbers,
             @NonNull CapabilitiesCallback c) throws ImsException {
-        throw new UnsupportedOperationException("isUceSettingEnabled is not supported.");
+        if (c == null) {
+            throw new IllegalArgumentException("Must include a non-null AvailabilityCallback.");
+        }
+        if (executor == null) {
+            throw new IllegalArgumentException("Must include a non-null Executor.");
+        }
+        if (contactNumbers == null) {
+            throw new IllegalArgumentException("Must include non-null contact number list.");
+        }
+
+        IImsRcsController imsRcsController = getIImsRcsController();
+        if (imsRcsController == null) {
+            Log.e(TAG, "requestCapabilities: IImsRcsController is null");
+            throw new ImsException("Can not find remote IMS service",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
+
+        IRcsUceControllerCallback internalCallback = new IRcsUceControllerCallback.Stub() {
+            @Override
+            public void onCapabilitiesReceived(List<RcsContactUceCapability> contactCapabilities) {
+                Binder.withCleanCallingIdentity(() ->
+                        executor.execute(() ->
+                                c.onCapabilitiesReceived(contactCapabilities)));
+            }
+            @Override
+            public void onError(int errorCode) {
+                Binder.withCleanCallingIdentity(() ->
+                        executor.execute(() ->
+                                c.onError(errorCode)));
+            }
+        };
+
+        try {
+            imsRcsController.requestCapabilities(mSubId, contactNumbers, internalCallback);
+        } catch (RemoteException e) {
+            Log.e(TAG, "Error calling IImsRcsController#requestCapabilities", e);
+            throw new ImsException("Remote IMS Service is not available",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
     }
 
     /**
@@ -233,7 +278,20 @@
      */
     @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
     public @PublishState int getUcePublishState() throws ImsException {
-        throw new UnsupportedOperationException("getPublishState is not supported.");
+        IImsRcsController imsRcsController = getIImsRcsController();
+        if (imsRcsController == null) {
+            Log.e(TAG, "getUcePublishState: IImsRcsController is null");
+            throw new ImsException("Can not find remote IMS service",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
+
+        try {
+            return imsRcsController.getUcePublishState(mSubId);
+        } catch (RemoteException e) {
+            Log.e(TAG, "Error calling IImsRcsController#getUcePublishState", e);
+            throw new ImsException("Remote IMS Service is not available",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
     }
 
     /**
@@ -252,9 +310,22 @@
      */
     @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
     public boolean isUceSettingEnabled() throws ImsException {
-        // TODO: add SubscriptionController column for this property.
-        throw new UnsupportedOperationException("isUceSettingEnabled is not supported.");
+        IImsRcsController imsRcsController = getIImsRcsController();
+        if (imsRcsController == null) {
+            Log.e(TAG, "isUceSettingEnabled: IImsRcsController is null");
+            throw new ImsException("Can not find remote IMS service",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
+
+        try {
+            return imsRcsController.isUceSettingEnabled(mSubId);
+        } catch (RemoteException e) {
+            Log.e(TAG, "Error calling IImsRcsController#isUceSettingEnabled", e);
+            throw new ImsException("Remote IMS Service is not available",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
     }
+
     /**
      * Change the user’s setting for whether or not UCE is enabled for the associated subscription.
      * @param isEnabled the user's setting for whether or not they wish for Presence and User
@@ -270,7 +341,24 @@
      */
     @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
     public void setUceSettingEnabled(boolean isEnabled) throws ImsException {
-        // TODO: add SubscriptionController column for this property.
-        throw new UnsupportedOperationException("setUceSettingEnabled is not supported.");
+        IImsRcsController imsRcsController = getIImsRcsController();
+        if (imsRcsController == null) {
+            Log.e(TAG, "setUceSettingEnabled: IImsRcsController is null");
+            throw new ImsException("Can not find remote IMS service",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
+
+        try {
+            imsRcsController.setUceSettingEnabled(mSubId, isEnabled);
+        } catch (RemoteException e) {
+            Log.e(TAG, "Error calling IImsRcsController#setUceSettingEnabled", e);
+            throw new ImsException("Remote IMS Service is not available",
+                    ImsException.CODE_ERROR_SERVICE_UNAVAILABLE);
+        }
+    }
+
+    private IImsRcsController getIImsRcsController() {
+        IBinder binder = ServiceManager.getService(Context.TELEPHONY_IMS_SERVICE);
+        return IImsRcsController.Stub.asInterface(binder);
     }
 }
diff --git a/telephony/java/android/telephony/ims/RegistrationManager.java b/telephony/java/android/telephony/ims/RegistrationManager.java
index b4c11e3..99bb259 100644
--- a/telephony/java/android/telephony/ims/RegistrationManager.java
+++ b/telephony/java/android/telephony/ims/RegistrationManager.java
@@ -23,6 +23,7 @@
 import android.annotation.Nullable;
 import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.net.Uri;
 import android.os.Binder;
 import android.telephony.AccessNetworkConstants;
@@ -43,6 +44,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public interface RegistrationManager {
 
     /**
@@ -90,7 +92,7 @@
 
     /**
      * Callback class for receiving IMS network Registration callback events.
-     * @see #registerImsRegistrationCallback(RegistrationCallback, Executor)
+     * @see #registerImsRegistrationCallback(Executor, RegistrationCallback)
      * @see #unregisterImsRegistrationCallback(RegistrationCallback)
      */
     class RegistrationCallback {
@@ -229,8 +231,8 @@
      * When the callback is registered, it will initiate the callback c to be called with the
      * current registration state.
      *
-     * @param c The {@link RegistrationCallback} to be added.
      * @param executor The executor the callback events should be run on.
+     * @param c The {@link RegistrationCallback} to be added.
      * @see #unregisterImsRegistrationCallback(RegistrationCallback)
      * @throws ImsException if the subscription associated with this callback is valid, but
      * the {@link ImsService} associated with the subscription is not available. This can happen if
@@ -238,8 +240,8 @@
      * reason.
      */
     @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
-    void registerImsRegistrationCallback(@NonNull RegistrationCallback c,
-            @NonNull @CallbackExecutor Executor executor) throws ImsException;
+    void registerImsRegistrationCallback(@NonNull @CallbackExecutor Executor executor,
+            @NonNull RegistrationCallback c) throws ImsException;
 
     /**
      * Removes an existing {@link RegistrationCallback}.
@@ -250,36 +252,36 @@
      *
      * @param c The {@link RegistrationCallback} to be removed.
      * @see SubscriptionManager.OnSubscriptionsChangedListener
-     * @see #registerImsRegistrationCallback(RegistrationCallback, Executor)
+     * @see #registerImsRegistrationCallback(Executor, RegistrationCallback)
      */
     @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
     void unregisterImsRegistrationCallback(@NonNull RegistrationCallback c);
 
     /**
      * Gets the registration state of the IMS service.
-     * @param stateCallback A callback called on the supplied {@link Executor} that will contain the
-     *                      registration state of the IMS service, which will be one of the
-     *                      following: {@link #REGISTRATION_STATE_NOT_REGISTERED},
-     *                      {@link #REGISTRATION_STATE_REGISTERING}, or
-     *                      {@link #REGISTRATION_STATE_REGISTERED}.
      * @param executor The {@link Executor} that will be used to call the IMS registration state
      *                 callback.
+     * @param stateCallback A callback called on the supplied {@link Executor} that will contain the
+ *                      registration state of the IMS service, which will be one of the
+ *                      following: {@link #REGISTRATION_STATE_NOT_REGISTERED},
+ *                      {@link #REGISTRATION_STATE_REGISTERING}, or
+ *                      {@link #REGISTRATION_STATE_REGISTERED}.
      */
     @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
-    void getRegistrationState(@NonNull @ImsRegistrationState Consumer<Integer> stateCallback,
-            @NonNull @CallbackExecutor Executor executor);
+    void getRegistrationState(@NonNull @CallbackExecutor Executor executor,
+            @NonNull @ImsRegistrationState Consumer<Integer> stateCallback);
 
     /**
      * Gets the Transport Type associated with the current IMS registration.
-     * @param transportTypeCallback The transport type associated with the current IMS registration,
-     *                              which will be one of following:
-     *                              {@link AccessNetworkConstants#TRANSPORT_TYPE_WWAN},
-     *                              {@link AccessNetworkConstants#TRANSPORT_TYPE_WLAN}, or
-     *                              {@link AccessNetworkConstants#TRANSPORT_TYPE_INVALID}.
      * @param executor The {@link Executor} that will be used to call the transportTypeCallback.
+     * @param transportTypeCallback The transport type associated with the current IMS registration,
+ *                              which will be one of following:
+ *                              {@link AccessNetworkConstants#TRANSPORT_TYPE_WWAN},
+ *                              {@link AccessNetworkConstants#TRANSPORT_TYPE_WLAN}, or
+ *                              {@link AccessNetworkConstants#TRANSPORT_TYPE_INVALID}.
      */
     @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
     void getRegistrationTransportType(
-            @NonNull @AccessNetworkConstants.TransportType Consumer<Integer> transportTypeCallback,
-            @NonNull @CallbackExecutor Executor executor);
+            @NonNull @CallbackExecutor Executor executor,
+            @NonNull @AccessNetworkConstants.TransportType Consumer<Integer> transportTypeCallback);
 }
diff --git a/telephony/java/android/telephony/ims/aidl/IImsRcsController.aidl b/telephony/java/android/telephony/ims/aidl/IImsRcsController.aidl
new file mode 100644
index 0000000..b379bd0
--- /dev/null
+++ b/telephony/java/android/telephony/ims/aidl/IImsRcsController.aidl
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package android.telephony.ims.aidl;
+
+import android.net.Uri;
+import android.telephony.ims.aidl.IImsCapabilityCallback;
+import android.telephony.ims.aidl.IRcsUceControllerCallback;
+
+/**
+ * Interface used to interact with the Telephony IMS.
+ *
+ * {@hide}
+ */
+interface IImsRcsController {
+    void registerRcsAvailabilityCallback(IImsCapabilityCallback c);
+    void unregisterRcsAvailabilityCallback(IImsCapabilityCallback c);
+    boolean isCapable(int subId, int capability);
+    boolean isAvailable(int subId, int capability);
+
+    // ImsUceAdapter specific
+    void requestCapabilities(int subId, in List<Uri> contactNumbers, IRcsUceControllerCallback c);
+    int getUcePublishState(int subId);
+    boolean isUceSettingEnabled(int subId);
+    void setUceSettingEnabled(int subId, boolean isEnabled);
+}
diff --git a/telephony/java/android/telephony/ims/aidl/IRcsUceControllerCallback.aidl b/telephony/java/android/telephony/ims/aidl/IRcsUceControllerCallback.aidl
new file mode 100644
index 0000000..5975930
--- /dev/null
+++ b/telephony/java/android/telephony/ims/aidl/IRcsUceControllerCallback.aidl
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2019 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.
+ */
+
+package android.telephony.ims.aidl;
+
+import android.telephony.ims.RcsContactUceCapability;
+
+/**
+ * Provides interface for RCS UCE when receive a change.
+ *
+ * {@hide}
+ */
+oneway interface IRcsUceControllerCallback {
+    void onCapabilitiesReceived(in List<RcsContactUceCapability> contactCapabilities);
+    void onError(int errorCode);
+}
diff --git a/telephony/java/android/telephony/ims/compat/ImsService.java b/telephony/java/android/telephony/ims/compat/ImsService.java
index 2750e51..97a8517 100644
--- a/telephony/java/android/telephony/ims/compat/ImsService.java
+++ b/telephony/java/android/telephony/ims/compat/ImsService.java
@@ -113,6 +113,10 @@
         }
     };
 
+    @UnsupportedAppUsage
+    public ImsService() {
+    }
+
     /**
      * @hide
      */
diff --git a/telephony/java/android/telephony/ims/compat/feature/MMTelFeature.java b/telephony/java/android/telephony/ims/compat/feature/MMTelFeature.java
index 40ea208..3fd356a 100644
--- a/telephony/java/android/telephony/ims/compat/feature/MMTelFeature.java
+++ b/telephony/java/android/telephony/ims/compat/feature/MMTelFeature.java
@@ -16,12 +16,16 @@
 
 package android.telephony.ims.compat.feature;
 
+import android.annotation.UnsupportedAppUsage;
 import android.app.PendingIntent;
 import android.os.Message;
 import android.os.RemoteException;
-
-import android.annotation.UnsupportedAppUsage;
 import android.telephony.ims.ImsCallProfile;
+import android.telephony.ims.ImsCallSession;
+import android.telephony.ims.stub.ImsEcbmImplBase;
+import android.telephony.ims.stub.ImsMultiEndpointImplBase;
+import android.telephony.ims.stub.ImsUtImplBase;
+
 import com.android.ims.internal.IImsCallSession;
 import com.android.ims.internal.IImsCallSessionListener;
 import com.android.ims.internal.IImsConfig;
@@ -30,11 +34,6 @@
 import com.android.ims.internal.IImsMultiEndpoint;
 import com.android.ims.internal.IImsRegistrationListener;
 import com.android.ims.internal.IImsUt;
-import android.telephony.ims.ImsCallSession;
-import android.telephony.ims.compat.stub.ImsCallSessionImplBase;
-import android.telephony.ims.stub.ImsEcbmImplBase;
-import android.telephony.ims.stub.ImsMultiEndpointImplBase;
-import android.telephony.ims.stub.ImsUtImplBase;
 
 /**
  * Base implementation for MMTel.
@@ -49,6 +48,10 @@
     // Lock for feature synchronization
     private final Object mLock = new Object();
 
+    @UnsupportedAppUsage
+    public MMTelFeature() {
+    }
+
     private final IImsMMTelFeature mImsMMTelBinder = new IImsMMTelFeature.Stub() {
 
         @Override
diff --git a/telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java b/telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java
index 38566fe..d77f78e 100644
--- a/telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java
+++ b/telephony/java/android/telephony/ims/compat/stub/ImsCallSessionImplBase.java
@@ -16,6 +16,7 @@
 
 package android.telephony.ims.compat.stub;
 
+import android.annotation.UnsupportedAppUsage;
 import android.os.Message;
 import android.os.RemoteException;
 import android.telephony.CallQuality;
@@ -41,6 +42,10 @@
 
 public class ImsCallSessionImplBase extends IImsCallSession.Stub {
 
+    @UnsupportedAppUsage
+    public ImsCallSessionImplBase() {
+    }
+
     @Override
     // convert to old implementation of listener
     public final void setListener(IImsCallSessionListener listener)
diff --git a/telephony/java/android/telephony/ims/compat/stub/ImsUtListenerImplBase.java b/telephony/java/android/telephony/ims/compat/stub/ImsUtListenerImplBase.java
index ae113f2..e2024742 100644
--- a/telephony/java/android/telephony/ims/compat/stub/ImsUtListenerImplBase.java
+++ b/telephony/java/android/telephony/ims/compat/stub/ImsUtListenerImplBase.java
@@ -16,6 +16,7 @@
 
 package android.telephony.ims.compat.stub;
 
+import android.annotation.UnsupportedAppUsage;
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.telephony.ims.ImsCallForwardInfo;
@@ -39,6 +40,10 @@
 
 public class ImsUtListenerImplBase extends IImsUtListener.Stub {
 
+    @UnsupportedAppUsage
+    public ImsUtListenerImplBase() {
+    }
+
     /**
      * Notifies the result of the supplementary service configuration udpate.
      */
diff --git a/telephony/java/android/telephony/ims/feature/CapabilityChangeRequest.java b/telephony/java/android/telephony/ims/feature/CapabilityChangeRequest.java
index 87a5094..1918bcb 100644
--- a/telephony/java/android/telephony/ims/feature/CapabilityChangeRequest.java
+++ b/telephony/java/android/telephony/ims/feature/CapabilityChangeRequest.java
@@ -18,6 +18,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.telephony.ims.stub.ImsRegistrationImplBase;
@@ -33,6 +34,7 @@
  * {@hide}
  */
 @SystemApi
+@TestApi
 public final class CapabilityChangeRequest implements Parcelable {
 
     /**
diff --git a/telephony/java/android/telephony/ims/feature/ImsFeature.java b/telephony/java/android/telephony/ims/feature/ImsFeature.java
index 3562880..72390d0 100644
--- a/telephony/java/android/telephony/ims/feature/ImsFeature.java
+++ b/telephony/java/android/telephony/ims/feature/ImsFeature.java
@@ -19,6 +19,7 @@
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.content.Context;
 import android.os.IInterface;
 import android.os.RemoteCallbackList;
@@ -43,6 +44,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public abstract class ImsFeature {
 
     private static final String LOG_TAG = "ImsFeature";
@@ -212,6 +214,7 @@
     // Not Actually deprecated, but we need to remove it from the @SystemApi surface.
     @Deprecated
     @SystemApi // SystemApi only because it was leaked through type usage in a previous release.
+    @TestApi
     public static class Capabilities {
         /** @deprecated Use getters and accessors instead. */
         // Not actually deprecated, but we need to remove it from the @SystemApi surface eventually.
diff --git a/telephony/java/android/telephony/ims/feature/MmTelFeature.java b/telephony/java/android/telephony/ims/feature/MmTelFeature.java
index 8b27b6f..56c8771 100644
--- a/telephony/java/android/telephony/ims/feature/MmTelFeature.java
+++ b/telephony/java/android/telephony/ims/feature/MmTelFeature.java
@@ -20,6 +20,7 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.os.Bundle;
 import android.os.Message;
 import android.os.RemoteException;
@@ -54,6 +55,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public class MmTelFeature extends ImsFeature {
 
     private static final String LOG_TAG = "MmTelFeature";
diff --git a/telephony/java/android/telephony/ims/feature/RcsFeature.java b/telephony/java/android/telephony/ims/feature/RcsFeature.java
index f69b434..e96d082 100644
--- a/telephony/java/android/telephony/ims/feature/RcsFeature.java
+++ b/telephony/java/android/telephony/ims/feature/RcsFeature.java
@@ -20,6 +20,7 @@
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.net.Uri;
 import android.os.Binder;
 import android.os.RemoteException;
@@ -49,6 +50,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public class RcsFeature extends ImsFeature {
 
     private static final String LOG_TAG = "RcsFeature";
@@ -197,12 +199,19 @@
         /** @hide*/
         @Retention(RetentionPolicy.SOURCE)
         @IntDef(prefix = "CAPABILITY_TYPE_", flag = true, value = {
+                CAPABILITY_TYPE_NONE,
                 CAPABILITY_TYPE_OPTIONS_UCE,
                 CAPABILITY_TYPE_PRESENCE_UCE
         })
         public @interface RcsImsCapabilityFlag {}
 
         /**
+         * Undefined capability type for initialization
+         * @hide
+         */
+        public static final int CAPABILITY_TYPE_NONE = 0;
+
+        /**
          * This carrier supports User Capability Exchange using SIP OPTIONS as defined by the
          * framework. If set, the RcsFeature should support capability exchange using SIP OPTIONS.
          * If not set, this RcsFeature should not service capability requests.
diff --git a/telephony/java/android/telephony/ims/stub/ImsCallSessionImplBase.java b/telephony/java/android/telephony/ims/stub/ImsCallSessionImplBase.java
index da6a7a6..f4367da 100644
--- a/telephony/java/android/telephony/ims/stub/ImsCallSessionImplBase.java
+++ b/telephony/java/android/telephony/ims/stub/ImsCallSessionImplBase.java
@@ -17,19 +17,19 @@
 package android.telephony.ims.stub;
 
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.os.Message;
 import android.os.RemoteException;
-import android.telephony.ims.ImsCallSessionListener;
-import android.telephony.ims.aidl.IImsCallSessionListener;
-
 import android.telephony.ims.ImsCallProfile;
+import android.telephony.ims.ImsCallSession;
+import android.telephony.ims.ImsCallSessionListener;
 import android.telephony.ims.ImsReasonInfo;
 import android.telephony.ims.ImsStreamMediaProfile;
-import android.telephony.ims.ImsCallSession;
+import android.telephony.ims.ImsVideoCallProvider;
+import android.telephony.ims.aidl.IImsCallSessionListener;
+
 import com.android.ims.internal.IImsCallSession;
 import com.android.ims.internal.IImsVideoCallProvider;
-import android.telephony.ims.ImsVideoCallProvider;
-
 /**
  * Base implementation of IImsCallSession, which implements stub versions of the methods available.
  *
@@ -38,6 +38,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 // DO NOT remove or change the existing APIs, only add new ones to this Base implementation or you
 // will break other implementations of ImsCallSession maintained by other ImsServices.
 public class ImsCallSessionImplBase implements AutoCloseable {
diff --git a/telephony/java/android/telephony/ims/stub/ImsConfigImplBase.java b/telephony/java/android/telephony/ims/stub/ImsConfigImplBase.java
index 3e135cc..4c0de7f 100644
--- a/telephony/java/android/telephony/ims/stub/ImsConfigImplBase.java
+++ b/telephony/java/android/telephony/ims/stub/ImsConfigImplBase.java
@@ -18,6 +18,7 @@
 
 import android.annotation.IntDef;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.content.Context;
 import android.os.PersistableBundle;
 import android.os.RemoteCallbackList;
@@ -48,6 +49,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public class ImsConfigImplBase {
 
     private static final String TAG = "ImsConfigImplBase";
diff --git a/telephony/java/android/telephony/ims/stub/ImsEcbmImplBase.java b/telephony/java/android/telephony/ims/stub/ImsEcbmImplBase.java
index 06c35ea..4a3a2ea 100644
--- a/telephony/java/android/telephony/ims/stub/ImsEcbmImplBase.java
+++ b/telephony/java/android/telephony/ims/stub/ImsEcbmImplBase.java
@@ -17,6 +17,7 @@
 package android.telephony.ims.stub;
 
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.os.RemoteException;
 import android.util.Log;
 
@@ -33,6 +34,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public class ImsEcbmImplBase {
     private static final String TAG = "ImsEcbmImplBase";
 
diff --git a/telephony/java/android/telephony/ims/stub/ImsFeatureConfiguration.java b/telephony/java/android/telephony/ims/stub/ImsFeatureConfiguration.java
index cd9ebbf..4e7307e 100644
--- a/telephony/java/android/telephony/ims/stub/ImsFeatureConfiguration.java
+++ b/telephony/java/android/telephony/ims/stub/ImsFeatureConfiguration.java
@@ -19,6 +19,7 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.telephony.ims.feature.ImsFeature;
@@ -35,6 +36,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public final class ImsFeatureConfiguration implements Parcelable {
 
     public static final class FeatureSlotPair {
diff --git a/telephony/java/android/telephony/ims/stub/ImsMultiEndpointImplBase.java b/telephony/java/android/telephony/ims/stub/ImsMultiEndpointImplBase.java
index ce2d89a..0ae5bba 100644
--- a/telephony/java/android/telephony/ims/stub/ImsMultiEndpointImplBase.java
+++ b/telephony/java/android/telephony/ims/stub/ImsMultiEndpointImplBase.java
@@ -17,10 +17,11 @@
 package android.telephony.ims.stub;
 
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.os.RemoteException;
+import android.telephony.ims.ImsExternalCallState;
 import android.util.Log;
 
-import android.telephony.ims.ImsExternalCallState;
 import com.android.ims.internal.IImsExternalCallStateListener;
 import com.android.ims.internal.IImsMultiEndpoint;
 
@@ -37,6 +38,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public class ImsMultiEndpointImplBase {
     private static final String TAG = "MultiEndpointImplBase";
 
diff --git a/telephony/java/android/telephony/ims/stub/ImsRegistrationImplBase.java b/telephony/java/android/telephony/ims/stub/ImsRegistrationImplBase.java
index b455c2e..c0f16e5 100644
--- a/telephony/java/android/telephony/ims/stub/ImsRegistrationImplBase.java
+++ b/telephony/java/android/telephony/ims/stub/ImsRegistrationImplBase.java
@@ -18,6 +18,7 @@
 
 import android.annotation.IntDef;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.net.Uri;
 import android.os.RemoteCallbackList;
 import android.os.RemoteException;
@@ -38,6 +39,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public class ImsRegistrationImplBase {
 
     private static final String LOG_TAG = "ImsRegistrationImplBase";
diff --git a/telephony/java/android/telephony/ims/stub/ImsSmsImplBase.java b/telephony/java/android/telephony/ims/stub/ImsSmsImplBase.java
index 36ece95..ce9a73a 100644
--- a/telephony/java/android/telephony/ims/stub/ImsSmsImplBase.java
+++ b/telephony/java/android/telephony/ims/stub/ImsSmsImplBase.java
@@ -19,6 +19,7 @@
 import android.annotation.IntDef;
 import android.annotation.IntRange;
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.os.RemoteException;
 import android.telephony.SmsManager;
 import android.telephony.SmsMessage;
@@ -37,6 +38,7 @@
  * @hide
  */
 @SystemApi
+@TestApi
 public class ImsSmsImplBase {
     private static final String LOG_TAG = "SmsImplBase";
 
diff --git a/telephony/java/android/telephony/ims/stub/ImsUtImplBase.java b/telephony/java/android/telephony/ims/stub/ImsUtImplBase.java
index fcd7faf..feac3c2 100644
--- a/telephony/java/android/telephony/ims/stub/ImsUtImplBase.java
+++ b/telephony/java/android/telephony/ims/stub/ImsUtImplBase.java
@@ -17,6 +17,7 @@
 package android.telephony.ims.stub;
 
 import android.annotation.SystemApi;
+import android.annotation.TestApi;
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.telephony.ims.ImsUtListener;
@@ -33,6 +34,7 @@
 // DO NOT remove or change the existing APIs, only add new ones to this Base implementation or you
 // will break other implementations of ImsUt maintained by other ImsServices.
 @SystemApi
+@TestApi
 public class ImsUtImplBase {
 
     private IImsUt.Stub mServiceImpl = new IImsUt.Stub() {
diff --git a/telephony/java/com/android/ims/ImsUtInterface.java b/telephony/java/com/android/ims/ImsUtInterface.java
index c9d4405..e80087d 100644
--- a/telephony/java/com/android/ims/ImsUtInterface.java
+++ b/telephony/java/com/android/ims/ImsUtInterface.java
@@ -21,6 +21,8 @@
 import android.telephony.ims.ImsCallForwardInfo;
 import android.telephony.ims.ImsSsInfo;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 /**
  * Provides APIs for the supplementary service settings using IMS (Ut interface).
  * It is created from 3GPP TS 24.623 (XCAP(XML Configuration Access Protocol)
@@ -121,6 +123,7 @@
      * Retrieves the configuration of the call forward.
      * The return value of ((AsyncResult)result.obj) is an array of {@link ImsCallForwardInfo}.
      */
+    @UnsupportedAppUsage
     public void queryCallForward(int condition, String number, Message result);
 
     /**
diff --git a/telephony/java/com/android/internal/telephony/DctConstants.java b/telephony/java/com/android/internal/telephony/DctConstants.java
index cde6db4..e1113eb 100644
--- a/telephony/java/com/android/internal/telephony/DctConstants.java
+++ b/telephony/java/com/android/internal/telephony/DctConstants.java
@@ -17,6 +17,8 @@
 
 import com.android.internal.util.Protocol;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 /**
  * @hide
  */
@@ -37,20 +39,34 @@
      *      RETRYING or CONNECTING: CONNECTING
      *      CONNECTED : CONNECTED or DISCONNECTING
      */
+    @UnsupportedAppUsage(implicitMember =
+            "values()[Lcom/android/internal/telephony/DctConstants$State;")
     public enum State {
+        @UnsupportedAppUsage
         IDLE,
+        @UnsupportedAppUsage
         CONNECTING,
+        @UnsupportedAppUsage
         RETRYING,
+        @UnsupportedAppUsage
         CONNECTED,
+        @UnsupportedAppUsage
         DISCONNECTING,
+        @UnsupportedAppUsage
         FAILED,
     }
 
+    @UnsupportedAppUsage(implicitMember =
+            "values()[Lcom/android/internal/telephony/DctConstants$Activity;")
     public enum Activity {
         NONE,
+        @UnsupportedAppUsage
         DATAIN,
+        @UnsupportedAppUsage
         DATAOUT,
+        @UnsupportedAppUsage
         DATAINANDOUT,
+        @UnsupportedAppUsage
         DORMANT
     }
 
diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl
index 414693e..eedfc6a 100644
--- a/telephony/java/com/android/internal/telephony/ITelephony.aidl
+++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl
@@ -319,6 +319,7 @@
     /**
      * Replaced by getDataActivityForSubId.
      */
+    @UnsupportedAppUsage(maxTargetSdk = 28)
     int getDataActivity();
 
     /**
@@ -336,6 +337,7 @@
     /**
      * Replaced by getDataStateForSubId.
      */
+    @UnsupportedAppUsage(maxTargetSdk = 28)
     int getDataState();
 
     /**
@@ -817,7 +819,7 @@
      * @return {@code true} if DUN APN is required for tethering.
      * @hide
      */
-    boolean getTetherApnRequiredForSubscriber(int subId);
+    boolean isTetheringApnRequiredForSubscriber(int subId);
 
     /**
     * Enables framework IMS and triggers IMS Registration.
@@ -1989,6 +1991,21 @@
     List<String> getEmergencyNumberListTestMode();
 
     /**
+     * A test API to return the emergency number db version.
+     */
+    int getEmergencyNumberDbVersion(int subId);
+
+    /**
+     * Notify Telephony for OTA emergency number database installation complete.
+     */
+    void notifyOtaEmergencyNumberDbInstalled();
+
+    /**
+     * Override the file partition name for testing OTA emergency number database.
+     */
+    void updateTestOtaEmergencyNumberDbFilePath(String otaFilePath);
+
+    /**
      * Enable or disable a logical modem stack associated with the slotIndex.
      */
     boolean enableModemForSlot(int slotIndex, boolean enable);
diff --git a/telephony/java/com/android/internal/telephony/IccCardConstants.java b/telephony/java/com/android/internal/telephony/IccCardConstants.java
index d57f9af..6ff27b1 100644
--- a/telephony/java/com/android/internal/telephony/IccCardConstants.java
+++ b/telephony/java/com/android/internal/telephony/IccCardConstants.java
@@ -17,6 +17,8 @@
 
 import android.telephony.TelephonyManager;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 /**
  * {@hide}
  */
@@ -65,15 +67,26 @@
      *
      * The ordinal values much match {@link TelephonyManager#SIM_STATE_UNKNOWN} ...
      */
+    @UnsupportedAppUsage(implicitMember =
+            "values()[Lcom/android/internal/telephony/IccCardConstants$State;")
     public enum State {
+        @UnsupportedAppUsage
         UNKNOWN,        /** ordinal(0) == {@See TelephonyManager#SIM_STATE_UNKNOWN} */
+        @UnsupportedAppUsage
         ABSENT,         /** ordinal(1) == {@See TelephonyManager#SIM_STATE_ABSENT} */
+        @UnsupportedAppUsage
         PIN_REQUIRED,   /** ordinal(2) == {@See TelephonyManager#SIM_STATE_PIN_REQUIRED} */
+        @UnsupportedAppUsage
         PUK_REQUIRED,   /** ordinal(3) == {@See TelephonyManager#SIM_STATE_PUK_REQUIRED} */
+        @UnsupportedAppUsage
         NETWORK_LOCKED, /** ordinal(4) == {@See TelephonyManager#SIM_STATE_NETWORK_LOCKED} */
+        @UnsupportedAppUsage
         READY,          /** ordinal(5) == {@See TelephonyManager#SIM_STATE_READY} */
+        @UnsupportedAppUsage
         NOT_READY,      /** ordinal(6) == {@See TelephonyManager#SIM_STATE_NOT_READY} */
+        @UnsupportedAppUsage
         PERM_DISABLED,  /** ordinal(7) == {@See TelephonyManager#SIM_STATE_PERM_DISABLED} */
+        @UnsupportedAppUsage
         CARD_IO_ERROR,  /** ordinal(8) == {@See TelephonyManager#SIM_STATE_CARD_IO_ERROR} */
         CARD_RESTRICTED,/** ordinal(9) == {@See TelephonyManager#SIM_STATE_CARD_RESTRICTED} */
         LOADED;         /** ordinal(9) == {@See TelephonyManager#SIM_STATE_LOADED} */
diff --git a/telephony/java/com/android/internal/telephony/PhoneConstants.java b/telephony/java/com/android/internal/telephony/PhoneConstants.java
index 5b2f688..e4397cd 100644
--- a/telephony/java/com/android/internal/telephony/PhoneConstants.java
+++ b/telephony/java/com/android/internal/telephony/PhoneConstants.java
@@ -15,6 +15,8 @@
  */
 package com.android.internal.telephony;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 /**
  * @hide
  */
@@ -31,8 +33,15 @@
      * ringing or waiting.</li>
      * </ul>
      */
+    @UnsupportedAppUsage(implicitMember =
+            "values()[Lcom/android/internal/telephony/PhoneConstants$State;")
     public enum State {
-        IDLE, RINGING, OFFHOOK;
+        @UnsupportedAppUsage
+        IDLE,
+        @UnsupportedAppUsage
+        RINGING,
+        @UnsupportedAppUsage
+        OFFHOOK;
     };
 
     /**
@@ -46,8 +55,17 @@
       *                 in 2G network</li>
       * </ul>
       */
+    @UnsupportedAppUsage(implicitMember =
+            "values()[Lcom/android/internal/telephony/PhoneConstants$DataState;")
     public enum DataState {
-        CONNECTED, CONNECTING, DISCONNECTED, SUSPENDED;
+        @UnsupportedAppUsage
+        CONNECTED,
+        @UnsupportedAppUsage
+        CONNECTING,
+        @UnsupportedAppUsage
+        DISCONNECTED,
+        @UnsupportedAppUsage
+        SUSPENDED;
     };
 
     public static final String STATE_KEY = "state";
@@ -69,9 +87,13 @@
     public static final int LTE_ON_CDMA_TRUE = RILConstants.LTE_ON_CDMA_TRUE;
 
     // Number presentation type for caller id display (From internal/Connection.java)
+    @UnsupportedAppUsage
     public static final int PRESENTATION_ALLOWED = 1;    // normal
+    @UnsupportedAppUsage
     public static final int PRESENTATION_RESTRICTED = 2; // block by user
+    @UnsupportedAppUsage
     public static final int PRESENTATION_UNKNOWN = 3;    // no specified or unknown by network
+    @UnsupportedAppUsage
     public static final int PRESENTATION_PAYPHONE = 4;   // show pay phone info
 
     public static final String PHONE_NAME_KEY = "phoneName";
diff --git a/telephony/java/com/android/internal/telephony/RILConstants.java b/telephony/java/com/android/internal/telephony/RILConstants.java
index 5205973..03ea920 100644
--- a/telephony/java/com/android/internal/telephony/RILConstants.java
+++ b/telephony/java/com/android/internal/telephony/RILConstants.java
@@ -18,6 +18,8 @@
 
 import android.telephony.TelephonyManager;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 /**
  * {@hide}
  */
@@ -230,6 +232,7 @@
     /** NR 5G, LTE, TD-SCDMA, CDMA, EVDO, GSM and WCDMA */
     int NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 33;
 
+    @UnsupportedAppUsage
     int PREFERRED_NETWORK_MODE = Integer.parseInt(TelephonyManager.getTelephonyProperty(0,
             "ro.telephony.default_network", Integer.toString(NETWORK_MODE_WCDMA_PREF)));
 
diff --git a/telephony/java/com/android/internal/telephony/Sms7BitEncodingTranslator.java b/telephony/java/com/android/internal/telephony/Sms7BitEncodingTranslator.java
index 49c737f..2cdf2f6 100644
--- a/telephony/java/com/android/internal/telephony/Sms7BitEncodingTranslator.java
+++ b/telephony/java/com/android/internal/telephony/Sms7BitEncodingTranslator.java
@@ -16,27 +16,28 @@
 
 package com.android.internal.telephony;
 
-import android.telephony.Rlog;
-import android.os.Build;
-import android.util.SparseIntArray;
 import android.content.res.Resources;
 import android.content.res.XmlResourceParser;
-import android.telephony.SmsManager;
-import android.telephony.TelephonyManager;
+import android.os.Build;
+import android.telephony.Rlog;
+import android.util.SparseIntArray;
 
-import com.android.internal.util.XmlUtils;
 import com.android.internal.telephony.cdma.sms.UserData;
+import com.android.internal.util.XmlUtils;
 
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserException;
+import dalvik.annotation.compat.UnsupportedAppUsage;
 
 public class Sms7BitEncodingTranslator {
     private static final String TAG = "Sms7BitEncodingTranslator";
+    @UnsupportedAppUsage
     private static final boolean DBG = Build.IS_DEBUGGABLE ;
     private static boolean mIs7BitTranslationTableLoaded = false;
     private static SparseIntArray mTranslationTable = null;
+    @UnsupportedAppUsage
     private static SparseIntArray mTranslationTableCommon = null;
+    @UnsupportedAppUsage
     private static SparseIntArray mTranslationTableGSM = null;
+    @UnsupportedAppUsage
     private static SparseIntArray mTranslationTableCDMA = null;
 
     // Parser variables
diff --git a/telephony/java/com/android/internal/telephony/SmsHeader.java b/telephony/java/com/android/internal/telephony/SmsHeader.java
index 9fe1718..dd77b01 100644
--- a/telephony/java/com/android/internal/telephony/SmsHeader.java
+++ b/telephony/java/com/android/internal/telephony/SmsHeader.java
@@ -16,13 +16,12 @@
 
 package com.android.internal.telephony;
 
-import com.android.internal.telephony.SmsConstants;
+import android.annotation.UnsupportedAppUsage;
+
 import com.android.internal.util.HexDump;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
-
-import android.annotation.UnsupportedAppUsage;
 import java.util.ArrayList;
 
 /**
@@ -74,6 +73,10 @@
 
     public static class PortAddrs {
         @UnsupportedAppUsage
+        public PortAddrs() {
+        }
+
+        @UnsupportedAppUsage
         public int destPort;
         @UnsupportedAppUsage
         public int origPort;
@@ -82,6 +85,10 @@
 
     public static class ConcatRef {
         @UnsupportedAppUsage
+        public ConcatRef() {
+        }
+
+        @UnsupportedAppUsage
         public int refNumber;
         @UnsupportedAppUsage
         public int seqNumber;
diff --git a/telephony/java/com/android/internal/telephony/SmsMessageBase.java b/telephony/java/com/android/internal/telephony/SmsMessageBase.java
index ffdc4b6..d36d95b 100644
--- a/telephony/java/com/android/internal/telephony/SmsMessageBase.java
+++ b/telephony/java/com/android/internal/telephony/SmsMessageBase.java
@@ -16,23 +16,26 @@
 
 package com.android.internal.telephony;
 
-import com.android.internal.telephony.GsmAlphabet.TextEncodingDetails;
-import com.android.internal.telephony.SmsConstants;
-import com.android.internal.telephony.SmsHeader;
-import java.text.BreakIterator;
-import java.util.Arrays;
-
 import android.annotation.UnsupportedAppUsage;
 import android.os.Build;
 import android.provider.Telephony;
 import android.telephony.SmsMessage;
-import android.text.Emoji;
+
+import com.android.internal.telephony.GsmAlphabet.TextEncodingDetails;
+
+import java.text.BreakIterator;
+import java.util.Arrays;
 
 /**
  * Base class declaring the specific methods and members for SmsMessage.
  * {@hide}
  */
 public abstract class SmsMessageBase {
+
+    @UnsupportedAppUsage
+    public SmsMessageBase() {
+    }
+
     /** {@hide} The address of the SMSC. May be null */
     @UnsupportedAppUsage
     protected String mScAddress;
@@ -400,9 +403,9 @@
             if (!breakIterator.isBoundary(nextPos)) {
                 int breakPos = breakIterator.preceding(nextPos);
                 while (breakPos + 4 <= nextPos
-                        && Emoji.isRegionalIndicatorSymbol(
+                        && isRegionalIndicatorSymbol(
                             Character.codePointAt(msgBody, breakPos))
-                        && Emoji.isRegionalIndicatorSymbol(
+                        && isRegionalIndicatorSymbol(
                             Character.codePointAt(msgBody, breakPos + 2))) {
                     // skip forward over flags (pairs of Regional Indicator Symbol)
                     breakPos += 4;
@@ -418,6 +421,11 @@
         return nextPos;
     }
 
+    private static boolean isRegionalIndicatorSymbol(int codePoint) {
+        /** Based on http://unicode.org/Public/emoji/3.0/emoji-sequences.txt */
+        return 0x1F1E6 <= codePoint && codePoint <= 0x1F1FF;
+    }
+
     /**
      * Calculate the TextEncodingDetails of a message encoded in Unicode.
      */
diff --git a/telephony/java/com/android/internal/telephony/TelephonyPermissions.java b/telephony/java/com/android/internal/telephony/TelephonyPermissions.java
index 67103bf..8a852ee 100644
--- a/telephony/java/com/android/internal/telephony/TelephonyPermissions.java
+++ b/telephony/java/com/android/internal/telephony/TelephonyPermissions.java
@@ -237,9 +237,10 @@
      * <ul>
      *   <li>return true: if the caller has the READ_PRIVILEGED_PHONE_STATE permission, the calling
      *       package passes a DevicePolicyManager Device Owner / Profile Owner device identifier
-     *       access check, or the calling package has carrier privileges.
-     *   <li>throw SecurityException: if the caller does not meet any of the requirements and is
-     *       targeting Q or is targeting pre-Q and does not have the READ_PHONE_STATE permission.
+     *       access check, or the calling package has carrier privileges on any active subscription.
+    *   <li>throw SecurityException: if the caller does not meet any of the requirements and is
+     *       targeting Q or is targeting pre-Q and does not have the READ_PHONE_STATE permission
+     *       or carrier privileges of any active subscription.
      *   <li>return false: if the caller is targeting pre-Q and does have the READ_PHONE_STATE
      *       permission. In this case the caller would expect to have access to the device
      *       identifiers so false is returned instead of throwing a SecurityException to indicate
@@ -259,10 +260,10 @@
      * <ul>
      *   <li>return true: if the caller has the READ_PRIVILEGED_PHONE_STATE permission, the calling
      *       package passes a DevicePolicyManager Device Owner / Profile Owner device identifier
-     *       access check, or the calling package has carrier privileges.
+     *       access check, or the calling package has carrier privileges on any active subscription.
      *   <li>throw SecurityException: if the caller does not meet any of the requirements and is
      *       targeting Q or is targeting pre-Q and does not have the READ_PHONE_STATE permission
-     *       or carrier privileges.
+     *       or carrier privileges of any active subscription.
      *   <li>return false: if the caller is targeting pre-Q and does have the READ_PHONE_STATE
      *       permission or carrier privileges. In this case the caller would expect to have access
      *       to the device identifiers so false is returned instead of throwing a SecurityException
@@ -271,8 +272,8 @@
      */
     public static boolean checkCallingOrSelfReadDeviceIdentifiers(Context context, int subId,
             String callingPackage, String message) {
-        return checkReadDeviceIdentifiers(context, TELEPHONY_SUPPLIER, subId,
-                Binder.getCallingPid(), Binder.getCallingUid(), callingPackage, message);
+        return checkPrivilegedReadPermissionOrCarrierPrivilegePermission(
+                context, subId, callingPackage, message, true);
     }
 
     /**
@@ -282,7 +283,7 @@
      * <ul>
      *   <li>return true: if the caller has the READ_PRIVILEGED_PHONE_STATE permission, the calling
      *       package passes a DevicePolicyManager Device Owner / Profile Owner device identifier
-     *       access check, or the calling package has carrier privileges.
+     *       access check, or the calling package has carrier privileges on specified subscription.
      *   <li>throw SecurityException: if the caller does not meet any of the requirements and is
      *       targeting Q or is targeting pre-Q and does not have the READ_PHONE_STATE permission.
      *   <li>return false: if the caller is targeting pre-Q and does have the READ_PHONE_STATE
@@ -293,21 +294,33 @@
      */
     public static boolean checkCallingOrSelfReadSubscriberIdentifiers(Context context, int subId,
             String callingPackage, String message) {
-        return checkReadDeviceIdentifiers(context, TELEPHONY_SUPPLIER, subId,
-                Binder.getCallingPid(), Binder.getCallingUid(), callingPackage, message);
+        return checkPrivilegedReadPermissionOrCarrierPrivilegePermission(
+                context, subId, callingPackage, message, false);
     }
 
     /**
      * Checks whether the app with the given pid/uid can read device identifiers.
      *
-     * @returns true if the caller has the READ_PRIVILEGED_PHONE_STATE permission or the calling
-     * package passes a DevicePolicyManager Device Owner / Profile Owner device identifier access
-     * check.
+     * <p>This method behaves in one of the following ways:
+     * <ul>
+     *   <li>return true: if the caller has the READ_PRIVILEGED_PHONE_STATE permission, the calling
+     *       package passes a DevicePolicyManager Device Owner / Profile Owner device identifier
+     *       access check; or the calling package has carrier privileges on the specified
+     *       subscription; or allowCarrierPrivilegeOnAnySub is true and has carrier privilege on
+     *       any active subscription.
+     *   <li>throw SecurityException: if the caller does not meet any of the requirements and is
+     *       targeting Q or is targeting pre-Q and does not have the READ_PHONE_STATE permission.
+     *   <li>return false: if the caller is targeting pre-Q and does have the READ_PHONE_STATE
+     *       permission. In this case the caller would expect to have access to the device
+     *       identifiers so false is returned instead of throwing a SecurityException to indicate
+     *       the calling function should return dummy data.
+     * </ul>
      */
-    @VisibleForTesting
-    public static boolean checkReadDeviceIdentifiers(Context context,
-            Supplier<ITelephony> telephonySupplier, int subId, int pid, int uid,
-            String callingPackage, String message) {
+    private static boolean checkPrivilegedReadPermissionOrCarrierPrivilegePermission(
+            Context context, int subId, String callingPackage, String message,
+            boolean allowCarrierPrivilegeOnAnySub) {
+        int uid = Binder.getCallingUid();
+        int pid = Binder.getCallingPid();
         // Allow system and root access to the device identifiers.
         final int appId = UserHandle.getAppId(uid);
         if (appId == Process.SYSTEM_UID || appId == Process.ROOT_UID) {
@@ -318,10 +331,17 @@
                 uid) == PackageManager.PERMISSION_GRANTED) {
             return true;
         }
-        // If the calling package has carrier privileges for any subscription then allow access.
-        if (checkCarrierPrivilegeForAnySubId(context, telephonySupplier, uid)) {
+
+        // If the calling package has carrier privileges for specified sub, then allow access.
+        if (checkCarrierPrivilegeForSubId(subId)) return true;
+
+        // If the calling package has carrier privileges for any subscription
+        // and allowCarrierPrivilegeOnAnySub is set true, then allow access.
+        if (allowCarrierPrivilegeOnAnySub && checkCarrierPrivilegeForAnySubId(
+                context, TELEPHONY_SUPPLIER, uid)) {
             return true;
         }
+
         // if the calling package is not null then perform the DevicePolicyManager device /
         // profile owner and Appop checks.
         if (callingPackage != null) {
@@ -347,7 +367,7 @@
             }
         }
         return reportAccessDeniedToReadIdentifiers(context, subId, pid, uid, callingPackage,
-            message);
+                message);
     }
 
     /**
diff --git a/telephony/java/com/android/internal/telephony/TelephonyProperties.java b/telephony/java/com/android/internal/telephony/TelephonyProperties.java
index bf5c0a1..4e42c20 100644
--- a/telephony/java/com/android/internal/telephony/TelephonyProperties.java
+++ b/telephony/java/com/android/internal/telephony/TelephonyProperties.java
@@ -16,6 +16,8 @@
 
 package com.android.internal.telephony;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 /**
  * Contains a list of string constants used to get or set telephone properties
  * in the system. You can use {@link android.os.SystemProperties os.SystemProperties}
@@ -101,6 +103,7 @@
      *  provider of the SIM. 5 or 6 decimal digits.
      *  Availability: SIM state must be "READY"
      */
+    @UnsupportedAppUsage
     static String PROPERTY_ICC_OPERATOR_NUMERIC = "gsm.sim.operator.numeric";
 
     /** PROPERTY_ICC_OPERATOR_ALPHA is also known as the SPN, or Service Provider Name.
diff --git a/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java b/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java
index 1523875..b357fa4 100644
--- a/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java
+++ b/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java
@@ -44,6 +44,8 @@
 import com.android.internal.util.BitwiseInputStream;
 import com.android.internal.util.HexDump;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 import java.io.BufferedOutputStream;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -108,7 +110,9 @@
     private static final int PRIORITY_URGENT        = 0x2;
     private static final int PRIORITY_EMERGENCY     = 0x3;
 
+    @UnsupportedAppUsage
     private SmsEnvelope mEnvelope;
+    @UnsupportedAppUsage
     private BearerData mBearerData;
 
     /** @hide */
@@ -118,15 +122,20 @@
         createPdu();
     }
 
+    @UnsupportedAppUsage
     public SmsMessage() {}
 
     public static class SubmitPdu extends SubmitPduBase {
+        @UnsupportedAppUsage
+        public SubmitPdu() {
+        }
     }
 
     /**
      * Create an SmsMessage from a raw PDU.
      * Note: In CDMA the PDU is just a byte representation of the received Sms.
      */
+    @UnsupportedAppUsage
     public static SmsMessage createFromPdu(byte[] pdu) {
         SmsMessage msg = new SmsMessage();
 
@@ -152,6 +161,7 @@
      *
      * @hide
      */
+    @UnsupportedAppUsage
     public static SmsMessage createFromEfRecord(int index, byte[] data) {
         try {
             SmsMessage msg = new SmsMessage();
@@ -218,6 +228,7 @@
      *         Returns null on encode error.
      * @hide
      */
+    @UnsupportedAppUsage
     public static SubmitPdu getSubmitPdu(String scAddr, String destAddr, String message,
             boolean statusReportRequested, SmsHeader smsHeader) {
         return getSubmitPdu(scAddr, destAddr, message, statusReportRequested, smsHeader, -1);
@@ -238,6 +249,7 @@
      *         Returns null on encode error.
      * @hide
      */
+    @UnsupportedAppUsage
     public static SubmitPdu getSubmitPdu(String scAddr, String destAddr, String message,
             boolean statusReportRequested, SmsHeader smsHeader, int priority) {
 
@@ -268,6 +280,7 @@
      *         address, if applicable, and the encoded message.
      *         Returns null on encode error.
      */
+    @UnsupportedAppUsage
     public static SubmitPdu getSubmitPdu(String scAddr, String destAddr, int destPort,
             byte[] data, boolean statusReportRequested) {
 
@@ -305,6 +318,7 @@
      *         address, if applicable, and the encoded message.
      *         Returns null on encode error.
      */
+    @UnsupportedAppUsage
     public static SubmitPdu getSubmitPdu(String destAddr, UserData userData,
             boolean statusReportRequested) {
         return privateGetSubmitPdu(destAddr, statusReportRequested, userData);
@@ -321,6 +335,7 @@
      *         address, if applicable, and the encoded message.
      *         Returns null on encode error.
      */
+    @UnsupportedAppUsage
     public static SubmitPdu getSubmitPdu(String destAddr, UserData userData,
             boolean statusReportRequested, int priority) {
         return privateGetSubmitPdu(destAddr, statusReportRequested, userData, priority);
@@ -392,6 +407,7 @@
     }
 
     /** Return true iff the bearer data message type is DELIVERY_ACK. */
+    @UnsupportedAppUsage
     @Override
     public boolean isStatusReportMessage() {
         return (mBearerData.messageType == BearerData.MESSAGE_TYPE_DELIVERY_ACK);
@@ -414,6 +430,7 @@
      * @param isEntireMsg indicates if this is entire msg or a segment in multipart msg
      * @return TextEncodingDetails
      */
+    @UnsupportedAppUsage
     public static TextEncodingDetails calculateLength(CharSequence messageBody,
             boolean use7bitOnly, boolean isEntireMsg) {
         CharSequence newMsgBody = null;
@@ -436,6 +453,7 @@
      *  {@link com.android.internal.telephony.cdma.sms.SmsEnvelope#TELESERVICE_VMN},
      *  {@link com.android.internal.telephony.cdma.sms.SmsEnvelope#TELESERVICE_WAP}
     */
+    @UnsupportedAppUsage
     public int getTeleService() {
         return mEnvelope.teleService;
     }
@@ -447,6 +465,7 @@
      *  {@link com.android.internal.telephony.cdma.sms.SmsEnvelope#MESSAGE_TYPE_BROADCAST},
      *  {@link com.android.internal.telephony.cdma.sms.SmsEnvelope#MESSAGE_TYPE_ACKNOWLEDGE},
     */
+    @UnsupportedAppUsage
     public int getMessageType() {
         // NOTE: mEnvelope.messageType is not set correctly for cell broadcasts with some RILs.
         // Use the service category parameter to detect CMAS and other cell broadcast messages.
@@ -762,6 +781,7 @@
     /**
      * Parses a SMS message from its BearerData stream.
      */
+    @UnsupportedAppUsage
     public void parseSms() {
         // Message Waiting Info Record defined in 3GPP2 C.S-0005, 3.7.5.6
         // It contains only an 8-bit number with the number of messages waiting
@@ -913,6 +933,7 @@
      * binder-call, and hence should be thread-safe, it has been
      * synchronized.
      */
+    @UnsupportedAppUsage
     public synchronized static int getNextMessageId() {
         // Testing and dialog with partners has indicated that
         // msgId==0 is (sometimes?) treated specially by lower levels.
@@ -937,6 +958,7 @@
      * Creates BearerData and Envelope from parameters for a Submit SMS.
      * @return byte stream for SubmitPdu.
      */
+    @UnsupportedAppUsage
     private static SubmitPdu privateGetSubmitPdu(String destAddrStr, boolean statusReportRequested,
             UserData userData) {
         return privateGetSubmitPdu(destAddrStr, statusReportRequested, userData, -1);
@@ -1122,6 +1144,7 @@
     /** This function  shall be called to get the number of voicemails.
      * @hide
      */
+    @UnsupportedAppUsage
     public int getNumOfVoicemails() {
         return mBearerData.numberOfMessages;
     }
@@ -1133,6 +1156,7 @@
      * @return byte array uniquely identifying the message.
      * @hide
      */
+    @UnsupportedAppUsage
     public byte[] getIncomingSmsFingerprint() {
         ByteArrayOutputStream output = new ByteArrayOutputStream();
 
diff --git a/telephony/java/com/android/internal/telephony/cdma/UserData.java b/telephony/java/com/android/internal/telephony/cdma/UserData.java
index f879560..d960f05 100644
--- a/telephony/java/com/android/internal/telephony/cdma/UserData.java
+++ b/telephony/java/com/android/internal/telephony/cdma/UserData.java
@@ -21,8 +21,14 @@
 import com.android.internal.telephony.SmsHeader;
 import com.android.internal.util.HexDump;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 public class UserData {
 
+    @UnsupportedAppUsage
+    public UserData() {
+    }
+
     /**
      * User data encoding types.
      * (See 3GPP2 C.R1001-F, v1.0, table 9.1-1)
@@ -92,6 +98,7 @@
     public static final int PRINTABLE_ASCII_MIN_INDEX = 0x20;
     public static final int ASCII_NL_INDEX = 0x0A;
     public static final int ASCII_CR_INDEX = 0x0D;
+    @UnsupportedAppUsage
     public static final SparseIntArray charToAscii = new SparseIntArray();
     static {
         for (int i = 0; i < ASCII_MAP.length; i++) {
@@ -131,12 +138,15 @@
     /**
      * Contains the data header of the user data
      */
+    @UnsupportedAppUsage
     public SmsHeader userDataHeader;
 
     /**
      * Contains the data encoding type for the SMS message
      */
+    @UnsupportedAppUsage
     public int msgEncoding;
+    @UnsupportedAppUsage
     public boolean msgEncodingSet = false;
 
     public int msgType;
@@ -146,13 +156,16 @@
      */
     public int paddingBits;
 
+    @UnsupportedAppUsage
     public int numFields;
 
     /**
      * Contains the user data of a SMS message
      * (See 3GPP2 C.S0015-B, v2, 4.5.2)
      */
+    @UnsupportedAppUsage
     public byte[] payload;
+    @UnsupportedAppUsage
     public String payloadStr;
 
     @Override
diff --git a/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java b/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java
index dab1436..e9378e7 100644
--- a/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java
+++ b/telephony/java/com/android/internal/telephony/cdma/sms/BearerData.java
@@ -17,10 +17,10 @@
 package com.android.internal.telephony.cdma.sms;
 
 import android.content.res.Resources;
+import android.telephony.Rlog;
 import android.telephony.SmsCbCmasInfo;
 import android.telephony.cdma.CdmaSmsCbProgramData;
 import android.telephony.cdma.CdmaSmsCbProgramResults;
-import android.telephony.Rlog;
 
 import com.android.internal.telephony.GsmAlphabet;
 import com.android.internal.telephony.GsmAlphabet.TextEncodingDetails;
@@ -31,6 +31,8 @@
 import com.android.internal.util.BitwiseInputStream;
 import com.android.internal.util.BitwiseOutputStream;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 import java.time.Instant;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
@@ -42,6 +44,10 @@
 public final class BearerData {
     private final static String LOG_TAG = "BearerData";
 
+    @UnsupportedAppUsage
+    public BearerData() {
+    }
+
     /**
      * Bearer Data Subparameter Identifiers
      * (See 3GPP2 C.S0015-B, v2.0, table 4.5-1)
@@ -95,6 +101,7 @@
      * (Special rules apply for WAP-messages.)
      * (See 3GPP2 C.S0015-B, v2, 4.5.1)
      */
+    @UnsupportedAppUsage
     public int messageId;
 
     /**
@@ -106,7 +113,9 @@
     public static final int PRIORITY_URGENT        = 0x2;
     public static final int PRIORITY_EMERGENCY     = 0x3;
 
+    @UnsupportedAppUsage
     public boolean priorityIndicatorSet = false;
+    @UnsupportedAppUsage
     public int priority = PRIORITY_NORMAL;
 
     /**
@@ -144,6 +153,7 @@
     public static final int DISPLAY_MODE_USER           = 0x2;
 
     public boolean displayModeSet = false;
+    @UnsupportedAppUsage
     public int displayMode = DISPLAY_MODE_DEFAULT;
 
     /**
@@ -207,6 +217,7 @@
      * presence of a UDH in the structured data, any existing setting
      * will be overwritten.
      */
+    @UnsupportedAppUsage
     public boolean hasUserDataHeader;
 
     /**
@@ -214,6 +225,7 @@
      * (e.g. padding bits, user data, user data header, etc)
      * (See 3GPP2 C.S.0015-B, v2, 4.5.2)
      */
+    @UnsupportedAppUsage
     public UserData userData;
 
     /**
@@ -244,6 +256,7 @@
 
         private ZoneId mZoneId;
 
+        @UnsupportedAppUsage
         public TimeStamp() {
             mZoneId = ZoneId.systemDefault();   // 3GPP2 timestamps use the local timezone
         }
@@ -295,6 +308,7 @@
         }
     }
 
+    @UnsupportedAppUsage
     public TimeStamp msgCenterTimeStamp;
     public TimeStamp validityPeriodAbsolute;
     public TimeStamp deferredDeliveryTimeAbsolute;
@@ -383,6 +397,7 @@
 
 
     private static class CodingException extends Exception {
+        @UnsupportedAppUsage
         public CodingException(String s) {
             super(s);
         }
@@ -476,6 +491,7 @@
         outStream.skip(3);
     }
 
+    @UnsupportedAppUsage
     private static int countAsciiSeptets(CharSequence msg, boolean force) {
         int msgLen = msg.length();
         if (force) return msgLen;
@@ -518,6 +534,7 @@
         return ted;
     }
 
+    @UnsupportedAppUsage
     private static byte[] encode7bitAscii(String msg, boolean force)
         throws CodingException
     {
@@ -949,6 +966,7 @@
      *
      * @return byte array of raw encoded SMS bearer data.
      */
+    @UnsupportedAppUsage
     public static byte[] encode(BearerData bData) {
         bData.hasUserDataHeader = ((bData.userData != null) &&
                 (bData.userData.userDataHeader != null));
@@ -1200,6 +1218,7 @@
         }
     }
 
+    @UnsupportedAppUsage
     private static void decodeUserDataPayload(UserData userData, boolean hasUserDataHeader)
         throws CodingException
     {
@@ -1845,6 +1864,7 @@
      * @return the number of bits to read from the stream
      * @throws CodingException if the specified encoding is not supported
      */
+    @UnsupportedAppUsage
     private static int getBitsForNumFields(int msgEncoding, int numFields)
             throws CodingException {
         switch (msgEncoding) {
diff --git a/telephony/java/com/android/internal/telephony/cdma/sms/CdmaSmsAddress.java b/telephony/java/com/android/internal/telephony/cdma/sms/CdmaSmsAddress.java
index d27a758..b268ee8 100644
--- a/telephony/java/com/android/internal/telephony/cdma/sms/CdmaSmsAddress.java
+++ b/telephony/java/com/android/internal/telephony/cdma/sms/CdmaSmsAddress.java
@@ -20,9 +20,10 @@
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.telephony.SmsAddress;
-import com.android.internal.telephony.cdma.sms.UserData;
 import com.android.internal.util.HexDump;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 public class CdmaSmsAddress extends SmsAddress {
 
     /**
@@ -33,6 +34,7 @@
     static public final int DIGIT_MODE_4BIT_DTMF              = 0x00;
     static public final int DIGIT_MODE_8BIT_CHAR              = 0x01;
 
+    @UnsupportedAppUsage
     public int digitMode;
 
     /**
@@ -43,6 +45,7 @@
     static public final int NUMBER_MODE_NOT_DATA_NETWORK      = 0x00;
     static public final int NUMBER_MODE_DATA_NETWORK          = 0x01;
 
+    @UnsupportedAppUsage
     public int numberMode;
 
     /**
@@ -70,6 +73,7 @@
      * This field shall be set to the number of address digits
      * (See 3GPP2 C.S0015-B, v2, 3.4.3.3)
      */
+    @UnsupportedAppUsage
     public int numberOfDigits;
 
     /**
@@ -83,6 +87,7 @@
     //static protected final int NUMBERING_PLAN_TELEX             = 0x4;
     //static protected final int NUMBERING_PLAN_PRIVATE           = 0x9;
 
+    @UnsupportedAppUsage
     public int numberPlan;
 
     /**
@@ -90,7 +95,7 @@
      * are stored in the parent class address and origBytes fields,
      * respectively.
      */
-
+    @UnsupportedAppUsage
     public CdmaSmsAddress(){
     }
 
@@ -194,6 +199,7 @@
      * common punctuation.  For alpha addresses, the string is cleaned
      * up by removing whitespace.
      */
+    @UnsupportedAppUsage
     public static CdmaSmsAddress parse(String address) {
         CdmaSmsAddress addr = new CdmaSmsAddress();
         addr.address = address;
diff --git a/telephony/java/com/android/internal/telephony/cdma/sms/SmsEnvelope.java b/telephony/java/com/android/internal/telephony/cdma/sms/SmsEnvelope.java
index 49b5f7f..be1eab1 100644
--- a/telephony/java/com/android/internal/telephony/cdma/sms/SmsEnvelope.java
+++ b/telephony/java/com/android/internal/telephony/cdma/sms/SmsEnvelope.java
@@ -19,7 +19,7 @@
 
 import android.telephony.cdma.CdmaSmsCbProgramData;
 
-import com.android.internal.telephony.cdma.sms.CdmaSmsSubaddress;
+import dalvik.annotation.compat.UnsupportedAppUsage;
 
 public final class SmsEnvelope {
     /**
@@ -80,6 +80,7 @@
      * or receiving the message.
      * (See 3GPP2 C.S0015-B, v2, 3.4.3.1)
      */
+    @UnsupportedAppUsage
     public int teleService = TELESERVICE_NOT_SET;
 
     /**
@@ -87,6 +88,7 @@
      * by the SMS message.
      * (See 3GPP2 C.S0015-B, v2, 3.4.3.2)
      */
+    @UnsupportedAppUsage
     public int serviceCategory;
 
     /**
@@ -137,8 +139,10 @@
      * encoded bearer data
      * (See 3GPP2 C.S0015-B, v2, 3.4.3.7)
      */
+    @UnsupportedAppUsage
     public byte[] bearerData;
 
+    @UnsupportedAppUsage
     public SmsEnvelope() {
         // nothing to see here
     }
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmSmsAddress.java b/telephony/java/com/android/internal/telephony/gsm/GsmSmsAddress.java
index bd8c83e..19e0b2d 100644
--- a/telephony/java/com/android/internal/telephony/gsm/GsmSmsAddress.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GsmSmsAddress.java
@@ -18,10 +18,13 @@
 
 import android.telephony.PhoneNumberUtils;
 
-import java.text.ParseException;
 import com.android.internal.telephony.GsmAlphabet;
 import com.android.internal.telephony.SmsAddress;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
+import java.text.ParseException;
+
 public class GsmSmsAddress extends SmsAddress {
 
     static final int OFFSET_ADDRESS_LENGTH = 0;
@@ -39,6 +42,7 @@
      * @throws ParseException
      */
 
+    @UnsupportedAppUsage
     public GsmSmsAddress(byte[] data, int offset, int length) throws ParseException {
         origBytes = new byte[length];
         System.arraycopy(data, offset, origBytes, 0, length);
@@ -136,6 +140,7 @@
      * address indicating a "set" of "indicator 1" of type "voice message
      * waiting"
      */
+    @UnsupportedAppUsage
     public boolean isCphsVoiceMessageSet() {
         // 0x11 means "set" "voice message waiting" "indicator 1"
         return isCphsVoiceMessageIndicatorAddress()
@@ -148,6 +153,7 @@
      * address indicating a "clear" of "indicator 1" of type "voice message
      * waiting"
      */
+    @UnsupportedAppUsage
     public boolean isCphsVoiceMessageClear() {
         // 0x10 means "clear" "voice message waiting" "indicator 1"
         return isCphsVoiceMessageIndicatorAddress()
diff --git a/telephony/java/com/android/internal/telephony/gsm/GsmSmsCbMessage.java b/telephony/java/com/android/internal/telephony/gsm/GsmSmsCbMessage.java
index c3d490a..5766287 100644
--- a/telephony/java/com/android/internal/telephony/gsm/GsmSmsCbMessage.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GsmSmsCbMessage.java
@@ -25,17 +25,17 @@
 import android.annotation.NonNull;
 import android.content.Context;
 import android.content.res.Resources;
+import android.telephony.CbGeoUtils;
+import android.telephony.CbGeoUtils.Circle;
+import android.telephony.CbGeoUtils.Geometry;
+import android.telephony.CbGeoUtils.LatLng;
+import android.telephony.CbGeoUtils.Polygon;
 import android.telephony.SmsCbLocation;
 import android.telephony.SmsCbMessage;
 import android.util.Pair;
 import android.util.Slog;
 
 import com.android.internal.R;
-import com.android.internal.telephony.CbGeoUtils;
-import com.android.internal.telephony.CbGeoUtils.Circle;
-import com.android.internal.telephony.CbGeoUtils.Geometry;
-import com.android.internal.telephony.CbGeoUtils.LatLng;
-import com.android.internal.telephony.CbGeoUtils.Polygon;
 import com.android.internal.telephony.GsmAlphabet;
 import com.android.internal.telephony.SmsConstants;
 import com.android.internal.telephony.gsm.GsmSmsCbMessage.GeoFencingTriggerMessage.CellBroadcastIdentity;
diff --git a/telephony/java/com/android/internal/telephony/gsm/SmsCbHeader.java b/telephony/java/com/android/internal/telephony/gsm/SmsCbHeader.java
index 465840f..11bc5de 100644
--- a/telephony/java/com/android/internal/telephony/gsm/SmsCbHeader.java
+++ b/telephony/java/com/android/internal/telephony/gsm/SmsCbHeader.java
@@ -21,6 +21,8 @@
 
 import com.android.internal.telephony.SmsConstants;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 import java.util.Arrays;
 import java.util.Locale;
 
@@ -31,7 +33,7 @@
  * All relevant header information is now sent as a Parcelable
  * {@link android.telephony.SmsCbMessage} object in the "message" extra of the
  * {@link android.provider.Telephony.Sms.Intents#SMS_CB_RECEIVED_ACTION} or
- * {@link android.provider.Telephony.Sms.Intents#SMS_EMERGENCY_CB_RECEIVED_ACTION} intent.
+ * {@link android.provider.Telephony.Sms.Intents#ACTION_SMS_EMERGENCY_CB_RECEIVED} intent.
  * The raw PDU is no longer sent to SMS CB applications.
  */
 public class SmsCbHeader {
@@ -110,6 +112,7 @@
     private final int mSerialNumber;
 
     /** The Message Identifier in 3GPP is the same as the Service Category in CDMA. */
+    @UnsupportedAppUsage
     private final int mMessageIdentifier;
 
     private final int mDataCodingScheme;
@@ -128,6 +131,7 @@
     /** CMAS warning notification info. */
     private final SmsCbCmasInfo mCmasInfo;
 
+    @UnsupportedAppUsage
     public SmsCbHeader(byte[] pdu) throws IllegalArgumentException {
         if (pdu == null || pdu.length < PDU_HEADER_LENGTH) {
             throw new IllegalArgumentException("Illegal PDU");
@@ -225,14 +229,17 @@
         }
     }
 
+    @UnsupportedAppUsage
     int getGeographicalScope() {
         return mGeographicalScope;
     }
 
+    @UnsupportedAppUsage
     int getSerialNumber() {
         return mSerialNumber;
     }
 
+    @UnsupportedAppUsage
     int getServiceCategory() {
         return mMessageIdentifier;
     }
@@ -245,10 +252,12 @@
         return mDataCodingSchemeStructedData;
     }
 
+    @UnsupportedAppUsage
     int getPageIndex() {
         return mPageIndex;
     }
 
+    @UnsupportedAppUsage
     int getNumberOfPages() {
         return mNrOfPages;
     }
diff --git a/telephony/java/com/android/internal/telephony/gsm/SmsMessage.java b/telephony/java/com/android/internal/telephony/gsm/SmsMessage.java
index 17e3bac..e7b385c 100644
--- a/telephony/java/com/android/internal/telephony/gsm/SmsMessage.java
+++ b/telephony/java/com/android/internal/telephony/gsm/SmsMessage.java
@@ -16,18 +16,29 @@
 
 package com.android.internal.telephony.gsm;
 
+import static com.android.internal.telephony.SmsConstants.ENCODING_16BIT;
+import static com.android.internal.telephony.SmsConstants.ENCODING_7BIT;
+import static com.android.internal.telephony.SmsConstants.ENCODING_8BIT;
+import static com.android.internal.telephony.SmsConstants.ENCODING_KSC5601;
+import static com.android.internal.telephony.SmsConstants.ENCODING_UNKNOWN;
+import static com.android.internal.telephony.SmsConstants.MAX_USER_DATA_BYTES;
+import static com.android.internal.telephony.SmsConstants.MAX_USER_DATA_SEPTETS;
+import static com.android.internal.telephony.SmsConstants.MessageClass;
+
+import android.content.res.Resources;
 import android.telephony.PhoneNumberUtils;
 import android.telephony.Rlog;
-import android.content.res.Resources;
 import android.text.TextUtils;
 
 import com.android.internal.telephony.EncodeException;
 import com.android.internal.telephony.GsmAlphabet;
 import com.android.internal.telephony.GsmAlphabet.TextEncodingDetails;
-import com.android.internal.telephony.uicc.IccUtils;
+import com.android.internal.telephony.Sms7BitEncodingTranslator;
 import com.android.internal.telephony.SmsHeader;
 import com.android.internal.telephony.SmsMessageBase;
-import com.android.internal.telephony.Sms7BitEncodingTranslator;
+import com.android.internal.telephony.uicc.IccUtils;
+
+import dalvik.annotation.compat.UnsupportedAppUsage;
 
 import java.io.ByteArrayOutputStream;
 import java.io.UnsupportedEncodingException;
@@ -35,16 +46,6 @@
 import java.time.LocalDateTime;
 import java.time.ZoneOffset;
 
-import static com.android.internal.telephony.SmsConstants.MessageClass;
-import static com.android.internal.telephony.SmsConstants.ENCODING_UNKNOWN;
-import static com.android.internal.telephony.SmsConstants.ENCODING_7BIT;
-import static com.android.internal.telephony.SmsConstants.ENCODING_8BIT;
-import static com.android.internal.telephony.SmsConstants.ENCODING_16BIT;
-import static com.android.internal.telephony.SmsConstants.ENCODING_KSC5601;
-import static com.android.internal.telephony.SmsConstants.MAX_USER_DATA_SEPTETS;
-import static com.android.internal.telephony.SmsConstants.MAX_USER_DATA_BYTES;
-import static com.android.internal.telephony.SmsConstants.MAX_USER_DATA_BYTES_WITH_HEADER;
-
 /**
  * A Short Message Service message.
  *
@@ -99,12 +100,20 @@
 
     private static final int INVALID_VALIDITY_PERIOD = -1;
 
+    @UnsupportedAppUsage
+    public SmsMessage() {
+    }
+
     public static class SubmitPdu extends SubmitPduBase {
+        @UnsupportedAppUsage
+        public SubmitPdu() {
+        }
     }
 
     /**
      * Create an SmsMessage from a raw PDU.
      */
+    @UnsupportedAppUsage
     public static SmsMessage createFromPdu(byte[] pdu) {
         try {
             SmsMessage msg = new SmsMessage();
@@ -169,6 +178,7 @@
      *
      * @hide
      */
+    @UnsupportedAppUsage
     public static SmsMessage createFromEfRecord(int index, byte[] data) {
         try {
             SmsMessage msg = new SmsMessage();
@@ -259,6 +269,7 @@
      *         Returns null on encode error.
      * @hide
      */
+    @UnsupportedAppUsage
     public static SubmitPdu getSubmitPdu(String scAddress,
             String destinationAddress, String message,
             boolean statusReportRequested, byte[] header) {
@@ -281,6 +292,7 @@
      *         Returns null on encode error.
      * @hide
      */
+    @UnsupportedAppUsage
     public static SubmitPdu getSubmitPdu(String scAddress,
             String destinationAddress, String message,
             boolean statusReportRequested, byte[] header, int encoding,
@@ -304,6 +316,7 @@
      *         Returns null on encode error.
      * @hide
      */
+    @UnsupportedAppUsage
     public static SubmitPdu getSubmitPdu(String scAddress,
             String destinationAddress, String message,
             boolean statusReportRequested, byte[] header, int encoding,
@@ -444,6 +457,7 @@
      * @throws UnsupportedEncodingException
      * @throws EncodeException if String is too large to encode
      */
+    @UnsupportedAppUsage
     private static byte[] encodeUCS2(String message, byte[] header)
             throws UnsupportedEncodingException, EncodeException {
         byte[] userData, textPart;
@@ -478,6 +492,7 @@
      *         address, if applicable, and the encoded message.
      *         Returns null on encode error.
      */
+    @UnsupportedAppUsage
     public static SubmitPdu getSubmitPdu(String scAddress,
             String destinationAddress, String message,
             boolean statusReportRequested) {
@@ -496,6 +511,7 @@
      *         address, if applicable, and the encoded message.
      *         Returns null on encode error.
      */
+    @UnsupportedAppUsage
     public static SubmitPdu getSubmitPdu(String scAddress,
             String destinationAddress, String message,
             boolean statusReportRequested, int validityPeriod) {
@@ -576,6 +592,7 @@
      * @param ret <code>SubmitPdu</code> containing the encoded SC
      *        address, if applicable, and the encoded message. Returns null on encode error.
      */
+    @UnsupportedAppUsage
     private static ByteArrayOutputStream getSubmitPduHead(
             String scAddress, String destinationAddress, byte mtiByte,
             boolean statusReportRequested, SubmitPdu ret) {
@@ -622,12 +639,16 @@
     }
 
     private static class PduParser {
+        @UnsupportedAppUsage
         byte mPdu[];
+        @UnsupportedAppUsage
         int mCur;
         SmsHeader mUserDataHeader;
         byte[] mUserData;
+        @UnsupportedAppUsage
         int mUserDataSeptetPadding;
 
+        @UnsupportedAppUsage
         PduParser(byte[] pdu) {
             mPdu = pdu;
             mCur = 0;
@@ -667,6 +688,7 @@
         /**
          * returns non-sign-extended byte value
          */
+        @UnsupportedAppUsage
         int getByte() {
             return mPdu[mCur++] & 0xff;
         }
@@ -808,6 +830,7 @@
          *
          * @return the user data payload, not including the headers
          */
+        @UnsupportedAppUsage
         byte[] getUserData() {
             return mUserData;
         }
@@ -864,6 +887,7 @@
          * @param byteCount the number of bytes in the user data payload
          * @return a String with the decoded characters
          */
+        @UnsupportedAppUsage
         String getUserDataUCS2(int byteCount) {
             String ret;
 
@@ -912,6 +936,7 @@
      * @param use7bitOnly ignore (but still count) illegal characters if true
      * @return TextEncodingDetails
      */
+    @UnsupportedAppUsage
     public static TextEncodingDetails calculateLength(CharSequence msgBody,
             boolean use7bitOnly) {
         CharSequence newMsgBody = null;
@@ -959,6 +984,7 @@
     }
 
     /** {@inheritDoc} */
+    @UnsupportedAppUsage
     @Override
     public boolean isMWIClearMessage() {
         if (mIsMwi && !mMwiSense) {
@@ -970,6 +996,7 @@
     }
 
     /** {@inheritDoc} */
+    @UnsupportedAppUsage
     @Override
     public boolean isMWISetMessage() {
         if (mIsMwi && mMwiSense) {
@@ -981,6 +1008,7 @@
     }
 
     /** {@inheritDoc} */
+    @UnsupportedAppUsage
     @Override
     public boolean isMwiDontStore() {
         if (mIsMwi && mMwiDontStore) {
@@ -1000,12 +1028,14 @@
     }
 
     /** {@inheritDoc} */
+    @UnsupportedAppUsage
     @Override
     public int getStatus() {
         return mStatus;
     }
 
     /** {@inheritDoc} */
+    @UnsupportedAppUsage
     @Override
     public boolean isStatusReportMessage() {
         return mIsStatusReportMessage;
diff --git a/telephony/java/com/android/internal/telephony/uicc/IccUtils.java b/telephony/java/com/android/internal/telephony/uicc/IccUtils.java
index 96e215c..f2d4624 100644
--- a/telephony/java/com/android/internal/telephony/uicc/IccUtils.java
+++ b/telephony/java/com/android/internal/telephony/uicc/IccUtils.java
@@ -25,6 +25,8 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.telephony.GsmAlphabet;
 
+import dalvik.annotation.compat.UnsupportedAppUsage;
+
 import java.io.UnsupportedEncodingException;
 import java.util.List;
 
@@ -53,6 +55,7 @@
      *
      * Stops on invalid BCD value, returning string so far
      */
+    @UnsupportedAppUsage
     public static String
     bcdToString(byte[] data, int offset, int length) {
         StringBuilder ret = new StringBuilder(length*2);
@@ -180,6 +183,7 @@
     /**
      * Decode cdma byte into String.
      */
+    @UnsupportedAppUsage
     public static String
     cdmaBcdToString(byte[] data, int offset, int length) {
         StringBuilder ret = new StringBuilder(length);
@@ -215,6 +219,7 @@
      * assume the digit is set to 0 but shall store the entire field
      * exactly as received"
      */
+    @UnsupportedAppUsage
     public static int
     gsmBcdByteToInt(byte b) {
         int ret = 0;
@@ -237,6 +242,7 @@
      * is in the least significant nibble and the most significant
      * is in the most significant nibble.
      */
+    @UnsupportedAppUsage
     public static int
     cdmaBcdByteToInt(byte b) {
         int ret = 0;
@@ -288,6 +294,7 @@
      *          contain a 16 bit number which defines the complete 16 bit
      *          base pointer to a "half page" in the UCS2 code space...
      */
+    @UnsupportedAppUsage
     public static String
     adnStringFieldToString(byte[] data, int offset, int length) {
         if (length == 0) {
@@ -379,6 +386,7 @@
         return GsmAlphabet.gsm8BitUnpackedToString(data, offset, length, defaultCharset.trim());
     }
 
+    @UnsupportedAppUsage
     public static int
     hexCharToInt(char c) {
         if (c >= '0' && c <= '9') return (c - '0');
@@ -398,6 +406,7 @@
      *
      * @throws RuntimeException on invalid format
      */
+    @UnsupportedAppUsage
     public static byte[]
     hexStringToBytes(String s) {
         byte[] ret;
@@ -424,6 +433,7 @@
      *
      * @return hex string representation of bytes array
      */
+    @UnsupportedAppUsage
     public static String
     bytesToHexString(byte[] bytes) {
         if (bytes == null) return null;
@@ -451,6 +461,7 @@
      * "offset" points to "octet 3", the coding scheme byte
      * empty string returned on decode error
      */
+    @UnsupportedAppUsage
     public static String
     networkNameToString(byte[] data, int offset, int length) {
         String ret;
@@ -501,6 +512,7 @@
      * @param length The length of image body
      * @return The bitmap
      */
+    @UnsupportedAppUsage
     public static Bitmap parseToBnW(byte[] data, int length){
         int valueIndex = 0;
         int width = data[valueIndex++] & 0xFF;
@@ -543,6 +555,7 @@
      * @param transparency with or without transparency
      * @return The color bitmap
      */
+    @UnsupportedAppUsage
     public static Bitmap parseToRGB(byte[] data, int length,
             boolean transparency) {
         int valueIndex = 0;
diff --git a/test-mock/Android.bp b/test-mock/Android.bp
index 0b5d446..aa4174a 100644
--- a/test-mock/Android.bp
+++ b/test-mock/Android.bp
@@ -27,7 +27,10 @@
         ":framework-core-sources-for-test-mock",
         ":framework_native_aidl",
     ],
-    libs: ["framework-all"],
+    libs: [
+        "framework-all",
+        "app-compat-annotations",
+    ],
 
     api_packages: [
         "android.test.mock",
diff --git a/test-mock/src/android/test/mock/MockContext.java b/test-mock/src/android/test/mock/MockContext.java
index 727684e..0208c3a 100644
--- a/test-mock/src/android/test/mock/MockContext.java
+++ b/test-mock/src/android/test/mock/MockContext.java
@@ -470,6 +470,13 @@
     }
 
     @Override
+    public void sendOrderedBroadcast(Intent intent, String receiverPermission, String receiverAppOp,
+            Bundle options, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode,
+            String initialData, Bundle initialExtras) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
     public void sendStickyBroadcast(Intent intent) {
         throw new UnsupportedOperationException();
     }
@@ -535,6 +542,14 @@
 
     /** @hide */
     @Override
+    @SystemApi
+    public Intent registerReceiverForAllUsers(BroadcastReceiver receiver,
+            IntentFilter filter, String broadcastPermission, Handler scheduler) {
+        throw new UnsupportedOperationException();
+    }
+
+    /** @hide */
+    @Override
     public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user,
             IntentFilter filter, String broadcastPermission, Handler scheduler) {
         throw new UnsupportedOperationException();
@@ -765,6 +780,12 @@
 
     /** {@hide} */
     @Override
+    public Context createContextAsUser(UserHandle user, @CreatePackageOptions int flags) {
+        throw new UnsupportedOperationException();
+    }
+
+    /** {@hide} */
+    @Override
     public int getUserId() {
         throw new UnsupportedOperationException();
     }
diff --git a/tests/BootImageProfileTest/src/com/android/bootimageprofile/BootImageProfileTest.java b/tests/BootImageProfileTest/src/com/android/bootimageprofile/BootImageProfileTest.java
index 81937e6..59f0162 100644
--- a/tests/BootImageProfileTest/src/com/android/bootimageprofile/BootImageProfileTest.java
+++ b/tests/BootImageProfileTest/src/com/android/bootimageprofile/BootImageProfileTest.java
@@ -73,46 +73,65 @@
         res = mTestDevice.executeShellCommand("truncate -s 0 " + SYSTEM_SERVER_PROFILE).trim();
         assertTrue(res, res.length() == 0);
         // Wait up to 20 seconds for the profile to be saved.
-        for (int i = 0; i < 20; ++i) {
+        final int numIterations = 20;
+        for (int i = 1; i <= numIterations; ++i) {
             // Force save the profile since we truncated it.
             if (forceSaveProfile("system_server")) {
                 // Might fail if system server is not yet running.
                 String s = mTestDevice.executeShellCommand(
                         "wc -c <" + SYSTEM_SERVER_PROFILE).trim();
-                if (!"0".equals(s)) {
-                    break;
+                if ("0".equals(s)) {
+                    Thread.sleep(1000);
+                    continue;
                 }
             }
+
+            // In case the profile is partially saved, wait an extra second.
             Thread.sleep(1000);
-        }
-        // In case the profile is partially saved, wait an extra second.
-        Thread.sleep(1000);
-        // Validate that the profile is non empty.
-        res = mTestDevice.executeShellCommand("profman --dump-only --profile-file="
-                + SYSTEM_SERVER_PROFILE);
-        boolean sawFramework = false;
-        boolean sawServices = false;
-        for (String line : res.split("\n")) {
-            if (line.contains("framework.jar")) {
-                sawFramework = true;
-            } else if (line.contains("services.jar")) {
-                sawServices = true;
+
+            // Validate that the profile is non empty.
+            res = mTestDevice.executeShellCommand("profman --dump-only --profile-file="
+                    + SYSTEM_SERVER_PROFILE);
+            boolean sawFramework = false;
+            boolean sawServices = false;
+            for (String line : res.split("\n")) {
+                if (line.contains("framework.jar")) {
+                    sawFramework = true;
+                } else if (line.contains("services.jar")) {
+                    sawServices = true;
+                }
+            }
+            if (i == numIterations) {
+                // Only assert for last iteration since there are race conditions where the package
+                // manager might not be started whewn the profile saves.
+                assertTrue("Did not see framework.jar in " + res, sawFramework);
+                assertTrue("Did not see services.jar in " + res, sawServices);
+            }
+
+            // Test the profile contents contain common methods for core-oj that would normally be
+            // AOT compiled. Also test that services.jar has PackageManagerService.<init> since the
+            // package manager service should always be created during boot.
+            res = mTestDevice.executeShellCommand(
+                    "profman --dump-classes-and-methods --profile-file="
+                    + SYSTEM_SERVER_PROFILE + " --apk=/apex/com.android.art/javalib/core-oj.jar"
+                    + " --apk=/system/framework/services.jar");
+            boolean sawObjectInit = false;
+            boolean sawPmInit = false;
+            for (String line : res.split("\n")) {
+                if (line.contains("Ljava/lang/Object;-><init>()V")) {
+                    sawObjectInit = true;
+                } else if (line.contains("Lcom/android/server/pm/PackageManagerService;-><init>")) {
+                    sawPmInit = true;
+                }
+            }
+            if (i == numIterations) {
+                assertTrue("Did not see Object.<init> in " + res, sawObjectInit);
+                assertTrue("Did not see PackageManagerService.<init> in " + res, sawPmInit);
+            }
+
+            if (sawFramework && sawServices && sawObjectInit && sawPmInit) {
+                break;  // Asserts passed, exit.
             }
         }
-        assertTrue("Did not see framework.jar in " + res, sawFramework);
-        assertTrue("Did not see services.jar in " + res, sawServices);
-
-
-        // Test the profile contents contain common methods for core-oj that would normally be AOT
-        // compiled.
-        res = mTestDevice.executeShellCommand("profman --dump-classes-and-methods --profile-file="
-                + SYSTEM_SERVER_PROFILE + " --apk=/apex/com.android.art/javalib/core-oj.jar");
-        boolean sawObjectInit = false;
-        for (String line : res.split("\n")) {
-            if (line.contains("Ljava/lang/Object;-><init>()V")) {
-                sawObjectInit = true;
-            }
-        }
-        assertTrue("Did not see Object.<init> in " + res, sawObjectInit);
     }
 }
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/ChangeAppRotationTest.java b/tests/FlickerTests/src/com/android/server/wm/flicker/ChangeAppRotationTest.java
index aa591d9..42cafd4 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/ChangeAppRotationTest.java
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/ChangeAppRotationTest.java
@@ -82,7 +82,8 @@
     @Before
     public void runTransition() {
         super.runTransition(
-                changeAppRotation(mTestApp, mUiDevice, mBeginRotation, mEndRotation).build());
+                changeAppRotation(mTestApp, mUiDevice, mBeginRotation, mEndRotation)
+                        .includeJankyRuns().build());
     }
 
     @FlakyTest(bugId = 140855415)
diff --git a/tests/FlickerTests/src/com/android/server/wm/flicker/CommonTransitions.java b/tests/FlickerTests/src/com/android/server/wm/flicker/CommonTransitions.java
index fd31aa5..e033d0a 100644
--- a/tests/FlickerTests/src/com/android/server/wm/flicker/CommonTransitions.java
+++ b/tests/FlickerTests/src/com/android/server/wm/flicker/CommonTransitions.java
@@ -78,6 +78,7 @@
         return TransitionRunner.newBuilder()
                 .withTag("OpenAppWarm_" + testApp.getLauncherName()
                         + rotationToString(beginRotation))
+                .recordAllRuns()
                 .runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
                 .runBeforeAll(() -> setRotation(device, beginRotation))
                 .runBeforeAll(testApp::open)
@@ -94,6 +95,7 @@
             device) {
         return TransitionRunner.newBuilder()
                 .withTag("closeAppWithBackKey_" + testApp.getLauncherName())
+                .recordAllRuns()
                 .runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
                 .runBefore(testApp::open)
                 .runBefore(device::waitForIdle)
@@ -108,6 +110,7 @@
             device) {
         return TransitionRunner.newBuilder()
                 .withTag("closeAppWithHomeKey_" + testApp.getLauncherName())
+                .recordAllRuns()
                 .runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
                 .runBefore(testApp::open)
                 .runBefore(device::waitForIdle)
@@ -123,6 +126,7 @@
         return TransitionRunner.newBuilder()
                 .withTag("OpenAppCold_" + testApp.getLauncherName()
                         + rotationToString(beginRotation))
+                .recordAllRuns()
                 .runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
                 .runBefore(device::pressHome)
                 .runBeforeAll(() -> setRotation(device, beginRotation))
@@ -140,6 +144,7 @@
                 .withTag("changeAppRotation_" + testApp.getLauncherName()
                         + rotationToString(beginRotation) + "_" +
                         rotationToString(endRotation))
+                .recordAllRuns()
                 .runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
                 .runBeforeAll(testApp::open)
                 .runBefore(() -> setRotation(device, beginRotation))
@@ -156,6 +161,7 @@
                 rotationToString(beginRotation) + "_" + rotationToString(endRotation);
         return TransitionRunner.newBuilder()
                 .withTag(testTag)
+                .recordAllRuns()
                 .runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
                 .runBeforeAll(() -> {
                             context.startActivity(intent);
@@ -173,6 +179,7 @@
     static TransitionBuilder appToSplitScreen(IAppHelper testApp, UiDevice device) {
         return TransitionRunner.newBuilder()
                 .withTag("appToSplitScreen_" + testApp.getLauncherName())
+                .recordAllRuns()
                 .runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
                 .runBefore(testApp::open)
                 .runBefore(device::waitForIdle)
@@ -186,6 +193,7 @@
     static TransitionBuilder splitScreenToLauncher(IAppHelper testApp, UiDevice device) {
         return TransitionRunner.newBuilder()
                 .withTag("splitScreenToLauncher_" + testApp.getLauncherName())
+                .recordAllRuns()
                 .runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
                 .runBefore(testApp::open)
                 .runBefore(device::waitForIdle)
@@ -200,6 +208,7 @@
         return TransitionRunner.newBuilder()
                 .withTag("editTextSetFocus_" + testApp.getLauncherName()
                         + rotationToString(beginRotation))
+                .recordAllRuns()
                 .runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
                 .runBefore(device::pressHome)
                 .runBefore(() -> setRotation(device, beginRotation))
@@ -218,6 +227,7 @@
                 + rotationToString(beginRotation);
         return TransitionRunner.newBuilder()
                 .withTag(testTag)
+                .recordAllRuns()
                 .runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
                 .runBeforeAll(() -> setRotation(device, beginRotation))
                 .runBeforeAll(() -> clearRecents(device))
@@ -246,6 +256,7 @@
         return TransitionRunner.newBuilder()
                 .withTag("editTextLoseFocusToHome_" + testApp.getLauncherName()
                         + rotationToString(beginRotation))
+                .recordAllRuns()
                 .runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
                 .runBefore(device::pressHome)
                 .runBefore(() -> setRotation(device, beginRotation))
@@ -262,6 +273,7 @@
         return TransitionRunner.newBuilder()
                 .withTag("editTextLoseFocusToApp_" + testApp.getLauncherName()
                         + rotationToString(beginRotation))
+                .recordAllRuns()
                 .runBeforeAll(AutomationUtils::wakeUpAndGoToHomeScreen)
                 .runBefore(device::pressHome)
                 .runBefore(() -> setRotation(device, beginRotation))
diff --git a/tests/PlatformCompatGating/Android.bp b/tests/PlatformCompatGating/Android.bp
new file mode 100644
index 0000000..5e9ef8e
--- /dev/null
+++ b/tests/PlatformCompatGating/Android.bp
@@ -0,0 +1,33 @@
+//
+// Copyright (C) 2019 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.
+//
+
+android_test {
+    name: "PlatformCompatGating",
+    // Only compile source java files in this apk.
+    srcs: ["src/**/*.java"],
+    certificate: "platform",
+    libs: [
+        "android.test.runner",
+        "android.test.base",
+    ],
+    static_libs: [
+        "junit",
+        "android-support-test",
+        "mockito-target-minus-junit4",
+        "truth-prebuilt",
+        "platform-compat-test-rules"
+    ],
+}
diff --git a/tests/PlatformCompatGating/AndroidManifest.xml b/tests/PlatformCompatGating/AndroidManifest.xml
new file mode 100644
index 0000000..7f14b83
--- /dev/null
+++ b/tests/PlatformCompatGating/AndroidManifest.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.tests.gating">
+    <application android:label="GatingTest">
+        <uses-library android:name="android.test.runner" />
+    </application>
+
+    <instrumentation android:name="android.support.test.runner.AndroidJUnitRunner"
+                     android:targetPackage="com.android.tests.gating"/>
+</manifest>
diff --git a/tests/PlatformCompatGating/AndroidTest.xml b/tests/PlatformCompatGating/AndroidTest.xml
new file mode 100644
index 0000000..c626848
--- /dev/null
+++ b/tests/PlatformCompatGating/AndroidTest.xml
@@ -0,0 +1,30 @@
+<!-- Copyright (C) 2018 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.
+-->
+<configuration description="Test compatibility change gating.">
+    <target_preparer class="com.android.tradefed.targetprep.TestFilePushSetup"/>
+    <target_preparer class="com.android.tradefed.targetprep.TestAppInstallSetup">
+        <option name="test-file-name" value="PlatformCompatGating.apk"/>
+    </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer"/>
+    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer"/>
+    <option name="test-suite-tag" value="apct"/>
+    <option name="test-tag" value="Gating"/>
+
+    <test class="com.android.tradefed.testtype.AndroidJUnitTest">
+        <option name="package" value="com.android.tests.gating"/>
+        <option name="runner" value="android.support.test.runner.AndroidJUnitRunner"/>
+        <option name="hidden-api-checks" value="false"/>
+    </test>
+</configuration>
diff --git a/tests/PlatformCompatGating/src/com/android/compat/testing/DummyApi.java b/tests/PlatformCompatGating/src/com/android/compat/testing/DummyApi.java
new file mode 100644
index 0000000..731be8e
--- /dev/null
+++ b/tests/PlatformCompatGating/src/com/android/compat/testing/DummyApi.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package com.android.compat.testing;
+
+import android.compat.Compatibility;
+import android.content.Context;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+
+import com.android.internal.compat.IPlatformCompat;
+
+/**
+ * This is a dummy API to test gating
+ *
+ * @hide
+ */
+public class DummyApi {
+
+    public static final long CHANGE_ID = 666013;
+    public static final long CHANGE_ID_1 = 666014;
+    public static final long CHANGE_ID_2 = 666015;
+    public static final long CHANGE_SYSTEM_SERVER = 666016;
+
+    /**
+     * Dummy method
+     * @return "A" if change is enabled, "B" otherwise.
+     */
+    public static String dummyFunc() {
+        if (Compatibility.isChangeEnabled(CHANGE_ID)) {
+            return "A";
+        }
+        return "B";
+    }
+
+    /**
+     * Dummy combined method
+     * @return "0" if {@link CHANGE_ID_1} is disabled and {@link CHANGE_ID_2} is disabled,
+               "1" if {@link CHANGE_ID_1} is disabled and {@link CHANGE_ID_2} is enabled,
+               "2" if {@link CHANGE_ID_1} is enabled and {@link CHANGE_ID_2} is disabled,
+               "3" if {@link CHANGE_ID_1} is enabled and {@link CHANGE_ID_2} is enabled.
+     */
+    public static String dummyCombinedFunc() {
+        if (!Compatibility.isChangeEnabled(CHANGE_ID_1)
+                && !Compatibility.isChangeEnabled(CHANGE_ID_2)) {
+            return "0";
+        } else if (!Compatibility.isChangeEnabled(CHANGE_ID_1)
+                && Compatibility.isChangeEnabled(CHANGE_ID_2)) {
+            return "1";
+        } else if (Compatibility.isChangeEnabled(CHANGE_ID_1)
+                && !Compatibility.isChangeEnabled(CHANGE_ID_2)) {
+            return "2";
+        }
+        return "3";
+    }
+
+    /**
+     * Dummy api using system server API.
+     */
+    public static boolean dummySystemServer(Context context) {
+        IPlatformCompat platformCompat = IPlatformCompat.Stub
+                .asInterface(ServiceManager.getService(Context.PLATFORM_COMPAT_SERVICE));
+        if (platformCompat == null) {
+            throw new RuntimeException("Could not obtain IPlatformCompat instance!");
+        }
+        String packageName = context.getPackageName();
+        try {
+            return platformCompat.isChangeEnabledByPackageName(CHANGE_SYSTEM_SERVER, packageName,
+                                                            context.getUserId());
+        } catch (RemoteException e) {
+            throw new RuntimeException("Could not get change value!", e);
+        }
+    }
+}
diff --git a/tests/PlatformCompatGating/src/com/android/tests/gating/PlatformCompatGatingTest.java b/tests/PlatformCompatGating/src/com/android/tests/gating/PlatformCompatGatingTest.java
new file mode 100644
index 0000000..dc317f19
--- /dev/null
+++ b/tests/PlatformCompatGating/src/com/android/tests/gating/PlatformCompatGatingTest.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2018 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.
+ */
+package com.android.tests.gating;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.compat.testing.PlatformCompatChangeRule;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.runner.AndroidJUnit4;
+
+import com.android.compat.testing.DummyApi;
+
+import libcore.junit.util.compat.CoreCompatChangeRule.DisableCompatChanges;
+import libcore.junit.util.compat.CoreCompatChangeRule.EnableCompatChanges;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TestRule;
+import org.junit.runner.RunWith;
+
+/**
+ * Tests for platform compatibility change gating.
+ */
+@RunWith(AndroidJUnit4.class)
+public class PlatformCompatGatingTest {
+
+    @Rule
+    public TestRule compatChangeRule = new PlatformCompatChangeRule();
+
+    @Test
+    @EnableCompatChanges({DummyApi.CHANGE_ID})
+    public void testDummyGatingPositive() {
+        assertThat(DummyApi.dummyFunc()).isEqualTo("A");
+    }
+
+    @Test
+    @DisableCompatChanges({DummyApi.CHANGE_ID})
+    public void testDummyGatingNegative() {
+        assertThat(DummyApi.dummyFunc()).isEqualTo("B");
+    }
+
+    @Test
+    @DisableCompatChanges({DummyApi.CHANGE_ID_1, DummyApi.CHANGE_ID_2})
+    public void testDummyGatingCombined0() {
+        assertThat(DummyApi.dummyCombinedFunc()).isEqualTo("0");
+    }
+
+    @Test
+    @DisableCompatChanges({DummyApi.CHANGE_ID_1})
+    @EnableCompatChanges({DummyApi.CHANGE_ID_2})
+    public void testDummyGatingCombined1() {
+        assertThat(DummyApi.dummyCombinedFunc()).isEqualTo("1");
+    }
+
+    @Test
+    @EnableCompatChanges({DummyApi.CHANGE_ID_1})
+    @DisableCompatChanges({DummyApi.CHANGE_ID_2})
+    public void testDummyGatingCombined2() {
+        assertThat(DummyApi.dummyCombinedFunc()).isEqualTo("2");
+    }
+
+    @Test
+    @EnableCompatChanges({DummyApi.CHANGE_ID_1, DummyApi.CHANGE_ID_2})
+    public void testDummyGatingCombined3() {
+        assertThat(DummyApi.dummyCombinedFunc()).isEqualTo("3");
+    }
+
+    @Test
+    @EnableCompatChanges({DummyApi.CHANGE_SYSTEM_SERVER})
+    public void testDummyGatingPositiveSystemServer() {
+        assertThat(
+                DummyApi.dummySystemServer(InstrumentationRegistry.getTargetContext())).isTrue();
+    }
+
+    @Test
+    @DisableCompatChanges({DummyApi.CHANGE_SYSTEM_SERVER})
+    public void testDummyGatingNegativeSystemServer() {
+        assertThat(
+                DummyApi.dummySystemServer(InstrumentationRegistry.getTargetContext())).isFalse();
+    }
+}
diff --git a/tests/PlatformCompatGating/test-rules/Android.bp b/tests/PlatformCompatGating/test-rules/Android.bp
new file mode 100644
index 0000000..8211ef5
--- /dev/null
+++ b/tests/PlatformCompatGating/test-rules/Android.bp
@@ -0,0 +1,26 @@
+//
+// Copyright (C) 2019 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.
+//
+
+java_library {
+    name: "platform-compat-test-rules",
+    srcs: ["src/**/*.java"],
+    static_libs: [
+        "junit",
+        "android-support-test",
+        "truth-prebuilt",
+        "core-compat-test-rules"
+    ],
+}
\ No newline at end of file
diff --git a/tests/PlatformCompatGating/test-rules/src/android/compat/testing/PlatformCompatChangeRule.java b/tests/PlatformCompatGating/test-rules/src/android/compat/testing/PlatformCompatChangeRule.java
new file mode 100644
index 0000000..932ec64
--- /dev/null
+++ b/tests/PlatformCompatGating/test-rules/src/android/compat/testing/PlatformCompatChangeRule.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package android.compat.testing;
+
+import android.app.Instrumentation;
+import android.compat.Compatibility;
+import android.compat.Compatibility.ChangeConfig;
+import android.content.Context;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.support.test.InstrumentationRegistry;
+
+import com.android.internal.compat.CompatibilityChangeConfig;
+import com.android.internal.compat.IPlatformCompat;
+
+import libcore.junit.util.compat.CoreCompatChangeRule;
+
+import org.junit.runners.model.Statement;
+
+/**
+ * Allows tests to specify the which change to disable.
+ *
+ * <p>To use add the following to the test class. It will only change the behavior of a test method
+ * if it is annotated with
+ * {@link libcore.junit.util.compat.CoreCompatChangeRule.EnableCompatChanges} and/or
+ * {@link libcore.junit.util.compat.CoreCompatChangeRule.DisableCompatChanges}.
+ * </p>
+ * <pre>
+ * @Rule
+ * public TestRule compatChangeRule = new PlatformCompatChangeRule();
+ * </pre>
+ *
+ * <p>Each test method that needs to disable a specific change needs to be annotated
+ * with {@link libcore.junit.util.compat.CoreCompatChangeRule.EnableCompatChanges} and/or
+ * {@link libcore.junit.util.compat.CoreCompatChangeRule.DisableCompatChanges} specifying the change
+ * id. e.g.:
+ * </p>
+ * <pre>
+ *   @Test
+ *   @DisableCompatChanges({42})
+ *   public void testAsIfChange42Disabled() {
+ *     // check behavior
+ *   }
+ *
+ *   @Test
+ *   @EnableCompatChanges({42})
+ *   public void testAsIfChange42Enabled() {
+ *     // check behavior
+ *
+ * </pre>
+ */
+public class PlatformCompatChangeRule extends CoreCompatChangeRule {
+
+    @Override
+    protected Statement createStatementForConfig(final Statement statement, ChangeConfig config) {
+        return new CompatChangeStatement(statement, config);
+    }
+
+
+    private static class CompatChangeStatement extends Statement {
+        private final Statement mTestStatement;
+        private final ChangeConfig mConfig;
+
+        private CompatChangeStatement(Statement testStatement, ChangeConfig config) {
+            this.mTestStatement = testStatement;
+            this.mConfig = config;
+        }
+
+        @Override
+        public void evaluate() throws Throwable {
+            Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
+            String packageName = instrumentation.getTargetContext().getPackageName();
+            IPlatformCompat platformCompat = IPlatformCompat.Stub
+                    .asInterface(ServiceManager.getService(Context.PLATFORM_COMPAT_SERVICE));
+            if (platformCompat == null) {
+                throw new IllegalStateException("Could not get IPlatformCompat service!");
+            }
+            Compatibility.setOverrides(mConfig);
+            try {
+                platformCompat.setOverridesForTest(new CompatibilityChangeConfig(mConfig),
+                        packageName);
+                try {
+                    mTestStatement.evaluate();
+                } finally {
+                    platformCompat.clearOverridesForTest(packageName);
+                }
+            } catch (RemoteException e) {
+                throw new RuntimeException("Could not call IPlatformCompat binder method!", e);
+            } finally {
+                Compatibility.clearOverrides();
+            }
+        }
+    }
+}
diff --git a/tests/RollbackTest/Android.bp b/tests/RollbackTest/Android.bp
index aec4055..231d045b 100644
--- a/tests/RollbackTest/Android.bp
+++ b/tests/RollbackTest/Android.bp
@@ -12,88 +12,12 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-android_test_helper_app {
-    name: "RollbackTestAppAv1",
-    manifest: "TestApp/Av1.xml",
-    sdk_version: "current",
-    srcs: ["TestApp/src/**/*.java"],
-    resource_dirs: ["TestApp/res_v1"],
-}
-
-android_test_helper_app {
-    name: "RollbackTestAppAv2",
-    manifest: "TestApp/Av2.xml",
-    sdk_version: "current",
-    srcs: ["TestApp/src/**/*.java"],
-    resource_dirs: ["TestApp/res_v2"],
-}
-
-android_test_helper_app {
-    name: "RollbackTestAppAv3",
-    manifest: "TestApp/Av3.xml",
-    sdk_version: "current",
-    srcs: ["TestApp/src/**/*.java"],
-    resource_dirs: ["TestApp/res_v3"],
-}
-
-android_test_helper_app {
-    name: "RollbackTestAppACrashingV2",
-    manifest: "TestApp/ACrashingV2.xml",
-    sdk_version: "current",
-    srcs: ["TestApp/src/**/*.java"],
-    resource_dirs: ["TestApp/res_v2"],
-}
-
-android_test_helper_app {
-    name: "RollbackTestAppBv1",
-    manifest: "TestApp/Bv1.xml",
-    sdk_version: "current",
-    srcs: ["TestApp/src/**/*.java"],
-    resource_dirs: ["TestApp/res_v1"],
-}
-
-android_test_helper_app {
-    name: "RollbackTestAppBv2",
-    manifest: "TestApp/Bv2.xml",
-    sdk_version: "current",
-    srcs: ["TestApp/src/**/*.java"],
-    resource_dirs: ["TestApp/res_v2"],
-}
-
-android_test_helper_app {
-    name: "RollbackTestAppASplitV1",
-    manifest: "TestApp/Av1.xml",
-    sdk_version: "current",
-    srcs: ["TestApp/src/**/*.java"],
-    resource_dirs: ["TestApp/res_v1"],
-    package_splits: ["anydpi"],
-}
-
-android_test_helper_app {
-    name: "RollbackTestAppASplitV2",
-    manifest: "TestApp/Av2.xml",
-    sdk_version: "current",
-    srcs: ["TestApp/src/**/*.java"],
-    resource_dirs: ["TestApp/res_v2"],
-    package_splits: ["anydpi"],
-}
-
 android_test {
     name: "RollbackTest",
     manifest: "RollbackTest/AndroidManifest.xml",
     srcs: ["RollbackTest/src/**/*.java"],
-    static_libs: ["androidx.test.rules"],
+    static_libs: ["androidx.test.rules", "cts-rollback-lib", "cts-install-lib"],
     test_suites: ["general-tests"],
-    java_resources: [
-        ":RollbackTestAppAv1",
-        ":RollbackTestAppAv2",
-        ":RollbackTestAppAv3",
-        ":RollbackTestAppACrashingV2",
-        ":RollbackTestAppBv1",
-        ":RollbackTestAppBv2",
-        ":RollbackTestAppASplitV1",
-        ":RollbackTestAppASplitV2",
-    ],
     test_config: "RollbackTest.xml",
     // TODO: sdk_version: "test_current" when Intent#resolveSystemservice is TestApi
 }
@@ -105,3 +29,11 @@
     test_suites: ["general-tests"],
     test_config: "StagedRollbackTest.xml",
 }
+
+java_test_host {
+    name: "MultiUserRollbackTest",
+    srcs: ["MultiUserRollbackTest/src/**/*.java"],
+    libs: ["tradefed"],
+    test_suites: ["general-tests"],
+    test_config: "MultiUserRollbackTest.xml",
+}
diff --git a/tests/RollbackTest/MultiUserRollbackTest.xml b/tests/RollbackTest/MultiUserRollbackTest.xml
new file mode 100644
index 0000000..41cec46
--- /dev/null
+++ b/tests/RollbackTest/MultiUserRollbackTest.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 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.
+-->
+<configuration description="Runs rollback tests for multiple users">
+    <option name="test-suite-tag" value="MultiUserRollbackTest" />
+    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
+        <option name="run-command" value="pm uninstall com.android.cts.install.lib.testapp.A" />
+    </target_preparer>
+    <test class="com.android.tradefed.testtype.HostTest" >
+        <option name="class" value="com.android.tests.rollback.host.MultiUserRollbackTest" />
+    </test>
+</configuration>
diff --git a/tests/RollbackTest/MultiUserRollbackTest/src/com/android/tests/rollback/host/MultiUserRollbackTest.java b/tests/RollbackTest/MultiUserRollbackTest/src/com/android/tests/rollback/host/MultiUserRollbackTest.java
new file mode 100644
index 0000000..52f6eba
--- /dev/null
+++ b/tests/RollbackTest/MultiUserRollbackTest/src/com/android/tests/rollback/host/MultiUserRollbackTest.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package com.android.tests.rollback.host;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
+import com.android.tradefed.testtype.junit4.BaseHostJUnit4Test;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * Runs rollback tests for multiple users.
+ */
+@RunWith(DeviceJUnit4ClassRunner.class)
+public class MultiUserRollbackTest extends BaseHostJUnit4Test {
+    // The user that was running originally when the test starts.
+    private int mOriginalUserId;
+    private int mSecondaryUserId = -1;
+    private static final long SWITCH_USER_COMPLETED_NUMBER_OF_POLLS = 60;
+    private static final long SWITCH_USER_COMPLETED_POLL_INTERVAL_IN_MILLIS = 1000;
+
+
+    @After
+    public void tearDown() throws Exception {
+        getDevice().switchUser(mOriginalUserId);
+        getDevice().executeShellCommand("pm uninstall com.android.cts.install.lib.testapp.A");
+        removeSecondaryUserIfNecessary();
+    }
+
+    @Before
+    public void setup() throws Exception {
+        mOriginalUserId = getDevice().getCurrentUser();
+        installPackageAsUser("RollbackTest.apk", true, mOriginalUserId);
+        createAndSwitchToSecondaryUserIfNecessary();
+        installPackageAsUser("RollbackTest.apk", true, mSecondaryUserId);
+    }
+
+    @Test
+    public void testBasicForSecondaryUser() throws Exception {
+        runPhaseForUsers("testBasic", mSecondaryUserId);
+    }
+
+    @Test
+    public void testMultipleUsers() throws Exception {
+        runPhaseForUsers("testMultipleUsersInstallV1", mOriginalUserId, mSecondaryUserId);
+        runPhaseForUsers("testMultipleUsersUpgradeToV2", mOriginalUserId);
+        runPhaseForUsers("testMultipleUsersUpdateUserData", mOriginalUserId, mSecondaryUserId);
+        switchToUser(mOriginalUserId);
+        getDevice().executeShellCommand("pm rollback-app com.android.cts.install.lib.testapp.A");
+        runPhaseForUsers("testMultipleUsersVerifyUserdataRollback", mOriginalUserId,
+                mSecondaryUserId);
+    }
+
+    /**
+     * Run the phase for the given user ids, in the order they are given.
+     */
+    private void runPhaseForUsers(String phase, int... userIds) throws Exception {
+        for (int userId: userIds) {
+            switchToUser(userId);
+            assertTrue(runDeviceTests("com.android.tests.rollback",
+                    "com.android.tests.rollback.MultiUserRollbackTest",
+                    phase));
+        }
+    }
+
+    private void removeSecondaryUserIfNecessary() throws Exception {
+        if (mSecondaryUserId != -1) {
+            getDevice().removeUser(mSecondaryUserId);
+            mSecondaryUserId = -1;
+        }
+    }
+
+    private void createAndSwitchToSecondaryUserIfNecessary() throws Exception {
+        if (mSecondaryUserId == -1) {
+            mOriginalUserId = getDevice().getCurrentUser();
+            mSecondaryUserId = getDevice().createUser("MultiUserRollbackTest_User"
+                    + System.currentTimeMillis());
+            switchToUser(mSecondaryUserId);
+        }
+    }
+
+    private void switchToUser(int userId) throws Exception {
+        if (getDevice().getCurrentUser() == userId) {
+            return;
+        }
+
+        assertTrue(getDevice().switchUser(userId));
+        for (int i = 0; i < SWITCH_USER_COMPLETED_NUMBER_OF_POLLS; ++i) {
+            String userState = getDevice().executeShellCommand("am get-started-user-state "
+                    + userId);
+            if (userState.contains("RUNNING_UNLOCKED")) {
+                return;
+            }
+            Thread.sleep(SWITCH_USER_COMPLETED_POLL_INTERVAL_IN_MILLIS);
+        }
+        fail("User switch to user " + userId + " timed out");
+    }
+}
diff --git a/tests/RollbackTest/RollbackTest.xml b/tests/RollbackTest/RollbackTest.xml
index 70cd867..a14b01c 100644
--- a/tests/RollbackTest/RollbackTest.xml
+++ b/tests/RollbackTest/RollbackTest.xml
@@ -22,8 +22,9 @@
         <option name="package" value="com.android.tests.rollback" />
         <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
 
-        <!-- Exclude the StagedRollbackTest tests, which needs to be specially
-             driven from the StagedRollbackTest host test -->
+        <!-- Exclude the StagedRollbackTest and MultiUserRollbackTest tests, which need to be
+             specially driven from the StagedRollbackTest and MultiUserRollbackTest host test -->
         <option name="exclude-filter" value="com.android.tests.rollback.StagedRollbackTest" />
+        <option name="exclude-filter" value="com.android.tests.rollback.MultiUserRollbackTest" />
     </test>
 </configuration>
diff --git a/tests/RollbackTest/RollbackTest/AndroidManifest.xml b/tests/RollbackTest/RollbackTest/AndroidManifest.xml
index 5380dc9..2b8c964 100644
--- a/tests/RollbackTest/RollbackTest/AndroidManifest.xml
+++ b/tests/RollbackTest/RollbackTest/AndroidManifest.xml
@@ -18,7 +18,7 @@
     package="com.android.tests.rollback" >
 
     <application>
-        <receiver android:name="com.android.tests.rollback.LocalIntentSender"
+        <receiver android:name="com.android.cts.install.lib.LocalIntentSender"
                   android:exported="true" />
         <uses-library android:name="android.test.runner" />
     </application>
diff --git a/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/LocalIntentSender.java b/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/LocalIntentSender.java
deleted file mode 100644
index 267ef73..0000000
--- a/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/LocalIntentSender.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2018 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.
- */
-
-package com.android.tests.rollback;
-
-import android.app.PendingIntent;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentSender;
-
-import androidx.test.InstrumentationRegistry;
-
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.LinkedBlockingQueue;
-
-/**
- * Make IntentSender that sends intent locally.
- */
-public class LocalIntentSender extends BroadcastReceiver {
-
-    private static final String TAG = "RollbackTest";
-
-    private static final BlockingQueue<Intent> sIntentSenderResults = new LinkedBlockingQueue<>();
-
-    @Override
-    public void onReceive(Context context, Intent intent) {
-        sIntentSenderResults.add(intent);
-    }
-
-    /**
-     * Get a LocalIntentSender.
-     */
-    static IntentSender getIntentSender() {
-        Context context = InstrumentationRegistry.getContext();
-        Intent intent = new Intent(context, LocalIntentSender.class);
-        PendingIntent pending = PendingIntent.getBroadcast(context, 0, intent, 0);
-        return pending.getIntentSender();
-    }
-
-    /**
-     * Returns the most recent Intent sent by a LocalIntentSender.
-     */
-    static Intent getIntentSenderResult() throws InterruptedException {
-        return sIntentSenderResults.take();
-    }
-}
diff --git a/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/MultiUserRollbackTest.java b/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/MultiUserRollbackTest.java
new file mode 100644
index 0000000..0ffe041
--- /dev/null
+++ b/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/MultiUserRollbackTest.java
@@ -0,0 +1,111 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package com.android.tests.rollback;
+
+import static com.android.cts.rollback.lib.RollbackInfoSubject.assertThat;
+import static com.android.cts.rollback.lib.RollbackUtils.getUniqueRollbackInfoForPackage;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.Manifest;
+import android.content.rollback.RollbackInfo;
+import android.content.rollback.RollbackManager;
+
+import com.android.cts.install.lib.Install;
+import com.android.cts.install.lib.InstallUtils;
+import com.android.cts.install.lib.TestApp;
+import com.android.cts.rollback.lib.Rollback;
+import com.android.cts.rollback.lib.RollbackUtils;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+
+@RunWith(JUnit4.class)
+public class MultiUserRollbackTest {
+
+    @Before
+    public void adoptShellPermissions() {
+        InstallUtils.adoptShellPermissionIdentity(
+                Manifest.permission.INSTALL_PACKAGES,
+                Manifest.permission.DELETE_PACKAGES,
+                Manifest.permission.TEST_MANAGE_ROLLBACKS,
+                Manifest.permission.MANAGE_ROLLBACKS);
+    }
+
+    @After
+    public void dropShellPermissions() {
+        InstallUtils.dropShellPermissionIdentity();
+    }
+
+    @Test
+    public void testBasic() throws Exception {
+        new RollbackTest().testBasic();
+    }
+
+    /**
+     * Install version 1 of the test app. This method is run for both users.
+     */
+    @Test
+    public void testMultipleUsersInstallV1() throws Exception {
+        assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(-1);
+        Install.single(TestApp.A1).commit();
+        assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1);
+        InstallUtils.processUserData(TestApp.A);
+    }
+
+    /**
+     * Upgrade the test app to version 2. This method should only run once as the system user,
+     * and will update the app for both users.
+     */
+    @Test
+    public void testMultipleUsersUpgradeToV2() throws Exception {
+        RollbackManager rm = RollbackUtils.getRollbackManager();
+        assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1);
+        Install.single(TestApp.A2).setEnableRollback().commit();
+        assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
+        RollbackInfo rollback = getUniqueRollbackInfoForPackage(
+                rm.getAvailableRollbacks(), TestApp.A);
+        assertThat(rollback).isNotNull();
+        assertThat(rollback).packagesContainsExactly(
+                Rollback.from(TestApp.A2).to(TestApp.A1));
+    }
+
+    /**
+     * This method is run for both users. Assert that the test app has upgraded for both users, and
+     * update their userdata to reflect this new version.
+     */
+    @Test
+    public void testMultipleUsersUpdateUserData() {
+        assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
+        InstallUtils.processUserData(TestApp.A);
+    }
+
+    /**
+     * The system will have rolled back the test app at this stage. Verify that the rollback has
+     * taken place, and that the userdata has been correctly rolled back. This method is run for
+     * both users.
+     */
+    @Test
+    public void testMultipleUsersVerifyUserdataRollback() {
+        assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1);
+        InstallUtils.processUserData(TestApp.A);
+    }
+}
diff --git a/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackBroadcastReceiver.java b/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackBroadcastReceiver.java
deleted file mode 100644
index ebe5418..0000000
--- a/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackBroadcastReceiver.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 2018 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.
- */
-
-package com.android.tests.rollback;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.util.Log;
-
-import androidx.test.InstrumentationRegistry;
-
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.TimeUnit;
-
-/**
- * A broadcast receiver that can be used to get
- * ACTION_ROLLBACK_COMMITTED broadcasts.
- */
-class RollbackBroadcastReceiver extends BroadcastReceiver {
-
-    private static final String TAG = "RollbackTest";
-
-    private final BlockingQueue<Intent> mRollbackBroadcasts = new LinkedBlockingQueue<>();
-
-    /**
-     * Creates a RollbackBroadcastReceiver and registers it with the given
-     * context.
-     */
-    RollbackBroadcastReceiver() {
-        IntentFilter filter = new IntentFilter();
-        filter.addAction(Intent.ACTION_ROLLBACK_COMMITTED);
-        InstrumentationRegistry.getContext().registerReceiver(this, filter);
-    }
-
-    @Override
-    public void onReceive(Context context, Intent intent) {
-        Log.i(TAG, "Received rollback broadcast intent");
-        mRollbackBroadcasts.add(intent);
-    }
-
-    /**
-     * Polls for at most the given amount of time for the next rollback
-     * broadcast.
-     */
-    Intent poll(long timeout, TimeUnit unit) throws InterruptedException {
-        return mRollbackBroadcasts.poll(timeout, unit);
-    }
-
-    /**
-     * Waits forever for the next rollback broadcast.
-     */
-    Intent take() throws InterruptedException {
-        return mRollbackBroadcasts.take();
-    }
-
-    /**
-     * Unregisters this broadcast receiver.
-     */
-    void unregister() {
-        InstrumentationRegistry.getContext().unregisterReceiver(this);
-    }
-}
diff --git a/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTest.java b/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTest.java
index 1b002ca..277c04f 100644
--- a/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTest.java
+++ b/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTest.java
@@ -16,14 +16,14 @@
 
 package com.android.tests.rollback;
 
-import static com.android.tests.rollback.RollbackTestUtils.assertPackageRollbackInfoEquals;
-import static com.android.tests.rollback.RollbackTestUtils.assertRollbackInfoEquals;
-import static com.android.tests.rollback.RollbackTestUtils.getUniqueRollbackInfoForPackage;
-import static com.android.tests.rollback.RollbackTestUtils.processUserData;
+import static com.android.cts.install.lib.InstallUtils.processUserData;
+import static com.android.cts.rollback.lib.RollbackInfoSubject.assertThat;
+import static com.android.cts.rollback.lib.RollbackUtils.getUniqueRollbackInfoForPackage;
+import static com.android.cts.rollback.lib.RollbackUtils.waitForAvailableRollback;
+import static com.android.cts.rollback.lib.RollbackUtils.waitForUnavailableRollback;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
+import static com.google.common.truth.Truth.assertThat;
+
 import static org.junit.Assert.fail;
 
 import android.Manifest;
@@ -31,15 +31,21 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.pm.VersionedPackage;
 import android.content.rollback.RollbackInfo;
 import android.content.rollback.RollbackManager;
 import android.provider.DeviceConfig;
-import android.provider.Settings;
 import android.util.Log;
 
 import androidx.test.InstrumentationRegistry;
 
+import com.android.cts.install.lib.Install;
+import com.android.cts.install.lib.InstallUtils;
+import com.android.cts.install.lib.TestApp;
+import com.android.cts.install.lib.Uninstall;
+import com.android.cts.rollback.lib.Rollback;
+import com.android.cts.rollback.lib.RollbackBroadcastReceiver;
+import com.android.cts.rollback.lib.RollbackUtils;
+
 import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -57,8 +63,6 @@
 
     private static final String TAG = "RollbackTest";
 
-    private static final String TEST_APP_A = "com.android.tests.rollback.testapp.A";
-    private static final String TEST_APP_B = "com.android.tests.rollback.testapp.B";
     private static final String INSTRUMENTED_APP = "com.android.tests.rollback";
 
     // copied from PackageManagerService#PROPERTY_ENABLE_ROLLBACK_TIMEOUT_MILLIS
@@ -88,7 +92,7 @@
         context.registerReceiver(enableRollbackReceiver, enableRollbackFilter);
 
         try {
-            RollbackTestUtils.adoptShellPermissionIdentity(
+            InstallUtils.adoptShellPermissionIdentity(
                     Manifest.permission.INSTALL_PACKAGES,
                     Manifest.permission.DELETE_PACKAGES,
                     Manifest.permission.TEST_MANAGE_ROLLBACKS,
@@ -97,18 +101,18 @@
             // Register a broadcast receiver for notification when the
             // rollback has been committed.
             RollbackBroadcastReceiver broadcastReceiver = new RollbackBroadcastReceiver();
-            RollbackManager rm = RollbackTestUtils.getRollbackManager();
+            RollbackManager rm = RollbackUtils.getRollbackManager();
 
-            // Uninstall TEST_APP_A
-            RollbackTestUtils.uninstall(TEST_APP_A);
-            assertEquals(-1, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            // Uninstall TestApp.A
+            Uninstall.packages(TestApp.A);
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(-1);
 
             // TODO: There is currently a race condition between when the app is
             // uninstalled and when rollback manager deletes the rollback. Fix it
             // so that's not the case!
             for (int i = 0; i < 5; ++i) {
                 RollbackInfo rollback = getUniqueRollbackInfoForPackage(
-                        rm.getRecentlyCommittedRollbacks(), TEST_APP_A);
+                        rm.getRecentlyCommittedRollbacks(), TestApp.A);
                 if (rollback != null) {
                     Log.i(TAG, "Sleeping 1 second to wait for uninstall to take effect.");
                     Thread.sleep(1000);
@@ -116,50 +120,55 @@
             }
 
             // The app should not be available for rollback.
-            assertNull(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TEST_APP_A));
+            waitForUnavailableRollback(TestApp.A);
 
             // There should be no recently committed rollbacks for this package.
-            assertNull(getUniqueRollbackInfoForPackage(
-                        rm.getRecentlyCommittedRollbacks(), TEST_APP_A));
+            assertThat(getUniqueRollbackInfoForPackage(
+                        rm.getRecentlyCommittedRollbacks(), TestApp.A)).isNull();
 
             // Install v1 of the app (without rollbacks enabled).
-            RollbackTestUtils.install("RollbackTestAppAv1.apk", false);
-            assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            Install.single(TestApp.A1).commit();
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1);
 
             // Upgrade from v1 to v2, with rollbacks enabled.
-            RollbackTestUtils.install("RollbackTestAppAv2.apk", true);
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            Install.single(TestApp.A2).setEnableRollback().commit();
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
 
             // The app should now be available for rollback.
-            RollbackInfo rollback = getUniqueRollbackInfoForPackage(
-                    rm.getAvailableRollbacks(), TEST_APP_A);
-            assertRollbackInfoEquals(TEST_APP_A, 2, 1, rollback);
+            RollbackInfo available = waitForAvailableRollback(TestApp.A);
+            assertThat(available).isNotStaged();
+            assertThat(available).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A1));
 
             // We should not have received any rollback requests yet.
             // TODO: Possibly flaky if, by chance, some other app on device
             // happens to be rolled back at the same time?
-            assertNull(broadcastReceiver.poll(0, TimeUnit.SECONDS));
+            assertThat(broadcastReceiver.poll(0, TimeUnit.SECONDS)).isNull();
 
             // Roll back the app.
-            RollbackTestUtils.rollback(rollback.getRollbackId());
-            assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            RollbackUtils.rollback(available.getRollbackId());
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1);
 
             // Verify we received a broadcast for the rollback.
             // TODO: Race condition between the timeout and when the broadcast is
             // received could lead to test flakiness.
             Intent broadcast = broadcastReceiver.poll(5, TimeUnit.SECONDS);
-            assertNotNull(broadcast);
-            assertNull(broadcastReceiver.poll(0, TimeUnit.SECONDS));
+            assertThat(broadcast).isNotNull();
+            assertThat(broadcastReceiver.poll(0, TimeUnit.SECONDS)).isNull();
 
             // Verify the recent rollback has been recorded.
-            rollback = getUniqueRollbackInfoForPackage(
-                    rm.getRecentlyCommittedRollbacks(), TEST_APP_A);
-            assertRollbackInfoEquals(TEST_APP_A, 2, 1, rollback);
+            RollbackInfo committed = getUniqueRollbackInfoForPackage(
+                    rm.getRecentlyCommittedRollbacks(), TestApp.A);
+            assertThat(committed).isNotNull();
+            assertThat(committed).isNotStaged();
+            assertThat(committed).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A1));
+            assertThat(committed).hasRollbackId(available.getRollbackId());
 
             broadcastReceiver.unregister();
             context.unregisterReceiver(enableRollbackReceiver);
         } finally {
-            RollbackTestUtils.dropShellPermissionIdentity();
+            InstallUtils.dropShellPermissionIdentity();
         }
     }
 
@@ -169,50 +178,54 @@
     @Test
     public void testAvailableRollbackPersistence() throws Exception {
         try {
-            RollbackTestUtils.adoptShellPermissionIdentity(
+            InstallUtils.adoptShellPermissionIdentity(
                     Manifest.permission.INSTALL_PACKAGES,
                     Manifest.permission.DELETE_PACKAGES,
                     Manifest.permission.TEST_MANAGE_ROLLBACKS);
 
-            RollbackManager rm = RollbackTestUtils.getRollbackManager();
+            RollbackManager rm = RollbackUtils.getRollbackManager();
 
-            RollbackTestUtils.uninstall(TEST_APP_A);
-            RollbackTestUtils.install("RollbackTestAppAv1.apk", false);
-            RollbackTestUtils.install("RollbackTestAppAv2.apk", true);
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            Uninstall.packages(TestApp.A);
+            Install.single(TestApp.A1).commit();
+            Install.single(TestApp.A2).setEnableRollback().commit();
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
 
-            RollbackTestUtils.uninstall(TEST_APP_B);
-            RollbackTestUtils.install("RollbackTestAppBv1.apk", false);
-            RollbackTestUtils.install("RollbackTestAppBv2.apk", true);
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_B));
+            Uninstall.packages(TestApp.B);
+            Install.single(TestApp.B1).commit();
+            Install.single(TestApp.B2).setEnableRollback().commit();
+            assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(2);
 
             // Both test apps should now be available for rollback.
-            RollbackInfo rollbackA = getUniqueRollbackInfoForPackage(
-                    rm.getAvailableRollbacks(), TEST_APP_A);
-            assertRollbackInfoEquals(TEST_APP_A, 2, 1, rollbackA);
+            RollbackInfo rollbackA = waitForAvailableRollback(TestApp.A);
+            assertThat(rollbackA).isNotNull();
+            assertThat(rollbackA).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A1));
 
-            RollbackInfo rollbackB = getUniqueRollbackInfoForPackage(
-                    rm.getAvailableRollbacks(), TEST_APP_B);
-            assertRollbackInfoEquals(TEST_APP_B, 2, 1, rollbackB);
+            RollbackInfo rollbackB = waitForAvailableRollback(TestApp.B);
+            assertThat(rollbackB).isNotNull();
+            assertThat(rollbackB).packagesContainsExactly(
+                    Rollback.from(TestApp.B2).to(TestApp.B1));
 
             // Reload the persisted data.
             rm.reloadPersistedData();
 
             // The apps should still be available for rollback.
-            rollbackA = getUniqueRollbackInfoForPackage(
-                    rm.getAvailableRollbacks(), TEST_APP_A);
-            assertRollbackInfoEquals(TEST_APP_A, 2, 1, rollbackA);
+            rollbackA = waitForAvailableRollback(TestApp.A);
+            assertThat(rollbackA).isNotNull();
+            assertThat(rollbackA).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A1));
 
-            rollbackB = getUniqueRollbackInfoForPackage(
-                    rm.getAvailableRollbacks(), TEST_APP_B);
-            assertRollbackInfoEquals(TEST_APP_B, 2, 1, rollbackB);
+            rollbackB = waitForAvailableRollback(TestApp.B);
+            assertThat(rollbackB).isNotNull();
+            assertThat(rollbackB).packagesContainsExactly(
+                    Rollback.from(TestApp.B2).to(TestApp.B1));
 
             // Rollback of B should not rollback A
-            RollbackTestUtils.rollback(rollbackB.getRollbackId());
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
-            assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_B));
+            RollbackUtils.rollback(rollbackB.getRollbackId());
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
+            assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(1);
         } finally {
-            RollbackTestUtils.dropShellPermissionIdentity();
+            InstallUtils.dropShellPermissionIdentity();
         }
     }
 
@@ -222,49 +235,76 @@
     @Test
     public void testAvailableMultiPackageRollbackPersistence() throws Exception {
         try {
-            RollbackTestUtils.adoptShellPermissionIdentity(
+            InstallUtils.adoptShellPermissionIdentity(
                     Manifest.permission.INSTALL_PACKAGES,
                     Manifest.permission.DELETE_PACKAGES,
                     Manifest.permission.TEST_MANAGE_ROLLBACKS);
 
-            RollbackManager rm = RollbackTestUtils.getRollbackManager();
+            RollbackManager rm = RollbackUtils.getRollbackManager();
 
-            RollbackTestUtils.uninstall(TEST_APP_A);
-            RollbackTestUtils.uninstall(TEST_APP_B);
-            RollbackTestUtils.installMultiPackage(false,
-                    "RollbackTestAppAv1.apk",
-                    "RollbackTestAppBv1.apk");
-            RollbackTestUtils.installMultiPackage(true,
-                    "RollbackTestAppAv2.apk",
-                    "RollbackTestAppBv2.apk");
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_B));
+            Uninstall.packages(TestApp.A, TestApp.B);
+            Install.multi(TestApp.A1, TestApp.B1).commit();
+            Install.multi(TestApp.A2, TestApp.B2).setEnableRollback().commit();
+
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
+            assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(2);
 
             // The app should now be available for rollback.
-            RollbackInfo rollbackA = getUniqueRollbackInfoForPackage(
-                    rm.getAvailableRollbacks(), TEST_APP_A);
-            assertRollbackInfoForAandB(rollbackA);
+            RollbackInfo availableA = waitForAvailableRollback(TestApp.A);
+            assertThat(availableA).isNotNull();
+            assertThat(availableA).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A1),
+                    Rollback.from(TestApp.B2).to(TestApp.B1));
 
-            RollbackInfo rollbackB = getUniqueRollbackInfoForPackage(
-                    rm.getAvailableRollbacks(), TEST_APP_B);
-            assertRollbackInfoForAandB(rollbackB);
+            RollbackInfo availableB = waitForAvailableRollback(TestApp.B);
+            assertThat(availableB).isNotNull();
+            assertThat(availableB).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A1),
+                    Rollback.from(TestApp.B2).to(TestApp.B1));
+
+            // Assert they're both the same rollback
+            assertThat(availableA).hasRollbackId(availableB.getRollbackId());
 
             // Reload the persisted data.
             rm.reloadPersistedData();
 
             // The apps should still be available for rollback.
-            rollbackA = getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TEST_APP_A);
-            assertRollbackInfoForAandB(rollbackA);
+            availableA = waitForAvailableRollback(TestApp.A);
+            assertThat(availableA).isNotNull();
+            assertThat(availableA).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A1),
+                    Rollback.from(TestApp.B2).to(TestApp.B1));
 
-            rollbackB = getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TEST_APP_B);
-            assertRollbackInfoForAandB(rollbackB);
+            availableB = waitForAvailableRollback(TestApp.B);
+            assertThat(availableB).isNotNull();
+            assertThat(availableB).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A1),
+                    Rollback.from(TestApp.B2).to(TestApp.B1));
 
             // Rollback of B should rollback A as well
-            RollbackTestUtils.rollback(rollbackB.getRollbackId());
-            assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
-            assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_B));
+            RollbackUtils.rollback(availableB.getRollbackId());
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1);
+            assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(1);
+
+            RollbackInfo committedA = getUniqueRollbackInfoForPackage(
+                    rm.getRecentlyCommittedRollbacks(), TestApp.A);
+            assertThat(committedA).isNotNull();
+            assertThat(committedA).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A1),
+                    Rollback.from(TestApp.B2).to(TestApp.B1));
+
+            RollbackInfo committedB = getUniqueRollbackInfoForPackage(
+                    rm.getRecentlyCommittedRollbacks(), TestApp.A);
+            assertThat(committedB).isNotNull();
+            assertThat(committedB).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A1),
+                    Rollback.from(TestApp.B2).to(TestApp.B1));
+
+            // Assert they're both the same rollback
+            assertThat(committedA).hasRollbackId(committedB.getRollbackId());
+            assertThat(committedA).hasRollbackId(availableA.getRollbackId());
         } finally {
-            RollbackTestUtils.dropShellPermissionIdentity();
+            InstallUtils.dropShellPermissionIdentity();
         }
     }
 
@@ -274,42 +314,49 @@
     @Test
     public void testRecentlyCommittedRollbackPersistence() throws Exception {
         try {
-            RollbackTestUtils.adoptShellPermissionIdentity(
+            InstallUtils.adoptShellPermissionIdentity(
                     Manifest.permission.INSTALL_PACKAGES,
                     Manifest.permission.DELETE_PACKAGES,
                     Manifest.permission.TEST_MANAGE_ROLLBACKS);
 
-            RollbackManager rm = RollbackTestUtils.getRollbackManager();
+            RollbackManager rm = RollbackUtils.getRollbackManager();
 
-            RollbackTestUtils.uninstall(TEST_APP_A);
-            RollbackTestUtils.install("RollbackTestAppAv1.apk", false);
-            RollbackTestUtils.install("RollbackTestAppAv2.apk", true);
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            Uninstall.packages(TestApp.A);
+            Install.single(TestApp.A1).commit();
+            Install.single(TestApp.A2).setEnableRollback().commit();
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
 
             // The app should now be available for rollback.
-            RollbackInfo rollback = getUniqueRollbackInfoForPackage(
-                    rm.getAvailableRollbacks(), TEST_APP_A);
+            RollbackInfo available = waitForAvailableRollback(TestApp.A);
+            assertThat(available).isNotNull();
 
             // Roll back the app.
-            VersionedPackage cause = new VersionedPackage(
-                    "com.android.tests.rollback.testapp.Foo", 42);
-            RollbackTestUtils.rollback(rollback.getRollbackId(), cause);
-            assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            TestApp cause = new TestApp("Foo", "com.android.tests.rollback.testapp.Foo",
+                    /*versionCode*/ 42, /*isApex*/ false);
+            RollbackUtils.rollback(available.getRollbackId(), cause);
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1);
 
             // Verify the recent rollback has been recorded.
-            rollback = getUniqueRollbackInfoForPackage(
-                    rm.getRecentlyCommittedRollbacks(), TEST_APP_A);
-            assertRollbackInfoEquals(TEST_APP_A, 2, 1, rollback, cause);
+            RollbackInfo committed = getUniqueRollbackInfoForPackage(
+                    rm.getRecentlyCommittedRollbacks(), TestApp.A);
+            assertThat(committed).isNotNull();
+            assertThat(committed).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A1));
+            assertThat(committed).causePackagesContainsExactly(cause);
 
             // Reload the persisted data.
             rm.reloadPersistedData();
 
             // Verify the recent rollback is still recorded.
-            rollback = getUniqueRollbackInfoForPackage(
-                    rm.getRecentlyCommittedRollbacks(), TEST_APP_A);
-            assertRollbackInfoEquals(TEST_APP_A, 2, 1, rollback, cause);
+            committed = getUniqueRollbackInfoForPackage(
+                    rm.getRecentlyCommittedRollbacks(), TestApp.A);
+            assertThat(committed).isNotNull();
+            assertThat(committed).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A1));
+            assertThat(committed).causePackagesContainsExactly(cause);
+            assertThat(committed).hasRollbackId(available.getRollbackId());
         } finally {
-            RollbackTestUtils.dropShellPermissionIdentity();
+            InstallUtils.dropShellPermissionIdentity();
         }
     }
 
@@ -320,10 +367,10 @@
     public void testRollbackExpiresAfterLifetime() throws Exception {
         long expirationTime = TimeUnit.SECONDS.toMillis(30);
         long defaultExpirationTime = TimeUnit.HOURS.toMillis(48);
-        RollbackManager rm = RollbackTestUtils.getRollbackManager();
+        RollbackManager rm = RollbackUtils.getRollbackManager();
 
         try {
-            RollbackTestUtils.adoptShellPermissionIdentity(
+            InstallUtils.adoptShellPermissionIdentity(
                     Manifest.permission.INSTALL_PACKAGES,
                     Manifest.permission.DELETE_PACKAGES,
                     Manifest.permission.TEST_MANAGE_ROLLBACKS,
@@ -336,39 +383,43 @@
             // Pull the new expiration time from DeviceConfig
             rm.reloadPersistedData();
 
-            // Uninstall TEST_APP_A
-            RollbackTestUtils.uninstall(TEST_APP_A);
-            assertEquals(-1, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            // Uninstall TestApp.A
+            Uninstall.packages(TestApp.A);
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(-1);
 
             // Install v1 of the app (without rollbacks enabled).
-            RollbackTestUtils.install("RollbackTestAppAv1.apk", false);
-            assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            Install.single(TestApp.A1).commit();
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1);
 
             // Upgrade from v1 to v2, with rollbacks enabled.
-            RollbackTestUtils.install("RollbackTestAppAv2.apk", true);
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            Install.single(TestApp.A2).setEnableRollback().commit();
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
 
             // Check that the rollback data has not expired
             Thread.sleep(1000);
-            RollbackInfo rollback = getUniqueRollbackInfoForPackage(
-                    rm.getAvailableRollbacks(), TEST_APP_A);
-            assertRollbackInfoEquals(TEST_APP_A, 2, 1, rollback);
+            RollbackInfo rollback = waitForAvailableRollback(TestApp.A);
+            assertThat(rollback).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A1));
 
-            // Give it a little more time, but still not the long enough to expire
+            // Give it a little more time, but still not long enough to expire
             Thread.sleep(expirationTime / 2);
             rollback = getUniqueRollbackInfoForPackage(
-                rm.getAvailableRollbacks(), TEST_APP_A);
-            assertRollbackInfoEquals(TEST_APP_A, 2, 1, rollback);
+                    rm.getAvailableRollbacks(), TestApp.A);
+            assertThat(rollback).isNotNull();
+            assertThat(rollback).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A1));
 
             // Check that the data has expired after the expiration time (with a buffer of 1 second)
             Thread.sleep(expirationTime / 2);
-            assertNull(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TEST_APP_A));
+            rollback = getUniqueRollbackInfoForPackage(
+                    rm.getAvailableRollbacks(), TestApp.A);
+            assertThat(rollback).isNull();
 
         } finally {
             DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ROLLBACK_BOOT,
                     RollbackManager.PROPERTY_ROLLBACK_LIFETIME_MILLIS,
                     Long.toString(defaultExpirationTime), false /* makeDefault*/);
-            RollbackTestUtils.dropShellPermissionIdentity();
+            InstallUtils.dropShellPermissionIdentity();
         }
     }
 
@@ -380,10 +431,10 @@
     public void testTimeChangeDoesNotAffectLifetime() throws Exception {
         long expirationTime = TimeUnit.SECONDS.toMillis(30);
         long defaultExpirationTime = TimeUnit.HOURS.toMillis(48);
-        RollbackManager rm = RollbackTestUtils.getRollbackManager();
+        RollbackManager rm = RollbackUtils.getRollbackManager();
 
         try {
-            RollbackTestUtils.adoptShellPermissionIdentity(
+            InstallUtils.adoptShellPermissionIdentity(
                     Manifest.permission.INSTALL_PACKAGES,
                     Manifest.permission.DELETE_PACKAGES,
                     Manifest.permission.TEST_MANAGE_ROLLBACKS,
@@ -398,24 +449,25 @@
             rm.reloadPersistedData();
 
             // Install app A with rollback enabled
-            RollbackTestUtils.uninstall(TEST_APP_A);
-            RollbackTestUtils.install("RollbackTestAppAv1.apk", false);
-            RollbackTestUtils.install("RollbackTestAppAv2.apk", true);
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            Uninstall.packages(TestApp.A);
+            Install.single(TestApp.A1).commit();
+            Install.single(TestApp.A2).setEnableRollback().commit();
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
 
             Thread.sleep(expirationTime / 2);
 
             // Install app B with rollback enabled
-            RollbackTestUtils.uninstall(TEST_APP_B);
-            RollbackTestUtils.install("RollbackTestAppBv1.apk", false);
-            RollbackTestUtils.install("RollbackTestAppBv2.apk", true);
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_B));
+            Uninstall.packages(TestApp.B);
+            Install.single(TestApp.B1).commit();
+            Install.single(TestApp.B2).setEnableRollback().commit();
+            assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(2);
+
             // 1 second buffer
             Thread.sleep(1000);
 
             try {
                 // Change the time
-                RollbackTestUtils.forwardTimeBy(expirationTime);
+                RollbackUtils.forwardTimeBy(expirationTime);
 
                 // 1 second buffer to allow Rollback Manager to handle time change before loading
                 // persisted data
@@ -427,24 +479,31 @@
                 // Wait until rollback for app A has expired
                 // This will trigger an expiration run that should expire app A but not B
                 Thread.sleep(expirationTime / 2);
-                assertNull(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TEST_APP_A));
+                RollbackInfo rollback =
+                        getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TestApp.A);
+                assertThat(rollback).isNull();
 
                 // Rollback for app B should not be expired
-                RollbackInfo rollback = getUniqueRollbackInfoForPackage(
-                        rm.getAvailableRollbacks(), TEST_APP_B);
-                assertRollbackInfoEquals(TEST_APP_B, 2, 1, rollback);
+                rollback = getUniqueRollbackInfoForPackage(
+                        rm.getAvailableRollbacks(), TestApp.B);
+                assertThat(rollback).isNotNull();
+                assertThat(rollback).packagesContainsExactly(
+                        Rollback.from(TestApp.B2).to(TestApp.B1));
 
                 // Wait until rollback for app B has expired
                 Thread.sleep(expirationTime / 2);
-                assertNull(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TEST_APP_B));
+                rollback = getUniqueRollbackInfoForPackage(
+                        rm.getAvailableRollbacks(), TestApp.B);
+                // Rollback should be expired by now
+                assertThat(rollback).isNull();
             } finally {
-                RollbackTestUtils.forwardTimeBy(-expirationTime);
+                RollbackUtils.forwardTimeBy(-expirationTime);
             }
         } finally {
             DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ROLLBACK_BOOT,
                     RollbackManager.PROPERTY_ROLLBACK_LIFETIME_MILLIS,
                     Long.toString(defaultExpirationTime), false /* makeDefault*/);
-            RollbackTestUtils.dropShellPermissionIdentity();
+            InstallUtils.dropShellPermissionIdentity();
         }
     }
 
@@ -455,30 +514,30 @@
     @Test
     public void testRollbackExpiration() throws Exception {
         try {
-            RollbackTestUtils.adoptShellPermissionIdentity(
+            InstallUtils.adoptShellPermissionIdentity(
                     Manifest.permission.INSTALL_PACKAGES,
                     Manifest.permission.DELETE_PACKAGES,
                     Manifest.permission.TEST_MANAGE_ROLLBACKS);
 
-            RollbackManager rm = RollbackTestUtils.getRollbackManager();
-            RollbackTestUtils.uninstall(TEST_APP_A);
-            RollbackTestUtils.install("RollbackTestAppAv1.apk", false);
-            RollbackTestUtils.install("RollbackTestAppAv2.apk", true);
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            RollbackManager rm = RollbackUtils.getRollbackManager();
+            Uninstall.packages(TestApp.A);
+            Install.single(TestApp.A1).commit();
+            Install.single(TestApp.A2).setEnableRollback().commit();
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
 
             // The app should now be available for rollback.
-            RollbackInfo rollback = getUniqueRollbackInfoForPackage(
-                    rm.getAvailableRollbacks(), TEST_APP_A);
-            assertRollbackInfoEquals(TEST_APP_A, 2, 1, rollback);
+            RollbackInfo rollback = waitForAvailableRollback(TestApp.A);
+            assertThat(rollback).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A1));
 
             // Expire the rollback.
-            rm.expireRollbackForPackage(TEST_APP_A);
+            rm.expireRollbackForPackage(TestApp.A);
 
             // The rollback should no longer be available.
-            assertNull(getUniqueRollbackInfoForPackage(
-                        rm.getAvailableRollbacks(), TEST_APP_A));
+            assertThat(getUniqueRollbackInfoForPackage(
+                        rm.getAvailableRollbacks(), TestApp.A)).isNull();
         } finally {
-            RollbackTestUtils.dropShellPermissionIdentity();
+            InstallUtils.dropShellPermissionIdentity();
         }
     }
 
@@ -488,24 +547,22 @@
     @Test
     public void testUserDataRollback() throws Exception {
         try {
-            RollbackTestUtils.adoptShellPermissionIdentity(
+            InstallUtils.adoptShellPermissionIdentity(
                     Manifest.permission.INSTALL_PACKAGES,
                     Manifest.permission.DELETE_PACKAGES,
                     Manifest.permission.TEST_MANAGE_ROLLBACKS);
 
-            RollbackTestUtils.uninstall(TEST_APP_A);
-            RollbackTestUtils.install("RollbackTestAppAv1.apk", false);
-            processUserData(TEST_APP_A);
-            RollbackTestUtils.install("RollbackTestAppAv2.apk", true);
-            processUserData(TEST_APP_A);
+            Uninstall.packages(TestApp.A);
+            Install.single(TestApp.A1).commit();
+            processUserData(TestApp.A);
+            Install.single(TestApp.A2).setEnableRollback().commit();
+            processUserData(TestApp.A);
 
-            RollbackManager rm = RollbackTestUtils.getRollbackManager();
-            RollbackInfo rollback = getUniqueRollbackInfoForPackage(
-                    rm.getAvailableRollbacks(), TEST_APP_A);
-            RollbackTestUtils.rollback(rollback.getRollbackId());
-            processUserData(TEST_APP_A);
+            RollbackInfo rollback = waitForAvailableRollback(TestApp.A);
+            RollbackUtils.rollback(rollback.getRollbackId());
+            processUserData(TestApp.A);
         } finally {
-            RollbackTestUtils.dropShellPermissionIdentity();
+            InstallUtils.dropShellPermissionIdentity();
         }
     }
 
@@ -515,30 +572,23 @@
     @Test
     public void testRollbackWithSplits() throws Exception {
         try {
-            RollbackTestUtils.adoptShellPermissionIdentity(
+            InstallUtils.adoptShellPermissionIdentity(
                     Manifest.permission.INSTALL_PACKAGES,
                     Manifest.permission.DELETE_PACKAGES,
                     Manifest.permission.TEST_MANAGE_ROLLBACKS);
 
-            RollbackTestUtils.uninstall(TEST_APP_A);
-            RollbackTestUtils.installSplit(false,
-                    "RollbackTestAppASplitV1.apk",
-                    "RollbackTestAppASplitV1_anydpi.apk");
-            processUserData(TEST_APP_A);
+            Uninstall.packages(TestApp.A);
+            Install.single(TestApp.ASplit1).commit();
+            processUserData(TestApp.A);
 
-            RollbackTestUtils.installSplit(true,
-                    "RollbackTestAppASplitV2.apk",
-                    "RollbackTestAppASplitV2_anydpi.apk");
-            processUserData(TEST_APP_A);
+            Install.single(TestApp.ASplit2).setEnableRollback().commit();
+            processUserData(TestApp.A);
 
-            RollbackManager rm = RollbackTestUtils.getRollbackManager();
-            RollbackInfo rollback = getUniqueRollbackInfoForPackage(
-                    rm.getAvailableRollbacks(), TEST_APP_A);
-            assertNotNull(rollback);
-            RollbackTestUtils.rollback(rollback.getRollbackId());
-            processUserData(TEST_APP_A);
+            RollbackInfo rollback = waitForAvailableRollback(TestApp.A);
+            RollbackUtils.rollback(rollback.getRollbackId());
+            processUserData(TestApp.A);
         } finally {
-            RollbackTestUtils.dropShellPermissionIdentity();
+            InstallUtils.dropShellPermissionIdentity();
         }
     }
 
@@ -559,7 +609,7 @@
 
         // Confirm that we really haven't received the broadcast.
         // TODO: How long to wait for the expected timeout?
-        assertNull(broadcastReceiver.poll(5, TimeUnit.SECONDS));
+        assertThat(broadcastReceiver.poll(5, TimeUnit.SECONDS)).isNull();
 
         // TODO: Do we need to do this? Do we need to ensure this is always
         // called, even when the test fails?
@@ -573,48 +623,47 @@
     @Test
     public void testMultipleRollbackAvailable() throws Exception {
         try {
-            RollbackTestUtils.adoptShellPermissionIdentity(
+            InstallUtils.adoptShellPermissionIdentity(
                     Manifest.permission.INSTALL_PACKAGES,
                     Manifest.permission.DELETE_PACKAGES,
                     Manifest.permission.TEST_MANAGE_ROLLBACKS);
-            RollbackManager rm = RollbackTestUtils.getRollbackManager();
 
             // Prep installation of the test apps.
-            RollbackTestUtils.uninstall(TEST_APP_A);
-            RollbackTestUtils.install("RollbackTestAppAv1.apk", false);
-            RollbackTestUtils.install("RollbackTestAppAv2.apk", true);
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            Uninstall.packages(TestApp.A);
+            Install.single(TestApp.A1).commit();
+            Install.single(TestApp.A2).setEnableRollback().commit();
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
 
-            RollbackTestUtils.uninstall(TEST_APP_B);
-            RollbackTestUtils.install("RollbackTestAppBv1.apk", false);
-            RollbackTestUtils.install("RollbackTestAppBv2.apk", true);
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_B));
+            Uninstall.packages(TestApp.B);
+            Install.single(TestApp.B1).commit();
+            Install.single(TestApp.B2).setEnableRollback().commit();
+            assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(2);
 
             // Both test apps should now be available for rollback, and the
             // RollbackInfo returned for the rollbacks should be correct.
-            RollbackInfo rollbackA = getUniqueRollbackInfoForPackage(
-                    rm.getAvailableRollbacks(), TEST_APP_A);
-            assertRollbackInfoEquals(TEST_APP_A, 2, 1, rollbackA);
+            RollbackInfo rollbackA = waitForAvailableRollback(TestApp.A);
+            assertThat(rollbackA).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A1));
 
-            RollbackInfo rollbackB = getUniqueRollbackInfoForPackage(
-                    rm.getAvailableRollbacks(), TEST_APP_B);
-            assertRollbackInfoEquals(TEST_APP_B, 2, 1, rollbackB);
+            RollbackInfo rollbackB = waitForAvailableRollback(TestApp.B);
+            assertThat(rollbackB).packagesContainsExactly(
+                    Rollback.from(TestApp.B2).to(TestApp.B1));
 
             // Executing rollback should roll back the correct package.
-            RollbackTestUtils.rollback(rollbackA.getRollbackId());
-            assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_B));
+            RollbackUtils.rollback(rollbackA.getRollbackId());
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1);
+            assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(2);
 
-            RollbackTestUtils.uninstall(TEST_APP_A);
-            RollbackTestUtils.install("RollbackTestAppAv1.apk", false);
-            RollbackTestUtils.install("RollbackTestAppAv2.apk", true);
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            Uninstall.packages(TestApp.A);
+            Install.single(TestApp.A1).commit();
+            Install.single(TestApp.A2).setEnableRollback().commit();
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
 
-            RollbackTestUtils.rollback(rollbackB.getRollbackId());
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
-            assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_B));
+            RollbackUtils.rollback(rollbackB.getRollbackId());
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
+            assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(1);
         } finally {
-            RollbackTestUtils.dropShellPermissionIdentity();
+            InstallUtils.dropShellPermissionIdentity();
         }
     }
 
@@ -626,7 +675,7 @@
     public void testManageRollbacksPermission() throws Exception {
         // We shouldn't be allowed to call any of the RollbackManager APIs
         // without the MANAGE_ROLLBACKS permission.
-        RollbackManager rm = RollbackTestUtils.getRollbackManager();
+        RollbackManager rm = RollbackUtils.getRollbackManager();
 
         try {
             rm.getAvailableRollbacks();
@@ -659,7 +708,7 @@
         }
 
         try {
-            rm.expireRollbackForPackage(TEST_APP_A);
+            rm.expireRollbackForPackage(TestApp.A);
             fail("expected SecurityException");
         } catch (SecurityException e) {
             // Expected.
@@ -673,26 +722,27 @@
     @Test
     public void testEnableRollbackPermission() throws Exception {
         try {
-            RollbackTestUtils.adoptShellPermissionIdentity(
+            InstallUtils.adoptShellPermissionIdentity(
                     Manifest.permission.INSTALL_PACKAGES,
                     Manifest.permission.DELETE_PACKAGES);
 
-            RollbackTestUtils.uninstall(TEST_APP_A);
-            RollbackTestUtils.install("RollbackTestAppAv1.apk", /* enableRollback */ false);
-            assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            Uninstall.packages(TestApp.A);
+            Install.single(TestApp.A1).commit();
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1);
 
-            RollbackTestUtils.install("RollbackTestAppAv2.apk", /* enableRollback */ true);
+            Install.single(TestApp.A2).setEnableRollback().commit();
 
             // We expect v2 of the app was installed, but rollback has not
             // been enabled.
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
 
-            RollbackTestUtils.adoptShellPermissionIdentity(
+            InstallUtils.adoptShellPermissionIdentity(
                     Manifest.permission.TEST_MANAGE_ROLLBACKS);
-            RollbackManager rm = RollbackTestUtils.getRollbackManager();
-            assertNull(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TEST_APP_A));
+            RollbackManager rm = RollbackUtils.getRollbackManager();
+            assertThat(
+                getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TestApp.A)).isNull();
         } finally {
-            RollbackTestUtils.dropShellPermissionIdentity();
+            InstallUtils.dropShellPermissionIdentity();
         }
     }
 
@@ -703,25 +753,26 @@
     @Test
     public void testNonModuleEnableRollback() throws Exception {
         try {
-            RollbackTestUtils.adoptShellPermissionIdentity(
+            InstallUtils.adoptShellPermissionIdentity(
                     Manifest.permission.INSTALL_PACKAGES,
                     Manifest.permission.DELETE_PACKAGES,
                     Manifest.permission.MANAGE_ROLLBACKS);
 
-            RollbackTestUtils.uninstall(TEST_APP_A);
-            RollbackTestUtils.install("RollbackTestAppAv1.apk", /* enableRollback */ false);
-            assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            Uninstall.packages(TestApp.A);
+            Install.single(TestApp.A1).commit();
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1);
 
-            RollbackTestUtils.install("RollbackTestAppAv2.apk", /* enableRollback */ true);
+            Install.single(TestApp.A2).setEnableRollback().commit();
 
             // We expect v2 of the app was installed, but rollback has not
             // been enabled because the test app is not a module.
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
 
-            RollbackManager rm = RollbackTestUtils.getRollbackManager();
-            assertNull(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TEST_APP_A));
+            RollbackManager rm = RollbackUtils.getRollbackManager();
+            assertThat(
+                getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TestApp.A)).isNull();
         } finally {
-            RollbackTestUtils.dropShellPermissionIdentity();
+            InstallUtils.dropShellPermissionIdentity();
         }
     }
 
@@ -731,54 +782,53 @@
     @Test
     public void testMultiPackage() throws Exception {
         try {
-            RollbackTestUtils.adoptShellPermissionIdentity(
+            InstallUtils.adoptShellPermissionIdentity(
                     Manifest.permission.INSTALL_PACKAGES,
                     Manifest.permission.DELETE_PACKAGES,
                     Manifest.permission.TEST_MANAGE_ROLLBACKS);
-            RollbackManager rm = RollbackTestUtils.getRollbackManager();
+            RollbackManager rm = RollbackUtils.getRollbackManager();
 
             // Prep installation of the test apps.
-            RollbackTestUtils.uninstall(TEST_APP_A);
-            RollbackTestUtils.uninstall(TEST_APP_B);
-            RollbackTestUtils.installMultiPackage(false,
-                    "RollbackTestAppAv1.apk",
-                    "RollbackTestAppBv1.apk");
-            processUserData(TEST_APP_A);
-            processUserData(TEST_APP_B);
-            RollbackTestUtils.installMultiPackage(true,
-                    "RollbackTestAppAv2.apk",
-                    "RollbackTestAppBv2.apk");
-            processUserData(TEST_APP_A);
-            processUserData(TEST_APP_B);
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_B));
+            Uninstall.packages(TestApp.A, TestApp.B);
+            Install.multi(TestApp.A1, TestApp.B1).commit();
+            processUserData(TestApp.A);
+            processUserData(TestApp.B);
+            Install.multi(TestApp.A2, TestApp.B2).setEnableRollback().commit();
+            processUserData(TestApp.A);
+            processUserData(TestApp.B);
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
+            assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(2);
 
-            // TEST_APP_A should now be available for rollback.
-            RollbackInfo rollback = getUniqueRollbackInfoForPackage(
-                    rm.getAvailableRollbacks(), TEST_APP_A);
-            assertRollbackInfoForAandB(rollback);
+            // TestApp.A should now be available for rollback.
+            RollbackInfo rollback = waitForAvailableRollback(TestApp.A);
+            assertThat(rollback).isNotNull();
+            assertThat(rollback).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A1),
+                    Rollback.from(TestApp.B2).to(TestApp.B1));
 
             // Rollback the app. It should cause both test apps to be rolled
             // back.
-            RollbackTestUtils.rollback(rollback.getRollbackId());
-            assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
-            assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_B));
+            RollbackUtils.rollback(rollback.getRollbackId());
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1);
+            assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(1);
 
             // We should see recent rollbacks listed for both A and B.
             Thread.sleep(1000);
             RollbackInfo rollbackA = getUniqueRollbackInfoForPackage(
-                    rm.getRecentlyCommittedRollbacks(), TEST_APP_A);
+                    rm.getRecentlyCommittedRollbacks(), TestApp.A);
 
             RollbackInfo rollbackB = getUniqueRollbackInfoForPackage(
-                    rm.getRecentlyCommittedRollbacks(), TEST_APP_B);
-            assertRollbackInfoForAandB(rollbackB);
+                    rm.getRecentlyCommittedRollbacks(), TestApp.B);
+            assertThat(rollback).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A1),
+                    Rollback.from(TestApp.B2).to(TestApp.B1));
 
-            assertEquals(rollbackA.getRollbackId(), rollbackB.getRollbackId());
+            assertThat(rollbackA).hasRollbackId(rollbackB.getRollbackId());
 
-            processUserData(TEST_APP_A);
-            processUserData(TEST_APP_B);
+            processUserData(TestApp.A);
+            processUserData(TestApp.B);
         } finally {
-            RollbackTestUtils.dropShellPermissionIdentity();
+            InstallUtils.dropShellPermissionIdentity();
         }
     }
 
@@ -790,31 +840,27 @@
     @Test
     public void testMultiPackageEnableFail() throws Exception {
         try {
-            RollbackTestUtils.adoptShellPermissionIdentity(
+            InstallUtils.adoptShellPermissionIdentity(
                     Manifest.permission.INSTALL_PACKAGES,
                     Manifest.permission.DELETE_PACKAGES,
                     Manifest.permission.TEST_MANAGE_ROLLBACKS);
-            RollbackManager rm = RollbackTestUtils.getRollbackManager();
+            RollbackManager rm = RollbackUtils.getRollbackManager();
 
-            RollbackTestUtils.uninstall(TEST_APP_A);
-            RollbackTestUtils.uninstall(TEST_APP_B);
-            RollbackTestUtils.install("RollbackTestAppAv1.apk", false);
-
+            Uninstall.packages(TestApp.A, TestApp.B);
+            Install.single(TestApp.A1).commit();
             // We should fail to enable rollback here because TestApp B is not
             // already installed.
-            RollbackTestUtils.installMultiPackage(true,
-                    "RollbackTestAppAv2.apk",
-                    "RollbackTestAppBv2.apk");
+            Install.multi(TestApp.A2, TestApp.B2).setEnableRollback().commit();
 
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_B));
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
+            assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(2);
 
-            assertNull(getUniqueRollbackInfoForPackage(
-                    rm.getAvailableRollbacks(), TEST_APP_A));
-            assertNull(getUniqueRollbackInfoForPackage(
-                    rm.getAvailableRollbacks(), TEST_APP_B));
+            assertThat(getUniqueRollbackInfoForPackage(
+                    rm.getAvailableRollbacks(), TestApp.A)).isNull();
+            assertThat(getUniqueRollbackInfoForPackage(
+                    rm.getAvailableRollbacks(), TestApp.B)).isNull();
         } finally {
-            RollbackTestUtils.dropShellPermissionIdentity();
+            InstallUtils.dropShellPermissionIdentity();
         }
     }
 
@@ -825,30 +871,33 @@
      */
     public void testSameVersionUpdate() throws Exception {
         try {
-            RollbackTestUtils.adoptShellPermissionIdentity(
+            InstallUtils.adoptShellPermissionIdentity(
                     Manifest.permission.INSTALL_PACKAGES,
                     Manifest.permission.DELETE_PACKAGES,
                     Manifest.permission.TEST_MANAGE_ROLLBACKS);
-            RollbackManager rm = RollbackTestUtils.getRollbackManager();
+            RollbackManager rm = RollbackUtils.getRollbackManager();
 
-            RollbackTestUtils.uninstall(TEST_APP_A);
-            RollbackTestUtils.install("RollbackTestAppAv1.apk", false);
-            RollbackTestUtils.install("RollbackTestAppAv2.apk", true);
-            RollbackTestUtils.install("RollbackTestAppACrashingV2.apk", true);
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            Uninstall.packages(TestApp.A);
+            Install.single(TestApp.A1).commit();
+            Install.single(TestApp.A2).setEnableRollback().commit();
+            Install.single(TestApp.ACrashing2).setEnableRollback().commit();
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
 
             RollbackInfo rollback = getUniqueRollbackInfoForPackage(
-                    rm.getAvailableRollbacks(), TEST_APP_A);
-            assertRollbackInfoEquals(TEST_APP_A, 2, 2, rollback);
+                    rm.getAvailableRollbacks(), TestApp.A);
+            assertThat(rollback).isNotNull();
+            assertThat(rollback).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A2));
 
-            RollbackTestUtils.rollback(rollback.getRollbackId());
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            RollbackUtils.rollback(rollback.getRollbackId());
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
 
             rollback = getUniqueRollbackInfoForPackage(
-                    rm.getRecentlyCommittedRollbacks(), TEST_APP_A);
-            assertRollbackInfoEquals(TEST_APP_A, 2, 2, rollback);
+                    rm.getRecentlyCommittedRollbacks(), TestApp.A);
+            assertThat(rollback).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A2));
         } finally {
-            RollbackTestUtils.dropShellPermissionIdentity();
+            InstallUtils.dropShellPermissionIdentity();
         }
     }
 
@@ -857,60 +906,54 @@
      */
     @Test
     public void testBadUpdateRollback() throws Exception {
-        BroadcastReceiver crashCountReceiver = null;
         Context context = InstrumentationRegistry.getContext();
         try {
-            RollbackTestUtils.adoptShellPermissionIdentity(
+            InstallUtils.adoptShellPermissionIdentity(
                     Manifest.permission.INSTALL_PACKAGES,
                     Manifest.permission.DELETE_PACKAGES,
                     Manifest.permission.MANAGE_ROLLBACKS,
                     Manifest.permission.TEST_MANAGE_ROLLBACKS,
-                    Manifest.permission.KILL_BACKGROUND_PROCESSES,
+                    Manifest.permission.FORCE_STOP_PACKAGES,
                     Manifest.permission.RESTART_PACKAGES);
-            RollbackManager rm = RollbackTestUtils.getRollbackManager();
 
             // Prep installation of the test apps.
-            RollbackTestUtils.uninstall(TEST_APP_A);
-            RollbackTestUtils.install("RollbackTestAppAv1.apk", false);
-            RollbackTestUtils.install("RollbackTestAppACrashingV2.apk", true);
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            Uninstall.packages(TestApp.A, TestApp.B);
+            Install.single(TestApp.A1).commit();
+            Install.single(TestApp.ACrashing2).setEnableRollback().commit();
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
 
-            RollbackTestUtils.uninstall(TEST_APP_B);
-            RollbackTestUtils.install("RollbackTestAppBv1.apk", false);
-            RollbackTestUtils.install("RollbackTestAppBv2.apk", true);
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_B));
+            Install.single(TestApp.B1).commit();
+            Install.single(TestApp.B2).setEnableRollback().commit();
+            assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(2);
 
             // Both test apps should now be available for rollback, and the
             // targetPackage returned for rollback should be correct.
-            RollbackInfo rollbackA = getUniqueRollbackInfoForPackage(
-                    rm.getAvailableRollbacks(), TEST_APP_A);
-            assertRollbackInfoEquals(TEST_APP_A, 2, 1, rollbackA);
+            RollbackInfo rollbackA = waitForAvailableRollback(TestApp.A);
+            assertThat(rollbackA).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A1));
 
-            RollbackInfo rollbackB = getUniqueRollbackInfoForPackage(
-                    rm.getAvailableRollbacks(), TEST_APP_B);
-            assertRollbackInfoEquals(TEST_APP_B, 2, 1, rollbackB);
+            RollbackInfo rollbackB = waitForAvailableRollback(TestApp.B);
+            assertThat(rollbackB).packagesContainsExactly(
+                    Rollback.from(TestApp.B2).to(TestApp.B1));
 
             // Register rollback committed receiver
             RollbackBroadcastReceiver rollbackReceiver = new RollbackBroadcastReceiver();
 
-            // Crash TEST_APP_A PackageWatchdog#TRIGGER_FAILURE_COUNT times to trigger rollback
-            crashCountReceiver = RollbackTestUtils.sendCrashBroadcast(context, TEST_APP_A, 5);
+            // Crash TestApp.A PackageWatchdog#TRIGGER_FAILURE_COUNT times to trigger rollback
+            RollbackUtils.sendCrashBroadcast(TestApp.A, 5);
 
             // Verify we received a broadcast for the rollback.
             rollbackReceiver.take();
 
-            // TEST_APP_A is automatically rolled back by the RollbackPackageHealthObserver
-            assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            // TestApp.A is automatically rolled back by the RollbackPackageHealthObserver
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1);
             // Instrumented app is still the package installer
-            String installer = context.getPackageManager().getInstallerPackageName(TEST_APP_A);
-            assertEquals(INSTRUMENTED_APP, installer);
-            // TEST_APP_B is untouched
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_B));
+            String installer = context.getPackageManager().getInstallerPackageName(TestApp.A);
+            assertThat(installer).isEqualTo(INSTRUMENTED_APP);
+            // TestApp.B is untouched
+            assertThat(InstallUtils.getInstalledVersion(TestApp.B)).isEqualTo(2);
         } finally {
-            RollbackTestUtils.dropShellPermissionIdentity();
-            if (crashCountReceiver != null) {
-                context.unregisterReceiver(crashCountReceiver);
-            }
+            InstallUtils.dropShellPermissionIdentity();
         }
     }
 
@@ -920,31 +963,31 @@
     @Test
     public void testRollForwardRace() throws Exception {
         try {
-            RollbackTestUtils.adoptShellPermissionIdentity(
+            InstallUtils.adoptShellPermissionIdentity(
                     Manifest.permission.INSTALL_PACKAGES,
                     Manifest.permission.DELETE_PACKAGES,
                     Manifest.permission.TEST_MANAGE_ROLLBACKS,
                     Manifest.permission.MANAGE_ROLLBACKS);
 
-            RollbackManager rm = RollbackTestUtils.getRollbackManager();
+            RollbackManager rm = RollbackUtils.getRollbackManager();
 
-            RollbackTestUtils.uninstall(TEST_APP_A);
-            RollbackTestUtils.install("RollbackTestAppAv1.apk", false);
-            RollbackTestUtils.install("RollbackTestAppAv2.apk", true);
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            Uninstall.packages(TestApp.A);
+            Install.single(TestApp.A1).commit();
+            Install.single(TestApp.A2).setEnableRollback().commit();
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
 
-            RollbackInfo rollback = getUniqueRollbackInfoForPackage(
-                    rm.getAvailableRollbacks(), TEST_APP_A);
-            assertRollbackInfoEquals(TEST_APP_A, 2, 1, rollback);
+            RollbackInfo rollback = waitForAvailableRollback(TestApp.A);
+            assertThat(rollback).packagesContainsExactly(
+                    Rollback.from(TestApp.A2).to(TestApp.A1));
 
             // Install a new version of package A, then immediately rollback
             // the previous version. We expect the rollback to fail, because
             // it is no longer available.
             // There are a couple different ways this could fail depending on
             // thread interleaving, so don't ignore flaky failures.
-            RollbackTestUtils.install("RollbackTestAppAv3.apk", false);
+            Install.single(TestApp.A3).commit();
             try {
-                RollbackTestUtils.rollback(rollback.getRollbackId());
+                RollbackUtils.rollback(rollback.getRollbackId());
                 // Note: Don't ignore flaky failures here.
                 fail("Expected rollback to fail, but it did not.");
             } catch (AssertionError e) {
@@ -953,9 +996,9 @@
             }
 
             // Note: Don't ignore flaky failures here.
-            assertEquals(3, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(3);
         } finally {
-            RollbackTestUtils.dropShellPermissionIdentity();
+            InstallUtils.dropShellPermissionIdentity();
         }
     }
 
@@ -963,7 +1006,7 @@
     @Ignore("b/136605788")
     public void testEnableRollbackTimeoutFailsRollback() throws Exception {
         try {
-            RollbackTestUtils.adoptShellPermissionIdentity(
+            InstallUtils.adoptShellPermissionIdentity(
                     Manifest.permission.INSTALL_PACKAGES,
                     Manifest.permission.DELETE_PACKAGES,
                     Manifest.permission.TEST_MANAGE_ROLLBACKS,
@@ -973,36 +1016,32 @@
             //setting the timeout to a very short amount that will definitely be triggered
             DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ROLLBACK,
                     PROPERTY_ENABLE_ROLLBACK_TIMEOUT_MILLIS,
-                    Long.toString(1), false /* makeDefault*/);
-            RollbackManager rm = RollbackTestUtils.getRollbackManager();
+                    Long.toString(0), false /* makeDefault*/);
+            RollbackManager rm = RollbackUtils.getRollbackManager();
 
-            RollbackTestUtils.uninstall(TEST_APP_A);
-            RollbackTestUtils.install("RollbackTestAppAv1.apk", false);
-            RollbackTestUtils.install("RollbackTestAppAv2.apk", true);
+            Uninstall.packages(TestApp.A);
+            Install.single(TestApp.A1).commit();
+            waitForUnavailableRollback(TestApp.A);
 
-            assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+            // Block the RollbackManager to make extra sure it will not be
+            // able to enable the rollback in time.
+            rm.blockRollbackManager(TimeUnit.SECONDS.toMillis(1));
+            Install.single(TestApp.A2).setEnableRollback().commit();
 
-            assertNull(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TEST_APP_A));
+            assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
+
+            // Give plenty of time for RollbackManager to unblock and attempt
+            // to make the rollback available before asserting that the
+            // rollback was not made available.
+            Thread.sleep(TimeUnit.SECONDS.toMillis(2));
+            assertThat(
+                getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(), TestApp.A)).isNull();
         } finally {
             //setting the timeout back to default
             DeviceConfig.setProperty(DeviceConfig.NAMESPACE_ROLLBACK,
                     PROPERTY_ENABLE_ROLLBACK_TIMEOUT_MILLIS,
                     null, false /* makeDefault*/);
-            RollbackTestUtils.dropShellPermissionIdentity();
-        }
-    }
-
-    // Helper function to test that the given rollback info is a rollback for
-    // the atomic set {A2, B2} -> {A1, B1}.
-    private void assertRollbackInfoForAandB(RollbackInfo rollback) {
-        assertNotNull(rollback);
-        assertEquals(2, rollback.getPackages().size());
-        if (TEST_APP_A.equals(rollback.getPackages().get(0).getPackageName())) {
-            assertPackageRollbackInfoEquals(TEST_APP_A, 2, 1, rollback.getPackages().get(0));
-            assertPackageRollbackInfoEquals(TEST_APP_B, 2, 1, rollback.getPackages().get(1));
-        } else {
-            assertPackageRollbackInfoEquals(TEST_APP_B, 2, 1, rollback.getPackages().get(0));
-            assertPackageRollbackInfoEquals(TEST_APP_A, 2, 1, rollback.getPackages().get(1));
+            InstallUtils.dropShellPermissionIdentity();
         }
     }
 }
diff --git a/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTestUtils.java b/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTestUtils.java
deleted file mode 100644
index a9e20cd..0000000
--- a/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/RollbackTestUtils.java
+++ /dev/null
@@ -1,547 +0,0 @@
-/*
- * Copyright (C) 2018 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.
- */
-
-package com.android.tests.rollback;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.fail;
-
-import android.app.ActivityManager;
-import android.app.AlarmManager;
-import android.content.BroadcastReceiver;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageInstaller;
-import android.content.pm.PackageManager;
-import android.content.pm.VersionedPackage;
-import android.content.rollback.PackageRollbackInfo;
-import android.content.rollback.RollbackInfo;
-import android.content.rollback.RollbackManager;
-import android.os.Handler;
-import android.os.HandlerThread;
-import android.util.Log;
-
-import androidx.test.InstrumentationRegistry;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.SynchronousQueue;
-
-/**
- * Utilities to facilitate testing rollbacks.
- */
-class RollbackTestUtils {
-
-    private static final String TAG = "RollbackTest";
-
-    static RollbackManager getRollbackManager() {
-        Context context = InstrumentationRegistry.getContext();
-        RollbackManager rm = (RollbackManager) context.getSystemService(Context.ROLLBACK_SERVICE);
-        if (rm == null) {
-            throw new AssertionError("Failed to get RollbackManager");
-        }
-        return rm;
-    }
-
-    private static void setTime(long millis) {
-        Context context = InstrumentationRegistry.getContext();
-        AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
-        am.setTime(millis);
-    }
-
-    static void forwardTimeBy(long offsetMillis) {
-        setTime(System.currentTimeMillis() + offsetMillis);
-        Log.i(TAG, "Forwarded time on device by " + offsetMillis + " millis");
-    }
-
-    /**
-     * Returns the version of the given package installed on device.
-     * Returns -1 if the package is not currently installed.
-     */
-    static long getInstalledVersion(String packageName) {
-        PackageInfo pi = getPackageInfo(packageName);
-        if (pi == null) {
-            return -1;
-        } else {
-            return pi.getLongVersionCode();
-        }
-    }
-
-    private static boolean isSystemAppWithoutUpdate(String packageName) {
-        PackageInfo pi = getPackageInfo(packageName);
-        if (pi == null) {
-            return false;
-        } else {
-            return ((pi.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0)
-                    && ((pi.applicationInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) == 0);
-        }
-    }
-
-    private static PackageInfo getPackageInfo(String packageName) {
-        Context context = InstrumentationRegistry.getContext();
-        PackageManager pm = context.getPackageManager();
-        try {
-            return pm.getPackageInfo(packageName, PackageManager.MATCH_APEX);
-        } catch (PackageManager.NameNotFoundException e) {
-            return null;
-        }
-    }
-
-    private static void assertStatusSuccess(Intent result) {
-        int status = result.getIntExtra(PackageInstaller.EXTRA_STATUS,
-                PackageInstaller.STATUS_FAILURE);
-        if (status == -1) {
-            throw new AssertionError("PENDING USER ACTION");
-        } else if (status > 0) {
-            String message = result.getStringExtra(PackageInstaller.EXTRA_STATUS_MESSAGE);
-            throw new AssertionError(message == null ? "UNKNOWN FAILURE" : message);
-        }
-    }
-
-    /**
-     * Uninstalls the given package.
-     * Does nothing if the package is not installed.
-     * @throws AssertionError if package can't be uninstalled.
-     */
-    static void uninstall(String packageName) throws InterruptedException, IOException {
-        // No need to uninstall if the package isn't installed or is installed on /system.
-        if (getInstalledVersion(packageName) == -1 || isSystemAppWithoutUpdate(packageName)) {
-            return;
-        }
-
-        Context context = InstrumentationRegistry.getContext();
-        PackageManager packageManager = context.getPackageManager();
-        PackageInstaller packageInstaller = packageManager.getPackageInstaller();
-        packageInstaller.uninstall(packageName, LocalIntentSender.getIntentSender());
-        assertStatusSuccess(LocalIntentSender.getIntentSenderResult());
-    }
-
-    /**
-     * Commit the given rollback.
-     * @throws AssertionError if the rollback fails.
-     */
-    static void rollback(int rollbackId, VersionedPackage... causePackages)
-            throws InterruptedException {
-        RollbackManager rm = getRollbackManager();
-        rm.commitRollback(rollbackId, Arrays.asList(causePackages),
-                LocalIntentSender.getIntentSender());
-        Intent result = LocalIntentSender.getIntentSenderResult();
-        int status = result.getIntExtra(RollbackManager.EXTRA_STATUS,
-                RollbackManager.STATUS_FAILURE);
-        if (status != RollbackManager.STATUS_SUCCESS) {
-            String message = result.getStringExtra(RollbackManager.EXTRA_STATUS_MESSAGE);
-            throw new AssertionError(message);
-        }
-    }
-
-    /**
-     * Installs the apk with the given name.
-     *
-     * @param resourceName name of class loader resource for the apk to
-     *        install.
-     * @param enableRollback if rollback should be enabled.
-     * @throws AssertionError if the installation fails.
-     */
-    static void install(String resourceName, boolean enableRollback)
-            throws InterruptedException, IOException {
-        installSplit(enableRollback, resourceName);
-    }
-
-    /**
-     * Installs the apk with the given name and its splits.
-     *
-     * @param enableRollback if rollback should be enabled.
-     * @param resourceNames names of class loader resources for the apk and
-     *        its splits to install.
-     * @throws AssertionError if the installation fails.
-     */
-    static void installSplit(boolean enableRollback, String... resourceNames)
-            throws InterruptedException, IOException {
-        Context context = InstrumentationRegistry.getContext();
-        PackageInstaller.Session session = null;
-        PackageInstaller packageInstaller = context.getPackageManager().getPackageInstaller();
-        PackageInstaller.SessionParams params = new PackageInstaller.SessionParams(
-                PackageInstaller.SessionParams.MODE_FULL_INSTALL);
-        params.setEnableRollback(enableRollback);
-        int sessionId = packageInstaller.createSession(params);
-        session = packageInstaller.openSession(sessionId);
-
-        ClassLoader loader = RollbackTest.class.getClassLoader();
-        for (String resourceName : resourceNames) {
-            try (OutputStream packageInSession = session.openWrite(resourceName, 0, -1);
-                    InputStream is = loader.getResourceAsStream(resourceName);) {
-                byte[] buffer = new byte[4096];
-                int n;
-                while ((n = is.read(buffer)) >= 0) {
-                    packageInSession.write(buffer, 0, n);
-                }
-            }
-        }
-
-        // Commit the session (this will start the installation workflow).
-        session.commit(LocalIntentSender.getIntentSender());
-        assertStatusSuccess(LocalIntentSender.getIntentSenderResult());
-    }
-
-    /** Launches {@code packageName} with {@link Intent#ACTION_MAIN}. */
-    private static void launchPackage(String packageName)
-            throws InterruptedException, IOException {
-        Context context = InstrumentationRegistry.getContext();
-        Intent intent = new Intent(Intent.ACTION_MAIN);
-        intent.setPackage(packageName);
-        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        intent.addCategory(Intent.CATEGORY_LAUNCHER);
-        context.startActivity(intent);
-    }
-
-    /**
-     * Installs the APKs or APEXs with the given resource names as an atomic
-     * set. A resource is assumed to be an APEX if it has the .apex extension.
-     * <p>
-     * In case of staged installs, this function will return succesfully after
-     * the staged install has been committed and is ready for the device to
-     * reboot.
-     *
-     * @param staged if the rollback should be staged.
-     * @param enableRollback if rollback should be enabled.
-     * @param resourceNames names of the class loader resource for the apks to
-     *        install.
-     * @throws AssertionError if the installation fails.
-     */
-    private static void install(boolean staged, boolean enableRollback,
-            String... resourceNames) throws InterruptedException, IOException {
-        Context context = InstrumentationRegistry.getContext();
-        PackageInstaller packageInstaller = context.getPackageManager().getPackageInstaller();
-
-        PackageInstaller.SessionParams multiPackageParams = new PackageInstaller.SessionParams(
-                PackageInstaller.SessionParams.MODE_FULL_INSTALL);
-        multiPackageParams.setMultiPackage();
-        if (staged) {
-            multiPackageParams.setStaged();
-        }
-        // TODO: Do we set this on the parent params, the child params, or
-        // both?
-        multiPackageParams.setEnableRollback(enableRollback);
-        int multiPackageId = packageInstaller.createSession(multiPackageParams);
-        PackageInstaller.Session multiPackage = packageInstaller.openSession(multiPackageId);
-
-        for (String resourceName : resourceNames) {
-            PackageInstaller.Session session = null;
-            PackageInstaller.SessionParams params = new PackageInstaller.SessionParams(
-                    PackageInstaller.SessionParams.MODE_FULL_INSTALL);
-            if (staged) {
-                params.setStaged();
-            }
-            if (resourceName.endsWith(".apex")) {
-                params.setInstallAsApex();
-            }
-            params.setEnableRollback(enableRollback);
-            int sessionId = packageInstaller.createSession(params);
-            session = packageInstaller.openSession(sessionId);
-
-            ClassLoader loader = RollbackTest.class.getClassLoader();
-            try (OutputStream packageInSession = session.openWrite(resourceName, 0, -1);
-                 InputStream is = loader.getResourceAsStream(resourceName);) {
-                byte[] buffer = new byte[4096];
-                int n;
-                while ((n = is.read(buffer)) >= 0) {
-                    packageInSession.write(buffer, 0, n);
-                }
-            }
-            multiPackage.addChildSessionId(sessionId);
-        }
-
-        // Commit the session (this will start the installation workflow).
-        multiPackage.commit(LocalIntentSender.getIntentSender());
-        assertStatusSuccess(LocalIntentSender.getIntentSenderResult());
-
-        if (staged) {
-            waitForSessionReady(multiPackageId);
-        }
-    }
-
-    /**
-     * Installs the apks with the given resource names as an atomic set.
-     *
-     * @param enableRollback if rollback should be enabled.
-     * @param resourceNames names of the class loader resource for the apks to
-     *        install.
-     * @throws AssertionError if the installation fails.
-     */
-    static void installMultiPackage(boolean enableRollback, String... resourceNames)
-            throws InterruptedException, IOException {
-        install(false, enableRollback, resourceNames);
-    }
-
-    /**
-     * Installs the APKs or APEXs with the given resource names as a staged
-     * atomic set. A resource is assumed to be an APEX if it has the .apex
-     * extension.
-     *
-     * @param enableRollback if rollback should be enabled.
-     * @param resourceNames names of the class loader resource for the apks to
-     *        install.
-     * @throws AssertionError if the installation fails.
-     */
-    static void installStaged(boolean enableRollback, String... resourceNames)
-            throws InterruptedException, IOException {
-        install(true, enableRollback, resourceNames);
-    }
-
-    static void adoptShellPermissionIdentity(String... permissions) {
-        InstrumentationRegistry
-            .getInstrumentation()
-            .getUiAutomation()
-            .adoptShellPermissionIdentity(permissions);
-    }
-
-    static void dropShellPermissionIdentity() {
-        InstrumentationRegistry
-            .getInstrumentation()
-            .getUiAutomation()
-            .dropShellPermissionIdentity();
-    }
-
-    /**
-     * Returns the RollbackInfo with a given package in the list of rollbacks.
-     * Throws an assertion failure if there is more than one such rollback
-     * info. Returns null if there are no such rollback infos.
-     */
-    static RollbackInfo getUniqueRollbackInfoForPackage(List<RollbackInfo> rollbacks,
-            String packageName) {
-        RollbackInfo found = null;
-        for (RollbackInfo rollback : rollbacks) {
-            for (PackageRollbackInfo info : rollback.getPackages()) {
-                if (packageName.equals(info.getPackageName())) {
-                    assertNull(found);
-                    found = rollback;
-                    break;
-                }
-            }
-        }
-        return found;
-    }
-
-    /**
-     * Asserts that the given PackageRollbackInfo has the expected package
-     * name and versions.
-     */
-    static void assertPackageRollbackInfoEquals(String packageName,
-            long versionRolledBackFrom, long versionRolledBackTo,
-            PackageRollbackInfo info) {
-        assertEquals(packageName, info.getPackageName());
-        assertEquals(packageName, info.getVersionRolledBackFrom().getPackageName());
-        assertEquals(versionRolledBackFrom, info.getVersionRolledBackFrom().getLongVersionCode());
-        assertEquals(packageName, info.getVersionRolledBackTo().getPackageName());
-        assertEquals(versionRolledBackTo, info.getVersionRolledBackTo().getLongVersionCode());
-    }
-
-    /**
-     * Asserts that the given RollbackInfo has the given packages with expected
-     * package names and all are rolled to and from the same given versions.
-     */
-    static void assertRollbackInfoEquals(String[] packageNames,
-            long versionRolledBackFrom, long versionRolledBackTo,
-            RollbackInfo info, VersionedPackage... causePackages) {
-        assertNotNull(info);
-        assertEquals(packageNames.length, info.getPackages().size());
-        int foundPackages = 0;
-        for (String packageName : packageNames) {
-            for (PackageRollbackInfo pkgRollbackInfo : info.getPackages()) {
-                if (packageName.equals(pkgRollbackInfo.getPackageName())) {
-                    foundPackages++;
-                    assertPackageRollbackInfoEquals(packageName, versionRolledBackFrom,
-                            versionRolledBackTo, pkgRollbackInfo);
-                    break;
-                }
-            }
-        }
-        assertEquals(packageNames.length, foundPackages);
-        assertEquals(causePackages.length, info.getCausePackages().size());
-        for (int i = 0; i < causePackages.length; ++i) {
-            assertEquals(causePackages[i].getPackageName(),
-                    info.getCausePackages().get(i).getPackageName());
-            assertEquals(causePackages[i].getLongVersionCode(),
-                    info.getCausePackages().get(i).getLongVersionCode());
-        }
-    }
-
-    /**
-     * Asserts that the given RollbackInfo has a single package with expected
-     * package name and versions.
-     */
-    static void assertRollbackInfoEquals(String packageName,
-            long versionRolledBackFrom, long versionRolledBackTo,
-            RollbackInfo info, VersionedPackage... causePackages) {
-        String[] packageNames = {packageName};
-        assertRollbackInfoEquals(packageNames, versionRolledBackFrom, versionRolledBackTo, info,
-                causePackages);
-    }
-
-    /**
-     * Waits for the given session to be marked as ready.
-     * Throws an assertion if the session fails.
-     */
-    static void waitForSessionReady(int sessionId) {
-        BlockingQueue<PackageInstaller.SessionInfo> sessionStatus = new LinkedBlockingQueue<>();
-        BroadcastReceiver sessionUpdatedReceiver = new BroadcastReceiver() {
-            @Override
-            public void onReceive(Context context, Intent intent) {
-                PackageInstaller.SessionInfo info =
-                        intent.getParcelableExtra(PackageInstaller.EXTRA_SESSION);
-                if (info != null && info.getSessionId() == sessionId) {
-                    if (info.isStagedSessionReady() || info.isStagedSessionFailed()) {
-                        try {
-                            sessionStatus.put(info);
-                        } catch (InterruptedException e) {
-                            Log.e(TAG, "Failed to put session info.", e);
-                        }
-                    }
-                }
-            }
-        };
-        IntentFilter sessionUpdatedFilter =
-                new IntentFilter(PackageInstaller.ACTION_SESSION_UPDATED);
-
-        Context context = InstrumentationRegistry.getContext();
-        context.registerReceiver(sessionUpdatedReceiver, sessionUpdatedFilter);
-
-        PackageInstaller installer = context.getPackageManager().getPackageInstaller();
-        PackageInstaller.SessionInfo info = installer.getSessionInfo(sessionId);
-
-        try {
-            if (info.isStagedSessionReady() || info.isStagedSessionFailed()) {
-                sessionStatus.put(info);
-            }
-
-            info = sessionStatus.take();
-            context.unregisterReceiver(sessionUpdatedReceiver);
-            if (info.isStagedSessionFailed()) {
-                throw new AssertionError(info.getStagedSessionErrorMessage());
-            }
-        } catch (InterruptedException e) {
-            throw new AssertionError(e);
-        }
-    }
-
-    private static final String NO_RESPONSE = "NO RESPONSE";
-
-    /**
-     * Calls into the test app to process user data.
-     * Asserts if the user data could not be processed or was version
-     * incompatible with the previously processed user data.
-     */
-    static void processUserData(String packageName) {
-        Intent intent = new Intent();
-        intent.setComponent(new ComponentName(packageName,
-                    "com.android.tests.rollback.testapp.ProcessUserData"));
-        Context context = InstrumentationRegistry.getContext();
-
-        HandlerThread handlerThread = new HandlerThread("RollbackTestHandlerThread");
-        handlerThread.start();
-
-        // It can sometimes take a while after rollback before the app will
-        // receive this broadcast, so try a few times in a loop.
-        String result = NO_RESPONSE;
-        for (int i = 0; result.equals(NO_RESPONSE) && i < 5; ++i) {
-            BlockingQueue<String> resultQueue = new LinkedBlockingQueue<>();
-            context.sendOrderedBroadcast(intent, null, new BroadcastReceiver() {
-                @Override
-                public void onReceive(Context context, Intent intent) {
-                    if (getResultCode() == 1) {
-                        resultQueue.add("OK");
-                    } else {
-                        // If the test app doesn't receive the broadcast or
-                        // fails to set the result data, then getResultData
-                        // here returns the initial NO_RESPONSE data passed to
-                        // the sendOrderedBroadcast call.
-                        resultQueue.add(getResultData());
-                    }
-                }
-            }, new Handler(handlerThread.getLooper()), 0, NO_RESPONSE, null);
-
-            try {
-                result = resultQueue.take();
-            } catch (InterruptedException e) {
-                throw new AssertionError(e);
-            }
-        }
-
-        handlerThread.quit();
-        if (!"OK".equals(result)) {
-            fail(result);
-        }
-    }
-
-    /**
-     * Return the rollback info for a recently committed rollback, by matching the rollback id, or
-     * return null if no matching rollback is found.
-     */
-    static RollbackInfo getRecentlyCommittedRollbackInfoById(int getRollbackId) {
-        for (RollbackInfo info : getRollbackManager().getRecentlyCommittedRollbacks()) {
-            if (info.getRollbackId() == getRollbackId) {
-                return info;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Send broadcast to crash {@code packageName} {@code count} times. If {@code count} is at least
-     * {@link PackageWatchdog#TRIGGER_FAILURE_COUNT}, watchdog crash detection will be triggered.
-     */
-    static BroadcastReceiver sendCrashBroadcast(Context context, String packageName, int count)
-            throws InterruptedException, IOException {
-        BlockingQueue<Integer> crashQueue = new SynchronousQueue<>();
-        IntentFilter crashCountFilter = new IntentFilter();
-        crashCountFilter.addAction("com.android.tests.rollback.CRASH");
-        crashCountFilter.addCategory(Intent.CATEGORY_DEFAULT);
-
-        BroadcastReceiver crashCountReceiver = new BroadcastReceiver() {
-                @Override
-                public void onReceive(Context context, Intent intent) {
-                    try {
-                        // Sleep long enough for packagewatchdog to be notified of crash
-                        Thread.sleep(1000);
-                        // Kill app and close AppErrorDialog
-                        ActivityManager am = context.getSystemService(ActivityManager.class);
-                        am.killBackgroundProcesses(packageName);
-                        // Allow another package launch
-                        crashQueue.put(intent.getIntExtra("count", 0));
-                    } catch (InterruptedException e) {
-                        fail("Failed to communicate with test app");
-                    }
-                }
-            };
-        context.registerReceiver(crashCountReceiver, crashCountFilter);
-
-        do {
-            launchPackage(packageName);
-        } while(crashQueue.take() < count);
-        return crashCountReceiver;
-    }
-}
diff --git a/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/StagedRollbackTest.java b/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/StagedRollbackTest.java
index 1a29c4c..9e6ac8e 100644
--- a/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/StagedRollbackTest.java
+++ b/tests/RollbackTest/RollbackTest/src/com/android/tests/rollback/StagedRollbackTest.java
@@ -16,26 +16,34 @@
 
 package com.android.tests.rollback;
 
-import static com.android.tests.rollback.RollbackTestUtils.assertRollbackInfoEquals;
-import static com.android.tests.rollback.RollbackTestUtils.getUniqueRollbackInfoForPackage;
+import static com.android.cts.rollback.lib.RollbackInfoSubject.assertThat;
+import static com.android.cts.rollback.lib.RollbackUtils.getUniqueRollbackInfoForPackage;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.junit.Assert.fail;
 
 import android.Manifest;
-import android.content.BroadcastReceiver;
+import android.annotation.Nullable;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.VersionedPackage;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageInstaller;
 import android.content.rollback.RollbackInfo;
 import android.content.rollback.RollbackManager;
+import android.text.TextUtils;
 
 import androidx.test.InstrumentationRegistry;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import com.android.cts.install.lib.Install;
+import com.android.cts.install.lib.InstallUtils;
+import com.android.cts.install.lib.LocalIntentSender;
+import com.android.cts.install.lib.TestApp;
+import com.android.cts.install.lib.Uninstall;
+import com.android.cts.rollback.lib.Rollback;
+import com.android.cts.rollback.lib.RollbackUtils;
+import com.android.internal.R;
 
 import org.junit.After;
 import org.junit.Before;
@@ -54,23 +62,21 @@
 @RunWith(JUnit4.class)
 public class StagedRollbackTest {
 
-    private static final String TAG = "RollbackTest";
-    private static final String TEST_APP_A = "com.android.tests.rollback.testapp.A";
-    private static final String TEST_APP_A_V1 = "RollbackTestAppAv1.apk";
-    private static final String TEST_APP_A_CRASHING_V2 = "RollbackTestAppACrashingV2.apk";
     private static final String NETWORK_STACK_CONNECTOR_CLASS =
             "android.net.INetworkStackConnector";
 
+    private static final String MODULE_META_DATA_PACKAGE = getModuleMetadataPackageName();
+
     /**
      * Adopts common shell permissions needed for rollback tests.
      */
     @Before
     public void adoptShellPermissions() {
-        RollbackTestUtils.adoptShellPermissionIdentity(
+        InstallUtils.adoptShellPermissionIdentity(
                 Manifest.permission.INSTALL_PACKAGES,
                 Manifest.permission.DELETE_PACKAGES,
                 Manifest.permission.TEST_MANAGE_ROLLBACKS,
-                Manifest.permission.KILL_BACKGROUND_PROCESSES);
+                Manifest.permission.FORCE_STOP_PACKAGES);
     }
 
     /**
@@ -78,7 +84,7 @@
      */
     @After
     public void dropShellPermissions() {
-        RollbackTestUtils.dropShellPermissionIdentity();
+        InstallUtils.dropShellPermissionIdentity();
     }
 
     /**
@@ -87,14 +93,14 @@
      */
     @Test
     public void testBadApkOnlyEnableRollback() throws Exception {
-        RollbackTestUtils.uninstall(TEST_APP_A);
-        assertEquals(-1, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
+        Uninstall.packages(TestApp.A);
+        assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(-1);
 
-        RollbackTestUtils.install(TEST_APP_A_V1, false);
-        assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
-        RollbackTestUtils.processUserData(TEST_APP_A);
+        Install.single(TestApp.A1).commit();
+        assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1);
+        InstallUtils.processUserData(TestApp.A);
 
-        RollbackTestUtils.installStaged(true, TEST_APP_A_CRASHING_V2);
+        Install.single(TestApp.ACrashing2).setEnableRollback().setStaged().commit();
 
         // At this point, the host test driver will reboot the device and run
         // testBadApkOnlyConfirmEnableRollback().
@@ -106,14 +112,16 @@
      */
     @Test
     public void testBadApkOnlyConfirmEnableRollback() throws Exception {
-        assertEquals(2, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
-        RollbackTestUtils.processUserData(TEST_APP_A);
+        assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
+        InstallUtils.processUserData(TestApp.A);
 
-        RollbackManager rm = RollbackTestUtils.getRollbackManager();
+        RollbackManager rm = RollbackUtils.getRollbackManager();
         RollbackInfo rollback = getUniqueRollbackInfoForPackage(
-                rm.getAvailableRollbacks(), TEST_APP_A);
-        assertRollbackInfoEquals(TEST_APP_A, 2, 1, rollback);
-        assertTrue(rollback.isStaged());
+                rm.getAvailableRollbacks(), TestApp.A);
+        assertThat(rollback).isNotNull();
+        assertThat(rollback).packagesContainsExactly(
+                Rollback.from(TestApp.A2).to(TestApp.A1));
+        assertThat(rollback.isStaged()).isTrue();
 
         // At this point, the host test driver will run
         // testBadApkOnlyTriggerRollback().
@@ -126,18 +134,8 @@
      */
     @Test
     public void testBadApkOnlyTriggerRollback() throws Exception {
-        BroadcastReceiver crashCountReceiver = null;
-        Context context = InstrumentationRegistry.getContext();
-        RollbackManager rm = RollbackTestUtils.getRollbackManager();
-
-        try {
-            // Crash TEST_APP_A PackageWatchdog#TRIGGER_FAILURE_COUNT times to trigger rollback
-            crashCountReceiver = RollbackTestUtils.sendCrashBroadcast(context, TEST_APP_A, 5);
-        } finally {
-            if (crashCountReceiver != null) {
-                context.unregisterReceiver(crashCountReceiver);
-            }
-        }
+        // Crash TestApp.A PackageWatchdog#TRIGGER_FAILURE_COUNT times to trigger rollback
+        RollbackUtils.sendCrashBroadcast(TestApp.A, 5);
 
         // We expect the device to be rebooted automatically. Wait for that to
         // happen. At that point, the host test driver will wait for the
@@ -153,48 +151,80 @@
      */
     @Test
     public void testBadApkOnlyConfirmRollback() throws Exception {
-        assertEquals(1, RollbackTestUtils.getInstalledVersion(TEST_APP_A));
-        RollbackTestUtils.processUserData(TEST_APP_A);
+        assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1);
+        InstallUtils.processUserData(TestApp.A);
 
-        RollbackManager rm = RollbackTestUtils.getRollbackManager();
+        RollbackManager rm = RollbackUtils.getRollbackManager();
         RollbackInfo rollback = getUniqueRollbackInfoForPackage(
-                rm.getRecentlyCommittedRollbacks(), TEST_APP_A);
-        assertRollbackInfoEquals(TEST_APP_A, 2, 1, rollback, new VersionedPackage(TEST_APP_A, 2));
-        assertTrue(rollback.isStaged());
-        assertNotEquals(-1, rollback.getCommittedSessionId());
+                rm.getRecentlyCommittedRollbacks(), TestApp.A);
+        assertThat(rollback).isNotNull();
+        assertThat(rollback).packagesContainsExactly(
+                Rollback.from(TestApp.A2).to(TestApp.A1));
+        assertThat(rollback).causePackagesContainsExactly(TestApp.ACrashing2);
+        assertThat(rollback).isStaged();
+        assertThat(rollback.getCommittedSessionId()).isNotEqualTo(-1);
     }
 
     @Test
     public void resetNetworkStack() throws Exception {
-        RollbackManager rm = RollbackTestUtils.getRollbackManager();
+        RollbackManager rm = RollbackUtils.getRollbackManager();
         String networkStack = getNetworkStackPackageName();
 
         rm.expireRollbackForPackage(networkStack);
-        RollbackTestUtils.uninstall(networkStack);
+        Uninstall.packages(networkStack);
 
-        assertNull(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(),
-                        networkStack));
+        assertThat(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(),
+                        networkStack)).isNull();
+    }
+
+    @Test
+    public void installModuleMetadataPackage() throws Exception {
+        resetModuleMetadataPackage();
+        Context context = InstrumentationRegistry.getContext();
+        PackageInfo metadataPackageInfo = context.getPackageManager().getPackageInfo(
+                MODULE_META_DATA_PACKAGE, 0);
+        String metadataApkPath = metadataPackageInfo.applicationInfo.sourceDir;
+        assertThat(metadataApkPath).isNotNull();
+        assertThat(metadataApkPath).isNotEqualTo("");
+
+        runShellCommand("pm install "
+                + "-r --enable-rollback --staged --wait "
+                + metadataApkPath);
     }
 
     @Test
     public void assertNetworkStackRollbackAvailable() throws Exception {
-        RollbackManager rm = RollbackTestUtils.getRollbackManager();
-        assertNotNull(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(),
-                        getNetworkStackPackageName()));
+        RollbackManager rm = RollbackUtils.getRollbackManager();
+        assertThat(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(),
+                        getNetworkStackPackageName())).isNotNull();
     }
 
     @Test
     public void assertNetworkStackRollbackCommitted() throws Exception {
-        RollbackManager rm = RollbackTestUtils.getRollbackManager();
-        assertNotNull(getUniqueRollbackInfoForPackage(rm.getRecentlyCommittedRollbacks(),
-                        getNetworkStackPackageName()));
+        RollbackManager rm = RollbackUtils.getRollbackManager();
+        assertThat(getUniqueRollbackInfoForPackage(rm.getRecentlyCommittedRollbacks(),
+                        getNetworkStackPackageName())).isNotNull();
     }
 
     @Test
     public void assertNoNetworkStackRollbackCommitted() throws Exception {
-        RollbackManager rm = RollbackTestUtils.getRollbackManager();
-        assertNull(getUniqueRollbackInfoForPackage(rm.getRecentlyCommittedRollbacks(),
-                        getNetworkStackPackageName()));
+        RollbackManager rm = RollbackUtils.getRollbackManager();
+        assertThat(getUniqueRollbackInfoForPackage(rm.getRecentlyCommittedRollbacks(),
+                        getNetworkStackPackageName())).isNull();
+    }
+
+    @Test
+    public void assertModuleMetadataRollbackAvailable() throws Exception {
+        RollbackManager rm = RollbackUtils.getRollbackManager();
+        assertThat(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(),
+                        MODULE_META_DATA_PACKAGE)).isNotNull();
+    }
+
+    @Test
+    public void assertModuleMetadataRollbackCommitted() throws Exception {
+        RollbackManager rm = RollbackUtils.getRollbackManager();
+        assertThat(getUniqueRollbackInfoForPackage(rm.getRecentlyCommittedRollbacks(),
+                        MODULE_META_DATA_PACKAGE)).isNotNull();
     }
 
     private String getNetworkStackPackageName() {
@@ -203,4 +233,65 @@
                 InstrumentationRegistry.getContext().getPackageManager(), 0);
         return comp.getPackageName();
     }
+
+    @Test
+    public void testPreviouslyAbandonedRollbacksEnableRollback() throws Exception {
+        Uninstall.packages(TestApp.A);
+        Install.single(TestApp.A1).commit();
+        assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1);
+
+        int sessionId = Install.single(TestApp.A2).setStaged().setEnableRollback().commit();
+        PackageInstaller pi = InstrumentationRegistry.getContext().getPackageManager()
+                .getPackageInstaller();
+        pi.abandonSession(sessionId);
+
+        // Remove the first intent sender result, so that the next staged install session does not
+        // erroneously think that it has itself been abandoned.
+        // TODO(b/136260017): Restructure LocalIntentSender to negate the need for this step.
+        LocalIntentSender.getIntentSenderResult();
+        Install.single(TestApp.A2).setStaged().setEnableRollback().commit();
+    }
+
+    @Test
+    public void testPreviouslyAbandonedRollbacksCommitRollback() throws Exception {
+        assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(2);
+        InstallUtils.processUserData(TestApp.A);
+
+        RollbackManager rm = RollbackUtils.getRollbackManager();
+        RollbackInfo rollback = getUniqueRollbackInfoForPackage(
+                rm.getAvailableRollbacks(), TestApp.A);
+        RollbackUtils.rollback(rollback.getRollbackId());
+    }
+
+    @Test
+    public void testPreviouslyAbandonedRollbacksCheckUserdataRollback() throws Exception {
+        assertThat(InstallUtils.getInstalledVersion(TestApp.A)).isEqualTo(1);
+        InstallUtils.processUserData(TestApp.A);
+        Uninstall.packages(TestApp.A);
+    }
+
+    @Nullable
+    private static String getModuleMetadataPackageName() {
+        String packageName = InstrumentationRegistry.getContext().getResources().getString(
+                R.string.config_defaultModuleMetadataProvider);
+        if (TextUtils.isEmpty(packageName)) {
+            return null;
+        }
+        return packageName;
+    }
+
+    private void resetModuleMetadataPackage() {
+        RollbackManager rm = RollbackUtils.getRollbackManager();
+
+        assertThat(MODULE_META_DATA_PACKAGE).isNotNull();
+        rm.expireRollbackForPackage(MODULE_META_DATA_PACKAGE);
+
+        assertThat(getUniqueRollbackInfoForPackage(rm.getAvailableRollbacks(),
+                MODULE_META_DATA_PACKAGE)).isNull();
+    }
+
+    private void runShellCommand(String cmd) {
+        InstrumentationRegistry.getInstrumentation().getUiAutomation()
+                .executeShellCommand(cmd);
+    }
 }
diff --git a/tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java b/tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java
index bad2947..f74aaf3 100644
--- a/tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java
+++ b/tests/RollbackTest/StagedRollbackTest/src/com/android/tests/rollback/host/StagedRollbackTest.java
@@ -19,6 +19,7 @@
 import static org.junit.Assert.assertTrue;
 
 import com.android.ddmlib.Log.LogLevel;
+import com.android.tradefed.device.DeviceNotAvailableException;
 import com.android.tradefed.log.LogUtil.CLog;
 import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
 import com.android.tradefed.testtype.junit4.BaseHostJUnit4Test;
@@ -28,11 +29,15 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import java.util.concurrent.TimeUnit;
+
 /**
  * Runs the staged rollback tests.
  */
 @RunWith(DeviceJUnit4ClassRunner.class)
 public class StagedRollbackTest extends BaseHostJUnit4Test {
+    private static final int NATIVE_CRASHES_THRESHOLD = 5;
+
     /**
      * Runs the given phase of a test by calling into the device.
      * Throws an exception if the test phase fails.
@@ -83,6 +88,35 @@
         runPhase("testBadApkOnlyConfirmRollback");
     }
 
+    @Test
+    public void testNativeWatchdogTriggersRollback() throws Exception {
+        //Stage install ModuleMetadata package - this simulates a Mainline module update
+        runPhase("installModuleMetadataPackage");
+
+        // Reboot device to activate staged package
+        getDevice().reboot();
+        getDevice().waitForDeviceAvailable();
+
+        runPhase("assertModuleMetadataRollbackAvailable");
+
+        // crash system_server enough times to trigger a rollback
+        crashProcess("system_server", NATIVE_CRASHES_THRESHOLD);
+
+        // Rollback should be committed automatically now.
+        // Give time for rollback to be committed. This could take a while,
+        // because we need all of the following to happen:
+        // 1. system_server comes back up and boot completes.
+        // 2. Rollback health observer detects updatable crashing signal.
+        // 3. Staged rollback session becomes ready.
+        // 4. Device actually reboots.
+        // So we give a generous timeout here.
+        assertTrue(getDevice().waitForDeviceNotAvailable(TimeUnit.MINUTES.toMillis(5)));
+        getDevice().waitForDeviceAvailable();
+
+        // verify rollback committed
+        runPhase("assertModuleMetadataRollbackCommitted");
+    }
+
     /**
      * Tests failed network health check triggers watchdog staged rollbacks.
      */
@@ -95,7 +129,7 @@
                 + "watchdog_request_timeout_millis 300000");
         // Simulate re-installation of new NetworkStack with rollbacks enabled
         getDevice().executeShellCommand("pm install -r --staged --enable-rollback "
-                + "/system/priv-app/NetworkStack/NetworkStack.apk");
+                + getNetworkStackPath());
 
         // Sleep to allow writes to disk before reboot
         Thread.sleep(5000);
@@ -141,7 +175,7 @@
                 + "watchdog_request_timeout_millis 300000");
         // Simulate re-installation of new NetworkStack with rollbacks enabled
         getDevice().executeShellCommand("pm install -r --staged --enable-rollback "
-                + "/system/priv-app/NetworkStack/NetworkStack.apk");
+                + getNetworkStackPath());
 
         // Sleep to allow writes to disk before reboot
         Thread.sleep(5000);
@@ -165,4 +199,35 @@
         // Verify rollback was not executed after health check deadline
         runPhase("assertNoNetworkStackRollbackCommitted");
     }
+
+    /**
+     * Tests rolling back user data where there are multiple rollbacks for that package.
+     */
+    @Test
+    public void testPreviouslyAbandonedRollbacks() throws Exception {
+        runPhase("testPreviouslyAbandonedRollbacksEnableRollback");
+        getDevice().reboot();
+        runPhase("testPreviouslyAbandonedRollbacksCommitRollback");
+        getDevice().reboot();
+        runPhase("testPreviouslyAbandonedRollbacksCheckUserdataRollback");
+    }
+
+    private void crashProcess(String processName, int numberOfCrashes) throws Exception {
+        String pid = "";
+        String lastPid = "invalid";
+        for (int i = 0; i < numberOfCrashes; ++i) {
+            // This condition makes sure before we kill the process, the process is running AND
+            // the last crash was finished.
+            while ("".equals(pid) || lastPid.equals(pid)) {
+                pid = getDevice().executeShellCommand("pidof " + processName);
+            }
+            getDevice().executeShellCommand("kill " + pid);
+            lastPid = pid;
+        }
+    }
+
+    private String getNetworkStackPath() throws DeviceNotAvailableException {
+        // Find the NetworkStack path (can be NetworkStack.apk or NetworkStackNext.apk)
+        return getDevice().executeShellCommand("ls /system/priv-app/NetworkStack*/*.apk");
+    }
 }
diff --git a/tests/RollbackTest/TEST_MAPPING b/tests/RollbackTest/TEST_MAPPING
index 6be93a0..fefde5b 100644
--- a/tests/RollbackTest/TEST_MAPPING
+++ b/tests/RollbackTest/TEST_MAPPING
@@ -5,6 +5,9 @@
     },
     {
       "name": "StagedRollbackTest"
+    },
+    {
+      "name": "MultiUserRollbackTest"
     }
   ]
 }
diff --git a/tests/RollbackTest/TestApp/ACrashingV2.xml b/tests/RollbackTest/TestApp/ACrashingV2.xml
deleted file mode 100644
index 77bfd4e..0000000
--- a/tests/RollbackTest/TestApp/ACrashingV2.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2019 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.tests.rollback.testapp.A"
-    android:versionCode="2"
-    android:versionName="2.0" >
-
-
-    <uses-sdk android:minSdkVersion="19" />
-
-    <application android:label="Rollback Test App A v2">
-        <receiver android:name="com.android.tests.rollback.testapp.ProcessUserData"
-                  android:exported="true" />
-        <activity android:name="com.android.tests.rollback.testapp.CrashingMainActivity">
-            <intent-filter>
-              <action android:name="android.intent.action.MAIN" />
-              <category android:name="android.intent.category.DEFAULT"/>
-              <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-    </application>
-</manifest>
diff --git a/tests/RollbackTest/TestApp/Av1.xml b/tests/RollbackTest/TestApp/Av1.xml
deleted file mode 100644
index 63729fb..0000000
--- a/tests/RollbackTest/TestApp/Av1.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.tests.rollback.testapp.A"
-    android:versionCode="1"
-    android:versionName="1.0" >
-
-
-    <uses-sdk android:minSdkVersion="19" />
-
-    <application android:label="Rollback Test App A v1">
-        <receiver android:name="com.android.tests.rollback.testapp.ProcessUserData"
-                  android:exported="true" />
-        <activity android:name="com.android.tests.rollback.testapp.MainActivity">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-    </application>
-</manifest>
diff --git a/tests/RollbackTest/TestApp/Av2.xml b/tests/RollbackTest/TestApp/Av2.xml
deleted file mode 100644
index f0e909f..0000000
--- a/tests/RollbackTest/TestApp/Av2.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.tests.rollback.testapp.A"
-    android:versionCode="2"
-    android:versionName="2.0" >
-
-
-    <uses-sdk android:minSdkVersion="19" />
-
-    <application android:label="Rollback Test App A v2">
-        <receiver android:name="com.android.tests.rollback.testapp.ProcessUserData"
-                  android:exported="true" />
-        <activity android:name="com.android.tests.rollback.testapp.MainActivity">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-    </application>
-</manifest>
diff --git a/tests/RollbackTest/TestApp/Av3.xml b/tests/RollbackTest/TestApp/Av3.xml
deleted file mode 100644
index 9725c9f7..0000000
--- a/tests/RollbackTest/TestApp/Av3.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.tests.rollback.testapp.A"
-    android:versionCode="3"
-    android:versionName="3.0" >
-
-
-    <uses-sdk android:minSdkVersion="19" />
-
-    <application android:label="Rollback Test App A v3">
-        <receiver android:name="com.android.tests.rollback.testapp.ProcessUserData"
-                  android:exported="true" />
-        <activity android:name="com.android.tests.rollback.testapp.MainActivity">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-    </application>
-</manifest>
diff --git a/tests/RollbackTest/TestApp/Bv1.xml b/tests/RollbackTest/TestApp/Bv1.xml
deleted file mode 100644
index ca9c2ec..0000000
--- a/tests/RollbackTest/TestApp/Bv1.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.tests.rollback.testapp.B"
-    android:versionCode="1"
-    android:versionName="1.0" >
-
-
-    <uses-sdk android:minSdkVersion="19" />
-
-    <application android:label="Rollback Test App B v1">
-        <receiver android:name="com.android.tests.rollback.testapp.ProcessUserData"
-                  android:exported="true" />
-        <activity android:name="com.android.tests.rollback.testapp.MainActivity">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-    </application>
-</manifest>
diff --git a/tests/RollbackTest/TestApp/Bv2.xml b/tests/RollbackTest/TestApp/Bv2.xml
deleted file mode 100644
index bd3e613..0000000
--- a/tests/RollbackTest/TestApp/Bv2.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.tests.rollback.testapp.B"
-    android:versionCode="2"
-    android:versionName="2.0" >
-
-
-    <uses-sdk android:minSdkVersion="19" />
-
-    <application android:label="Rollback Test App B v2">
-        <receiver android:name="com.android.tests.rollback.testapp.ProcessUserData"
-                  android:exported="true" />
-        <activity android:name="com.android.tests.rollback.testapp.MainActivity">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-    </application>
-</manifest>
diff --git a/tests/RollbackTest/TestApp/res_v1/values-anydpi/values.xml b/tests/RollbackTest/TestApp/res_v1/values-anydpi/values.xml
deleted file mode 100644
index 90d3da2..0000000
--- a/tests/RollbackTest/TestApp/res_v1/values-anydpi/values.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2019 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.
--->
-
-<resources>
-    <integer name="split_version">1</integer>
-</resources>
diff --git a/tests/RollbackTest/TestApp/res_v2/values-anydpi/values.xml b/tests/RollbackTest/TestApp/res_v2/values-anydpi/values.xml
deleted file mode 100644
index 9a1aa7f..0000000
--- a/tests/RollbackTest/TestApp/res_v2/values-anydpi/values.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2019 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.
--->
-
-<resources>
-    <integer name="split_version">2</integer>
-</resources>
diff --git a/tests/RollbackTest/TestApp/res_v2/values/values.xml b/tests/RollbackTest/TestApp/res_v2/values/values.xml
deleted file mode 100644
index fd988f5..0000000
--- a/tests/RollbackTest/TestApp/res_v2/values/values.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2019 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.
--->
-
-<resources>
-    <integer name="app_version">2</integer>
-    <integer name="split_version">0</integer>
-</resources>
diff --git a/tests/RollbackTest/TestApp/res_v3/values-anydpi/values.xml b/tests/RollbackTest/TestApp/res_v3/values-anydpi/values.xml
deleted file mode 100644
index f2d8992..0000000
--- a/tests/RollbackTest/TestApp/res_v3/values-anydpi/values.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2019 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.
--->
-
-<resources>
-    <integer name="split_version">3</integer>
-</resources>
diff --git a/tests/RollbackTest/TestApp/res_v3/values/values.xml b/tests/RollbackTest/TestApp/res_v3/values/values.xml
deleted file mode 100644
index 968168a..0000000
--- a/tests/RollbackTest/TestApp/res_v3/values/values.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2019 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.
--->
-
-<resources>
-    <integer name="app_version">3</integer>
-    <integer name="split_version">0</integer>
-</resources>
diff --git a/tests/RollbackTest/TestApp/src/com/android/tests/rollback/testapp/CrashingMainActivity.java b/tests/RollbackTest/TestApp/src/com/android/tests/rollback/testapp/CrashingMainActivity.java
deleted file mode 100644
index 97958ac..0000000
--- a/tests/RollbackTest/TestApp/src/com/android/tests/rollback/testapp/CrashingMainActivity.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-package com.android.tests.rollback.testapp;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.os.Bundle;
-
-/**
- * A crashing test app for testing apk rollback support.
- */
-public class CrashingMainActivity extends Activity {
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        incrementCountAndBroadcast();
-        throw new RuntimeException("Intended force crash");
-    }
-
-    private void incrementCountAndBroadcast() {
-        SharedPreferences preferences = getSharedPreferences("prefs", Context.MODE_PRIVATE);
-        SharedPreferences.Editor editor = preferences.edit();
-        int count = preferences.getInt("crash_count", 0);
-        editor.putInt("crash_count", ++count).commit();
-
-        Intent intent = new Intent("com.android.tests.rollback.CRASH");
-        intent.putExtra("count", count);
-        sendBroadcast(intent);
-    }
-}
diff --git a/tests/RollbackTest/TestApp/src/com/android/tests/rollback/testapp/MainActivity.java b/tests/RollbackTest/TestApp/src/com/android/tests/rollback/testapp/MainActivity.java
deleted file mode 100644
index 9f1a060..0000000
--- a/tests/RollbackTest/TestApp/src/com/android/tests/rollback/testapp/MainActivity.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2018 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.
- */
-
-package com.android.tests.rollback.testapp;
-
-import android.app.Activity;
-import android.os.Bundle;
-
-/**
- * A test app for testing apk rollback support.
- */
-public class MainActivity extends Activity {
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        try {
-            new ProcessUserData().processUserData(this);
-        } catch (ProcessUserData.UserDataException e) {
-            throw new AssertionError("Failed to process app user data", e);
-        }
-    }
-}
diff --git a/tests/RollbackTest/TestApp/src/com/android/tests/rollback/testapp/ProcessUserData.java b/tests/RollbackTest/TestApp/src/com/android/tests/rollback/testapp/ProcessUserData.java
deleted file mode 100644
index 38c658e..0000000
--- a/tests/RollbackTest/TestApp/src/com/android/tests/rollback/testapp/ProcessUserData.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (C) 2018 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.
- */
-
-package com.android.tests.rollback.testapp;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.res.Resources;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.Scanner;
-
-/**
- * A broadcast reciever to check for and update user app data version
- * compatibility.
- */
-public class ProcessUserData extends BroadcastReceiver {
-
-    private static final String TAG = "RollbackTestApp";
-
-    /**
-     * Exception thrown in case of issue with user data.
-     */
-    public static class UserDataException extends Exception {
-        public UserDataException(String message) {
-            super(message);
-        }
-
-        public UserDataException(String message, Throwable cause) {
-           super(message, cause);
-        }
-    }
-
-    @Override
-    public void onReceive(Context context, Intent intent) {
-        try {
-            processUserData(context);
-            setResultCode(1);
-        } catch (UserDataException e) {
-            setResultCode(0);
-            setResultData(e.getMessage());
-        }
-    }
-
-    /**
-     * Update the app's user data version to match the app version.
-     *
-     * @param context The application context.
-     * @throws UserDataException in case of problems with app user data.
-     */
-    public void processUserData(Context context) throws UserDataException {
-        Resources res = context.getResources();
-        String packageName = context.getPackageName();
-
-        int appVersionId = res.getIdentifier("app_version", "integer", packageName);
-        int appVersion = res.getInteger(appVersionId);
-
-        int splitVersionId = res.getIdentifier("split_version", "integer", packageName);
-        int splitVersion = res.getInteger(splitVersionId);
-
-        // Make sure the app version and split versions are compatible.
-        if (appVersion != splitVersion) {
-            throw new UserDataException("Split version " + splitVersion
-                    + " does not match app version " + appVersion);
-        }
-
-        // Read the version of the app's user data and ensure it is compatible
-        // with our version of the application.
-        File versionFile = new File(context.getFilesDir(), "version.txt");
-        try {
-            Scanner s = new Scanner(versionFile);
-            int userDataVersion = s.nextInt();
-            s.close();
-
-            if (userDataVersion > appVersion) {
-                throw new UserDataException("User data is from version " + userDataVersion
-                        + ", which is not compatible with this version " + appVersion
-                        + " of the RollbackTestApp");
-            }
-        } catch (FileNotFoundException e) {
-            // No problem. This is a fresh install of the app or the user data
-            // has been wiped.
-        }
-
-        // Record the current version of the app in the user data.
-        try {
-            PrintWriter pw = new PrintWriter(versionFile);
-            pw.println(appVersion);
-            pw.close();
-        } catch (IOException e) {
-            throw new UserDataException("Unable to write user data.", e);
-        }
-    }
-}
diff --git a/tests/net/Android.bp b/tests/net/Android.bp
index 10f27e2..b2f384a 100644
--- a/tests/net/Android.bp
+++ b/tests/net/Android.bp
@@ -45,7 +45,6 @@
     name: "FrameworksNetTests",
     defaults: ["FrameworksNetTests-jni-defaults"],
     srcs: [
-        ":tethering-tests-src",
         "java/**/*.java",
         "java/**/*.kt",
     ],
diff --git a/tests/net/common/java/android/net/NetworkScoreTest.kt b/tests/net/common/java/android/net/NetworkScoreTest.kt
new file mode 100644
index 0000000..30836b7
--- /dev/null
+++ b/tests/net/common/java/android/net/NetworkScoreTest.kt
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package android.net
+
+import android.os.Parcelable
+import androidx.test.filters.SmallTest
+import androidx.test.runner.AndroidJUnit4
+import com.android.testutils.assertParcelSane
+import org.junit.Assert.assertEquals
+import org.junit.Assert.assertFalse
+import org.junit.Assert.assertNotEquals
+import org.junit.Assert.assertTrue
+import org.junit.Test
+import org.junit.runner.RunWith
+
+private const val TEST_SCORE = 80
+private const val KEY_DEFAULT_CAPABILITIES = "DEFAULT_CAPABILITIES"
+
+@RunWith(AndroidJUnit4::class)
+@SmallTest
+class NetworkScoreTest {
+    @Test
+    fun testParcelNetworkScore() {
+        val networkScore = NetworkScore()
+        val defaultCap = NetworkCapabilities()
+        networkScore.putExtension(KEY_DEFAULT_CAPABILITIES, defaultCap)
+        assertEquals(defaultCap, networkScore.getExtension(KEY_DEFAULT_CAPABILITIES))
+        networkScore.putIntExtension(NetworkScore.LEGACY_SCORE, TEST_SCORE)
+        assertEquals(TEST_SCORE, networkScore.getIntExtension(NetworkScore.LEGACY_SCORE))
+        assertParcelSane(networkScore, 1)
+    }
+
+    @Test
+    fun testNullKeyAndValue() {
+        val networkScore = NetworkScore()
+        val defaultCap = NetworkCapabilities()
+        networkScore.putIntExtension(null, TEST_SCORE)
+        assertEquals(TEST_SCORE, networkScore.getIntExtension(null))
+        networkScore.putExtension(null, defaultCap)
+        assertEquals(defaultCap, networkScore.getExtension(null))
+        networkScore.putExtension(null, null)
+        val result: Parcelable? = networkScore.getExtension(null)
+        assertEquals(null, result)
+    }
+
+    @Test
+    fun testRemoveExtension() {
+        val networkScore = NetworkScore()
+        val defaultCap = NetworkCapabilities()
+        networkScore.putExtension(KEY_DEFAULT_CAPABILITIES, defaultCap)
+        networkScore.putIntExtension(NetworkScore.LEGACY_SCORE, TEST_SCORE)
+        assertEquals(defaultCap, networkScore.getExtension(KEY_DEFAULT_CAPABILITIES))
+        assertEquals(TEST_SCORE, networkScore.getIntExtension(NetworkScore.LEGACY_SCORE))
+        networkScore.removeExtension(KEY_DEFAULT_CAPABILITIES)
+        networkScore.removeExtension(NetworkScore.LEGACY_SCORE)
+        val result: Parcelable? = networkScore.getExtension(KEY_DEFAULT_CAPABILITIES)
+        assertEquals(null, result)
+        assertEquals(0, networkScore.getIntExtension(NetworkScore.LEGACY_SCORE))
+    }
+
+    @Test
+    fun testEqualsNetworkScore() {
+        val ns1 = NetworkScore()
+        val ns2 = NetworkScore()
+        assertTrue(ns1.equals(ns2))
+        assertEquals(ns1.hashCode(), ns2.hashCode())
+
+        ns1.putIntExtension(NetworkScore.LEGACY_SCORE, TEST_SCORE)
+        assertFalse(ns1.equals(ns2))
+        assertNotEquals(ns1.hashCode(), ns2.hashCode())
+        ns2.putIntExtension(NetworkScore.LEGACY_SCORE, TEST_SCORE)
+        assertTrue(ns1.equals(ns2))
+        assertEquals(ns1.hashCode(), ns2.hashCode())
+
+        val defaultCap = NetworkCapabilities()
+        ns1.putExtension(KEY_DEFAULT_CAPABILITIES, defaultCap)
+        assertFalse(ns1.equals(ns2))
+        assertNotEquals(ns1.hashCode(), ns2.hashCode())
+        ns2.putExtension(KEY_DEFAULT_CAPABILITIES, defaultCap)
+        assertTrue(ns1.equals(ns2))
+        assertEquals(ns1.hashCode(), ns2.hashCode())
+
+        ns1.putIntExtension(null, 10)
+        assertFalse(ns1.equals(ns2))
+        assertNotEquals(ns1.hashCode(), ns2.hashCode())
+        ns2.putIntExtension(null, 10)
+        assertTrue(ns1.equals(ns2))
+        assertEquals(ns1.hashCode(), ns2.hashCode())
+    }
+}
diff --git a/tests/net/integration/AndroidManifest.xml b/tests/net/integration/AndroidManifest.xml
index 91b3cd9..4dd3b5a 100644
--- a/tests/net/integration/AndroidManifest.xml
+++ b/tests/net/integration/AndroidManifest.xml
@@ -17,7 +17,6 @@
  */
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-          xmlns:tools="http://schemas.android.com/tools"
           package="com.android.server.net.integrationtests">
 
     <!-- For ConnectivityService registerReceiverAsUser (receiving broadcasts) -->
@@ -26,13 +25,19 @@
     <uses-permission android:name="android.permission.MANAGE_USERS" />
     <!-- ConnectivityService sends notifications to BatteryStats -->
     <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
+    <!-- Reading network status -->
+    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+    <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
+    <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
+    <!-- Reading DeviceConfig flags -->
+    <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />
     <application android:debuggable="true">
         <uses-library android:name="android.test.runner" />
 
         <!-- This manifest is merged with the base manifest of the real NetworkStack app.
              Remove the NetworkStackService from the base (real) manifest, and replace with a test
              service that responds to the same intent -->
-        <service android:name="com.android.server.NetworkStackService" tools:node="remove"/>
         <service android:name=".TestNetworkStackService"
                  android:process="com.android.server.net.integrationtests.testnetworkstack">
             <intent-filter>
@@ -45,9 +50,9 @@
                 <action android:name=".INetworkStackInstrumentation"/>
             </intent-filter>
         </service>
-        <service tools:replace="android:process"
-                 android:name="com.android.server.connectivity.ipmemorystore.RegularMaintenanceJobService"
-                 android:process="com.android.server.net.integrationtests.testnetworkstack"/>
+        <service android:name="com.android.server.connectivity.ipmemorystore.RegularMaintenanceJobService"
+                 android:process="com.android.server.net.integrationtests.testnetworkstack"
+                 android:permission="android.permission.BIND_JOB_SERVICE"/>
 
     </application>
 
diff --git a/tests/net/integration/src/com/android/server/net/integrationtests/ConnectivityServiceIntegrationTest.kt b/tests/net/integration/src/com/android/server/net/integrationtests/ConnectivityServiceIntegrationTest.kt
index 334b26d..25028fb 100644
--- a/tests/net/integration/src/com/android/server/net/integrationtests/ConnectivityServiceIntegrationTest.kt
+++ b/tests/net/integration/src/com/android/server/net/integrationtests/ConnectivityServiceIntegrationTest.kt
@@ -32,6 +32,7 @@
 import android.net.NetworkCapabilities.TRANSPORT_CELLULAR
 import android.net.NetworkRequest
 import android.net.TestNetworkStackClient
+import android.net.TetheringManager
 import android.net.metrics.IpConnectivityLog
 import android.os.ConditionVariable
 import android.os.IBinder
@@ -48,7 +49,6 @@
 import com.android.server.connectivity.IpConnectivityMetrics
 import com.android.server.connectivity.MockableSystemProperties
 import com.android.server.connectivity.ProxyTracker
-import com.android.server.connectivity.Tethering
 import com.android.server.net.NetworkPolicyManagerInternal
 import com.android.testutils.TestableNetworkCallback
 import org.junit.After
@@ -169,8 +169,7 @@
         val deps = spy(ConnectivityService.Dependencies())
         doReturn(networkStackClient).`when`(deps).networkStack
         doReturn(metricsLogger).`when`(deps).metricsLogger
-        doReturn(mock(Tethering::class.java)).`when`(deps).makeTethering(
-                any(), any(), any(), any(), any())
+        doReturn(mock(TetheringManager::class.java)).`when`(deps).getTetheringManager()
         doReturn(mock(ProxyTracker::class.java)).`when`(deps).makeProxyTracker(any(), any())
         doReturn(mock(MockableSystemProperties::class.java)).`when`(deps).systemProperties
         doReturn(TestNetIdManager()).`when`(deps).makeNetIdManager()
diff --git a/tests/net/integration/src/com/android/server/net/integrationtests/TestNetworkStackService.kt b/tests/net/integration/src/com/android/server/net/integrationtests/TestNetworkStackService.kt
index 8e4a9dd..490c467 100644
--- a/tests/net/integration/src/com/android/server/net/integrationtests/TestNetworkStackService.kt
+++ b/tests/net/integration/src/com/android/server/net/integrationtests/TestNetworkStackService.kt
@@ -25,6 +25,7 @@
 import android.net.util.SharedLog
 import android.os.IBinder
 import com.android.networkstack.metrics.DataStallStatsUtils
+import com.android.networkstack.netlink.TcpSocketTracker
 import com.android.server.NetworkStackService.NetworkMonitorConnector
 import com.android.server.NetworkStackService.NetworkStackConnector
 import com.android.server.connectivity.NetworkMonitor
@@ -88,7 +89,8 @@
                     this.network,
                     mock(IpConnectivityLog::class.java), mock(SharedLog::class.java),
                     NetworkMonitorDeps(privateDnsBypassNetwork),
-                    mock(DataStallStatsUtils::class.java))
+                    mock(DataStallStatsUtils::class.java),
+                    mock(TcpSocketTracker::class.java))
             cb.onNetworkMonitorCreated(NetworkMonitorConnector(nm, TestPermissionChecker()))
         }
     }
diff --git a/tests/net/java/android/net/ip/InterfaceControllerTest.java b/tests/net/java/android/net/ip/InterfaceControllerTest.java
deleted file mode 100644
index 7a56b3a..0000000
--- a/tests/net/java/android/net/ip/InterfaceControllerTest.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-package android.net.ip;
-
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-import android.net.INetd;
-import android.net.InetAddresses;
-import android.net.InterfaceConfigurationParcel;
-import android.net.LinkAddress;
-import android.net.util.SharedLog;
-
-import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Captor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class InterfaceControllerTest {
-    private static final String TEST_IFACE = "testif";
-    private static final String TEST_IPV4_ADDR = "192.168.123.28";
-    private static final int TEST_PREFIXLENGTH = 31;
-
-    @Mock private INetd mNetd;
-    @Mock private SharedLog mLog;
-    @Captor private ArgumentCaptor<InterfaceConfigurationParcel> mConfigCaptor;
-
-    private InterfaceController mController;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        mController = new InterfaceController(TEST_IFACE, mNetd, mLog);
-
-        doNothing().when(mNetd).interfaceSetCfg(mConfigCaptor.capture());
-    }
-
-    @Test
-    public void testSetIPv4Address() throws Exception {
-        mController.setIPv4Address(
-                new LinkAddress(InetAddresses.parseNumericAddress(TEST_IPV4_ADDR),
-                        TEST_PREFIXLENGTH));
-        verify(mNetd, times(1)).interfaceSetCfg(any());
-        final InterfaceConfigurationParcel parcel = mConfigCaptor.getValue();
-        assertEquals(TEST_IFACE, parcel.ifName);
-        assertEquals(TEST_IPV4_ADDR, parcel.ipv4Addr);
-        assertEquals(TEST_PREFIXLENGTH, parcel.prefixLength);
-        assertEquals("", parcel.hwAddr);
-        assertArrayEquals(new String[0], parcel.flags);
-    }
-
-    @Test
-    public void testClearIPv4Address() throws Exception {
-        mController.clearIPv4Address();
-        verify(mNetd, times(1)).interfaceSetCfg(any());
-        final InterfaceConfigurationParcel parcel = mConfigCaptor.getValue();
-        assertEquals(TEST_IFACE, parcel.ifName);
-        assertEquals("0.0.0.0", parcel.ipv4Addr);
-        assertEquals(0, parcel.prefixLength);
-        assertEquals("", parcel.hwAddr);
-        assertArrayEquals(new String[0], parcel.flags);
-    }
-}
diff --git a/tests/net/java/android/net/netlink/ConntrackMessageTest.java b/tests/net/java/android/net/netlink/ConntrackMessageTest.java
deleted file mode 100644
index 5c86757..0000000
--- a/tests/net/java/android/net/netlink/ConntrackMessageTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * 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.
- */
-
-package android.net.netlink;
-
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assume.assumeTrue;
-
-import android.system.OsConstants;
-
-import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import libcore.util.HexEncoding;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.net.Inet4Address;
-import java.net.InetAddress;
-import java.nio.ByteOrder;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class ConntrackMessageTest {
-    private static final boolean USING_LE = (ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN);
-
-    // Example 1: TCP (192.168.43.209, 44333) -> (23.211.13.26, 443)
-    public static final String CT_V4UPDATE_TCP_HEX =
-            // struct nlmsghdr
-            "50000000" +      // length = 80
-            "0001" +          // type = (1 << 8) | 0
-            "0501" +          // flags
-            "01000000" +      // seqno = 1
-            "00000000" +      // pid = 0
-            // struct nfgenmsg
-            "02" +            // nfgen_family  = AF_INET
-            "00" +            // version = NFNETLINK_V0
-            "0000" +          // res_id
-            // struct nlattr
-            "3400" +          // nla_len = 52
-            "0180" +          // nla_type = nested CTA_TUPLE_ORIG
-                // struct nlattr
-                "1400" +      // nla_len = 20
-                "0180" +      // nla_type = nested CTA_TUPLE_IP
-                    "0800 0100 C0A82BD1" +  // nla_type=CTA_IP_V4_SRC, ip=192.168.43.209
-                    "0800 0200 17D30D1A" +  // nla_type=CTA_IP_V4_DST, ip=23.211.13.26
-                // struct nlattr
-                "1C00" +      // nla_len = 28
-                "0280" +      // nla_type = nested CTA_TUPLE_PROTO
-                    "0500 0100 06 000000" +  // nla_type=CTA_PROTO_NUM, proto=6
-                    "0600 0200 AD2D 0000" +  // nla_type=CTA_PROTO_SRC_PORT, port=44333 (big endian)
-                    "0600 0300 01BB 0000" +  // nla_type=CTA_PROTO_DST_PORT, port=443 (big endian)
-            // struct nlattr
-            "0800" +          // nla_len = 8
-            "0700" +          // nla_type = CTA_TIMEOUT
-            "00069780";       // nla_value = 432000 (big endian)
-    public static final byte[] CT_V4UPDATE_TCP_BYTES =
-            HexEncoding.decode(CT_V4UPDATE_TCP_HEX.replaceAll(" ", "").toCharArray(), false);
-
-    // Example 2: UDP (100.96.167.146, 37069) -> (216.58.197.10, 443)
-    public static final String CT_V4UPDATE_UDP_HEX =
-            // struct nlmsghdr
-            "50000000" +      // length = 80
-            "0001" +          // type = (1 << 8) | 0
-            "0501" +          // flags
-            "01000000" +      // seqno = 1
-            "00000000" +      // pid = 0
-            // struct nfgenmsg
-            "02" +            // nfgen_family  = AF_INET
-            "00" +            // version = NFNETLINK_V0
-            "0000" +          // res_id
-            // struct nlattr
-            "3400" +          // nla_len = 52
-            "0180" +          // nla_type = nested CTA_TUPLE_ORIG
-                // struct nlattr
-                "1400" +      // nla_len = 20
-                "0180" +      // nla_type = nested CTA_TUPLE_IP
-                    "0800 0100 6460A792" +  // nla_type=CTA_IP_V4_SRC, ip=100.96.167.146
-                    "0800 0200 D83AC50A" +  // nla_type=CTA_IP_V4_DST, ip=216.58.197.10
-                // struct nlattr
-                "1C00" +      // nla_len = 28
-                "0280" +      // nla_type = nested CTA_TUPLE_PROTO
-                    "0500 0100 11 000000" +  // nla_type=CTA_PROTO_NUM, proto=17
-                    "0600 0200 90CD 0000" +  // nla_type=CTA_PROTO_SRC_PORT, port=37069 (big endian)
-                    "0600 0300 01BB 0000" +  // nla_type=CTA_PROTO_DST_PORT, port=443 (big endian)
-            // struct nlattr
-            "0800" +          // nla_len = 8
-            "0700" +          // nla_type = CTA_TIMEOUT
-            "000000B4";       // nla_value = 180 (big endian)
-    public static final byte[] CT_V4UPDATE_UDP_BYTES =
-            HexEncoding.decode(CT_V4UPDATE_UDP_HEX.replaceAll(" ", "").toCharArray(), false);
-
-    @Test
-    public void testConntrackIPv4TcpTimeoutUpdate() throws Exception {
-        assumeTrue(USING_LE);
-
-        final byte[] tcp = ConntrackMessage.newIPv4TimeoutUpdateRequest(
-                OsConstants.IPPROTO_TCP,
-                (Inet4Address) InetAddress.getByName("192.168.43.209"), 44333,
-                (Inet4Address) InetAddress.getByName("23.211.13.26"), 443,
-                432000);
-        assertArrayEquals(CT_V4UPDATE_TCP_BYTES, tcp);
-    }
-
-    @Test
-    public void testConntrackIPv4UdpTimeoutUpdate() throws Exception {
-        assumeTrue(USING_LE);
-
-        final byte[] udp = ConntrackMessage.newIPv4TimeoutUpdateRequest(
-                OsConstants.IPPROTO_UDP,
-                (Inet4Address) InetAddress.getByName("100.96.167.146"), 37069,
-                (Inet4Address) InetAddress.getByName("216.58.197.10"), 443,
-                180);
-        assertArrayEquals(CT_V4UPDATE_UDP_BYTES, udp);
-    }
-}
diff --git a/tests/net/java/android/net/netlink/InetDiagSocketTest.java b/tests/net/java/android/net/netlink/InetDiagSocketTest.java
deleted file mode 100644
index 1f2bb0a..0000000
--- a/tests/net/java/android/net/netlink/InetDiagSocketTest.java
+++ /dev/null
@@ -1,434 +0,0 @@
-/*
- * Copyright (C) 2018 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.
- */
-
-package android.net.netlink;
-
-import static android.net.netlink.StructNlMsgHdr.NLM_F_DUMP;
-import static android.net.netlink.StructNlMsgHdr.NLM_F_REQUEST;
-import static android.system.OsConstants.AF_INET;
-import static android.system.OsConstants.AF_INET6;
-import static android.system.OsConstants.IPPROTO_TCP;
-import static android.system.OsConstants.IPPROTO_UDP;
-import static android.system.OsConstants.SOCK_DGRAM;
-import static android.system.OsConstants.SOCK_STREAM;
-
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import android.app.Instrumentation;
-import android.content.Context;
-import android.net.ConnectivityManager;
-import android.net.netlink.StructNlMsgHdr;
-import android.os.Process;
-import android.system.Os;
-
-import androidx.test.InstrumentationRegistry;
-import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import libcore.util.HexEncoding;
-
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.io.FileDescriptor;
-import java.net.Inet4Address;
-import java.net.Inet6Address;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class InetDiagSocketTest {
-    private final String TAG = "InetDiagSocketTest";
-    private ConnectivityManager mCm;
-    private Context mContext;
-    private final static int SOCKET_TIMEOUT_MS = 100;
-
-    @Before
-    public void setUp() throws Exception {
-        Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
-        mContext = instrumentation.getTargetContext();
-        mCm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
-    }
-
-    private class Connection {
-        public int socketDomain;
-        public int socketType;
-        public InetAddress localAddress;
-        public InetAddress remoteAddress;
-        public InetAddress localhostAddress;
-        public InetSocketAddress local;
-        public InetSocketAddress remote;
-        public int protocol;
-        public FileDescriptor localFd;
-        public FileDescriptor remoteFd;
-
-        public FileDescriptor createSocket() throws Exception {
-            return Os.socket(socketDomain, socketType, protocol);
-        }
-
-        public Connection(String to, String from) throws Exception {
-            remoteAddress = InetAddress.getByName(to);
-            if (from != null) {
-                localAddress = InetAddress.getByName(from);
-            } else {
-                localAddress = (remoteAddress instanceof Inet4Address) ?
-                        Inet4Address.getByName("localhost") : Inet6Address.getByName("::");
-            }
-            if ((localAddress instanceof Inet4Address) && (remoteAddress instanceof Inet4Address)) {
-                socketDomain = AF_INET;
-                localhostAddress = Inet4Address.getByName("localhost");
-            } else {
-                socketDomain = AF_INET6;
-                localhostAddress = Inet6Address.getByName("::");
-            }
-        }
-
-        public void close() throws Exception {
-            Os.close(localFd);
-        }
-    }
-
-    private class TcpConnection extends Connection {
-        public TcpConnection(String to, String from) throws Exception {
-            super(to, from);
-            protocol = IPPROTO_TCP;
-            socketType = SOCK_STREAM;
-
-            remoteFd = createSocket();
-            Os.bind(remoteFd, remoteAddress, 0);
-            Os.listen(remoteFd, 10);
-            int remotePort = ((InetSocketAddress) Os.getsockname(remoteFd)).getPort();
-
-            localFd = createSocket();
-            Os.bind(localFd, localAddress, 0);
-            Os.connect(localFd, remoteAddress, remotePort);
-
-            local = (InetSocketAddress) Os.getsockname(localFd);
-            remote = (InetSocketAddress) Os.getpeername(localFd);
-        }
-
-        public void close() throws Exception {
-            super.close();
-            Os.close(remoteFd);
-        }
-    }
-    private class UdpConnection extends Connection {
-        public UdpConnection(String to, String from) throws Exception {
-            super(to, from);
-            protocol = IPPROTO_UDP;
-            socketType = SOCK_DGRAM;
-
-            remoteFd = null;
-            localFd = createSocket();
-            Os.bind(localFd, localAddress, 0);
-
-            Os.connect(localFd, remoteAddress, 7);
-            local = (InetSocketAddress) Os.getsockname(localFd);
-            remote = new InetSocketAddress(remoteAddress, 7);
-        }
-    }
-
-    private void checkConnectionOwnerUid(int protocol, InetSocketAddress local,
-                                         InetSocketAddress remote, boolean expectSuccess) {
-        final int uid = mCm.getConnectionOwnerUid(protocol, local, remote);
-
-        if (expectSuccess) {
-            assertEquals(Process.myUid(), uid);
-        } else {
-            assertNotEquals(Process.myUid(), uid);
-        }
-    }
-
-    private int findLikelyFreeUdpPort(UdpConnection conn) throws Exception {
-        UdpConnection udp = new UdpConnection(conn.remoteAddress.getHostAddress(),
-                conn.localAddress.getHostAddress());
-        final int localPort = udp.local.getPort();
-        udp.close();
-        return localPort;
-    }
-
-    /**
-     * Create a test connection for UDP and TCP sockets and verify that this
-     * {protocol, local, remote} socket result in receiving a valid UID.
-     */
-    public void checkGetConnectionOwnerUid(String to, String from) throws Exception {
-        TcpConnection tcp = new TcpConnection(to, from);
-        checkConnectionOwnerUid(tcp.protocol, tcp.local, tcp.remote, true);
-        checkConnectionOwnerUid(IPPROTO_UDP, tcp.local, tcp.remote, false);
-        checkConnectionOwnerUid(tcp.protocol, new InetSocketAddress(0), tcp.remote, false);
-        checkConnectionOwnerUid(tcp.protocol, tcp.local, new InetSocketAddress(0), false);
-        tcp.close();
-
-        UdpConnection udp = new UdpConnection(to,from);
-        checkConnectionOwnerUid(udp.protocol, udp.local, udp.remote, true);
-        checkConnectionOwnerUid(IPPROTO_TCP, udp.local, udp.remote, false);
-        checkConnectionOwnerUid(udp.protocol, new InetSocketAddress(findLikelyFreeUdpPort(udp)),
-                udp.remote, false);
-        udp.close();
-    }
-
-    @Test
-    public void testGetConnectionOwnerUid() throws Exception {
-        checkGetConnectionOwnerUid("::", null);
-        checkGetConnectionOwnerUid("::", "::");
-        checkGetConnectionOwnerUid("0.0.0.0", null);
-        checkGetConnectionOwnerUid("0.0.0.0", "0.0.0.0");
-        checkGetConnectionOwnerUid("127.0.0.1", null);
-        checkGetConnectionOwnerUid("127.0.0.1", "127.0.0.2");
-        checkGetConnectionOwnerUid("::1", null);
-        checkGetConnectionOwnerUid("::1", "::1");
-    }
-
-    @Ignore("Times out on Marlin/Sailfish")
-    /* Verify fix for b/141603906 */
-    @Test
-    public void testB141603906() throws Exception {
-        final InetSocketAddress src = new InetSocketAddress(0);
-        final InetSocketAddress dst = new InetSocketAddress(0);
-        for (int i = 1; i <= 100000; i++) {
-            mCm.getConnectionOwnerUid(IPPROTO_TCP, src, dst);
-        }
-    }
-
-    // Hexadecimal representation of InetDiagReqV2 request.
-    private static final String INET_DIAG_REQ_V2_UDP_INET4_HEX =
-            // struct nlmsghdr
-            "48000000" +     // length = 72
-            "1400" +         // type = SOCK_DIAG_BY_FAMILY
-            "0103" +         // flags = NLM_F_REQUEST | NLM_F_DUMP
-            "00000000" +     // seqno
-            "00000000" +     // pid (0 == kernel)
-            // struct inet_diag_req_v2
-            "02" +           // family = AF_INET
-            "11" +           // protcol = IPPROTO_UDP
-            "00" +           // idiag_ext
-            "00" +           // pad
-            "ffffffff" +     // idiag_states
-            // inet_diag_sockid
-            "a5de" +         // idiag_sport = 42462
-            "b971" +         // idiag_dport = 47473
-            "0a006402000000000000000000000000" + // idiag_src = 10.0.100.2
-            "08080808000000000000000000000000" + // idiag_dst = 8.8.8.8
-            "00000000" +     // idiag_if
-            "ffffffffffffffff"; // idiag_cookie = INET_DIAG_NOCOOKIE
-    private static final byte[] INET_DIAG_REQ_V2_UDP_INET4_BYTES =
-            HexEncoding.decode(INET_DIAG_REQ_V2_UDP_INET4_HEX.toCharArray(), false);
-
-    @Test
-    public void testInetDiagReqV2UdpInet4() throws Exception {
-        InetSocketAddress local = new InetSocketAddress(InetAddress.getByName("10.0.100.2"),
-                42462);
-        InetSocketAddress remote = new InetSocketAddress(InetAddress.getByName("8.8.8.8"),
-                47473);
-        final byte[] msg = InetDiagMessage.InetDiagReqV2(IPPROTO_UDP, local, remote, AF_INET,
-                (short) (NLM_F_REQUEST | NLM_F_DUMP));
-        assertArrayEquals(INET_DIAG_REQ_V2_UDP_INET4_BYTES, msg);
-    }
-
-    // Hexadecimal representation of InetDiagReqV2 request.
-    private static final String INET_DIAG_REQ_V2_TCP_INET6_HEX =
-            // struct nlmsghdr
-            "48000000" +     // length = 72
-            "1400" +         // type = SOCK_DIAG_BY_FAMILY
-            "0100" +         // flags = NLM_F_REQUEST
-            "00000000" +     // seqno
-            "00000000" +     // pid (0 == kernel)
-            // struct inet_diag_req_v2
-            "0a" +           // family = AF_INET6
-            "06" +           // protcol = IPPROTO_TCP
-            "00" +           // idiag_ext
-            "00" +           // pad
-            "ffffffff" +     // idiag_states
-                // inet_diag_sockid
-                "a5de" +         // idiag_sport = 42462
-                "b971" +         // idiag_dport = 47473
-                "fe8000000000000086c9b2fffe6aed4b" + // idiag_src = fe80::86c9:b2ff:fe6a:ed4b
-                "08080808000000000000000000000000" + // idiag_dst = 8.8.8.8
-                "00000000" +     // idiag_if
-                "ffffffffffffffff"; // idiag_cookie = INET_DIAG_NOCOOKIE
-    private static final byte[] INET_DIAG_REQ_V2_TCP_INET6_BYTES =
-            HexEncoding.decode(INET_DIAG_REQ_V2_TCP_INET6_HEX.toCharArray(), false);
-
-    @Test
-    public void testInetDiagReqV2TcpInet6() throws Exception {
-        InetSocketAddress local = new InetSocketAddress(
-                InetAddress.getByName("fe80::86c9:b2ff:fe6a:ed4b"), 42462);
-        InetSocketAddress remote = new InetSocketAddress(InetAddress.getByName("8.8.8.8"),
-                47473);
-        byte[] msg = InetDiagMessage.InetDiagReqV2(IPPROTO_TCP, local, remote, AF_INET6,
-                NLM_F_REQUEST);
-
-        assertArrayEquals(INET_DIAG_REQ_V2_TCP_INET6_BYTES, msg);
-    }
-
-    // Hexadecimal representation of InetDiagReqV2 request with extension, INET_DIAG_INFO.
-    private static final String INET_DIAG_REQ_V2_TCP_INET_INET_DIAG_HEX =
-            // struct nlmsghdr
-            "48000000" +     // length = 72
-            "1400" +         // type = SOCK_DIAG_BY_FAMILY
-            "0100" +         // flags = NLM_F_REQUEST
-            "00000000" +     // seqno
-            "00000000" +     // pid (0 == kernel)
-            // struct inet_diag_req_v2
-            "02" +           // family = AF_INET
-            "06" +           // protcol = IPPROTO_TCP
-            "02" +           // idiag_ext = INET_DIAG_INFO
-            "00" +           // pad
-            "ffffffff" +   // idiag_states
-            // inet_diag_sockid
-            "3039" +         // idiag_sport = 12345
-            "d431" +         // idiag_dport = 54321
-            "01020304000000000000000000000000" + // idiag_src = 1.2.3.4
-            "08080404000000000000000000000000" + // idiag_dst = 8.8.4.4
-            "00000000" +     // idiag_if
-            "ffffffffffffffff"; // idiag_cookie = INET_DIAG_NOCOOKIE
-
-    private static final byte[] INET_DIAG_REQ_V2_TCP_INET_INET_DIAG_BYTES =
-            HexEncoding.decode(INET_DIAG_REQ_V2_TCP_INET_INET_DIAG_HEX.toCharArray(), false);
-    private static final int TCP_ALL_STATES = 0xffffffff;
-    @Test
-    public void testInetDiagReqV2TcpInetWithExt() throws Exception {
-        InetSocketAddress local = new InetSocketAddress(
-                InetAddress.getByName("1.2.3.4"), 12345);
-        InetSocketAddress remote = new InetSocketAddress(InetAddress.getByName("8.8.4.4"),
-                54321);
-        byte[] msg = InetDiagMessage.InetDiagReqV2(IPPROTO_TCP, local, remote, AF_INET,
-                NLM_F_REQUEST, 0 /* pad */, 2 /* idiagExt */, TCP_ALL_STATES);
-
-        assertArrayEquals(INET_DIAG_REQ_V2_TCP_INET_INET_DIAG_BYTES, msg);
-
-        local = new InetSocketAddress(
-                InetAddress.getByName("fe80::86c9:b2ff:fe6a:ed4b"), 42462);
-        remote = new InetSocketAddress(InetAddress.getByName("8.8.8.8"),
-                47473);
-        msg = InetDiagMessage.InetDiagReqV2(IPPROTO_TCP, local, remote, AF_INET6,
-                NLM_F_REQUEST, 0 /* pad */, 0 /* idiagExt */, TCP_ALL_STATES);
-
-        assertArrayEquals(INET_DIAG_REQ_V2_TCP_INET6_BYTES, msg);
-    }
-
-    // Hexadecimal representation of InetDiagReqV2 request with no socket specified.
-    private static final String INET_DIAG_REQ_V2_TCP_INET6_NO_ID_SPECIFIED_HEX =
-            // struct nlmsghdr
-            "48000000" +     // length = 72
-            "1400" +         // type = SOCK_DIAG_BY_FAMILY
-            "0100" +         // flags = NLM_F_REQUEST
-            "00000000" +     // seqno
-            "00000000" +     // pid (0 == kernel)
-            // struct inet_diag_req_v2
-            "0a" +           // family = AF_INET6
-            "06" +           // protcol = IPPROTO_TCP
-            "00" +           // idiag_ext
-            "00" +           // pad
-            "ffffffff" +     // idiag_states
-            // inet_diag_sockid
-            "0000" +         // idiag_sport
-            "0000" +         // idiag_dport
-            "00000000000000000000000000000000" + // idiag_src
-            "00000000000000000000000000000000" + // idiag_dst
-            "00000000" +     // idiag_if
-            "0000000000000000"; // idiag_cookie
-
-    private static final byte[] INET_DIAG_REQ_V2_TCP_INET6_NO_ID_SPECIFED_BYTES =
-            HexEncoding.decode(INET_DIAG_REQ_V2_TCP_INET6_NO_ID_SPECIFIED_HEX.toCharArray(), false);
-
-    @Test
-    public void testInetDiagReqV2TcpInet6NoIdSpecified() throws Exception {
-        InetSocketAddress local = new InetSocketAddress(
-                InetAddress.getByName("fe80::fe6a:ed4b"), 12345);
-        InetSocketAddress remote = new InetSocketAddress(InetAddress.getByName("8.8.4.4"),
-                54321);
-        // Verify no socket specified if either local or remote socket address is null.
-        byte[] msgExt = InetDiagMessage.InetDiagReqV2(IPPROTO_TCP, null, null, AF_INET6,
-                NLM_F_REQUEST, 0 /* pad */, 0 /* idiagExt */, TCP_ALL_STATES);
-        byte[] msg;
-        try {
-            msg = InetDiagMessage.InetDiagReqV2(IPPROTO_TCP, null, remote, AF_INET6,
-                    NLM_F_REQUEST);
-            fail("Both remote and local should be null, expected UnknownHostException");
-        } catch (NullPointerException e) {
-        }
-
-        try {
-            msg = InetDiagMessage.InetDiagReqV2(IPPROTO_TCP, local, null, AF_INET6,
-                    NLM_F_REQUEST, 0 /* pad */, 0 /* idiagExt */, TCP_ALL_STATES);
-            fail("Both remote and local should be null, expected UnknownHostException");
-        } catch (NullPointerException e) {
-        }
-
-        msg = InetDiagMessage.InetDiagReqV2(IPPROTO_TCP, null, null, AF_INET6,
-                NLM_F_REQUEST, 0 /* pad */, 0 /* idiagExt */, TCP_ALL_STATES);
-        assertArrayEquals(INET_DIAG_REQ_V2_TCP_INET6_NO_ID_SPECIFED_BYTES, msg);
-        assertArrayEquals(INET_DIAG_REQ_V2_TCP_INET6_NO_ID_SPECIFED_BYTES, msgExt);
-    }
-
-    // Hexadecimal representation of InetDiagReqV2 request.
-    private static final String INET_DIAG_MSG_HEX =
-            // struct nlmsghdr
-            "58000000" +     // length = 88
-            "1400" +         // type = SOCK_DIAG_BY_FAMILY
-            "0200" +         // flags = NLM_F_MULTI
-            "00000000" +     // seqno
-            "f5220000" +     // pid (0 == kernel)
-            // struct inet_diag_msg
-            "0a" +           // family = AF_INET6
-            "01" +           // idiag_state
-            "00" +           // idiag_timer
-            "00" +           // idiag_retrans
-                // inet_diag_sockid
-                "a817" +     // idiag_sport = 43031
-                "960f" +     // idiag_dport = 38415
-                "fe8000000000000086c9b2fffe6aed4b" + // idiag_src = fe80::86c9:b2ff:fe6a:ed4b
-                "00000000000000000000ffff08080808" + // idiag_dst = 8.8.8.8
-                "00000000" + // idiag_if
-                "ffffffffffffffff" + // idiag_cookie = INET_DIAG_NOCOOKIE
-            "00000000" +     // idiag_expires
-            "00000000" +     // idiag_rqueue
-            "00000000" +     // idiag_wqueue
-            "a3270000" +     // idiag_uid
-            "A57E1900";      // idiag_inode
-    private static final byte[] INET_DIAG_MSG_BYTES =
-            HexEncoding.decode(INET_DIAG_MSG_HEX.toCharArray(), false);
-
-    @Test
-    public void testParseInetDiagResponse() throws Exception {
-        final ByteBuffer byteBuffer = ByteBuffer.wrap(INET_DIAG_MSG_BYTES);
-        byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
-        final NetlinkMessage msg = NetlinkMessage.parse(byteBuffer);
-        assertNotNull(msg);
-
-        assertTrue(msg instanceof InetDiagMessage);
-        final InetDiagMessage inetDiagMsg = (InetDiagMessage) msg;
-        assertEquals(10147, inetDiagMsg.mStructInetDiagMsg.idiag_uid);
-
-        final StructNlMsgHdr hdr = inetDiagMsg.getHeader();
-        assertNotNull(hdr);
-        assertEquals(NetlinkConstants.SOCK_DIAG_BY_FAMILY, hdr.nlmsg_type);
-        assertEquals(StructNlMsgHdr.NLM_F_MULTI, hdr.nlmsg_flags);
-        assertEquals(0, hdr.nlmsg_seq);
-        assertEquals(8949, hdr.nlmsg_pid);
-    }
-}
diff --git a/tests/net/java/android/net/netlink/NetlinkErrorMessageTest.java b/tests/net/java/android/net/netlink/NetlinkErrorMessageTest.java
deleted file mode 100644
index 44ab605..0000000
--- a/tests/net/java/android/net/netlink/NetlinkErrorMessageTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * 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.
- */
-
-package android.net.netlink;
-
-import static android.net.netlink.StructNlMsgHdr.NLM_F_ACK;
-import static android.net.netlink.StructNlMsgHdr.NLM_F_REPLACE;
-import static android.net.netlink.StructNlMsgHdr.NLM_F_REQUEST;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import android.net.netlink.NetlinkConstants;
-import android.net.netlink.NetlinkErrorMessage;
-import android.net.netlink.NetlinkMessage;
-import android.net.netlink.StructNlMsgErr;
-
-import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import libcore.util.HexEncoding;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class NetlinkErrorMessageTest {
-    private final String TAG = "NetlinkErrorMessageTest";
-
-    // Hexadecimal representation of packet capture.
-    public static final String NLM_ERROR_OK_HEX =
-            // struct nlmsghdr
-            "24000000" +     // length = 36
-            "0200"     +     // type = 2 (NLMSG_ERROR)
-            "0000"     +     // flags
-            "26350000" +     // seqno
-            "64100000" +     // pid = userspace process
-            // error integer
-            "00000000" +     // "errno" (0 == OK)
-            // struct nlmsghdr
-            "30000000" +     // length (48) of original request
-            "1C00"     +     // type = 28 (RTM_NEWNEIGH)
-            "0501"     +     // flags (NLM_F_REQUEST | NLM_F_ACK | NLM_F_REPLACE)
-            "26350000" +     // seqno
-            "00000000";      // pid = kernel
-    public static final byte[] NLM_ERROR_OK =
-            HexEncoding.decode(NLM_ERROR_OK_HEX.toCharArray(), false);
-
-    @Test
-    public void testParseNlmErrorOk() {
-        final ByteBuffer byteBuffer = ByteBuffer.wrap(NLM_ERROR_OK);
-        byteBuffer.order(ByteOrder.LITTLE_ENDIAN);  // For testing.
-        final NetlinkMessage msg = NetlinkMessage.parse(byteBuffer);
-        assertNotNull(msg);
-        assertTrue(msg instanceof NetlinkErrorMessage);
-        final NetlinkErrorMessage errorMsg = (NetlinkErrorMessage) msg;
-
-        final StructNlMsgHdr hdr = errorMsg.getHeader();
-        assertNotNull(hdr);
-        assertEquals(36, hdr.nlmsg_len);
-        assertEquals(NetlinkConstants.NLMSG_ERROR, hdr.nlmsg_type);
-        assertEquals(0, hdr.nlmsg_flags);
-        assertEquals(13606, hdr.nlmsg_seq);
-        assertEquals(4196, hdr.nlmsg_pid);
-
-        final StructNlMsgErr err = errorMsg.getNlMsgError();
-        assertNotNull(err);
-        assertEquals(0, err.error);
-        assertNotNull(err.msg);
-        assertEquals(48, err.msg.nlmsg_len);
-        assertEquals(NetlinkConstants.RTM_NEWNEIGH, err.msg.nlmsg_type);
-        assertEquals((NLM_F_REQUEST | NLM_F_ACK | NLM_F_REPLACE), err.msg.nlmsg_flags);
-        assertEquals(13606, err.msg.nlmsg_seq);
-        assertEquals(0, err.msg.nlmsg_pid);
-    }
-}
diff --git a/tests/net/java/android/net/netlink/NetlinkSocketTest.java b/tests/net/java/android/net/netlink/NetlinkSocketTest.java
deleted file mode 100644
index 3916578..0000000
--- a/tests/net/java/android/net/netlink/NetlinkSocketTest.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * 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.
- */
-
-package android.net.netlink;
-
-import static android.net.netlink.NetlinkSocket.DEFAULT_RECV_BUFSIZE;
-import static android.system.OsConstants.NETLINK_ROUTE;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import android.net.netlink.NetlinkSocket;
-import android.net.netlink.RtNetlinkNeighborMessage;
-import android.net.netlink.StructNlMsgHdr;
-import android.system.NetlinkSocketAddress;
-import android.system.Os;
-
-import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import libcore.io.IoUtils;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.io.FileDescriptor;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class NetlinkSocketTest {
-    private final String TAG = "NetlinkSocketTest";
-
-    @Test
-    public void testBasicWorkingGetNeighborsQuery() throws Exception {
-        final FileDescriptor fd = NetlinkSocket.forProto(NETLINK_ROUTE);
-        assertNotNull(fd);
-
-        NetlinkSocket.connectToKernel(fd);
-
-        final NetlinkSocketAddress localAddr = (NetlinkSocketAddress) Os.getsockname(fd);
-        assertNotNull(localAddr);
-        assertEquals(0, localAddr.getGroupsMask());
-        assertTrue(0 != localAddr.getPortId());
-
-        final int TEST_SEQNO = 5;
-        final byte[] req = RtNetlinkNeighborMessage.newGetNeighborsRequest(TEST_SEQNO);
-        assertNotNull(req);
-
-        final long TIMEOUT = 500;
-        assertEquals(req.length, NetlinkSocket.sendMessage(fd, req, 0, req.length, TIMEOUT));
-
-        int neighMessageCount = 0;
-        int doneMessageCount = 0;
-
-        while (doneMessageCount == 0) {
-            ByteBuffer response = NetlinkSocket.recvMessage(fd, DEFAULT_RECV_BUFSIZE, TIMEOUT);
-            assertNotNull(response);
-            assertTrue(StructNlMsgHdr.STRUCT_SIZE <= response.limit());
-            assertEquals(0, response.position());
-            assertEquals(ByteOrder.nativeOrder(), response.order());
-
-            // Verify the messages at least appears minimally reasonable.
-            while (response.remaining() > 0) {
-                final NetlinkMessage msg = NetlinkMessage.parse(response);
-                assertNotNull(msg);
-                final StructNlMsgHdr hdr = msg.getHeader();
-                assertNotNull(hdr);
-
-                if (hdr.nlmsg_type == NetlinkConstants.NLMSG_DONE) {
-                    doneMessageCount++;
-                    continue;
-                }
-
-                assertEquals(NetlinkConstants.RTM_NEWNEIGH, hdr.nlmsg_type);
-                assertTrue(msg instanceof RtNetlinkNeighborMessage);
-                assertTrue((hdr.nlmsg_flags & StructNlMsgHdr.NLM_F_MULTI) != 0);
-                assertEquals(TEST_SEQNO, hdr.nlmsg_seq);
-                assertEquals(localAddr.getPortId(), hdr.nlmsg_pid);
-
-                neighMessageCount++;
-            }
-        }
-
-        assertEquals(1, doneMessageCount);
-        // TODO: make sure this test passes sanely in airplane mode.
-        assertTrue(neighMessageCount > 0);
-
-        IoUtils.closeQuietly(fd);
-    }
-}
diff --git a/tests/net/java/android/net/netlink/RtNetlinkNeighborMessageTest.java b/tests/net/java/android/net/netlink/RtNetlinkNeighborMessageTest.java
deleted file mode 100644
index 8162522..0000000
--- a/tests/net/java/android/net/netlink/RtNetlinkNeighborMessageTest.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * 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.
- */
-
-package android.net.netlink;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import android.net.netlink.NetlinkConstants;
-import android.net.netlink.NetlinkMessage;
-import android.net.netlink.RtNetlinkNeighborMessage;
-import android.net.netlink.StructNdMsg;
-import android.net.netlink.StructNlMsgHdr;
-import android.system.OsConstants;
-
-import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import libcore.util.HexEncoding;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.net.Inet4Address;
-import java.net.InetAddress;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import java.util.Arrays;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class RtNetlinkNeighborMessageTest {
-    private final String TAG = "RtNetlinkNeighborMessageTest";
-
-    // Hexadecimal representation of packet capture.
-    public static final String RTM_DELNEIGH_HEX =
-            // struct nlmsghdr
-            "4c000000" +     // length = 76
-            "1d00" +         // type = 29 (RTM_DELNEIGH)
-            "0000" +         // flags
-            "00000000" +     // seqno
-            "00000000" +     // pid (0 == kernel)
-            // struct ndmsg
-            "02" +           // family
-            "00" +           // pad1
-            "0000" +         // pad2
-            "15000000" +     // interface index (21  == wlan0, on test device)
-            "0400" +         // NUD state (0x04 == NUD_STALE)
-            "00" +           // flags
-            "01" +           // type
-            // struct nlattr: NDA_DST
-            "0800" +         // length = 8
-            "0100" +         // type (1 == NDA_DST, for neighbor messages)
-            "c0a89ffe" +     // IPv4 address (== 192.168.159.254)
-            // struct nlattr: NDA_LLADDR
-            "0a00" +         // length = 10
-            "0200" +         // type (2 == NDA_LLADDR, for neighbor messages)
-            "00005e000164" + // MAC Address (== 00:00:5e:00:01:64)
-            "0000" +         // padding, for 4 byte alignment
-            // struct nlattr: NDA_PROBES
-            "0800" +         // length = 8
-            "0400" +         // type (4 == NDA_PROBES, for neighbor messages)
-            "01000000" +     // number of probes
-            // struct nlattr: NDA_CACHEINFO
-            "1400" +         // length = 20
-            "0300" +         // type (3 == NDA_CACHEINFO, for neighbor messages)
-            "05190000" +     // ndm_used, as "clock ticks ago"
-            "05190000" +     // ndm_confirmed, as "clock ticks ago"
-            "190d0000" +     // ndm_updated, as "clock ticks ago"
-            "00000000";      // ndm_refcnt
-    public static final byte[] RTM_DELNEIGH =
-            HexEncoding.decode(RTM_DELNEIGH_HEX.toCharArray(), false);
-
-    // Hexadecimal representation of packet capture.
-    public static final String RTM_NEWNEIGH_HEX =
-            // struct nlmsghdr
-            "58000000" +     // length = 88
-            "1c00" +         // type = 28 (RTM_NEWNEIGH)
-            "0000" +         // flags
-            "00000000" +     // seqno
-            "00000000" +     // pid (0 == kernel)
-            // struct ndmsg
-            "0a" +           // family
-            "00" +           // pad1
-            "0000" +         // pad2
-            "15000000" +     // interface index (21  == wlan0, on test device)
-            "0400" +         // NUD state (0x04 == NUD_STALE)
-            "80" +           // flags
-            "01" +           // type
-            // struct nlattr: NDA_DST
-            "1400" +         // length = 20
-            "0100" +         // type (1 == NDA_DST, for neighbor messages)
-            "fe8000000000000086c9b2fffe6aed4b" + // IPv6 address (== fe80::86c9:b2ff:fe6a:ed4b)
-            // struct nlattr: NDA_LLADDR
-            "0a00" +         // length = 10
-            "0200" +         // type (2 == NDA_LLADDR, for neighbor messages)
-            "84c9b26aed4b" + // MAC Address (== 84:c9:b2:6a:ed:4b)
-            "0000" +         // padding, for 4 byte alignment
-            // struct nlattr: NDA_PROBES
-            "0800" +         // length = 8
-            "0400" +         // type (4 == NDA_PROBES, for neighbor messages)
-            "01000000" +     // number of probes
-            // struct nlattr: NDA_CACHEINFO
-            "1400" +         // length = 20
-            "0300" +         // type (3 == NDA_CACHEINFO, for neighbor messages)
-            "eb0e0000" +     // ndm_used, as "clock ticks ago"
-            "861f0000" +     // ndm_confirmed, as "clock ticks ago"
-            "00000000" +     // ndm_updated, as "clock ticks ago"
-            "05000000";      // ndm_refcnt
-    public static final byte[] RTM_NEWNEIGH =
-            HexEncoding.decode(RTM_NEWNEIGH_HEX.toCharArray(), false);
-
-    // An example of the full response from an RTM_GETNEIGH query.
-    private static final String RTM_GETNEIGH_RESPONSE_HEX =
-            // <-- struct nlmsghr             -->|<-- struct ndmsg           -->|<-- struct nlattr: NDA_DST             -->|<-- NDA_LLADDR          -->|<-- NDA_PROBES -->|<-- NDA_CACHEINFO                         -->|
-            "58000000 1c00 0200 00000000 3e2b0000 0a 00 0000 15000000 4000 00 05 1400 0100 ff020000000000000000000000000001 0a00 0200 333300000001 0000 0800 0400 00000000 1400 0300 a2280000 32110000 32110000 01000000" +
-            "58000000 1c00 0200 00000000 3e2b0000 0a 00 0000 15000000 4000 00 05 1400 0100 ff0200000000000000000001ff000001 0a00 0200 3333ff000001 0000 0800 0400 00000000 1400 0300 0d280000 9d100000 9d100000 00000000" +
-            "58000000 1c00 0200 00000000 3e2b0000 0a 00 0000 15000000 0400 80 01 1400 0100 20010db800040ca00000000000000001 0a00 0200 84c9b26aed4b 0000 0800 0400 04000000 1400 0300 90100000 90100000 90080000 01000000" +
-            "58000000 1c00 0200 00000000 3e2b0000 0a 00 0000 15000000 4000 00 05 1400 0100 ff0200000000000000000001ff47da19 0a00 0200 3333ff47da19 0000 0800 0400 00000000 1400 0300 a1280000 31110000 31110000 01000000" +
-            "58000000 1c00 0200 00000000 3e2b0000 0a 00 0000 14000000 4000 00 05 1400 0100 ff020000000000000000000000000016 0a00 0200 333300000016 0000 0800 0400 00000000 1400 0300 912a0000 21130000 21130000 00000000" +
-            "58000000 1c00 0200 00000000 3e2b0000 0a 00 0000 14000000 4000 00 05 1400 0100 ff0200000000000000000001ffeace3b 0a00 0200 3333ffeace3b 0000 0800 0400 00000000 1400 0300 922a0000 22130000 22130000 00000000" +
-            "58000000 1c00 0200 00000000 3e2b0000 0a 00 0000 15000000 4000 00 05 1400 0100 ff0200000000000000000001ff5c2a83 0a00 0200 3333ff5c2a83 0000 0800 0400 00000000 1400 0300 391c0000 c9040000 c9040000 01000000" +
-            "58000000 1c00 0200 00000000 3e2b0000 0a 00 0000 01000000 4000 00 02 1400 0100 00000000000000000000000000000000 0a00 0200 000000000000 0000 0800 0400 00000000 1400 0300 cd180200 5d010200 5d010200 08000000" +
-            "58000000 1c00 0200 00000000 3e2b0000 0a 00 0000 15000000 4000 00 05 1400 0100 ff020000000000000000000000000002 0a00 0200 333300000002 0000 0800 0400 00000000 1400 0300 352a0000 c5120000 c5120000 00000000" +
-            "58000000 1c00 0200 00000000 3e2b0000 0a 00 0000 15000000 4000 00 05 1400 0100 ff020000000000000000000000000016 0a00 0200 333300000016 0000 0800 0400 00000000 1400 0300 982a0000 28130000 28130000 00000000" +
-            "58000000 1c00 0200 00000000 3e2b0000 0a 00 0000 15000000 0800 80 01 1400 0100 fe8000000000000086c9b2fffe6aed4b 0a00 0200 84c9b26aed4b 0000 0800 0400 00000000 1400 0300 23000000 24000000 57000000 13000000" +
-            "58000000 1c00 0200 00000000 3e2b0000 0a 00 0000 15000000 4000 00 05 1400 0100 ff0200000000000000000001ffeace3b 0a00 0200 3333ffeace3b 0000 0800 0400 00000000 1400 0300 992a0000 29130000 29130000 01000000" +
-            "58000000 1c00 0200 00000000 3e2b0000 0a 00 0000 14000000 4000 00 05 1400 0100 ff020000000000000000000000000002 0a00 0200 333300000002 0000 0800 0400 00000000 1400 0300 2e2a0000 be120000 be120000 00000000" +
-            "44000000 1c00 0200 00000000 3e2b0000 02 00 0000 18000000 4000 00 03 0800 0100 00000000                         0400 0200                   0800 0400 00000000 1400 0300 75280000 05110000 05110000 22000000";
-    public static final byte[] RTM_GETNEIGH_RESPONSE =
-            HexEncoding.decode(RTM_GETNEIGH_RESPONSE_HEX.replaceAll(" ", "").toCharArray(), false);
-
-    @Test
-    public void testParseRtmDelNeigh() {
-        final ByteBuffer byteBuffer = ByteBuffer.wrap(RTM_DELNEIGH);
-        byteBuffer.order(ByteOrder.LITTLE_ENDIAN);  // For testing.
-        final NetlinkMessage msg = NetlinkMessage.parse(byteBuffer);
-        assertNotNull(msg);
-        assertTrue(msg instanceof RtNetlinkNeighborMessage);
-        final RtNetlinkNeighborMessage neighMsg = (RtNetlinkNeighborMessage) msg;
-
-        final StructNlMsgHdr hdr = neighMsg.getHeader();
-        assertNotNull(hdr);
-        assertEquals(76, hdr.nlmsg_len);
-        assertEquals(NetlinkConstants.RTM_DELNEIGH, hdr.nlmsg_type);
-        assertEquals(0, hdr.nlmsg_flags);
-        assertEquals(0, hdr.nlmsg_seq);
-        assertEquals(0, hdr.nlmsg_pid);
-
-        final StructNdMsg ndmsgHdr = neighMsg.getNdHeader();
-        assertNotNull(ndmsgHdr);
-        assertEquals((byte) OsConstants.AF_INET, ndmsgHdr.ndm_family);
-        assertEquals(21, ndmsgHdr.ndm_ifindex);
-        assertEquals(StructNdMsg.NUD_STALE, ndmsgHdr.ndm_state);
-        final InetAddress destination = neighMsg.getDestination();
-        assertNotNull(destination);
-        assertEquals(InetAddress.parseNumericAddress("192.168.159.254"), destination);
-    }
-
-    @Test
-    public void testParseRtmNewNeigh() {
-        final ByteBuffer byteBuffer = ByteBuffer.wrap(RTM_NEWNEIGH);
-        byteBuffer.order(ByteOrder.LITTLE_ENDIAN);  // For testing.
-        final NetlinkMessage msg = NetlinkMessage.parse(byteBuffer);
-        assertNotNull(msg);
-        assertTrue(msg instanceof RtNetlinkNeighborMessage);
-        final RtNetlinkNeighborMessage neighMsg = (RtNetlinkNeighborMessage) msg;
-
-        final StructNlMsgHdr hdr = neighMsg.getHeader();
-        assertNotNull(hdr);
-        assertEquals(88, hdr.nlmsg_len);
-        assertEquals(NetlinkConstants.RTM_NEWNEIGH, hdr.nlmsg_type);
-        assertEquals(0, hdr.nlmsg_flags);
-        assertEquals(0, hdr.nlmsg_seq);
-        assertEquals(0, hdr.nlmsg_pid);
-
-        final StructNdMsg ndmsgHdr = neighMsg.getNdHeader();
-        assertNotNull(ndmsgHdr);
-        assertEquals((byte) OsConstants.AF_INET6, ndmsgHdr.ndm_family);
-        assertEquals(21, ndmsgHdr.ndm_ifindex);
-        assertEquals(StructNdMsg.NUD_STALE, ndmsgHdr.ndm_state);
-        final InetAddress destination = neighMsg.getDestination();
-        assertNotNull(destination);
-        assertEquals(InetAddress.parseNumericAddress("fe80::86c9:b2ff:fe6a:ed4b"), destination);
-    }
-
-    @Test
-    public void testParseRtmGetNeighResponse() {
-        final ByteBuffer byteBuffer = ByteBuffer.wrap(RTM_GETNEIGH_RESPONSE);
-        byteBuffer.order(ByteOrder.LITTLE_ENDIAN);  // For testing.
-
-        int messageCount = 0;
-        while (byteBuffer.remaining() > 0) {
-            final NetlinkMessage msg = NetlinkMessage.parse(byteBuffer);
-            assertNotNull(msg);
-            assertTrue(msg instanceof RtNetlinkNeighborMessage);
-            final RtNetlinkNeighborMessage neighMsg = (RtNetlinkNeighborMessage) msg;
-
-            final StructNlMsgHdr hdr = neighMsg.getHeader();
-            assertNotNull(hdr);
-            assertEquals(NetlinkConstants.RTM_NEWNEIGH, hdr.nlmsg_type);
-            assertEquals(StructNlMsgHdr.NLM_F_MULTI, hdr.nlmsg_flags);
-            assertEquals(0, hdr.nlmsg_seq);
-            assertEquals(11070, hdr.nlmsg_pid);
-
-            messageCount++;
-        }
-        // TODO: add more detailed spot checks.
-        assertEquals(14, messageCount);
-    }
-
-    @Test
-    public void testCreateRtmNewNeighMessage() {
-        final int seqNo = 2635;
-        final int ifIndex = 14;
-        final byte[] llAddr =
-                new byte[] { (byte) 1, (byte) 2, (byte) 3, (byte) 4, (byte) 5, (byte) 6 };
-
-        // Hexadecimal representation of our created packet.
-        final String expectedNewNeighHex =
-                // struct nlmsghdr
-                "30000000" +     // length = 48
-                "1c00" +         // type = 28 (RTM_NEWNEIGH)
-                "0501" +         // flags (NLM_F_REQUEST | NLM_F_ACK | NLM_F_REPLACE)
-                "4b0a0000" +     // seqno
-                "00000000" +     // pid (0 == kernel)
-                // struct ndmsg
-                "02" +           // family
-                "00" +           // pad1
-                "0000" +         // pad2
-                "0e000000" +     // interface index (14)
-                "0800" +         // NUD state (0x08 == NUD_DELAY)
-                "00" +           // flags
-                "00" +           // type
-                // struct nlattr: NDA_DST
-                "0800" +         // length = 8
-                "0100" +         // type (1 == NDA_DST, for neighbor messages)
-                "7f000001" +     // IPv4 address (== 127.0.0.1)
-                // struct nlattr: NDA_LLADDR
-                "0a00" +         // length = 10
-                "0200" +         // type (2 == NDA_LLADDR, for neighbor messages)
-                "010203040506" + // MAC Address (== 01:02:03:04:05:06)
-                "0000";          // padding, for 4 byte alignment
-        final byte[] expectedNewNeigh =
-                HexEncoding.decode(expectedNewNeighHex.toCharArray(), false);
-
-        final byte[] bytes = RtNetlinkNeighborMessage.newNewNeighborMessage(
-            seqNo, Inet4Address.LOOPBACK, StructNdMsg.NUD_DELAY, ifIndex, llAddr);
-        if (!Arrays.equals(expectedNewNeigh, bytes)) {
-            assertEquals(expectedNewNeigh.length, bytes.length);
-            for (int i = 0; i < Math.min(expectedNewNeigh.length, bytes.length); i++) {
-                assertEquals(expectedNewNeigh[i], bytes[i]);
-            }
-        }
-    }
-}
diff --git a/tests/net/java/android/net/shared/Inet4AddressUtilsTest.java b/tests/net/java/android/net/shared/Inet4AddressUtilsTest.java
deleted file mode 100644
index 35f8c79..0000000
--- a/tests/net/java/android/net/shared/Inet4AddressUtilsTest.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-package android.net.shared;
-
-import static android.net.shared.Inet4AddressUtils.getBroadcastAddress;
-import static android.net.shared.Inet4AddressUtils.getImplicitNetmask;
-import static android.net.shared.Inet4AddressUtils.getPrefixMaskAsInet4Address;
-import static android.net.shared.Inet4AddressUtils.inet4AddressToIntHTH;
-import static android.net.shared.Inet4AddressUtils.inet4AddressToIntHTL;
-import static android.net.shared.Inet4AddressUtils.intToInet4AddressHTH;
-import static android.net.shared.Inet4AddressUtils.intToInet4AddressHTL;
-import static android.net.shared.Inet4AddressUtils.netmaskToPrefixLength;
-import static android.net.shared.Inet4AddressUtils.prefixLengthToV4NetmaskIntHTH;
-import static android.net.shared.Inet4AddressUtils.prefixLengthToV4NetmaskIntHTL;
-
-import static junit.framework.Assert.assertEquals;
-
-import static org.junit.Assert.fail;
-
-import android.net.InetAddresses;
-
-import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.net.Inet4Address;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class Inet4AddressUtilsTest {
-
-    @Test
-    public void testInet4AddressToIntHTL() {
-        assertEquals(0, inet4AddressToIntHTL(ipv4Address("0.0.0.0")));
-        assertEquals(0x000080ff, inet4AddressToIntHTL(ipv4Address("255.128.0.0")));
-        assertEquals(0x0080ff0a, inet4AddressToIntHTL(ipv4Address("10.255.128.0")));
-        assertEquals(0x00feff0a, inet4AddressToIntHTL(ipv4Address("10.255.254.0")));
-        assertEquals(0xfeffa8c0, inet4AddressToIntHTL(ipv4Address("192.168.255.254")));
-        assertEquals(0xffffa8c0, inet4AddressToIntHTL(ipv4Address("192.168.255.255")));
-    }
-
-    @Test
-    public void testIntToInet4AddressHTL() {
-        assertEquals(ipv4Address("0.0.0.0"), intToInet4AddressHTL(0));
-        assertEquals(ipv4Address("255.128.0.0"), intToInet4AddressHTL(0x000080ff));
-        assertEquals(ipv4Address("10.255.128.0"), intToInet4AddressHTL(0x0080ff0a));
-        assertEquals(ipv4Address("10.255.254.0"), intToInet4AddressHTL(0x00feff0a));
-        assertEquals(ipv4Address("192.168.255.254"), intToInet4AddressHTL(0xfeffa8c0));
-        assertEquals(ipv4Address("192.168.255.255"), intToInet4AddressHTL(0xffffa8c0));
-    }
-
-    @Test
-    public void testInet4AddressToIntHTH() {
-        assertEquals(0, inet4AddressToIntHTH(ipv4Address("0.0.0.0")));
-        assertEquals(0xff800000, inet4AddressToIntHTH(ipv4Address("255.128.0.0")));
-        assertEquals(0x0aff8000, inet4AddressToIntHTH(ipv4Address("10.255.128.0")));
-        assertEquals(0x0afffe00, inet4AddressToIntHTH(ipv4Address("10.255.254.0")));
-        assertEquals(0xc0a8fffe, inet4AddressToIntHTH(ipv4Address("192.168.255.254")));
-        assertEquals(0xc0a8ffff, inet4AddressToIntHTH(ipv4Address("192.168.255.255")));
-    }
-
-    @Test
-    public void testIntToInet4AddressHTH() {
-        assertEquals(ipv4Address("0.0.0.0"), intToInet4AddressHTH(0));
-        assertEquals(ipv4Address("255.128.0.0"), intToInet4AddressHTH(0xff800000));
-        assertEquals(ipv4Address("10.255.128.0"), intToInet4AddressHTH(0x0aff8000));
-        assertEquals(ipv4Address("10.255.254.0"), intToInet4AddressHTH(0x0afffe00));
-        assertEquals(ipv4Address("192.168.255.254"), intToInet4AddressHTH(0xc0a8fffe));
-        assertEquals(ipv4Address("192.168.255.255"), intToInet4AddressHTH(0xc0a8ffff));
-    }
-
-
-    @Test
-    public void testPrefixLengthToV4NetmaskIntHTL() {
-        assertEquals(0, prefixLengthToV4NetmaskIntHTL(0));
-        assertEquals(0x000080ff /* 255.128.0.0 */, prefixLengthToV4NetmaskIntHTL(9));
-        assertEquals(0x0080ffff /* 255.255.128.0 */, prefixLengthToV4NetmaskIntHTL(17));
-        assertEquals(0x00feffff /* 255.255.254.0 */, prefixLengthToV4NetmaskIntHTL(23));
-        assertEquals(0xfeffffff /* 255.255.255.254 */, prefixLengthToV4NetmaskIntHTL(31));
-        assertEquals(0xffffffff /* 255.255.255.255 */, prefixLengthToV4NetmaskIntHTL(32));
-    }
-
-    @Test
-    public void testPrefixLengthToV4NetmaskIntHTH() {
-        assertEquals(0, prefixLengthToV4NetmaskIntHTH(0));
-        assertEquals(0xff800000 /* 255.128.0.0 */, prefixLengthToV4NetmaskIntHTH(9));
-        assertEquals(0xffff8000 /* 255.255.128.0 */, prefixLengthToV4NetmaskIntHTH(17));
-        assertEquals(0xfffffe00 /* 255.255.254.0 */, prefixLengthToV4NetmaskIntHTH(23));
-        assertEquals(0xfffffffe /* 255.255.255.254 */, prefixLengthToV4NetmaskIntHTH(31));
-        assertEquals(0xffffffff /* 255.255.255.255 */, prefixLengthToV4NetmaskIntHTH(32));
-    }
-
-    @Test(expected = IllegalArgumentException.class)
-    public void testPrefixLengthToV4NetmaskIntHTH_NegativeLength() {
-        prefixLengthToV4NetmaskIntHTH(-1);
-    }
-
-    @Test(expected = IllegalArgumentException.class)
-    public void testPrefixLengthToV4NetmaskIntHTH_LengthTooLarge() {
-        prefixLengthToV4NetmaskIntHTH(33);
-    }
-
-    private void checkAddressMasking(String expectedAddr, String addr, int prefixLength) {
-        final int prefix = prefixLengthToV4NetmaskIntHTH(prefixLength);
-        final int addrInt = inet4AddressToIntHTH(ipv4Address(addr));
-        assertEquals(ipv4Address(expectedAddr), intToInet4AddressHTH(prefix & addrInt));
-    }
-
-    @Test
-    public void testPrefixLengthToV4NetmaskIntHTH_MaskAddr() {
-        checkAddressMasking("192.168.0.0", "192.168.128.1", 16);
-        checkAddressMasking("255.240.0.0", "255.255.255.255", 12);
-        checkAddressMasking("255.255.255.255", "255.255.255.255", 32);
-        checkAddressMasking("0.0.0.0", "255.255.255.255", 0);
-    }
-
-    @Test
-    public void testGetImplicitNetmask() {
-        assertEquals(8, getImplicitNetmask(ipv4Address("4.2.2.2")));
-        assertEquals(8, getImplicitNetmask(ipv4Address("10.5.6.7")));
-        assertEquals(16, getImplicitNetmask(ipv4Address("173.194.72.105")));
-        assertEquals(16, getImplicitNetmask(ipv4Address("172.23.68.145")));
-        assertEquals(24, getImplicitNetmask(ipv4Address("192.0.2.1")));
-        assertEquals(24, getImplicitNetmask(ipv4Address("192.168.5.1")));
-        assertEquals(32, getImplicitNetmask(ipv4Address("224.0.0.1")));
-        assertEquals(32, getImplicitNetmask(ipv4Address("255.6.7.8")));
-    }
-
-    private void assertInvalidNetworkMask(Inet4Address addr) {
-        try {
-            netmaskToPrefixLength(addr);
-            fail("Invalid netmask " + addr.getHostAddress() + " did not cause exception");
-        } catch (IllegalArgumentException expected) {
-        }
-    }
-
-    @Test
-    public void testNetmaskToPrefixLength() {
-        assertEquals(0, netmaskToPrefixLength(ipv4Address("0.0.0.0")));
-        assertEquals(9, netmaskToPrefixLength(ipv4Address("255.128.0.0")));
-        assertEquals(17, netmaskToPrefixLength(ipv4Address("255.255.128.0")));
-        assertEquals(23, netmaskToPrefixLength(ipv4Address("255.255.254.0")));
-        assertEquals(31, netmaskToPrefixLength(ipv4Address("255.255.255.254")));
-        assertEquals(32, netmaskToPrefixLength(ipv4Address("255.255.255.255")));
-
-        assertInvalidNetworkMask(ipv4Address("0.0.0.1"));
-        assertInvalidNetworkMask(ipv4Address("255.255.255.253"));
-        assertInvalidNetworkMask(ipv4Address("255.255.0.255"));
-    }
-
-    @Test
-    public void testGetPrefixMaskAsAddress() {
-        assertEquals("255.255.240.0", getPrefixMaskAsInet4Address(20).getHostAddress());
-        assertEquals("255.0.0.0", getPrefixMaskAsInet4Address(8).getHostAddress());
-        assertEquals("0.0.0.0", getPrefixMaskAsInet4Address(0).getHostAddress());
-        assertEquals("255.255.255.255", getPrefixMaskAsInet4Address(32).getHostAddress());
-    }
-
-    @Test
-    public void testGetBroadcastAddress() {
-        assertEquals("192.168.15.255",
-                getBroadcastAddress(ipv4Address("192.168.0.123"), 20).getHostAddress());
-        assertEquals("192.255.255.255",
-                getBroadcastAddress(ipv4Address("192.168.0.123"), 8).getHostAddress());
-        assertEquals("192.168.0.123",
-                getBroadcastAddress(ipv4Address("192.168.0.123"), 32).getHostAddress());
-        assertEquals("255.255.255.255",
-                getBroadcastAddress(ipv4Address("192.168.0.123"), 0).getHostAddress());
-    }
-
-    @Test(expected = IllegalArgumentException.class)
-    public void testGetBroadcastAddress_PrefixTooLarge() {
-        getBroadcastAddress(ipv4Address("192.168.0.123"), 33);
-    }
-
-    @Test(expected = IllegalArgumentException.class)
-    public void testGetBroadcastAddress_NegativePrefix() {
-        getBroadcastAddress(ipv4Address("192.168.0.123"), -1);
-    }
-
-    @Test(expected = IllegalArgumentException.class)
-    public void testGetPrefixMaskAsAddress_PrefixTooLarge() {
-        getPrefixMaskAsInet4Address(33);
-    }
-
-    @Test(expected = IllegalArgumentException.class)
-    public void testGetPrefixMaskAsAddress_NegativePrefix() {
-        getPrefixMaskAsInet4Address(-1);
-    }
-
-    private Inet4Address ipv4Address(String addr) {
-        return (Inet4Address) InetAddresses.parseNumericAddress(addr);
-    }
-}
diff --git a/tests/net/java/android/net/shared/InitialConfigurationTest.java b/tests/net/java/android/net/shared/InitialConfigurationTest.java
deleted file mode 100644
index 17f8324..0000000
--- a/tests/net/java/android/net/shared/InitialConfigurationTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-package android.net.shared;
-
-import static android.net.InetAddresses.parseNumericAddress;
-
-import static com.android.testutils.MiscAssertsKt.assertFieldCountEquals;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-
-import android.net.IpPrefix;
-import android.net.LinkAddress;
-
-import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.util.Arrays;
-import java.util.function.Consumer;
-
-/**
- * Tests for {@link InitialConfiguration}
- */
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class InitialConfigurationTest {
-    private InitialConfiguration mConfig;
-
-    @Before
-    public void setUp() {
-        mConfig = new InitialConfiguration();
-        mConfig.ipAddresses.addAll(Arrays.asList(
-                new LinkAddress(parseNumericAddress("192.168.45.45"), 16),
-                new LinkAddress(parseNumericAddress("2001:db8::45"), 33)));
-        mConfig.directlyConnectedRoutes.addAll(Arrays.asList(
-                new IpPrefix(parseNumericAddress("192.168.46.46"), 17),
-                new IpPrefix(parseNumericAddress("2001:db8::46"), 34)));
-        mConfig.dnsServers.addAll(Arrays.asList(
-                parseNumericAddress("192.168.47.47"),
-                parseNumericAddress("2001:db8::47")));
-        // Any added InitialConfiguration field must be included in equals() to be tested properly
-        assertFieldCountEquals(3, InitialConfiguration.class);
-    }
-
-    @Test
-    public void testParcelUnparcelInitialConfiguration() {
-        final InitialConfiguration unparceled =
-                InitialConfiguration.fromStableParcelable(mConfig.toStableParcelable());
-        assertEquals(mConfig, unparceled);
-    }
-
-    @Test
-    public void testEquals() {
-        assertEquals(mConfig, InitialConfiguration.copy(mConfig));
-
-        assertNotEqualsAfterChange(c -> c.ipAddresses.add(
-                new LinkAddress(parseNumericAddress("192.168.47.47"), 24)));
-        assertNotEqualsAfterChange(c -> c.directlyConnectedRoutes.add(
-                new IpPrefix(parseNumericAddress("192.168.46.46"), 32)));
-        assertNotEqualsAfterChange(c -> c.dnsServers.add(parseNumericAddress("2001:db8::49")));
-        assertFieldCountEquals(3, InitialConfiguration.class);
-    }
-
-    private void assertNotEqualsAfterChange(Consumer<InitialConfiguration> mutator) {
-        final InitialConfiguration newConfig = InitialConfiguration.copy(mConfig);
-        mutator.accept(newConfig);
-        assertNotEquals(mConfig, newConfig);
-    }
-}
diff --git a/tests/net/java/android/net/shared/IpConfigurationParcelableUtilTest.java b/tests/net/java/android/net/shared/IpConfigurationParcelableUtilTest.java
deleted file mode 100644
index f987389..0000000
--- a/tests/net/java/android/net/shared/IpConfigurationParcelableUtilTest.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-package android.net.shared;
-
-import static android.net.InetAddresses.parseNumericAddress;
-import static android.net.shared.IpConfigurationParcelableUtil.fromStableParcelable;
-import static android.net.shared.IpConfigurationParcelableUtil.toStableParcelable;
-
-import static com.android.testutils.MiscAssertsKt.assertFieldCountEquals;
-
-import static org.junit.Assert.assertEquals;
-
-import android.net.DhcpResults;
-import android.net.LinkAddress;
-
-import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.net.Inet4Address;
-
-/**
- * Tests for {@link IpConfigurationParcelableUtil}.
- */
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class IpConfigurationParcelableUtilTest {
-    private DhcpResults mDhcpResults;
-
-    @Before
-    public void setUp() {
-        mDhcpResults = new DhcpResults();
-        mDhcpResults.ipAddress = new LinkAddress(parseNumericAddress("2001:db8::42"), 64);
-        mDhcpResults.gateway = parseNumericAddress("192.168.42.42");
-        mDhcpResults.dnsServers.add(parseNumericAddress("2001:db8::43"));
-        mDhcpResults.dnsServers.add(parseNumericAddress("192.168.43.43"));
-        mDhcpResults.domains = "example.com";
-        mDhcpResults.serverAddress = (Inet4Address) parseNumericAddress("192.168.44.44");
-        mDhcpResults.vendorInfo = "TEST_VENDOR_INFO";
-        mDhcpResults.leaseDuration = 3600;
-        mDhcpResults.serverHostName = "dhcp.example.com";
-        mDhcpResults.mtu = 1450;
-        // Any added DhcpResults field must be included in equals() to be tested properly
-        assertFieldCountEquals(9, DhcpResults.class);
-    }
-
-    @Test
-    public void testParcelUnparcelDhcpResults() {
-        doDhcpResultsParcelUnparcelTest();
-    }
-
-    @Test
-    public void testParcelUnparcelDhcpResults_NullIpAddress() {
-        mDhcpResults.ipAddress = null;
-        doDhcpResultsParcelUnparcelTest();
-    }
-
-    @Test
-    public void testParcelUnparcelDhcpResults_NullGateway() {
-        mDhcpResults.gateway = null;
-        doDhcpResultsParcelUnparcelTest();
-    }
-
-    @Test
-    public void testParcelUnparcelDhcpResults_NullDomains() {
-        mDhcpResults.domains = null;
-        doDhcpResultsParcelUnparcelTest();
-    }
-
-    @Test
-    public void testParcelUnparcelDhcpResults_EmptyDomains() {
-        mDhcpResults.domains = "";
-        doDhcpResultsParcelUnparcelTest();
-    }
-
-    @Test
-    public void testParcelUnparcelDhcpResults_NullServerAddress() {
-        mDhcpResults.serverAddress = null;
-        doDhcpResultsParcelUnparcelTest();
-    }
-
-    @Test
-    public void testParcelUnparcelDhcpResults_NullVendorInfo() {
-        mDhcpResults.vendorInfo = null;
-        doDhcpResultsParcelUnparcelTest();
-    }
-
-    @Test
-    public void testParcelUnparcelDhcpResults_NullServerHostName() {
-        mDhcpResults.serverHostName = null;
-        doDhcpResultsParcelUnparcelTest();
-    }
-
-    private void doDhcpResultsParcelUnparcelTest() {
-        final DhcpResults unparceled = fromStableParcelable(toStableParcelable(mDhcpResults));
-        assertEquals(mDhcpResults, unparceled);
-    }
-}
diff --git a/tests/net/java/android/net/shared/ProvisioningConfigurationTest.java b/tests/net/java/android/net/shared/ProvisioningConfigurationTest.java
deleted file mode 100644
index 7079a28..0000000
--- a/tests/net/java/android/net/shared/ProvisioningConfigurationTest.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-
-package android.net.shared;
-
-import static android.net.InetAddresses.parseNumericAddress;
-import static android.net.shared.ProvisioningConfiguration.fromStableParcelable;
-
-import static com.android.testutils.MiscAssertsKt.assertFieldCountEquals;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-
-import android.net.LinkAddress;
-import android.net.Network;
-import android.net.StaticIpConfiguration;
-import android.net.apf.ApfCapabilities;
-
-import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.util.function.Consumer;
-
-/**
- * Tests for {@link ProvisioningConfiguration}.
- */
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class ProvisioningConfigurationTest {
-    private ProvisioningConfiguration mConfig;
-
-    @Before
-    public void setUp() {
-        mConfig = new ProvisioningConfiguration();
-        mConfig.mEnableIPv4 = true;
-        mConfig.mEnableIPv6 = true;
-        mConfig.mUsingMultinetworkPolicyTracker = true;
-        mConfig.mUsingIpReachabilityMonitor = true;
-        mConfig.mRequestedPreDhcpActionMs = 42;
-        mConfig.mInitialConfig = new InitialConfiguration();
-        mConfig.mInitialConfig.ipAddresses.add(
-                new LinkAddress(parseNumericAddress("192.168.42.42"), 24));
-        mConfig.mStaticIpConfig = new StaticIpConfiguration();
-        mConfig.mStaticIpConfig.ipAddress =
-                new LinkAddress(parseNumericAddress("2001:db8::42"), 90);
-        // Not testing other InitialConfig or StaticIpConfig members: they have their own unit tests
-        mConfig.mApfCapabilities = new ApfCapabilities(1, 2, 3);
-        mConfig.mProvisioningTimeoutMs = 4200;
-        mConfig.mIPv6AddrGenMode = 123;
-        mConfig.mNetwork = new Network(321);
-        mConfig.mDisplayName = "test_config";
-        // Any added field must be included in equals() to be tested properly
-        assertFieldCountEquals(12, ProvisioningConfiguration.class);
-    }
-
-    @Test
-    public void testParcelUnparcel() {
-        doParcelUnparcelTest();
-    }
-
-    @Test
-    public void testParcelUnparcel_NullInitialConfiguration() {
-        mConfig.mInitialConfig = null;
-        doParcelUnparcelTest();
-    }
-
-    @Test
-    public void testParcelUnparcel_NullStaticConfiguration() {
-        mConfig.mStaticIpConfig = null;
-        doParcelUnparcelTest();
-    }
-
-    @Test
-    public void testParcelUnparcel_NullApfCapabilities() {
-        mConfig.mApfCapabilities = null;
-        doParcelUnparcelTest();
-    }
-
-    @Test
-    public void testParcelUnparcel_NullNetwork() {
-        mConfig.mNetwork = null;
-        doParcelUnparcelTest();
-    }
-
-    private void doParcelUnparcelTest() {
-        final ProvisioningConfiguration unparceled =
-                fromStableParcelable(mConfig.toStableParcelable());
-        assertEquals(mConfig, unparceled);
-    }
-
-    @Test
-    public void testEquals() {
-        assertEquals(mConfig, new ProvisioningConfiguration(mConfig));
-
-        assertNotEqualsAfterChange(c -> c.mEnableIPv4 = false);
-        assertNotEqualsAfterChange(c -> c.mEnableIPv6 = false);
-        assertNotEqualsAfterChange(c -> c.mUsingMultinetworkPolicyTracker = false);
-        assertNotEqualsAfterChange(c -> c.mUsingIpReachabilityMonitor = false);
-        assertNotEqualsAfterChange(c -> c.mRequestedPreDhcpActionMs++);
-        assertNotEqualsAfterChange(c -> c.mInitialConfig.ipAddresses.add(
-                new LinkAddress(parseNumericAddress("192.168.47.47"), 16)));
-        assertNotEqualsAfterChange(c -> c.mInitialConfig = null);
-        assertNotEqualsAfterChange(c -> c.mStaticIpConfig.ipAddress =
-                new LinkAddress(parseNumericAddress("2001:db8::47"), 64));
-        assertNotEqualsAfterChange(c -> c.mStaticIpConfig = null);
-        assertNotEqualsAfterChange(c -> c.mApfCapabilities = new ApfCapabilities(4, 5, 6));
-        assertNotEqualsAfterChange(c -> c.mApfCapabilities = null);
-        assertNotEqualsAfterChange(c -> c.mProvisioningTimeoutMs++);
-        assertNotEqualsAfterChange(c -> c.mIPv6AddrGenMode++);
-        assertNotEqualsAfterChange(c -> c.mNetwork = new Network(123));
-        assertNotEqualsAfterChange(c -> c.mNetwork = null);
-        assertNotEqualsAfterChange(c -> c.mDisplayName = "other_test");
-        assertNotEqualsAfterChange(c -> c.mDisplayName = null);
-        assertFieldCountEquals(12, ProvisioningConfiguration.class);
-    }
-
-    private void assertNotEqualsAfterChange(Consumer<ProvisioningConfiguration> mutator) {
-        final ProvisioningConfiguration newConfig = new ProvisioningConfiguration(mConfig);
-        mutator.accept(newConfig);
-        assertNotEquals(mConfig, newConfig);
-    }
-}
diff --git a/tests/net/java/android/net/util/InterfaceParamsTest.java b/tests/net/java/android/net/util/InterfaceParamsTest.java
deleted file mode 100644
index 141455c..0000000
--- a/tests/net/java/android/net/util/InterfaceParamsTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * 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.
- */
-
-package android.net.util;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class InterfaceParamsTest {
-    @Test
-    public void testNullInterfaceReturnsNull() {
-        assertNull(InterfaceParams.getByName(null));
-    }
-
-    @Test
-    public void testNonExistentInterfaceReturnsNull() {
-        assertNull(InterfaceParams.getByName("doesnotexist0"));
-    }
-
-    @Test
-    public void testLoopback() {
-        final InterfaceParams ifParams = InterfaceParams.getByName("lo");
-        assertNotNull(ifParams);
-        assertEquals("lo", ifParams.name);
-        assertTrue(ifParams.index > 0);
-        assertNotNull(ifParams.macAddr);
-        assertTrue(ifParams.defaultMtu >= NetworkConstants.ETHER_MTU);
-    }
-}
diff --git a/tests/net/java/android/net/util/SharedLogTest.java b/tests/net/java/android/net/util/SharedLogTest.java
deleted file mode 100644
index e1dba36..0000000
--- a/tests/net/java/android/net/util/SharedLogTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * 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.
- */
-
-package android.net.util;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.io.ByteArrayOutputStream;
-import java.io.PrintWriter;
-
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class SharedLogTest {
-    private static final String TIMESTAMP_PATTERN = "\\d{2}:\\d{2}:\\d{2}";
-    private static final String TIMESTAMP = "HH:MM:SS";
-
-    @Test
-    public void testBasicOperation() {
-        final SharedLog logTop = new SharedLog("top");
-        logTop.mark("first post!");
-
-        final SharedLog logLevel2a = logTop.forSubComponent("twoA");
-        final SharedLog logLevel2b = logTop.forSubComponent("twoB");
-        logLevel2b.e("2b or not 2b");
-        logLevel2b.e("No exception", null);
-        logLevel2b.e("Wait, here's one", new Exception("Test"));
-        logLevel2a.w("second post?");
-
-        final SharedLog logLevel3 = logLevel2a.forSubComponent("three");
-        logTop.log("still logging");
-        logLevel3.log("3 >> 2");
-        logLevel2a.mark("ok: last post");
-
-        final String[] expected = {
-            " - MARK first post!",
-            " - [twoB] ERROR 2b or not 2b",
-            " - [twoB] ERROR No exception",
-            // No stacktrace in shared log, only in logcat
-            " - [twoB] ERROR Wait, here's one: Test",
-            " - [twoA] WARN second post?",
-            " - still logging",
-            " - [twoA.three] 3 >> 2",
-            " - [twoA] MARK ok: last post",
-        };
-        // Verify the logs are all there and in the correct order.
-        verifyLogLines(expected, logTop);
-
-        // In fact, because they all share the same underlying LocalLog,
-        // every subcomponent SharedLog's dump() is identical.
-        verifyLogLines(expected, logLevel2a);
-        verifyLogLines(expected, logLevel2b);
-        verifyLogLines(expected, logLevel3);
-    }
-
-    private static void verifyLogLines(String[] expected, SharedLog log) {
-        final ByteArrayOutputStream ostream = new ByteArrayOutputStream();
-        final PrintWriter pw = new PrintWriter(ostream, true);
-        log.dump(null, pw, null);
-
-        final String dumpOutput = ostream.toString();
-        assertTrue(dumpOutput != null);
-        assertTrue(!"".equals(dumpOutput));
-
-        final String[] lines = dumpOutput.split("\n");
-        assertEquals(expected.length, lines.length);
-
-        for (int i = 0; i < expected.length; i++) {
-            String got = lines[i];
-            String want = expected[i];
-            assertTrue(String.format("'%s' did not contain '%s'", got, want), got.endsWith(want));
-            assertTrue(String.format("'%s' did not contain a %s timestamp", got, TIMESTAMP),
-                    got.replaceFirst(TIMESTAMP_PATTERN, TIMESTAMP).contains(TIMESTAMP));
-        }
-    }
-}
diff --git a/tests/net/java/com/android/internal/util/BitUtilsTest.java b/tests/net/java/com/android/internal/util/BitUtilsTest.java
index 01fb0df..d2fbdce 100644
--- a/tests/net/java/com/android/internal/util/BitUtilsTest.java
+++ b/tests/net/java/com/android/internal/util/BitUtilsTest.java
@@ -21,11 +21,14 @@
 import static com.android.internal.util.BitUtils.getUint16;
 import static com.android.internal.util.BitUtils.getUint32;
 import static com.android.internal.util.BitUtils.getUint8;
+import static com.android.internal.util.BitUtils.packBits;
 import static com.android.internal.util.BitUtils.uint16;
 import static com.android.internal.util.BitUtils.uint32;
 import static com.android.internal.util.BitUtils.uint8;
+import static com.android.internal.util.BitUtils.unpackBits;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import androidx.test.filters.SmallTest;
 import androidx.test.runner.AndroidJUnit4;
@@ -34,6 +37,8 @@
 import org.junit.runner.RunWith;
 
 import java.nio.ByteBuffer;
+import java.util.Arrays;
+import java.util.Random;
 
 @SmallTest
 @RunWith(AndroidJUnit4.class)
@@ -110,20 +115,66 @@
 
     @Test
     public void testUnsignedGetters() {
-      ByteBuffer b = ByteBuffer.allocate(4);
-      b.putInt(0xffff);
+        ByteBuffer b = ByteBuffer.allocate(4);
+        b.putInt(0xffff);
 
-      assertEquals(0x0, getUint8(b, 0));
-      assertEquals(0x0, getUint8(b, 1));
-      assertEquals(0xff, getUint8(b, 2));
-      assertEquals(0xff, getUint8(b, 3));
+        assertEquals(0x0, getUint8(b, 0));
+        assertEquals(0x0, getUint8(b, 1));
+        assertEquals(0xff, getUint8(b, 2));
+        assertEquals(0xff, getUint8(b, 3));
 
-      assertEquals(0x0, getUint16(b, 0));
-      assertEquals(0xffff, getUint16(b, 2));
+        assertEquals(0x0, getUint16(b, 0));
+        assertEquals(0xffff, getUint16(b, 2));
 
-      b.rewind();
-      b.putInt(0xffffffff);
-      assertEquals(0xffffffffL, getUint32(b, 0));
+        b.rewind();
+        b.putInt(0xffffffff);
+        assertEquals(0xffffffffL, getUint32(b, 0));
+    }
+
+    @Test
+    public void testBitsPacking() {
+        BitPackingTestCase[] testCases = {
+            new BitPackingTestCase(0, ints()),
+            new BitPackingTestCase(1, ints(0)),
+            new BitPackingTestCase(2, ints(1)),
+            new BitPackingTestCase(3, ints(0, 1)),
+            new BitPackingTestCase(4, ints(2)),
+            new BitPackingTestCase(6, ints(1, 2)),
+            new BitPackingTestCase(9, ints(0, 3)),
+            new BitPackingTestCase(~Long.MAX_VALUE, ints(63)),
+            new BitPackingTestCase(~Long.MAX_VALUE + 1, ints(0, 63)),
+            new BitPackingTestCase(~Long.MAX_VALUE + 2, ints(1, 63)),
+        };
+        for (BitPackingTestCase tc : testCases) {
+            int[] got = unpackBits(tc.packedBits);
+            assertTrue(
+                    "unpackBits("
+                            + tc.packedBits
+                            + "): expected "
+                            + Arrays.toString(tc.bits)
+                            + " but got "
+                            + Arrays.toString(got),
+                    Arrays.equals(tc.bits, got));
+        }
+        for (BitPackingTestCase tc : testCases) {
+            long got = packBits(tc.bits);
+            assertEquals(
+                    "packBits("
+                            + Arrays.toString(tc.bits)
+                            + "): expected "
+                            + tc.packedBits
+                            + " but got "
+                            + got,
+                    tc.packedBits,
+                    got);
+        }
+
+        long[] moreTestCases = {
+            0, 1, -1, 23895, -908235, Long.MAX_VALUE, Long.MIN_VALUE, new Random().nextLong(),
+        };
+        for (long l : moreTestCases) {
+            assertEquals(l, packBits(unpackBits(l)));
+        }
     }
 
     static byte[] bytes(int b1, int b2, int b3, int b4) {
@@ -133,4 +184,18 @@
     static byte b(int i) {
         return (byte) i;
     }
+
+    static int[] ints(int... array) {
+        return array;
+    }
+
+    static class BitPackingTestCase {
+        final int[] bits;
+        final long packedBits;
+
+        BitPackingTestCase(long packedBits, int[] bits) {
+            this.bits = bits;
+            this.packedBits = packedBits;
+        }
+    }
 }
diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java
index 61f37fd..fd3ed7d 100644
--- a/tests/net/java/com/android/server/ConnectivityServiceTest.java
+++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java
@@ -16,10 +16,16 @@
 
 package com.android.server;
 
+import static android.Manifest.permission.CHANGE_NETWORK_STATE;
+import static android.Manifest.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS;
+import static android.content.pm.PackageInfo.REQUESTED_PERMISSION_GRANTED;
 import static android.content.pm.PackageManager.GET_PERMISSIONS;
 import static android.content.pm.PackageManager.MATCH_ANY_USER;
 import static android.net.ConnectivityManager.ACTION_CAPTIVE_PORTAL_SIGN_IN;
 import static android.net.ConnectivityManager.CONNECTIVITY_ACTION;
+import static android.net.ConnectivityManager.CONNECTIVITY_ACTION_SUPL;
+import static android.net.ConnectivityManager.EXTRA_NETWORK_INFO;
+import static android.net.ConnectivityManager.EXTRA_NETWORK_TYPE;
 import static android.net.ConnectivityManager.NETID_UNSET;
 import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OFF;
 import static android.net.ConnectivityManager.PRIVATE_DNS_MODE_OPPORTUNISTIC;
@@ -28,6 +34,7 @@
 import static android.net.ConnectivityManager.TYPE_MOBILE;
 import static android.net.ConnectivityManager.TYPE_MOBILE_FOTA;
 import static android.net.ConnectivityManager.TYPE_MOBILE_MMS;
+import static android.net.ConnectivityManager.TYPE_MOBILE_SUPL;
 import static android.net.ConnectivityManager.TYPE_WIFI;
 import static android.net.INetworkMonitor.NETWORK_VALIDATION_PROBE_DNS;
 import static android.net.INetworkMonitor.NETWORK_VALIDATION_PROBE_FALLBACK;
@@ -89,6 +96,7 @@
 import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.startsWith;
 import static org.mockito.Matchers.anyInt;
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.atLeastOnce;
@@ -145,6 +153,7 @@
 import android.net.Network;
 import android.net.NetworkCapabilities;
 import android.net.NetworkFactory;
+import android.net.NetworkInfo;
 import android.net.NetworkRequest;
 import android.net.NetworkSpecifier;
 import android.net.NetworkStack;
@@ -155,6 +164,7 @@
 import android.net.ResolverParamsParcel;
 import android.net.RouteInfo;
 import android.net.SocketKeepalive;
+import android.net.TetheringManager;
 import android.net.UidRange;
 import android.net.metrics.IpConnectivityLog;
 import android.net.shared.NetworkMonitorUtils;
@@ -189,6 +199,7 @@
 import androidx.test.filters.SmallTest;
 import androidx.test.runner.AndroidJUnit4;
 
+import com.android.internal.app.IBatteryStats;
 import com.android.internal.net.VpnConfig;
 import com.android.internal.net.VpnInfo;
 import com.android.internal.util.ArrayUtils;
@@ -202,7 +213,6 @@
 import com.android.server.connectivity.Nat464Xlat;
 import com.android.server.connectivity.NetworkNotificationManager.NotificationType;
 import com.android.server.connectivity.ProxyTracker;
-import com.android.server.connectivity.Tethering;
 import com.android.server.connectivity.Vpn;
 import com.android.server.net.NetworkPinner;
 import com.android.server.net.NetworkPolicyManagerInternal;
@@ -244,6 +254,7 @@
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.function.Predicate;
 
 import kotlin.reflect.KClass;
 
@@ -296,6 +307,7 @@
     @Mock DefaultNetworkMetrics mDefaultNetworkMetrics;
     @Mock INetworkManagementService mNetworkManagementService;
     @Mock INetworkStatsService mStatsService;
+    @Mock IBatteryStats mBatteryStatsService;
     @Mock INetworkPolicyManager mNpm;
     @Mock IDnsResolver mMockDnsResolver;
     @Mock INetd mMockNetd;
@@ -330,6 +342,9 @@
 
     private class MockContext extends BroadcastInterceptingContext {
         private final MockContentResolver mContentResolver;
+        // Contains all registered receivers since this object was created. Useful to clear
+        // them when needed, as BroadcastInterceptingContext does not provide this facility.
+        private final List<BroadcastReceiver> mRegisteredReceivers = new ArrayList<>();
 
         @Spy private Resources mResources;
         private final LinkedBlockingQueue<Intent> mStartedActivities = new LinkedBlockingQueue<>();
@@ -343,6 +358,7 @@
                             "wifi,1,1,1,-1,true",
                             "mobile,0,0,0,-1,true",
                             "mobile_mms,2,0,2,60000,true",
+                            "mobile_supl,3,0,2,60000,true",
                     });
 
             when(mResources.getStringArray(
@@ -410,6 +426,19 @@
             // make sure the code does not rely on unexpected permissions.
             super.enforceCallingOrSelfPermission(permission, message);
         }
+
+        @Override
+        public Intent registerReceiver(BroadcastReceiver receiver, IntentFilter filter) {
+            mRegisteredReceivers.add(receiver);
+            return super.registerReceiver(receiver, filter);
+        }
+
+        public void clearRegisteredReceivers() {
+            // super.unregisterReceiver is a no-op for receivers that are not registered (because
+            // they haven't been registered or because they have already been unregistered).
+            // For the same reason, don't bother clearing mRegisteredReceivers.
+            for (final BroadcastReceiver rcv : mRegisteredReceivers) unregisterReceiver(rcv);
+        }
     }
 
     private void waitForIdle() {
@@ -438,7 +467,7 @@
         }
 
         // Bring up a network that we can use to send messages to ConnectivityService.
-        ConditionVariable cv = waitForConnectivityBroadcasts(1);
+        ConditionVariable cv = registerConnectivityBroadcast(1);
         mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
         mWiFiNetworkAgent.connect(false);
         waitFor(cv);
@@ -458,7 +487,7 @@
     @Ignore
     public void verifyThatNotWaitingForIdleCausesRaceConditions() throws Exception {
         // Bring up a network that we can use to send messages to ConnectivityService.
-        ConditionVariable cv = waitForConnectivityBroadcasts(1);
+        ConditionVariable cv = registerConnectivityBroadcast(1);
         mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
         mWiFiNetworkAgent.connect(false);
         waitFor(cv);
@@ -1104,11 +1133,12 @@
         doReturn(new TestNetIdManager()).when(deps).makeNetIdManager();
         doReturn(mNetworkStack).when(deps).getNetworkStack();
         doReturn(systemProperties).when(deps).getSystemProperties();
-        doReturn(mock(Tethering.class)).when(deps).makeTethering(any(), any(), any(), any(), any());
+        doReturn(mock(TetheringManager.class)).when(deps).getTetheringManager();
         doReturn(mock(ProxyTracker.class)).when(deps).makeProxyTracker(any(), any());
         doReturn(mMetricsService).when(deps).getMetricsLogger();
         doReturn(true).when(deps).queryUserAccess(anyInt(), anyInt());
         doReturn(mIpConnectivityMetrics).when(deps).getIpConnectivityMetrics();
+        doReturn(mBatteryStatsService).when(deps).getBatteryStatsService();
         doReturn(true).when(deps).hasService(Context.ETHERNET_SERVICE);
         doAnswer(inv -> {
             mPolicyTracker = new WrappedMultinetworkPolicyTracker(
@@ -1227,17 +1257,26 @@
      * Return a ConditionVariable that opens when {@code count} numbers of CONNECTIVITY_ACTION
      * broadcasts are received.
      */
-    private ConditionVariable waitForConnectivityBroadcasts(final int count) {
+    private ConditionVariable registerConnectivityBroadcast(final int count) {
+        return registerConnectivityBroadcastThat(count, intent -> true);
+    }
+
+    private ConditionVariable registerConnectivityBroadcastThat(final int count,
+            @NonNull final Predicate<Intent> filter) {
         final ConditionVariable cv = new ConditionVariable();
-        mServiceContext.registerReceiver(new BroadcastReceiver() {
+        final IntentFilter intentFilter = new IntentFilter(CONNECTIVITY_ACTION);
+        intentFilter.addAction(CONNECTIVITY_ACTION_SUPL);
+        final BroadcastReceiver receiver = new BroadcastReceiver() {
                     private int remaining = count;
                     public void onReceive(Context context, Intent intent) {
+                        if (!filter.test(intent)) return;
                         if (--remaining == 0) {
                             cv.open();
                             mServiceContext.unregisterReceiver(this);
                         }
                     }
-                }, new IntentFilter(CONNECTIVITY_ACTION));
+                };
+        mServiceContext.registerReceiver(receiver, intentFilter);
         return cv;
     }
 
@@ -1258,6 +1297,75 @@
     }
 
     @Test
+    public void testNetworkFeature() throws Exception {
+        // Connect the cell agent and wait for the connected broadcast.
+        mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
+        mCellNetworkAgent.addCapability(NET_CAPABILITY_SUPL);
+        final ConditionVariable cv1 = registerConnectivityBroadcastThat(1,
+                intent -> intent.getIntExtra(EXTRA_NETWORK_TYPE, -1) == TYPE_MOBILE);
+        mCellNetworkAgent.connect(true);
+        waitFor(cv1);
+
+        // Build legacy request for SUPL.
+        final NetworkCapabilities legacyCaps = new NetworkCapabilities();
+        legacyCaps.addTransportType(TRANSPORT_CELLULAR);
+        legacyCaps.addCapability(NET_CAPABILITY_SUPL);
+        final NetworkRequest legacyRequest = new NetworkRequest(legacyCaps, TYPE_MOBILE_SUPL,
+                ConnectivityManager.REQUEST_ID_UNSET, NetworkRequest.Type.REQUEST);
+
+        // Send request and check that the legacy broadcast for SUPL is sent correctly.
+        final TestNetworkCallback callback = new TestNetworkCallback();
+        final ConditionVariable cv2 = registerConnectivityBroadcastThat(1,
+                intent -> intent.getIntExtra(EXTRA_NETWORK_TYPE, -1) == TYPE_MOBILE_SUPL);
+        mCm.requestNetwork(legacyRequest, callback);
+        callback.expectCallback(CallbackEntry.AVAILABLE, mCellNetworkAgent);
+        waitFor(cv2);
+
+        // File another request, withdraw it and make sure no broadcast is sent
+        final ConditionVariable cv3 = registerConnectivityBroadcast(1);
+        final TestNetworkCallback callback2 = new TestNetworkCallback();
+        mCm.requestNetwork(legacyRequest, callback2);
+        callback2.expectCallback(CallbackEntry.AVAILABLE, mCellNetworkAgent);
+        mCm.unregisterNetworkCallback(callback2);
+        assertFalse(cv3.block(800)); // 800ms long enough to at least flake if this is sent
+        // As the broadcast did not fire, the receiver was not unregistered. Do this now.
+        mServiceContext.clearRegisteredReceivers();
+
+        // Withdraw the request and check that the broadcast for disconnection is sent.
+        final ConditionVariable cv4 = registerConnectivityBroadcastThat(1, intent ->
+                !((NetworkInfo) intent.getExtra(EXTRA_NETWORK_INFO, -1)).isConnected()
+                        && intent.getIntExtra(EXTRA_NETWORK_TYPE, -1) == TYPE_MOBILE_SUPL);
+        mCm.unregisterNetworkCallback(callback);
+        waitFor(cv4);
+
+        // Re-file the request and expect the connected broadcast again
+        final ConditionVariable cv5 = registerConnectivityBroadcastThat(1,
+                intent -> intent.getIntExtra(EXTRA_NETWORK_TYPE, -1) == TYPE_MOBILE_SUPL);
+        final TestNetworkCallback callback3 = new TestNetworkCallback();
+        mCm.requestNetwork(legacyRequest, callback3);
+        callback3.expectCallback(CallbackEntry.AVAILABLE, mCellNetworkAgent);
+        waitFor(cv5);
+
+        // Disconnect the network and expect two disconnected broadcasts, one for SUPL and one
+        // for mobile. Use a small hack to check that both have been sent, but the order is
+        // not contractual.
+        final AtomicBoolean vanillaAction = new AtomicBoolean(false);
+        final AtomicBoolean suplAction = new AtomicBoolean(false);
+        final ConditionVariable cv6 = registerConnectivityBroadcastThat(2, intent -> {
+            if (intent.getAction().equals(CONNECTIVITY_ACTION)) {
+                vanillaAction.set(true);
+            } else if (intent.getAction().equals(CONNECTIVITY_ACTION_SUPL)) {
+                suplAction.set(true);
+            }
+            return !((NetworkInfo) intent.getExtra(EXTRA_NETWORK_INFO, -1)).isConnected();
+        });
+        mCellNetworkAgent.disconnect();
+        waitFor(cv6);
+        assertTrue(vanillaAction.get());
+        assertTrue(suplAction.get());
+    }
+
+    @Test
     public void testLingering() throws Exception {
         verifyNoNetwork();
         mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
@@ -1265,7 +1373,7 @@
         assertNull(mCm.getActiveNetworkInfo());
         assertNull(mCm.getActiveNetwork());
         // Test bringing up validated cellular.
-        ConditionVariable cv = waitForConnectivityBroadcasts(1);
+        ConditionVariable cv = registerConnectivityBroadcast(1);
         mCellNetworkAgent.connect(true);
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_CELLULAR);
@@ -1275,7 +1383,7 @@
         assertTrue(mCm.getAllNetworks()[0].equals(mWiFiNetworkAgent.getNetwork()) ||
                 mCm.getAllNetworks()[1].equals(mWiFiNetworkAgent.getNetwork()));
         // Test bringing up validated WiFi.
-        cv = waitForConnectivityBroadcasts(2);
+        cv = registerConnectivityBroadcast(2);
         mWiFiNetworkAgent.connect(true);
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_WIFI);
@@ -1292,7 +1400,7 @@
         assertLength(1, mCm.getAllNetworks());
         assertEquals(mCm.getAllNetworks()[0], mCm.getActiveNetwork());
         // Test WiFi disconnect.
-        cv = waitForConnectivityBroadcasts(1);
+        cv = registerConnectivityBroadcast(1);
         mWiFiNetworkAgent.disconnect();
         waitFor(cv);
         verifyNoNetwork();
@@ -1302,7 +1410,7 @@
     public void testValidatedCellularOutscoresUnvalidatedWiFi() throws Exception {
         // Test bringing up unvalidated WiFi
         mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
-        ConditionVariable cv = waitForConnectivityBroadcasts(1);
+        ConditionVariable cv = registerConnectivityBroadcast(1);
         mWiFiNetworkAgent.connect(false);
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_WIFI);
@@ -1317,17 +1425,17 @@
         verifyActiveNetwork(TRANSPORT_WIFI);
         // Test bringing up validated cellular
         mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
-        cv = waitForConnectivityBroadcasts(2);
+        cv = registerConnectivityBroadcast(2);
         mCellNetworkAgent.connect(true);
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_CELLULAR);
         // Test cellular disconnect.
-        cv = waitForConnectivityBroadcasts(2);
+        cv = registerConnectivityBroadcast(2);
         mCellNetworkAgent.disconnect();
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_WIFI);
         // Test WiFi disconnect.
-        cv = waitForConnectivityBroadcasts(1);
+        cv = registerConnectivityBroadcast(1);
         mWiFiNetworkAgent.disconnect();
         waitFor(cv);
         verifyNoNetwork();
@@ -1337,23 +1445,23 @@
     public void testUnvalidatedWifiOutscoresUnvalidatedCellular() throws Exception {
         // Test bringing up unvalidated cellular.
         mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
-        ConditionVariable cv = waitForConnectivityBroadcasts(1);
+        ConditionVariable cv = registerConnectivityBroadcast(1);
         mCellNetworkAgent.connect(false);
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_CELLULAR);
         // Test bringing up unvalidated WiFi.
         mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
-        cv = waitForConnectivityBroadcasts(2);
+        cv = registerConnectivityBroadcast(2);
         mWiFiNetworkAgent.connect(false);
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_WIFI);
         // Test WiFi disconnect.
-        cv = waitForConnectivityBroadcasts(2);
+        cv = registerConnectivityBroadcast(2);
         mWiFiNetworkAgent.disconnect();
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_CELLULAR);
         // Test cellular disconnect.
-        cv = waitForConnectivityBroadcasts(1);
+        cv = registerConnectivityBroadcast(1);
         mCellNetworkAgent.disconnect();
         waitFor(cv);
         verifyNoNetwork();
@@ -1363,7 +1471,7 @@
     public void testUnlingeringDoesNotValidate() throws Exception {
         // Test bringing up unvalidated WiFi.
         mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
-        ConditionVariable cv = waitForConnectivityBroadcasts(1);
+        ConditionVariable cv = registerConnectivityBroadcast(1);
         mWiFiNetworkAgent.connect(false);
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_WIFI);
@@ -1371,14 +1479,14 @@
                 NET_CAPABILITY_VALIDATED));
         // Test bringing up validated cellular.
         mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
-        cv = waitForConnectivityBroadcasts(2);
+        cv = registerConnectivityBroadcast(2);
         mCellNetworkAgent.connect(true);
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_CELLULAR);
         assertFalse(mCm.getNetworkCapabilities(mWiFiNetworkAgent.getNetwork()).hasCapability(
                 NET_CAPABILITY_VALIDATED));
         // Test cellular disconnect.
-        cv = waitForConnectivityBroadcasts(2);
+        cv = registerConnectivityBroadcast(2);
         mCellNetworkAgent.disconnect();
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_WIFI);
@@ -1391,23 +1499,23 @@
     public void testCellularOutscoresWeakWifi() throws Exception {
         // Test bringing up validated cellular.
         mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
-        ConditionVariable cv = waitForConnectivityBroadcasts(1);
+        ConditionVariable cv = registerConnectivityBroadcast(1);
         mCellNetworkAgent.connect(true);
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_CELLULAR);
         // Test bringing up validated WiFi.
         mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
-        cv = waitForConnectivityBroadcasts(2);
+        cv = registerConnectivityBroadcast(2);
         mWiFiNetworkAgent.connect(true);
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_WIFI);
         // Test WiFi getting really weak.
-        cv = waitForConnectivityBroadcasts(2);
+        cv = registerConnectivityBroadcast(2);
         mWiFiNetworkAgent.adjustScore(-11);
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_CELLULAR);
         // Test WiFi restoring signal strength.
-        cv = waitForConnectivityBroadcasts(2);
+        cv = registerConnectivityBroadcast(2);
         mWiFiNetworkAgent.adjustScore(11);
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_WIFI);
@@ -1427,7 +1535,7 @@
         mCellNetworkAgent.expectDisconnected();
         // Test bringing up validated WiFi.
         mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
-        final ConditionVariable cv = waitForConnectivityBroadcasts(1);
+        final ConditionVariable cv = registerConnectivityBroadcast(1);
         mWiFiNetworkAgent.connect(true);
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_WIFI);
@@ -1446,18 +1554,18 @@
     public void testCellularFallback() throws Exception {
         // Test bringing up validated cellular.
         mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
-        ConditionVariable cv = waitForConnectivityBroadcasts(1);
+        ConditionVariable cv = registerConnectivityBroadcast(1);
         mCellNetworkAgent.connect(true);
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_CELLULAR);
         // Test bringing up validated WiFi.
         mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
-        cv = waitForConnectivityBroadcasts(2);
+        cv = registerConnectivityBroadcast(2);
         mWiFiNetworkAgent.connect(true);
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_WIFI);
         // Reevaluate WiFi (it'll instantly fail DNS).
-        cv = waitForConnectivityBroadcasts(2);
+        cv = registerConnectivityBroadcast(2);
         assertTrue(mCm.getNetworkCapabilities(mWiFiNetworkAgent.getNetwork()).hasCapability(
                 NET_CAPABILITY_VALIDATED));
         mCm.reportBadNetwork(mWiFiNetworkAgent.getNetwork());
@@ -1467,7 +1575,7 @@
                 NET_CAPABILITY_VALIDATED));
         verifyActiveNetwork(TRANSPORT_CELLULAR);
         // Reevaluate cellular (it'll instantly fail DNS).
-        cv = waitForConnectivityBroadcasts(2);
+        cv = registerConnectivityBroadcast(2);
         assertTrue(mCm.getNetworkCapabilities(mCellNetworkAgent.getNetwork()).hasCapability(
                 NET_CAPABILITY_VALIDATED));
         mCm.reportBadNetwork(mCellNetworkAgent.getNetwork());
@@ -1484,18 +1592,18 @@
     public void testWiFiFallback() throws Exception {
         // Test bringing up unvalidated WiFi.
         mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
-        ConditionVariable cv = waitForConnectivityBroadcasts(1);
+        ConditionVariable cv = registerConnectivityBroadcast(1);
         mWiFiNetworkAgent.connect(false);
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_WIFI);
         // Test bringing up validated cellular.
         mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
-        cv = waitForConnectivityBroadcasts(2);
+        cv = registerConnectivityBroadcast(2);
         mCellNetworkAgent.connect(true);
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_CELLULAR);
         // Reevaluate cellular (it'll instantly fail DNS).
-        cv = waitForConnectivityBroadcasts(2);
+        cv = registerConnectivityBroadcast(2);
         assertTrue(mCm.getNetworkCapabilities(mCellNetworkAgent.getNetwork()).hasCapability(
                 NET_CAPABILITY_VALIDATED));
         mCm.reportBadNetwork(mCellNetworkAgent.getNetwork());
@@ -1570,7 +1678,7 @@
         mCm.registerNetworkCallback(cellRequest, cellNetworkCallback);
 
         // Test unvalidated networks
-        ConditionVariable cv = waitForConnectivityBroadcasts(1);
+        ConditionVariable cv = registerConnectivityBroadcast(1);
         mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
         mCellNetworkAgent.connect(false);
         genericNetworkCallback.expectAvailableCallbacksUnvalidated(mCellNetworkAgent);
@@ -1585,7 +1693,7 @@
         assertNoCallbacks(genericNetworkCallback, wifiNetworkCallback, cellNetworkCallback);
         assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork());
 
-        cv = waitForConnectivityBroadcasts(2);
+        cv = registerConnectivityBroadcast(2);
         mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
         mWiFiNetworkAgent.connect(false);
         genericNetworkCallback.expectAvailableCallbacksUnvalidated(mWiFiNetworkAgent);
@@ -1594,7 +1702,7 @@
         waitFor(cv);
         assertNoCallbacks(genericNetworkCallback, wifiNetworkCallback, cellNetworkCallback);
 
-        cv = waitForConnectivityBroadcasts(2);
+        cv = registerConnectivityBroadcast(2);
         mWiFiNetworkAgent.disconnect();
         genericNetworkCallback.expectCallback(CallbackEntry.LOST, mWiFiNetworkAgent);
         wifiNetworkCallback.expectCallback(CallbackEntry.LOST, mWiFiNetworkAgent);
@@ -1602,7 +1710,7 @@
         waitFor(cv);
         assertNoCallbacks(genericNetworkCallback, wifiNetworkCallback, cellNetworkCallback);
 
-        cv = waitForConnectivityBroadcasts(1);
+        cv = registerConnectivityBroadcast(1);
         mCellNetworkAgent.disconnect();
         genericNetworkCallback.expectCallback(CallbackEntry.LOST, mCellNetworkAgent);
         cellNetworkCallback.expectCallback(CallbackEntry.LOST, mCellNetworkAgent);
@@ -1899,9 +2007,17 @@
         mCm.unregisterNetworkCallback(trackDefaultCallback);
     }
 
+    private void grantUsingBackgroundNetworksPermissionForUid(final int uid) throws Exception {
+        final String testPackageName = mContext.getPackageName();
+        when(mPackageManager.getPackageInfo(eq(testPackageName), eq(GET_PERMISSIONS)))
+                .thenReturn(buildPackageInfo(true, uid));
+        mService.mPermissionMonitor.onPackageAdded(testPackageName, uid);
+    }
+
     @Test
     public void testNetworkGoesIntoBackgroundAfterLinger() throws Exception {
         setAlwaysOnNetworks(true);
+        grantUsingBackgroundNetworksPermissionForUid(Binder.getCallingUid());
         NetworkRequest request = new NetworkRequest.Builder()
                 .clearCapabilities()
                 .build();
@@ -2192,7 +2308,7 @@
 
         // Test bringing up validated WiFi.
         mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
-        final ConditionVariable cv = waitForConnectivityBroadcasts(1);
+        final ConditionVariable cv = registerConnectivityBroadcast(1);
         mWiFiNetworkAgent.connect(true);
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_WIFI);
@@ -2220,7 +2336,7 @@
     public void testMMSonCell() throws Exception {
         // Test bringing up cellular without MMS
         mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
-        ConditionVariable cv = waitForConnectivityBroadcasts(1);
+        ConditionVariable cv = registerConnectivityBroadcast(1);
         mCellNetworkAgent.connect(false);
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_CELLULAR);
@@ -2976,6 +3092,7 @@
         // Create a background request. We can't do this ourselves because ConnectivityService
         // doesn't have an API for it. So just turn on mobile data always on.
         setAlwaysOnNetworks(true);
+        grantUsingBackgroundNetworksPermissionForUid(Binder.getCallingUid());
         final NetworkRequest request = new NetworkRequest.Builder().build();
         final NetworkRequest fgRequest = new NetworkRequest.Builder()
                 .addCapability(NET_CAPABILITY_FOREGROUND).build();
@@ -3122,6 +3239,7 @@
 
     @Test
     public void testMobileDataAlwaysOn() throws Exception {
+        grantUsingBackgroundNetworksPermissionForUid(Binder.getCallingUid());
         final TestNetworkCallback cellNetworkCallback = new TestNetworkCallback();
         final NetworkRequest cellRequest = new NetworkRequest.Builder()
                 .addTransportType(TRANSPORT_CELLULAR).build();
@@ -3679,7 +3797,7 @@
         }
 
         mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
-        ConditionVariable cv = waitForConnectivityBroadcasts(1);
+        ConditionVariable cv = registerConnectivityBroadcast(1);
         mWiFiNetworkAgent.connect(true);
         waitFor(cv);
         verifyActiveNetwork(TRANSPORT_WIFI);
@@ -4212,7 +4330,7 @@
         assertNotPinnedToWifi();
 
         // Disconnect cell and wifi.
-        ConditionVariable cv = waitForConnectivityBroadcasts(3);  // cell down, wifi up, wifi down.
+        ConditionVariable cv = registerConnectivityBroadcast(3);  // cell down, wifi up, wifi down.
         mCellNetworkAgent.disconnect();
         mWiFiNetworkAgent.disconnect();
         waitFor(cv);
@@ -4225,7 +4343,7 @@
         assertPinnedToWifiWithWifiDefault();
 
         // ... and is maintained even when that network is no longer the default.
-        cv = waitForConnectivityBroadcasts(1);
+        cv = registerConnectivityBroadcast(1);
         mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
         mCellNetworkAgent.connect(true);
         waitFor(cv);
@@ -4326,7 +4444,7 @@
 
     @Test
     public void testNetworkInfoOfTypeNone() throws Exception {
-        ConditionVariable broadcastCV = waitForConnectivityBroadcasts(1);
+        ConditionVariable broadcastCV = registerConnectivityBroadcast(1);
 
         verifyNoNetwork();
         TestNetworkAgentWrapper wifiAware = new TestNetworkAgentWrapper(TRANSPORT_WIFI_AWARE);
@@ -5526,6 +5644,37 @@
         mCm.unregisterNetworkCallback(defaultCallback);
     }
 
+    @Ignore // 40%+ flakiness : figure out why and re-enable.
+    @Test
+    public final void testBatteryStatsNetworkType() throws Exception {
+        final LinkProperties cellLp = new LinkProperties();
+        cellLp.setInterfaceName("cell0");
+        mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR, cellLp);
+        mCellNetworkAgent.connect(true);
+        waitForIdle();
+        verify(mBatteryStatsService).noteNetworkInterfaceType(cellLp.getInterfaceName(),
+                TYPE_MOBILE);
+        reset(mBatteryStatsService);
+
+        final LinkProperties wifiLp = new LinkProperties();
+        wifiLp.setInterfaceName("wifi0");
+        mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI, wifiLp);
+        mWiFiNetworkAgent.connect(true);
+        waitForIdle();
+        verify(mBatteryStatsService).noteNetworkInterfaceType(wifiLp.getInterfaceName(),
+                TYPE_WIFI);
+        reset(mBatteryStatsService);
+
+        mCellNetworkAgent.disconnect();
+
+        cellLp.setInterfaceName("wifi0");
+        mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR, cellLp);
+        mCellNetworkAgent.connect(true);
+        waitForIdle();
+        verify(mBatteryStatsService).noteNetworkInterfaceType(cellLp.getInterfaceName(),
+                TYPE_MOBILE);
+    }
+
     /**
      * Make simulated InterfaceConfig for Nat464Xlat to query clat lower layer info.
      */
@@ -5566,25 +5715,28 @@
         mCm.registerNetworkCallback(networkRequest, networkCallback);
 
         // Prepare ipv6 only link properties.
-        mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
-        final int cellNetId = mCellNetworkAgent.getNetwork().netId;
         final LinkProperties cellLp = new LinkProperties();
         cellLp.setInterfaceName(MOBILE_IFNAME);
         cellLp.addLinkAddress(myIpv6);
         cellLp.addRoute(new RouteInfo((IpPrefix) null, myIpv6.getAddress(), MOBILE_IFNAME));
         cellLp.addRoute(new RouteInfo(myIpv6, null, MOBILE_IFNAME));
+        mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR, cellLp);
         reset(mNetworkManagementService);
         reset(mMockDnsResolver);
         reset(mMockNetd);
+        reset(mBatteryStatsService);
         when(mNetworkManagementService.getInterfaceConfig(CLAT_PREFIX + MOBILE_IFNAME))
                 .thenReturn(getClatInterfaceConfig(myIpv4));
 
         // Connect with ipv6 link properties. Expect prefix discovery to be started.
-        mCellNetworkAgent.sendLinkProperties(cellLp);
         mCellNetworkAgent.connect(true);
+        final int cellNetId = mCellNetworkAgent.getNetwork().netId;
+        waitForIdle();
 
         verify(mMockNetd, times(1)).networkCreatePhysical(eq(cellNetId), anyInt());
         verify(mMockDnsResolver, times(1)).createNetworkCache(eq(cellNetId));
+        verify(mBatteryStatsService).noteNetworkInterfaceType(cellLp.getInterfaceName(),
+                TYPE_MOBILE);
 
         networkCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
         verify(mMockDnsResolver, times(1)).startPrefix64Discovery(cellNetId);
@@ -5600,6 +5752,11 @@
         verify(mMockDnsResolver, times(1)).stopPrefix64Discovery(cellNetId);
         verify(mMockDnsResolver, atLeastOnce()).setResolverConfiguration(any());
 
+        // Make sure BatteryStats was not told about any v4- interfaces, as none should have
+        // come online yet.
+        waitForIdle();
+        verify(mBatteryStatsService, never()).noteNetworkInterfaceType(startsWith("v4-"), anyInt());
+
         verifyNoMoreInteractions(mMockNetd);
         verifyNoMoreInteractions(mMockDnsResolver);
         reset(mMockNetd);
@@ -5646,6 +5803,11 @@
         assertEquals(1, resolvrParams.servers.length);
         assertTrue(ArrayUtils.contains(resolvrParams.servers, "8.8.8.8"));
 
+        for (final LinkProperties stackedLp : stackedLpsAfterChange) {
+            verify(mBatteryStatsService).noteNetworkInterfaceType(stackedLp.getInterfaceName(),
+                    TYPE_MOBILE);
+        }
+
         // Add ipv4 address, expect that clatd and prefix discovery are stopped and stacked
         // linkproperties are cleaned up.
         cellLp.addLinkAddress(myIpv4);
@@ -5778,7 +5940,7 @@
                 .destroyNetworkCache(eq(mCellNetworkAgent.getNetwork().netId));
 
         // Disconnect wifi
-        ConditionVariable cv = waitForConnectivityBroadcasts(1);
+        ConditionVariable cv = registerConnectivityBroadcast(1);
         reset(mNetworkManagementService);
         mWiFiNetworkAgent.disconnect();
         waitFor(cv);
@@ -6075,7 +6237,14 @@
 
     private static PackageInfo buildPackageInfo(boolean hasSystemPermission, int uid) {
         final PackageInfo packageInfo = new PackageInfo();
-        packageInfo.requestedPermissions = new String[0];
+        if (hasSystemPermission) {
+            packageInfo.requestedPermissions = new String[] {
+                    CHANGE_NETWORK_STATE, CONNECTIVITY_USE_RESTRICTED_NETWORKS };
+            packageInfo.requestedPermissionsFlags = new int[] {
+                    REQUESTED_PERMISSION_GRANTED, REQUESTED_PERMISSION_GRANTED };
+        } else {
+            packageInfo.requestedPermissions = new String[0];
+        }
         packageInfo.applicationInfo = new ApplicationInfo();
         packageInfo.applicationInfo.privateFlags = 0;
         packageInfo.applicationInfo.uid = UserHandle.getUid(UserHandle.USER_SYSTEM,
diff --git a/tests/net/java/com/android/server/LegacyTypeTrackerTest.kt b/tests/net/java/com/android/server/LegacyTypeTrackerTest.kt
index f045369..42d4cf3 100644
--- a/tests/net/java/com/android/server/LegacyTypeTrackerTest.kt
+++ b/tests/net/java/com/android/server/LegacyTypeTrackerTest.kt
@@ -18,6 +18,7 @@
 
 import android.net.ConnectivityManager.TYPE_ETHERNET
 import android.net.ConnectivityManager.TYPE_MOBILE
+import android.net.ConnectivityManager.TYPE_MOBILE_SUPL
 import android.net.ConnectivityManager.TYPE_WIFI
 import android.net.ConnectivityManager.TYPE_WIMAX
 import android.net.NetworkInfo.DetailedState.CONNECTED
@@ -46,7 +47,7 @@
 @RunWith(AndroidJUnit4::class)
 @SmallTest
 class LegacyTypeTrackerTest {
-    private val supportedTypes = arrayOf(TYPE_MOBILE, TYPE_WIFI, TYPE_ETHERNET)
+    private val supportedTypes = arrayOf(TYPE_MOBILE, TYPE_WIFI, TYPE_ETHERNET, TYPE_MOBILE_SUPL)
 
     private val mMockService = mock(ConnectivityService::class.java).apply {
         doReturn(false).`when`(this).isDefaultNetwork(any())
@@ -70,6 +71,26 @@
     }
 
     @Test
+    fun testSupl() {
+        val mobileNai = mock(NetworkAgentInfo::class.java)
+        mTracker.add(TYPE_MOBILE, mobileNai)
+        verify(mMockService).sendLegacyNetworkBroadcast(mobileNai, CONNECTED, TYPE_MOBILE)
+        reset(mMockService)
+        mTracker.add(TYPE_MOBILE_SUPL, mobileNai)
+        verify(mMockService).sendLegacyNetworkBroadcast(mobileNai, CONNECTED, TYPE_MOBILE_SUPL)
+        reset(mMockService)
+        mTracker.remove(TYPE_MOBILE_SUPL, mobileNai, false /* wasDefault */)
+        verify(mMockService).sendLegacyNetworkBroadcast(mobileNai, DISCONNECTED, TYPE_MOBILE_SUPL)
+        reset(mMockService)
+        mTracker.add(TYPE_MOBILE_SUPL, mobileNai)
+        verify(mMockService).sendLegacyNetworkBroadcast(mobileNai, CONNECTED, TYPE_MOBILE_SUPL)
+        reset(mMockService)
+        mTracker.remove(mobileNai, false)
+        verify(mMockService).sendLegacyNetworkBroadcast(mobileNai, DISCONNECTED, TYPE_MOBILE_SUPL)
+        verify(mMockService).sendLegacyNetworkBroadcast(mobileNai, DISCONNECTED, TYPE_MOBILE)
+    }
+
+    @Test
     fun testAddNetwork() {
         val mobileNai = mock(NetworkAgentInfo::class.java)
         val wifiNai = mock(NetworkAgentInfo::class.java)
diff --git a/tests/net/java/com/android/server/connectivity/LingerMonitorTest.java b/tests/net/java/com/android/server/connectivity/LingerMonitorTest.java
index 142769f..535298f 100644
--- a/tests/net/java/com/android/server/connectivity/LingerMonitorTest.java
+++ b/tests/net/java/com/android/server/connectivity/LingerMonitorTest.java
@@ -39,6 +39,7 @@
 import android.net.NetworkFactory;
 import android.net.NetworkInfo;
 import android.net.NetworkMisc;
+import android.net.NetworkScore;
 import android.os.INetworkManagementService;
 import android.text.format.DateUtils;
 
@@ -354,8 +355,10 @@
         NetworkCapabilities caps = new NetworkCapabilities();
         caps.addCapability(0);
         caps.addTransportType(transport);
+        NetworkScore ns = new NetworkScore();
+        ns.putIntExtension(NetworkScore.LEGACY_SCORE, 50);
         NetworkAgentInfo nai = new NetworkAgentInfo(null, null, new Network(netId), info, null,
-                caps, 50, mCtx, null, mMisc, mConnService, mNetd, mDnsResolver, mNMS,
+                caps, ns, mCtx, null, mMisc, mConnService, mNetd, mDnsResolver, mNMS,
                 NetworkFactory.SerialNumber.NONE);
         nai.everValidated = true;
         return nai;
diff --git a/tests/net/java/com/android/server/connectivity/NetworkNotificationManagerTest.java b/tests/net/java/com/android/server/connectivity/NetworkNotificationManagerTest.java
index 9580763..d57f225 100644
--- a/tests/net/java/com/android/server/connectivity/NetworkNotificationManagerTest.java
+++ b/tests/net/java/com/android/server/connectivity/NetworkNotificationManagerTest.java
@@ -20,6 +20,7 @@
 
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.anyInt;
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.eq;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.reset;
@@ -40,6 +41,7 @@
 import androidx.test.filters.SmallTest;
 import androidx.test.runner.AndroidJUnit4;
 
+import com.android.internal.R;
 import com.android.server.connectivity.NetworkNotificationManager.NotificationType;
 
 import org.junit.Before;
@@ -60,12 +62,19 @@
 
     static final NetworkCapabilities CELL_CAPABILITIES = new NetworkCapabilities();
     static final NetworkCapabilities WIFI_CAPABILITIES = new NetworkCapabilities();
+    static final NetworkCapabilities VPN_CAPABILITIES = new NetworkCapabilities();
     static {
         CELL_CAPABILITIES.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
         CELL_CAPABILITIES.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
 
         WIFI_CAPABILITIES.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
         WIFI_CAPABILITIES.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
+
+        // Set the underyling network to wifi.
+        VPN_CAPABILITIES.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
+        VPN_CAPABILITIES.addTransportType(NetworkCapabilities.TRANSPORT_VPN);
+        VPN_CAPABILITIES.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
+        VPN_CAPABILITIES.removeCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN);
     }
 
     @Mock Context mCtx;
@@ -75,6 +84,7 @@
     @Mock NotificationManager mNotificationManager;
     @Mock NetworkAgentInfo mWifiNai;
     @Mock NetworkAgentInfo mCellNai;
+    @Mock NetworkAgentInfo mVpnNai;
     @Mock NetworkInfo mNetworkInfo;
     ArgumentCaptor<Notification> mCaptor;
 
@@ -88,6 +98,9 @@
         mWifiNai.networkInfo = mNetworkInfo;
         mCellNai.networkCapabilities = CELL_CAPABILITIES;
         mCellNai.networkInfo = mNetworkInfo;
+        mVpnNai.networkCapabilities = VPN_CAPABILITIES;
+        mVpnNai.networkInfo = mNetworkInfo;
+        doReturn(true).when(mVpnNai).isVPN();
         when(mCtx.getResources()).thenReturn(mResources);
         when(mCtx.getPackageManager()).thenReturn(mPm);
         when(mCtx.getApplicationInfo()).thenReturn(new ApplicationInfo());
@@ -97,6 +110,35 @@
         mManager = new NetworkNotificationManager(mCtx, mTelephonyManager, mNotificationManager);
     }
 
+    private void verifyTitleByNetwork(final int id, final NetworkAgentInfo nai, final int title) {
+        final String tag = NetworkNotificationManager.tagFor(id);
+        mManager.showNotification(id, PRIVATE_DNS_BROKEN, nai, null, null, true);
+        verify(mNotificationManager, times(1))
+                .notifyAsUser(eq(tag), eq(PRIVATE_DNS_BROKEN.eventId), any(), any());
+        final int transportType = NetworkNotificationManager.approximateTransportType(nai);
+        if (transportType == NetworkCapabilities.TRANSPORT_WIFI) {
+            verify(mResources, times(1)).getString(title, eq(any()));
+        } else {
+            verify(mResources, times(1)).getString(title);
+        }
+        verify(mResources, times(1)).getString(R.string.private_dns_broken_detailed);
+    }
+
+    @Test
+    public void testTitleOfPrivateDnsBroken() {
+        // Test the title of mobile data.
+        verifyTitleByNetwork(100, mCellNai, R.string.mobile_no_internet);
+        reset(mResources);
+
+        // Test the title of wifi.
+        verifyTitleByNetwork(101, mWifiNai, R.string.wifi_no_internet);
+        reset(mResources);
+
+        // Test the title of other networks.
+        verifyTitleByNetwork(102, mVpnNai, R.string.other_networks_no_internet);
+        reset(mResources);
+    }
+
     @Test
     public void testNotificationsShownAndCleared() {
         final int NETWORK_ID_BASE = 100;
diff --git a/tests/net/java/com/android/server/connectivity/PermissionMonitorTest.java b/tests/net/java/com/android/server/connectivity/PermissionMonitorTest.java
index 7029218..7fee7b7 100644
--- a/tests/net/java/com/android/server/connectivity/PermissionMonitorTest.java
+++ b/tests/net/java/com/android/server/connectivity/PermissionMonitorTest.java
@@ -27,6 +27,7 @@
 import static android.content.pm.ApplicationInfo.PRIVATE_FLAG_PRODUCT;
 import static android.content.pm.ApplicationInfo.PRIVATE_FLAG_VENDOR;
 import static android.content.pm.PackageInfo.REQUESTED_PERMISSION_GRANTED;
+import static android.content.pm.PackageInfo.REQUESTED_PERMISSION_REQUIRED;
 import static android.content.pm.PackageManager.GET_PERMISSIONS;
 import static android.content.pm.PackageManager.MATCH_ANY_USER;
 import static android.os.Process.SYSTEM_UID;
@@ -36,6 +37,7 @@
 
 import static junit.framework.Assert.fail;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
@@ -102,7 +104,6 @@
     private static final String MOCK_PACKAGE2 = "appName2";
     private static final String SYSTEM_PACKAGE1 = "sysName1";
     private static final String SYSTEM_PACKAGE2 = "sysName2";
-    private static final String VPN_PACKAGE = "vpnApp";
     private static final String PARTITION_SYSTEM = "system";
     private static final String PARTITION_OEM = "oem";
     private static final String PARTITION_PRODUCT = "product";
@@ -145,28 +146,31 @@
         mObserver = observerCaptor.getValue();
     }
 
-    private boolean hasBgPermission(String partition, int targetSdkVersion, int uid,
-            String... permission) throws Exception {
-        final PackageInfo packageInfo = packageInfoWithPermissions(permission, partition);
+    private boolean hasRestrictedNetworkPermission(String partition, int targetSdkVersion, int uid,
+            String... permissions) {
+        final PackageInfo packageInfo =
+                packageInfoWithPermissions(REQUESTED_PERMISSION_GRANTED, permissions, partition);
         packageInfo.applicationInfo.targetSdkVersion = targetSdkVersion;
         packageInfo.applicationInfo.uid = uid;
-        when(mPackageManager.getPackageInfoAsUser(
-                eq(MOCK_PACKAGE1), eq(GET_PERMISSIONS), anyInt())).thenReturn(packageInfo);
-        when(mPackageManager.getPackagesForUid(anyInt())).thenReturn(new String[] {MOCK_PACKAGE1});
-        return mPermissionMonitor.hasUseBackgroundNetworksPermission(uid);
+        return mPermissionMonitor.hasRestrictedNetworkPermission(packageInfo);
     }
 
-    private static PackageInfo packageInfoWithPermissions(String[] permissions, String partition) {
+    private static PackageInfo systemPackageInfoWithPermissions(String... permissions) {
+        return packageInfoWithPermissions(
+                REQUESTED_PERMISSION_GRANTED, permissions, PARTITION_SYSTEM);
+    }
+
+    private static PackageInfo vendorPackageInfoWithPermissions(String... permissions) {
+        return packageInfoWithPermissions(
+                REQUESTED_PERMISSION_GRANTED, permissions, PARTITION_VENDOR);
+    }
+
+    private static PackageInfo packageInfoWithPermissions(int permissionsFlags,
+            String[] permissions, String partition) {
         int[] requestedPermissionsFlags = new int[permissions.length];
         for (int i = 0; i < permissions.length; i++) {
-            requestedPermissionsFlags[i] = REQUESTED_PERMISSION_GRANTED;
+            requestedPermissionsFlags[i] = permissionsFlags;
         }
-        return packageInfoWithPermissions(permissions, partition,
-                requestedPermissionsFlags);
-    }
-
-    private static PackageInfo packageInfoWithPermissions(String[] permissions, String partition,
-            int[] requestedPermissionsFlags) {
         final PackageInfo packageInfo = new PackageInfo();
         packageInfo.requestedPermissions = permissions;
         packageInfo.applicationInfo = new ApplicationInfo();
@@ -190,12 +194,10 @@
     private static PackageInfo buildPackageInfo(boolean hasSystemPermission, int uid, int userId) {
         final PackageInfo pkgInfo;
         if (hasSystemPermission) {
-            final String[] systemPermissions = new String[]{
-                    CHANGE_NETWORK_STATE, NETWORK_STACK, CONNECTIVITY_USE_RESTRICTED_NETWORKS
-            };
-            pkgInfo = packageInfoWithPermissions(systemPermissions, PARTITION_SYSTEM);
+            pkgInfo = systemPackageInfoWithPermissions(
+                    CHANGE_NETWORK_STATE, NETWORK_STACK, CONNECTIVITY_USE_RESTRICTED_NETWORKS);
         } else {
-            pkgInfo = packageInfoWithPermissions(new String[] {}, "");
+            pkgInfo = packageInfoWithPermissions(REQUESTED_PERMISSION_GRANTED, new String[] {}, "");
         }
         pkgInfo.applicationInfo.uid = UserHandle.getUid(userId, UserHandle.getAppId(uid));
         return pkgInfo;
@@ -203,82 +205,151 @@
 
     @Test
     public void testHasPermission() {
-        PackageInfo app = packageInfoWithPermissions(new String[] {}, PARTITION_SYSTEM);
+        PackageInfo app = systemPackageInfoWithPermissions();
         assertFalse(mPermissionMonitor.hasPermission(app, CHANGE_NETWORK_STATE));
         assertFalse(mPermissionMonitor.hasPermission(app, NETWORK_STACK));
         assertFalse(mPermissionMonitor.hasPermission(app, CONNECTIVITY_USE_RESTRICTED_NETWORKS));
         assertFalse(mPermissionMonitor.hasPermission(app, CONNECTIVITY_INTERNAL));
 
-        app = packageInfoWithPermissions(new String[] {
-            CHANGE_NETWORK_STATE, NETWORK_STACK
-        }, PARTITION_SYSTEM);
+        app = systemPackageInfoWithPermissions(CHANGE_NETWORK_STATE, NETWORK_STACK);
         assertTrue(mPermissionMonitor.hasPermission(app, CHANGE_NETWORK_STATE));
         assertTrue(mPermissionMonitor.hasPermission(app, NETWORK_STACK));
         assertFalse(mPermissionMonitor.hasPermission(app, CONNECTIVITY_USE_RESTRICTED_NETWORKS));
         assertFalse(mPermissionMonitor.hasPermission(app, CONNECTIVITY_INTERNAL));
 
-        app = packageInfoWithPermissions(new String[] {
-            CONNECTIVITY_USE_RESTRICTED_NETWORKS, CONNECTIVITY_INTERNAL
-        }, PARTITION_SYSTEM);
+        app = systemPackageInfoWithPermissions(
+                CONNECTIVITY_USE_RESTRICTED_NETWORKS, CONNECTIVITY_INTERNAL);
         assertFalse(mPermissionMonitor.hasPermission(app, CHANGE_NETWORK_STATE));
         assertFalse(mPermissionMonitor.hasPermission(app, NETWORK_STACK));
         assertTrue(mPermissionMonitor.hasPermission(app, CONNECTIVITY_USE_RESTRICTED_NETWORKS));
         assertTrue(mPermissionMonitor.hasPermission(app, CONNECTIVITY_INTERNAL));
+
+        app = packageInfoWithPermissions(REQUESTED_PERMISSION_REQUIRED, new String[] {
+                CONNECTIVITY_USE_RESTRICTED_NETWORKS, CONNECTIVITY_INTERNAL, NETWORK_STACK },
+                PARTITION_SYSTEM);
+        assertFalse(mPermissionMonitor.hasPermission(app, CHANGE_NETWORK_STATE));
+        assertFalse(mPermissionMonitor.hasPermission(app, NETWORK_STACK));
+        assertFalse(mPermissionMonitor.hasPermission(app, CONNECTIVITY_USE_RESTRICTED_NETWORKS));
+        assertFalse(mPermissionMonitor.hasPermission(app, CONNECTIVITY_INTERNAL));
+
+        app = systemPackageInfoWithPermissions(CHANGE_NETWORK_STATE);
+        app.requestedPermissions = null;
+        assertFalse(mPermissionMonitor.hasPermission(app, CHANGE_NETWORK_STATE));
+
+        app = systemPackageInfoWithPermissions(CHANGE_NETWORK_STATE);
+        app.requestedPermissionsFlags = null;
+        assertFalse(mPermissionMonitor.hasPermission(app, CHANGE_NETWORK_STATE));
     }
 
     @Test
     public void testIsVendorApp() {
-        PackageInfo app = packageInfoWithPermissions(new String[] {}, PARTITION_SYSTEM);
+        PackageInfo app = systemPackageInfoWithPermissions();
         assertFalse(mPermissionMonitor.isVendorApp(app.applicationInfo));
-        app = packageInfoWithPermissions(new String[] {}, PARTITION_OEM);
+        app = packageInfoWithPermissions(REQUESTED_PERMISSION_GRANTED,
+                new String[] {}, PARTITION_OEM);
         assertTrue(mPermissionMonitor.isVendorApp(app.applicationInfo));
-        app = packageInfoWithPermissions(new String[] {}, PARTITION_PRODUCT);
+        app = packageInfoWithPermissions(REQUESTED_PERMISSION_GRANTED,
+                new String[] {}, PARTITION_PRODUCT);
         assertTrue(mPermissionMonitor.isVendorApp(app.applicationInfo));
-        app = packageInfoWithPermissions(new String[] {}, PARTITION_VENDOR);
+        app = vendorPackageInfoWithPermissions();
         assertTrue(mPermissionMonitor.isVendorApp(app.applicationInfo));
     }
 
     @Test
+    public void testHasNetworkPermission() {
+        PackageInfo app = systemPackageInfoWithPermissions();
+        assertFalse(mPermissionMonitor.hasNetworkPermission(app));
+        app = systemPackageInfoWithPermissions(CHANGE_NETWORK_STATE);
+        assertTrue(mPermissionMonitor.hasNetworkPermission(app));
+        app = systemPackageInfoWithPermissions(NETWORK_STACK);
+        assertFalse(mPermissionMonitor.hasNetworkPermission(app));
+        app = systemPackageInfoWithPermissions(CONNECTIVITY_USE_RESTRICTED_NETWORKS);
+        assertFalse(mPermissionMonitor.hasNetworkPermission(app));
+    }
+
+    @Test
+    public void testHasRestrictedNetworkPermission() {
+        assertFalse(hasRestrictedNetworkPermission(PARTITION_SYSTEM, VERSION_P, MOCK_UID1));
+        assertFalse(hasRestrictedNetworkPermission(
+                PARTITION_SYSTEM, VERSION_P, MOCK_UID1, CHANGE_NETWORK_STATE));
+        assertTrue(hasRestrictedNetworkPermission(
+                PARTITION_SYSTEM, VERSION_P, MOCK_UID1, NETWORK_STACK));
+        assertTrue(hasRestrictedNetworkPermission(
+                PARTITION_SYSTEM, VERSION_P, MOCK_UID1, CONNECTIVITY_INTERNAL));
+        assertTrue(hasRestrictedNetworkPermission(
+                PARTITION_SYSTEM, VERSION_P, MOCK_UID1, CONNECTIVITY_USE_RESTRICTED_NETWORKS));
+        assertFalse(hasRestrictedNetworkPermission(
+                PARTITION_SYSTEM, VERSION_P, MOCK_UID1, CHANGE_WIFI_STATE));
+
+        assertFalse(hasRestrictedNetworkPermission(PARTITION_SYSTEM, VERSION_Q, MOCK_UID1));
+        assertFalse(hasRestrictedNetworkPermission(
+                PARTITION_SYSTEM, VERSION_Q, MOCK_UID1, CHANGE_WIFI_STATE));
+    }
+
+    @Test
+    public void testHasRestrictedNetworkPermissionSystemUid() {
+        doReturn(VERSION_P).when(mPermissionMonitor).getDeviceFirstSdkInt();
+        assertTrue(hasRestrictedNetworkPermission(PARTITION_SYSTEM, VERSION_P, SYSTEM_UID));
+        assertTrue(hasRestrictedNetworkPermission(
+                PARTITION_SYSTEM, VERSION_P, SYSTEM_UID, CHANGE_WIFI_STATE));
+        assertTrue(hasRestrictedNetworkPermission(
+                PARTITION_SYSTEM, VERSION_P, SYSTEM_UID, CONNECTIVITY_USE_RESTRICTED_NETWORKS));
+
+        doReturn(VERSION_Q).when(mPermissionMonitor).getDeviceFirstSdkInt();
+        assertFalse(hasRestrictedNetworkPermission(PARTITION_SYSTEM, VERSION_Q, SYSTEM_UID));
+        assertFalse(hasRestrictedNetworkPermission(
+                PARTITION_SYSTEM, VERSION_Q, SYSTEM_UID, CHANGE_WIFI_STATE));
+        assertTrue(hasRestrictedNetworkPermission(
+                PARTITION_SYSTEM, VERSION_Q, SYSTEM_UID, CONNECTIVITY_USE_RESTRICTED_NETWORKS));
+    }
+
+    @Test
+    public void testHasRestrictedNetworkPermissionVendorApp() {
+        assertTrue(hasRestrictedNetworkPermission(PARTITION_VENDOR, VERSION_P, MOCK_UID1));
+        assertTrue(hasRestrictedNetworkPermission(
+                PARTITION_VENDOR, VERSION_P, MOCK_UID1, CHANGE_NETWORK_STATE));
+        assertTrue(hasRestrictedNetworkPermission(
+                PARTITION_VENDOR, VERSION_P, MOCK_UID1, NETWORK_STACK));
+        assertTrue(hasRestrictedNetworkPermission(
+                PARTITION_VENDOR, VERSION_P, MOCK_UID1, CONNECTIVITY_INTERNAL));
+        assertTrue(hasRestrictedNetworkPermission(
+                PARTITION_VENDOR, VERSION_P, MOCK_UID1, CONNECTIVITY_USE_RESTRICTED_NETWORKS));
+        assertTrue(hasRestrictedNetworkPermission(
+                PARTITION_VENDOR, VERSION_P, MOCK_UID1, CHANGE_WIFI_STATE));
+
+        assertFalse(hasRestrictedNetworkPermission(PARTITION_VENDOR, VERSION_Q, MOCK_UID1));
+        assertFalse(hasRestrictedNetworkPermission(
+                PARTITION_VENDOR, VERSION_Q, MOCK_UID1, CHANGE_WIFI_STATE));
+        assertFalse(hasRestrictedNetworkPermission(
+                PARTITION_VENDOR, VERSION_Q, MOCK_UID1, CHANGE_NETWORK_STATE));
+    }
+
+    private void assertBackgroundPermission(boolean hasPermission, String name, int uid,
+            String... permissions) throws Exception {
+        when(mPackageManager.getPackageInfo(eq(name), anyInt()))
+                .thenReturn(packageInfoWithPermissions(
+                        REQUESTED_PERMISSION_GRANTED, permissions, PARTITION_SYSTEM));
+        mPermissionMonitor.onPackageAdded(name, uid);
+        assertEquals(hasPermission, mPermissionMonitor.hasUseBackgroundNetworksPermission(uid));
+    }
+
+    @Test
     public void testHasUseBackgroundNetworksPermission() throws Exception {
-        assertFalse(hasBgPermission(PARTITION_SYSTEM, VERSION_P, MOCK_UID1));
-        assertTrue(hasBgPermission(PARTITION_SYSTEM, VERSION_P, MOCK_UID1, CHANGE_NETWORK_STATE));
-        assertTrue(hasBgPermission(PARTITION_SYSTEM, VERSION_P, MOCK_UID1, NETWORK_STACK));
-        assertTrue(hasBgPermission(PARTITION_SYSTEM, VERSION_P, MOCK_UID1, CONNECTIVITY_INTERNAL));
-        assertTrue(hasBgPermission(PARTITION_SYSTEM, VERSION_P, MOCK_UID1,
-                CONNECTIVITY_USE_RESTRICTED_NETWORKS));
-        assertFalse(hasBgPermission(PARTITION_SYSTEM, VERSION_P, MOCK_UID1, CHANGE_WIFI_STATE));
+        assertFalse(mPermissionMonitor.hasUseBackgroundNetworksPermission(SYSTEM_UID));
+        assertBackgroundPermission(false, SYSTEM_PACKAGE1, SYSTEM_UID);
+        assertBackgroundPermission(false, SYSTEM_PACKAGE1, SYSTEM_UID, CHANGE_WIFI_STATE);
+        assertBackgroundPermission(true, SYSTEM_PACKAGE1, SYSTEM_UID, CHANGE_NETWORK_STATE);
+        assertBackgroundPermission(true, SYSTEM_PACKAGE1, SYSTEM_UID, NETWORK_STACK);
 
-        assertFalse(hasBgPermission(PARTITION_SYSTEM, VERSION_Q, MOCK_UID1));
-        assertFalse(hasBgPermission(PARTITION_SYSTEM, VERSION_Q, MOCK_UID1, CHANGE_WIFI_STATE));
-    }
+        assertFalse(mPermissionMonitor.hasUseBackgroundNetworksPermission(MOCK_UID1));
+        assertBackgroundPermission(false, MOCK_PACKAGE1, MOCK_UID1);
+        assertBackgroundPermission(true, MOCK_PACKAGE1, MOCK_UID1,
+                CONNECTIVITY_USE_RESTRICTED_NETWORKS);
 
-    @Test
-    public void testHasUseBackgroundNetworksPermissionSystemUid() throws Exception {
-        doReturn(VERSION_P).when(mPermissionMonitor).getDeviceFirstSdkInt();
-        assertTrue(hasBgPermission(PARTITION_SYSTEM, VERSION_P, SYSTEM_UID));
-        assertTrue(hasBgPermission(PARTITION_SYSTEM, VERSION_P, SYSTEM_UID, CHANGE_WIFI_STATE));
-        assertTrue(hasBgPermission(PARTITION_SYSTEM, VERSION_P, SYSTEM_UID,
-                CONNECTIVITY_USE_RESTRICTED_NETWORKS));
-
-        doReturn(VERSION_Q).when(mPermissionMonitor).getDeviceFirstSdkInt();
-        assertFalse(hasBgPermission(PARTITION_SYSTEM, VERSION_Q, SYSTEM_UID));
-        assertFalse(hasBgPermission(PARTITION_SYSTEM, VERSION_Q, SYSTEM_UID, CHANGE_WIFI_STATE));
-        assertTrue(hasBgPermission(PARTITION_SYSTEM, VERSION_Q, SYSTEM_UID,
-                CONNECTIVITY_USE_RESTRICTED_NETWORKS));
-    }
-
-    @Test
-    public void testHasUseBackgroundNetworksPermissionVendorApp() throws Exception {
-        assertTrue(hasBgPermission(PARTITION_VENDOR, VERSION_P, MOCK_UID1));
-        assertTrue(hasBgPermission(PARTITION_VENDOR, VERSION_P, MOCK_UID1, CHANGE_NETWORK_STATE));
-        assertTrue(hasBgPermission(PARTITION_VENDOR, VERSION_P, MOCK_UID1, NETWORK_STACK));
-        assertTrue(hasBgPermission(PARTITION_VENDOR, VERSION_P, MOCK_UID1, CONNECTIVITY_INTERNAL));
-        assertTrue(hasBgPermission(PARTITION_VENDOR, VERSION_P, MOCK_UID1,
-                CONNECTIVITY_USE_RESTRICTED_NETWORKS));
-        assertTrue(hasBgPermission(PARTITION_VENDOR, VERSION_P, MOCK_UID1, CHANGE_WIFI_STATE));
-
-        assertFalse(hasBgPermission(PARTITION_VENDOR, VERSION_Q, MOCK_UID1));
-        assertFalse(hasBgPermission(PARTITION_VENDOR, VERSION_Q, MOCK_UID1, CHANGE_WIFI_STATE));
+        assertFalse(mPermissionMonitor.hasUseBackgroundNetworksPermission(MOCK_UID2));
+        assertBackgroundPermission(false, MOCK_PACKAGE2, MOCK_UID2);
+        assertBackgroundPermission(true, MOCK_PACKAGE2, MOCK_UID2,
+                CONNECTIVITY_INTERNAL);
     }
 
     private class NetdMonitor {
@@ -563,7 +634,8 @@
 
     private PackageInfo setPackagePermissions(String packageName, int uid, String[] permissions)
             throws Exception {
-        PackageInfo packageInfo = packageInfoWithPermissions(permissions, PARTITION_SYSTEM);
+        PackageInfo packageInfo = packageInfoWithPermissions(
+                REQUESTED_PERMISSION_GRANTED, permissions, PARTITION_SYSTEM);
         when(mPackageManager.getPackageInfo(eq(packageName), anyInt())).thenReturn(packageInfo);
         when(mPackageManager.getPackagesForUid(eq(uid))).thenReturn(new String[]{packageName});
         return packageInfo;
@@ -599,7 +671,7 @@
 
         // Install another package with the same uid and no permissions should not cause the UID to
         // lose permissions.
-        PackageInfo packageInfo2 = packageInfoWithPermissions(new String[]{}, PARTITION_SYSTEM);
+        PackageInfo packageInfo2 = systemPackageInfoWithPermissions();
         when(mPackageManager.getPackageInfo(eq(MOCK_PACKAGE2), anyInt())).thenReturn(packageInfo2);
         when(mPackageManager.getPackagesForUid(MOCK_UID1))
               .thenReturn(new String[]{MOCK_PACKAGE1, MOCK_PACKAGE2});
@@ -660,8 +732,7 @@
                 | INetd.PERMISSION_UPDATE_DEVICE_STATS, new int[]{MOCK_UID1});
 
         // Mock another package with the same uid but different permissions.
-        PackageInfo packageInfo2 = packageInfoWithPermissions(new String[] {INTERNET},
-                PARTITION_SYSTEM);
+        PackageInfo packageInfo2 = systemPackageInfoWithPermissions(INTERNET);
         when(mPackageManager.getPackageInfo(eq(MOCK_PACKAGE2), anyInt())).thenReturn(packageInfo2);
         when(mPackageManager.getPackagesForUid(MOCK_UID1)).thenReturn(new String[]{
                 MOCK_PACKAGE2});
diff --git a/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java b/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java
index 1d29a82..4d42a61 100644
--- a/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java
+++ b/tests/net/java/com/android/server/net/NetworkStatsServiceTest.java
@@ -192,8 +192,8 @@
 
         mService = new NetworkStatsService(
                 mServiceContext, mNetManager, mAlarmManager, wakeLock, mClock,
-                TelephonyManager.getDefault(), mSettings, mStatsFactory,
-                new NetworkStatsObservers(),  mStatsDir, getBaseDir(mStatsDir));
+                mServiceContext.getSystemService(TelephonyManager.class), mSettings,
+                mStatsFactory, new NetworkStatsObservers(),  mStatsDir, getBaseDir(mStatsDir));
         mHandlerThread = new HandlerThread("HandlerThread");
         mHandlerThread.start();
         Handler.Callback callback = new NetworkStatsService.HandlerCallback(mService);
diff --git a/tests/touchlag/Android.bp b/tests/touchlag/Android.bp
deleted file mode 100644
index 092eea9..0000000
--- a/tests/touchlag/Android.bp
+++ /dev/null
@@ -1,14 +0,0 @@
-cc_test {
-    name: "test-touchlag",
-    gtest: false,
-    srcs: ["touchlag.cpp"],
-    shared_libs: [
-        "libcutils",
-        "libutils",
-    ],
-    cflags: [
-        "-Wall",
-        "-Wextra",
-        "-Werror",
-    ],
-}
diff --git a/tests/touchlag/touchlag.cpp b/tests/touchlag/touchlag.cpp
deleted file mode 100644
index 9264a25..0000000
--- a/tests/touchlag/touchlag.cpp
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
- * Copyright (C) 2012 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.
- */
-
-#include <stdint.h>
-#include <sys/types.h>
-
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <linux/fb.h>
-#include <linux/input.h>
-#include <errno.h>
-#include <string.h>
-#include <stdio.h>
-#include <cutils/memory.h>
-#include <asm-generic/mman.h>
-#include <sys/mman.h>
-#include <utils/threads.h>
-#include <unistd.h>
-#include <math.h>
-
-using namespace android;
-
-#ifndef FBIO_WAITFORVSYNC
-#define FBIO_WAITFORVSYNC   _IOW('F', 0x20, __u32)
-#endif
-
-struct Buffer {
-    size_t w;
-    size_t h;
-    size_t s;
-    union {
-        void* addr;
-        uint32_t* pixels;
-    };
-};
-
-void clearBuffer(Buffer* buf, uint32_t pixel) {
-    android_memset32(buf->pixels, pixel, buf->s * buf->h * 4);
-}
-
-void drawTwoPixels(Buffer* buf, uint32_t pixel, ssize_t x, ssize_t y, size_t w) {
-    if (y>0 && y<ssize_t(buf->h)) {
-        uint32_t* bits = buf->pixels + y * buf->s;
-        if (x>=0 && x<ssize_t(buf->w)) {
-            bits[x] = pixel;
-        }
-        ssize_t W(w);
-        if ((x+W)>=0 && (x+W)<ssize_t(buf->w)) {
-            bits[x+W] = pixel;
-        }
-    }
-}
-
-void drawHLine(Buffer* buf, uint32_t pixel, ssize_t x, ssize_t y, size_t w) {
-    if (y>0 && y<ssize_t(buf->h)) {
-        ssize_t W(w);
-        if (x<0) {
-            W += x;
-            x = 0;
-        }
-        if (x+w > buf->w) {
-            W = buf->w - x;
-        }
-        if (W>0) {
-            uint32_t* bits = buf->pixels + y * buf->s + x;
-            android_memset32(bits, pixel, W*4);
-        }
-    }
-}
-
-void drawRect(Buffer* buf, uint32_t pixel, ssize_t x, ssize_t y, size_t w, size_t h) {
-    ssize_t W(w), H(h);
-    if (x<0) {
-        w += x;
-        x = 0;
-    }
-    if (y<0) {
-        h += y;
-        y = 0;
-    }
-    if (x+w > buf->w)   W = buf->w - x;
-    if (y+h > buf->h)   H = buf->h - y;
-    if (W>0 && H>0) {
-        uint32_t* bits = buf->pixels + y * buf->s + x;
-        for (ssize_t i=0 ; i<H ; i++) {
-            android_memset32(bits, pixel, W*4);
-            bits += buf->s;
-        }
-    }
-}
-
-void drawCircle(Buffer* buf, uint32_t pixel,
-        size_t x0, size_t y0, size_t radius, bool filled = false) {
-    ssize_t f = 1 - radius;
-    ssize_t ddF_x = 1;
-    ssize_t ddF_y = -2 * radius;
-    ssize_t x = 0;
-    ssize_t y = radius;
-    if (filled) {
-        drawHLine(buf, pixel, x0-radius, y0, 2*radius);
-    } else {
-        drawTwoPixels(buf, pixel, x0-radius, y0, 2*radius);
-    }
-    while (x < y) {
-        if (f >= 0) {
-            y--;
-            ddF_y += 2;
-            f += ddF_y;
-        }
-        x++;
-        ddF_x += 2;
-        f += ddF_x;
-        if (filled) {
-            drawHLine(buf, pixel, x0-x, y0+y, 2*x);
-            drawHLine(buf, pixel, x0-x, y0-y, 2*x);
-            drawHLine(buf, pixel, x0-y, y0+x, 2*y);
-            drawHLine(buf, pixel, x0-y, y0-x, 2*y);
-        } else {
-            drawTwoPixels(buf, pixel, x0-x, y0+y, 2*x);
-            drawTwoPixels(buf, pixel, x0-x, y0-y, 2*x);
-            drawTwoPixels(buf, pixel, x0-y, y0+x, 2*y);
-            drawTwoPixels(buf, pixel, x0-y, y0-x, 2*y);
-        }
-    }
-}
-
-class TouchEvents {
-    class EventThread : public Thread {
-        int fd;
-
-        virtual bool threadLoop() {
-            input_event event;
-            int first_down = 0;
-            do {
-                read(fd, &event, sizeof(event));
-                if (event.type == EV_ABS) {
-                    if (event.code == ABS_MT_TRACKING_ID) {
-                        down = event.value == -1 ? 0 : 1;
-                        first_down = down;
-                    }
-                    if (event.code == ABS_MT_POSITION_X) {
-                        x = event.value;
-                    }
-                    if (event.code == ABS_MT_POSITION_Y) {
-                        y = event.value;
-                    }
-                }
-            } while (event.type == EV_SYN);
-            return true;
-        }
-
-    public:
-        int x, y, down;
-        EventThread() : Thread(false),
-                x(0), y(0), down(0)
-        {
-            fd = open("/dev/input/event1", O_RDONLY);
-        }
-};
-    sp<EventThread> thread;
-
-public:
-    TouchEvents() {
-        thread = new EventThread();
-        thread->run("EventThread", PRIORITY_URGENT_DISPLAY);
-    }
-
-    int getMostRecentPosition(int* x, int* y) {
-        *x = thread->x;
-        *y = thread->y;
-        return thread->down;
-    }
-};
-
-
-struct Queue {
-    struct position {
-        int x, y;
-    };
-    int index;
-    position q[16];
-    Queue() : index(0) { }
-    void push(int x, int y) {
-        index++;
-        index &= 0xF;
-        q[index].x = x;
-        q[index].y = y;
-    }
-    void get(int lag, int* x, int* y) {
-        const int i = (index - lag) & 0xF;
-        *x = q[i].x;
-        *y = q[i].y;
-    }
-};
-
-extern char *optarg;
-extern int optind;
-extern int optopt;
-extern int opterr;
-extern int optreset;
-
-void usage(const char* name) {
-    printf("\nusage: %s [-h] [-l lag]\n", name);
-}
-
-int main(int argc, char** argv) {
-    fb_var_screeninfo vi;
-    fb_fix_screeninfo fi;
-
-    int lag = 0;
-    int fd = open("/dev/graphics/fb0", O_RDWR);
-    ioctl(fd, FBIOGET_VSCREENINFO, &vi);
-    ioctl(fd, FBIOGET_FSCREENINFO, &fi);
-    void* bits = mmap(0, fi.smem_len, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
-    Buffer framebuffer;
-    framebuffer.w = vi.xres;
-    framebuffer.h = vi.yres;
-    framebuffer.s = fi.line_length / (vi.bits_per_pixel >> 3);
-    framebuffer.addr = bits;
-
-    int ch;
-    while ((ch = getopt(argc, argv, "hl:")) != -1) {
-        switch (ch) {
-            case 'l':
-                lag = atoi(optarg);
-                break;
-            case 'h':
-            default:
-                usage(argv[0]);
-                exit(0);
-        }
-    }
-    argc -= optind;
-    argv += optind;
-
-
-    TouchEvents touch;
-    Queue queue;
-
-
-    int x=0, y=0;
-    int lag_x=0, lag_y=0;
-
-    clearBuffer(&framebuffer, 0);
-    while (true) {
-        uint32_t crt = 0;
-        ioctl(fd, FBIO_WAITFORVSYNC, &crt);
-
-        // draw beam marker
-        drawRect(&framebuffer, 0x400000, framebuffer.w-2, 0, 2, framebuffer.h);
-        // erase screen
-        if (lag) {
-            drawCircle(&framebuffer, 0, lag_x, lag_y, 100);
-            drawHLine(&framebuffer, 0, 0, lag_y, 32);
-        }
-        drawCircle(&framebuffer, 0, x, y, 100, true);
-        drawHLine(&framebuffer, 0, 0, y, 32);
-
-        // draw a line at y=1000
-        drawHLine(&framebuffer, 0x808080, 0, 1000, framebuffer.w);
-
-        // get touch events
-        touch.getMostRecentPosition(&x, &y);
-        queue.push(x, y);
-        queue.get(lag, &lag_x, &lag_y);
-
-        if (lag) {
-            drawCircle(&framebuffer, 0x00FF00, lag_x, lag_y, 100);
-            drawHLine(&framebuffer, 0x00FF00, 0, lag_y, 32);
-        }
-
-        drawCircle(&framebuffer, 0xFFFFFF, x, y, 100, true);
-        drawHLine(&framebuffer, 0xFFFFFF, 0, y, 32);
-
-        // draw end of frame beam marker
-        drawRect(&framebuffer, 0x004000, framebuffer.w-2, 0, 2, framebuffer.h);
-    }
-
-    close(fd);
-    return 0;
-}
diff --git a/tools/aapt2/compile/PseudolocaleGenerator.cpp b/tools/aapt2/compile/PseudolocaleGenerator.cpp
index c5de9e0..5e0300b 100644
--- a/tools/aapt2/compile/PseudolocaleGenerator.cpp
+++ b/tools/aapt2/compile/PseudolocaleGenerator.cpp
@@ -231,7 +231,7 @@
       Visitor sub_visitor(pool_, method_);
       if (plural->values[i]) {
         plural->values[i]->Accept(&sub_visitor);
-        if (sub_visitor.value) {
+        if (sub_visitor.item) {
           localized->values[i] = std::move(sub_visitor.item);
         } else {
           localized->values[i] = std::unique_ptr<Item>(plural->values[i]->Clone(pool_));
diff --git a/tools/aapt2/compile/PseudolocaleGenerator_test.cpp b/tools/aapt2/compile/PseudolocaleGenerator_test.cpp
index 3135802..e816c86 100644
--- a/tools/aapt2/compile/PseudolocaleGenerator_test.cpp
+++ b/tools/aapt2/compile/PseudolocaleGenerator_test.cpp
@@ -234,6 +234,27 @@
                                             test::ParseConfigOrDie("ar-rXB")));
 }
 
+TEST(PseudolocaleGeneratorTest, PluralsArePseudolocalized) {
+  std::unique_ptr<IAaptContext> context = test::ContextBuilder().Build();
+  std::unique_ptr<ResourceTable> table =
+      test::ResourceTableBuilder().SetPackageId("com.pkg", 0x7F).Build();
+  std::unique_ptr<Plural> plural = util::make_unique<Plural>();
+  plural->values = {util::make_unique<String>(table->string_pool.MakeRef("zero")),
+                    util::make_unique<String>(table->string_pool.MakeRef("one"))};
+  ASSERT_TRUE(table->AddResource(test::ParseNameOrDie("com.pkg:plurals/foo"), ConfigDescription{},
+                                 {}, std::move(plural), context->GetDiagnostics()));
+  std::unique_ptr<Plural> expected = util::make_unique<Plural>();
+  expected->values = {util::make_unique<String>(table->string_pool.MakeRef("[žéÅ•ö one]")),
+                      util::make_unique<String>(table->string_pool.MakeRef("[öñé one]"))};
+
+  PseudolocaleGenerator generator;
+  ASSERT_TRUE(generator.Consume(context.get(), table.get()));
+
+  const auto* actual = test::GetValueForConfig<Plural>(table.get(), "com.pkg:plurals/foo",
+                                                       test::ParseConfigOrDie("en-rXA"));
+  EXPECT_TRUE(actual->Equals(expected.get()));
+}
+
 TEST(PseudolocaleGeneratorTest, RespectUntranslateableSections) {
   std::unique_ptr<IAaptContext> context =
       test::ContextBuilder().SetCompilationPackage("android").Build();
diff --git a/tools/aapt2/format/Container.cpp b/tools/aapt2/format/Container.cpp
index f189048..9cef7b3 100644
--- a/tools/aapt2/format/Container.cpp
+++ b/tools/aapt2/format/Container.cpp
@@ -30,6 +30,7 @@
 
 constexpr const static uint32_t kContainerFormatMagic = 0x54504141u;
 constexpr const static uint32_t kContainerFormatVersion = 1u;
+constexpr const static size_t kPaddingAlignment = 4u;
 
 ContainerWriter::ContainerWriter(ZeroCopyOutputStream* out, size_t entry_count)
     : out_(out), total_entry_count_(entry_count), current_entry_count_(0u) {
@@ -49,11 +50,17 @@
   }
 }
 
-inline static void WritePadding(int padding, CodedOutputStream* out) {
-  if (padding < 4) {
-    const uint32_t zero = 0u;
-    out->WriteRaw(&zero, padding);
-  }
+inline static size_t CalculatePaddingForAlignment(size_t size) {
+  size_t overage = size % kPaddingAlignment;
+  return overage == 0 ? 0 : kPaddingAlignment - overage;
+}
+
+inline static void WritePadding(size_t padding, CodedOutputStream* out) {
+  CHECK(padding < kPaddingAlignment);
+  const uint32_t zero = 0u;
+  static_assert(sizeof(zero) >= kPaddingAlignment, "Not enough source bytes for padding");
+
+  out->WriteRaw(&zero, padding);
 }
 
 bool ContainerWriter::AddResTableEntry(const pb::ResourceTable& table) {
@@ -70,7 +77,7 @@
 
   // Write the aligned size.
   const ::google::protobuf::uint64 size = table.ByteSize();
-  const int padding = 4 - (size % 4);
+  const int padding = CalculatePaddingForAlignment(size);
   coded_out.WriteLittleEndian64(size);
 
   // Write the table.
@@ -103,9 +110,9 @@
 
   // Write the aligned size.
   const ::google::protobuf::uint32 header_size = file.ByteSize();
-  const int header_padding = 4 - (header_size % 4);
+  const int header_padding = CalculatePaddingForAlignment(header_size);
   const ::google::protobuf::uint64 data_size = in->TotalSize();
-  const int data_padding = 4 - (data_size % 4);
+  const int data_padding = CalculatePaddingForAlignment(data_size);
   coded_out.WriteLittleEndian64(kResFileEntryHeaderSize + header_size + header_padding + data_size +
                                 data_padding);
 
diff --git a/tools/aapt2/formats.md b/tools/aapt2/formats.md
index bb31a00..25a0e79 100644
--- a/tools/aapt2/formats.md
+++ b/tools/aapt2/formats.md
@@ -23,7 +23,7 @@
 | Size (in bytes) | Field          | Description                                                                                               |
 |:----------------|:---------------|:----------------------------------------------------------------------------------------------------------|
 | `4`             | `entry_type`   | The type of the entry. This can be one of two types: `RES_TABLE (0x00000000)` or `RES_FILE (0x00000001)`. |
-| `8`             | `entry_length` | The length of the data that follows.                                                                      |
+| `8`             | `entry_length` | The length of the data that follows.  Do not use if `entry_type` is `RES_FILE`; this value may be wrong.  |
 | `entry_length`  | `data`         | The payload. The contents of this varies based on the `entry_type`.                                       |
 
 If the `entry_type` is equal to `RES_TABLE (0x00000000)`, the `data` field contains a serialized
@@ -32,13 +32,14 @@
 If the `entry_type` is equal to `RES_FILE (0x00000001)`, the `data` field contains the following:
 
 
-| Size (in bytes) | Field          | Description                                                                                               |
-|:----------------|:---------------|:----------------------------------------------------------------------------------------------------------|
-| `4`             | `header_size`  | The size of the `header` field.                                                                 |
-| `8`             | `data_size`    | The size of the `data` field.                                                                   |
-| `header_size`   | `header`       | The serialized Protobuf message [aapt.pb.internal.CompiledFile](ResourcesInternal.proto).       |
-| `x`             | `padding`      | Up to 4 bytes of zeros, if padding is necessary to align the `data` field on a 32-bit boundary. |
-| `data_size`     | `data`         | The payload, which is determined by the `type` field in the `aapt.pb.internal.CompiledFile`. This can be a PNG file, binary XML, or [aapt.pb.XmlNode](Resources.proto). |
+| Size (in bytes) | Field            | Description                                                                                               |
+|:----------------|:-----------------|:----------------------------------------------------------------------------------------------------------|
+| `4`             | `header_size`    | The size of the `header` field.                                                                           |
+| `8`             | `data_size`      | The size of the `data` field.                                                                             |
+| `header_size`   | `header`         | The serialized Protobuf message [aapt.pb.internal.CompiledFile](ResourcesInternal.proto).                 |
+| `x`             | `header_padding` | Up to 3 bytes of zeros, if padding is necessary to align the `data` field on a 32-bit boundary.           |
+| `data_size`     | `data`           | The payload, which is determined by the `type` field in the `aapt.pb.internal.CompiledFile`. This can be a PNG file, binary XML, or [aapt.pb.XmlNode](Resources.proto). |
+| `y`             | `data_padding`   | Up to 3 bytes of zeros, if `data_size` is not a multiple of 4.                                            |
 
 ## AAPT2 Static Library Format (extension `.sapk`)
 
diff --git a/tools/aapt2/java/ProguardRules.cpp b/tools/aapt2/java/ProguardRules.cpp
index 05ba8f0..806f4e3 100644
--- a/tools/aapt2/java/ProguardRules.cpp
+++ b/tools/aapt2/java/ProguardRules.cpp
@@ -404,12 +404,15 @@
 
   for (const auto& entry : keep_set.conditional_class_set_) {
     std::set<UsageLocation> locations;
-    bool can_be_conditional = true;
-    for (const UsageLocation& location : entry.second) {
-      can_be_conditional &= CollectLocations(location, keep_set, &locations);
+    bool can_be_conditional = false;
+    if (keep_set.conditional_keep_rules_) {
+      can_be_conditional = true;
+      for (const UsageLocation& location : entry.second) {
+        can_be_conditional &= CollectLocations(location, keep_set, &locations);
+      }
     }
 
-    if (keep_set.conditional_keep_rules_ && can_be_conditional) {
+    if (can_be_conditional) {
       for (const UsageLocation& location : locations) {
         printer.Print("# Referenced at ").Println(location.source.to_string());
         printer.Print("-if class **.R$layout { int ")
diff --git a/tools/aapt2/java/ProguardRules.h b/tools/aapt2/java/ProguardRules.h
index f9656d1..b15df59 100644
--- a/tools/aapt2/java/ProguardRules.h
+++ b/tools/aapt2/java/ProguardRules.h
@@ -99,11 +99,13 @@
 //
 
 inline bool operator==(const UsageLocation& lhs, const UsageLocation& rhs) {
+  // The "source" member is ignored because we only need "name" for outputting
+  // keep rules; "source" is used for comments.
   return lhs.name == rhs.name;
 }
 
-inline int operator<(const UsageLocation& lhs, const UsageLocation& rhs) {
-  return lhs.name.compare(rhs.name);
+inline bool operator<(const UsageLocation& lhs, const UsageLocation& rhs) {
+  return lhs.name.compare(rhs.name) < 0;
 }
 
 //
diff --git a/tools/aapt2/java/ProguardRules_test.cpp b/tools/aapt2/java/ProguardRules_test.cpp
index 559b07a..25b55ab 100644
--- a/tools/aapt2/java/ProguardRules_test.cpp
+++ b/tools/aapt2/java/ProguardRules_test.cpp
@@ -364,4 +364,12 @@
     "-keep class com.foo.Bar { <init>(android.content.Context, android.util.AttributeSet); }"));
 }
 
+TEST(ProguardRulesTest, UsageLocationComparator) {
+  proguard::UsageLocation location1 = {{"pkg", ResourceType::kAttr, "x"}};
+  proguard::UsageLocation location2 = {{"pkg", ResourceType::kAttr, "y"}};
+
+  EXPECT_EQ(location1 < location2, true);
+  EXPECT_EQ(location2 < location1, false);
+}
+
 }  // namespace aapt
diff --git a/tools/apilint/apilint b/tools/apilint/apilint
deleted file mode 100755
index e42857f..0000000
--- a/tools/apilint/apilint
+++ /dev/null
@@ -1,147 +0,0 @@
-#!/bin/bash
-
-# Copyright (C) 2019 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.
-
-if [ "$1" == "--help" -o "$1" == "-h" ]; then
-echo "Usage: apilint [FILTERS...]"
-echo "  Shows lint from currently open files (as diffed from HEAD), i.e. errors"
-echo "  you will receive if you upload this CL."
-echo
-echo "Usage: apilint --all [FILTERS...]"
-echo "  Shows all lint errors present in the current working directory, regardless"
-echo "  of when they were added."
-echo
-echo "Usage: apilint --level API_LEVEL [FILTERS...]"
-echo "  Shows lint as it stands in API_LEVEL"
-echo
-echo "Usage: apilint --shal SHA [FILTERS...]"
-echo "  Shows lint from locally commited git change SHA."
-echo
-echo "Usage: apilint --unreleased [FILTERS...]"
-echo "  Shows all lint errors in the current working directory directory added since"
-echo "  the last released SDK version."
-echo
-echo "FILTERS"
-echo "  List of class or package names by which to filter the results."
-echo
-exit
-fi
-
-if [ \( -z "$ANDROID_BUILD_TOP" \) \
-           -a \( ! -f frameworks/base/api/current.txt \) \
-           -a \( ! -f frameworks/base/api/system-current.txt \) \
-        ]; then
-    echo "apilint must be run either with ANDROID_BUILD_TOP set or from the" 1>&2
-    echo "root of the android source tree" 1>&2
-    exit 1
-fi
-
-if [ ${ANDROID_BUILD_TOP:0:1} != "/" ]; then
-    echo "ANDROID_BUILD_TOP must be an absolute path, not: $ANDROID_BUILD_TOP" 1>&2
-    exit 1
-fi
-
-if [ -z "$ANDROID_BUILD_TOP" ]; then
-    ANDROID_BUILD_TOP=$(pwd)
-fi
-
-FW_BASE=$ANDROID_BUILD_TOP/frameworks/base
-
-MODE=open
-
-OPTIONS=$(getopt -n apilint -o "" -l "all,sha:,unreleased" -- "$@")
-
-[ $? -eq 0 ] || { 
-    exit 1
-}
-
-eval set -- "$OPTIONS"
-while true; do
-    case "$1" in
-    --all)
-        MODE=all
-        ;;
-    --sha)
-        shift; # The arg is next in position args
-        MODE=sha
-        SHA=$1
-        ;;
-    --unreleased)
-        MODE=unreleased
-        ;;
-    --)
-        shift
-        break
-        ;;
-    esac
-    shift
-done
-FILTERS=
-for var in "$@"
-do
-    FILTERS="$FILTERS --filter $var"
-done
-
-if [ $MODE = "all" ]; then
-    python2.7 -B $ANDROID_BUILD_TOP/frameworks/base/tools/apilint/apilint.py \
-            --title "SDK" \
-            $FILTERS \
-            $ANDROID_BUILD_TOP/frameworks/base/api/current.txt
-    python2.7 -B $ANDROID_BUILD_TOP/frameworks/base/tools/apilint/apilint.py \
-            --title "SystemApi" \
-            $FILTERS \
-            --base-current $ANDROID_BUILD_TOP/frameworks/base/api/current.txt \
-            $ANDROID_BUILD_TOP/frameworks/base/api/system-current.txt
-elif [ $MODE = "open" ]; then
-    python2.7 -B $ANDROID_BUILD_TOP/frameworks/base/tools/apilint/apilint.py \
-            --title "SDK" \
-            $FILTERS \
-            $ANDROID_BUILD_TOP/frameworks/base/api/current.txt \
-            <(cd $FW_BASE ; git show HEAD:api/current.txt)
-    python2.7 -B $ANDROID_BUILD_TOP/frameworks/base/tools/apilint/apilint.py \
-            --title "SystemApi" \
-            $FILTERS \
-            --base-current $ANDROID_BUILD_TOP/frameworks/base/api/current.txt \
-            --base-previous <(cd $FW_BASE ; git show HEAD:api/current.txt) \
-            $ANDROID_BUILD_TOP/frameworks/base/api/system-current.txt \
-            <(cd $FW_BASE ; git show HEAD:api/system-current.txt)
-elif [ $MODE = "sha" ]; then
-    python2.7 -B $ANDROID_BUILD_TOP/frameworks/base/tools/apilint/apilint.py \
-            --title "SDK" \
-            $FILTERS \
-            <(cd $FW_BASE ; git show $SHA:api/current.txt) \
-            <(cd $FW_BASE ; git show $SHA^:api/current.txt)
-    python2.7 -B $ANDROID_BUILD_TOP/frameworks/base/tools/apilint/apilint.py \
-            --title "SystemApi" \
-            $FILTERS \
-            --base-current <(cd $FW_BASE ; git show $SHA:api/current.txt) \
-            --base-previous <(cd $FW_BASE ; git show $SHA^:api/current.txt) \
-            <(cd $FW_BASE ; git show $SHA:api/system-current.txt) \
-            <(cd $FW_BASE ; git show $SHA^:api/system-current.txt)
-elif [ $MODE = "unreleased" ]; then
-    LAST_SDK=$(ls $ANDROID_BUILD_TOP/prebuilts/sdk | grep "^[0-9][0-9]*$" | sort -n | tail -n 1)
-    python2.7 -B $ANDROID_BUILD_TOP/frameworks/base/tools/apilint/apilint.py \
-            --title "SDK" \
-            $FILTERS \
-            $ANDROID_BUILD_TOP/frameworks/base/api/current.txt \
-            $ANDROID_BUILD_TOP/prebuilts/sdk/$LAST_SDK/public/api/android.txt
-    python2.7 -B $ANDROID_BUILD_TOP/frameworks/base/tools/apilint/apilint.py \
-            --title "SystemApi" \
-            $FILTERS \
-            --base-current $ANDROID_BUILD_TOP/frameworks/base/api/current.txt \
-            --base-previous $ANDROID_BUILD_TOP/prebuilts/sdk/$LAST_SDK/public/api/android.txt \
-            $ANDROID_BUILD_TOP/frameworks/base/api/system-current.txt \
-            $ANDROID_BUILD_TOP/prebuilts/sdk/$LAST_SDK/system/api/android.txt
-fi
diff --git a/tools/apilint/apilint.py b/tools/apilint/apilint.py
deleted file mode 100644
index 912c1ad..0000000
--- a/tools/apilint/apilint.py
+++ /dev/null
@@ -1,2353 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (C) 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.
-
-"""
-Enforces common Android public API design patterns.  It ignores lint messages from
-a previous API level, if provided.
-
-Usage: apilint.py current.txt
-Usage: apilint.py current.txt previous.txt
-
-You can also splice in blame details like this:
-$ git blame api/current.txt -t -e > /tmp/currentblame.txt
-$ apilint.py /tmp/currentblame.txt previous.txt --no-color
-"""
-
-import re, sys, collections, traceback, argparse, itertools
-
-
-BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE = range(8)
-
-ALLOW_GOOGLE = False
-USE_COLOR = True
-
-def format(fg=None, bg=None, bright=False, bold=False, dim=False, reset=False):
-    # manually derived from http://en.wikipedia.org/wiki/ANSI_escape_code#Codes
-    if not USE_COLOR: return ""
-    codes = []
-    if reset: codes.append("0")
-    else:
-        if not fg is None: codes.append("3%d" % (fg))
-        if not bg is None:
-            if not bright: codes.append("4%d" % (bg))
-            else: codes.append("10%d" % (bg))
-        if bold: codes.append("1")
-        elif dim: codes.append("2")
-        else: codes.append("22")
-    return "\033[%sm" % (";".join(codes))
-
-
-class Field():
-    def __init__(self, clazz, line, raw, blame, sig_format = 1):
-        self.clazz = clazz
-        self.line = line
-        self.raw = raw.strip(" {;")
-        self.blame = blame
-
-        if sig_format == 2:
-            V2LineParser(raw).parse_into_field(self)
-        elif sig_format == 1:
-            # drop generics for now; may need multiple passes
-            raw = re.sub("<[^<]+?>", "", raw)
-            raw = re.sub("<[^<]+?>", "", raw)
-
-            raw = raw.split()
-            self.split = list(raw)
-
-            for r in ["field", "volatile", "transient", "public", "protected", "static", "final", "deprecated"]:
-                while r in raw: raw.remove(r)
-
-            # ignore annotations for now
-            raw = [ r for r in raw if not r.startswith("@") ]
-
-            self.typ = raw[0]
-            self.name = raw[1].strip(";")
-            if len(raw) >= 4 and raw[2] == "=":
-                self.value = raw[3].strip(';"')
-            else:
-                self.value = None
-            self.annotations = []
-
-        self.ident = "-".join((self.typ, self.name, self.value or ""))
-
-    def __hash__(self):
-        return hash(self.raw)
-
-    def __repr__(self):
-        return self.raw
-
-
-class Argument(object):
-
-    __slots__ = ["type", "annotations", "name", "default"]
-
-    def __init__(self, type):
-        self.type = type
-        self.annotations = []
-        self.name = None
-        self.default = None
-
-
-class Method():
-    def __init__(self, clazz, line, raw, blame, sig_format = 1):
-        self.clazz = clazz
-        self.line = line
-        self.raw = raw.strip(" {;")
-        self.blame = blame
-
-        if sig_format == 2:
-            V2LineParser(raw).parse_into_method(self)
-        elif sig_format == 1:
-            # drop generics for now; may need multiple passes
-            raw = re.sub("<[^<]+?>", "", raw)
-            raw = re.sub("<[^<]+?>", "", raw)
-
-            # handle each clause differently
-            raw_prefix, raw_args, _, raw_throws = re.match(r"(.*?)\((.*?)\)( throws )?(.*?);$", raw).groups()
-
-            # parse prefixes
-            raw = re.split("[\s]+", raw_prefix)
-            for r in ["", ";"]:
-                while r in raw: raw.remove(r)
-            self.split = list(raw)
-
-            for r in ["method", "public", "protected", "static", "final", "deprecated", "abstract", "default", "operator", "synchronized"]:
-                while r in raw: raw.remove(r)
-
-            self.typ = raw[0]
-            self.name = raw[1]
-
-            # parse args
-            self.detailed_args = []
-            for arg in re.split(",\s*", raw_args):
-                arg = re.split("\s", arg)
-                # ignore annotations for now
-                arg = [ a for a in arg if not a.startswith("@") ]
-                if len(arg[0]) > 0:
-                    self.detailed_args.append(Argument(arg[0]))
-
-            # parse throws
-            self.throws = []
-            for throw in re.split(",\s*", raw_throws):
-                self.throws.append(throw)
-
-            self.annotations = []
-        else:
-            raise ValueError("Unknown signature format: " + sig_format)
-
-        self.args = map(lambda a: a.type, self.detailed_args)
-        self.ident = "-".join((self.typ, self.name, "-".join(self.args)))
-
-    def sig_matches(self, typ, name, args):
-        return typ == self.typ and name == self.name and args == self.args
-
-    def __hash__(self):
-        return hash(self.raw)
-
-    def __repr__(self):
-        return self.raw
-
-
-class Class():
-    def __init__(self, pkg, line, raw, blame, sig_format = 1):
-        self.pkg = pkg
-        self.line = line
-        self.raw = raw.strip(" {;")
-        self.blame = blame
-        self.ctors = []
-        self.fields = []
-        self.methods = []
-        self.annotations = []
-
-        if sig_format == 2:
-            V2LineParser(raw).parse_into_class(self)
-        elif sig_format == 1:
-            # drop generics for now; may need multiple passes
-            raw = re.sub("<[^<]+?>", "", raw)
-            raw = re.sub("<[^<]+?>", "", raw)
-
-            raw = raw.split()
-            self.split = list(raw)
-            if "class" in raw:
-                self.fullname = raw[raw.index("class")+1]
-            elif "interface" in raw:
-                self.fullname = raw[raw.index("interface")+1]
-            elif "@interface" in raw:
-                self.fullname = raw[raw.index("@interface")+1]
-            else:
-                raise ValueError("Funky class type %s" % (self.raw))
-
-            if "extends" in raw:
-                self.extends = raw[raw.index("extends")+1]
-            else:
-                self.extends = None
-
-            if "implements" in raw:
-                self.implements = raw[raw.index("implements")+1]
-                self.implements_all = [self.implements]
-            else:
-                self.implements = None
-                self.implements_all = []
-        else:
-            raise ValueError("Unknown signature format: " + sig_format)
-
-        self.fullname = self.pkg.name + "." + self.fullname
-        self.fullname_path = self.fullname.split(".")
-
-        if self.extends is not None:
-            self.extends_path = self.extends.split(".")
-        else:
-            self.extends_path = []
-
-        self.name = self.fullname[self.fullname.rindex(".")+1:]
-
-    def merge_from(self, other):
-        self.ctors.extend(other.ctors)
-        self.fields.extend(other.fields)
-        self.methods.extend(other.methods)
-
-    def __hash__(self):
-        return hash((self.raw, tuple(self.ctors), tuple(self.fields), tuple(self.methods)))
-
-    def __repr__(self):
-        return self.raw
-
-
-class Package():
-    NAME = re.compile("package(?: .*)? ([A-Za-z0-9.]+)")
-
-    def __init__(self, line, raw, blame):
-        self.line = line
-        self.raw = raw.strip(" {;")
-        self.blame = blame
-
-        self.name = Package.NAME.match(raw).group(1)
-        self.name_path = self.name.split(".")
-
-    def __repr__(self):
-        return self.raw
-
-class V2Tokenizer(object):
-    __slots__ = ["raw"]
-
-    SIGNATURE_PREFIX = "// Signature format: "
-    DELIMITER = re.compile(r'\s+|[()@<>;,={}/"!?]|\[\]|\.\.\.')
-    STRING_SPECIAL = re.compile(r'["\\]')
-
-    def __init__(self, raw):
-        self.raw = raw
-
-    def tokenize(self):
-        tokens = []
-        current = 0
-        raw = self.raw
-        length = len(raw)
-
-        while current < length:
-            while current < length:
-                start = current
-                match = V2Tokenizer.DELIMITER.search(raw, start)
-                if match is not None:
-                    match_start = match.start()
-                    if match_start == current:
-                        end = match.end()
-                    else:
-                        end = match_start
-                else:
-                    end = length
-
-                token = raw[start:end]
-                current = end
-
-                if token == "" or token[0] == " ":
-                    continue
-                else:
-                    break
-
-            if token == "@":
-                if raw[start:start+11] == "@interface ":
-                    current = start + 11
-                    tokens.append("@interface")
-                    continue
-            elif token == '/':
-                if raw[start:start+2] == "//":
-                    current = length
-                    continue
-            elif token == '"':
-                current, string_token = self.tokenize_string(raw, length, current)
-                tokens.append(token + string_token)
-                continue
-
-            tokens.append(token)
-
-        return tokens
-
-    def tokenize_string(self, raw, length, current):
-        start = current
-        end = length
-        while start < end:
-            match = V2Tokenizer.STRING_SPECIAL.search(raw, start)
-            if match:
-                if match.group() == '"':
-                    end = match.end()
-                    break
-                elif match.group() == '\\':
-                    # ignore whatever is after the slash
-                    start += 2
-                else:
-                    raise ValueError("Unexpected match: `%s`" % (match.group()))
-            else:
-                raise ValueError("Unexpected EOF tokenizing string: `%s`" % (raw[current - 1:],))
-
-        token = raw[current:end]
-        return end, token
-
-class V2LineParser(object):
-    __slots__ = ["tokenized", "current", "len"]
-
-    FIELD_KINDS = ("field", "property", "enum_constant")
-    MODIFIERS = set("public protected internal private abstract default static final transient volatile synchronized native operator sealed strictfp infix inline suspend vararg".split())
-    JAVA_LANG_TYPES = set("AbstractMethodError AbstractStringBuilder Appendable ArithmeticException ArrayIndexOutOfBoundsException ArrayStoreException AssertionError AutoCloseable Boolean BootstrapMethodError Byte Character CharSequence Class ClassCastException ClassCircularityError ClassFormatError ClassLoader ClassNotFoundException Cloneable CloneNotSupportedException Comparable Compiler Deprecated Double Enum EnumConstantNotPresentException Error Exception ExceptionInInitializerError Float FunctionalInterface IllegalAccessError IllegalAccessException IllegalArgumentException IllegalMonitorStateException IllegalStateException IllegalThreadStateException IncompatibleClassChangeError IndexOutOfBoundsException InheritableThreadLocal InstantiationError InstantiationException Integer InternalError InterruptedException Iterable LinkageError Long Math NegativeArraySizeException NoClassDefFoundError NoSuchFieldError NoSuchFieldException NoSuchMethodError NoSuchMethodException NullPointerException Number NumberFormatException Object OutOfMemoryError Override Package package-info.java Process ProcessBuilder ProcessEnvironment ProcessImpl Readable ReflectiveOperationException Runnable Runtime RuntimeException RuntimePermission SafeVarargs SecurityException SecurityManager Short StackOverflowError StackTraceElement StrictMath String StringBuffer StringBuilder StringIndexOutOfBoundsException SuppressWarnings System Thread ThreadDeath ThreadGroup ThreadLocal Throwable TypeNotPresentException UNIXProcess UnknownError UnsatisfiedLinkError UnsupportedClassVersionError UnsupportedOperationException VerifyError VirtualMachineError Void".split())
-
-    def __init__(self, raw):
-        self.tokenized = V2Tokenizer(raw).tokenize()
-        self.current = 0
-        self.len = len(self.tokenized)
-
-    def parse_into_method(self, method):
-        method.split = []
-        kind = self.parse_one_of("ctor", "method")
-        method.split.append(kind)
-        method.annotations = self.parse_annotations()
-        method.split.extend(self.parse_modifiers())
-        self.parse_matching_paren("<", ">")
-        if "@Deprecated" in method.annotations:
-            method.split.append("deprecated")
-        if kind == "ctor":
-            method.typ = "ctor"
-        else:
-            method.typ = self.parse_type()
-            method.split.append(method.typ)
-        method.name = self.parse_name()
-        method.split.append(method.name)
-        self.parse_token("(")
-        method.detailed_args = self.parse_args()
-        self.parse_token(")")
-        method.throws = self.parse_throws()
-        if "@interface" in method.clazz.split:
-            self.parse_annotation_default()
-        self.parse_token(";")
-        self.parse_eof()
-
-    def parse_into_class(self, clazz):
-        clazz.split = []
-        clazz.annotations = self.parse_annotations()
-        if "@Deprecated" in clazz.annotations:
-            clazz.split.append("deprecated")
-        clazz.split.extend(self.parse_modifiers())
-        kind = self.parse_one_of("class", "interface", "@interface", "enum")
-        if kind == "enum":
-            # enums are implicitly final
-            clazz.split.append("final")
-        clazz.split.append(kind)
-        clazz.fullname = self.parse_name()
-        self.parse_matching_paren("<", ">")
-        extends = self.parse_extends()
-        clazz.extends = extends[0] if extends else None
-        clazz.implements_all = self.parse_implements()
-        # The checks assume that interfaces are always found in implements, which isn't true for
-        # subinterfaces.
-        if not clazz.implements_all and "interface" in clazz.split:
-            clazz.implements_all = [clazz.extends]
-        clazz.implements = clazz.implements_all[0] if clazz.implements_all else None
-        self.parse_token("{")
-        self.parse_eof()
-
-    def parse_into_field(self, field):
-        kind = self.parse_one_of(*V2LineParser.FIELD_KINDS)
-        field.split = [kind]
-        field.annotations = self.parse_annotations()
-        if "@Deprecated" in field.annotations:
-            field.split.append("deprecated")
-        field.split.extend(self.parse_modifiers())
-        field.typ = self.parse_type()
-        field.split.append(field.typ)
-        field.name = self.parse_name()
-        field.split.append(field.name)
-        if self.parse_if("="):
-            field.value = self.parse_value_stripped()
-        else:
-            field.value = None
-
-        self.parse_token(";")
-        self.parse_eof()
-
-    def lookahead(self):
-        return self.tokenized[self.current]
-
-    def parse_one_of(self, *options):
-        found = self.lookahead()
-        if found not in options:
-            raise ValueError("Parsing failed, expected one of `%s` but found `%s` in %s" % (options, found, repr(self.tokenized)))
-        return self.parse_token()
-
-    def parse_token(self, tok = None):
-        found = self.lookahead()
-        if tok is not None and found != tok:
-            raise ValueError("Parsing failed, expected `%s` but found `%s` in %s" % (tok, found, repr(self.tokenized)))
-        self.current += 1
-        return found
-
-    def eof(self):
-        return self.current == self.len
-
-    def parse_eof(self):
-        if not self.eof():
-            raise ValueError("Parsing failed, expected EOF, but %s has not been parsed in %s" % (self.tokenized[self.current:], self.tokenized))
-
-    def parse_if(self, tok):
-        if not self.eof() and self.lookahead() == tok:
-            self.parse_token()
-            return True
-        return False
-
-    def parse_annotations(self):
-        ret = []
-        while self.lookahead() == "@":
-            ret.append(self.parse_annotation())
-        return ret
-
-    def parse_annotation(self):
-        ret = self.parse_token("@") + self.parse_token()
-        self.parse_matching_paren("(", ")")
-        return ret
-
-    def parse_matching_paren(self, open, close):
-        start = self.current
-        if not self.parse_if(open):
-            return
-        length = len(self.tokenized)
-        count = 1
-        while count > 0:
-            if self.current == length:
-                raise ValueError("Unexpected EOF looking for closing paren: `%s`" % (self.tokenized[start:],))
-            t = self.parse_token()
-            if t == open:
-                count += 1
-            elif t == close:
-                count -= 1
-        return self.tokenized[start:self.current]
-
-    def parse_modifiers(self):
-        ret = []
-        while self.lookahead() in V2LineParser.MODIFIERS:
-            ret.append(self.parse_token())
-        return ret
-
-    def parse_kotlin_nullability(self):
-        t = self.lookahead()
-        if t == "?" or t == "!":
-            return self.parse_token()
-        return None
-
-    def parse_type(self):
-        self.parse_annotations()
-        type = self.parse_token()
-        if type[-1] == '.':
-            self.parse_annotations()
-            type += self.parse_token()
-        if type in V2LineParser.JAVA_LANG_TYPES:
-            type = "java.lang." + type
-        self.parse_matching_paren("<", ">")
-        while True:
-            t = self.lookahead()
-            if t == "@":
-                self.parse_annotation()
-            elif t == "[]":
-                type += self.parse_token()
-            elif self.parse_kotlin_nullability() is not None:
-                pass  # discard nullability for now
-            else:
-                break
-        return type
-
-    def parse_arg_type(self):
-        type = self.parse_type()
-        if self.parse_if("..."):
-            type += "..."
-        self.parse_kotlin_nullability() # discard nullability for now
-        return type
-
-    def parse_name(self):
-        return self.parse_token()
-
-    def parse_args(self):
-        args = []
-        if self.lookahead() == ")":
-            return args
-
-        while True:
-            args.append(self.parse_arg())
-            if self.lookahead() == ")":
-                return args
-            self.parse_token(",")
-
-    def parse_arg(self):
-        self.parse_if("vararg")  # kotlin vararg
-        annotations = self.parse_annotations()
-        arg = Argument(self.parse_arg_type())
-        arg.annotations = annotations
-        l = self.lookahead()
-        if l != "," and l != ")":
-            if self.lookahead() != '=':
-                arg.name = self.parse_token()  # kotlin argument name
-            if self.parse_if('='): # kotlin default value
-                arg.default = self.parse_expression()
-        return arg
-
-    def parse_expression(self):
-        while not self.lookahead() in [')', ',', ';']:
-            (self.parse_matching_paren('(', ')') or
-            self.parse_matching_paren('{', '}') or
-            self.parse_token())
-
-    def parse_throws(self):
-        ret = []
-        if self.parse_if("throws"):
-            ret.append(self.parse_type())
-            while self.parse_if(","):
-                ret.append(self.parse_type())
-        return ret
-
-    def parse_extends(self):
-        if self.parse_if("extends"):
-            return self.parse_space_delimited_type_list()
-        return []
-
-    def parse_implements(self):
-        if self.parse_if("implements"):
-            return self.parse_space_delimited_type_list()
-        return []
-
-    def parse_space_delimited_type_list(self, terminals = ["implements", "{"]):
-        types = []
-        while True:
-            types.append(self.parse_type())
-            if self.lookahead() in terminals:
-                return types
-
-    def parse_annotation_default(self):
-        if self.parse_if("default"):
-            self.parse_expression()
-
-    def parse_value(self):
-        if self.lookahead() == "{":
-            return " ".join(self.parse_matching_paren("{", "}"))
-        elif self.lookahead() == "(":
-            return " ".join(self.parse_matching_paren("(", ")"))
-        else:
-            return self.parse_token()
-
-    def parse_value_stripped(self):
-        value = self.parse_value()
-        if value[0] == '"':
-            return value[1:-1]
-        return value
-
-
-def _parse_stream(f, clazz_cb=None, base_f=None, out_classes_with_base=None,
-                  in_classes_with_base=[]):
-    api = {}
-    in_classes_with_base = _retry_iterator(in_classes_with_base)
-
-    if base_f:
-        base_classes = _retry_iterator(_parse_stream_to_generator(base_f))
-    else:
-        base_classes = []
-
-    def handle_class(clazz):
-        if clazz_cb:
-            clazz_cb(clazz)
-        else: # In callback mode, don't keep track of the full API
-            api[clazz.fullname] = clazz
-
-    def handle_missed_classes_with_base(clazz):
-        for c in _yield_until_matching_class(in_classes_with_base, clazz):
-            base_class = _skip_to_matching_class(base_classes, c)
-            if base_class:
-                handle_class(base_class)
-
-    for clazz in _parse_stream_to_generator(f):
-        # Before looking at clazz, let's see if there's some classes that were not present, but
-        # may have an entry in the base stream.
-        handle_missed_classes_with_base(clazz)
-
-        base_class = _skip_to_matching_class(base_classes, clazz)
-        if base_class:
-            clazz.merge_from(base_class)
-            if out_classes_with_base is not None:
-                out_classes_with_base.append(clazz)
-        handle_class(clazz)
-
-    handle_missed_classes_with_base(None)
-
-    return api
-
-def _parse_stream_to_generator(f):
-    line = 0
-    pkg = None
-    clazz = None
-    blame = None
-    sig_format = 1
-
-    re_blame = re.compile(r"^(\^?[a-z0-9]{7,}) \(<([^>]+)>.+?\) (.+?)$")
-
-    field_prefixes = map(lambda kind: "    %s" % (kind,), V2LineParser.FIELD_KINDS)
-    def startsWithFieldPrefix(raw):
-        for prefix in field_prefixes:
-            if raw.startswith(prefix):
-                return True
-        return False
-
-    for raw in f:
-        line += 1
-        raw = raw.rstrip()
-        match = re_blame.match(raw)
-        if match is not None:
-            blame = match.groups()[0:2]
-            if blame[0].startswith("^"):  # Outside of blame range
-              blame = None
-            raw = match.groups()[2]
-        else:
-            blame = None
-
-        if line == 1 and V2Tokenizer.SIGNATURE_PREFIX in raw:
-            sig_format_string = raw[len(V2Tokenizer.SIGNATURE_PREFIX):]
-            if sig_format_string in ["2.0", "3.0"]:
-                sig_format = 2
-            else:
-                raise ValueError("Unknown format: %s" % (sig_format_string,))
-        elif raw.startswith("package"):
-            pkg = Package(line, raw, blame)
-        elif raw.startswith("  ") and raw.endswith("{"):
-            clazz = Class(pkg, line, raw, blame, sig_format=sig_format)
-        elif raw.startswith("    ctor"):
-            clazz.ctors.append(Method(clazz, line, raw, blame, sig_format=sig_format))
-        elif raw.startswith("    method"):
-            clazz.methods.append(Method(clazz, line, raw, blame, sig_format=sig_format))
-        elif startsWithFieldPrefix(raw):
-            clazz.fields.append(Field(clazz, line, raw, blame, sig_format=sig_format))
-        elif raw.startswith("  }") and clazz:
-            yield clazz
-
-def _retry_iterator(it):
-    """Wraps an iterator, such that calling send(True) on it will redeliver the same element"""
-    for e in it:
-        while True:
-            retry = yield e
-            if not retry:
-                break
-            # send() was called, asking us to redeliver clazz on next(). Still need to yield
-            # a dummy value to the send() first though.
-            if (yield "Returning clazz on next()"):
-                raise TypeError("send() must be followed by next(), not send()")
-
-def _skip_to_matching_class(classes, needle):
-    """Takes a classes iterator and consumes entries until it returns the class we're looking for
-
-    This relies on classes being sorted by package and class name."""
-
-    for clazz in classes:
-        if clazz.pkg.name < needle.pkg.name:
-            # We haven't reached the right package yet
-            continue
-        if clazz.pkg.name == needle.pkg.name and clazz.fullname < needle.fullname:
-            # We're in the right package, but not the right class yet
-            continue
-        if clazz.fullname == needle.fullname:
-            return clazz
-        # We ran past the right class. Send it back into the generator, then report failure.
-        classes.send(clazz)
-        return None
-
-def _yield_until_matching_class(classes, needle):
-    """Takes a class iterator and yields entries it until it reaches the class we're looking for.
-
-    This relies on classes being sorted by package and class name."""
-
-    for clazz in classes:
-        if needle is None:
-            yield clazz
-        elif clazz.pkg.name < needle.pkg.name:
-            # We haven't reached the right package yet
-            yield clazz
-        elif clazz.pkg.name == needle.pkg.name and clazz.fullname < needle.fullname:
-            # We're in the right package, but not the right class yet
-            yield clazz
-        elif clazz.fullname == needle.fullname:
-            # Class found, abort.
-            return
-        else:
-            # We ran past the right class. Send it back into the iterator, then abort.
-            classes.send(clazz)
-            return
-
-class Failure():
-    def __init__(self, sig, clazz, detail, error, rule, msg):
-        self.clazz = clazz
-        self.sig = sig
-        self.error = error
-        self.rule = rule
-        self.msg = msg
-
-        if error:
-            self.head = "Error %s" % (rule) if rule else "Error"
-            dump = "%s%s:%s %s" % (format(fg=RED, bg=BLACK, bold=True), self.head, format(reset=True), msg)
-        else:
-            self.head = "Warning %s" % (rule) if rule else "Warning"
-            dump = "%s%s:%s %s" % (format(fg=YELLOW, bg=BLACK, bold=True), self.head, format(reset=True), msg)
-
-        self.line = clazz.line
-        blame = clazz.blame
-        if detail is not None:
-            dump += "\n    in " + repr(detail)
-            self.line = detail.line
-            blame = detail.blame
-        dump += "\n    in " + repr(clazz)
-        dump += "\n    in " + repr(clazz.pkg)
-        dump += "\n    at line " + repr(self.line)
-        if blame is not None:
-            dump += "\n    last modified by %s in %s" % (blame[1], blame[0])
-
-        self.dump = dump
-
-    def __repr__(self):
-        return self.dump
-
-
-failures = {}
-
-def _fail(clazz, detail, error, rule, msg):
-    """Records an API failure to be processed later."""
-    global failures
-
-    sig = "%s-%s-%s" % (clazz.fullname, detail.ident if detail else None, msg)
-    sig = sig.replace(" deprecated ", " ")
-
-    failures[sig] = Failure(sig, clazz, detail, error, rule, msg)
-
-
-def warn(clazz, detail, rule, msg):
-    _fail(clazz, detail, False, rule, msg)
-
-def error(clazz, detail, rule, msg):
-    _fail(clazz, detail, True, rule, msg)
-
-
-noticed = {}
-
-def notice(clazz):
-    global noticed
-
-    noticed[clazz.fullname] = hash(clazz)
-
-
-verifiers = {}
-
-def verifier(f):
-    verifiers[f.__name__] = f
-    return f
-
-
-@verifier
-def verify_constants(clazz):
-    """All static final constants must be FOO_NAME style."""
-    if re.match("android\.R\.[a-z]+", clazz.fullname): return
-    if clazz.fullname.startswith("android.os.Build"): return
-    if clazz.fullname == "android.system.OsConstants": return
-
-    req = ["java.lang.String","byte","short","int","long","float","double","boolean","char"]
-    for f in clazz.fields:
-        if "static" in f.split and "final" in f.split:
-            if re.match("[A-Z0-9_]+", f.name) is None:
-                error(clazz, f, "C2", "Constant field names must be FOO_NAME")
-            if f.typ != "java.lang.String":
-                if f.name.startswith("MIN_") or f.name.startswith("MAX_"):
-                    warn(clazz, f, "C8", "If min/max could change in future, make them dynamic methods")
-            if f.typ in req and f.value is None:
-                error(clazz, f, None, "All constants must be defined at compile time")
-
-@verifier
-def verify_enums(clazz):
-    """Enums are bad, mmkay?"""
-    if clazz.extends == "java.lang.Enum" or "enum" in clazz.split:
-        error(clazz, None, "F5", "Enums are not allowed")
-
-@verifier
-def verify_class_names(clazz):
-    """Try catching malformed class names like myMtp or MTPUser."""
-    if clazz.fullname.startswith("android.opengl"): return
-    if clazz.fullname.startswith("android.renderscript"): return
-    if re.match("android\.R\.[a-z]+", clazz.fullname): return
-
-    if re.search("[A-Z]{2,}", clazz.name) is not None:
-        warn(clazz, None, "S1", "Class names with acronyms should be Mtp not MTP")
-    if re.match("[^A-Z]", clazz.name):
-        error(clazz, None, "S1", "Class must start with uppercase char")
-    if clazz.name.endswith("Impl"):
-        error(clazz, None, None, "Don't expose your implementation details")
-
-
-@verifier
-def verify_method_names(clazz):
-    """Try catching malformed method names, like Foo() or getMTU()."""
-    if clazz.fullname.startswith("android.opengl"): return
-    if clazz.fullname.startswith("android.renderscript"): return
-    if clazz.fullname == "android.system.OsConstants": return
-
-    for m in clazz.methods:
-        if re.search("[A-Z]{2,}", m.name) is not None:
-            warn(clazz, m, "S1", "Method names with acronyms should be getMtu() instead of getMTU()")
-        if re.match("[^a-z]", m.name):
-            error(clazz, m, "S1", "Method name must start with lowercase char")
-
-
-@verifier
-def verify_callbacks(clazz):
-    """Verify Callback classes.
-    All methods must follow onFoo() naming style."""
-    if clazz.fullname == "android.speech.tts.SynthesisCallback": return
-
-    if clazz.name.endswith("Callbacks"):
-        error(clazz, None, "L1", "Callback class names should be singular")
-    if clazz.name.endswith("Observer"):
-        warn(clazz, None, "L1", "Class should be named FooCallback")
-
-    if clazz.name.endswith("Callback"):
-        for m in clazz.methods:
-            if not re.match("on[A-Z][a-z]*", m.name):
-                error(clazz, m, "L1", "Callback method names must be onFoo() style")
-
-
-@verifier
-def verify_listeners(clazz):
-    """Verify Listener classes.
-    All Listener classes must be interface.
-    All methods must follow onFoo() naming style.
-    If only a single method, it must match class name:
-        interface OnFooListener { void onFoo() }"""
-
-    if clazz.name.endswith("Listener"):
-        if "abstract" in clazz.split and "class" in clazz.split:
-            error(clazz, None, "L1", "Listeners should be an interface, or otherwise renamed Callback")
-
-        for m in clazz.methods:
-            if not re.match("on[A-Z][a-z]*", m.name):
-                error(clazz, m, "L1", "Listener method names must be onFoo() style")
-
-        if len(clazz.methods) == 1 and clazz.name.startswith("On"):
-            m = clazz.methods[0]
-            if (m.name + "Listener").lower() != clazz.name.lower():
-                error(clazz, m, "L1", "Single listener method name must match class name")
-
-
-@verifier
-def verify_actions(clazz):
-    """Verify intent actions.
-    All action names must be named ACTION_FOO.
-    All action values must be scoped by package and match name:
-        package android.foo {
-            String ACTION_BAR = "android.foo.action.BAR";
-        }"""
-    for f in clazz.fields:
-        if f.value is None: continue
-        if f.name.startswith("EXTRA_"): continue
-        if f.name == "SERVICE_INTERFACE" or f.name == "PROVIDER_INTERFACE": continue
-        if "INTERACTION" in f.name: continue
-
-        if "static" in f.split and "final" in f.split and f.typ == "java.lang.String":
-            if "_ACTION" in f.name or "ACTION_" in f.name or ".action." in f.value.lower():
-                if not f.name.startswith("ACTION_"):
-                    error(clazz, f, "C3", "Intent action constant name must be ACTION_FOO")
-                else:
-                    if clazz.fullname == "android.content.Intent":
-                        prefix = "android.intent.action"
-                    elif clazz.fullname == "android.provider.Settings":
-                        prefix = "android.settings"
-                    elif clazz.fullname == "android.app.admin.DevicePolicyManager" or clazz.fullname == "android.app.admin.DeviceAdminReceiver":
-                        prefix = "android.app.action"
-                    else:
-                        prefix = clazz.pkg.name + ".action"
-                    expected = prefix + "." + f.name[7:]
-                    if f.value != expected:
-                        error(clazz, f, "C4", "Inconsistent action value; expected '%s'" % (expected))
-
-
-@verifier
-def verify_extras(clazz):
-    """Verify intent extras.
-    All extra names must be named EXTRA_FOO.
-    All extra values must be scoped by package and match name:
-        package android.foo {
-            String EXTRA_BAR = "android.foo.extra.BAR";
-        }"""
-    if clazz.fullname == "android.app.Notification": return
-    if clazz.fullname == "android.appwidget.AppWidgetManager": return
-
-    for f in clazz.fields:
-        if f.value is None: continue
-        if f.name.startswith("ACTION_"): continue
-
-        if "static" in f.split and "final" in f.split and f.typ == "java.lang.String":
-            if "_EXTRA" in f.name or "EXTRA_" in f.name or ".extra" in f.value.lower():
-                if not f.name.startswith("EXTRA_"):
-                    error(clazz, f, "C3", "Intent extra must be EXTRA_FOO")
-                else:
-                    if clazz.pkg.name == "android.content" and clazz.name == "Intent":
-                        prefix = "android.intent.extra"
-                    elif clazz.pkg.name == "android.app.admin":
-                        prefix = "android.app.extra"
-                    else:
-                        prefix = clazz.pkg.name + ".extra"
-                    expected = prefix + "." + f.name[6:]
-                    if f.value != expected:
-                        error(clazz, f, "C4", "Inconsistent extra value; expected '%s'" % (expected))
-
-
-@verifier
-def verify_equals(clazz):
-    """Verify that equals() and hashCode() must be overridden together."""
-    eq = False
-    hc = False
-    for m in clazz.methods:
-        if "static" in m.split: continue
-        if m.sig_matches("boolean", "equals", ["java.lang.Object"]): eq = True
-        if m.sig_matches("int", "hashCode", []): hc = True
-    if eq != hc:
-        error(clazz, None, "M8", "Must override both equals and hashCode; missing one")
-
-
-@verifier
-def verify_parcelable(clazz):
-    """Verify that Parcelable objects aren't hiding required bits."""
-    if clazz.implements == "android.os.Parcelable":
-        creator = [ i for i in clazz.fields if i.name == "CREATOR" ]
-        write = [ i for i in clazz.methods if i.name == "writeToParcel" ]
-        describe = [ i for i in clazz.methods if i.name == "describeContents" ]
-
-        if len(creator) == 0 or len(write) == 0 or len(describe) == 0:
-            error(clazz, None, "FW3", "Parcelable requires CREATOR, writeToParcel, and describeContents; missing one")
-
-        if "final" not in clazz.split:
-            error(clazz, None, "FW8", "Parcelable classes must be final")
-
-        for c in clazz.ctors:
-            if c.args == ["android.os.Parcel"]:
-                error(clazz, c, "FW3", "Parcelable inflation is exposed through CREATOR, not raw constructors")
-
-
-@verifier
-def verify_protected(clazz):
-    """Verify that no protected methods or fields are allowed."""
-    for m in clazz.methods:
-        if m.name == "finalize": continue
-        if "protected" in m.split:
-            error(clazz, m, "M7", "Protected methods not allowed; must be public")
-    for f in clazz.fields:
-        if "protected" in f.split:
-            error(clazz, f, "M7", "Protected fields not allowed; must be public")
-
-
-@verifier
-def verify_fields(clazz):
-    """Verify that all exposed fields are final.
-    Exposed fields must follow myName style.
-    Catch internal mFoo objects being exposed."""
-
-    IGNORE_BARE_FIELDS = [
-        "android.app.ActivityManager.RecentTaskInfo",
-        "android.app.Notification",
-        "android.content.pm.ActivityInfo",
-        "android.content.pm.ApplicationInfo",
-        "android.content.pm.ComponentInfo",
-        "android.content.pm.ResolveInfo",
-        "android.content.pm.FeatureGroupInfo",
-        "android.content.pm.InstrumentationInfo",
-        "android.content.pm.PackageInfo",
-        "android.content.pm.PackageItemInfo",
-        "android.content.res.Configuration",
-        "android.graphics.BitmapFactory.Options",
-        "android.os.Message",
-        "android.system.StructPollfd",
-    ]
-
-    for f in clazz.fields:
-        if not "final" in f.split:
-            if clazz.fullname in IGNORE_BARE_FIELDS:
-                pass
-            elif clazz.fullname.endswith("LayoutParams"):
-                pass
-            elif clazz.fullname.startswith("android.util.Mutable"):
-                pass
-            else:
-                error(clazz, f, "F2", "Bare fields must be marked final, or add accessors if mutable")
-
-        if "static" not in f.split and "property" not in f.split:
-            if not re.match("[a-z]([a-zA-Z]+)?", f.name):
-                error(clazz, f, "S1", "Non-static fields must be named using myField style")
-
-        if re.match("[ms][A-Z]", f.name):
-            error(clazz, f, "F1", "Internal objects must not be exposed")
-
-        if re.match("[A-Z_]+", f.name):
-            if "static" not in f.split or "final" not in f.split:
-                error(clazz, f, "C2", "Constants must be marked static final")
-
-
-@verifier
-def verify_register(clazz):
-    """Verify parity of registration methods.
-    Callback objects use register/unregister methods.
-    Listener objects use add/remove methods."""
-    methods = [ m.name for m in clazz.methods ]
-    for m in clazz.methods:
-        if "Callback" in m.raw:
-            if m.name.startswith("register"):
-                other = "unregister" + m.name[8:]
-                if other not in methods:
-                    error(clazz, m, "L2", "Missing unregister method")
-            if m.name.startswith("unregister"):
-                other = "register" + m.name[10:]
-                if other not in methods:
-                    error(clazz, m, "L2", "Missing register method")
-
-            if m.name.startswith("add") or m.name.startswith("remove"):
-                error(clazz, m, "L3", "Callback methods should be named register/unregister")
-
-        if "Listener" in m.raw:
-            if m.name.startswith("add"):
-                other = "remove" + m.name[3:]
-                if other not in methods:
-                    error(clazz, m, "L2", "Missing remove method")
-            if m.name.startswith("remove") and not m.name.startswith("removeAll"):
-                other = "add" + m.name[6:]
-                if other not in methods:
-                    error(clazz, m, "L2", "Missing add method")
-
-            if m.name.startswith("register") or m.name.startswith("unregister"):
-                error(clazz, m, "L3", "Listener methods should be named add/remove")
-
-
-@verifier
-def verify_sync(clazz):
-    """Verify synchronized methods aren't exposed."""
-    for m in clazz.methods:
-        if "synchronized" in m.split:
-            error(clazz, m, "M5", "Internal locks must not be exposed")
-
-
-@verifier
-def verify_intent_builder(clazz):
-    """Verify that Intent builders are createFooIntent() style."""
-    if clazz.name == "Intent": return
-
-    for m in clazz.methods:
-        if m.typ == "android.content.Intent":
-            if m.name.startswith("create") and m.name.endswith("Intent"):
-                pass
-            else:
-                warn(clazz, m, "FW1", "Methods creating an Intent should be named createFooIntent()")
-
-
-@verifier
-def verify_helper_classes(clazz):
-    """Verify that helper classes are named consistently with what they extend.
-    All developer extendable methods should be named onFoo()."""
-    test_methods = False
-    if clazz.extends == "android.app.Service":
-        test_methods = True
-        if not clazz.name.endswith("Service"):
-            error(clazz, None, "CL4", "Inconsistent class name; should be FooService")
-
-        found = False
-        for f in clazz.fields:
-            if f.name == "SERVICE_INTERFACE":
-                found = True
-                if f.value != clazz.fullname:
-                    error(clazz, f, "C4", "Inconsistent interface constant; expected '%s'" % (clazz.fullname))
-
-    if clazz.extends == "android.content.ContentProvider":
-        test_methods = True
-        if not clazz.name.endswith("Provider"):
-            error(clazz, None, "CL4", "Inconsistent class name; should be FooProvider")
-
-        found = False
-        for f in clazz.fields:
-            if f.name == "PROVIDER_INTERFACE":
-                found = True
-                if f.value != clazz.fullname:
-                    error(clazz, f, "C4", "Inconsistent interface constant; expected '%s'" % (clazz.fullname))
-
-    if clazz.extends == "android.content.BroadcastReceiver":
-        test_methods = True
-        if not clazz.name.endswith("Receiver"):
-            error(clazz, None, "CL4", "Inconsistent class name; should be FooReceiver")
-
-    if clazz.extends == "android.app.Activity":
-        test_methods = True
-        if not clazz.name.endswith("Activity"):
-            error(clazz, None, "CL4", "Inconsistent class name; should be FooActivity")
-
-    if test_methods:
-        for m in clazz.methods:
-            if "final" in m.split: continue
-            if not re.match("on[A-Z]", m.name):
-                if "abstract" in m.split:
-                    warn(clazz, m, None, "Methods implemented by developers should be named onFoo()")
-                else:
-                    warn(clazz, m, None, "If implemented by developer, should be named onFoo(); otherwise consider marking final")
-
-
-@verifier
-def verify_builder(clazz):
-    """Verify builder classes.
-    Methods should return the builder to enable chaining."""
-    if clazz.extends: return
-    if not clazz.name.endswith("Builder"): return
-
-    if clazz.name != "Builder":
-        warn(clazz, None, None, "Builder should be defined as inner class")
-
-    has_build = False
-    for m in clazz.methods:
-        if m.name == "build":
-            has_build = True
-            continue
-
-        if m.name.startswith("get"): continue
-        if m.name.startswith("clear"): continue
-
-        if m.name.startswith("with"):
-            warn(clazz, m, None, "Builder methods names should use setFoo() style")
-
-        if m.name.startswith("set"):
-            if not m.typ.endswith(clazz.fullname):
-                warn(clazz, m, "M4", "Methods must return the builder object")
-
-    if not has_build:
-        warn(clazz, None, None, "Missing build() method")
-
-    if "final" not in clazz.split:
-        error(clazz, None, None, "Builder should be final")
-
-
-@verifier
-def verify_aidl(clazz):
-    """Catch people exposing raw AIDL."""
-    if clazz.extends == "android.os.Binder" or clazz.implements == "android.os.IInterface":
-        error(clazz, None, None, "Raw AIDL interfaces must not be exposed")
-
-
-@verifier
-def verify_internal(clazz):
-    """Catch people exposing internal classes."""
-    if clazz.pkg.name.startswith("com.android"):
-        error(clazz, None, None, "Internal classes must not be exposed")
-
-def layering_build_ranking(ranking_list):
-    r = {}
-    for rank, ps in enumerate(ranking_list):
-        if not isinstance(ps, list):
-            ps = [ps]
-        for p in ps:
-            rs = r
-            for n in p.split('.'):
-                if n not in rs:
-                    rs[n] = {}
-                rs = rs[n]
-            rs['-rank'] = rank
-    return r
-
-LAYERING_PACKAGE_RANKING = layering_build_ranking([
-    ["android.service","android.accessibilityservice","android.inputmethodservice","android.printservice","android.appwidget","android.webkit","android.preference","android.gesture","android.print"],
-    "android.app",
-    "android.widget",
-    "android.view",
-    "android.animation",
-    "android.provider",
-    ["android.content","android.graphics.drawable"],
-    "android.database",
-    "android.text",
-    "android.graphics",
-    "android.os",
-    "android.util"
-])
-
-@verifier
-def verify_layering(clazz):
-    """Catch package layering violations.
-    For example, something in android.os depending on android.app."""
-
-    def rank(p):
-        r = None
-        l = LAYERING_PACKAGE_RANKING
-        for n in p.split('.'):
-            if n in l:
-                l = l[n]
-                if '-rank' in l:
-                    r = l['-rank']
-            else:
-                break
-        return r
-
-    cr = rank(clazz.pkg.name)
-    if cr is None: return
-
-    for f in clazz.fields:
-        ir = rank(f.typ)
-        if ir is not None and ir < cr:
-            warn(clazz, f, "FW6", "Field type violates package layering")
-
-    for m in itertools.chain(clazz.methods, clazz.ctors):
-        ir = rank(m.typ)
-        if ir is not None and ir < cr:
-            warn(clazz, m, "FW6", "Method return type violates package layering")
-        for arg in m.args:
-            ir = rank(arg)
-            if ir is not None and ir < cr:
-                warn(clazz, m, "FW6", "Method argument type violates package layering")
-
-
-@verifier
-def verify_boolean(clazz):
-    """Verifies that boolean accessors are named correctly.
-    For example, hasFoo() and setHasFoo()."""
-
-    def is_get(m): return len(m.args) == 0 and m.typ == "boolean"
-    def is_set(m): return len(m.args) == 1 and m.args[0] == "boolean"
-
-    gets = [ m for m in clazz.methods if is_get(m) ]
-    sets = [ m for m in clazz.methods if is_set(m) ]
-
-    def error_if_exists(methods, trigger, expected, actual):
-        for m in methods:
-            if m.name == actual:
-                error(clazz, m, "M6", "Symmetric method for %s must be named %s" % (trigger, expected))
-
-    for m in clazz.methods:
-        if is_get(m):
-            if re.match("is[A-Z]", m.name):
-                target = m.name[2:]
-                expected = "setIs" + target
-                error_if_exists(sets, m.name, expected, "setHas" + target)
-            elif re.match("has[A-Z]", m.name):
-                target = m.name[3:]
-                expected = "setHas" + target
-                error_if_exists(sets, m.name, expected, "setIs" + target)
-                error_if_exists(sets, m.name, expected, "set" + target)
-            elif re.match("get[A-Z]", m.name):
-                target = m.name[3:]
-                expected = "set" + target
-                error_if_exists(sets, m.name, expected, "setIs" + target)
-                error_if_exists(sets, m.name, expected, "setHas" + target)
-
-        if is_set(m):
-            if re.match("set[A-Z]", m.name):
-                target = m.name[3:]
-                expected = "get" + target
-                error_if_exists(sets, m.name, expected, "is" + target)
-                error_if_exists(sets, m.name, expected, "has" + target)
-
-
-@verifier
-def verify_collections(clazz):
-    """Verifies that collection types are interfaces."""
-    if clazz.fullname == "android.os.Bundle": return
-    if clazz.fullname == "android.os.Parcel": return
-
-    bad = ["java.util.Vector", "java.util.LinkedList", "java.util.ArrayList", "java.util.Stack",
-           "java.util.HashMap", "java.util.HashSet", "android.util.ArraySet", "android.util.ArrayMap"]
-    for m in clazz.methods:
-        if m.typ in bad:
-            error(clazz, m, "CL2", "Return type is concrete collection; must be higher-level interface")
-        for arg in m.args:
-            if arg in bad:
-                error(clazz, m, "CL2", "Argument is concrete collection; must be higher-level interface")
-
-
-@verifier
-def verify_uris(clazz):
-    bad = ["java.net.URL", "java.net.URI", "android.net.URL"]
-
-    for f in clazz.fields:
-        if f.typ in bad:
-            error(clazz, f, None, "Field must be android.net.Uri instead of " + f.typ)
-
-    for m in clazz.methods + clazz.ctors:
-        if m.typ in bad:
-            error(clazz, m, None, "Must return android.net.Uri instead of " + m.typ)
-        for arg in m.args:
-            if arg in bad:
-                error(clazz, m, None, "Argument must take android.net.Uri instead of " + arg)
-
-
-@verifier
-def verify_flags(clazz):
-    """Verifies that flags are non-overlapping."""
-    known = collections.defaultdict(int)
-    for f in clazz.fields:
-        if "FLAG_" in f.name:
-            try:
-                val = int(f.value)
-            except:
-                continue
-
-            scope = f.name[0:f.name.index("FLAG_")]
-            if val & known[scope]:
-                warn(clazz, f, "C1", "Found overlapping flag constant value")
-            known[scope] |= val
-
-
-@verifier
-def verify_exception(clazz):
-    """Verifies that methods don't throw generic exceptions."""
-    for m in clazz.methods:
-        for t in m.throws:
-            if t in ["java.lang.Exception", "java.lang.Throwable", "java.lang.Error"]:
-                error(clazz, m, "S1", "Methods must not throw generic exceptions")
-
-            if t in ["android.os.RemoteException"]:
-                if clazz.fullname == "android.content.ContentProviderClient": continue
-                if clazz.fullname == "android.os.Binder": continue
-                if clazz.fullname == "android.os.IBinder": continue
-
-                error(clazz, m, "FW9", "Methods calling into system server should rethrow RemoteException as RuntimeException")
-
-            if len(m.args) == 0 and t in ["java.lang.IllegalArgumentException", "java.lang.NullPointerException"]:
-                warn(clazz, m, "S1", "Methods taking no arguments should throw IllegalStateException")
-
-
-GOOGLE_IGNORECASE = re.compile("google", re.IGNORECASE)
-
-# Not marked as @verifier, because it is only conditionally applied.
-def verify_google(clazz):
-    """Verifies that APIs never reference Google."""
-
-    if GOOGLE_IGNORECASE.search(clazz.raw) is not None:
-        error(clazz, None, None, "Must never reference Google")
-
-    for test in clazz.ctors, clazz.fields, clazz.methods:
-        for t in test:
-            if GOOGLE_IGNORECASE.search(t.raw) is not None:
-                error(clazz, t, None, "Must never reference Google")
-
-
-@verifier
-def verify_bitset(clazz):
-    """Verifies that we avoid using heavy BitSet."""
-
-    for f in clazz.fields:
-        if f.typ == "java.util.BitSet":
-            error(clazz, f, None, "Field type must not be heavy BitSet")
-
-    for m in clazz.methods:
-        if m.typ == "java.util.BitSet":
-            error(clazz, m, None, "Return type must not be heavy BitSet")
-        for arg in m.args:
-            if arg == "java.util.BitSet":
-                error(clazz, m, None, "Argument type must not be heavy BitSet")
-
-
-@verifier
-def verify_manager(clazz):
-    """Verifies that FooManager is only obtained from Context."""
-
-    if not clazz.name.endswith("Manager"): return
-
-    for c in clazz.ctors:
-        error(clazz, c, None, "Managers must always be obtained from Context; no direct constructors")
-
-    for m in clazz.methods:
-        if m.typ == clazz.fullname:
-            error(clazz, m, None, "Managers must always be obtained from Context")
-
-
-@verifier
-def verify_boxed(clazz):
-    """Verifies that methods avoid boxed primitives."""
-
-    boxed = ["java.lang.Number","java.lang.Byte","java.lang.Double","java.lang.Float","java.lang.Integer","java.lang.Long","java.lang.Short"]
-
-    for c in clazz.ctors:
-        for arg in c.args:
-            if arg in boxed:
-                error(clazz, c, "M11", "Must avoid boxed primitives")
-
-    for f in clazz.fields:
-        if f.typ in boxed:
-            error(clazz, f, "M11", "Must avoid boxed primitives")
-
-    for m in clazz.methods:
-        if m.typ in boxed:
-            error(clazz, m, "M11", "Must avoid boxed primitives")
-        for arg in m.args:
-            if arg in boxed:
-                error(clazz, m, "M11", "Must avoid boxed primitives")
-
-
-@verifier
-def verify_static_utils(clazz):
-    """Verifies that helper classes can't be constructed."""
-    if clazz.fullname.startswith("android.opengl"): return
-    if clazz.fullname.startswith("android.R"): return
-
-    # Only care about classes with default constructors
-    if len(clazz.ctors) == 1 and len(clazz.ctors[0].args) == 0:
-        test = []
-        test.extend(clazz.fields)
-        test.extend(clazz.methods)
-
-        if len(test) == 0: return
-        for t in test:
-            if "static" not in t.split:
-                return
-
-        error(clazz, None, None, "Fully-static utility classes must not have constructor")
-
-
-# @verifier  # Disabled for now
-def verify_overload_args(clazz):
-    """Verifies that method overloads add new arguments at the end."""
-    if clazz.fullname.startswith("android.opengl"): return
-
-    overloads = collections.defaultdict(list)
-    for m in clazz.methods:
-        if "deprecated" in m.split: continue
-        overloads[m.name].append(m)
-
-    for name, methods in overloads.items():
-        if len(methods) <= 1: continue
-
-        # Look for arguments common across all overloads
-        def cluster(args):
-            count = collections.defaultdict(int)
-            res = set()
-            for i in range(len(args)):
-                a = args[i]
-                res.add("%s#%d" % (a, count[a]))
-                count[a] += 1
-            return res
-
-        common_args = cluster(methods[0].args)
-        for m in methods:
-            common_args = common_args & cluster(m.args)
-
-        if len(common_args) == 0: continue
-
-        # Require that all common arguments are present at start of signature
-        locked_sig = None
-        for m in methods:
-            sig = m.args[0:len(common_args)]
-            if not common_args.issubset(cluster(sig)):
-                warn(clazz, m, "M2", "Expected common arguments [%s] at beginning of overloaded method" % (", ".join(common_args)))
-            elif not locked_sig:
-                locked_sig = sig
-            elif locked_sig != sig:
-                error(clazz, m, "M2", "Expected consistent argument ordering between overloads: %s..." % (", ".join(locked_sig)))
-
-
-@verifier
-def verify_callback_handlers(clazz):
-    """Verifies that methods adding listener/callback have overload
-    for specifying delivery thread."""
-
-    # Ignore UI packages which assume main thread
-    skip = [
-        "animation",
-        "view",
-        "graphics",
-        "transition",
-        "widget",
-        "webkit",
-    ]
-    for s in skip:
-        if s in clazz.pkg.name_path: return
-        if s in clazz.extends_path: return
-
-    # Ignore UI classes which assume main thread
-    if "app" in clazz.pkg.name_path or "app" in clazz.extends_path:
-        for s in ["ActionBar","Dialog","Application","Activity","Fragment","Loader"]:
-            if s in clazz.fullname: return
-    if "content" in clazz.pkg.name_path or "content" in clazz.extends_path:
-        for s in ["Loader"]:
-            if s in clazz.fullname: return
-
-    found = {}
-    by_name = collections.defaultdict(list)
-    examine = clazz.ctors + clazz.methods
-    for m in examine:
-        if m.name.startswith("unregister"): continue
-        if m.name.startswith("remove"): continue
-        if re.match("on[A-Z]+", m.name): continue
-
-        by_name[m.name].append(m)
-
-        for a in m.args:
-            if a.endswith("Listener") or a.endswith("Callback") or a.endswith("Callbacks"):
-                found[m.name] = m
-
-    for f in found.values():
-        takes_handler = False
-        takes_exec = False
-        for m in by_name[f.name]:
-            if "android.os.Handler" in m.args:
-                takes_handler = True
-            if "java.util.concurrent.Executor" in m.args:
-                takes_exec = True
-        if not takes_exec:
-            warn(clazz, f, "L1", "Registration methods should have overload that accepts delivery Executor")
-
-
-@verifier
-def verify_context_first(clazz):
-    """Verifies that methods accepting a Context keep it the first argument."""
-    examine = clazz.ctors + clazz.methods
-    for m in examine:
-        if len(m.args) > 1 and m.args[0] != "android.content.Context":
-            if "android.content.Context" in m.args[1:]:
-                error(clazz, m, "M3", "Context is distinct, so it must be the first argument")
-        if len(m.args) > 1 and m.args[0] != "android.content.ContentResolver":
-            if "android.content.ContentResolver" in m.args[1:]:
-                error(clazz, m, "M3", "ContentResolver is distinct, so it must be the first argument")
-
-
-@verifier
-def verify_listener_last(clazz):
-    """Verifies that methods accepting a Listener or Callback keep them as last arguments."""
-    examine = clazz.ctors + clazz.methods
-    for m in examine:
-        if "Listener" in m.name or "Callback" in m.name: continue
-        found = False
-        for a in m.args:
-            if a.endswith("Callback") or a.endswith("Callbacks") or a.endswith("Listener"):
-                found = True
-            elif found:
-                warn(clazz, m, "M3", "Listeners should always be at end of argument list")
-
-
-@verifier
-def verify_resource_names(clazz):
-    """Verifies that resource names have consistent case."""
-    if not re.match("android\.R\.[a-z]+", clazz.fullname): return
-
-    # Resources defined by files are foo_bar_baz
-    if clazz.name in ["anim","animator","color","dimen","drawable","interpolator","layout","transition","menu","mipmap","string","plurals","raw","xml"]:
-        for f in clazz.fields:
-            if re.match("config_[a-z][a-zA-Z1-9]*$", f.name): continue
-            if f.name.startswith("config_"):
-                error(clazz, f, None, "Expected config name to be config_fooBarBaz style")
-
-            if re.match("[a-z1-9_]+$", f.name): continue
-            error(clazz, f, None, "Expected resource name in this class to be foo_bar_baz style")
-
-    # Resources defined inside files are fooBarBaz
-    if clazz.name in ["array","attr","id","bool","fraction","integer"]:
-        for f in clazz.fields:
-            if re.match("config_[a-z][a-zA-Z1-9]*$", f.name): continue
-            if re.match("layout_[a-z][a-zA-Z1-9]*$", f.name): continue
-            if re.match("state_[a-z_]*$", f.name): continue
-
-            if re.match("[a-z][a-zA-Z1-9]*$", f.name): continue
-            error(clazz, f, "C7", "Expected resource name in this class to be fooBarBaz style")
-
-    # Styles are FooBar_Baz
-    if clazz.name in ["style"]:
-        for f in clazz.fields:
-            if re.match("[A-Z][A-Za-z1-9]+(_[A-Z][A-Za-z1-9]+?)*$", f.name): continue
-            error(clazz, f, "C7", "Expected resource name in this class to be FooBar_Baz style")
-
-
-@verifier
-def verify_files(clazz):
-    """Verifies that methods accepting File also accept streams."""
-
-    has_file = set()
-    has_stream = set()
-
-    test = []
-    test.extend(clazz.ctors)
-    test.extend(clazz.methods)
-
-    for m in test:
-        if "java.io.File" in m.args:
-            has_file.add(m)
-        if "java.io.FileDescriptor" in m.args or "android.os.ParcelFileDescriptor" in m.args or "java.io.InputStream" in m.args or "java.io.OutputStream" in m.args:
-            has_stream.add(m.name)
-
-    for m in has_file:
-        if m.name not in has_stream:
-            warn(clazz, m, "M10", "Methods accepting File should also accept FileDescriptor or streams")
-
-
-@verifier
-def verify_manager_list(clazz):
-    """Verifies that managers return List<? extends Parcelable> instead of arrays."""
-
-    if not clazz.name.endswith("Manager"): return
-
-    for m in clazz.methods:
-        if m.typ.startswith("android.") and m.typ.endswith("[]"):
-            warn(clazz, m, None, "Methods should return List<? extends Parcelable> instead of Parcelable[] to support ParceledListSlice under the hood")
-
-
-@verifier
-def verify_abstract_inner(clazz):
-    """Verifies that abstract inner classes are static."""
-
-    if re.match(".+?\.[A-Z][^\.]+\.[A-Z]", clazz.fullname):
-        if "abstract" in clazz.split and "static" not in clazz.split:
-            warn(clazz, None, None, "Abstract inner classes should be static to improve testability")
-
-
-@verifier
-def verify_runtime_exceptions(clazz):
-    """Verifies that runtime exceptions aren't listed in throws."""
-
-    banned = [
-        "java.lang.NullPointerException",
-        "java.lang.ClassCastException",
-        "java.lang.IndexOutOfBoundsException",
-        "java.lang.reflect.UndeclaredThrowableException",
-        "java.lang.reflect.MalformedParametersException",
-        "java.lang.reflect.MalformedParameterizedTypeException",
-        "java.lang.invoke.WrongMethodTypeException",
-        "java.lang.EnumConstantNotPresentException",
-        "java.lang.IllegalMonitorStateException",
-        "java.lang.SecurityException",
-        "java.lang.UnsupportedOperationException",
-        "java.lang.annotation.AnnotationTypeMismatchException",
-        "java.lang.annotation.IncompleteAnnotationException",
-        "java.lang.TypeNotPresentException",
-        "java.lang.IllegalStateException",
-        "java.lang.ArithmeticException",
-        "java.lang.IllegalArgumentException",
-        "java.lang.ArrayStoreException",
-        "java.lang.NegativeArraySizeException",
-        "java.util.MissingResourceException",
-        "java.util.EmptyStackException",
-        "java.util.concurrent.CompletionException",
-        "java.util.concurrent.RejectedExecutionException",
-        "java.util.IllformedLocaleException",
-        "java.util.ConcurrentModificationException",
-        "java.util.NoSuchElementException",
-        "java.io.UncheckedIOException",
-        "java.time.DateTimeException",
-        "java.security.ProviderException",
-        "java.nio.BufferUnderflowException",
-        "java.nio.BufferOverflowException",
-    ]
-
-    examine = clazz.ctors + clazz.methods
-    for m in examine:
-        for t in m.throws:
-            if t in banned:
-                error(clazz, m, None, "Methods must not mention RuntimeException subclasses in throws clauses")
-
-
-@verifier
-def verify_error(clazz):
-    """Verifies that we always use Exception instead of Error."""
-    if not clazz.extends: return
-    if clazz.extends.endswith("Error"):
-        error(clazz, None, None, "Trouble must be reported through an Exception, not Error")
-    if clazz.extends.endswith("Exception") and not clazz.name.endswith("Exception"):
-        error(clazz, None, None, "Exceptions must be named FooException")
-
-
-@verifier
-def verify_units(clazz):
-    """Verifies that we use consistent naming for units."""
-
-    # If we find K, recommend replacing with V
-    bad = {
-        "Ns": "Nanos",
-        "Ms": "Millis or Micros",
-        "Sec": "Seconds", "Secs": "Seconds",
-        "Hr": "Hours", "Hrs": "Hours",
-        "Mo": "Months", "Mos": "Months",
-        "Yr": "Years", "Yrs": "Years",
-        "Byte": "Bytes", "Space": "Bytes",
-    }
-
-    for m in clazz.methods:
-        if m.typ not in ["short","int","long"]: continue
-        for k, v in bad.iteritems():
-            if m.name.endswith(k):
-                error(clazz, m, None, "Expected method name units to be " + v)
-        if m.name.endswith("Nanos") or m.name.endswith("Micros"):
-            warn(clazz, m, None, "Returned time values are strongly encouraged to be in milliseconds unless you need the extra precision")
-        if m.name.endswith("Seconds"):
-            error(clazz, m, None, "Returned time values must be in milliseconds")
-
-    for m in clazz.methods:
-        typ = m.typ
-        if typ == "void":
-            if len(m.args) != 1: continue
-            typ = m.args[0]
-
-        if m.name.endswith("Fraction") and typ != "float":
-            error(clazz, m, None, "Fractions must use floats")
-        if m.name.endswith("Percentage") and typ != "int":
-            error(clazz, m, None, "Percentage must use ints")
-
-
-@verifier
-def verify_closable(clazz):
-    """Verifies that classes are AutoClosable."""
-    if "java.lang.AutoCloseable" in clazz.implements_all: return
-    if "java.io.Closeable" in clazz.implements_all: return
-
-    for m in clazz.methods:
-        if len(m.args) > 0: continue
-        if m.name in ["close","release","destroy","finish","finalize","disconnect","shutdown","stop","free","quit"]:
-            warn(clazz, m, None, "Classes that release resources should implement AutoClosable and CloseGuard")
-            return
-
-
-@verifier
-def verify_member_name_not_kotlin_keyword(clazz):
-    """Prevent method names which are keywords in Kotlin."""
-
-    # https://kotlinlang.org/docs/reference/keyword-reference.html#hard-keywords
-    # This list does not include Java keywords as those are already impossible to use.
-    keywords = [
-        'as',
-        'fun',
-        'in',
-        'is',
-        'object',
-        'typealias',
-        'val',
-        'var',
-        'when',
-    ]
-
-    for m in clazz.methods:
-        if m.name in keywords:
-            error(clazz, m, None, "Method name must not be a Kotlin keyword")
-    for f in clazz.fields:
-        if f.name in keywords:
-            error(clazz, f, None, "Field name must not be a Kotlin keyword")
-
-
-@verifier
-def verify_method_name_not_kotlin_operator(clazz):
-    """Warn about method names which become operators in Kotlin."""
-
-    binary = set()
-
-    def unique_binary_op(m, op):
-        if op in binary:
-            error(clazz, m, None, "Only one of '{0}' and '{0}Assign' methods should be present for Kotlin".format(op))
-        binary.add(op)
-
-    for m in clazz.methods:
-        if 'static' in m.split or 'operator' in m.split:
-            continue
-
-        # https://kotlinlang.org/docs/reference/operator-overloading.html#unary-prefix-operators
-        if m.name in ['unaryPlus', 'unaryMinus', 'not'] and len(m.args) == 0:
-            warn(clazz, m, None, "Method can be invoked as a unary operator from Kotlin")
-
-        # https://kotlinlang.org/docs/reference/operator-overloading.html#increments-and-decrements
-        if m.name in ['inc', 'dec'] and len(m.args) == 0 and m.typ != 'void':
-            # This only applies if the return type is the same or a subtype of the enclosing class, but we have no
-            # practical way of checking that relationship here.
-            warn(clazz, m, None, "Method can be invoked as a pre/postfix inc/decrement operator from Kotlin")
-
-        # https://kotlinlang.org/docs/reference/operator-overloading.html#arithmetic
-        if m.name in ['plus', 'minus', 'times', 'div', 'rem', 'mod', 'rangeTo'] and len(m.args) == 1:
-            warn(clazz, m, None, "Method can be invoked as a binary operator from Kotlin")
-            unique_binary_op(m, m.name)
-
-        # https://kotlinlang.org/docs/reference/operator-overloading.html#in
-        if m.name == 'contains' and len(m.args) == 1 and m.typ == 'boolean':
-            warn(clazz, m, None, "Method can be invoked as a 'in' operator from Kotlin")
-
-        # https://kotlinlang.org/docs/reference/operator-overloading.html#indexed
-        if (m.name == 'get' and len(m.args) > 0) or (m.name == 'set' and len(m.args) > 1):
-            warn(clazz, m, None, "Method can be invoked with an indexing operator from Kotlin")
-
-        # https://kotlinlang.org/docs/reference/operator-overloading.html#invoke
-        if m.name == 'invoke':
-            warn(clazz, m, None, "Method can be invoked with function call syntax from Kotlin")
-
-        # https://kotlinlang.org/docs/reference/operator-overloading.html#assignments
-        if m.name in ['plusAssign', 'minusAssign', 'timesAssign', 'divAssign', 'remAssign', 'modAssign'] \
-                and len(m.args) == 1 \
-                and m.typ == 'void':
-            warn(clazz, m, None, "Method can be invoked as a compound assignment operator from Kotlin")
-            unique_binary_op(m, m.name[:-6])  # Remove 'Assign' suffix
-
-
-@verifier
-def verify_collections_over_arrays(clazz):
-    """Warn that [] should be Collections."""
-
-    if "@interface" in clazz.split:
-        return
-
-    safe = ["java.lang.String[]","byte[]","short[]","int[]","long[]","float[]","double[]","boolean[]","char[]"]
-    for m in clazz.methods:
-        if m.typ.endswith("[]") and m.typ not in safe:
-            warn(clazz, m, None, "Method should return Collection<> (or subclass) instead of raw array")
-        for arg in m.args:
-            if arg.endswith("[]") and arg not in safe:
-                warn(clazz, m, None, "Method argument should be Collection<> (or subclass) instead of raw array")
-
-
-@verifier
-def verify_user_handle(clazz):
-    """Methods taking UserHandle should be ForUser or AsUser."""
-    if clazz.name.endswith("Listener") or clazz.name.endswith("Callback") or clazz.name.endswith("Callbacks"): return
-    if clazz.fullname == "android.app.admin.DeviceAdminReceiver": return
-    if clazz.fullname == "android.content.pm.LauncherApps": return
-    if clazz.fullname == "android.os.UserHandle": return
-    if clazz.fullname == "android.os.UserManager": return
-
-    for m in clazz.methods:
-        if re.match("on[A-Z]+", m.name): continue
-
-        has_arg = "android.os.UserHandle" in m.args
-        has_name = m.name.endswith("AsUser") or m.name.endswith("ForUser")
-
-        if clazz.fullname.endswith("Manager") and has_arg:
-            warn(clazz, m, None, "When a method overload is needed to target a specific "
-                 "UserHandle, callers should be directed to use "
-                 "Context.createPackageContextAsUser() and re-obtain the relevant "
-                 "Manager, and no new API should be added")
-        elif has_arg and not has_name:
-            warn(clazz, m, None, "Method taking UserHandle should be named 'doFooAsUser' "
-                 "or 'queryFooForUser'")
-
-
-@verifier
-def verify_params(clazz):
-    """Parameter classes should be 'Params'."""
-    if clazz.name.endswith("Params"): return
-    if clazz.fullname == "android.app.ActivityOptions": return
-    if clazz.fullname == "android.app.BroadcastOptions": return
-    if clazz.fullname == "android.os.Bundle": return
-    if clazz.fullname == "android.os.BaseBundle": return
-    if clazz.fullname == "android.os.PersistableBundle": return
-
-    bad = ["Param","Parameter","Parameters","Args","Arg","Argument","Arguments","Options","Bundle"]
-    for b in bad:
-        if clazz.name.endswith(b):
-            error(clazz, None, None, "Classes holding a set of parameters should be called 'FooParams'")
-
-
-@verifier
-def verify_services(clazz):
-    """Service name should be FOO_BAR_SERVICE = 'foo_bar'."""
-    if clazz.fullname != "android.content.Context": return
-
-    for f in clazz.fields:
-        if f.typ != "java.lang.String": continue
-        found = re.match(r"([A-Z_]+)_SERVICE", f.name)
-        if found:
-            expected = found.group(1).lower()
-            if f.value != expected:
-                error(clazz, f, "C4", "Inconsistent service value; expected '%s'" % (expected))
-
-
-@verifier
-def verify_tense(clazz):
-    """Verify tenses of method names."""
-    if clazz.fullname.startswith("android.opengl"): return
-
-    for m in clazz.methods:
-        if m.name.endswith("Enable"):
-            warn(clazz, m, None, "Unexpected tense; probably meant 'enabled'")
-
-
-@verifier
-def verify_icu(clazz):
-    """Verifies that richer ICU replacements are used."""
-    better = {
-        "java.util.TimeZone": "android.icu.util.TimeZone",
-        "java.util.Calendar": "android.icu.util.Calendar",
-        "java.util.Locale": "android.icu.util.ULocale",
-        "java.util.ResourceBundle": "android.icu.util.UResourceBundle",
-        "java.util.SimpleTimeZone": "android.icu.util.SimpleTimeZone",
-        "java.util.StringTokenizer": "android.icu.util.StringTokenizer",
-        "java.util.GregorianCalendar": "android.icu.util.GregorianCalendar",
-        "java.lang.Character": "android.icu.lang.UCharacter",
-        "java.text.BreakIterator": "android.icu.text.BreakIterator",
-        "java.text.Collator": "android.icu.text.Collator",
-        "java.text.DecimalFormatSymbols": "android.icu.text.DecimalFormatSymbols",
-        "java.text.NumberFormat": "android.icu.text.NumberFormat",
-        "java.text.DateFormatSymbols": "android.icu.text.DateFormatSymbols",
-        "java.text.DateFormat": "android.icu.text.DateFormat",
-        "java.text.SimpleDateFormat": "android.icu.text.SimpleDateFormat",
-        "java.text.MessageFormat": "android.icu.text.MessageFormat",
-        "java.text.DecimalFormat": "android.icu.text.DecimalFormat",
-    }
-
-    for m in clazz.ctors + clazz.methods:
-        types = []
-        types.extend(m.typ)
-        types.extend(m.args)
-        for arg in types:
-            if arg in better:
-                warn(clazz, m, None, "Type %s should be replaced with richer ICU type %s" % (arg, better[arg]))
-
-
-@verifier
-def verify_clone(clazz):
-    """Verify that clone() isn't implemented; see EJ page 61."""
-    for m in clazz.methods:
-        if m.name == "clone":
-            error(clazz, m, None, "Provide an explicit copy constructor instead of implementing clone()")
-
-
-@verifier
-def verify_pfd(clazz):
-    """Verify that android APIs use PFD over FD."""
-    if clazz.fullname == "android.os.FileUtils" or clazz.fullname == "android.system.Os":
-        return
-
-    examine = clazz.ctors + clazz.methods
-    for m in examine:
-        if m.typ == "java.io.FileDescriptor":
-            error(clazz, m, "FW11", "Must use ParcelFileDescriptor")
-        if m.typ == "int":
-            if "Fd" in m.name or "FD" in m.name or "FileDescriptor" in m.name:
-                error(clazz, m, "FW11", "Must use ParcelFileDescriptor")
-        for arg in m.args:
-            if arg == "java.io.FileDescriptor":
-                error(clazz, m, "FW11", "Must use ParcelFileDescriptor")
-
-    for f in clazz.fields:
-        if f.typ == "java.io.FileDescriptor":
-            error(clazz, f, "FW11", "Must use ParcelFileDescriptor")
-
-
-@verifier
-def verify_numbers(clazz):
-    """Discourage small numbers types like short and byte."""
-
-    discouraged = ["short","byte"]
-
-    for c in clazz.ctors:
-        for arg in c.args:
-            if arg in discouraged:
-                warn(clazz, c, "FW12", "Should avoid odd sized primitives; use int instead")
-
-    for f in clazz.fields:
-        if f.typ in discouraged:
-            warn(clazz, f, "FW12", "Should avoid odd sized primitives; use int instead")
-
-    for m in clazz.methods:
-        if m.typ in discouraged:
-            warn(clazz, m, "FW12", "Should avoid odd sized primitives; use int instead")
-        for arg in m.args:
-            if arg in discouraged:
-                warn(clazz, m, "FW12", "Should avoid odd sized primitives; use int instead")
-
-
-PRIMITIVES = {"void", "int", "float", "boolean", "short", "char", "byte", "long", "double"}
-
-@verifier
-def verify_nullability(clazz):
-    """Catches missing nullability annotations"""
-
-    for f in clazz.fields:
-        if "enum_constant" in f.split:
-            continue  # Enum constants are never null
-        if f.value is not None and 'final' in f.split:
-            continue  # Nullability of constants can be inferred.
-        if f.typ not in PRIMITIVES and not has_nullability(f.annotations):
-            error(clazz, f, "M12", "Field must be marked either @NonNull or @Nullable")
-
-    for c in clazz.ctors:
-        verify_nullability_args(clazz, c)
-
-    for m in clazz.methods:
-        if m.name == "writeToParcel" or m.name == "onReceive" or m.name == "onBind":
-            continue  # Parcelable.writeToParcel(), BroadcastReceiver.onReceive(), and Service.onBind() are not yet annotated
-
-        if (m.name == "equals" and m.args == ["java.lang.Object"] or
-                m.name == "toString" and m.args == []):
-            continue  # Nullability of equals and toString is implicit.
-
-        if m.typ not in PRIMITIVES and not has_nullability(m.annotations):
-            error(clazz, m, "M12", "Return value must be marked either @NonNull or @Nullable")
-        verify_nullability_args(clazz, m)
-
-def verify_nullability_args(clazz, m):
-    for i, arg in enumerate(m.detailed_args):
-        if arg.type not in PRIMITIVES and not has_nullability(arg.annotations):
-            error(clazz, m, "M12", "Argument %d must be marked either @NonNull or @Nullable" % (i+1,))
-
-def has_nullability(annotations):
-    return "@NonNull" in annotations or "@Nullable" in annotations
-
-
-@verifier
-def verify_intdef(clazz):
-    """intdefs must be @hide, because the constant names cannot be stored in
-       the stubs (only the values are, which is not useful)"""
-    if "@interface" not in clazz.split:
-        return
-    if "@IntDef" in clazz.annotations or "@LongDef" in clazz.annotations:
-        error(clazz, None, None, "@IntDef and @LongDef annotations must be @hide")
-
-
-@verifier
-def verify_singleton(clazz):
-    """Catch singleton objects with constructors."""
-
-    singleton = False
-    for m in clazz.methods:
-        if m.name.startswith("get") and m.name.endswith("Instance") and " static " in m.raw:
-            singleton = True
-
-    if singleton:
-        for c in clazz.ctors:
-            error(clazz, c, None, "Singleton classes should use getInstance() methods")
-
-
-
-def is_interesting(clazz):
-    """Test if given class is interesting from an Android PoV."""
-
-    if clazz.pkg.name.startswith("java"): return False
-    if clazz.pkg.name.startswith("junit"): return False
-    if clazz.pkg.name.startswith("org.apache"): return False
-    if clazz.pkg.name.startswith("org.xml"): return False
-    if clazz.pkg.name.startswith("org.json"): return False
-    if clazz.pkg.name.startswith("org.w3c"): return False
-    if clazz.pkg.name.startswith("android.icu."): return False
-    return True
-
-
-def examine_clazz(clazz):
-    """Find all style issues in the given class."""
-
-    notice(clazz)
-
-    if not is_interesting(clazz): return
-
-    for v in verifiers.itervalues():
-        v(clazz)
-
-    if not ALLOW_GOOGLE: verify_google(clazz)
-
-
-def examine_stream(stream, base_stream=None, in_classes_with_base=[], out_classes_with_base=None):
-    """Find all style issues in the given API stream."""
-    global failures, noticed
-    failures = {}
-    noticed = {}
-    _parse_stream(stream, examine_clazz, base_f=base_stream,
-                  in_classes_with_base=in_classes_with_base,
-                  out_classes_with_base=out_classes_with_base)
-    return (failures, noticed)
-
-
-def examine_api(api):
-    """Find all style issues in the given parsed API."""
-    global failures
-    failures = {}
-    for key in sorted(api.keys()):
-        examine_clazz(api[key])
-    return failures
-
-
-def verify_compat(cur, prev):
-    """Find any incompatible API changes between two levels."""
-    global failures
-
-    def class_exists(api, test):
-        return test.fullname in api
-
-    def ctor_exists(api, clazz, test):
-        for m in clazz.ctors:
-            if m.ident == test.ident: return True
-        return False
-
-    def all_methods(api, clazz):
-        methods = list(clazz.methods)
-        if clazz.extends is not None:
-            methods.extend(all_methods(api, api[clazz.extends]))
-        return methods
-
-    def method_exists(api, clazz, test):
-        methods = all_methods(api, clazz)
-        for m in methods:
-            if m.ident == test.ident: return True
-        return False
-
-    def field_exists(api, clazz, test):
-        for f in clazz.fields:
-            if f.ident == test.ident: return True
-        return False
-
-    failures = {}
-    for key in sorted(prev.keys()):
-        prev_clazz = prev[key]
-
-        if not class_exists(cur, prev_clazz):
-            error(prev_clazz, None, None, "Class removed or incompatible change")
-            continue
-
-        cur_clazz = cur[key]
-
-        for test in prev_clazz.ctors:
-            if not ctor_exists(cur, cur_clazz, test):
-                error(prev_clazz, prev_ctor, None, "Constructor removed or incompatible change")
-
-        methods = all_methods(prev, prev_clazz)
-        for test in methods:
-            if not method_exists(cur, cur_clazz, test):
-                error(prev_clazz, test, None, "Method removed or incompatible change")
-
-        for test in prev_clazz.fields:
-            if not field_exists(cur, cur_clazz, test):
-                error(prev_clazz, test, None, "Field removed or incompatible change")
-
-    return failures
-
-
-def match_filter(filters, fullname):
-    for f in filters:
-        if fullname == f:
-            return True
-        if fullname.startswith(f + '.'):
-            return True
-    return False
-
-
-def show_deprecations_at_birth(cur, prev):
-    """Show API deprecations at birth."""
-    global failures
-
-    # Remove all existing things so we're left with new
-    for prev_clazz in prev.values():
-        if prev_clazz.fullname not in cur:
-            # The class was removed this release; we can safely ignore it.
-            continue
-
-        cur_clazz = cur[prev_clazz.fullname]
-        if not is_interesting(cur_clazz): continue
-
-        sigs = { i.ident: i for i in prev_clazz.ctors }
-        cur_clazz.ctors = [ i for i in cur_clazz.ctors if i.ident not in sigs ]
-        sigs = { i.ident: i for i in prev_clazz.methods }
-        cur_clazz.methods = [ i for i in cur_clazz.methods if i.ident not in sigs ]
-        sigs = { i.ident: i for i in prev_clazz.fields }
-        cur_clazz.fields = [ i for i in cur_clazz.fields if i.ident not in sigs ]
-
-        # Forget about class entirely when nothing new
-        if len(cur_clazz.ctors) == 0 and len(cur_clazz.methods) == 0 and len(cur_clazz.fields) == 0:
-            del cur[prev_clazz.fullname]
-
-    for clazz in cur.values():
-        if not is_interesting(clazz): continue
-
-        if "deprecated" in clazz.split and not clazz.fullname in prev:
-            error(clazz, None, None, "Found API deprecation at birth")
-
-        for i in clazz.ctors + clazz.methods + clazz.fields:
-            if "deprecated" in i.split:
-                error(clazz, i, None, "Found API deprecation at birth")
-
-    print "%s Deprecated at birth %s\n" % ((format(fg=WHITE, bg=BLUE, bold=True),
-                                            format(reset=True)))
-    for f in sorted(failures):
-        print failures[f]
-        print
-
-
-def show_stats(cur, prev):
-    """Show API stats."""
-
-    stats = collections.defaultdict(int)
-    for cur_clazz in cur.values():
-        if not is_interesting(cur_clazz): continue
-
-        if cur_clazz.fullname not in prev:
-            stats['new_classes'] += 1
-            stats['new_ctors'] += len(cur_clazz.ctors)
-            stats['new_methods'] += len(cur_clazz.methods)
-            stats['new_fields'] += len(cur_clazz.fields)
-        else:
-            prev_clazz = prev[cur_clazz.fullname]
-
-            sigs = { i.ident: i for i in prev_clazz.ctors }
-            ctors = len([ i for i in cur_clazz.ctors if i.ident not in sigs ])
-            sigs = { i.ident: i for i in prev_clazz.methods }
-            methods = len([ i for i in cur_clazz.methods if i.ident not in sigs ])
-            sigs = { i.ident: i for i in prev_clazz.fields }
-            fields = len([ i for i in cur_clazz.fields if i.ident not in sigs ])
-
-            if ctors + methods + fields > 0:
-                stats['extend_classes'] += 1
-                stats['extend_ctors'] += ctors
-                stats['extend_methods'] += methods
-                stats['extend_fields'] += fields
-
-    print "#", "".join([ k.ljust(20) for k in sorted(stats.keys()) ])
-    print " ", "".join([ str(stats[k]).ljust(20) for k in sorted(stats.keys()) ])
-
-
-def main():
-    parser = argparse.ArgumentParser(description="Enforces common Android public API design \
-            patterns. It ignores lint messages from a previous API level, if provided.")
-    parser.add_argument("--base-current", nargs='?', type=argparse.FileType('r'), default=None,
-            help="The base current.txt to use when examining system-current.txt or"
-                 " test-current.txt")
-    parser.add_argument("--base-previous", nargs='?', type=argparse.FileType('r'), default=None,
-            help="The base previous.txt to use when examining system-previous.txt or"
-                 " test-previous.txt")
-    parser.add_argument("--no-color", action='store_const', const=True,
-            help="Disable terminal colors")
-    parser.add_argument("--color", action='store_const', const=True,
-            help="Use terminal colors")
-    parser.add_argument("--allow-google", action='store_const', const=True,
-            help="Allow references to Google")
-    parser.add_argument("--show-noticed", action='store_const', const=True,
-            help="Show API changes noticed")
-    parser.add_argument("--show-deprecations-at-birth", action='store_const', const=True,
-            help="Show API deprecations at birth")
-    parser.add_argument("--show-stats", action='store_const', const=True,
-            help="Show API stats")
-    parser.add_argument("--title", action='store', default=None,
-            help="Title to put in for display purposes")
-    parser.add_argument("--filter", action="append",
-            help="If provided, only show lint for the given packages or classes.")
-    parser.add_argument("current.txt", type=argparse.FileType('r'), help="current.txt")
-    parser.add_argument("previous.txt", nargs='?', type=argparse.FileType('r'), default=None,
-            help="previous.txt")
-    args = vars(parser.parse_args())
-
-    if args['no_color']:
-        USE_COLOR = False
-    elif args['color']:
-        USE_COLOR = True
-    else:
-        USE_COLOR = sys.stdout.isatty()
-
-    if args['allow_google']:
-        ALLOW_GOOGLE = True
-
-    current_file = args['current.txt']
-    base_current_file = args['base_current']
-    previous_file = args['previous.txt']
-    base_previous_file = args['base_previous']
-    filters = args['filter']
-    if not filters:
-        filters = []
-    title = args['title']
-    if not title:
-        title = current_file.name
-
-    if args['show_deprecations_at_birth']:
-        with current_file as f:
-            cur = _parse_stream(f)
-        with previous_file as f:
-            prev = _parse_stream(f)
-        show_deprecations_at_birth(cur, prev)
-        sys.exit()
-
-    if args['show_stats']:
-        with current_file as f:
-            cur = _parse_stream(f)
-        with previous_file as f:
-            prev = _parse_stream(f)
-        show_stats(cur, prev)
-        sys.exit()
-
-    classes_with_base = []
-
-    with current_file as f:
-        if base_current_file:
-            with base_current_file as base_f:
-                cur_fail, cur_noticed = examine_stream(f, base_f,
-                                                       out_classes_with_base=classes_with_base)
-        else:
-            cur_fail, cur_noticed = examine_stream(f, out_classes_with_base=classes_with_base)
-
-    if not previous_file is None:
-        with previous_file as f:
-            if base_previous_file:
-                with base_previous_file as base_f:
-                    prev_fail, prev_noticed = examine_stream(f, base_f,
-                                                             in_classes_with_base=classes_with_base)
-            else:
-                prev_fail, prev_noticed = examine_stream(f, in_classes_with_base=classes_with_base)
-
-        # ignore errors from previous API level
-        for p in prev_fail:
-            if p in cur_fail:
-                del cur_fail[p]
-
-        # ignore classes unchanged from previous API level
-        for k, v in prev_noticed.iteritems():
-            if k in cur_noticed and v == cur_noticed[k]:
-                del cur_noticed[k]
-
-        """
-        # NOTE: disabled because of memory pressure
-        # look for compatibility issues
-        compat_fail = verify_compat(cur, prev)
-
-        print "%s API compatibility issues %s\n" % ((format(fg=WHITE, bg=BLUE, bold=True), format(reset=True)))
-        for f in sorted(compat_fail):
-            print compat_fail[f]
-            print
-        """
-
-    # ignore everything but the given filters, if provided
-    if filters:
-        cur_fail = dict([(key, failure) for key, failure in cur_fail.iteritems()
-                if match_filter(filters, failure.clazz.fullname)])
-
-    if args['show_noticed'] and len(cur_noticed) != 0:
-        print "%s API changes noticed %s\n" % ((format(fg=WHITE, bg=BLUE, bold=True), format(reset=True)))
-        for f in sorted(cur_noticed.keys()):
-            print f
-        print
-
-    if len(cur_fail) != 0:
-        print "%s API style issues: %s %s" % ((format(fg=WHITE, bg=BLUE, bold=True),
-                    title, format(reset=True)))
-        for f in filters:
-            print "%s   filter: %s %s" % ((format(fg=WHITE, bg=BLUE, bold=True),
-                        f, format(reset=True)))
-        print
-        for f in sorted(cur_fail):
-            print cur_fail[f]
-            print
-        print "%d errors" % len(cur_fail)
-        sys.exit(77)
-
-if __name__ == "__main__":
-    try:
-        main()
-    except KeyboardInterrupt:
-        sys.exit(1)
diff --git a/tools/apilint/apilint_sha.sh b/tools/apilint/apilint_sha.sh
deleted file mode 100755
index 2a45b10..0000000
--- a/tools/apilint/apilint_sha.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/bash
-if git show --name-only --pretty=format: $1 | grep api/ > /dev/null; then
-    python tools/apilint/apilint.py <(git show $1:api/current.txt) <(git show $1^:api/current.txt)
-fi
diff --git a/tools/apilint/apilint_sha_system.sh b/tools/apilint/apilint_sha_system.sh
deleted file mode 100755
index 8538a3d..0000000
--- a/tools/apilint/apilint_sha_system.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-
-# Copyright (C) 2018 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.
-
-if git show --name-only --pretty=format: $1 | grep api/ > /dev/null; then
-  python tools/apilint/apilint.py \
-    --base-current <(git show $1:api/current.txt) \
-    --base-previous <(git show $1^:api/current.txt) \
-    <(git show $1:api/system-current.txt) \
-    <(git show $1^:api/system-current.txt)
-fi
diff --git a/tools/apilint/apilint_stats.sh b/tools/apilint/apilint_stats.sh
deleted file mode 100755
index 052d9a5..0000000
--- a/tools/apilint/apilint_stats.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-API=28
-while [ $API -gt 14 ]; do
-    echo "# Changes in API $((API))"
-    python tools/apilint/apilint.py --show-stats ../../prebuilts/sdk/$((API))/public/api/android.txt ../../prebuilts/sdk/$((API-1))/public/api/android.txt
-    let API=API-1
-done
diff --git a/tools/apilint/apilint_test.py b/tools/apilint/apilint_test.py
deleted file mode 100644
index 811cb9a..0000000
--- a/tools/apilint/apilint_test.py
+++ /dev/null
@@ -1,414 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (C) 2018 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.
-
-import unittest
-
-import apilint
-
-def cls(pkg, name):
-    return apilint.Class(apilint.Package(999, "package %s {" % pkg, None), 999,
-                  "public final class %s {" % name, None)
-
-_ri = apilint._retry_iterator
-
-c1 = cls("android.app", "ActivityManager")
-c2 = cls("android.app", "Notification")
-c3 = cls("android.app", "Notification.Action")
-c4 = cls("android.graphics", "Bitmap")
-
-class UtilTests(unittest.TestCase):
-    def test_retry_iterator(self):
-        it = apilint._retry_iterator([1, 2, 3, 4])
-        self.assertEqual(it.next(), 1)
-        self.assertEqual(it.next(), 2)
-        self.assertEqual(it.next(), 3)
-        it.send("retry")
-        self.assertEqual(it.next(), 3)
-        self.assertEqual(it.next(), 4)
-        with self.assertRaises(StopIteration):
-            it.next()
-
-    def test_retry_iterator_one(self):
-        it = apilint._retry_iterator([1])
-        self.assertEqual(it.next(), 1)
-        it.send("retry")
-        self.assertEqual(it.next(), 1)
-        with self.assertRaises(StopIteration):
-            it.next()
-
-    def test_retry_iterator_one(self):
-        it = apilint._retry_iterator([1])
-        self.assertEqual(it.next(), 1)
-        it.send("retry")
-        self.assertEqual(it.next(), 1)
-        with self.assertRaises(StopIteration):
-            it.next()
-
-    def test_skip_to_matching_class_found(self):
-        it = _ri([c1, c2, c3, c4])
-        self.assertEquals(apilint._skip_to_matching_class(it, c3),
-                          c3)
-        self.assertEqual(it.next(), c4)
-
-    def test_skip_to_matching_class_not_found(self):
-        it = _ri([c1, c2, c3, c4])
-        self.assertEquals(apilint._skip_to_matching_class(it, cls("android.content", "ContentProvider")),
-                          None)
-        self.assertEqual(it.next(), c4)
-
-    def test_yield_until_matching_class_found(self):
-        it = _ri([c1, c2, c3, c4])
-        self.assertEquals(list(apilint._yield_until_matching_class(it, c3)),
-                          [c1, c2])
-        self.assertEqual(it.next(), c4)
-
-    def test_yield_until_matching_class_not_found(self):
-        it = _ri([c1, c2, c3, c4])
-        self.assertEquals(list(apilint._yield_until_matching_class(it, cls("android.content", "ContentProvider"))),
-                          [c1, c2, c3])
-        self.assertEqual(it.next(), c4)
-
-    def test_yield_until_matching_class_None(self):
-        it = _ri([c1, c2, c3, c4])
-        self.assertEquals(list(apilint._yield_until_matching_class(it, None)),
-                          [c1, c2, c3, c4])
-
-
-faulty_current_txt = """
-// Signature format: 2.0
-package android.app {
-  public final class Activity {
-  }
-
-  public final class WallpaperColors implements android.os.Parcelable {
-    ctor public WallpaperColors(@NonNull android.os.Parcel);
-    method public int describeContents();
-    method public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @NonNull public static final android.os.Parcelable.Creator<android.app.WallpaperColors> CREATOR;
-  }
-}
-""".strip().split('\n')
-
-ok_current_txt = """
-// Signature format: 2.0
-package android.app {
-  public final class Activity {
-  }
-
-  public final class WallpaperColors implements android.os.Parcelable {
-    ctor public WallpaperColors();
-    method public int describeContents();
-    method public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @NonNull public static final android.os.Parcelable.Creator<android.app.WallpaperColors> CREATOR;
-  }
-}
-""".strip().split('\n')
-
-system_current_txt = """
-// Signature format: 2.0
-package android.app {
-  public final class WallpaperColors implements android.os.Parcelable {
-    method public int getSomething();
-  }
-}
-""".strip().split('\n')
-
-
-
-class BaseFileTests(unittest.TestCase):
-    def test_base_file_avoids_errors(self):
-        failures, _ = apilint.examine_stream(system_current_txt, ok_current_txt)
-        self.assertEquals(failures, {})
-
-    def test_class_with_base_finds_same_errors(self):
-        failures_with_classes_with_base, _ = apilint.examine_stream("", faulty_current_txt,
-                                                                    in_classes_with_base=[cls("android.app", "WallpaperColors")])
-        failures_with_system_txt, _ = apilint.examine_stream(system_current_txt, faulty_current_txt)
-
-        self.assertEquals(failures_with_classes_with_base.keys(), failures_with_system_txt.keys())
-
-    def test_classes_with_base_is_emited(self):
-        classes_with_base = []
-        _, _ = apilint.examine_stream(system_current_txt, faulty_current_txt,
-                                      out_classes_with_base=classes_with_base)
-        self.assertEquals(map(lambda x: x.fullname, classes_with_base), ["android.app.WallpaperColors"])
-
-class ParseV2Stream(unittest.TestCase):
-    def test_field_kinds(self):
-        api = apilint._parse_stream("""
-// Signature format: 2.0
-package android {
-  public enum SomeEnum {
-    enum_constant public static final android.SomeEnum ENUM_CONST;
-    field public static final int FIELD_CONST;
-    property public final int someProperty;
-    ctor public SomeEnum();
-    method public Object? getObject();
-  }
-}
-        """.strip().split('\n'))
-
-        self.assertEquals(api['android.SomeEnum'].fields[0].split[0], 'enum_constant')
-        self.assertEquals(api['android.SomeEnum'].fields[1].split[0], 'field')
-        self.assertEquals(api['android.SomeEnum'].fields[2].split[0], 'property')
-        self.assertEquals(api['android.SomeEnum'].ctors[0].split[0], 'ctor')
-        self.assertEquals(api['android.SomeEnum'].methods[0].split[0], 'method')
-
-class ParseV3Stream(unittest.TestCase):
-    def test_field_kinds(self):
-        api = apilint._parse_stream("""
-// Signature format: 3.0
-package a {
-
-  public final class ContextKt {
-    method public static inline <reified T> T! getSystemService(android.content.Context);
-    method public static inline void withStyledAttributes(android.content.Context, android.util.AttributeSet? set = null, int[] attrs, @AttrRes int defStyleAttr = 0, @StyleRes int defStyleRes = 0, kotlin.jvm.functions.Function1<? super android.content.res.TypedArray,kotlin.Unit> block);
-  }
-}
-        """.strip().split('\n'))
-        self.assertEquals(api['a.ContextKt'].methods[0].name, 'getSystemService')
-        self.assertEquals(api['a.ContextKt'].methods[0].split[:4], ['method', 'public', 'static', 'inline'])
-        self.assertEquals(api['a.ContextKt'].methods[1].name, 'withStyledAttributes')
-        self.assertEquals(api['a.ContextKt'].methods[1].split[:4], ['method', 'public', 'static', 'inline'])
-
-class V2TokenizerTests(unittest.TestCase):
-    def _test(self, raw, expected):
-        self.assertEquals(apilint.V2Tokenizer(raw).tokenize(), expected)
-
-    def test_simple(self):
-        self._test("  method public some.Type someName(some.Argument arg, int arg);",
-                   ['method', 'public', 'some.Type', 'someName', '(', 'some.Argument',
-                    'arg', ',', 'int', 'arg', ')', ';'])
-        self._test("class Some.Class extends SomeOther {",
-                   ['class', 'Some.Class', 'extends', 'SomeOther', '{'])
-
-    def test_varargs(self):
-        self._test("name(String...)",
-                   ['name', '(', 'String', '...', ')'])
-
-    def test_kotlin(self):
-        self._test("String? name(String!...)",
-                   ['String', '?', 'name', '(', 'String', '!',  '...', ')'])
-
-    def test_annotation(self):
-        self._test("method @Nullable public void name();",
-                   ['method', '@', 'Nullable', 'public', 'void', 'name', '(', ')', ';'])
-
-    def test_annotation_args(self):
-        self._test("@Some(val=1, other=2) class Class {",
-                   ['@', 'Some', '(', 'val', '=', '1', ',', 'other', '=', '2', ')',
-                    'class', 'Class', '{'])
-    def test_comment(self):
-        self._test("some //comment", ['some'])
-
-    def test_strings(self):
-        self._test(r'"" "foo" "\"" "\\"', ['""', '"foo"', r'"\""', r'"\\"'])
-
-    def test_at_interface(self):
-        self._test("public @interface Annotation {",
-                   ['public', '@interface', 'Annotation', '{'])
-
-    def test_array_type(self):
-        self._test("int[][]", ['int', '[]', '[]'])
-
-    def test_generics(self):
-        self._test("<>foobar<A extends Object>",
-                   ['<', '>', 'foobar', '<', 'A', 'extends', 'Object', '>'])
-
-class V2ParserTests(unittest.TestCase):
-    def _cls(self, raw):
-        pkg = apilint.Package(999, "package pkg {", None)
-        return apilint.Class(pkg, 1, raw, '', sig_format=2)
-
-    def _method(self, raw, cls=None):
-        if not cls:
-            cls = self._cls("class Class {")
-        return apilint.Method(cls, 1, raw, '', sig_format=2)
-
-    def _field(self, raw):
-        cls = self._cls("class Class {")
-        return apilint.Field(cls, 1, raw, '', sig_format=2)
-
-    def test_parse_package(self):
-        pkg = apilint.Package(999, "package wifi.p2p {", None)
-        self.assertEquals("wifi.p2p", pkg.name)
-
-    def test_class(self):
-        cls = self._cls("@Deprecated @IntRange(from=1, to=2) public static abstract class Some.Name extends Super<Class> implements Interface<Class> {")
-        self.assertTrue('deprecated' in cls.split)
-        self.assertTrue('static' in cls.split)
-        self.assertTrue('abstract' in cls.split)
-        self.assertTrue('class' in cls.split)
-        self.assertEquals('Super', cls.extends)
-        self.assertEquals('Interface', cls.implements)
-        self.assertEquals('pkg.Some.Name', cls.fullname)
-
-    def test_enum(self):
-        cls = self._cls("public enum Some.Name {")
-        self._field("enum_constant public static final android.ValueType COLOR;")
-
-    def test_interface(self):
-        cls = self._cls("@Deprecated @IntRange(from=1, to=2) public interface Some.Name extends Interface<Class> {")
-        self.assertTrue('deprecated' in cls.split)
-        self.assertTrue('interface' in cls.split)
-        self.assertEquals('Interface', cls.extends)
-        self.assertEquals('Interface', cls.implements)
-        self.assertEquals('pkg.Some.Name', cls.fullname)
-
-    def test_at_interface(self):
-        cls = self._cls("@java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.CONSTRUCTOR, java.lang.annotation.ElementType.LOCAL_VARIABLE}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface SuppressLint {")
-        self.assertTrue('@interface' in cls.split)
-        self.assertEquals('pkg.SuppressLint', cls.fullname)
-
-    def test_parse_method(self):
-        m = self._method("method @Deprecated public static native <T> Class<T>[][] name("
-                         + "Class<T[]>[][], Class<T[][][]>[][]...) throws Exception, T;")
-        self.assertTrue('static' in m.split)
-        self.assertTrue('public' in m.split)
-        self.assertTrue('method' in m.split)
-        self.assertTrue('native' in m.split)
-        self.assertTrue('deprecated' in m.split)
-        self.assertEquals('java.lang.Class[][]', m.typ)
-        self.assertEquals('name', m.name)
-        self.assertEquals(['java.lang.Class[][]', 'java.lang.Class[][]...'], m.args)
-        self.assertEquals(['java.lang.Exception', 'T'], m.throws)
-
-    def test_ctor(self):
-        m = self._method("ctor @Deprecated <T> ClassName();")
-        self.assertTrue('ctor' in m.split)
-        self.assertTrue('deprecated' in m.split)
-        self.assertEquals('ctor', m.typ)
-        self.assertEquals('ClassName', m.name)
-
-    def test_parse_annotation_method(self):
-        cls = self._cls("@interface Annotation {")
-        self._method('method abstract String category() default "";', cls=cls)
-        self._method('method abstract boolean deepExport() default false;', cls=cls)
-        self._method('method abstract ViewDebug.FlagToString[] flagMapping() default {};', cls=cls)
-        self._method('method abstract ViewDebug.FlagToString[] flagMapping() default (double)java.lang.Float.NEGATIVE_INFINITY;', cls=cls)
-
-    def test_parse_string_field(self):
-        f = self._field('field @Deprecated public final String SOME_NAME = "value";')
-        self.assertTrue('field' in f.split)
-        self.assertTrue('deprecated' in f.split)
-        self.assertTrue('final' in f.split)
-        self.assertEquals('java.lang.String', f.typ)
-        self.assertEquals('SOME_NAME', f.name)
-        self.assertEquals('value', f.value)
-
-    def test_parse_field(self):
-        f = self._field('field public Object SOME_NAME;')
-        self.assertTrue('field' in f.split)
-        self.assertEquals('java.lang.Object', f.typ)
-        self.assertEquals('SOME_NAME', f.name)
-        self.assertEquals(None, f.value)
-
-    def test_parse_int_field(self):
-        f = self._field('field public int NAME = 123;')
-        self.assertTrue('field' in f.split)
-        self.assertEquals('int', f.typ)
-        self.assertEquals('NAME', f.name)
-        self.assertEquals('123', f.value)
-
-    def test_parse_quotient_field(self):
-        f = self._field('field public int NAME = (0.0/0.0);')
-        self.assertTrue('field' in f.split)
-        self.assertEquals('int', f.typ)
-        self.assertEquals('NAME', f.name)
-        self.assertEquals('( 0.0 / 0.0 )', f.value)
-
-    def test_kotlin_types(self):
-        self._field('field public List<Integer[]?[]!>?[]![]? NAME;')
-        self._method("method <T?> Class<T!>?[]![][]? name(Type!, Type argname,"
-                         + "Class<T?>[][]?[]!...!) throws Exception, T;")
-        self._method("method <T> T name(T a = 1, T b = A(1), Lambda f = { false }, N? n = null, "
-                         + """double c = (1/0), float d = 1.0f, String s = "heyo", char c = 'a');""")
-
-    def test_kotlin_operator(self):
-        self._method('method public operator void unaryPlus(androidx.navigation.NavDestination);')
-        self._method('method public static operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, @IdRes int id);')
-        self._method('method public static operator <T> T get(androidx.navigation.NavigatorProvider, kotlin.reflect.KClass<T> clazz);')
-
-    def test_kotlin_property(self):
-        self._field('property public VM value;')
-        self._field('property public final String? action;')
-
-    def test_kotlin_varargs(self):
-        self._method('method public void error(int p = "42", Integer int2 = "null", int p1 = "42", vararg String args);')
-
-    def test_kotlin_default_values(self):
-        self._method('method public void foo(String! = null, String! = "Hello World", int = 42);')
-        self._method('method void method(String, String firstArg = "hello", int secondArg = "42", String thirdArg = "world");')
-        self._method('method void method(String, String firstArg = "hello", int secondArg = "42");')
-        self._method('method void method(String, String firstArg = "hello");')
-        self._method('method void edit(android.Type, boolean commit = false, Function1<? super Editor,kotlin.Unit> action);')
-        self._method('method <K, V> LruCache<K,V> lruCache(int maxSize, Function2<? super K,? super V,java.lang.Integer> sizeOf = { _, _ -> 1 }, Function1<? extends V> create = { (V)null }, Function4<kotlin.Unit> onEntryRemoved = { _, _, _, _ ->  });')
-        self._method('method android.Bitmap? drawToBitmap(android.View, android.Config config = android.graphics.Bitmap.Config.ARGB_8888);')
-        self._method('method void emptyLambda(Function0<kotlin.Unit> sizeOf = {});')
-        self._method('method void method1(int p = 42, Integer? int2 = null, int p1 = 42, String str = "hello world", java.lang.String... args);')
-        self._method('method void method2(int p, int int2 = (2 * int) * some.other.pkg.Constants.Misc.SIZE);')
-        self._method('method void method3(String str, int p, int int2 = double(int) + str.length);')
-        self._method('method void print(test.pkg.Foo foo = test.pkg.Foo());')
-
-    def test_type_use_annotation(self):
-        self._method('method public static int codePointAt(char @NonNull [], int);')
-        self._method('method @NonNull public java.util.Set<java.util.Map.@NonNull Entry<K,V>> entrySet();')
-
-        m = self._method('method @NonNull public java.lang.annotation.@NonNull Annotation @NonNull [] getAnnotations();')
-        self.assertEquals('java.lang.annotation.Annotation[]', m.typ)
-
-        m = self._method('method @NonNull public abstract java.lang.annotation.@NonNull Annotation @NonNull [] @NonNull [] getParameterAnnotations();')
-        self.assertEquals('java.lang.annotation.Annotation[][]', m.typ)
-
-        m = self._method('method @NonNull public @NonNull String @NonNull [] split(@NonNull String, int);')
-        self.assertEquals('java.lang.String[]', m.typ)
-
-class PackageTests(unittest.TestCase):
-    def _package(self, raw):
-        return apilint.Package(123, raw, "blame")
-
-    def test_regular_package(self):
-        p = self._package("package an.pref.int {")
-        self.assertEquals('an.pref.int', p.name)
-
-    def test_annotation_package(self):
-        p = self._package("package @RestrictTo(a.b.C) an.pref.int {")
-        self.assertEquals('an.pref.int', p.name)
-
-    def test_multi_annotation_package(self):
-        p = self._package("package @Rt(a.b.L_G_P) @RestrictTo(a.b.C) an.pref.int {")
-        self.assertEquals('an.pref.int', p.name)
-
-class FilterTests(unittest.TestCase):
-    def test_filter_match_prefix(self):
-        self.assertTrue(apilint.match_filter(["a"], "a.B"))
-        self.assertTrue(apilint.match_filter(["a.B"], "a.B.C"))
-
-    def test_filter_dont_match_prefix(self):
-        self.assertFalse(apilint.match_filter(["c"], "a.B"))
-        self.assertFalse(apilint.match_filter(["a."], "a.B"))
-        self.assertFalse(apilint.match_filter(["a.B."], "a.B.C"))
-
-    def test_filter_match_exact(self):
-        self.assertTrue(apilint.match_filter(["a.B"], "a.B"))
-
-    def test_filter_dont_match_exact(self):
-        self.assertFalse(apilint.match_filter([""], "a.B"))
-        self.assertFalse(apilint.match_filter(["a.C"], "a.B"))
-        self.assertFalse(apilint.match_filter(["a.C"], "a.B"))
-        
-if __name__ == "__main__":
-    unittest.main()
diff --git a/tools/genprotos.sh b/tools/genprotos.sh
deleted file mode 100755
index f901c9f..0000000
--- a/tools/genprotos.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-
-# TODO This should not be needed. If you set a custom OUT_DIR or OUT_DIR_COMMON_BASE you can
-# end up with a command that is extremely long, potentially going passed MAX_ARG_STRLEN due to
-# the way sbox rewrites the command. See b/70221552.
-
-set -e
-
-location_aprotoc=$1
-location_protoc=$2
-location_soong_zip=$3
-genDir=$4
-depfile=$5
-in=$6
-out=$7
-
-mkdir -p ${genDir}/${in} && \
-  ${location_aprotoc} --plugin=${location_protoc} \
-                      --dependency_out=${depfile} \
-                      --javastream_out=${genDir}/${in} \
-                      -Iexternal/protobuf/src \
-                      -I . \
-                      ${in} && \
-  ${location_soong_zip} -jar -o ${out} -C ${genDir}/${in} -D ${genDir}/${in}
diff --git a/tools/hiddenapi/generate_hiddenapi_lists.py b/tools/hiddenapi/generate_hiddenapi_lists.py
index e883c6b..46105f4 100755
--- a/tools/hiddenapi/generate_hiddenapi_lists.py
+++ b/tools/hiddenapi/generate_hiddenapi_lists.py
@@ -241,8 +241,6 @@
             flags = csv[1:]
             if (FLAG_PUBLIC_API in flags) or (FLAG_SYSTEM_API in flags):
                 flags.append(FLAG_WHITELIST)
-            elif FLAG_TEST_API in flags:
-                flags.append(FLAG_GREYLIST)
             self._dict[csv[0]].update(flags)
 
     def assign_flag(self, flag, apis, source="<unknown>"):
diff --git a/tools/hiddenapi/generate_hiddenapi_lists_test.py b/tools/hiddenapi/generate_hiddenapi_lists_test.py
index 4dc880b..55c3a7d 100755
--- a/tools/hiddenapi/generate_hiddenapi_lists_test.py
+++ b/tools/hiddenapi/generate_hiddenapi_lists_test.py
@@ -53,14 +53,22 @@
         # Test new additions.
         flags.parse_and_merge_csv([
             'A,' + FLAG_GREYLIST,
-            'B,' + FLAG_BLACKLIST + ',' + FLAG_GREYLIST_MAX_O ])
-        self.assertEqual(flags.generate_csv(),
-            [ 'A,' + FLAG_GREYLIST,
-              'B,' + FLAG_BLACKLIST + "," + FLAG_GREYLIST_MAX_O ])
+            'B,' + FLAG_BLACKLIST + ',' + FLAG_GREYLIST_MAX_O,
+            'C,' + FLAG_SYSTEM_API + ',' + FLAG_WHITELIST,
+            'D,' + FLAG_GREYLIST+ ',' + FLAG_TEST_API,
+            'E,' + FLAG_BLACKLIST+ ',' + FLAG_TEST_API,
+        ])
+        self.assertEqual(flags.generate_csv(), [
+            'A,' + FLAG_GREYLIST,
+            'B,' + FLAG_BLACKLIST + "," + FLAG_GREYLIST_MAX_O,
+            'C,' + FLAG_SYSTEM_API + ',' + FLAG_WHITELIST,
+            'D,' + FLAG_GREYLIST+ ',' + FLAG_TEST_API,
+            'E,' + FLAG_BLACKLIST+ ',' + FLAG_TEST_API,
+        ])
 
         # Test unknown flag.
         with self.assertRaises(AssertionError):
-            flags.parse_and_merge_csv([ 'C,foo' ])
+            flags.parse_and_merge_csv([ 'Z,foo' ])
 
     def test_assign_flag(self):
         flags = FlagsDict()
diff --git a/tools/processors/unsupportedappusage/Android.bp b/tools/processors/unsupportedappusage/Android.bp
index 0e33fdd..1e96234 100644
--- a/tools/processors/unsupportedappusage/Android.bp
+++ b/tools/processors/unsupportedappusage/Android.bp
@@ -1,11 +1,6 @@
 
-java_plugin {
-    name: "unsupportedappusage-annotation-processor",
-    processor_class: "android.processor.unsupportedappusage.UnsupportedAppUsageProcessor",
-
-    java_resources: [
-        "META-INF/**/*",
-    ],
+java_library_host {
+    name: "unsupportedappusage-annotation-processor-lib",
     srcs: [
         "src/**/*.java",
     ],
@@ -22,6 +17,18 @@
             "--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED",
         ],
     },
+}
+
+java_plugin {
+    name: "unsupportedappusage-annotation-processor",
+    processor_class: "android.processor.unsupportedappusage.UnsupportedAppUsageProcessor",
+
+    java_resources: [
+        "META-INF/**/*",
+    ],
+    static_libs: [
+        "unsupportedappusage-annotation-processor-lib"
+    ],
 
     use_tools_jar: true,
 }
diff --git a/tools/processors/unsupportedappusage/src/android/processor/unsupportedappusage/SignatureBuilder.java b/tools/processors/unsupportedappusage/src/android/processor/unsupportedappusage/SignatureBuilder.java
index 5a5703e..65fc733 100644
--- a/tools/processors/unsupportedappusage/src/android/processor/unsupportedappusage/SignatureBuilder.java
+++ b/tools/processors/unsupportedappusage/src/android/processor/unsupportedappusage/SignatureBuilder.java
@@ -101,14 +101,20 @@
     private String getClassSignature(TypeElement clazz) {
         StringBuilder sb = new StringBuilder("L");
         for (Element enclosing : getEnclosingElements(clazz)) {
-            if (enclosing.getKind() == PACKAGE) {
-                sb.append(((PackageElement) enclosing)
-                        .getQualifiedName()
-                        .toString()
-                        .replace('.', '/'));
-                sb.append('/');
-            } else {
-                sb.append(enclosing.getSimpleName()).append('$');
+            switch (enclosing.getKind()) {
+                case MODULE:
+                    // ignore this.
+                    break;
+                case PACKAGE:
+                    sb.append(((PackageElement) enclosing)
+                            .getQualifiedName()
+                            .toString()
+                            .replace('.', '/'));
+                    sb.append('/');
+                    break;
+                default:
+                    sb.append(enclosing.getSimpleName()).append('$');
+                    break;
             }
 
         }
diff --git a/tools/processors/unsupportedappusage/test/Android.bp b/tools/processors/unsupportedappusage/test/Android.bp
new file mode 100644
index 0000000..49ea3d4
--- /dev/null
+++ b/tools/processors/unsupportedappusage/test/Android.bp
@@ -0,0 +1,28 @@
+// Copyright (C) 2019 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.
+
+java_test_host {
+    name: "unsupportedappusage-processor-test",
+
+    srcs: ["src/**/*.java"],
+
+    static_libs: [
+        "libjavac",
+        "unsupportedappusage-annotation-processor-lib",
+        "truth-host-prebuilt",
+        "mockito-host",
+        "junit-host",
+        "objenesis",
+    ],
+}
diff --git a/tools/processors/unsupportedappusage/test/src/android/processor/unsupportedappusage/CsvReader.java b/tools/processors/unsupportedappusage/test/src/android/processor/unsupportedappusage/CsvReader.java
new file mode 100644
index 0000000..23db99e
--- /dev/null
+++ b/tools/processors/unsupportedappusage/test/src/android/processor/unsupportedappusage/CsvReader.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package android.processor.unsupportedappusage;
+
+import com.google.common.base.Splitter;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class CsvReader {
+
+    private final Splitter mSplitter;
+    private final List<String> mColumns;
+    private final List<Map<String, String>> mContents;
+
+    public CsvReader(InputStream in) throws IOException {
+        mSplitter = Splitter.on(",");
+        BufferedReader br = new BufferedReader(new InputStreamReader(in));
+        mColumns = mSplitter.splitToList(br.readLine());
+        mContents = new ArrayList<>();
+        String line = br.readLine();
+        while (line != null) {
+            List<String> contents = mSplitter.splitToList(line);
+            Map<String, String> contentMap = new HashMap<>();
+            for (int i = 0; i < Math.min(contents.size(), mColumns.size()); ++i) {
+                contentMap.put(mColumns.get(i), contents.get(i));
+            }
+            mContents.add(contentMap);
+            line = br.readLine();
+        }
+        br.close();
+    }
+
+    public List<String> getColumns() {
+        return mColumns;
+    }
+
+    public List<Map<String, String>> getContents() {
+        return mContents;
+    }
+}
diff --git a/tools/processors/unsupportedappusage/test/src/android/processor/unsupportedappusage/UnsupportedAppUsageProcessorTest.java b/tools/processors/unsupportedappusage/test/src/android/processor/unsupportedappusage/UnsupportedAppUsageProcessorTest.java
new file mode 100644
index 0000000..012e88f
--- /dev/null
+++ b/tools/processors/unsupportedappusage/test/src/android/processor/unsupportedappusage/UnsupportedAppUsageProcessorTest.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package android.processor.unsupportedappusage;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import com.android.javac.Javac;
+
+import com.google.common.base.Joiner;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.Map;
+
+public class UnsupportedAppUsageProcessorTest {
+
+    private Javac mJavac;
+
+    @Before
+    public void setup() throws IOException {
+        mJavac = new Javac();
+        mJavac.addSource("dalvik.annotation.compat.UnsupportedAppUsage", Joiner.on('\n').join(
+                "package dalvik.annotation.compat;",
+                "public @interface UnsupportedAppUsage {",
+                "    String expectedSignature() default \"\";\n",
+                "    String someProperty() default \"\";",
+                "}"));
+    }
+
+    private CsvReader compileAndReadCsv() throws IOException {
+        mJavac.compileWithAnnotationProcessor(new UnsupportedAppUsageProcessor());
+        return new CsvReader(
+                mJavac.getOutputFile("unsupportedappusage/unsupportedappusage_index.csv"));
+    }
+
+    @Test
+    public void testSignatureFormat() throws Exception {
+        mJavac.addSource("a.b.Class", Joiner.on('\n').join(
+                "package a.b;",
+                "import dalvik.annotation.compat.UnsupportedAppUsage;",
+                "public class Class {",
+                "  @UnsupportedAppUsage",
+                "  public void method() {}",
+                "}"));
+        assertThat(compileAndReadCsv().getContents().get(0)).containsEntry(
+                "signature", "La/b/Class;->method()V"
+        );
+    }
+
+    @Test
+    public void testSourcePosition() throws Exception {
+        mJavac.addSource("a.b.Class", Joiner.on('\n').join(
+                "package a.b;", // 1
+                "import dalvik.annotation.compat.UnsupportedAppUsage;", // 2
+                "public class Class {", // 3
+                "  @UnsupportedAppUsage", // 4
+                "  public void method() {}", // 5
+                "}"));
+        Map<String, String> row = compileAndReadCsv().getContents().get(0);
+        assertThat(row).containsEntry("startline", "4");
+        assertThat(row).containsEntry("startcol", "3");
+        assertThat(row).containsEntry("endline", "4");
+        assertThat(row).containsEntry("endcol", "23");
+    }
+
+    @Test
+    public void testAnnotationProperties() throws Exception {
+        mJavac.addSource("a.b.Class", Joiner.on('\n').join(
+                "package a.b;", // 1
+                "import dalvik.annotation.compat.UnsupportedAppUsage;", // 2
+                "public class Class {", // 3
+                "  @UnsupportedAppUsage(someProperty=\"value\")", // 4
+                "  public void method() {}", // 5
+                "}"));
+        assertThat(compileAndReadCsv().getContents().get(0)).containsEntry(
+                "properties", "someProperty=%22value%22");
+    }
+
+
+}
diff --git a/wifi/java/android/net/wifi/ISoftApCallback.aidl b/wifi/java/android/net/wifi/ISoftApCallback.aidl
index b8d2971..8a252dd 100644
--- a/wifi/java/android/net/wifi/ISoftApCallback.aidl
+++ b/wifi/java/android/net/wifi/ISoftApCallback.aidl
@@ -16,6 +16,8 @@
 
 package android.net.wifi;
 
+import android.net.wifi.WifiClient;
+
 /**
  * Interface for Soft AP callback.
  *
@@ -36,9 +38,9 @@
     void onStateChanged(int state, int failureReason);
 
     /**
-     * Service to manager callback providing number of connected clients.
+     * Service to manager callback providing connected client's information.
      *
-     * @param numClients number of connected clients
+     * @param clients the currently connected clients
      */
-    void onNumClientsChanged(int numClients);
+    void onConnectedClientsChanged(in List<WifiClient> clients);
 }
diff --git a/wifi/java/android/net/wifi/WifiClient.aidl b/wifi/java/android/net/wifi/WifiClient.aidl
new file mode 100644
index 0000000..accdadd
--- /dev/null
+++ b/wifi/java/android/net/wifi/WifiClient.aidl
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package android.net.wifi;
+
+@JavaOnlyStableParcelable parcelable WifiClient;
\ No newline at end of file
diff --git a/wifi/java/android/net/wifi/WifiClient.java b/wifi/java/android/net/wifi/WifiClient.java
new file mode 100644
index 0000000..3e09580
--- /dev/null
+++ b/wifi/java/android/net/wifi/WifiClient.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package android.net.wifi;
+
+import android.annotation.NonNull;
+import android.annotation.SystemApi;
+import android.net.MacAddress;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import com.android.internal.util.Preconditions;
+
+import java.util.Objects;
+
+/** @hide */
+@SystemApi
+public final class WifiClient implements Parcelable {
+
+    private final MacAddress mMacAddress;
+
+    /**
+     * The mac address of this client.
+     */
+    @NonNull
+    public MacAddress getMacAddress() {
+        return mMacAddress;
+    }
+
+    private WifiClient(Parcel in) {
+        mMacAddress = in.readParcelable(null);
+    }
+
+    /** @hide */
+    public WifiClient(@NonNull MacAddress macAddress) {
+        Preconditions.checkNotNull(macAddress, "mMacAddress must not be null.");
+
+        this.mMacAddress = macAddress;
+    }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(@NonNull Parcel dest, int flags) {
+        dest.writeParcelable(mMacAddress, flags);
+    }
+
+    @NonNull
+    public static final Creator<WifiClient> CREATOR = new Creator<WifiClient>() {
+        public WifiClient createFromParcel(Parcel in) {
+            return new WifiClient(in);
+        }
+
+        public WifiClient[] newArray(int size) {
+            return new WifiClient[size];
+        }
+    };
+
+    @NonNull
+    @Override
+    public String toString() {
+        return "WifiClient{"
+                + "mMacAddress=" + mMacAddress
+                + '}';
+    }
+
+    @Override
+    public boolean equals(@NonNull Object o) {
+        if (this == o) return true;
+        if (!(o instanceof WifiClient)) return false;
+        WifiClient client = (WifiClient) o;
+        return mMacAddress.equals(client.mMacAddress);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(mMacAddress);
+    }
+}
+
+
diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java
index 0d2e816..b53b2aa 100644
--- a/wifi/java/android/net/wifi/WifiManager.java
+++ b/wifi/java/android/net/wifi/WifiManager.java
@@ -1128,6 +1128,9 @@
      */
     private static final int MAX_ACTIVE_LOCKS = 50;
 
+    /** Indicates an invalid SSID. */
+    public static final String UNKNOWN_SSID = "<unknown ssid>";
+
     /* Number of currently active WifiLocks and MulticastLocks */
     @UnsupportedAppUsage
     private int mActiveLockCount;
@@ -2326,7 +2329,7 @@
      * <p>
      * In the connected state, access to the SSID and BSSID requires
      * the same permissions as {@link #getScanResults}. If such access is not allowed,
-     * {@link WifiInfo#getSSID} will return {@code "<unknown ssid>"} and
+     * {@link WifiInfo#getSSID} will return {@link #UNKNOWN_SSID} and
      * {@link WifiInfo#getBSSID} will return {@code "02:00:00:00:00:00"}.
      *
      * @return the Wi-Fi information, contained in {@link WifiInfo}.
@@ -3117,29 +3120,31 @@
 
     /**
      * Base class for soft AP callback. Should be extended by applications and set when calling
-     * {@link WifiManager#registerSoftApCallback(SoftApCallback, Handler)}.
+     * {@link WifiManager#registerSoftApCallback(Executor, SoftApCallback)}.
      *
      * @hide
      */
+    @SystemApi
     public interface SoftApCallback {
         /**
          * Called when soft AP state changes.
          *
-         * @param state new new AP state. One of {@link #WIFI_AP_STATE_DISABLED},
-         *        {@link #WIFI_AP_STATE_DISABLING}, {@link #WIFI_AP_STATE_ENABLED},
-         *        {@link #WIFI_AP_STATE_ENABLING}, {@link #WIFI_AP_STATE_FAILED}
+         * @param state         new new AP state. One of {@link #WIFI_AP_STATE_DISABLED},
+         *                      {@link #WIFI_AP_STATE_DISABLING}, {@link #WIFI_AP_STATE_ENABLED},
+         *                      {@link #WIFI_AP_STATE_ENABLING}, {@link #WIFI_AP_STATE_FAILED}
          * @param failureReason reason when in failed state. One of
-         *        {@link #SAP_START_FAILURE_GENERAL}, {@link #SAP_START_FAILURE_NO_CHANNEL}
+         *                      {@link #SAP_START_FAILURE_GENERAL},
+         *                      {@link #SAP_START_FAILURE_NO_CHANNEL}
          */
-        public abstract void onStateChanged(@WifiApState int state,
+        void onStateChanged(@WifiApState int state,
                 @SapStartFailure int failureReason);
 
         /**
-         * Called when number of connected clients to soft AP changes.
+         * Called when the connected clients to soft AP changes.
          *
-         * @param numClients number of connected clients
+         * @param clients the currently connected clients
          */
-        public abstract void onNumClientsChanged(int numClients);
+        void onConnectedClientsChanged(@NonNull List<WifiClient> clients);
     }
 
     /**
@@ -3148,11 +3153,11 @@
      * @hide
      */
     private class SoftApCallbackProxy extends ISoftApCallback.Stub {
-        private final Handler mHandler;
+        private final Executor mExecutor;
         private final SoftApCallback mCallback;
 
-        SoftApCallbackProxy(Looper looper, SoftApCallback callback) {
-            mHandler = new Handler(looper);
+        SoftApCallbackProxy(Executor executor, SoftApCallback callback) {
+            mExecutor = executor;
             mCallback = callback;
         }
 
@@ -3162,18 +3167,23 @@
                 Log.v(TAG, "SoftApCallbackProxy: onStateChanged: state=" + state
                         + ", failureReason=" + failureReason);
             }
-            mHandler.post(() -> {
+
+            Binder.clearCallingIdentity();
+            mExecutor.execute(() -> {
                 mCallback.onStateChanged(state, failureReason);
             });
         }
 
         @Override
-        public void onNumClientsChanged(int numClients) {
+        public void onConnectedClientsChanged(List<WifiClient> clients) {
             if (mVerboseLoggingEnabled) {
-                Log.v(TAG, "SoftApCallbackProxy: onNumClientsChanged: numClients=" + numClients);
+                Log.v(TAG, "SoftApCallbackProxy: onConnectedClientsChanged: clients="
+                        + clients.size() + " clients");
             }
-            mHandler.post(() -> {
-                mCallback.onNumClientsChanged(numClients);
+
+            Binder.clearCallingIdentity();
+            mExecutor.execute(() -> {
+                mCallback.onConnectedClientsChanged(clients);
             });
         }
     }
@@ -3190,22 +3200,23 @@
      * without the permission will trigger a {@link java.lang.SecurityException}.
      * <p>
      *
+     * @param executor The executor to execute the callbacks of the {@code executor}
+     *                 object. If null, then the application's main executor will be used.
      * @param callback Callback for soft AP events
-     * @param handler  The Handler on whose thread to execute the callbacks of the {@code callback}
-     *                 object. If null, then the application's main thread will be used.
      *
      * @hide
      */
+    @SystemApi
     @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
-    public void registerSoftApCallback(@NonNull SoftApCallback callback,
-                                       @Nullable Handler handler) {
+    public void registerSoftApCallback(@Nullable @CallbackExecutor Executor executor,
+                                       @NonNull SoftApCallback callback) {
         if (callback == null) throw new IllegalArgumentException("callback cannot be null");
-        Log.v(TAG, "registerSoftApCallback: callback=" + callback + ", handler=" + handler);
+        Log.v(TAG, "registerSoftApCallback: callback=" + callback + ", executor=" + executor);
 
-        Looper looper = (handler == null) ? mContext.getMainLooper() : handler.getLooper();
+        executor = (executor == null) ? mContext.getMainExecutor() : executor;
         Binder binder = new Binder();
         try {
-            mService.registerSoftApCallback(binder, new SoftApCallbackProxy(looper, callback),
+            mService.registerSoftApCallback(binder, new SoftApCallbackProxy(executor, callback),
                     callback.hashCode());
         } catch (RemoteException e) {
             throw e.rethrowFromSystemServer();
diff --git a/wifi/java/android/net/wifi/WifiNetworkScoreCache.java b/wifi/java/android/net/wifi/WifiNetworkScoreCache.java
index b22ae070..5a212a8 100755
--- a/wifi/java/android/net/wifi/WifiNetworkScoreCache.java
+++ b/wifi/java/android/net/wifi/WifiNetworkScoreCache.java
@@ -22,6 +22,7 @@
 import android.content.Context;
 import android.net.INetworkScoreCache;
 import android.net.NetworkKey;
+import android.net.NetworkScoreManager;
 import android.net.ScoredNetwork;
 import android.os.Handler;
 import android.os.Process;
@@ -40,7 +41,8 @@
  *
  * @hide
  */
-public class WifiNetworkScoreCache extends INetworkScoreCache.Stub {
+public class WifiNetworkScoreCache extends INetworkScoreCache.Stub
+        implements NetworkScoreManager.NetworkScoreCallback {
     private static final String TAG = "WifiNetworkScoreCache";
     private static final boolean DBG = Log.isLoggable(TAG, Log.DEBUG);
 
@@ -246,6 +248,17 @@
     }
 
     @Override protected final void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
+        WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
+        dumpWithLatestScanResults(fd, writer, args, wifiManager.getScanResults());
+    }
+
+    /**
+     * This is directly invoked from within Wifi-Service (on it's instance of this class), hence
+     * avoid making the WifiManager.getScanResults() call to avoid a deadlock.
+     */
+    public final void dumpWithLatestScanResults(
+            FileDescriptor fd, PrintWriter writer, String[] args,
+            List<ScanResult> latestScanResults) {
         mContext.enforceCallingOrSelfPermission(permission.DUMP, TAG);
         String header = String.format("WifiNetworkScoreCache (%s/%d)",
                 mContext.getPackageName(), Process.myUid());
@@ -256,8 +269,7 @@
                 writer.println("    " + score);
             }
             writer.println("  Network scores for latest ScanResults:");
-            WifiManager wifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
-            for (ScanResult scanResult : wifiManager.getScanResults()) {
+            for (ScanResult scanResult : latestScanResults) {
                 writer.println(
                         "    " + buildNetworkKey(scanResult) + ": " + getNetworkScore(scanResult));
             }
diff --git a/wifi/java/android/net/wifi/WifiSsid.java b/wifi/java/android/net/wifi/WifiSsid.java
index 70ca088..f187e10 100644
--- a/wifi/java/android/net/wifi/WifiSsid.java
+++ b/wifi/java/android/net/wifi/WifiSsid.java
@@ -48,7 +48,7 @@
 
     private static final int HEX_RADIX = 16;
     @UnsupportedAppUsage
-    public static final String NONE = "<unknown ssid>";
+    public static final String NONE = WifiManager.UNKNOWN_SSID;
 
     private WifiSsid() {
     }
diff --git a/wifi/java/android/net/wifi/WifiUsabilityStatsEntry.java b/wifi/java/android/net/wifi/WifiUsabilityStatsEntry.java
index e595164..8f3635f 100644
--- a/wifi/java/android/net/wifi/WifiUsabilityStatsEntry.java
+++ b/wifi/java/android/net/wifi/WifiUsabilityStatsEntry.java
@@ -20,8 +20,8 @@
 import android.annotation.SystemApi;
 import android.os.Parcel;
 import android.os.Parcelable;
-import android.telephony.TelephonyManager.NetworkType;
 
+import android.telephony.Annotation.NetworkType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 
diff --git a/wifi/tests/Android.mk b/wifi/tests/Android.mk
index 401b652..3453d6e 100644
--- a/wifi/tests/Android.mk
+++ b/wifi/tests/Android.mk
@@ -49,6 +49,7 @@
     core-test-rules \
     guava \
     mockito-target-minus-junit4 \
+    net-tests-utils \
     frameworks-base-testutils \
     truth-prebuilt \
 
diff --git a/wifi/tests/src/android/net/wifi/WifiClientTest.java b/wifi/tests/src/android/net/wifi/WifiClientTest.java
new file mode 100644
index 0000000..42cab55
--- /dev/null
+++ b/wifi/tests/src/android/net/wifi/WifiClientTest.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2019 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.
+ */
+
+package android.net.wifi;
+
+import static com.android.testutils.MiscAssertsKt.assertFieldCountEquals;
+import static com.android.testutils.ParcelUtilsKt.assertParcelSane;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+
+import android.net.MacAddress;
+
+import androidx.test.filters.SmallTest;
+
+import org.junit.Test;
+
+/**
+ * Unit tests for {@link android.net.wifi.WifiClient}.
+ */
+@SmallTest
+public class WifiClientTest {
+    private static final String INTERFACE_NAME = "wlan0";
+    private static final String MAC_ADDRESS_STRING = "00:0a:95:9d:68:16";
+    private static final MacAddress MAC_ADDRESS = MacAddress.fromString(MAC_ADDRESS_STRING);
+
+    /**
+     *  Verify parcel write/read with WifiClient.
+     */
+    @Test
+    public void testWifiClientParcelWriteRead() throws Exception {
+        WifiClient writeWifiClient = new WifiClient(MAC_ADDRESS);
+
+        assertParcelSane(writeWifiClient, 1);
+    }
+
+    /**
+     *  Verify equals with WifiClient.
+     */
+    @Test
+    public void testWifiClientEquals() throws Exception {
+        WifiClient writeWifiClient = new WifiClient(MAC_ADDRESS);
+        WifiClient writeWifiClientEquals = new WifiClient(MAC_ADDRESS);
+
+        assertEquals(writeWifiClient, writeWifiClientEquals);
+        assertEquals(writeWifiClient.hashCode(), writeWifiClientEquals.hashCode());
+        assertFieldCountEquals(1, WifiClient.class);
+    }
+
+    /**
+     *  Verify not-equals with WifiClient.
+     */
+    @Test
+    public void testWifiClientNotEquals() throws Exception {
+        final MacAddress macAddressNotEquals = MacAddress.fromString("00:00:00:00:00:00");
+        WifiClient writeWifiClient = new WifiClient(MAC_ADDRESS);
+        WifiClient writeWifiClientNotEquals = new WifiClient(macAddressNotEquals);
+
+        assertNotEquals(writeWifiClient, writeWifiClientNotEquals);
+        assertNotEquals(writeWifiClient.hashCode(), writeWifiClientNotEquals.hashCode());
+    }
+}
diff --git a/wifi/tests/src/android/net/wifi/WifiManagerTest.java b/wifi/tests/src/android/net/wifi/WifiManagerTest.java
index b75a1ac..4260c20 100644
--- a/wifi/tests/src/android/net/wifi/WifiManagerTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiManagerTest.java
@@ -66,6 +66,7 @@
 import android.net.wifi.WifiManager.TrafficStateCallback;
 import android.os.Build;
 import android.os.Handler;
+import android.os.HandlerExecutor;
 import android.os.IBinder;
 import android.os.Message;
 import android.os.Messenger;
@@ -101,8 +102,7 @@
     private static final String[] TEST_MAC_ADDRESSES = {"da:a1:19:0:0:0"};
 
     @Mock Context mContext;
-    @Mock
-    android.net.wifi.IWifiManager mWifiService;
+    @Mock android.net.wifi.IWifiManager mWifiService;
     @Mock ApplicationInfo mApplicationInfo;
     @Mock WifiConfiguration mApConfig;
     @Mock IBinder mAppBinder;
@@ -118,7 +118,8 @@
     private Messenger mWifiServiceMessenger;
     final ArgumentCaptor<Messenger> mMessengerCaptor = ArgumentCaptor.forClass(Messenger.class);
 
-    @Before public void setUp() throws Exception {
+    @Before
+    public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
         mLooper = new TestLooper();
         mHandler = spy(new Handler(mLooper.getLooper()));
@@ -214,7 +215,7 @@
     @Test
     public void testCreationOfLocalOnlyHotspotSubscription() throws Exception {
         try (WifiManager.LocalOnlyHotspotSubscription sub =
-                mWifiManager.new LocalOnlyHotspotSubscription()) {
+                     mWifiManager.new LocalOnlyHotspotSubscription()) {
             sub.close();
         }
     }
@@ -685,7 +686,7 @@
     @Test
     public void registerSoftApCallbackThrowsIllegalArgumentExceptionOnNullArgumentForCallback() {
         try {
-            mWifiManager.registerSoftApCallback(null, mHandler);
+            mWifiManager.registerSoftApCallback(new HandlerExecutor(mHandler), null);
             fail("expected IllegalArgumentException");
         } catch (IllegalArgumentException expected) {
         }
@@ -709,8 +710,8 @@
     @Test
     public void registerSoftApCallbackUsesMainLooperOnNullArgumentForHandler() {
         when(mContext.getMainLooper()).thenReturn(mLooper.getLooper());
-        mWifiManager.registerSoftApCallback(mSoftApCallback, null);
-        verify(mContext).getMainLooper();
+        mWifiManager.registerSoftApCallback(null, mSoftApCallback);
+        verify(mContext).getMainExecutor();
     }
 
     /**
@@ -718,7 +719,7 @@
      */
     @Test
     public void registerSoftApCallbackCallGoesToWifiServiceImpl() throws Exception {
-        mWifiManager.registerSoftApCallback(mSoftApCallback, mHandler);
+        mWifiManager.registerSoftApCallback(new HandlerExecutor(mHandler), mSoftApCallback);
         verify(mWifiService).registerSoftApCallback(any(IBinder.class),
                 any(ISoftApCallback.Stub.class), anyInt());
     }
@@ -729,7 +730,7 @@
     @Test
     public void unregisterSoftApCallbackCallGoesToWifiServiceImpl() throws Exception {
         ArgumentCaptor<Integer> callbackIdentifier = ArgumentCaptor.forClass(Integer.class);
-        mWifiManager.registerSoftApCallback(mSoftApCallback, mHandler);
+        mWifiManager.registerSoftApCallback(new HandlerExecutor(mHandler), mSoftApCallback);
         verify(mWifiService).registerSoftApCallback(any(IBinder.class),
                 any(ISoftApCallback.Stub.class), callbackIdentifier.capture());
 
@@ -744,7 +745,7 @@
     public void softApCallbackProxyCallsOnStateChanged() throws Exception {
         ArgumentCaptor<ISoftApCallback.Stub> callbackCaptor =
                 ArgumentCaptor.forClass(ISoftApCallback.Stub.class);
-        mWifiManager.registerSoftApCallback(mSoftApCallback, mHandler);
+        mWifiManager.registerSoftApCallback(new HandlerExecutor(mHandler), mSoftApCallback);
         verify(mWifiService).registerSoftApCallback(any(IBinder.class), callbackCaptor.capture(),
                 anyInt());
 
@@ -757,17 +758,17 @@
      * Verify client-provided callback is being called through callback proxy
      */
     @Test
-    public void softApCallbackProxyCallsOnNumClientsChanged() throws Exception {
+    public void softApCallbackProxyCallsOnConnectedClientsChanged() throws Exception {
         ArgumentCaptor<ISoftApCallback.Stub> callbackCaptor =
                 ArgumentCaptor.forClass(ISoftApCallback.Stub.class);
-        mWifiManager.registerSoftApCallback(mSoftApCallback, mHandler);
+        mWifiManager.registerSoftApCallback(new HandlerExecutor(mHandler), mSoftApCallback);
         verify(mWifiService).registerSoftApCallback(any(IBinder.class), callbackCaptor.capture(),
                 anyInt());
 
-        final int testNumClients = 3;
-        callbackCaptor.getValue().onNumClientsChanged(testNumClients);
+        final List<WifiClient> testClients = new ArrayList();
+        callbackCaptor.getValue().onConnectedClientsChanged(testClients);
         mLooper.dispatchAll();
-        verify(mSoftApCallback).onNumClientsChanged(testNumClients);
+        verify(mSoftApCallback).onConnectedClientsChanged(testClients);
     }
 
     /*
@@ -777,18 +778,18 @@
     public void softApCallbackProxyCallsOnMultipleUpdates() throws Exception {
         ArgumentCaptor<ISoftApCallback.Stub> callbackCaptor =
                 ArgumentCaptor.forClass(ISoftApCallback.Stub.class);
-        mWifiManager.registerSoftApCallback(mSoftApCallback, mHandler);
+        mWifiManager.registerSoftApCallback(new HandlerExecutor(mHandler), mSoftApCallback);
         verify(mWifiService).registerSoftApCallback(any(IBinder.class), callbackCaptor.capture(),
                 anyInt());
 
-        final int testNumClients = 5;
+        final List<WifiClient> testClients = new ArrayList();
         callbackCaptor.getValue().onStateChanged(WIFI_AP_STATE_ENABLING, 0);
-        callbackCaptor.getValue().onNumClientsChanged(testNumClients);
+        callbackCaptor.getValue().onConnectedClientsChanged(testClients);
         callbackCaptor.getValue().onStateChanged(WIFI_AP_STATE_FAILED, SAP_START_FAILURE_GENERAL);
 
         mLooper.dispatchAll();
         verify(mSoftApCallback).onStateChanged(WIFI_AP_STATE_ENABLING, 0);
-        verify(mSoftApCallback).onNumClientsChanged(testNumClients);
+        verify(mSoftApCallback).onConnectedClientsChanged(testClients);
         verify(mSoftApCallback).onStateChanged(WIFI_AP_STATE_FAILED, SAP_START_FAILURE_GENERAL);
     }
 
@@ -801,7 +802,7 @@
                 ArgumentCaptor.forClass(ISoftApCallback.Stub.class);
         TestLooper altLooper = new TestLooper();
         Handler altHandler = new Handler(altLooper.getLooper());
-        mWifiManager.registerSoftApCallback(mSoftApCallback, altHandler);
+        mWifiManager.registerSoftApCallback(new HandlerExecutor(altHandler), mSoftApCallback);
         verify(mWifiService).registerSoftApCallback(any(IBinder.class), callbackCaptor.capture(),
                 anyInt());
 
@@ -815,7 +816,7 @@
      */
     @Test
     public void testCorrectLooperIsUsedForSoftApCallbackHandler() throws Exception {
-        mWifiManager.registerSoftApCallback(mSoftApCallback, mHandler);
+        mWifiManager.registerSoftApCallback(new HandlerExecutor(mHandler), mSoftApCallback);
         mLooper.dispatchAll();
         verify(mWifiService).registerSoftApCallback(any(IBinder.class),
                 any(ISoftApCallback.Stub.class), anyInt());
@@ -1047,8 +1048,8 @@
         verifyNoMoreInteractions(mWifiService);
     }
 
-   /**
-i     * Verify that a call to cancel WPS immediately returns a failure.
+    /**
+     * Verify that a call to cancel WPS immediately returns a failure.
      */
     @Test
     public void testCancelWpsImmediatelyFailsWithCallback() {
@@ -1343,7 +1344,6 @@
 
     /**
      * Verify getting the factory MAC address.
-     * @throws Exception
      */
     @Test
     public void testGetFactoryMacAddress() throws Exception {
@@ -1390,7 +1390,6 @@
 
     /**
      * Test behavior of isEnhancedOpenSupported
-     * @throws Exception
      */
     @Test
     public void testIsEnhancedOpenSupported() throws Exception {
@@ -1404,7 +1403,6 @@
 
     /**
      * Test behavior of isWpa3SaeSupported
-     * @throws Exception
      */
     @Test
     public void testIsWpa3SaeSupported() throws Exception {
@@ -1418,7 +1416,6 @@
 
     /**
      * Test behavior of isWpa3SuiteBSupported
-     * @throws Exception
      */
     @Test
     public void testIsWpa3SuiteBSupported() throws Exception {
@@ -1432,7 +1429,6 @@
 
     /**
      * Test behavior of isEasyConnectSupported
-     * @throws Exception
      */
     @Test
     public void testIsEasyConnectSupported() throws Exception {
@@ -1446,7 +1442,6 @@
 
     /**
      * Test behavior of {@link WifiManager#addNetwork(WifiConfiguration)}
-     * @throws Exception
      */
     @Test
     public void testAddNetwork() throws Exception {
@@ -1463,7 +1458,6 @@
 
     /**
      * Test behavior of {@link WifiManager#addNetwork(WifiConfiguration)}
-     * @throws Exception
      */
     @Test
     public void testUpdateNetwork() throws Exception {
@@ -1485,7 +1479,6 @@
 
     /**
      * Test behavior of {@link WifiManager#enableNetwork(int, boolean)}
-     * @throws Exception
      */
     @Test
     public void testEnableNetwork() throws Exception {
@@ -1497,7 +1490,6 @@
 
     /**
      * Test behavior of {@link WifiManager#disableNetwork(int)}
-     * @throws Exception
      */
     @Test
     public void testDisableNetwork() throws Exception {
@@ -1509,7 +1501,6 @@
 
     /**
      * Test behavior of {@link WifiManager#disconnect()}
-     * @throws Exception
      */
     @Test
     public void testDisconnect() throws Exception {
@@ -1520,7 +1511,6 @@
 
     /**
      * Test behavior of {@link WifiManager#reconnect()}
-     * @throws Exception
      */
     @Test
     public void testReconnect() throws Exception {
@@ -1531,7 +1521,6 @@
 
     /**
      * Test behavior of {@link WifiManager#reassociate()}
-     * @throws Exception
      */
     @Test
     public void testReassociate() throws Exception {
@@ -1542,7 +1531,6 @@
 
     /**
      * Test behavior of {@link WifiManager#getSupportedFeatures()}
-     * @throws Exception
      */
     @Test
     public void testGetSupportedFeatures() throws Exception {
@@ -1569,7 +1557,6 @@
 
     /**
      * Test behavior of {@link WifiManager#getControllerActivityEnergyInfo()}
-     * @throws Exception
      */
     @Test
     public void testGetControllerActivityEnergyInfo() throws Exception {
@@ -1582,7 +1569,6 @@
 
     /**
      * Test behavior of {@link WifiManager#getConnectionInfo()}
-     * @throws Exception
      */
     @Test
     public void testGetConnectionInfo() throws Exception {
@@ -1594,7 +1580,6 @@
 
     /**
      * Test behavior of {@link WifiManager#isDualModeSupported()} ()}
-     * @throws Exception
      */
     @Test
     public void testIsDualModeSupported() throws Exception {
@@ -1605,7 +1590,6 @@
 
     /**
      * Test behavior of {@link WifiManager#isDualBandSupported()}
-     * @throws Exception
      */
     @Test
     public void testIsDualBandSupported() throws Exception {
@@ -1616,7 +1600,6 @@
 
     /**
      * Test behavior of {@link WifiManager#getDhcpInfo()}
-     * @throws Exception
      */
     @Test
     public void testGetDhcpInfo() throws Exception {
@@ -1629,7 +1612,6 @@
 
     /**
      * Test behavior of {@link WifiManager#setWifiEnabled(boolean)}
-     * @throws Exception
      */
     @Test
     public void testSetWifiEnabled() throws Exception {